/* Сайт Светлицы — общие стили всех страниц. Брендбук 1.0, регистр А: лён, графит, солнце точкой, олива.
   Цвета приходят из бренд.json (подставляются в :root при сборке). Тени не используем — отделяем фоном и линией.
   Правило близости: поле карточки больше промежутков внутри неё. */

:root { --len:#f6f4f0;--len2:#ece8e1;--ink:#2b2926;--sun:#d99a2b;--sun-ink:#8b5a00;--olive:#7d8b6c;--olive-deep:#4f5c43;--blue:#6b7f95; --mut:#5f5a53; --line:#dcd6cc; --white:#fbfaf7;
  --serif:"Cormorant Garamond", Georgia, serif; --uni:"Cormorant Unicase", Georgia, serif; --sans:"Manrope", system-ui, -apple-system, sans-serif;
  --w:1120px; --gut:16px; color-scheme:light }
* { box-sizing:border-box }
html { scroll-behavior:smooth; -webkit-text-size-adjust:100% }
body { margin:0; background:var(--len); color:var(--ink); font:16px/1.6 var(--sans) }
img { max-width:100%; display:block }
a { color:var(--ink); text-underline-offset:3px }
p { margin:0 }
.wrap { max-width:var(--w); margin:0 auto; padding:0 var(--gut) }
.narrow { max-width:720px }

/* метки, заголовки */
.lbl { font:600 14px/1 var(--uni); letter-spacing:.14em; color:var(--sun-ink); margin:0 0 14px; display:block }
h1, h2 { font-family:var(--serif); font-weight:600; line-height:1.06; margin:0; text-wrap:balance; letter-spacing:0 }
h1 { font-size:clamp(40px, 6.2vw, 64px) }
h1 i, h2 i { font-weight:500 }
h2 { font-size:clamp(30px, 4vw, 40px) }
h3 { font:600 17px/1.35 var(--sans); margin:0 }
.lead { font-size:clamp(17px, 2vw, 19px); color:var(--mut); max-width:36em }
.mut { color:var(--mut) }
.small { font-size:14px }
.head { display:grid; gap:14px; margin-bottom:36px; max-width:760px }
.head .lbl { margin:0 }

/* кнопки */
.btn { display:inline-flex; align-items:center; justify-content:center; gap:8px; background:var(--ink); color:var(--len); border:1.5px solid var(--ink);
  border-radius:10px; padding:13px 22px; font:600 16px/1.2 var(--sans); text-decoration:none; cursor:pointer; white-space:nowrap }
.btn:hover { background:#000 }
.btn.ghost { background:transparent; color:var(--ink) }
.btn.ghost:hover { background:var(--len2) }
.btn.sm { padding:9px 16px; font-size:14px }
.btns { display:flex; flex-wrap:wrap; gap:12px; margin-top:32px }
.more { font-weight:600; text-decoration:none; border-bottom:1.5px solid var(--sun); padding-bottom:2px }
.more:hover { color:var(--sun-ink) }
:focus-visible { outline:2px solid var(--sun-ink); outline-offset:3px }

/* шапка и меню */
.site-top { position:sticky; top:0; z-index:30; background:var(--len); border-bottom:1px solid var(--line) }
.site-top .wrap { display:flex; align-items:center; gap:28px; height:72px }
.logo { display:block; flex:none; line-height:0 }
.logo svg { height:40px; width:auto }
.menu { display:flex; gap:4px; margin-left:auto; align-items:center }
.menu a { text-decoration:none; font-size:15px; font-weight:500; padding:8px 12px; border-radius:8px; color:var(--ink) }
.menu a:hover { background:var(--len2) }
.menu a[aria-current="page"] { background:var(--len2); font-weight:600 }
.top-cta { margin-left:8px }
.burger { display:none; margin-left:auto; width:44px; height:44px; border:1px solid var(--line); border-radius:10px; background:transparent;
  cursor:pointer; place-items:center }
.burger span, .burger span::before, .burger span::after { display:block; width:18px; height:1.5px; background:var(--ink); position:relative; content:"" }
.burger span::before { position:absolute; top:-6px } .burger span::after { position:absolute; top:6px }
.sheet { position:fixed; inset:0; z-index:40; background:var(--len); display:none; flex-direction:column; padding:0 var(--gut) 32px; overflow:auto }
.sheet.open { display:flex }
.sheet-head { display:flex; align-items:center; justify-content:space-between; height:72px; border-bottom:1px solid var(--line); margin-bottom:12px }
.sheet-x { width:44px; height:44px; border:1px solid var(--line); border-radius:10px; background:transparent; font-size:26px; line-height:1; cursor:pointer; color:var(--ink) }
.sheet nav a { display:flex; justify-content:space-between; align-items:baseline; padding:14px 0; border-bottom:1px solid var(--line);
  font:600 30px/1.1 var(--serif); text-decoration:none }
.sheet nav a small { font:500 13px var(--sans); color:var(--mut) }
.sheet nav a[aria-current="page"] { color:var(--sun-ink) }
.sheet .btn { margin-top:24px; width:100% }
.sheet .soc { margin-top:24px }
@media (max-width:1040px) { .menu, .top-cta { display:none } .burger { display:grid } }

/* секции */
.sec { padding:88px 0 }
.sec + .sec { border-top:1px solid var(--line) }
.sec.tint { background:var(--len2); border-top:0 }
.sec.tint + .sec { border-top:0 }
.sec.deep { background:var(--olive-deep); color:var(--len); border-top:0 }
.sec.deep + .sec { border-top:0 }
.deep .lbl { color:var(--sun) } .deep .mut, .deep .lead { color:#d9ddd2 } .deep a { color:var(--len) }
.deep .btn { background:var(--len); color:var(--ink); border-color:var(--len) }
.deep .btn.ghost { background:transparent; color:var(--len); border-color:var(--len) }
@media (max-width:720px) { .sec { padding:60px 0 } }

/* первый экран */
.hero { padding:56px 0 80px }
.hero-grid { display:grid; grid-template-columns:1.1fr .9fr; gap:48px; align-items:center }
.hero .lead { margin-top:22px }
.hero-art { position:relative; justify-self:center; width:min(440px, 100%) }
.hero-art img { width:100%; height:auto; aspect-ratio:1; object-fit:cover; border-radius:50%; mix-blend-mode:multiply }
.hero .for { margin-top:20px; font-size:14px; color:var(--mut) }
.page-hero { padding:56px 0 48px; border-bottom:1px solid var(--line) }
.page-hero .lead { margin-top:18px }
@media (max-width:860px) { .hero-grid { grid-template-columns:1fr; gap:28px } .hero-art { order:-1; width:min(280px, 80%) } .hero { padding-top:28px } }

/* карточки встреч */
.ev-grid { display:grid; grid-template-columns:repeat(3, minmax(0, 1fr)); gap:16px }
.ev { display:grid; grid-template-rows:auto 1fr; background:var(--white); border:1px solid var(--line); border-radius:12px; overflow:hidden;
  text-decoration:none; color:var(--ink); transition:border-color .15s }
.ev:hover { border-color:var(--ink) }
.ev-date { display:flex; align-items:center; gap:16px; padding:18px 24px; background:var(--len2) }
.ev-date b { font:600 46px/1 var(--serif) }
.ev-date span { font:600 13px/1.35 var(--uni); letter-spacing:.12em; color:var(--mut) }
.ev-body { padding:22px 24px 24px; display:grid; gap:10px; align-content:start }
.ev-body h3 { font:600 26px/1.1 var(--serif) }
.ev-body h3 i { display:block; font-weight:500; font-size:20px; margin-top:2px }
.ev-meta { font-size:14px; color:var(--mut) }
.ev-foot { display:flex; justify-content:space-between; align-items:center; gap:12px; margin-top:8px; padding-top:14px; border-top:1px solid var(--line); font-size:14px }
.ev-foot b { font-size:16px }
.tag { display:inline-block; justify-self:start; font:600 12px/1 var(--sans); letter-spacing:.02em; border:1px solid var(--olive); color:var(--olive-deep);
  border-radius:99px; padding:6px 10px }
.tag.big { border-color:var(--sun); color:var(--sun-ink) } .tag.out { border-color:var(--blue); color:#46586c }
.seats { font-weight:600; color:var(--olive-deep) } .seats.few { color:var(--sun-ink) }
.example { display:inline-block; font:600 12px/1 var(--sans); background:var(--sun); color:var(--ink); border-radius:6px; padding:5px 8px; vertical-align:middle }
@media (max-width:960px) { .ev-grid { grid-template-columns:1fr 1fr } }
@media (max-width:640px) { .ev-grid { grid-template-columns:1fr } }

/* манифест */
.manifest { text-align:center }
.manifest .wrap { display:grid; justify-items:center; gap:24px; max-width:860px }
.manifest svg.mk { width:52px; height:52px }
.manifest q { font:italic 500 clamp(26px, 3.6vw, 38px)/1.3 var(--serif); quotes:none; text-wrap:balance }
.manifest .sign { font:500 22px var(--serif); color:var(--sun); display:flex; align-items:center; gap:14px; white-space:nowrap }
.manifest .sign::before, .manifest .sign::after { content:""; width:36px; height:1px; background:currentColor; opacity:.6 }

/* лучи */
.rays { display:grid; grid-template-columns:repeat(4, minmax(0, 1fr)); gap:12px }
.ray { background:var(--white); border:1px solid var(--line); border-radius:12px; padding:22px; display:grid; gap:6px; align-content:start }
.ray .n { font:600 12px/1 var(--uni); letter-spacing:.14em; color:var(--sun-ink) }
.ray h3 { font:600 24px/1.1 var(--serif); margin-top:6px }
.ray .i { font:italic 500 18px/1.3 var(--serif); color:var(--olive-deep) }
.ray p.d { font-size:14px; color:var(--mut); margin-top:4px }
.ray.core { background:var(--olive-deep); color:var(--len); border-color:var(--olive-deep) }
.ray.core .n { color:var(--sun) } .ray.core p.d { color:#d9ddd2 }
@media (max-width:960px) { .rays { grid-template-columns:1fr 1fr } }
@media (max-width:480px) { .rays { grid-template-columns:1fr } }

/* шаги */
.steps { display:grid; grid-template-columns:repeat(4, minmax(0, 1fr)); gap:32px; counter-reset:st }
.step { display:grid; gap:8px; align-content:start; padding-top:18px; border-top:2px solid var(--ink) }
.step .when { font:600 13px/1 var(--uni); letter-spacing:.12em; color:var(--sun-ink) }
.step h3 { font:600 26px/1.1 var(--serif) }
.step p { font-size:15px; color:var(--mut) }
.deep .step { border-top-color:var(--sun) } .deep .step p { color:#d9ddd2 }
@media (max-width:860px) { .steps { grid-template-columns:1fr 1fr; gap:28px 24px } }
@media (max-width:480px) { .steps { grid-template-columns:1fr } }

/* ход встречи */
.flow { display:grid; grid-template-columns:repeat(5, minmax(0, 1fr)); gap:0; border:1px solid var(--line); border-radius:12px; background:var(--white); overflow:hidden }
.flow div { padding:22px 20px; display:grid; gap:6px; align-content:start; border-left:1px solid var(--line) }
.flow div:first-child { border-left:0 }
.flow time { font:600 13px/1 var(--uni); letter-spacing:.12em; color:var(--sun-ink) }
.flow b { font:600 21px/1.15 var(--serif) }
.flow span { font-size:14px; color:var(--mut) }
@media (max-width:860px) { .flow { grid-template-columns:1fr } .flow div { border-left:0; border-top:1px solid var(--line); grid-template-columns:72px 1fr; column-gap:12px }
  .flow div:first-child { border-top:0 } .flow time { grid-row:span 2; padding-top:4px } }

/* фото и отзывы */
.gallery { display:grid; grid-template-columns:1fr 1.5fr 1fr; gap:12px }
.gallery figure { margin:0; border-radius:12px; overflow:hidden; background:var(--len2); aspect-ratio:4/5 }
.gallery figure:nth-child(2) { aspect-ratio:auto }
.gallery img { width:100%; height:100%; object-fit:cover }
.reviews { display:grid; grid-template-columns:repeat(3, minmax(0, 1fr)); gap:16px; margin-top:16px }
.review { margin:0; background:var(--white); border:1px solid var(--line); border-radius:12px; padding:26px; display:grid; gap:14px; align-content:space-between }
.review p { font:italic 500 20px/1.4 var(--serif) }
.review cite { font:normal 14px var(--sans); color:var(--mut) }
@media (max-width:860px) { .gallery { grid-template-columns:1fr 1fr } .gallery figure:nth-child(2) { grid-column:span 2; grid-row:1; aspect-ratio:16/9 } .reviews { grid-template-columns:1fr } }

/* две колонки, плашки */
.split { display:grid; grid-template-columns:1fr 1fr; gap:56px; align-items:start }
.split.wide-left { grid-template-columns:1.3fr 1fr }
.box { background:var(--white); border:1px solid var(--line); border-radius:12px; padding:28px }
.box.tinted { background:var(--len2); border-color:var(--len2) }
.box h3 + * { margin-top:10px }
.box ul, .list { margin:0; padding-left:20px } .box li, .list li { margin:6px 0 }
.quote { font:italic 500 23px/1.4 var(--serif); margin:0 }
.quote small { display:block; margin-top:10px; font:normal 13px var(--sans); color:var(--mut) }
.cards2 { display:grid; grid-template-columns:repeat(2, minmax(0, 1fr)); gap:16px }
.cards3 { display:grid; grid-template-columns:repeat(3, minmax(0, 1fr)); gap:16px }
@media (max-width:860px) { .split, .split.wide-left, .cards2, .cards3 { grid-template-columns:1fr; gap:24px } }

/* таблица «это не…» */
.not { border-top:1px solid var(--line) }
.not div { display:grid; grid-template-columns:280px 1fr; gap:24px; padding:18px 0; border-bottom:1px solid var(--line) }
.not b { font:600 22px/1.2 var(--serif) }
.not span { color:var(--mut) }
@media (max-width:720px) { .not div { grid-template-columns:1fr; gap:4px } }

/* вопросы */
.faq details { border-bottom:1px solid var(--line); padding:18px 0 }
.faq details:first-child { border-top:1px solid var(--line) }
.faq summary { font-weight:600; font-size:17px; cursor:pointer; list-style:none; display:flex; justify-content:space-between; gap:16px }
.faq summary::-webkit-details-marker { display:none }
.faq summary::after { content:"+"; font:400 24px/1 var(--sans); color:var(--sun-ink); flex:none }
.faq details[open] summary::after { content:"–" }
.faq details p { margin-top:10px; color:var(--mut); max-width:46em }

/* цены */
.prices { display:grid; grid-template-columns:repeat(3, minmax(0, 1fr)); gap:16px }
.price { background:var(--white); border:1px solid var(--line); border-radius:12px; padding:28px; display:grid; gap:10px; align-content:start }
.price b { font:600 40px/1 var(--serif) }
.price b small { font:500 15px var(--sans); color:var(--mut) }
@media (max-width:860px) { .prices { grid-template-columns:1fr } }

/* команда */
.team { display:grid; grid-template-columns:repeat(4, minmax(0, 1fr)); gap:16px }
.person { display:grid; gap:6px; align-content:start }
.person .ph { aspect-ratio:4/5; border-radius:12px; background:var(--len2); border:1px dashed var(--olive); display:grid; place-items:center;
  font-size:13px; color:var(--mut); text-align:center; margin-bottom:10px }
.person .ph img { width:100%; height:100%; object-fit:cover; border-radius:12px }
.person .role { font:600 12px/1.2 var(--uni); letter-spacing:.12em; color:var(--sun-ink) }
.person b { font:600 22px/1.15 var(--serif) }
.person span { font-size:14px; color:var(--mut) }
@media (max-width:960px) { .team { grid-template-columns:repeat(2, minmax(0, 1fr)) } }

/* календарь */
.cal-tools { display:flex; flex-wrap:wrap; gap:8px; margin-bottom:32px }
.fbtn { font:600 14px var(--sans); border:1px solid var(--line); background:var(--white); color:var(--ink); border-radius:99px; padding:9px 16px; cursor:pointer }
.fbtn[aria-pressed="true"] { background:var(--ink); color:var(--len); border-color:var(--ink) }
.cal { display:grid; grid-template-columns:300px minmax(0, 1fr); gap:48px; align-items:start }
.cal-side { position:sticky; top:96px; display:grid; gap:16px }
.mgrid { background:var(--white); border:1px solid var(--line); border-radius:12px; padding:20px }
.mgrid h3 { font:600 22px/1 var(--serif); margin-bottom:14px }
.mgrid .dows, .mgrid .days { display:grid; grid-template-columns:repeat(7, 1fr); gap:2px; text-align:center }
.mgrid .dows span { font:600 11px/1 var(--uni); letter-spacing:.1em; color:var(--mut); padding-bottom:8px }
.mgrid .days span, .mgrid .days a { font-size:14px; line-height:34px; border-radius:8px; color:var(--mut); text-decoration:none }
.mgrid .days a { background:var(--olive); color:var(--len); font-weight:700 }
.mgrid .days a.big { background:var(--sun); color:var(--ink) } .mgrid .days a.out { background:var(--blue); color:var(--len) }
.mgrid .days a:hover { outline:2px solid var(--sun); outline-offset:1px }
.legend { display:flex; flex-wrap:wrap; gap:8px 16px; font-size:13px; color:var(--mut) }
.legend i { display:inline-block; width:10px; height:10px; border-radius:3px; margin-right:6px; background:var(--olive); vertical-align:0 }
.legend i.big { background:var(--sun) } .legend i.out { background:var(--blue) }
.month + .month { margin-top:48px }
.month > h2 { font-size:34px; margin-bottom:8px }
.row { display:grid; grid-template-columns:92px minmax(0, 1fr) auto; gap:24px; align-items:center; padding:24px 0; border-bottom:1px solid var(--line); scroll-margin-top:96px }
.row:target { background:var(--len2); margin:0 -16px; padding-left:16px; padding-right:16px; border-radius:12px }
.row .d b { display:block; font:600 46px/1 var(--serif) }
.row .d span { font:600 12px/1.3 var(--uni); letter-spacing:.12em; color:var(--mut) }
.row h3 { font:600 26px/1.1 var(--serif); margin:8px 0 6px }
.row h3 a { text-decoration:none } .row h3 a:hover { text-decoration:underline }
.row h3 i { font-weight:500 }
.row .meta { font-size:14px; color:var(--mut) }
.row .act { display:grid; gap:8px; justify-items:end; text-align:right; font-size:14px }
.row .act b { font-size:17px }
.row.hide { display:none }
@media (max-width:960px) { .cal { grid-template-columns:1fr } .cal-side { position:static; order:2; grid-template-columns:repeat(auto-fit, minmax(260px, 1fr)) } }
@media (max-width:640px) { .row { grid-template-columns:64px minmax(0, 1fr) } .row .d b { font-size:36px } .row .act { grid-column:2; justify-items:start; text-align:left; grid-auto-flow:column; align-items:center; justify-content:space-between } }

/* страница встречи */
.ev-page { display:grid; grid-template-columns:minmax(0, 1fr) 380px; gap:56px; align-items:start; padding:48px 0 88px }
.ev-page aside { position:sticky; top:96px }
.ev-page section + section { margin-top:48px }
.chips { display:flex; flex-wrap:wrap; gap:8px; margin:22px 0 0 }
.chip { border:1px solid var(--olive); border-radius:99px; padding:6px 12px; font-size:13px }
.chip i { font:italic 500 15px var(--serif) }
.facts { background:var(--len2); border-radius:14px; padding:28px }
.facts dl { display:grid; grid-template-columns:auto 1fr; gap:10px 16px; margin:0 0 24px; font-size:15px }
.facts dt { color:var(--mut) } .facts dd { margin:0; font-weight:500 }
.home-box { background:var(--olive-deep); color:var(--len); border-radius:14px; padding:32px }
.home-box .lbl { color:var(--sun) } .home-box ul { padding-left:20px; margin:12px 0 0 } .home-box li { margin:6px 0 }
.home-box .ray-line { font:italic 500 22px/1.3 var(--serif); margin-top:16px }
.tl { border-top:1px solid var(--line) }
.tl div { display:grid; grid-template-columns:64px 1fr; gap:12px; padding:12px 0; border-bottom:1px solid var(--line) }
.tl time { font-weight:700; color:var(--sun-ink); font-variant-numeric:tabular-nums }
.crumbs { font-size:14px; color:var(--mut); padding-top:24px } .crumbs a { color:var(--mut) }
@media (max-width:960px) { .ev-page { grid-template-columns:1fr; gap:40px } .ev-page aside { position:static } }

/* формы */
form.f { display:grid; gap:14px }
form.f .two { display:grid; grid-template-columns:1fr 1fr; gap:14px }
form.f label { display:grid; gap:6px; font-size:14px; font-weight:600 }
form.f input:not([type=checkbox]):not([type=radio]), form.f select, form.f textarea { font:400 16px var(--sans); padding:11px 12px; border:1px solid #cdc6ba;
  border-radius:8px; background:var(--white); width:100%; color:var(--ink) }
form.f textarea { min-height:96px; resize:vertical }
.check { display:flex !important; gap:10px; align-items:flex-start; font-weight:400 !important; font-size:13px !important; line-height:1.5; cursor:pointer }
.cbox { flex:none; display:grid; margin-top:1px }
.cbox input { appearance:none; -webkit-appearance:none; width:20px; height:20px; margin:0; padding:0; border:1.5px solid var(--olive); border-radius:5px; background:var(--white); cursor:pointer }
.cbox input:checked { background:var(--olive-deep) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath d='M5 10.5l3.2 3.2L15 7' fill='none' stroke='%23f6f4f0' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/16px no-repeat; border-color:var(--olive-deep) }
.pills { display:flex; flex-wrap:wrap; gap:8px }
.pill { position:relative }
.pill input { position:absolute; opacity:0; inset:0; cursor:pointer }
.pill span { display:inline-block; font:500 14px var(--sans); border:1px solid var(--line); background:var(--white); border-radius:99px; padding:8px 14px }
.pill input:checked + span { background:var(--ink); color:var(--len); border-color:var(--ink) }
.pill input:focus-visible + span { outline:2px solid var(--sun-ink); outline-offset:2px }
.hp { position:absolute; left:-9999px }
.msg { font-weight:600; min-height:1em } .done { font:500 24px/1.35 var(--serif) }
.formbox { background:var(--len2); border-radius:14px; padding:clamp(24px, 4vw, 44px) }
.deep .check a { color:var(--len) }
@media (max-width:560px) { form.f .two { grid-template-columns:1fr } }

/* соцсети */
.soc { display:flex; flex-wrap:wrap; gap:8px }
.soc a { display:inline-flex; align-items:center; gap:8px; border:1px solid var(--line); border-radius:99px; padding:9px 16px; font-size:14px; font-weight:600; text-decoration:none; background:var(--white) }
.soc a:hover { border-color:var(--ink) }
.soc a i { width:8px; height:8px; border-radius:50%; background:var(--sun) }
.deep .soc a { background:transparent; border-color:#8c977f; color:var(--len) }

/* подвал */
.site-foot { background:var(--ink); color:#cfcac2; padding:64px 0 40px; font-size:14px }
.site-foot a { color:var(--len); text-decoration:none } .site-foot a:hover { text-decoration:underline }
.foot-grid { display:grid; grid-template-columns:1.4fr 1fr 1fr 1fr; gap:32px }
.foot-grid h4 { font:600 12px/1 var(--uni); letter-spacing:.14em; color:var(--sun); margin:0 0 16px }
.foot-grid ul { list-style:none; margin:0; padding:0; display:grid; gap:10px }
.foot-brand svg { height:44px; width:auto }
.foot-brand p { margin-top:16px; max-width:28em }
.foot-legal { margin-top:48px; padding-top:20px; border-top:1px solid #45423d; display:flex; flex-wrap:wrap; justify-content:space-between; gap:12px; font-size:13px; color:#9e988f }
.foot-legal a { color:#cfcac2 }
@media (max-width:860px) { .foot-grid { grid-template-columns:1fr 1fr } .foot-brand { grid-column:span 2 } }

/* плашка черновика */
.draft { background:var(--sun); color:var(--ink); font-size:13px; text-align:center; padding:8px var(--gut); font-weight:600 }
.draft a { color:var(--ink) }
.ph-text { background:#f3e2bd; border-radius:4px; padding:0 .3em; color:var(--sun-ink); font-weight:600 }

/* светлая плашка на тёмном поле — свои цвета, не цвета поля */
.deep .formbox, .deep .box { color:var(--ink) }
.deep .formbox .mut, .deep .box .mut { color:var(--mut) }
.deep .formbox .btn, .deep .box .btn { background:var(--ink); color:var(--len); border-color:var(--ink) }
.deep .formbox a:not(.btn), .deep .box a:not(.btn) { color:var(--ink) }

/* лестница Светлицы: ступени растут вверх, у каждой — срок; первая — «вы здесь» */
.stairs { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:12px; align-items:end }
.stair { background:var(--white); border:1px solid var(--line); border-radius:12px; padding:24px; display:grid; gap:8px; align-content:start }
.stair:nth-child(1) { min-height:230px; background:var(--olive-deep); color:var(--len); border-color:var(--olive-deep) }
.stair:nth-child(1) p, .stair:nth-child(1) .k { color:#d9ddd2 } .stair:nth-child(1) .n { color:var(--sun) }
.stair:nth-child(2) { min-height:280px } .stair:nth-child(3) { min-height:330px } .stair:nth-child(4) { min-height:380px; background:var(--len2) }
.stair .n { font:600 12px/1.3 var(--uni); letter-spacing:.14em; color:var(--sun-ink) }
.stair h3 { font:600 26px/1.1 var(--serif) } .stair p { font-size:14px; color:var(--mut) }
.stair .k { font-size:13px; font-weight:600; color:var(--mut); border-top:1px solid var(--line); padding-top:10px; margin-top:6px }
.stair:nth-child(1) .k { border-color:#6b775e }
.here { justify-self:start; font:600 12px/1 var(--sans); background:var(--sun); color:var(--ink); border-radius:6px; padding:5px 8px }
.tint .stair:nth-child(4) { background:var(--len) }
@media (max-width:860px) { .stairs { grid-template-columns:1fr 1fr } .stair { min-height:0 !important } }
@media (max-width:520px) { .stairs { grid-template-columns:1fr } }

/* плитки под первым экраном */
.tiles { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:24px; margin-top:48px }
.tile { border-top:2px solid var(--ink); padding-top:14px; display:grid; gap:4px; align-content:start }
.tile em { font:600 13px var(--sans); color:var(--sun-ink); font-style:normal }
.tile b { font:600 23px/1.1 var(--serif) } .tile span { font-size:14px; color:var(--mut) }
@media (max-width:640px) { .tiles { grid-template-columns:1fr; gap:18px } }

/* первые семьи: список с солнечными точками */
.firsts { display:grid; gap:14px; margin:28px 0 0; padding:0; list-style:none }
.firsts li { display:grid; grid-template-columns:24px 1fr; gap:10px }
.firsts li::before { content:""; width:12px; height:12px; border-radius:50%; background:var(--sun); margin-top:7px }
.first-step { margin-top:24px; padding:16px 20px; border-radius:12px; background:var(--len2); font-size:15px }
.first-step a { font-weight:600 }

/* поля форм: тонкая рамка видна на любом фоне; при наведении и фокусе — темнее */
form.f input:not([type=checkbox]):not([type=radio]):hover, form.f textarea:hover { border-color:var(--mut) }
form.f input:not([type=checkbox]):not([type=radio]):focus, form.f textarea:focus { border-color:var(--ink); outline:none }
form.f .dd-btn { border-color:#cdc6ba }
form.f fieldset legend { padding:0 }

.meta-note { margin-top:14px; font-size:12px; color:#8f897f }

/* цена открытия: прежняя цена зачёркнута, мельче и тише */
.price b s { font-size:24px; font-weight:500; color:#9a9389; text-decoration-thickness:1.5px; margin-right:6px }
.price .open { justify-self:start; font:600 12px/1 var(--sans); background:var(--sun); color:var(--ink); border-radius:6px; padding:5px 8px }

/* шаги — без чёрной линии: знак распускается от шага к шагу (вариант Б) */
.step { border-top:0 !important; padding-top:0 !important; gap:10px }
.step .bloom { display:block; margin-bottom:6px }
.deep .step .bloom ellipse[fill="none"] { stroke:#a9b796 }

/* шаг: знак и «шаг N» — одной строкой, по центру; заголовок и текст ниже, по той же левой линии (23.10.2026) */
.step { grid-template-columns:44px 1fr; column-gap:14px; align-items:center }
.step > :not(.bloom):not(.when) { grid-column:1 / -1 }
.step .bloom { width:44px; height:44px; margin:0 0 0 -2px }   /* -2px: поле знака, лепестки встают по линии текста */
.step .when { margin:0 }
.step h3 { margin-top:10px }

/* карточка с настоящим фото: без пунктира заглушки, фото ровно по колонке (23.10.2026) */
.person .ph:has(img) { display:block; border:0; overflow:hidden; background:var(--len2) }
.person .ph img { display:block; width:100%; height:100%; object-fit:cover; object-position:50% 30%; border-radius:12px }

/* плитки под первым экраном: вместо чёрной линии — нить (две волны) */
.tile { border-top:0; padding-top:0 }
.tile .nit { display:block; width:100%; height:18px; margin-bottom:8px }
.tile .shtrih { display:block; width:64px; height:12px; margin-bottom:12px }

/* ── телефон: ничего не шире экрана (проверка WebKit, iPhone 13, 23.10.2026) ── */
.manifest .wrap { grid-template-columns:minmax(0, 1fr) }
.manifest .wrap > * { max-width:100% }
.steps3 { grid-template-columns:repeat(3, minmax(0, 1fr)) }
@media (max-width:860px) { .steps3 { grid-template-columns:1fr } }
@media (max-width:520px) {
  .manifest .sign { white-space:normal; font-size:19px; gap:10px; text-align:center }
  .manifest .sign::before, .manifest .sign::after { width:18px; flex:none }
}
@media (max-width:640px) {
  .row .act { grid-auto-flow:row; display:flex; flex-wrap:wrap; align-items:center; gap:8px 14px; justify-content:flex-start }
  .row .act .btn { flex-basis:100% }
}
.review cite { display:flex; align-items:center; gap:8px }
.review cite .heart { width:16px; height:16px; flex:none }

/* документы (политика, согласия) — читательская колонка */
.doc h2 { font-size:clamp(24px, 3vw, 30px); margin:44px 0 14px }
.doc h3 { margin:28px 0 10px }
.doc p, .doc li { margin:0 0 12px; max-width:44em }
.doc ul, .doc ol { padding-left:22px; margin:0 0 14px }
.doc table { display:block; max-width:100%; overflow-x:auto; border-collapse:collapse; margin:16px 0 24px; font-size:14px }
.doc th, .doc td { border:1px solid var(--line); padding:10px 12px; text-align:left; vertical-align:top; min-width:140px }
.doc th { background:var(--len2); font-weight:600 }
.doc strong { font-weight:600 }
.doc > :first-child { margin-top:0 }
.doc > h2, .doc > h3, .doc > p, .doc > ul, .doc > ol { max-width:760px }
.doc .box { max-width:760px }

/* «Наставницам», первый экран: цитата в карточке (выбор основателя 23.10.2026) */
.nh-card { background:var(--len2); border-radius:16px; padding:40px 36px; display:grid; gap:16px; align-content:center; min-height:280px }
.nh-card .shtrih { display:block; width:64px; height:12px }
.nh-card p { font:italic 500 clamp(26px, 3vw, 34px)/1.25 var(--serif); margin:0 }
.nh-card span { color:var(--mut); font-size:15px }
@media (max-width:860px) { .nh-card { min-height:0; padding:28px 24px } }

/* ── окна и уведомления (согласовано 23.10.2026; образец — okna.html) ── */
dialog.win { width:min(560px, calc(100vw - 32px)); max-height:calc(100dvh - 48px); padding:0; border:0; border-radius:18px; background:var(--len); color:var(--ink); overflow:auto }
dialog.win::backdrop { background:rgba(43,41,38,.5) }
.win-in { padding:36px 32px 32px; display:grid; gap:14px; position:relative; outline:none }
.win-x { position:absolute; top:14px; right:14px; width:40px; height:40px; border-radius:50%; border:0; background:var(--len2); font-size:24px; line-height:1; color:var(--ink); cursor:pointer }
.win-in h2 { font-size:30px; padding-right:40px } .win-in .lbl { margin:0 }
.win-grip { display:none }
@media (max-width:640px) {
  dialog.win { width:100vw; max-width:100vw; margin:auto 0 0; border-radius:20px 20px 0 0; max-height:92dvh }
  dialog.win[open] { animation:win-up .22s ease-out }
  .win-in { padding:14px 20px 28px }
  .win-grip { display:block; width:44px; height:5px; border-radius:3px; background:#cfc8bc; margin:0 auto 10px }
  .win-x { top:10px; right:12px }
}
@keyframes win-up { from { transform:translateY(40px); opacity:.4 } to { transform:none; opacity:1 } }
@media (prefers-reduced-motion:reduce) { dialog.win[open] { animation:none } }

.note { border-radius:14px; padding:22px 24px; display:grid; grid-template-columns:40px 1fr; gap:4px 14px; align-items:start; background:var(--white); border:1px solid var(--line); color:var(--ink) }
.note .ic { grid-row:span 3; width:40px; height:40px; border-radius:50%; display:grid; place-items:center }
.note b { font:600 22px/1.2 var(--serif) } .note p { margin:0; color:var(--mut) }
.note .acts { display:flex; flex-wrap:wrap; gap:8px; margin-top:10px }
.note.ok .ic { background:var(--olive-deep) } .note.sun .ic { background:var(--sun) } .note.info .ic { background:var(--len2) } .note.warn .ic { background:#f3e2bd }
.msg .note { margin-top:4px; font-weight:400 }

.f-err input:not([type=checkbox]), .f-err .dd-btn { border-color:var(--sun-ink) !important; background:#fdf8ee !important }
.f-err .cbox input { border-color:var(--sun-ink) }
.f-hint { font-size:13px; font-weight:500; color:var(--sun-ink); display:flex; gap:6px; align-items:center }
.f-hint::before { content:""; width:6px; height:6px; border-radius:50%; background:var(--sun); flex:none }
.deep .f-hint { color:var(--sun-ink) }
@media (max-width:520px) {
  .note { grid-template-columns:30px 1fr; gap:4px 12px; padding:18px }
  .note .ic { width:30px; height:30px } .note .ic svg { width:16px; height:16px }
  .note b { font-size:20px }
}

form.f, .dd-list { --h:44px; --r:8px; --bg:var(--white); --sf:var(--len2); --text:"Manrope", system-ui, sans-serif; --mut:#5f5a53 }
/* свои выпадающие списки (zk.js): кнопка + список поверх страницы */
select.dd-native { position:absolute; width:1px; height:1px; opacity:0; pointer-events:none }
.dd { position:relative; min-width:0 }
.dd-btn { display:flex; align-items:center; justify-content:space-between; gap:10px; width:100%; height:var(--h); padding:0 12px;
  border:1px solid var(--line); border-radius:var(--r); background:var(--bg); color:var(--ink); font:400 15px var(--text); text-align:left; cursor:pointer }
.dd-btn span { overflow:hidden; text-overflow:ellipsis; white-space:nowrap }
.dd-btn[data-empty] { color:var(--mut) } .dd-btn:hover { border-color:var(--mut) }
.dd-btn svg { flex:none; width:14px; height:14px; transition:transform .15s ease }
.dd.open .dd-btn { border-color:var(--ink) } .dd.open .dd-btn svg { transform:rotate(180deg) }
.dd-list { position:fixed; z-index:70; margin:0; padding:6px; list-style:none; max-height:280px; overflow-y:auto; overscroll-behavior:contain;
  background:var(--bg); border:1px solid var(--line); border-radius:12px; box-shadow:0 12px 32px rgba(0,0,0,.22) }
.dd-list[hidden] { display:none }
.dd-opt { display:flex; align-items:center; justify-content:space-between; gap:8px; padding:9px 12px; border-radius:8px; cursor:pointer; font:400 15px var(--text); color:var(--ink) }
.dd-opt.active { background:var(--sf) } .dd-opt[aria-selected="true"] { font-weight:600 } .dd-opt.placeholder { color:var(--mut) }
.dd-opt[aria-selected="true"]::after { content:""; width:7px; height:12px; margin-right:4px; border:solid var(--sun-ink); border-width:0 2px 2px 0; transform:rotate(45deg) translateY(-2px) }
@media (prefers-reduced-motion: reduce) { .dd-btn svg { transition:none } }