/* ============================================================
   МОЯ ГАЛАКТИКА — фестиваль, 18–20 вересня, Одеса
   style.css — базові правила сторінки + дві теми (Ніч / Захід).
   Різниця між сторінками — лише клас theme-sunset на .kf.
   ============================================================ */
html{-webkit-text-size-adjust:100%}
:root{--bg:#080D28;--ink:#F4EDE0}
body{
  margin:0;
  background:var(--bg);
  color:var(--ink);
  font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
}
/* тіло сторінки реагує на тему навіть до того, як дійде до .kf — клас стоїть на нащадку */
body:has(.theme-sunset){--bg:#16102E;--ink:#FDF0E2}
img{max-width:100%}
*{-webkit-overflow-scrolling:touch}
html,body{overflow-x:hidden}

/* ===== .kf — контейнер сторінки і токени теми ===== */
.kf{
  /* ===== ТЕМА 1 · НІЧ (за замовчуванням) ===== */
  --bg:        #080D28;
  --bg-2:      #0F1740;
  --surface:   #141D4C;
  --surface-2: #1B2660;
  --ink:       #F4EDE0;
  --muted:     #93A0CC;
  --gold:      #FFCE5A;   /* головний акцент */
  --gold-deep: #F08D0F;
  --cyan:      #2FC4D8;   /* другий акцент — море з банера */
  --violet:    #9B6BD6;
  --magenta:   #E0559B;
  --line:      rgba(255,206,90,.18);
  --btn:       #FFCE5A;
  --btn-ink:   #080D28;
  --veil:      8,13,40;
  --radius:    16px;

  /* кольори трьох днів */
  --day-1: var(--gold);     /* Ядро     — золото */
  --day-2: var(--cyan);     /* Сузір'я  — бірюза */
  --day-3: var(--violet);   /* Всесвіт  — фіолет */

  /* кольори п'яти просторів — однакові в обох темах */
  --el-earth: #C98A3A;   /* Земля   — вохра */
  --el-water: #2FC4D8;   /* Вода    — бірюза */
  --el-fire:  #FF8A3C;   /* Вогонь  — помаранч */
  --el-air:   #9FD6E8;   /* Повітря — світла блакить */
  --el-ether: #A96BE0;   /* Ефір    — фіолет */

  background:var(--bg);
  color:var(--ink); line-height:1.65; max-width:1080px; margin:0 auto;
  padding:0 18px; box-sizing:border-box; overflow-x:hidden;
}
/* ===== ТЕМА 2 · ЗАХІД ===== */
.kf.theme-sunset{
  --bg:        #16102E;
  --bg-2:      #2A1444;
  --surface:   #241848;
  --surface-2: #33205C;
  --ink:       #FDF0E2;
  --muted:     #BBA3D0;
  --gold:      #FF9E2C;
  --gold-deep: #E0559B;
  --cyan:      #35BFD0;
  --violet:    #A96BE0;
  --magenta:   #E0559B;
  --line:      rgba(255,158,44,.24);
  --btn:       #FF9E2C;
  --btn-ink:   #1A0F22;
  --veil:      22,16,46;
}

.kf *,.kf *::before,.kf *::after{box-sizing:border-box}
.kf section{padding:54px 0;border-top:1px solid var(--line)}
.kf section:first-child{border-top:0}
.kf h1{font-size:clamp(34px,7vw,64px);line-height:1.05;margin:0 0 14px;font-weight:800;letter-spacing:-.02em;color:var(--ink)}
.kf h2{font-size:clamp(26px,4.4vw,38px);line-height:1.22;margin:0 0 18px;color:var(--ink);font-weight:700;letter-spacing:-.01em}
.kf h3{font-size:clamp(19px,2.6vw,22px);line-height:1.3;margin:0 0 8px;color:var(--ink);font-weight:700}
.kf p{margin:0 0 16px;font-size:17px;color:var(--ink)}
.kf p:last-child{margin-bottom:0}
.kf a{color:var(--gold)}
.kf .kf-lead{font-size:clamp(18px,2.4vw,21px);color:var(--ink)}
.kf .kf-eyebrow{display:inline-block;font-size:13px;letter-spacing:.16em;text-transform:uppercase;color:var(--gold);font-weight:700;margin:0 0 14px}
.kf .kf-note{font-size:15px;color:var(--muted);margin-top:14px}
.kf .kf-muted{color:var(--muted);font-size:15px}

/* ---- HERO — фігуру нічим не закриваємо ---- */
.kf-hero{position:relative;border-radius:var(--radius);overflow:hidden;background:var(--bg-2);margin:0;aspect-ratio:16/9}
/* на вузьких екранах 16:9 замало висоти для тексту зверху — робимо кадр вищим;
   зображення кропиться по боках (фігура центрована по горизонталі — не постраждає) */
@media(max-width:720px){
  .kf-hero{aspect-ratio:4/5;min-height:380px}
}
.kf-hero-media{position:absolute;inset:0;z-index:0}
.kf-hero-media img,.kf-hero-media video{width:100%;height:100%;object-fit:cover;display:block}
/* вуаль лише зверху (і легка знизу під кнопки-варіант B) — середина кадру з фігурою лишається чистою */
.kf-hero-veil{
  position:absolute;inset:0;z-index:1;
  background:linear-gradient(180deg,
    rgba(var(--veil),.55) 0%,
    rgba(var(--veil),.25) 28%,
    rgba(var(--veil),0)   50%,
    rgba(var(--veil),.35) 88%,
    var(--bg) 100%);
}
.kf-hero-in{position:relative;z-index:2;padding:clamp(22px,6vw,64px) clamp(18px,5vw,40px) 0;text-align:center;color:#fff}
.kf-hero h1{color:#fff;text-shadow:0 4px 26px rgba(0,0,0,.6);font-size:clamp(26px,7vw,58px);line-height:1.05;margin:0 0 8px}
/* .kf-hero- прописані з подвійним класом (.kf-hero .kf-hero-*), інакше загальне ".kf p"
   (клас+тег) переважає ці одноклассові селектори через вищу специфічність */
.kf-hero .kf-hero-kicker{font-size:clamp(11px,1.8vw,14px);line-height:1.35;letter-spacing:.18em;text-transform:uppercase;color:var(--gold);font-weight:700;margin:0 0 10px;text-shadow:0 4px 20px rgba(0,0,0,.55)}
.kf-hero .kf-hero-title1{font-size:clamp(15px,3.2vw,25px);line-height:1.3;letter-spacing:.12em;font-weight:600;margin:0 0 2px;color:#fff;text-shadow:0 4px 20px rgba(0,0,0,.55)}
.kf-hero .kf-hero-sub{font-size:clamp(13px,2.2vw,19px);line-height:1.35;color:rgba(255,255,255,.92);margin:0;font-weight:500;letter-spacing:.01em;text-shadow:0 4px 20px rgba(0,0,0,.55)}
/* кнопки — за межами зображення, у смузі на фоні --bg сторінки */
.kf-hero-cta{margin:22px 0 0;display:flex;flex-wrap:wrap;gap:12px;justify-content:center}

/* вузькі телефони: текст додатково компактніший, щоб надійно лишатись у верхніх ~30% кадру */
@media(max-width:480px){
  .kf-hero-in{padding-top:18px}
  .kf-hero .kf-hero-kicker{font-size:10px;margin-bottom:8px}
  .kf-hero .kf-hero-title1{font-size:13px;margin-bottom:1px}
  .kf-hero h1{font-size:24px;margin-bottom:6px}
  .kf-hero .kf-hero-sub{font-size:12px}
}

/* ---- ВАРІАНТ B (закоментований у HTML): кнопки всередині кадру, по боках від фігури ---- */
.kf-hero-side-cta{position:absolute;z-index:3;bottom:9%;left:0;right:0;display:flex;justify-content:space-between;padding:0 clamp(16px,4vw,40px);pointer-events:none}
.kf-hero-side-cta .kf-btn{pointer-events:auto}
@media(max-width:720px){
  .kf-hero-side-cta{position:static;flex-direction:column;padding:22px 0 0;gap:12px;margin-top:0}
}

/* ---- сітки ---- */
.kf-grid{display:grid;gap:16px}
.kf-grid-2{grid-template-columns:repeat(auto-fit,minmax(300px,1fr))}
.kf-grid-3{grid-template-columns:repeat(auto-fit,minmax(260px,1fr))}
.kf-grid-4{grid-template-columns:repeat(auto-fit,minmax(240px,1fr))}
.kf-grid-5{grid-template-columns:repeat(auto-fit,minmax(190px,1fr))}

/* ---- панель для довгого тексту: ніколи прямо на --bg ---- */
.kf-copy{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:26px 24px;margin-top:22px}
.kf-copy p:first-child,.kf-copy .kf-lead{margin-bottom:14px}
.kf-copy ul{margin:0 0 16px;padding:0;list-style:none}
.kf-copy li{font-size:16px;padding:6px 0 6px 22px;position:relative}
.kf-copy li::before{content:"";position:absolute;left:2px;top:14px;width:6px;height:6px;border-radius:50%;background:var(--gold);box-shadow:0 0 8px var(--gold)}

/* ---- картки (загальні) ---- */
.kf-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:26px 24px}
.kf-card p{font-size:16px}
.kf-card p:last-child{margin-bottom:0}
.kf-card .kf-cap{font-size:13px;letter-spacing:.14em;text-transform:uppercase;color:var(--gold);font-weight:700;display:block;margin-bottom:8px}

/* ---- три дні ---- */
.kf-daycard{background:var(--surface);border:1px solid var(--line);border-top:3px solid var(--accent,var(--gold));border-radius:var(--radius);padding:24px 22px}
.kf-daycard .kf-dot{width:11px;height:11px;border-radius:50%;background:var(--accent,var(--gold));box-shadow:0 0 14px var(--accent,var(--gold));display:block;margin-bottom:14px}
.kf-daycard .kf-daycard-date{font-size:14px;color:var(--muted);margin:0 0 6px}
.kf-daycard h3{color:var(--accent,var(--gold));letter-spacing:.02em}
.kf-daycard .kf-daycard-role{font-size:14px;font-weight:700;color:var(--ink);margin:2px 0 12px}
.kf-daycard p{font-size:15px;color:var(--muted);margin:0 0 10px}
.kf-daycard p:last-child{margin-bottom:0}

/* ---- п'ять просторів ---- */
.kf-el{background:var(--surface);border:1px solid var(--line);border-left:3px solid var(--accent,var(--gold));border-radius:var(--radius);padding:22px 20px}
.kf-el .kf-dot{width:10px;height:10px;border-radius:50%;background:var(--accent,var(--gold));box-shadow:0 0 12px var(--accent,var(--gold));display:block;margin-bottom:12px}
.kf-el .kf-el-num{font-size:13px;color:var(--muted);letter-spacing:.1em;margin:0 0 2px}
.kf-el .kf-el-name{font-size:20px;font-weight:700;color:var(--ink);margin:0 0 2px}
.kf-el .kf-el-dim{font-size:14px;font-weight:700;color:var(--accent,var(--gold));margin:0 0 10px}
.kf-el p{font-size:15px;color:var(--muted);margin:0}

/* ---- розклад ---- */
.kf-day{border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;background:var(--surface)}
.kf-row{display:grid;grid-template-columns:118px 1fr;gap:16px;padding:15px 20px;border-top:1px solid var(--line);align-items:baseline}
.kf-row:first-child{border-top:0}
.kf-row.kf-row-key{background:var(--surface-2)}
.kf-time{font-size:15px;font-weight:700;color:var(--gold);white-space:nowrap;font-variant-numeric:tabular-nums}
.kf-what{font-size:16px;color:var(--ink)}
.kf-what b{color:var(--ink)}
.kf-what span{display:block;font-size:14px;color:var(--muted);margin-top:2px}
@media(max-width:560px){.kf-row{grid-template-columns:1fr;gap:2px;padding:14px 16px}}

/* ---- ціни ---- */
.kf-price{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:26px 22px;display:flex;flex-direction:column}
.kf-price.kf-best{border:2px solid var(--gold);background:var(--surface-2);position:relative;box-shadow:0 0 30px rgba(255,206,90,.15)}
.kf-badge{position:absolute;top:-12px;left:22px;background:var(--gold);color:var(--btn-ink);font-size:12px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;padding:4px 12px;border-radius:20px}
.kf-price .kf-pname{font-size:24px;font-weight:700;color:var(--ink);margin:0 0 2px}
.kf-price .kf-pdate{font-size:14px;color:var(--muted);margin:0 0 18px}
.kf-price .kf-pnum{font-size:36px;font-weight:700;line-height:1;margin:0 0 6px;color:var(--ink)}
.kf-price .kf-pday{font-size:15px;color:var(--gold);font-weight:700;margin:0 0 18px}
.kf-price ul{margin:0 0 22px;padding:0;list-style:none}
.kf-price li{font-size:15px;padding:6px 0 6px 20px;position:relative;color:var(--ink)}
.kf-price li::before{content:"";position:absolute;left:2px;top:14px;width:6px;height:6px;border-radius:50%;background:var(--gold)}
.kf-price .kf-btn{margin-top:auto}

/* ---- кнопки ---- */
.kf-btn{display:inline-block;background:var(--btn);color:var(--btn-ink) !important;text-decoration:none !important;font-size:16px;font-weight:700;padding:14px 28px;border-radius:999px;text-align:center;border:0;transition:opacity .15s ease,transform .15s ease;cursor:pointer}
.kf-btn:hover{opacity:.88}
.kf-btn-block{display:block;width:100%}
.kf-btn-ghost{background:transparent;color:var(--gold) !important;border:1.5px solid var(--gold)}
.kf-btn-ghost:hover{background:var(--gold);color:var(--btn-ink) !important}
.kf-btn-light{background:var(--btn);color:var(--btn-ink) !important}
.kf-btn-outline-light{background:transparent;color:var(--ink) !important;border:1.5px solid rgba(244,237,224,.55)}
.kf-btn-outline-light:hover{background:rgba(244,237,224,.12)}
.kf-btn-accent{background:var(--gold);color:var(--btn-ink) !important}
.kf-cta{margin-top:26px;display:flex;flex-wrap:wrap;gap:12px}

/* ---- акордеон ---- */
.kf details{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);margin:0 0 12px;overflow:hidden}
.kf details[open]{background:var(--surface-2);border-color:var(--gold)}
.kf summary{cursor:pointer;list-style:none;padding:19px 52px 19px 22px;position:relative;font-size:17px;font-weight:700;color:var(--ink)}
.kf summary::-webkit-details-marker{display:none}
.kf summary::after{content:"";position:absolute;right:24px;top:50%;width:11px;height:11px;border-right:2px solid var(--gold);border-bottom:2px solid var(--gold);transform:translateY(-70%) rotate(45deg);transition:transform .2s ease}
.kf details[open] summary::after{transform:translateY(-30%) rotate(-135deg)}
.kf .kf-acc-body{padding:0 22px 22px}
.kf .kf-acc-body p{font-size:16px;color:var(--ink)}
.kf .kf-acc-body ul{margin:0 0 16px;padding:0;list-style:none}
.kf .kf-acc-body li{font-size:16px;padding:5px 0 5px 20px;position:relative;color:var(--ink)}
.kf .kf-acc-body li::before{content:"";position:absolute;left:2px;top:13px;width:6px;height:6px;border-radius:50%;background:var(--gold)}

/* ---- виносний блок ---- */
.kf-pull{background:var(--surface-2);border-left:3px solid var(--gold);border-radius:0 var(--radius) var(--radius) 0;padding:22px 24px;margin:22px 0}
.kf-pull p{font-size:17px;margin-bottom:10px;color:var(--ink)}
.kf-pull p:last-child{margin-bottom:0}
.kf-pull b{color:var(--gold)}
/* головна фраза сайту — помітно більша */
.kf-pull.kf-pull-big{padding:28px 28px}
.kf-pull.kf-pull-big p{font-size:clamp(20px,2.6vw,22px);line-height:1.5;font-weight:600}

/* ---- callout «Хочу вести» ---- */
.kf-callout{background:var(--surface-2);border:2px solid var(--gold);border-radius:var(--radius);padding:clamp(28px,4vw,44px)}
.kf-callout .kf-note{color:var(--muted)}

/* ---- місця під фото/відео — плейсхолдери ---- */
.kf-ph{background:var(--surface);border:2px dashed var(--gold);border-radius:var(--radius);display:flex;align-items:center;justify-content:center;text-align:center;padding:22px;color:var(--muted);font-size:14px;line-height:1.5;min-height:200px}
.kf-ph b{display:block;color:var(--gold);font-size:13px;letter-spacing:.12em;text-transform:uppercase;margin-bottom:6px}
.kf-ph-16x9{aspect-ratio:16/9;min-height:0}
.kf-ph-1x1{aspect-ratio:1/1;min-height:0}
.kf-ph-4x5{aspect-ratio:4/5;min-height:0}

/* ---- ведучі / організатори ---- */
.kf-teacher{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden}
.kf-teacher-body{padding:20px}
.kf-teacher .kf-teacher-name{font-size:19px;font-weight:700;color:var(--ink);margin:0 0 2px}
.kf-teacher .kf-teacher-role{font-size:14px;color:var(--gold);font-weight:700;margin:0 0 10px}
.kf-teacher p{font-size:15px;color:var(--muted);margin:0}

/* ---- мапа ---- */
.kf-map{position:relative;width:100%;aspect-ratio:16/9;border-radius:var(--radius);overflow:hidden;border:1px solid var(--line)}
.kf-map iframe{position:absolute;inset:0;width:100%;height:100%;border:0}

/* ---- фінальний CTA ---- */
.kf-final{background:var(--surface-2);border:2px solid var(--gold);border-radius:var(--radius);padding:clamp(36px,6vw,64px) clamp(22px,5vw,54px);text-align:center;box-shadow:0 0 50px var(--line)}
.kf-final h2{color:var(--ink)}
.kf-final p{color:var(--muted);font-size:18px}
.kf-final .kf-cta{justify-content:center}
.kf-final ul{list-style:none;padding:0;margin:0 0 26px;display:flex;flex-wrap:wrap;gap:8px 22px;justify-content:center}
.kf-final li{font-size:15px;color:var(--muted);position:relative;padding-left:16px}
.kf-final li::before{content:"";position:absolute;left:0;top:9px;width:6px;height:6px;border-radius:50%;background:var(--gold)}

/* ---- чат фестивалю ---- */
.kf-chat{display:grid;grid-template-columns:1fr minmax(280px,420px);gap:34px;align-items:center;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:clamp(26px,4vw,44px)}
@media(max-width:820px){.kf-chat{grid-template-columns:1fr;gap:26px}}
.kf-chat h2{margin-bottom:10px}
.kf-chat ul{list-style:none;padding:0;margin:0 0 4px}
.kf-chat li{font-size:16px;padding:7px 0 7px 22px;position:relative;color:var(--ink)}
.kf-chat li::before{content:"";position:absolute;left:2px;top:16px;width:7px;height:7px;border-radius:50%;background:var(--gold);box-shadow:0 0 8px var(--gold)}
.kf-chat li b{color:var(--ink)}
.kf-phone{background:var(--surface-2);border:1px solid var(--line);border-radius:22px;padding:18px 16px;box-shadow:0 14px 34px rgba(0,0,0,.35)}
.kf-phone-top{display:flex;align-items:center;gap:10px;padding:0 4px 14px;border-bottom:1px solid var(--line);margin-bottom:14px}
.kf-phone-ava{width:36px;height:36px;border-radius:50%;background:var(--gold);color:var(--btn-ink);display:flex;align-items:center;justify-content:center;font-size:15px;font-weight:700;flex:0 0 36px}
.kf-phone .kf-phone-name{font-size:15px;font-weight:700;color:var(--ink);line-height:1.2;margin:0}
.kf-phone .kf-phone-sub{font-size:12px;color:var(--muted);margin:0}
.kf-phone .kf-bub{max-width:88%;font-size:14px;line-height:1.45;padding:10px 14px;border-radius:16px;margin:0 0 9px;background:var(--bg-2);color:var(--ink);border-bottom-left-radius:5px}
.kf-phone .kf-bub.kf-bub-me{margin-left:auto;background:var(--gold);color:var(--btn-ink);border-bottom-left-radius:16px;border-bottom-right-radius:5px}
.kf-chat .kf-chat-note{font-size:13px;color:var(--muted);text-align:center;margin:12px 0 0}

/* ---- три акценти локації ---- */
.kf .kf-accents{text-align:center;font-size:17px;font-weight:600;color:var(--ink);margin:26px 0}
.kf-accents b{color:var(--gold);font-weight:400;margin:0 10px;display:inline-block}

/* ---- галерея + лайтбокс без JS (:target) ---- */
.kf-gal{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px}
.kf-gal-i{display:block;border-radius:12px;overflow:hidden;border:1px solid var(--line)}
.kf-gal-i img{width:100%;aspect-ratio:1/1;object-fit:cover;display:block;transition:transform .25s}
.kf-gal-i:hover img{transform:scale(1.05)}
.kf-gal-i .kf-ph{border-radius:0;min-height:0}
.kf-lb{display:none}
.kf-lb:target{display:flex;position:fixed;inset:0;z-index:9999;
  align-items:center;justify-content:center;padding:24px;
  background:rgba(4,6,20,.92)}
.kf-lb-bg{position:absolute;inset:0}
.kf-lb img{position:relative;max-width:100%;max-height:90vh;
  border-radius:12px;object-fit:contain}
.kf-lb .kf-ph{position:relative}

/* ---- цифри під обкладинкою ---- */
.kf-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:0}
.kf-stat{text-align:center;padding:8px 10px;border-left:1px solid var(--line)}
.kf-stat:first-child{border-left:0}
.kf-stat .kf-stat-num{font-size:clamp(22px,4vw,32px);font-weight:800;color:var(--gold);margin:0 0 4px}
.kf-stat .kf-stat-label{font-size:13px;color:var(--muted);margin:0;text-transform:uppercase;letter-spacing:.06em}
@media(max-width:560px){
  .kf-stats{grid-template-columns:repeat(2,1fr);row-gap:22px}
  .kf-stat:nth-child(3){border-left:0}
}

/* ---- пільги ---- */
.kf-benefit{background:var(--surface-2);border:1.5px solid var(--cyan);border-radius:var(--radius);padding:24px 22px;margin-top:20px}
.kf-benefit h3{color:var(--cyan)}
.kf-benefit.kf-benefit-gold{border-color:var(--gold)}
.kf-benefit.kf-benefit-gold h3{color:var(--gold)}

/* ---- організатори — фото + повна біографія ---- */
.kf-org-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:24px;margin-top:26px}
.kf-org{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden}
.kf-org img{width:100%;aspect-ratio:1/1;object-fit:cover;display:block}
.kf-org-body{padding:20px 22px 24px}
.kf-org .kf-org-name{font-size:18px;font-weight:700;color:var(--ink);margin:0 0 10px}
.kf-org-body p{font-size:15px;color:var(--muted);margin:0 0 10px}
.kf-org-body p:last-of-type{margin-bottom:12px}
.kf-org a{font-size:14px}

/* ---- терміновість ---- */
.kf-urgency{background:var(--surface-2);border:1.5px solid var(--gold);border-radius:var(--radius);padding:22px 24px;text-align:center}
.kf-urgency p{margin:0;font-size:17px;color:var(--ink)}
.kf-urgency b{color:var(--gold)}

/* ---- відгуки ---- */
.kf-reviews{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:16px;margin-top:26px}
.kf-review{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:22px 20px}
.kf-review p{font-size:15px;color:var(--ink);margin:0 0 16px}
.kf-review-who{display:flex;align-items:center;gap:10px}
.kf-review-ava{width:36px;height:36px;border-radius:50%;background:var(--gold);color:var(--btn-ink);display:flex;align-items:center;justify-content:center;font-weight:700;font-size:14px;flex:0 0 36px}
.kf-review-who .kf-review-name{font-size:14px;font-weight:700;color:var(--ink);margin:0}

/* ---- відео-шортси — горизонтальний свайп без JS ---- */
.kf-shorts{display:flex;gap:12px;overflow-x:auto;scroll-snap-type:x mandatory;padding:2px 2px 10px;-webkit-overflow-scrolling:touch}
.kf-shorts-i{flex:0 0 190px;scroll-snap-align:start;border-radius:var(--radius);overflow:hidden;border:1px solid var(--line);aspect-ratio:9/16;background:var(--surface)}
.kf-shorts-i iframe{width:100%;height:100%;border:0;display:block}
@media(max-width:560px){.kf-shorts-i{flex-basis:150px}}

/* ---- вхід вільний — банер у hero ---- */
.kf-hero .kf-hero-free{display:inline-block;background:var(--gold);color:var(--btn-ink);font-weight:800;font-size:clamp(17px,4vw,30px);padding:8px 26px;border-radius:999px;margin:12px 0 8px;letter-spacing:.02em;box-shadow:0 8px 30px rgba(0,0,0,.35)}
.kf-hero .kf-hero-free-sub{font-size:clamp(11px,1.8vw,15px);line-height:1.35;color:rgba(255,255,255,.92);margin:0 0 10px;text-shadow:0 4px 20px rgba(0,0,0,.55)}
@media(max-width:480px){
  .kf-hero .kf-hero-free{font-size:15px;padding:7px 22px;margin:10px 0 6px}
  .kf-hero .kf-hero-free-sub{font-size:11px}
}

/* ---- блок «Вхід» (замінює пакети) ---- */
.kf-entry-price{display:flex;flex-wrap:wrap;gap:14px;margin:24px 0}
.kf-entry-price div{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:18px 24px;flex:1 1 200px;text-align:center}
.kf-entry-price .kf-entry-day{font-size:14px;color:var(--muted);text-transform:uppercase;letter-spacing:.06em;margin:0 0 6px}
.kf-entry-price .kf-entry-num{font-size:28px;font-weight:800;color:var(--gold);margin:0}

/* ---- панельні виступи — виділений блок ---- */
.kf-callout-gold{background:var(--surface-2);border:2px solid var(--gold);border-radius:var(--radius);padding:clamp(24px,4vw,40px)}
.kf-callout-cyan{background:var(--surface-2);border:1.5px solid var(--cyan);border-radius:var(--radius);padding:20px 24px}
.kf-callout-cyan h3{color:var(--cyan);margin:0 0 8px}
.kf-callout-cyan.kf-callout-inline{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:14px;padding:16px 22px}
.kf-callout-cyan.kf-callout-inline p{margin:0;font-size:15px}
.kf-btn-cyan-ghost{background:transparent;color:var(--cyan) !important;border:1.5px solid var(--cyan)}
.kf-btn-cyan-ghost:hover{background:var(--cyan);color:var(--btn-ink) !important}

/* ---- сторінка програми: перемикач днів через :target/:has(), без JS ---- */
.kf-daytabs{display:flex;gap:10px;flex-wrap:wrap;margin:22px 0}
.kf-dayview{display:none}
#kf-day-fri{display:block}
.kf-schedule-wrap:has(#kf-day-sat:target) #kf-day-fri{display:none}
.kf-schedule-wrap:has(#kf-day-sat:target) #kf-day-sat{display:block}
.kf-schedule-wrap:has(#kf-day-sun:target) #kf-day-fri{display:none}
.kf-schedule-wrap:has(#kf-day-sun:target) #kf-day-sun{display:block}

/* рядок розкладу: 3 колонки локацій на десктопі, стрічка карток на мобільному */
.kf-slot{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:14px;align-items:stretch}
@media(max-width:820px){.kf-slot{grid-template-columns:1fr}}

/* спільний блок (знайомство, обід, панелі, показ, закриття) — на всю ширину */
.kf-slot-shared{background:var(--surface-2);border-radius:var(--radius);padding:22px 24px;margin-bottom:14px}
.kf-slot-shared.kf-slot-panel{border:2px solid var(--gold)}
.kf-slot-shared .kf-class-time{font-size:13px;letter-spacing:.06em;text-transform:uppercase;color:var(--gold);font-weight:700;margin:0 0 6px}
.kf-slot-shared h3{margin:0 0 8px}
.kf-slot-shared p{color:var(--ink)}

/* картка класу */
.kf-class{background:var(--surface);border:1px solid var(--line);border-top:3px solid var(--accent,var(--gold));border-radius:var(--radius);padding:18px 18px 4px;display:flex;flex-direction:column}
.kf-class .kf-class-time{font-size:12px;letter-spacing:.08em;text-transform:uppercase;font-weight:700;color:var(--accent,var(--gold));margin:0 0 10px}
.kf-class .kf-class-name{font-size:17px;font-weight:700;color:var(--ink);margin:0 0 2px}
.kf-class .kf-class-who{font-size:14px;color:var(--muted);margin:0 0 8px}
.kf .kf-class details,.kf .kf-class details[open]{background:transparent;border:0;margin:0 -18px 0;padding:0;border-radius:0}
.kf .kf-class summary{padding:8px 30px 8px 18px;font-size:13px;font-weight:700;color:var(--accent,var(--gold))}
.kf .kf-class summary::after{right:18px}
.kf .kf-class .kf-acc-body{padding:0 18px 16px}
.kf .kf-class .kf-acc-body p{font-size:14px}

.kf-col-headers{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:8px}
.kf-col-headers p{margin:0;font-weight:700;text-align:center;font-size:14px}
@media(max-width:820px){.kf-col-headers{display:none}}

/* примітка «весь день» */
.kf-note-allday{background:var(--surface);border:1px dashed var(--violet);border-radius:var(--radius);padding:18px 20px;margin:8px 0 14px}
.kf-note-allday b{color:var(--violet)}
