/* =====================================================================
   LaserLand «Тематические программы» — публичные стили.
   Всё под .llth-* и [data-llth-theme]. Без глобальных селекторов.
   ===================================================================== */

.llth-section{
  /* палитра LaserLand */
  --llth-darkblue:#00244A; --llth-cyan:#00AAD4; --llth-orange:#FF7800;
  --llth-pink:#EE3164; --llth-yellow:#FFBE2B;
  --llth-gap:22px; --llth-radius:18px; --llth-visible:4;
  --llth-font:'Rubik',-apple-system,'Segoe UI',Roboto,Arial,sans-serif;

  box-sizing:border-box; font-family:var(--llth-font);
  padding:48px 0; position:relative;
  /* full-bleed: фон тянется на всю ширину окна, контент центрируется через .llth-container */
  width:100vw; max-width:100vw;
  margin-left:calc(50% - 50vw); margin-right:calc(50% - 50vw);
}
.llth-section *,.llth-section *::before,.llth-section *::after{box-sizing:border-box;}
.llth-section img{max-width:100%;display:block;}

/* убрать тему-laser-land оранжевый дашер под h2 */
.llth-section h2::before,.llth-section .llth-title::before{content:none !important;display:none !important;background:none !important;}

/* ---- темы (у каждой свой фон — модуль самодостаточен на любой странице) ---- */
.llth-section[data-llth-theme="dark"]{
  --fg1:#fff; --fg2:rgba(255,255,255,.72); --fg3:rgba(255,255,255,.46);
  --card-bg:#10233c; --card-border:rgba(255,255,255,.12);
  --surface:#16294180; --arrow-bg:rgba(255,255,255,.06);
  background:radial-gradient(120% 120% at 50% 0%, #0c1f38 0%, #06101e 70%);
  color:var(--fg1);
}
.llth-section[data-llth-theme="light"]{
  --fg1:#00244A; --fg2:#416487; --fg3:#90AAC2;
  --card-bg:#fff; --card-border:rgba(0,36,74,.12);
  --surface:#fff; --arrow-bg:#fff;
  background:#F4F6FA;
  color:var(--fg1);
}

.llth-container{max-width:1280px;margin:0 auto;padding:0 24px;}

/* ---- шапка: 2 колонки (заголовок слева, описание+стрелки справа) ---- */
.llth-header{display:grid;grid-template-columns:1.2fr 1fr;gap:48px;align-items:end;margin-bottom:40px;}
.llth-header__text{min-width:0;}
.llth-header__aside{display:flex;flex-direction:column;align-items:flex-start;gap:22px;}

.llth-eyebrow{display:inline-flex;align-items:center;gap:10px;margin:0 0 16px;font-size:13px;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:var(--llth-cyan);}
.llth-eyebrow::before{content:'///';letter-spacing:-.06em;color:currentColor;}

/* крупный «дисплейный» заголовок (Rubik 900, как на лендинге summer-bp) */
.llth-title{margin:0;font-weight:900;font-size:clamp(36px,5.6vw,76px);line-height:1.0;letter-spacing:-.015em;text-transform:uppercase;}
.llth-title::after{content:"";display:block;width:64px;height:4px;margin-top:20px;border-radius:2px;background:var(--llth-orange);}

.llth-subtitle{margin:0;font-size:17px;line-height:1.55;color:var(--fg2);max-width:640px;}

/* ---- стрелки ---- */
.llth-nav{display:flex;gap:10px;flex-shrink:0;}
.llth-arrow{width:48px;height:48px;border-radius:50%;border:1.5px solid var(--card-border);background:var(--arrow-bg,transparent);color:var(--fg1);display:flex;align-items:center;justify-content:center;cursor:pointer;transition:transform .15s,border-color .15s,background .15s;}
.llth-arrow:hover{transform:translateY(-2px);border-color:var(--llth-cyan);color:var(--llth-cyan);}

/* ---- карусель ---- */
.llth-carousel{position:relative;}
.llth-viewport{overflow:hidden;}
.llth-track{display:flex;gap:var(--llth-gap);transition:transform .42s cubic-bezier(.22,.61,.36,1);will-change:transform;}

/* карточка 9:16 постер */
.llth-card{
  flex:0 0 calc((100% - (var(--llth-visible) - 1) * var(--llth-gap)) / var(--llth-visible));
  display:flex;flex-direction:column;gap:10px;
  background:transparent;border:0;padding:0;margin:0;cursor:pointer;text-align:left;
  color:inherit;font-family:inherit;text-decoration:none;
}
.llth-card__media{
  position:relative;display:block;width:100%;aspect-ratio:9/16;overflow:hidden;
  border-radius:var(--llth-radius);background:var(--card-bg);border:1px solid var(--card-border);
}
.llth-card__media img{width:100%;height:100%;object-fit:cover;transition:transform .5s ease;}
.llth-card:hover .llth-card__media img{transform:scale(1.05);}
.llth-card__media::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 55%,rgba(0,8,20,.55));opacity:.0;transition:opacity .3s;}
.llth-card:hover .llth-card__media::after{opacity:1;}
.llth-card__ph{position:absolute;inset:0;background:linear-gradient(135deg,var(--llth-darkblue),#0a1626);}
.llth-card__title{font-weight:700;font-size:17px;line-height:1.2;color:var(--fg1);padding:0 2px;}
.llth-card--link .llth-card__title::after{content:" →";color:var(--llth-cyan);}

/* точки */
.llth-dots{display:flex;gap:8px;justify-content:center;margin-top:18px;}
.llth-dot{width:9px;height:9px;border-radius:50%;border:0;padding:0;cursor:pointer;background:var(--card-border);transition:background .2s,transform .2s;}
.llth-dot.is-active{background:var(--llth-cyan);transform:scale(1.25);}

/* ---- адаптив ---- */
@media (max-width:1080px){.llth-section{--llth-visible:3;}}
@media (max-width:900px){
  .llth-header{grid-template-columns:1fr;gap:18px;align-items:start;margin-bottom:28px;}
  .llth-header__aside{align-items:flex-start;}
}
@media (max-width:760px){
  .llth-section{--llth-visible:1;--llth-gap:14px;padding:28px 0;}
  .llth-nav{display:none;}
  .llth-card__title{font-size:16px;}
}

/* =====================================================================
   Попап (оболочка одна на инстанс; контент грузится по REST)
   ===================================================================== */
.llth-modal[hidden]{display:none !important;}
.llth-modal{position:fixed;inset:0;z-index:100000;display:flex;align-items:center;justify-content:center;padding:24px;font-family:var(--llth-font,'Rubik',sans-serif);}
.llth-modal__overlay{position:absolute;inset:0;background:rgba(2,10,22,.72);backdrop-filter:blur(4px);}
.llth-modal__dialog{position:relative;z-index:1;width:min(960px,100%);max-height:90vh;overflow:auto;border-radius:22px;background:#0e1b2e;color:#fff;box-shadow:0 30px 80px rgba(0,0,0,.5);}
.llth-modal[data-llth-theme="light"] .llth-modal__dialog{background:#fff;color:#00244A;}
.llth-modal__close{position:absolute;top:14px;right:14px;z-index:3;width:42px;height:42px;border-radius:50%;border:0;background:rgba(0,0,0,.35);color:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;}
.llth-modal[data-llth-theme="light"] .llth-modal__close{background:rgba(0,36,74,.10);color:#00244A;}
.llth-modal__close:hover{background:var(--llth-pink,#EE3164);color:#fff;}
.llth-modal__content{min-height:240px;}

/* загрузка / ошибка */
.llth-modal__loading,.llth-modal__error{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;min-height:280px;padding:40px;color:rgba(255,255,255,.7);}
.llth-modal[data-llth-theme="light"] .llth-modal__loading,.llth-modal[data-llth-theme="light"] .llth-modal__error{color:#416487;}
.llth-spinner{width:34px;height:34px;border-radius:50%;border:3px solid rgba(255,255,255,.2);border-top-color:var(--llth-cyan,#00AAD4);animation:llth-spin .8s linear infinite;}
.llth-modal[data-llth-theme="light"] .llth-spinner{border-color:rgba(0,36,74,.15);border-top-color:#00AAD4;}
@keyframes llth-spin{to{transform:rotate(360deg);}}

/* тело попапа (приходит из REST) */
.llth-detail{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);gap:0;}
.llth-detail--error{padding:50px;text-align:center;color:#EE3164;}
.llth-detail__media{padding:18px;}
.llth-detail__cover{width:100%;border-radius:16px;object-fit:cover;aspect-ratio:4/5;}
.llth-detail__body{padding:34px 30px 30px;display:flex;flex-direction:column;gap:14px;}
.llth-detail__title{font-weight:800;font-size:clamp(22px,2.6vw,30px);line-height:1.1;letter-spacing:-.02em;}
.llth-detail__meta{display:flex;gap:8px;flex-wrap:wrap;}
.llth-chip{display:inline-flex;align-items:center;gap:6px;font-size:13px;font-weight:600;padding:6px 12px;border-radius:999px;background:rgba(0,170,212,.16);color:var(--llth-cyan,#00AAD4);}
.llth-chip--age{background:rgba(255,120,0,.16);color:var(--llth-orange,#FF7800);}
.llth-detail__text{font-size:15px;line-height:1.6;color:rgba(255,255,255,.82);}
.llth-modal[data-llth-theme="light"] .llth-detail__text{color:#416487;}
.llth-detail__text p{margin:0 0 10px;}
.llth-detail__text ul,.llth-detail__text ol{margin:0 0 10px;padding-left:20px;}
.llth-detail__text li{margin:4px 0;}
.llth-detail__cta{margin-top:auto;padding-top:8px;}

/* галерея в попапе */
.llth-gallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(96px,1fr));gap:8px;margin-top:12px;}
.llth-gal{position:relative;border:0;padding:0;cursor:pointer;border-radius:12px;overflow:hidden;aspect-ratio:1/1;background:#0a1626;}
.llth-gal img{width:100%;height:100%;object-fit:cover;}
.llth-gal__ph{position:absolute;inset:0;background:linear-gradient(135deg,#13375C,#0a1626);}
.llth-gal__play{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;color:#fff;background:rgba(0,8,20,.32);}
.llth-gal__play svg{filter:drop-shadow(0 2px 8px rgba(0,0,0,.5));}
.llth-gal--video::after{content:"";position:absolute;inset:0;box-shadow:inset 0 0 0 2px rgba(255,255,255,.18);border-radius:12px;}

/* кнопки */
.llth-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;font-family:inherit;font-weight:700;font-size:15px;line-height:1;padding:14px 22px;border-radius:12px;border:0;cursor:pointer;text-decoration:none;transition:transform .15s,filter .15s;}
.llth-btn--cta{background:var(--llth-orange,#FF7800);color:#fff;width:100%;}
.llth-btn--cta:hover{filter:brightness(1.06);transform:translateY(-1px);}
.llth-btn--ghost{background:transparent;border:1.5px solid rgba(255,255,255,.3);color:#fff;}
.llth-modal[data-llth-theme="light"] .llth-btn--ghost{border-color:rgba(0,36,74,.25);color:#00244A;}

@media (max-width:760px){
  .llth-detail{grid-template-columns:1fr;}
  .llth-detail__body{padding:22px 20px 24px;}
  .llth-modal{padding:0;}
  .llth-modal__dialog{max-height:100vh;height:100vh;border-radius:0;width:100%;}
}

/* =====================================================================
   Лайтбокс
   ===================================================================== */
.llth-lb[hidden]{display:none !important;}
.llth-lb{position:absolute;inset:0;z-index:5;display:flex;align-items:center;justify-content:center;padding:32px;}
.llth-lb__overlay{position:absolute;inset:0;background:rgba(0,4,12,.92);}
.llth-lb__stage{position:relative;z-index:1;max-width:min(1100px,92%);max-height:84vh;display:flex;align-items:center;justify-content:center;}
.llth-lb__img{max-width:100%;max-height:84vh;object-fit:contain;border-radius:8px;}
.llth-lb__video{max-width:100%;max-height:84vh;border-radius:8px;background:#000;}
.llth-lb__iframe-wrap{position:relative;width:min(1100px,92vw);aspect-ratio:16/9;max-height:84vh;}
.llth-lb__iframe{position:absolute;inset:0;width:100%;height:100%;border:0;border-radius:8px;}
.llth-lb__extlink{color:#fff;font-weight:700;text-decoration:underline;}
.llth-lb__close{position:absolute;top:18px;right:18px;z-index:3;width:46px;height:46px;border-radius:50%;border:0;background:rgba(255,255,255,.12);color:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;}
.llth-lb__close:hover{background:var(--llth-pink,#EE3164);}
.llth-lb__nav{position:absolute;top:50%;transform:translateY(-50%);z-index:3;width:52px;height:52px;border-radius:50%;border:0;background:rgba(255,255,255,.12);color:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;}
.llth-lb__nav:hover{background:var(--llth-cyan,#00AAD4);}
.llth-lb__nav--prev{left:14px;}
.llth-lb__nav--next{right:14px;}

@media (max-width:760px){
  .llth-lb{padding:12px;}
  .llth-lb__nav{width:42px;height:42px;}
}

@media (prefers-reduced-motion:reduce){
  .llth-track{transition:none;}
  .llth-card__media img{transition:none;}
  .llth-spinner{animation-duration:1.4s;}
}
