/* Лендинг: раскладка секций. Цвета и шрифты только из токенов app.css. */
.top{position:sticky;top:0;z-index:20;background:var(--paper-glass);backdrop-filter:blur(10px);border-bottom:1px solid transparent;transition:border-color var(--t-mid) var(--ease)}
.top.scrolled{border-bottom-color:var(--line)}
.top .wrap{display:flex;align-items:center;gap:var(--s-5);min-height:64px}
.brand{font-family:var(--font-display);font-size:24px;font-weight:500;text-decoration:none;line-height:1;white-space:nowrap}
.nav{display:flex;gap:var(--s-5);margin-left:auto}
.nav a{font-size:var(--fs-xs);font-weight:600;letter-spacing:.12em;text-transform:uppercase;text-decoration:none;color:var(--ink-2);padding:8px 0;border-bottom:1px solid transparent}
.nav a:hover{color:var(--ink);border-bottom-color:var(--ink)}
.top-phone{display:inline-flex;align-items:center;gap:6px;font-weight:600;font-size:var(--fs-sm);text-decoration:none;white-space:nowrap}
.top-phone:hover{color:var(--accent)}
@media (max-width:900px){.nav{display:none}.top-phone{margin-left:auto}}
@media (max-width:560px){.top .btn{display:none}.brand{font-size:21px}}
@media (max-width:420px){.top-phone .ph-text{display:none}.top-phone{width:40px;height:40px;justify-content:center;border:1px solid var(--line-strong);border-radius:50%}}

/* hero */
.hero .wrap{display:grid;grid-template-columns:1.08fr .92fr;gap:clamp(24px,5vw,72px);align-items:center;min-height:calc(100svh - 64px);padding-block:var(--s-6) var(--s-7)}
.hero h1{margin:var(--s-4) 0 var(--s-5)}
.hero h1 em{color:var(--accent)}
.hero .lead{font-size:var(--fs-lg);color:var(--ink-2);max-width:34em}
.hero .cta{display:flex;flex-wrap:wrap;gap:var(--s-3);margin-top:var(--s-6)}
.nearest{display:inline-flex;align-items:center;gap:8px;margin-top:var(--s-4);font-size:var(--fs-sm);color:var(--ink-2)}
.nearest .dot{width:8px;height:8px;border-radius:50%;background:var(--success);box-shadow:0 0 0 4px var(--success-soft)}
.prices{display:flex;gap:var(--s-6);margin-top:var(--s-7);padding-top:var(--s-5);border-top:1px solid var(--line)}
.prices div{display:grid;gap:2px}
.prices b{font-family:var(--font-display);font-size:28px;font-weight:500;line-height:1.1}
.prices span{font-size:var(--fs-sm);color:var(--ink-3)}
.portrait{position:relative;justify-self:end;width:min(100%,460px)}
.portrait img{width:100%;height:auto;max-height:calc(100svh - 150px);object-fit:cover;object-position:50% 20%;border-radius:220px 220px var(--r-lg) var(--r-lg);box-shadow:var(--shadow-2)}
.portrait figcaption{position:absolute;left:-28px;bottom:36px;background:var(--surface);padding:12px 16px;border-radius:var(--r-md);box-shadow:var(--shadow-1);font-size:var(--fs-sm);line-height:1.35}
.portrait figcaption b{display:block;font-family:var(--font-display);font-size:20px;font-weight:500}
@media (max-width:860px){
  .hero .wrap{grid-template-columns:1fr;min-height:0;padding-block:var(--s-4) var(--s-7)}
  .portrait{order:-1;justify-self:stretch;width:100%}
  .portrait img{height:clamp(240px,38svh,340px);max-height:none;object-position:50% 16%;border-radius:160px 160px var(--r-lg) var(--r-lg)}
  .portrait figcaption{display:none}
  .prices{margin-top:var(--s-6);gap:var(--s-5)}
}

section.block{padding-block:var(--section)}
.head{display:grid;gap:var(--s-3);margin-bottom:var(--s-7);max-width:720px}
.head p{color:var(--ink-2);font-size:var(--fs-lg);max-width:65ch}

/* «если устали» */
.tired{background:var(--surface)}
.tired h2 em{display:block}
.rows{border-top:1px solid var(--line-strong)}
.row{display:grid;grid-template-columns:64px 1fr 1fr;gap:var(--s-5);align-items:baseline;padding:var(--s-5) 0;border-bottom:1px solid var(--line)}
.row .n{font-size:var(--fs-xs);font-weight:600;letter-spacing:.12em;color:var(--ink-3)}
.row .w{font-family:var(--font-display);font-style:italic;font-size:clamp(26px,3vw,38px);line-height:1.1}
.row .d{color:var(--ink-2)}
.row.final{border-bottom:none}
.row.final .w{font-style:normal;font-weight:500}
.row.final a{display:inline-flex;align-items:center;gap:10px;text-decoration:none;color:var(--accent)}
.row.final a:hover{color:var(--accent-hover)}
.row.final a .icon{width:28px;height:28px;transition:transform var(--t-mid) var(--ease)}
.row.final a:hover .icon{transform:translateX(6px)}
@media (max-width:700px){.row{grid-template-columns:40px 1fr;gap:var(--s-2) var(--s-3)}.row .d{grid-column:2}}

/* услуги */
.services{display:grid;grid-template-columns:1.25fr 1fr;gap:var(--s-5);align-items:stretch}
.svc{display:flex;flex-direction:column;gap:var(--s-4);padding:clamp(24px,3.4vw,44px);border-radius:var(--r-lg);border:1px solid var(--line)}
.svc.main{background:var(--night);color:var(--night-ink);border-color:var(--night)}
.svc.main .muted,.svc.main p{color:var(--night-ink-2)}
.svc.alt{background:var(--surface)}
.svc .meta{display:flex;gap:var(--s-3);flex-wrap:wrap}
.svc .pill{display:inline-flex;align-items:center;gap:6px;padding:4px 12px;border-radius:var(--r-pill);border:1px solid currentColor;font-size:var(--fs-xs);font-weight:600;letter-spacing:.08em;text-transform:uppercase}
.svc.main .pill{color:var(--night-ink-2)}
.svc.alt .pill{color:var(--ink-2)}
.svc ul{margin:0;padding:0;list-style:none;display:grid;gap:8px}
.svc li{display:flex;gap:10px;align-items:flex-start}
.svc li .icon{margin-top:3px}
.svc .foot{margin-top:auto;display:flex;align-items:flex-end;justify-content:space-between;gap:var(--s-4);flex-wrap:wrap;padding-top:var(--s-5);border-top:1px solid var(--line)}
.svc.main .foot{border-top-color:var(--night-2)}
.svc .price{font-family:var(--font-display);font-size:44px;line-height:1}
.svc .price small{display:block;font-family:var(--font-body);font-size:var(--fs-xs);letter-spacing:.04em;margin-top:6px}
.svc.main .price small{color:var(--night-ink-2)}
.svc.alt .price small{color:var(--ink-3)}
.svc.main .btn-primary{background:var(--night-ink);color:var(--night)}
.svc.main .btn-primary:hover{background:#fff}
.svc.main :focus-visible{outline-color:var(--night-ink)}
@media (max-width:860px){.services{grid-template-columns:1fr}}

/* 7 причин */
.seven{background:var(--night);color:var(--night-ink)}
.seven .wrap{display:grid;grid-template-columns:auto 1fr;gap:clamp(24px,5vw,80px);align-items:start}
.seven .big{font-family:var(--font-display);font-weight:500;font-size:clamp(160px,22vw,300px);line-height:.8;color:var(--night-ink)}
.seven h2{margin-bottom:var(--s-6)}
.seven ol{margin:0;padding:0;list-style:none;display:grid;grid-template-columns:1fr 1fr;gap:0 var(--s-6)}
.seven li{display:flex;gap:var(--s-3);padding:var(--s-4) 0;border-top:1px solid var(--night-2);text-transform:uppercase;letter-spacing:.06em;font-size:var(--fs-sm);font-weight:500}
.seven li span{color:var(--night-ink-2);font-weight:400}
.seven .wrap > div > p{margin-top:var(--s-5);color:var(--night-ink-2);font-size:var(--fs-sm);max-width:65ch}
@media (max-width:760px){.seven .wrap{grid-template-columns:1fr}.seven .big{font-size:140px}.seven ol{grid-template-columns:1fr}}

/* любовь к себе */
.love{text-align:center;background:linear-gradient(180deg,var(--paper) 0%,var(--paper-2) 100%)}
.love .wrap{max-width:760px}
.love ul{list-style:none;margin:var(--s-6) 0 0;padding:0;display:grid;gap:var(--s-4)}
.love li{font-size:clamp(15px,1.6vw,19px);letter-spacing:.14em;text-transform:uppercase;color:var(--ink-2)}
.love li.last{font-family:var(--font-display);font-style:italic;text-transform:none;letter-spacing:0;font-size:clamp(28px,3.4vw,40px);color:var(--accent);margin-top:var(--s-3)}
.love .btn{margin-top:var(--s-6)}

/* запись */
.book .wrap{display:grid;grid-template-columns:.8fr 1.2fr;gap:clamp(24px,4vw,64px);align-items:start}
.steps{list-style:none;margin:var(--s-6) 0;padding:0;display:grid;gap:var(--s-4);counter-reset:s}
.steps li{display:grid;grid-template-columns:36px 1fr;gap:var(--s-3);align-items:start}
.steps li::before{counter-increment:s;content:counter(s);display:grid;place-items:center;width:36px;height:36px;border-radius:50%;border:1px solid var(--line-strong);font-family:var(--font-display);font-size:20px;font-variant-numeric:lining-nums}
.steps b{display:block;font-weight:600}
.steps span{color:var(--ink-2);font-size:var(--fs-sm)}
.rules{display:grid;gap:var(--s-2)}
.rules b{font-size:var(--fs-sm);color:var(--ink)}
.widget{padding:clamp(20px,3vw,32px);box-shadow:var(--shadow-1);display:grid;gap:var(--s-5)}
.widget h3{font-size:24px}
.stepper{display:grid;gap:var(--s-3)}
.days{display:flex;gap:var(--s-2);overflow-x:auto;padding:2px 2px 8px;scroll-snap-type:x proximity;scrollbar-width:thin}
.days .chip{scroll-snap-align:start;min-width:62px;min-height:56px}
.times{display:grid;grid-template-columns:repeat(auto-fill,minmax(76px,1fr));gap:var(--s-2)}
.times-empty{padding:var(--s-4);border:1px dashed var(--line-strong);border-radius:var(--r-md);color:var(--ink-2);font-size:var(--fs-sm)}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--s-3)}
.form-grid .full{grid-column:1/-1}
.summary{display:grid;gap:4px;padding:14px 16px;border-radius:var(--r-md);background:var(--paper);font-size:var(--fs-sm)}
.summary .sum-row{display:flex;justify-content:space-between;gap:var(--s-3)}
.summary .sum-row b{font-weight:600}
.summary .total{margin-top:6px;padding-top:8px;border-top:1px solid var(--line);font-size:var(--fs-body)}
@media (max-width:900px){.book .wrap{grid-template-columns:1fr}}
@media (max-width:520px){.form-grid{grid-template-columns:1fr}.seg{grid-template-columns:1fr}}

/* сертификат */
.gift .wrap{display:grid;grid-template-columns:1fr 1fr;gap:clamp(24px,4vw,64px);align-items:center}
.gift h2 .script{display:block;font-family:var(--font-script);font-weight:400;font-size:1.25em;color:var(--accent);line-height:1.1;margin:4px 0}
.gift-card{position:relative;aspect-ratio:1.6;border-radius:var(--r-lg);background:var(--night);color:var(--night-ink);padding:clamp(20px,3vw,36px);display:flex;flex-direction:column;justify-content:space-between;box-shadow:var(--shadow-2);overflow:hidden;margin-top:var(--s-6)}
.gift-card::after{content:"";position:absolute;inset:12px;border:1px solid var(--night-2);border-radius:calc(var(--r-lg) - 6px);pointer-events:none}
.gift-card .gc-top{display:flex;justify-content:space-between;align-items:flex-start;font-size:var(--fs-xs);letter-spacing:.16em;text-transform:uppercase;color:var(--night-ink-2)}
.gift-card .gc-title{font-family:var(--font-display);font-size:clamp(28px,3.4vw,40px);line-height:1.05}
.gift-card .gc-sum{font-family:var(--font-display);font-style:italic;font-size:clamp(22px,2.4vw,30px);color:var(--night-ink-2)}
.gift-form{padding:clamp(20px,3vw,32px);display:grid;gap:var(--s-4)}
.gift-form .seg3{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--s-2)}
@media (max-width:860px){.gift .wrap{grid-template-columns:1fr}}
@media (max-width:520px){.gift-form .seg3{grid-template-columns:1fr}}

/* вопросы */
.faq .wrap{max-width:860px}
details{border-bottom:1px solid var(--line)}
details:first-of-type{border-top:1px solid var(--line)}
summary{display:flex;justify-content:space-between;align-items:center;gap:var(--s-4);padding:var(--s-5) 0;cursor:pointer;list-style:none;font-family:var(--font-display);font-size:clamp(20px,2vw,24px)}
summary::-webkit-details-marker{display:none}
summary:hover{color:var(--accent)}
summary .icon{transition:transform var(--t-mid) var(--ease)}
details[open] summary .icon{transform:rotate(45deg)}
details p{padding:0 0 var(--s-5);color:var(--ink-2);max-width:62ch}

/* подвал */
.foot-cta{background:var(--night);color:var(--night-ink);text-align:center}
.foot-cta h2{margin-bottom:var(--s-4)}
.foot-cta p{color:var(--night-ink-2);max-width:60ch;margin-inline:auto}
.foot-cta .cta{display:flex;gap:var(--s-3);justify-content:center;flex-wrap:wrap;margin-top:var(--s-6)}
.foot-cta .btn-primary{background:var(--night-ink);color:var(--night)}
.foot-cta .btn-primary:hover{background:#fff}
.foot-cta .btn-ghost{color:var(--night-ink);border-color:var(--night-ink-2)}
.foot-cta .btn-ghost:hover{background:var(--night-2);border-color:var(--night-ink)}
.foot-cta :focus-visible{outline-color:var(--night-ink)}
footer.site{padding:var(--s-6) 0 96px;font-size:var(--fs-sm);color:var(--ink-3)}
footer.site .wrap{display:flex;justify-content:space-between;gap:var(--s-4);flex-wrap:wrap}
@media (min-width:861px){footer.site{padding-bottom:var(--s-6)}}

/* нижняя панель на телефоне */
.mbar{position:fixed;left:0;right:0;bottom:0;z-index:30;display:none;gap:var(--s-2);padding:10px 16px calc(10px + env(safe-area-inset-bottom));background:var(--surface);border-top:1px solid var(--line);box-shadow:0 -6px 20px rgba(31,26,23,.08);transform:translateY(110%);transition:transform var(--t-mid) var(--ease)}
.mbar.show{transform:none}
.mbar .btn-primary{flex:1}
.mbar .btn-ghost{width:48px;padding:0}
@media (max-width:860px){.mbar{display:flex}}

.reveal{opacity:0;transform:translateY(16px);transition:opacity .6s var(--ease),transform .6s var(--ease)}
.reveal.in{opacity:1;transform:none}

/* узкие экраны: элементы сетки не распирают колонку, длинные кнопки переносятся */
.hero .wrap > *,.services > *,.book .wrap > *,.gift .wrap > *,.seven .wrap > *{min-width:0}
@media (max-width:360px){.btn{white-space:normal;text-align:center;line-height:1.25;padding-block:8px}.svc{padding:20px}}

/* абонемент */
.pass{display:grid;grid-template-columns:1.2fr 1fr;gap:clamp(20px,4vw,48px);align-items:center;margin-top:var(--s-5);padding:clamp(20px,3.4vw,40px);border-radius:var(--r-lg);background:var(--accent-soft);border:1px solid var(--line)}
.pass-text{display:grid;gap:var(--s-3)}
.pass .pill{display:inline-flex;align-items:center;gap:6px;justify-self:start;padding:4px 12px;border-radius:var(--r-pill);border:1px solid var(--accent);color:var(--accent);font-size:var(--fs-xs);font-weight:600;letter-spacing:.08em;text-transform:uppercase}
.pass h3{font-size:clamp(26px,2.8vw,36px)}
.pass p{color:var(--ink-2);max-width:52ch}
.pass s{color:var(--ink-3)}
.pass-form{display:grid;gap:var(--s-3);padding:var(--s-5);background:var(--surface);border-radius:var(--r-md);border:1px solid var(--line)}
.pass-form > *,.pass > *{min-width:0}
@media (max-width:860px){.pass{grid-template-columns:1fr}}

/* отзывы: первый ведёт, остальные мельче */
.rev-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--s-4);align-items:start}
.rev{display:grid;gap:var(--s-3);padding:var(--s-5);background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);min-width:0}
.rev p{color:var(--ink-2)}
.rev .who{font-weight:600;font-size:var(--fs-sm)}
.rev .stars{display:flex;gap:2px;color:var(--accent)}
.rev .stars .icon{width:14px;height:14px;fill:currentColor;stroke:none}
.rev.lead{grid-column:1/-1;grid-template-columns:auto 1fr;gap:var(--s-5);padding:clamp(24px,3.4vw,40px);background:var(--night);color:var(--night-ink);border-color:var(--night)}
.rev.lead p{font-family:var(--font-display);font-size:clamp(22px,2.4vw,30px);line-height:1.3;color:var(--night-ink)}
.rev.lead .q{font-family:var(--font-display);font-size:120px;line-height:.7;color:var(--night-ink-2)}
.rev.lead .stars{color:var(--night-ink)}
.rev.lead .who{color:var(--night-ink-2)}
@media (max-width:860px){.rev-grid{grid-template-columns:1fr}.rev.lead{grid-template-columns:1fr}.rev.lead .q{font-size:80px}}

/* лист ожидания в виджете */
.wl-toggle{display:inline-flex;align-items:center;gap:8px;justify-self:start;margin-top:var(--s-2);padding:6px 0;border:0;background:none;color:var(--accent);font:600 var(--fs-sm)/1.3 var(--font-body);text-align:left;cursor:pointer;text-decoration:underline;text-underline-offset:3px;text-decoration-thickness:1px}
.wl-toggle:hover{color:var(--accent-hover);text-decoration-thickness:2px}
.wl-box{display:grid;gap:var(--s-3);padding:var(--s-4);border:1px dashed var(--line-strong);border-radius:var(--r-md);background:var(--paper)}

/* конфиденциальность */
.privacy{background:var(--surface)}
.privacy .wrap{display:grid;grid-template-columns:.9fr 1.1fr;gap:clamp(24px,5vw,72px);align-items:start}
.privacy .wrap > *{min-width:0}
.privacy .pill{display:inline-flex;align-items:center;gap:6px;padding:4px 12px;border-radius:var(--r-pill);border:1px solid var(--accent);color:var(--accent);font-size:var(--fs-xs);font-weight:600;letter-spacing:.08em;text-transform:uppercase;margin-bottom:var(--s-4)}
.privacy h2 em{display:block;color:var(--accent)}
.privacy .lead-sm{margin-top:var(--s-4);color:var(--ink-2);font-size:var(--fs-lg);max-width:40ch}
.priv-list{list-style:none;margin:0;padding:0;border-top:1px solid var(--line-strong)}
.priv-list li{display:grid;grid-template-columns:minmax(150px,.7fr) 1.3fr;gap:var(--s-4);padding:var(--s-4) 0;border-bottom:1px solid var(--line)}
.priv-list b{font-family:var(--font-display);font-weight:500;font-size:22px;line-height:1.2}
.priv-list span{color:var(--ink-2)}
@media (max-width:860px){.privacy .wrap{grid-template-columns:1fr}.priv-list li{grid-template-columns:1fr;gap:4px}}
