/* KEC Video Gallery */
.kec-vg { --kec-vg-gap: 22px; width: 100%; box-sizing: border-box; }
.kec-vg *, .kec-vg *::before, .kec-vg *::after { box-sizing: border-box; }
.kec-vg-grid { display: grid; grid-template-columns: repeat(var(--kec-vg-columns, 3), minmax(0, 1fr)); gap: var(--kec-vg-gap); }
.kec-vg-card { min-width: 0; overflow: hidden; background: #fff; border: 1px solid rgba(0,0,0,.09); border-radius: 12px; box-shadow: 0 4px 18px rgba(0,0,0,.06); }
.kec-vg-media { position: relative; width: 100%; aspect-ratio: 16 / 9; overflow: hidden; background: #111; }
.kec-vg-media iframe, .kec-vg-media video, .kec-vg-media img { display: block; width: 100%; height: 100%; border: 0; object-fit: cover; }
.kec-vg-thumb { position: relative; width: 100%; height: 100%; }
.kec-vg-no-thumb { display: flex; align-items: center; justify-content: center; height: 100%; color: #fff; }
.kec-vg-play { position: absolute; left: 50%; top: 50%; transform: translate(-50%,-50%); display: flex; align-items: center; justify-content: center; width: 54px; height: 54px; padding-left: 4px; border-radius: 50%; color: #fff; background: rgba(25,65,220,.92); font-size: 22px; }
.kec-vg-card-content { padding: 15px 16px 17px; }
.kec-vg-title { margin: 0; font-size: 18px; line-height: 1.4; font-weight: 650; }
.kec-vg-excerpt { margin: 8px 0 0; font-size: 14px; line-height: 1.55; opacity: .78; }
.kec-vg-carousel { overflow: hidden; }
.kec-vg-viewport { overflow: hidden; width: 100%; }
.kec-vg-track { display: flex; gap: var(--kec-vg-gap); transition: transform .35s ease; will-change: transform; }
.kec-vg-slide { flex: 0 0 calc((100% - (var(--kec-vg-gap) * (var(--kec-vg-columns, 3) - 1))) / var(--kec-vg-columns, 3)); min-width: 0; }
.kec-vg-controls { display: flex; align-items: center; justify-content: center; gap: 14px; margin-top: 18px; }
.kec-vg-prev, .kec-vg-next { display: inline-flex; align-items: center; justify-content: center; width: 40px; height: 40px; border: 0; border-radius: 50%; background: #243edb; color: #fff; font-size: 28px; line-height: 1; cursor: pointer; }
.kec-vg-prev:hover, .kec-vg-next:hover { background: #172cae; }
.kec-vg-dots { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 7px; }
.kec-vg-dot { display: block; width: 9px; height: 9px; padding: 0; border: 0; border-radius: 50%; background: #c5c8d2; cursor: pointer; }
.kec-vg-dot.is-active { background: #243edb; transform: scale(1.15); }
.kec-vg-empty { padding: 18px; border: 1px solid #ddd; border-radius: 8px; }
@media (max-width: 900px) {
  .kec-vg-grid { grid-template-columns: repeat(min(var(--kec-vg-columns, 3), 2), minmax(0, 1fr)); }
  .kec-vg-slide { flex-basis: calc((100% - var(--kec-vg-gap)) / 2); }
}
@media (max-width: 600px) {
  .kec-vg-grid { grid-template-columns: 1fr; }
  .kec-vg-slide { flex-basis: 100%; }
  .kec-vg { --kec-vg-gap: 14px; }
}

.kec-vg-popup-trigger { display:block; position:relative; width:100%; height:100%; padding:0; border:0; background:#111; cursor:pointer; }
.kec-vg-popup-trigger img { display:block; width:100%; height:100%; object-fit:cover; }
.kec-vg-popup-trigger:focus-visible { outline:3px solid #243edb; outline-offset:-3px; }
.kec-vg-modal { position:fixed; inset:0; z-index:999999; display:flex; align-items:center; justify-content:center; padding:24px; background:rgba(0,0,0,.82); }
.kec-vg-modal-dialog { position:relative; width:min(100%, 1000px); background:#000; border-radius:10px; box-shadow:0 18px 60px rgba(0,0,0,.4); }
.kec-vg-modal-frame { width:100%; aspect-ratio:16/9; }
.kec-vg-modal-frame iframe, .kec-vg-modal-frame video { display:block; width:100%; height:100%; border:0; background:#000; }
.kec-vg-modal-close { position:absolute; right:-14px; top:-14px; z-index:2; width:38px; height:38px; border:2px solid #fff; border-radius:50%; background:#222; color:#fff; font-size:28px; line-height:1; cursor:pointer; }
@media(max-width:600px){.kec-vg-modal{padding:14px}.kec-vg-modal-close{right:-8px;top:-8px}}
