:root{
  --bg:#fdfbff;
  --card:#ffffff;
  --card-br:#d9e5f0;
  --violet:#7c3aed;
  --cyan:#06b6d4;
  --blue:#0284c7;
  --text:#1a1f35;
  --muted:#5a6b7d;
  --grad:linear-gradient(120deg,#7c3aed,#06b6d4 55%,#0284c7);
  --shadow:0 12px 34px rgba(124,58,237,.10);
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{font-family:'Manrope',sans-serif;background:var(--bg);color:var(--text);overflow-x:hidden;line-height:1.6}
h1,h2,h3,.logo{font-family:'Unbounded',sans-serif;line-height:1.2}
::selection{background:#e3d5ff;color:#33294e}
::-webkit-scrollbar{width:10px}
::-webkit-scrollbar-track{background:#f4effc}
::-webkit-scrollbar-thumb{background:linear-gradient(#c4b5fd,#a5f3fc);border-radius:5px}

/* ---------- soft orbs ---------- */
.orb{position:fixed;border-radius:50%;filter:blur(110px);opacity:.55;pointer-events:none;z-index:0}
.orb1{width:540px;height:540px;background:#ede9fe;top:-160px;left:-120px;animation:drift 18s ease-in-out infinite alternate}
.orb2{width:440px;height:440px;background:#cffafe;bottom:-120px;right:-100px;animation:drift 22s ease-in-out infinite alternate-reverse}
.orb3{width:360px;height:360px;background:#dbeafe;top:45%;left:60%;opacity:.45;animation:drift 26s ease-in-out infinite alternate}
@keyframes drift{from{transform:translate(0,0) scale(1)}to{transform:translate(80px,60px) scale(1.15)}}

/* ---------- nav ---------- */
nav{position:fixed;top:0;left:0;right:0;z-index:100;padding:14px 5vw;display:flex;align-items:center;justify-content:space-between;
  background:rgba(253,251,255,.75);backdrop-filter:blur(18px);border-bottom:1px solid rgba(139,92,246,.08);transition:.3s}
.logo{font-weight:800;font-size:1.05rem;background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent;letter-spacing:1px;text-decoration:none}
.nav-links{display:flex;gap:26px;list-style:none}
.nav-links a{color:var(--muted);text-decoration:none;font-size:.92rem;font-weight:600;transition:.25s;padding-bottom:3px;border-bottom:2px solid transparent}
.nav-links a:hover{color:var(--violet)}
.nav-links a.active{color:var(--violet);border-image:var(--grad) 1;border-bottom:2px solid}
.btn{display:inline-block;padding:13px 28px;border-radius:100px;font-weight:700;font-size:.95rem;text-decoration:none;color:#fff;
  background:var(--grad);background-size:200% 200%;animation:gradShift 6s ease infinite;border:none;cursor:pointer;
  box-shadow:0 10px 28px rgba(157,123,250,.35);transition:transform .25s,box-shadow .25s}
.btn:hover{transform:translateY(-3px) scale(1.03);box-shadow:0 16px 40px rgba(6,182,212,.4)}
.btn.ghost{background:#fff;border:1.5px solid #ddccfb;box-shadow:var(--shadow);animation:none;color:var(--violet)}
.btn.ghost:hover{border-color:var(--violet);box-shadow:0 14px 34px rgba(139,92,246,.2)}
@keyframes gradShift{0%,100%{background-position:0 50%}50%{background-position:100% 50%}}
.nav-cta{padding:10px 22px;font-size:.85rem}
.burger{display:none;background:none;border:none;color:var(--text);font-size:1.6rem;cursor:pointer}

/* ---------- hero (главная) ---------- */
#hero{position:relative;min-height:100vh;display:flex;align-items:center;padding:130px 5vw 80px;z-index:1;max-width:1220px;margin:0 auto}
#bg3d{position:absolute;inset:0;z-index:-1;width:100%;height:100%}
.hero-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:50px;align-items:center;width:100%}
.tag{display:inline-block;padding:8px 20px;border:1px solid #e4d7fb;border-radius:100px;font-size:.85rem;color:var(--violet);font-weight:600;
  background:rgba(255,255,255,.7);backdrop-filter:blur(8px);margin-bottom:26px}
h1{font-size:clamp(2.1rem,5vw,3.8rem);font-weight:800;margin-bottom:22px}
.grad-text{background:var(--grad);background-size:200% 200%;-webkit-background-clip:text;background-clip:text;color:transparent;animation:gradShift 6s ease infinite}
.hero-sub{font-size:clamp(1rem,2vw,1.15rem);color:var(--muted);max-width:640px;margin-bottom:38px}
.hero-btns{display:flex;gap:16px;flex-wrap:wrap}
.hero-stats{display:flex;gap:40px;margin-top:56px;flex-wrap:wrap}
.stat b{font-family:'Unbounded';font-size:1.8rem;display:block;background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent}
.stat span{color:var(--muted);font-size:.83rem}

/* portrait */
.portrait-wrap{position:relative;justify-self:center}
.portrait-wrap::before{content:'';position:absolute;inset:-18px;border-radius:46% 54% 52% 48%/48% 46% 54% 52%;
  background:var(--grad);opacity:.9;filter:blur(2px);animation:blob 9s ease-in-out infinite}
.portrait-wrap::after{content:'';position:absolute;inset:-34px;border-radius:52% 48% 46% 54%/50% 52% 48% 50%;
  border:2px dashed #d9c8fa;animation:spin 30s linear infinite}
@keyframes blob{0%,100%{border-radius:46% 54% 52% 48%/48% 46% 54% 52%}50%{border-radius:54% 46% 48% 52%/52% 54% 46% 48%}}
@keyframes spin{to{transform:rotate(360deg)}}
.portrait{position:relative;width:min(340px,72vw);aspect-ratio:3/3.6;object-fit:cover;border-radius:44% 56% 50% 50%/46% 44% 56% 54%;
  border:6px solid #fff;box-shadow:0 30px 70px rgba(139,92,246,.28);animation:float 6s ease-in-out infinite}
@keyframes float{0%,100%{transform:translateY(0)}50%{transform:translateY(-14px)}}
.scroll-hint{position:absolute;bottom:24px;left:50%;transform:translateX(-50%);color:#b9a8e0;font-size:1.4rem;animation:bounce 2s infinite}
@keyframes bounce{0%,100%{transform:translate(-50%,0)}50%{transform:translate(-50%,10px)}}

/* плавающие чипы вокруг портрета */
.p-chip{position:absolute;padding:9px 16px;border-radius:100px;font-weight:700;font-size:.82rem;color:var(--text);
  background:rgba(255,255,255,.85);backdrop-filter:blur(8px);border:1px solid #eadffc;
  box-shadow:0 12px 28px rgba(139,92,246,.18);white-space:nowrap;z-index:3}
.p-chip1{top:6%;left:-14%;animation:chipFloat 5s ease-in-out infinite}
.p-chip2{bottom:14%;right:-16%;animation:chipFloat 6s ease-in-out infinite reverse}
.p-chip3{bottom:-4%;left:-6%;animation:chipFloat 7s ease-in-out infinite}
@keyframes chipFloat{0%,100%{transform:translateY(0)}50%{transform:translateY(-12px)}}
@media(max-width:900px){.p-chip1{left:0}.p-chip2{right:0}.p-chip3{left:6%}}

/* ---------- psychologist chair ---------- */
.chair-scene{position:relative;width:min(360px,82vw);height:520px;justify-self:center;perspective:1200px}
.chair-swivel{position:absolute;inset:0;transform-style:preserve-3d;transform-origin:50% 82%;
  animation:swivel 8s ease-in-out infinite}
@keyframes swivel{0%,100%{transform:rotateY(-14deg)}50%{transform:rotateY(14deg)}}
/* high back */
.chair-back{position:absolute;left:50%;top:6px;transform:translateX(-50%);width:80%;height:66%;
  border-radius:46% 46% 26% 26%/40% 40% 14% 14%;
  background:linear-gradient(150deg,#a78bfa,#06b6d4 60%,#5bc4f5);
  box-shadow:0 30px 60px rgba(139,92,246,.32),inset 0 -20px 40px rgba(0,0,0,.06);z-index:1}
.chair-back::after{content:'';position:absolute;inset:14px;border-radius:44% 44% 24% 24%/38% 38% 12% 12%;
  background:linear-gradient(160deg,rgba(255,255,255,.35),rgba(255,255,255,0));}
/* armrests */
.chair-arm{position:absolute;bottom:150px;width:34px;height:150px;border-radius:18px;
  background:linear-gradient(#b79bfa,#9d7bfa);box-shadow:0 12px 24px rgba(139,92,246,.28);z-index:4}
.chair-arm.left{left:2%}.chair-arm.right{right:2%}
/* seat cushion */
.chair-seat{position:absolute;left:50%;bottom:130px;transform:translateX(-50%);width:78%;height:64px;
  border-radius:26px;background:linear-gradient(#9d7bfa,#8b5cf6);
  box-shadow:0 16px 30px rgba(139,92,246,.3);z-index:3}
/* portrait = the person seated */
.chair-portrait{position:absolute;left:50%;top:26px;transform:translateX(-50%);
  width:66%;aspect-ratio:1/1.16;object-fit:cover;object-position:center top;
  border-radius:44% 44% 40% 40%/40% 40% 46% 46%;border:7px solid #fff;
  box-shadow:0 26px 55px rgba(139,92,246,.35);z-index:5}
/* gas post */
.chair-post{position:absolute;left:50%;bottom:70px;transform:translateX(-50%);width:26px;height:70px;
  border-radius:8px;background:linear-gradient(90deg,#cbb9ee,#a78bfa,#cbb9ee)}
/* star base */
.chair-base{position:absolute;left:50%;bottom:20px;transform:translateX(-50%);width:70%;height:auto}
.chair-shadow{position:absolute;left:50%;bottom:8px;transform:translateX(-50%);width:64%;height:26px;
  border-radius:50%;background:radial-gradient(ellipse,rgba(139,92,246,.28),transparent 70%);
  animation:chairShadow 8s ease-in-out infinite}
@keyframes chairShadow{0%,100%{width:58%;opacity:.8}50%{width:70%;opacity:1}}
@media(prefers-reduced-motion:reduce){.chair-swivel{animation:none}.chair-shadow{animation:none}}

/* ---------- 3D avatar canvas ---------- */
.chair3d-wrap{position:relative;width:min(470px,92vw);height:580px;justify-self:center}
#chair3d{width:100%;height:100%;display:block;cursor:grab}

/* ---------- 3D chair with real photo (CSS 3D) ---------- */
.chair3d-stage{position:relative;width:min(400px,86vw);height:560px;justify-self:center;perspective:1300px}
.chair3d-rig{position:absolute;left:0;right:0;top:0;height:440px;transform-style:preserve-3d;
  transform-origin:50% 78%;animation:rigSwivel 9s ease-in-out infinite}
@keyframes rigSwivel{0%,100%{transform:rotateY(-20deg)}50%{transform:rotateY(20deg)}}
/* спинка кресла — панель позади фото */
.c3-backpanel{position:absolute;left:50%;top:0;transform:translate(-50%,0) translateZ(-46px);
  width:78%;height:94%;border-radius:44% 44% 24% 24%/38% 38% 12% 12%;
  background:linear-gradient(150deg,#a78bfa,#06b6d4 60%,#5bc4f5);
  box-shadow:0 40px 70px rgba(139,92,246,.32),inset 0 -24px 46px rgba(0,0,0,.07)}
.c3-backpanel::after{content:'';position:absolute;inset:16px;border-radius:42% 42% 22% 22%/36% 36% 10% 10%;
  background:linear-gradient(160deg,rgba(255,255,255,.4),rgba(255,255,255,0))}
/* подлокотники — выдвинуты вперёд по Z */
.c3-arm{position:absolute;bottom:44px;width:38px;height:170px;border-radius:20px;
  background:linear-gradient(#b79bfa,#9d7bfa);box-shadow:0 14px 26px rgba(139,92,246,.28);
  transform:translateZ(40px)}
.c3-arm.left{left:-2%}.c3-arm.right{right:-2%}
/* сиденье — наклонено как поверхность */
.c3-seat{position:absolute;left:50%;bottom:24px;transform:translate(-50%,0) translateZ(20px) rotateX(58deg);
  width:74%;height:120px;border-radius:26px;background:linear-gradient(#9d7bfa,#8b5cf6);
  box-shadow:0 24px 34px rgba(139,92,246,.3)}
/* настоящее фото — фигура, чуть вынесена вперёд */
.c3-figure{position:absolute;left:50%;top:24px;transform:translate(-50%,0) translateZ(18px);
  width:64%;aspect-ratio:1/1.2;object-fit:cover;object-position:center top;
  border-radius:44% 44% 40% 40%/40% 40% 46% 46%;border:7px solid #fff;
  box-shadow:0 30px 60px rgba(139,92,246,.35);z-index:2}
/* газлифт */
.c3-post{position:absolute;left:50%;bottom:66px;transform:translateX(-50%);width:28px;height:80px;
  border-radius:8px;background:linear-gradient(90deg,#cbb9ee,#a78bfa,#cbb9ee)}
/* пятилучевая база */
.c3-base{position:absolute;left:50%;bottom:18px;transform:translateX(-50%);width:70%;height:auto}
.c3-shadow{position:absolute;left:50%;bottom:8px;transform:translateX(-50%);width:62%;height:26px;
  border-radius:50%;filter:blur(4px);background:radial-gradient(ellipse,rgba(139,92,246,.28),transparent 70%);
  animation:chairShadow 9s ease-in-out infinite}
.chair3d-hint{position:absolute;bottom:-6px;left:50%;transform:translateX(-50%);
  font-size:.78rem;color:var(--muted);background:rgba(255,255,255,.6);backdrop-filter:blur(6px);
  padding:5px 14px;border-radius:100px;border:1px solid var(--card-br);white-space:nowrap}
@media(prefers-reduced-motion:reduce){.chair3d-rig{animation:none;transform:rotateY(8deg)}.c3-shadow{animation:none}}

/* ---------- page hero (внутренние страницы) ---------- */
.page-hero{position:relative;padding:150px 5vw 20px;max-width:1220px;margin:0 auto;z-index:1;text-align:center}
.page-hero h1{font-size:clamp(1.9rem,4.5vw,3rem)}
.page-hero p{color:var(--muted);max-width:640px;margin:14px auto 0}
.crumbs{font-size:.85rem;color:var(--muted);margin-bottom:18px}
.crumbs a{color:var(--violet);text-decoration:none}

/* ---------- sections ---------- */
section{position:relative;padding:40px 5vw;max-width:1220px;margin:0 auto;z-index:1}
.sec-tag{font-size:.8rem;letter-spacing:3px;text-transform:uppercase;color:var(--pink);font-weight:800;margin-bottom:12px}
h2{font-size:clamp(1.6rem,3.6vw,2.5rem);margin-bottom:18px}
.sec-sub{color:var(--muted);max-width:640px;margin-bottom:48px}
.sec-head{display:grid;grid-template-columns:1fr 1fr;gap:50px;align-items:center;margin-bottom:50px}
.sec-photo{width:100%;max-width:540px;height:320px;object-fit:cover;border-radius:32px;border:6px solid #fff;
  box-shadow:var(--shadow);transform:rotate(1.5deg);transition:.4s;margin-left:auto}
.sec-photo:hover{transform:rotate(0) scale(1.02)}

/* ---------- cards ---------- */
.grid{display:grid;gap:22px}
.g3{grid-template-columns:repeat(auto-fit,minmax(280px,1fr))}
.g2{grid-template-columns:repeat(auto-fit,minmax(320px,1fr))}
.card{position:relative;background:var(--card);border:1px solid var(--card-br);border-radius:24px;padding:32px 28px;
  box-shadow:var(--shadow);transition:transform .15s ease-out,box-shadow .3s,border-color .3s;transform-style:preserve-3d;will-change:transform}
.card:hover{border-color:#d3bffa;box-shadow:0 24px 55px rgba(139,92,246,.18)}
.card .icon{width:58px;height:58px;border-radius:16px;display:flex;align-items:center;justify-content:center;font-size:1.6rem;
  background:linear-gradient(140deg,#f1e8ff,#ffe4f1);margin-bottom:20px;transform:translateZ(30px)}
.card h3{font-size:1.02rem;margin-bottom:12px;transform:translateZ(24px)}
.card p,.card ul{color:var(--muted);font-size:.94rem;transform:translateZ(14px)}
.card ul{list-style:none}
.card ul li{padding-left:20px;position:relative;margin-bottom:7px}
.card ul li::before{content:'✦';position:absolute;left:0;color:var(--violet);font-size:.7rem;top:4px}
.card.link-card{text-decoration:none;display:block;color:inherit}
.card.link-card .more{margin-top:16px;font-weight:700;color:var(--violet);font-size:.9rem}

/* ---------- price ---------- */
.price-card{display:flex;flex-direction:column}
.price-card .dur{color:#3aa7dd;font-size:.83rem;margin-bottom:14px;font-weight:600}
.price-card .desc{flex:1}
.price-card .price{font-family:'Unbounded';font-size:1.7rem;font-weight:800;margin-top:20px;
  background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent;transform:translateZ(30px)}
.price-card.hot{background:linear-gradient(150deg,#f6efff,#fff0f7);border-color:#f9b8d8}
.badge{position:absolute;top:-13px;right:22px;background:var(--grad);color:#fff;font-size:.72rem;font-weight:800;
  padding:6px 16px;border-radius:100px;letter-spacing:1px;box-shadow:0 8px 20px rgba(6,182,212,.4)}

/* ---------- accordion ---------- */
details{background:var(--card);border:1px solid var(--card-br);border-radius:20px;margin-bottom:14px;box-shadow:var(--shadow);overflow:hidden;transition:.3s}
details[open]{border-color:#d3bffa;box-shadow:0 18px 44px rgba(139,92,246,.16)}
summary{cursor:pointer;padding:22px 28px;font-weight:700;font-size:1.02rem;list-style:none;display:flex;justify-content:space-between;align-items:center;gap:12px}
summary::-webkit-details-marker{display:none}
summary::after{content:'+';font-family:'Unbounded';font-size:1.3rem;color:var(--pink);transition:.3s;flex-shrink:0}
details[open] summary::after{transform:rotate(45deg)}
.det-body{padding:0 28px 26px;color:var(--muted);font-size:.94rem}
.det-body b{color:var(--text)}
.det-body ul{list-style:none;margin:8px 0 14px}
.det-body ul li{padding-left:20px;position:relative;margin-bottom:6px}
.det-body ul li::before{content:'✦';position:absolute;left:0;color:var(--violet);font-size:.7rem;top:4px}

/* ---------- results ---------- */
.res-list{counter-reset:res;display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:16px;list-style:none}
.res-list li{counter-increment:res;background:var(--card);border:1px solid var(--card-br);border-radius:18px;padding:20px 22px 20px 66px;
  position:relative;color:var(--muted);font-size:.94rem;box-shadow:var(--shadow);transition:.3s}
.res-list li:hover{transform:translateY(-4px);border-color:#a8dcf7;color:var(--text)}
.res-list li::before{content:counter(res,decimal-leading-zero);position:absolute;left:20px;top:18px;font-family:'Unbounded';
  font-weight:800;font-size:1.1rem;background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent}

/* ---------- timeline ---------- */
.timeline{position:relative;padding-left:34px}
.timeline::before{content:'';position:absolute;left:8px;top:6px;bottom:6px;width:2px;background:linear-gradient(#c4b5fd,#a5f3fc,#a5ddf8)}
.tl-item{position:relative;margin-bottom:26px}
.tl-item::before{content:'';position:absolute;left:-32px;top:6px;width:14px;height:14px;border-radius:50%;
  background:var(--grad);box-shadow:0 0 0 4px #f1e8ff}
.tl-item b{display:block;margin-bottom:3px}
.tl-item span{color:var(--muted);font-size:.9rem}

/* ---------- reviews ---------- */
.rev-wrap{position:relative;overflow:hidden;border-radius:26px}
.rev-track{display:flex;transition:transform .6s cubic-bezier(.4,0,.2,1)}
.rev{min-width:100%;padding:44px clamp(24px,6vw,70px);background:var(--card);border:1px solid var(--card-br);border-radius:26px;box-shadow:var(--shadow)}
.rev-head{display:flex;align-items:center;gap:18px;margin-bottom:20px}
.rev-head img{width:62px;height:62px;border-radius:50%;object-fit:cover;border:3px solid #e5d8fc;box-shadow:0 8px 20px rgba(139,92,246,.2)}
.rev-head b{font-size:1.05rem}
.stars{color:#f7b733;font-size:.85rem;letter-spacing:2px}
.rev p{color:var(--muted);font-size:.95rem;font-style:italic}
.rev-nav{display:flex;gap:12px;justify-content:center;margin-top:26px;align-items:center}
.rev-btn{width:46px;height:46px;border-radius:50%;border:1px solid var(--card-br);background:#fff;color:var(--violet);
  font-size:1.1rem;cursor:pointer;transition:.3s;box-shadow:var(--shadow)}
.rev-btn:hover{background:var(--violet);color:#fff;box-shadow:0 10px 26px rgba(139,92,246,.35)}
.rev-dots{display:flex;gap:8px}
.dot{width:9px;height:9px;border-radius:50%;background:#ddd2f2;cursor:pointer;transition:.3s}
.dot.on{background:var(--grad);width:26px;border-radius:5px}

/* ---------- contacts page ---------- */
.contact-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:22px}
.contact-card{text-align:center;text-decoration:none;color:inherit}
.contact-card .icon{margin:0 auto 18px}
.contact-card b{display:block;margin-bottom:6px}
.contact-card span{color:var(--muted);font-size:.9rem;word-break:break-word}

/* ---------- footer ---------- */
footer{position:relative;z-index:1;margin-top:60px;padding:80px 5vw 40px;background:linear-gradient(180deg,transparent,#f4ecff);border-top:1px solid #eee3fd;text-align:center}
.soc{display:flex;gap:16px;justify-content:center;flex-wrap:wrap;margin:30px 0}
.soc a{width:54px;height:54px;border-radius:16px;display:flex;align-items:center;justify-content:center;font-size:1.3rem;font-weight:800;
  background:#fff;border:1px solid var(--card-br);color:var(--violet);text-decoration:none;transition:.3s;box-shadow:var(--shadow)}
.soc a:hover{transform:translateY(-5px) rotate(-6deg);background:var(--grad);color:#fff;box-shadow:0 14px 32px rgba(6,182,212,.35)}
footer .fine{color:var(--muted);font-size:.85rem;margin-top:24px}
.f-nav{display:flex;gap:22px;justify-content:center;flex-wrap:wrap;margin-top:26px}
.f-nav a{color:var(--muted);text-decoration:none;font-size:.88rem}
.f-nav a:hover{color:var(--violet)}

/* ---------- reveal ---------- */
.reveal{opacity:0;transform:translateY(46px);transition:opacity .8s ease,transform .8s cubic-bezier(.2,.8,.2,1)}
.reveal.vis{opacity:1;transform:none}
.reveal.d1{transition-delay:.1s}.reveal.d2{transition-delay:.2s}.reveal.d3{transition-delay:.3s}

/* ---------- CTA band ---------- */
.cta-band{margin:40px 5vw 0;max-width:1220px;margin-inline:auto;padding:56px 5vw;text-align:center;border-radius:32px;
  background:linear-gradient(120deg,#f3ebff,#ffeef6 55%,#e8f7ff);border:1px solid #eee3fd;position:relative;z-index:1}
.cta-band h2{margin-bottom:14px}
.cta-band p{color:var(--muted);max-width:560px;margin:0 auto 28px}

@media(max-width:900px){
  .hero-grid{grid-template-columns:1fr;text-align:center}
  .hero-btns,.hero-stats{justify-content:center}
  .portrait-wrap{margin-top:20px}
  .sec-head{grid-template-columns:1fr}
  .sec-photo{justify-self:start}
}
@media(max-width:820px){
  .nav-links{position:fixed;top:62px;right:0;flex-direction:column;background:rgba(253,251,255,.98);width:100%;
    padding:26px 5vw;gap:18px;transform:translateY(-130%);transition:.4s;border-bottom:1px solid var(--card-br)}
  .nav-links.open{transform:none}
  .burger{display:block}
  .nav-cta{display:none}
  section{padding:55px 5vw}
}


/* ============ Модальное окно записи ============ */
.modal-overlay{position:fixed;inset:0;z-index:1000;display:none;align-items:center;justify-content:center;
  background:rgba(26,31,53,.55);backdrop-filter:blur(6px);padding:20px}
.modal-overlay.open{display:flex;animation:mfade .25s ease}
.modal{position:relative;width:100%;max-width:440px;background:var(--card);border:1px solid var(--card-br);
  border-radius:24px;padding:34px 30px 30px;box-shadow:0 30px 80px rgba(124,58,237,.28);animation:mpop .28s ease}
@keyframes mfade{from{opacity:0}to{opacity:1}}
@keyframes mpop{from{opacity:0;transform:translateY(16px) scale(.97)}to{opacity:1;transform:none}}
.modal h3{font-size:1.4rem;margin:0 0 6px}
.modal-sub{color:var(--muted);font-size:.92rem;margin:0 0 20px}
.modal-close{position:absolute;top:12px;right:16px;background:none;border:none;font-size:1.9rem;line-height:1;
  color:var(--muted);cursor:pointer;transition:color .2s}
.modal-close:hover{color:var(--violet)}
#bookForm label{display:block;font-size:.85rem;font-weight:600;margin-bottom:14px;color:var(--text)}
#bookForm input[type=text], #bookForm select{width:100%;margin-top:6px;padding:12px 14px;border:1.5px solid var(--card-br);
  border-radius:12px;font:inherit;font-weight:500;background:#f8fbff;transition:border-color .2s}
#bookForm input[type=text]:focus, #bookForm select:focus{outline:none;border-color:var(--violet)}
#bookForm .consent{display:flex;gap:10px;align-items:flex-start;font-weight:500;font-size:.8rem;color:var(--muted);cursor:pointer;margin-bottom:0}
#bookForm .consent input{margin-top:2px;width:16px;height:16px;flex:none;accent-color:var(--violet)}
#bookForm .consent a{color:var(--violet);text-decoration:underline}
#bookForm .consent.err span{color:#e5484d}
#bookForm .btn{width:100%;margin-top:20px;border:none;cursor:pointer}
.form-msg{font-size:.85rem;margin:12px 0 0;text-align:center;min-height:1em}
.form-msg.ok{color:#2ca66f}.form-msg.err{color:#e5484d}

/* ============ Блок «Результат» 3×3 ============ */
.res-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:40px;counter-reset:res}
.res-item{position:relative;background:var(--card);border:1px solid var(--card-br);border-radius:18px;
  padding:24px 22px 22px;box-shadow:var(--shadow);font-weight:600;line-height:1.4}
.res-item::before{counter-increment:res;content:counter(res);display:flex;align-items:center;justify-content:center;
  width:38px;height:38px;border-radius:12px;background:var(--grad);color:#fff;font-family:'Unbounded',sans-serif;
  font-weight:800;font-size:1.05rem;margin-bottom:14px}
@media(max-width:860px){.res-grid{grid-template-columns:1fr 1fr}}
@media(max-width:560px){.res-grid{grid-template-columns:1fr}}

/* ============ Текстовая страница (политика) ============ */
.legal{max-width:900px;margin:0 auto;padding:0 24px 80px}
.legal h2{font-size:1.15rem;margin:32px 0 10px}
.legal p{color:var(--muted);margin-bottom:12px}
.legal a{color:var(--violet)}

/* honeypot: поле-ловушка для ботов, человек его не видит */
.hp-field{position:absolute!important;left:-10000px;width:1px;height:1px;overflow:hidden}
