/* ============================================================
   Фестиваль Катон ВКО 09.09–13.09 2026 — лендинг
   styles.css — построен на токенах design-system/colors_and_type.css
   Префикс классов: .k-
   ============================================================ */

/* ============================================================
   УНИФИЦИРОВАННАЯ ТИПОГРАФИЧЕСКАЯ ШКАЛА
   Переопределяем role-токены дизайн-системы (сам файл системы
   не трогаем). Размеров было ~16 → стало 7 ступеней:
   display · h2 · 1.25 (заголовки блоков) · 1.125 (лид) ·
   1rem (текст) · 0.875 (мелкий/мета) · 0.75 (надзаголовок)
   ============================================================ */
:root{
  --display:800 clamp(2.4rem,5vw,3.6rem)/1.06 var(--font-display);
  --h1:800 clamp(1.9rem,3.4vw,2.6rem)/1.1 var(--font-display);
  --h2:700 clamp(1.6rem,2.4vw,2rem)/1.16 var(--font-display);
  --h3:700 1.25rem/1.3 var(--font-sans);
  --h4:700 1.25rem/1.3 var(--font-sans);          /* = h3 */
  --body-lg:400 1.125rem/1.6 var(--font-sans);
  --body:400 1rem/1.62 var(--font-sans);
  --body-sm:400 1rem/1.6 var(--font-sans);         /* поднят до body: 0.875 больше не для текста */
  --meta:500 .875rem/1.45 var(--font-sans);        /* 0.875 только для микро-подписей/UI */
  --eyebrow:600 .875rem/1.2 var(--font-sans);      /* поднят до типовой 0.875; 0.75 убран из шкалы */
}

*{box-sizing:border-box}
html{scroll-behavior:smooth}
html,body{margin:0;padding:0}
body{
  background:var(--paper);
  color:var(--fg);
  font-family:var(--font-sans);
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}
img{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
ul{margin:0;padding:0;list-style:none}

.k-container{max-width:1200px;margin:0 auto;padding:0 28px}
.k-narrow{max-width:780px}

/* надзаголовок */
.k-eyebrow{
  font:var(--eyebrow);color:var(--accent-2);display:inline-block;
}
.k-h2{font:var(--h2);letter-spacing:var(--tracking-tight);margin:.3em 0 0}
.k-h3{font:var(--h3);margin:0 0 .4em}
.k-lead{font:var(--body-lg);color:var(--fg-muted);text-wrap:pretty}

/* плашка-заметка для согласования (видна тебе при сборке) */
.k-todo{
  display:inline-block;font:var(--meta);font-weight:600;
  color:var(--accent-press);background:var(--accent-tint);
  border:1px dashed var(--saffron-400);border-radius:var(--r-pill);
  padding:3px 12px;margin-bottom:14px;
}

/* изображения вместо плейсхолдеров */
img.k-hero-bg,img.k-cta-bg{width:100%;height:100%;object-fit:cover;display:block}
img.k-about-img,.k-gallery img,.k-base img,.k-excursion img,.k-speaker-ph img{
  width:100%;height:100%;object-fit:cover;display:block;
}
.k-speaker-ph{overflow:hidden}

/* плейсхолдеры изображений */
.k-ph{
  display:flex;align-items:center;justify-content:center;text-align:center;
  background:
    repeating-linear-gradient(45deg,var(--paper-2),var(--paper-2) 12px,var(--paper-3) 12px,var(--paper-3) 24px);
  border:1px dashed var(--border-strong);color:var(--fg-subtle);
  font:var(--meta);font-weight:600;padding:16px;border-radius:var(--r-md);
}

/* ---- секции ---- */
.k-section{padding:72px 0}
.k-section--soft{background:var(--paper-2);border-top:1px solid var(--border);border-bottom:1px solid var(--border)}
.k-section--sunken{background:var(--paper-3)}
.k-sechead{max-width:640px;margin:0 0 36px}
.k-sechead--center{margin-left:auto;margin-right:auto;text-align:center}

/* ============ HEADER ============ */
.k-header{
  position:sticky;top:0;z-index:40;
  background:rgba(255,255,255,.92);backdrop-filter:blur(8px);
  border-bottom:1px solid var(--border);
}
.k-header-in{display:flex;align-items:center;gap:20px;min-height:72px}
.k-brand{display:flex;align-items:center;gap:12px;flex:none}
.k-logo{height:56px;width:auto}
.k-brand-txt{display:flex;flex-direction:column;line-height:1.1}
.k-brand-txt b{font:700 1rem/1.1 var(--font-sans);letter-spacing:-.01em}
.k-brand-txt span{font:var(--meta);color:var(--fg-muted)}
.k-nav{display:flex;flex-wrap:wrap;gap:2px 16px;margin:0 auto;align-items:center}
.k-navlink{font:600 .875rem/1 var(--font-sans);color:var(--ink-700);padding:8px 2px;border-bottom:2px solid transparent;transition:.15s ease;white-space:nowrap}
.k-navlink:hover{color:var(--accent)}
.k-nav-cta{display:none}
.k-header-cta{flex:none}
.k-burger{display:none;flex-direction:column;gap:4px;margin-left:auto;background:none;border:0;padding:8px;cursor:pointer}
.k-burger span{width:22px;height:2px;background:var(--fg);border-radius:2px;transition:.2s}

/* ============ BUTTONS ============ */
.k-btn{
  display:inline-flex;align-items:center;justify-content:center;gap:8px;
  font:600 .875rem/1 var(--font-sans);border-radius:var(--r-pill);
  padding:13px 24px;border:1px solid transparent;cursor:pointer;
  transition:.15s ease;white-space:nowrap;
}
.k-btn svg{width:18px;height:18px}
.k-btn--primary{background:var(--accent);color:var(--on-accent)}
.k-btn--primary:hover{background:var(--accent-hover)}
.k-btn--primary:active{background:var(--accent-press);transform:translateY(1px)}
.k-btn--ghost{background:transparent;border-color:var(--border-strong);color:var(--fg)}
.k-btn--ghost:hover{border-color:var(--fg);background:var(--paper-2)}
.k-btn--light{background:#fff;color:var(--ink-900)}
.k-btn--light:hover{background:var(--paper-2)}
.k-btn--sm{padding:9px 16px;font-size:.875rem}
.k-btn--block{width:100%}
.k-inv{filter:brightness(0) invert(1)}

/* ============ 2. HERO ============ */
.k-hero{position:relative;color:#fff;overflow:hidden;isolation:isolate}
.k-hero-bg{position:absolute;inset:0;z-index:-2;
  background:linear-gradient(135deg,#2b3a55 0%,#3f5a73 45%,#7a6a52 100%);
  display:flex;align-items:center;justify-content:center}
.k-hero-bg .k-ph{background:none;border:0;color:rgba(255,255,255,.5);font-size:1rem}
.k-hero-scrim{position:absolute;inset:0;z-index:-1;
  background:
    linear-gradient(95deg, rgba(12,10,8,.64) 0%, rgba(12,10,8,.42) 42%, rgba(12,10,8,.14) 70%, rgba(12,10,8,0) 92%),
    linear-gradient(180deg, rgba(12,10,8,.4) 0%, rgba(12,10,8,.26) 45%, rgba(12,10,8,.62) 100%)}
.k-hero-in{padding-top:108px;padding-bottom:96px;max-width:760px}
.k-hero .k-eyebrow{color:var(--saffron-400)}
/* тень тексту героя — читаемость поверх ярких белых вершин */
.k-hero .k-eyebrow,.k-hero-title,.k-hero-sub,.k-hero-meta{
  text-shadow:0 1px 18px rgba(8,6,4,.55), 0 1px 4px rgba(8,6,4,.5);
}
.k-hero-title{font:var(--display);letter-spacing:var(--tracking-display);margin:14px 0 0;text-wrap:balance}
.k-hero-sub{font:var(--body-lg);color:rgba(255,255,255,.9);margin:20px 0 0;max-width:54ch}
.k-hero-meta{display:flex;flex-wrap:wrap;gap:14px 28px;margin:28px 0 0}
.k-hero-meta div{display:flex;align-items:center;gap:9px;font:600 1rem/1.2 var(--font-sans)}
.k-hero-meta svg{width:20px;height:20px;color:var(--saffron-400)}
.k-hero-cta{display:flex;flex-wrap:wrap;gap:12px;margin:34px 0 0}

/* ============ 3. О ФЕСТИВАЛЕ ============ */
.k-about-grid{display:grid;grid-template-columns:1.3fr 1fr;gap:40px;align-items:center}
.k-about-single>div{max-width:760px}
.k-about-quote{
  font:700 1.25rem/1.3 var(--font-sans);
  letter-spacing:-.01em;color:var(--fg);margin:0 0 18px;text-wrap:balance;
}
.k-about-quote .k-wave{color:var(--accent)}
.k-about-bless{
  margin-top:20px;padding:14px 18px;background:var(--paper);
  border:1px solid var(--border);border-left:3px solid var(--accent);
  border-radius:var(--r-sm);font:var(--body-sm);color:var(--fg-muted);
}
.k-about-img{aspect-ratio:4/5;border-radius:var(--r-lg);box-shadow:var(--sh-2)}
.k-about-figure{margin:0}
.k-about-cap{margin-top:14px;text-align:center;display:flex;flex-direction:column;gap:3px}
.k-about-cap b{font:600 1rem/1.3 var(--font-sans);color:var(--fg)}
.k-about-cap span{font:var(--meta);color:var(--fg-muted)}

/* ============ 4. ЧТО ВАС ЖДЁТ ============ */
.k-cards{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}
.k-card{
  background:var(--paper);border:1px solid var(--border);border-radius:var(--r-md);
  padding:24px 20px;transition:.16s ease;
}
.k-card:hover{transform:translateY(-3px);box-shadow:var(--sh-3);border-color:var(--border-strong)}
.k-card-ico{
  width:44px;height:44px;border-radius:var(--r-sm);display:flex;align-items:center;justify-content:center;
  background:var(--accent-tint);color:var(--accent-press);margin-bottom:16px;
}
.k-card-ico svg{width:24px;height:24px}
.k-card h4{font:var(--h4);margin:0 0 6px}
.k-card-skt{font:var(--meta);color:var(--accent-2);font-weight:600;display:block;margin-bottom:4px}
.k-card p{font:var(--body-sm);color:var(--fg-muted);margin:0}

/* ============ 5. ОБ ЭТОМ МЕСТЕ ============ */
.k-place-head{display:grid;grid-template-columns:1.05fr .95fr;gap:44px;align-items:center;margin-bottom:36px}
.k-place-head .k-sechead{margin:0;max-width:none}
.k-place-head-img{width:100%;aspect-ratio:4/3;object-fit:contain;background:var(--paper-2);border-radius:var(--r-lg);border:1px solid var(--border)}
.k-place-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-bottom:28px}
.k-parallel{display:flex;gap:14px;padding:18px 20px;background:var(--paper);border:1px solid var(--border);border-radius:var(--r-md)}
.k-parallel b{display:block;font:var(--h4);margin:0 0 4px}
.k-parallel span{font:var(--body-sm);color:var(--fg-muted)}
.k-parallel .k-wave{color:var(--accent);font-weight:700;flex:none}
.k-gallery{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}
.k-gallery .k-ph,.k-gallery img{aspect-ratio:1/1;border-radius:var(--r-md)}
.k-gallery .k-ph:first-child,.k-gallery img.big{grid-column:span 2;grid-row:span 2;aspect-ratio:auto;height:100%}

/* ---- слайдер галереи ---- */
.k-slider{position:relative}
.k-slider-track{
  display:flex;gap:14px;overflow-x:auto;scroll-snap-type:x mandatory;
  scroll-behavior:smooth;padding:4px 2px 14px;
  scrollbar-width:thin;scrollbar-color:var(--border-strong) transparent;
}
.k-slider-track::-webkit-scrollbar{height:8px}
.k-slider-track::-webkit-scrollbar-track{background:transparent}
.k-slider-track::-webkit-scrollbar-thumb{background:var(--border-strong);border-radius:999px}
.k-slide{
  flex:0 0 auto;width:clamp(240px,30vw,340px);aspect-ratio:4/3;
  border:0;padding:0;margin:0;background:var(--paper-2);border-radius:var(--r-md);
  overflow:hidden;cursor:zoom-in;scroll-snap-align:start;position:relative;
}
.k-slide img{width:100%;height:100%;object-fit:cover;transition:transform .3s ease}
.k-slide:hover img{transform:scale(1.05)}
.k-slide::after{content:"";position:absolute;inset:0;background:rgba(20,18,15,0);transition:.2s ease}
.k-slide:hover::after{background:rgba(20,18,15,.12)}
.k-slide-play{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;pointer-events:none;z-index:1}
.k-slide-play svg{
  width:28px;height:28px;color:#fff;box-sizing:content-box;padding:13px;
  background:rgba(20,18,15,.55);border-radius:50%;backdrop-filter:blur(2px);transition:.2s ease;
}
.k-slide--video:hover .k-slide-play svg{background:var(--accent)}
.k-slider-btn{
  position:absolute;top:calc(50% - 7px);transform:translateY(-50%);z-index:2;
  width:46px;height:46px;border-radius:50%;border:1px solid var(--border);
  background:rgba(255,255,255,.95);color:var(--ink-900);cursor:pointer;
  display:flex;align-items:center;justify-content:center;box-shadow:var(--sh-2);transition:.15s ease;
}
.k-slider-btn:hover{background:#fff;box-shadow:var(--sh-3)}
.k-slider-btn svg{width:22px;height:22px}
.k-slider-prev{left:-12px}
.k-slider-next{right:-12px}

/* ---- лайтбокс ---- */
.k-lightbox{
  position:fixed;inset:0;z-index:100;display:flex;align-items:center;justify-content:center;
  background:rgba(15,13,11,.93);padding:24px;opacity:0;visibility:hidden;transition:opacity .2s ease;
}
.k-lightbox.open{opacity:1;visibility:visible}
.k-lb-img{max-width:92vw;max-height:84vh;object-fit:contain;border-radius:var(--r-md);box-shadow:var(--sh-4)}
.k-lb-btn{
  position:absolute;background:rgba(255,255,255,.12);border:0;color:#fff;cursor:pointer;
  width:52px;height:52px;border-radius:50%;display:flex;align-items:center;justify-content:center;
  transition:.15s ease;backdrop-filter:blur(4px);
}
.k-lb-btn:hover{background:rgba(255,255,255,.26)}
.k-lb-btn svg{width:26px;height:26px}
.k-lb-close{top:20px;right:24px;width:46px;height:46px}
.k-lb-prev{left:20px;top:50%;transform:translateY(-50%)}
.k-lb-next{right:20px;top:50%;transform:translateY(-50%)}
.k-lb-cap{position:absolute;bottom:42px;left:50%;transform:translateX(-50%);color:#fff;font:var(--body);text-align:center;max-width:80vw;text-shadow:0 1px 4px rgba(0,0,0,.5)}
.k-lb-counter{position:absolute;bottom:18px;left:50%;transform:translateX(-50%);color:rgba(255,255,255,.7);font:var(--meta)}
@media(max-width:560px){
  .k-slider-prev{left:2px}.k-slider-next{right:2px}
  .k-lb-prev{left:8px}.k-lb-next{right:8px}.k-lb-close{top:10px;right:12px}
}

/* ============ 6. УЧАСТНИКИ ============ */
.k-speakers{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}
.k-speaker{text-align:center;display:flex;flex-direction:column}
.k-speaker-ph{aspect-ratio:1/1;border-radius:var(--r-lg);margin-bottom:12px}
.k-speaker b{display:block;font:600 1rem/1.3 var(--font-sans)}
.k-speaker span{font:var(--meta);color:var(--fg-muted)}
/* фото-кнопка проповедника на всю ширину карточки */
.k-speaker-photo{padding:0;border:0;cursor:pointer;overflow:hidden;display:block;background:none}
.k-speaker-photo img{width:100%;height:auto;aspect-ratio:1/1;object-fit:cover;display:block;transition:transform .3s ease}
.k-speaker-photo:hover img{transform:scale(1.04)}
.k-spk-more{margin-top:auto;align-self:center;background:none;border:0;cursor:pointer;
  font:var(--meta);font-weight:600;color:var(--link);padding:8px 4px 0}
.k-spk-more::after{content:" →";transition:margin-left .2s ease;display:inline-block}
.k-spk-more:hover::after{margin-left:3px}

/* модалка участника */
.k-spk-modal{position:fixed;inset:0;z-index:200;display:none;align-items:center;justify-content:center;
  padding:24px;background:rgba(25,22,19,.6);backdrop-filter:blur(2px)}
.k-spk-modal.open{display:flex}
.k-spk-dialog{position:relative;background:var(--paper);border-radius:var(--r-lg);box-shadow:var(--sh-4);
  max-width:560px;width:100%;max-height:88vh;overflow:auto;padding:30px}
.k-spk-close{position:absolute;top:14px;right:14px;width:38px;height:38px;border:0;cursor:pointer;
  display:flex;align-items:center;justify-content:center;border-radius:var(--r-pill);
  background:var(--paper-2);color:var(--fg);transition:background .15s ease}
.k-spk-close:hover{background:var(--border)}
.k-spk-close i{width:20px;height:20px}
.k-spk-modal-head{display:flex;gap:18px;align-items:center;margin-bottom:18px;padding-right:34px}
.k-spk-modal-img{flex:none;width:96px;height:96px;border-radius:var(--r-md);object-fit:cover}
.k-spk-modal-name{font:var(--h3);margin:0}
.k-spk-modal-body p{font:var(--body-sm);color:var(--ink-700);margin:0 0 14px}
.k-spk-modal-body p:last-child{margin-bottom:0}
.k-spk-list{margin:0;display:flex;flex-direction:column;gap:8px}
.k-spk-list li{display:flex;gap:11px;font:var(--body-sm);color:var(--ink-700);align-items:baseline}

/* ============ 7. ПРОГРАММА ============ */
.k-prog{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-bottom:24px}
.k-progcol{background:var(--paper);border:1px solid var(--border);border-radius:var(--r-md);padding:24px 22px}
.k-progcol-day{font:var(--eyebrow);color:var(--accent-2)}
.k-progcol h4{font:var(--h4);margin:6px 0 14px}
.k-progcol ul li{display:flex;gap:11px;font:var(--body-sm);color:var(--ink-700);padding:6px 0;align-items:baseline}
.k-wave{color:var(--accent);flex:none;font-weight:700}
.k-excursion{
  display:grid;grid-template-columns:1.1fr 1fr;gap:0;overflow:hidden;
  border:1px solid var(--border);border-radius:var(--r-lg);background:var(--paper);
}
.k-excursion-body{padding:32px 34px}
.k-excursion .k-ph,.k-excursion img{border:0;border-radius:0;min-height:240px;height:100%}

/* ============ 8. ПРОЖИВАНИЕ ============ */
.k-bases{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin-bottom:24px}
.k-base{border:1px solid var(--border);border-radius:var(--r-lg);overflow:hidden;background:var(--paper);transition:.16s ease}
.k-base:hover{box-shadow:var(--sh-3);border-color:var(--border-strong)}
.k-base .k-ph,.k-base img{border:0;border-radius:0;aspect-ratio:16/9;height:auto}
.k-base-body{padding:24px 26px}
.k-base-body h3{font:var(--h3);margin:0 0 2px}
.k-base-cap{font:var(--meta);color:var(--accent-2);font-weight:600;margin-bottom:12px;display:block}
.k-base-body p{font:var(--body-sm);color:var(--fg-muted);margin:0 0 14px}
.k-feats{display:flex;flex-wrap:wrap;gap:8px}
.k-chip{font:600 .875rem/1 var(--font-sans);padding:8px 14px;border-radius:var(--r-pill);border:1px solid var(--border);color:var(--ink-700);background:var(--paper-2)}
.k-bring{display:flex;gap:12px;align-items:center;padding:16px 20px;background:var(--accent-tint);border-radius:var(--r-md);font:var(--body-sm);color:var(--saffron-700)}
.k-bring svg{width:22px;height:22px;flex:none}

/* ============ 9. УСЛОВИЯ / СТОИМОСТЬ ============ */
.k-cost-grid{display:grid;grid-template-columns:1.4fr 1fr;gap:24px;align-items:start}
.k-costlist{background:var(--paper);border:1px solid var(--border);border-radius:var(--r-lg);overflow:hidden}
.k-costrow{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:16px 24px;border-bottom:1px solid var(--border)}
.k-costrow:last-child{border-bottom:0}
.k-costrow-name{display:flex;align-items:center;gap:12px;font:600 1rem/1.3 var(--font-sans)}
.k-costrow-name svg{width:20px;height:20px;color:var(--accent-2)}
.k-costrow-name small{display:block;font:var(--meta);color:var(--fg-subtle);font-weight:400;margin-top:2px}
.k-costrow b{font:700 1rem/1 var(--font-sans);white-space:nowrap}
.k-cost-side{display:flex;flex-direction:column;gap:16px}
.k-sponsor{background:var(--blue-100);border:1px solid var(--blue-200);border-radius:var(--r-md);padding:20px 22px}
.k-sponsor b{display:block;font:var(--h4);color:var(--blue-700);margin-bottom:6px}
.k-sponsor p{font:var(--body-sm);color:var(--blue-700);margin:0}
.k-options{display:flex;flex-direction:column;gap:10px}
.k-option{display:flex;justify-content:space-between;gap:12px;padding:14px 18px;border:1px solid var(--border);border-radius:var(--r-md);background:var(--paper)}
.k-option b{font:600 1rem/1.3 var(--font-sans)}
.k-option span{font:var(--meta);color:var(--fg-muted)}
.k-option em{font-style:normal;font-weight:700;color:var(--accent-press);white-space:nowrap}

/* ============ 10. ЛОГИСТИКА ============ */
.k-route{display:grid;grid-template-columns:1fr 1fr;gap:40px;align-items:center}
.k-steps{position:relative;padding-left:8px}
.k-step{display:flex;gap:16px;padding-bottom:22px;position:relative}
.k-step:last-child{padding-bottom:0}
.k-step-dot{flex:none;width:14px;height:14px;border-radius:50%;background:var(--accent);margin-top:5px;position:relative;z-index:1}
.k-step:not(:last-child) .k-step-dot::after{content:"";position:absolute;left:50%;top:14px;transform:translateX(-50%);width:2px;height:calc(100% + 8px);background:var(--border-strong)}
.k-step b{display:block;font:600 1rem/1.3 var(--font-sans);margin-bottom:2px}
.k-step span{font:var(--body-sm);color:var(--fg-muted)}
.k-route-aside{background:var(--paper);border:1px solid var(--border);border-radius:var(--r-lg);padding:26px 28px}
.k-route-aside h4{font:var(--h4);margin:0 0 12px}
.k-route-aside ul li{display:flex;gap:10px;font:var(--body-sm);color:var(--ink-700);padding:5px 0}
.k-route-aside .k-wave{color:var(--accent-2)}

/* ============ 11. КАК ЗАБРОНИРОВАТЬ ============ */
.k-book{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:28px}
.k-booknum{
  width:40px;height:40px;border-radius:50%;background:var(--ink-900);color:#fff;
  display:flex;align-items:center;justify-content:center;font:700 1rem/1 var(--font-sans);margin-bottom:14px;
}
.k-bookstep{background:var(--paper);border:1px solid var(--border);border-radius:var(--r-md);padding:24px 22px}
.k-bookstep b{display:block;font:var(--h4);margin:0 0 6px}
.k-bookstep p{font:var(--body-sm);color:var(--fg-muted);margin:0}

/* форма заявки */
.k-form{max-width:640px;margin:0 auto;display:flex;flex-direction:column;gap:16px}
.k-form-row{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.k-field{display:flex;flex-direction:column;gap:7px;min-width:0}
.k-field--narrow{max-width:140px}
.k-field-label{font:var(--meta);color:var(--fg-muted)}
.k-field-label i{color:var(--accent);font-style:normal}
.k-input{
  width:100%;font:var(--body);color:var(--fg);background:var(--paper);
  border:1px solid var(--border-strong);border-radius:var(--r-md);
  padding:12px 14px;transition:.15s ease;
}
.k-input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px rgba(224,122,31,.15)}
.k-textarea{resize:vertical;min-height:80px;font-family:var(--font-sans)}
select.k-input{
  appearance:none;-webkit-appearance:none;cursor:pointer;padding-right:38px;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%23191613' stroke-width='2'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:right 13px center;
}
.k-field-hint{font:var(--meta);color:var(--fg-muted);margin-top:2px}
.k-checks{display:flex;flex-wrap:wrap;gap:8px 20px;align-items:center;padding-top:3px}
.k-check{display:inline-flex;align-items:center;gap:7px;font:var(--body-sm);color:var(--fg);cursor:pointer}
.k-check input{width:16px;height:16px;accent-color:var(--accent);cursor:pointer}
.k-form-modal-sub{font:var(--body-sm);color:var(--fg-muted);margin:4px 0 14px;padding-right:34px}
/* компактная форма в модалке - чтобы влезала в один экран */
#applyModal .k-form{max-width:none;gap:11px}
#applyModal .k-form-row{gap:14px}
#applyModal .k-field{gap:4px}
#applyModal .k-field-label{font-size:.8rem}
#applyModal .k-input{font-size:.875rem;padding:8px 12px}
#applyModal select.k-input{padding-right:34px;background-position:right 11px center}
#applyModal .k-textarea{min-height:54px}
#applyModal .k-spk-modal-name{font-size:1.15rem}
#applyModal .k-form-foot{gap:12px;margin-top:2px}
/* на десктопе модалка заявки шире - около 70% экрана */
@media(min-width:861px){
  #applyModal .k-spk-dialog{width:70vw;max-width:960px;padding:28px 40px}
}
.k-hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.k-form-foot{display:flex;align-items:center;gap:16px;flex-wrap:wrap}
.k-form-msg{font:var(--body-sm);margin:0}
.k-form-msg.is-ok{color:#2e7d32}
.k-form-msg.is-err{color:#c62828}
.k-form-alt{text-align:center;font:var(--body-sm);color:var(--fg-muted);margin:16px 0 0}
.k-form-alt a{color:var(--link)}
.k-form-closed{
  font:var(--body);color:var(--accent-press);
  background:var(--accent-tint);border:1px solid var(--saffron-400);
  border-radius:var(--r-md);padding:12px 16px;margin:0 0 4px;
}
.k-form:has(input:disabled){opacity:.6}

/* ============ 12. FAQ ============ */
.k-faq{max-width:760px;margin:0 auto}
.k-faq details{border-bottom:1px solid var(--border);padding:4px 0}
.k-faq summary{
  display:flex;justify-content:space-between;align-items:center;gap:16px;cursor:pointer;
  list-style:none;padding:18px 4px;font:600 1rem/1.4 var(--font-sans);
}
.k-faq summary::-webkit-details-marker{display:none}
.k-faq summary::after{content:"+";font:400 1.25rem/1 var(--font-sans);color:var(--accent);flex:none;transition:.2s}
.k-faq details[open] summary::after{transform:rotate(45deg)}
.k-faq-a{padding:0 4px 20px;font:var(--body);color:var(--fg-muted);max-width:64ch}

/* ============ 13. CTA / КОНТАКТЫ ============ */
.k-cta{position:relative;color:#fff;overflow:hidden;isolation:isolate;text-align:center}
.k-cta-bg{position:absolute;inset:0;z-index:-2;background:linear-gradient(135deg,#3f5a73,#2b3a55)}
.k-cta-scrim{position:absolute;inset:0;z-index:-1;background:rgba(20,18,15,.5)}
.k-cta-in{padding:88px 0}
.k-cta-in h2{font:var(--h2);letter-spacing:var(--tracking-tight);margin:0 auto;max-width:34ch;text-wrap:balance}
.k-cta-in p{font:var(--body-lg);color:rgba(255,255,255,.88);margin:16px auto 0;max-width:52ch}
.k-cta-row{display:flex;flex-wrap:wrap;gap:12px;justify-content:center;margin-top:30px}
.k-contacts{display:flex;flex-wrap:wrap;gap:14px 36px;justify-content:center;margin-top:30px}
.k-contact{display:flex;align-items:center;gap:10px;font:600 1rem/1.2 var(--font-sans)}
.k-contact svg{width:20px;height:20px;color:var(--saffron-400)}
.k-contact span{display:block;font:var(--meta);color:rgba(255,255,255,.7);font-weight:400}

/* ============ FOOTER ============ */
.k-footer{background:var(--ink-900);color:#e9e4da;padding:56px 0 28px}
.k-footer-in{display:grid;grid-template-columns:1.3fr 1fr 1fr;gap:40px}
.k-foot-logo{height:74px;filter:invert(1);margin-bottom:16px}
.k-foot-lead{font:var(--body-sm);color:#b8b1a4;max-width:34ch;margin:0 0 18px}
.k-footer h5{font:var(--eyebrow);color:#8d8678;margin:0 0 14px}
.k-footer-col a,.k-footer-col li{display:block;font:600 .875rem/1 var(--font-sans);color:#cfc8bb;padding:6px 0}
.k-footer-col a:hover{color:#fff}
.k-foot-legal{display:flex;flex-wrap:wrap;justify-content:space-between;gap:12px;border-top:1px solid rgba(255,255,255,.12);margin-top:40px;padding-top:22px}
.k-foot-legal span{font:var(--meta);color:#8d8678;max-width:60ch}

/* ============ RESPONSIVE ============ */
@media(max-width:980px){
  .k-cards{grid-template-columns:repeat(2,1fr)}
  .k-prog{grid-template-columns:1fr}
  .k-book{grid-template-columns:repeat(2,1fr)}
  .k-footer-in{grid-template-columns:1fr 1fr}
}
@media(max-width:860px){
  .k-nav{
    position:absolute;top:100%;left:0;right:0;background:#fff;border-bottom:1px solid var(--border);
    flex-direction:column;align-items:stretch;gap:0;padding:8px 0;display:none;box-shadow:var(--sh-3);
  }
  .k-nav.open{display:flex}
  .k-navlink{padding:13px 28px;border-bottom:none}
  .k-nav-cta{display:block;margin:8px 28px 6px;padding:12px;text-align:center;
    background:var(--accent);color:var(--on-accent);border-radius:var(--r-pill);font-weight:700}
  .k-nav-cta:hover{background:var(--accent-hover);color:var(--on-accent)}
  .k-header-cta{display:none}
  .k-burger{display:flex}
  .k-about-grid,.k-place-head,.k-place-grid,.k-bases,.k-cost-grid,.k-route,.k-excursion{grid-template-columns:1fr}
  .k-speakers{grid-template-columns:repeat(2,1fr)}
  .k-place-head{gap:24px}
  .k-gallery{grid-template-columns:repeat(2,1fr)}
  .k-gallery .k-ph:first-child{grid-column:span 2;grid-row:auto;aspect-ratio:16/9}
}
@media(max-width:560px){
  .k-section{padding:52px 0}
  .k-container{padding:0 20px}
  .k-cards,.k-book{grid-template-columns:1fr}
  .k-form-row{grid-template-columns:1fr}
  .k-field--narrow{max-width:none}
  .k-speakers{grid-template-columns:repeat(2,1fr)}
  .k-hero-in{padding-top:64px;padding-bottom:56px}
  .k-footer-in{grid-template-columns:1fr}
  .k-brand-txt{display:none}
  .k-logo{height:48px}
  /* слайдер: на тач-экранах листаем свайпом, стрелки прячем */
  .k-slider-btn{display:none}
  .k-slide{width:78vw}
  /* лайтбокс: компактные кнопки, чтобы не перекрывать фото */
  .k-lb-btn{width:42px;height:42px}
  .k-lb-btn svg{width:22px;height:22px}
  .k-lb-close{top:10px;right:12px}
  .k-lb-prev{left:6px}.k-lb-next{right:6px}
  .k-lb-cap{font-size:.9rem;bottom:48px;padding:0 12px}
  /* hero: мета и кнопки на всю ширину */
  .k-hero-meta{gap:10px 0}
  .k-hero-meta div{font-size:.95rem}
  .k-hero-cta{flex-direction:column;align-items:stretch}
  .k-hero-cta .k-btn{width:100%}
}
@media(prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto}}
