/* Магнолія Авто · v3 (макет «Magnolia v8», погоджено 30.09–01.10).
   Лише прев'ю за ?v3=1 на головній: КОЖНЕ правило під body.v3, щоб нічого не протекло на звичайний сайт.
   site.css на v3 не вантажиться: потрібне з нього (чат, пастка для ботів, повідомлення форми) перенесено сюди.
   Шрифти: Rubik — заголовки й цифри, Golos Text — текст. Рух лише transform/opacity і лише без «зменшити рух». */

/* ── палітра Магнолії на :root (канон головної п.1; файл вантажиться лише з v3, тож на звичайний сайт не протікає).
   Робочі значення день/ніч — нижче, на body.v3 ── */
:root{--mg-red:#d8321f; --mg-red-dark:#b3261a; --mg-ink:#191512; --mg-soft:#f6f2ef; --mg-road:#2c2825; --mg-dash:#f2c230}

/* ── токени: день ── */
body.v3{
  --bg:#ffffff; --soft:#f6f2ef; --surface:#ffffff; --ink:#191512; --muted:#655d57; --line:#e7e0db; --line-2:#d6ccc5;
  --red:#d8321f; --red-text:#b3261a; --btn:#c02a19; --btn-h:#a32313; --btn-a:#8e1e10; --on-red:#ffffff; --on-red-2:#ffe9e4;
  --road:#2c2825; --on-road:#f3eeea; --on-road-2:#cfc7c1; --road-line:#5a524d; --dash:#f2c230; --river:#cfe3ee;
  --sign:#ffffff; --sign-ink:#191512; --light-h:#f6f2ef; --serp-t:#1a0dab;
  --ok:#2e7d32; --ok-bg:#e8f5ea; --err-bg:#fdecea;
  --shadow:0 18px 40px -22px rgba(25,21,18,.35); --shadow-s:0 8px 18px -10px rgba(25,21,18,.4);
  --display:"Rubik","Segoe UI",Roboto,Arial,sans-serif; --body:"Golos Text","Segoe UI",Roboto,Arial,sans-serif;
  --r-s:10px; --r-m:14px; --r-l:18px; --ease:cubic-bezier(.16,1,.3,1);
  background:var(--bg); color:var(--ink); font:17px/1.6 var(--body); margin:0;
  -webkit-font-smoothing:antialiased; text-rendering:optimizeLegibility;
}
/* ── токени: ніч (за системою, якщо тему не задано вручну; і за ручним data-theme="dark") ── */
@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]) body.v3{
    --bg:#141110; --soft:#1c1816; --surface:#211c19; --ink:#f3eeea; --muted:#b4aba4; --line:#352f2b; --line-2:#4a423d;
    --red:#ec4b33; --red-text:#ff7d66; --btn:#c02a19; --btn-h:#d8321f; --btn-a:#a32313; --road:#0d0b0a; --river:#1f3440;
    --serp-t:#8ab4f8; --ok:#7bc47f; --ok-bg:#1d2b1e; --err-bg:#3a1c17;
    --shadow:0 18px 40px -22px rgba(0,0,0,.7); --shadow-s:0 8px 18px -10px rgba(0,0,0,.8);
    color-scheme:dark;
  }
}
:root[data-theme="dark"] body.v3{
  --bg:#141110; --soft:#1c1816; --surface:#211c19; --ink:#f3eeea; --muted:#b4aba4; --line:#352f2b; --line-2:#4a423d;
  --red:#ec4b33; --red-text:#ff7d66; --btn:#c02a19; --btn-h:#d8321f; --btn-a:#a32313; --road:#0d0b0a; --river:#1f3440;
  --serp-t:#8ab4f8; --ok:#7bc47f; --ok-bg:#1d2b1e; --err-bg:#3a1c17;
  --shadow:0 18px 40px -22px rgba(0,0,0,.7); --shadow-s:0 8px 18px -10px rgba(0,0,0,.8);
  color-scheme:dark;
}

/* ── основа ── */
body.v3 *,body.v3 *::before,body.v3 *::after{box-sizing:border-box}
body.v3 img{max-width:100%;height:auto}
body.v3 a{color:inherit}
body.v3 .wrap{max-width:1200px;margin:0 auto;padding-inline:clamp(16px,4vw,40px)}
body.v3 h1,body.v3 h2,body.v3 h3{font-family:var(--display);letter-spacing:-.015em;text-wrap:balance;margin:0;color:var(--ink)}
body.v3 h2{font-size:clamp(1.75rem,3.6vw,2.7rem);line-height:1.08;font-weight:800}
body.v3 p{margin:0}
body.v3 .lede{color:var(--muted);max-width:58ch;margin:14px 0 0}
body.v3 main>section{padding-block:clamp(56px,8vw,104px)}
body.v3 .soft{background:var(--soft)}
body.v3 :focus-visible{outline:3px solid var(--red);outline-offset:3px;border-radius:6px}
body.v3 section[id]{scroll-margin-top:84px}
body.v3 .kicker{display:inline-flex;align-items:center;gap:8px;font:600 14px/1.3 var(--body);color:var(--red-text);letter-spacing:.02em}
body.v3 .kicker::before{content:"";width:10px;height:9px;background:var(--red);clip-path:polygon(50% 0,100% 100%,0 100%)}
body.v3 .sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

/* ── кнопки: основна, контурна, світла на червоному, лінія на червоному ── */
body.v3 .btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:48px;background:var(--btn);color:var(--on-red);font:600 16px/1 var(--body);padding:15px 24px;border-radius:12px;border:0;text-decoration:none;cursor:pointer;white-space:nowrap;-webkit-tap-highlight-color:transparent}
body.v3 .btn:hover{background:var(--btn-h)}
body.v3 .btn:active{background:var(--btn-a)}
body.v3 .btn:focus-visible{outline:3px solid var(--red);outline-offset:3px;border-radius:12px}
body.v3 .btn:disabled,body.v3 .btn[aria-disabled="true"]{opacity:.55;cursor:not-allowed}
body.v3 .btn.ghost{background:transparent;color:var(--ink);box-shadow:inset 0 0 0 2px var(--line-2)}
body.v3 .btn.ghost:hover{box-shadow:inset 0 0 0 2px var(--ink)}
body.v3 .btn.ghost:active{background:var(--soft)}
body.v3 .btn.light{background:var(--sign);color:var(--sign-ink)}
body.v3 .btn.light:hover{background:var(--light-h)}
body.v3 .btn.line{background:transparent;color:var(--on-red);box-shadow:inset 0 0 0 2px rgba(255,255,255,.7)}
body.v3 .btn.line:hover{box-shadow:inset 0 0 0 2px var(--on-red)}
body.v3 .btn.light:focus-visible,body.v3 .btn.line:focus-visible{outline-color:var(--on-red)}
body.v3 .btn.sm{min-height:42px;padding:11px 18px;font-size:15px}

/* ── поля ── */
body.v3 .fld{display:grid;gap:6px;font-size:14px;font-weight:500;color:var(--muted)}
body.v3 input[type=text],body.v3 input[type=tel],body.v3 input[type=email]{font:inherit;font-size:16px;font-weight:400;color:var(--ink);background:var(--bg);border:1.5px solid var(--line-2);border-radius:var(--r-s);padding:13px 14px;width:100%;min-height:48px;transition:border-color .15s}
body.v3 input::placeholder{color:var(--muted);opacity:.8}
body.v3 input[type=text]:hover,body.v3 input[type=tel]:hover,body.v3 input[type=email]:hover{border-color:var(--muted)}
body.v3 input[type=text]:focus,body.v3 input[type=tel]:focus,body.v3 input[type=email]:focus{outline:none;border-color:var(--red);box-shadow:0 0 0 3px color-mix(in srgb,var(--red) 22%,transparent)}
body.v3 .hp{position:absolute;left:-9999px}
body.v3 .form-msg{padding:10px 14px;border-radius:var(--r-s);background:var(--ok-bg);color:var(--ok);font-weight:600;font-size:15px}
body.v3 .form-msg.err{background:var(--err-bg);color:var(--red-text)}
body.v3 .form-msg[hidden]{display:none}
body.v3 .lead-more{display:grid;gap:inherit}
body.v3 .lead-form:not(.is-open) .lead-more{display:none}
body.v3 .cf-turnstile{max-width:100%;overflow:hidden}
body.v3 .cf-turnstile iframe{max-width:100%}
body.v3 .agree{font-size:13px;color:var(--muted);margin:0}
body.v3 .agree a{color:var(--muted);text-underline-offset:3px}
body.v3 .agree a:hover{color:var(--ink)}

/* ── чипи: пігулки з трикутником-знаком ── */
body.v3 .chips{border:0;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:8px;min-width:0}
body.v3 .chips legend{font-size:14px;font-weight:500;color:var(--muted);padding:0;margin-bottom:8px}
body.v3 .chip{position:relative;display:inline-flex}
body.v3 .chip input{position:absolute;inset:0;opacity:0;margin:0;cursor:pointer;width:100%;height:100%}
body.v3 .chip span{display:inline-flex;align-items:center;gap:7px;min-height:42px;padding:9px 15px;border-radius:999px;border:1.5px solid var(--line-2);background:var(--bg);font-size:15px;font-weight:500;color:var(--ink);transition:border-color .15s,background-color .15s,color .15s}
body.v3 .chip span::before{content:"";width:9px;height:8px;background:var(--red);clip-path:polygon(50% 0,100% 100%,0 100%)}
body.v3 .chip:hover span{border-color:var(--ink)}
body.v3 .chip input:checked+span{background:var(--red);border-color:var(--red);color:var(--on-red)}
body.v3 .chip input:checked+span::before{background:var(--sign)}
body.v3 .chip input:focus-visible+span{outline:3px solid var(--red);outline-offset:2px}
body.v3 .chip input[type=checkbox]+span::before{width:14px;height:14px;border-radius:4px;clip-path:none;background:transparent;box-shadow:inset 0 0 0 1.5px var(--line-2)}
body.v3 .chip input[type=checkbox]:checked+span::before{background:var(--sign);box-shadow:none;clip-path:polygon(14% 52%,0 66%,38% 100%,100% 22%,86% 8%,38% 72%)}

/* ── шапка ── */
body.v3 .v3h{position:sticky;top:0;z-index:50;background:color-mix(in srgb,var(--bg) 92%,transparent);backdrop-filter:saturate(1.4) blur(10px);-webkit-backdrop-filter:saturate(1.4) blur(10px);border-bottom:1px solid var(--line)}
body.v3 .v3h>.wrap{display:flex;align-items:center;gap:18px;min-height:68px}
body.v3 .logo{display:flex;align-items:center;text-decoration:none;color:var(--ink);flex:none}
body.v3 .logo b{font:800 22px/1 var(--display);letter-spacing:.01em;white-space:nowrap}
/* логотип C2: обидві «А» з форми знака без нижньої лінії, червоні; решта напису чорна */
body.v3 .tA{display:inline-block;width:.9em;height:.76em;vertical-align:-.005em;margin:0 .005em}
body.v3 .tA path,body.v3 .tA rect{fill:var(--red)}
body.v3 .nav{display:flex;align-items:center;gap:2px;font-weight:500;font-size:15px;white-space:nowrap}
body.v3 .nav>a,body.v3 .dd>button{font:inherit;color:var(--muted);background:none;border:0;padding:10px 12px;border-radius:var(--r-s);cursor:pointer;text-decoration:none;display:inline-flex;align-items:center;gap:6px;transition:color .15s,background-color .15s}
body.v3 .nav>a:hover,body.v3 .dd>button:hover,body.v3 .dd>button[aria-expanded="true"]{color:var(--ink);background:var(--soft)}
body.v3 .dd{position:relative}
body.v3 .dd>button::after{content:"";width:7px;height:7px;border:solid currentColor;border-width:0 2px 2px 0;transform:translateY(-2px) rotate(45deg);transition:transform .2s var(--ease)}
body.v3 .dd>button[aria-expanded="true"]::after{transform:translateY(2px) rotate(-135deg)}
body.v3 .dd .menu{position:absolute;top:calc(100% + 8px);left:0;min-width:260px;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-m);box-shadow:var(--shadow);padding:8px;display:none;z-index:60}
body.v3 .dd>button[aria-expanded="true"]+.menu{display:grid}
body.v3 .dd .menu a{padding:9px 12px;border-radius:9px;text-decoration:none;color:var(--ink);font-size:15px;white-space:normal}
body.v3 .dd .menu a small{display:block;color:var(--muted);font-size:13px}
body.v3 .dd .menu a:hover{background:var(--soft)}
body.v3 .dd .menu a.all{margin-top:4px;border-top:1px solid var(--line);border-radius:0 0 9px 9px;padding-top:11px;font-weight:600;color:var(--red-text)}
body.v3 .hdr-right{margin-left:auto;display:flex;align-items:center;gap:14px}
body.v3 .tel{font:700 16px/1 var(--display);text-decoration:none;white-space:nowrap;font-variant-numeric:tabular-nums}
body.v3 .tel small{display:block;font:500 12px/1.3 var(--body);color:var(--muted);margin-top:3px}
body.v3 .tel:hover{color:var(--red-text)}
body.v3 .burger{display:none;width:46px;height:46px;border-radius:12px;border:1.5px solid var(--line-2);background:var(--bg);color:var(--ink);cursor:pointer;align-items:center;justify-content:center;flex:none}
body.v3 .burger:hover{border-color:var(--ink)}
body.v3 .burger svg{width:22px;height:22px}
body.v3 .burger[aria-expanded="true"] .b1{transform:translateY(5px) rotate(45deg)}
body.v3 .burger[aria-expanded="true"] .b2{opacity:0}
body.v3 .burger[aria-expanded="true"] .b3{transform:translateY(-5px) rotate(-45deg)}
body.v3 .burger path{transform-box:fill-box;transform-origin:center;transition:transform .2s var(--ease),opacity .2s}
body.v3 #mnav{display:none;border-top:1px solid var(--line);background:var(--bg);padding:4px 0 18px;max-height:calc(100dvh - 68px);overflow:auto}
body.v3 #mnav.open{display:block}
body.v3 #mnav details{border-bottom:1px solid var(--line)}
body.v3 #mnav summary{list-style:none;cursor:pointer;padding:15px 0;font:600 17px var(--display);display:flex;justify-content:space-between;align-items:center}
body.v3 #mnav summary::-webkit-details-marker{display:none}
body.v3 #mnav summary::after{content:"+";font:500 24px/1 var(--display);color:var(--red);transition:transform .2s var(--ease)}
body.v3 #mnav details[open] summary::after{transform:rotate(45deg)}
body.v3 #mnav details a{display:block;padding:9px 0 9px 14px;text-decoration:none;color:var(--ink);border-left:2px solid var(--line)}
body.v3 #mnav details a:hover{border-left-color:var(--red)}
body.v3 #mnav details[open]{padding-bottom:10px}
body.v3 #mnav .wrap>a{display:block;font:600 17px var(--display);padding:15px 0;border-bottom:1px solid var(--line);text-decoration:none;color:var(--ink)}
body.v3 #mnav .m-call{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:16px}

/* ── перший екран ── */
body.v3 .hero{padding-block:clamp(32px,5vw,64px) clamp(48px,7vw,88px)}
body.v3 .hero>.wrap{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);gap:clamp(24px,4vw,56px);align-items:center}
body.v3 .hero h1{font-size:clamp(2.1rem,4.4vw,3.6rem);line-height:1.02;font-weight:800;margin-top:14px}
body.v3 .hero h1 a.city{color:var(--red);text-decoration:none;text-decoration-thickness:3px;text-underline-offset:6px}
body.v3 .hero h1 a.city:hover{text-decoration:underline;text-decoration-thickness:3px;text-underline-offset:6px}
body.v3 .hero .lede{font-size:1.1rem}
body.v3 .facts{display:flex;flex-wrap:wrap;gap:6px 18px;margin:18px 0 0;padding:0;list-style:none;font-size:14.5px;color:var(--muted)}
body.v3 .facts li{display:inline-flex;align-items:center;gap:7px}
body.v3 .facts li::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--dash)}
body.v3 .pick{margin-top:26px;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-l);padding:clamp(18px,2.4vw,24px);box-shadow:var(--shadow);display:grid;gap:14px;max-width:580px}
body.v3 .pick h2{font-size:1.3rem;font-weight:700;line-height:1.2}
body.v3 .pick .send{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr) auto;gap:10px;align-items:end}
body.v3 .pick .send .btn{min-height:50px}

/* знак «Навчальне авто»: трикутник школи — рамка для 3D-авто; картинка лишається запасом без WebGL */
body.v3 .stage{position:relative;justify-self:center;width:min(100%,520px);perspective:900px}
body.v3 .sign{position:relative;aspect-ratio:1/.9;transform:rotateX(var(--rx,0deg)) rotateY(var(--ry,0deg));transform-style:preserve-3d;transition:transform .5s var(--ease)}
body.v3 .sign>i{position:absolute;display:block;clip-path:url(#tri)}
body.v3 .sign .s1{inset:0;background:var(--red)}
body.v3 .sign .s2{inset:9% 10.5% 5.5%;background:var(--sign)}
body.v3 .sign .car{position:absolute;left:19%;width:62%;bottom:13%;filter:drop-shadow(0 12px 12px rgba(25,21,18,.25));transform:translate3d(var(--cx,0px),0,30px);transition:transform .5s var(--ease)}
body.v3 .sign .car3d{position:absolute;left:8%;width:84%;bottom:6%;height:72%;opacity:0;transition:opacity .6s ease;transform:translateZ(30px);pointer-events:none}
body.v3 .sign.ready .car3d{opacity:1}
body.v3 .sign.ready .car{visibility:hidden}
body.v3 .stage .road{display:block;width:78%;margin:-2% auto 0;height:26px;border-radius:13px;background:var(--road) linear-gradient(90deg,var(--dash) 0 30px,transparent 30px 52px) 0 50%/52px 3px repeat-x}
body.v3 .stage .cap{text-align:center;margin:12px 0 0;font:600 15px/1.3 var(--body);color:var(--muted)}

/* ── маскоти «Маґа і друзі» ── */
body.v3 .mg{display:block;width:72px;height:72px;flex:none}

/* ── категорії: перша плитка велика, у кожної своя машинка на жетоні ── */
body.v3 .cats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-top:36px}
body.v3 .cat{position:relative;display:flex;flex-direction:column;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-l);overflow:hidden;text-decoration:none;color:var(--ink);transition:border-color .2s}
body.v3 .cat:hover{border-color:var(--ink)}
body.v3 .cat .ph{order:1;aspect-ratio:4/3;overflow:hidden;background:var(--soft)}
body.v3 .cat .ph img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .6s var(--ease)}
body.v3 .cat-b .ph img{object-position:50% 30%}
body.v3 .cat-a .ph img{object-position:50% 25%}
body.v3 .cat-b1 .ph img{object-position:50% 60%}
body.v3 .cat.main{grid-column:span 2;grid-row:span 2}
body.v3 .cat.main .ph{aspect-ratio:auto;flex:1;min-height:260px}
body.v3 .cat .plate{order:2;display:block;width:46px;height:41px;margin:-22px 0 0 18px;position:relative;z-index:2}
body.v3 .plate svg{width:100%;height:100%;display:block;overflow:visible}
body.v3 .plate path{fill:var(--sign);stroke:var(--red);stroke-width:5;stroke-linejoin:round}
body.v3 .plate text{font:800 17px var(--display);fill:var(--sign-ink);text-anchor:middle}
body.v3 .plate text.two{font-size:14px}
body.v3 .cat .body{order:3;padding:8px 18px 18px;display:grid;gap:4px;flex:none}
body.v3 .cat h3{font-size:1.15rem;font-weight:700}
body.v3 .cat.main h3{font-size:1.6rem}
body.v3 .cat p{color:var(--muted);font-size:15px}
body.v3 .cat .price{font:700 1.25rem/1.2 var(--display);font-variant-numeric:tabular-nums;margin-top:6px}
body.v3 .cat.main .price{font-size:1.9rem}
body.v3 .cat .price small{font:500 14px var(--body);color:var(--muted)}
body.v3 .cat .go{position:absolute;right:16px;bottom:18px;width:34px;height:34px;border-radius:50%;display:grid;place-items:center;box-shadow:inset 0 0 0 1.5px var(--line-2);color:var(--ink);transition:background-color .2s,color .2s,box-shadow .2s}
body.v3 .cat .go svg{width:14px;height:14px}
body.v3 .cat:hover .go{background:var(--red);color:var(--on-red);box-shadow:none}
/* жетон маскота: кругла підкладка кольору поверхні, легка тінь */
body.v3 .cat .mg{position:absolute;top:10px;right:10px;z-index:2;width:80px;height:80px;padding:6px;border-radius:50%;background:var(--surface);box-shadow:var(--shadow-s)}
body.v3 .cat.main .mg{width:108px;height:108px;padding:8px}

/* ── райони: схема й перелік ── */
body.v3 .areas{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);gap:clamp(24px,4vw,48px);align-items:center;margin-top:36px}
body.v3 .map{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-l);padding:12px}
body.v3 .map svg{display:block;width:100%;height:auto}
body.v3 .map .river{fill:none;stroke:var(--river);stroke-width:46;stroke-linecap:round}
body.v3 .map .ring{fill:none;stroke:var(--line-2);stroke-width:2;stroke-dasharray:6 8}
body.v3 .map .pin{cursor:pointer}
body.v3 .map .pin polygon{fill:var(--sign);stroke:var(--red);stroke-width:5;stroke-linejoin:round;transition:fill .2s}
body.v3 .map .pin text{font:600 15px var(--body);fill:var(--ink)}
body.v3 .map .pin.on polygon{fill:var(--red)}
body.v3 .map .lbl{font:500 13px var(--body);fill:var(--muted);letter-spacing:.04em}
body.v3 .alist{display:grid;gap:8px}
body.v3 .alist button{display:grid;grid-template-columns:1fr auto;gap:2px 12px;align-items:center;text-align:left;font:inherit;color:var(--ink);background:var(--surface);border:1.5px solid var(--line);border-radius:var(--r-m);padding:12px 16px;cursor:pointer;transition:border-color .2s}
body.v3 .alist button:hover{border-color:var(--ink)}
body.v3 .alist button b{font-weight:600}
body.v3 .alist button span{grid-column:1;color:var(--muted);font-size:14px}
body.v3 .alist button i{grid-row:1/3;grid-column:2;font-style:normal;font-size:14px;color:var(--red-text);font-weight:600}
body.v3 .alist button[aria-pressed="true"]{border-color:var(--red);box-shadow:inset 0 0 0 1px var(--red)}
body.v3 .alist .more{font-size:15px;color:var(--muted);margin:6px 0 0}
body.v3 .alist .more a{color:var(--red-text);text-underline-offset:3px}

/* ── філії ── */
body.v3 .branches{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0;margin-top:36px;border-top:1px solid var(--line)}
body.v3 .br{padding:22px 22px 22px 0;display:grid;gap:5px;align-content:start;border-bottom:1px solid var(--line)}
body.v3 .br:not(:nth-child(3n+1)){padding-left:22px;border-left:1px solid var(--line)}
body.v3 .br h3{font-size:1.08rem;font-weight:700}
body.v3 .br h3 a{text-decoration:none}
body.v3 .br h3 a:hover{color:var(--red-text)}
body.v3 .br a.addr{display:inline-flex;align-items:center;gap:7px;color:var(--ink);text-decoration:none;font-weight:600}
body.v3 .br a.addr::before{content:"";width:9px;height:8px;background:var(--red);clip-path:polygon(50% 0,100% 100%,0 100%);flex:none}
body.v3 .br a.addr:hover{text-decoration:underline;text-underline-offset:4px;color:var(--red-text)}
body.v3 .br .meta{color:var(--muted);font-size:14.5px}
body.v3 .br a.btel{color:var(--red-text);text-decoration:none;font-weight:600;font-variant-numeric:tabular-nums;font-size:15px}
body.v3 .br a.btel:hover{text-decoration:underline}

/* ── шлях до прав: дорога з розміткою ── */
body.v3 .route{position:relative;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:24px;margin-top:56px;padding-top:44px}
body.v3 .route::before{content:"";position:absolute;left:0;right:0;top:0;height:22px;border-radius:11px;background:var(--road) linear-gradient(90deg,var(--dash) 0 34px,transparent 34px 60px) 0 50%/60px 3px repeat-x}
body.v3 .stop{position:relative}
body.v3 .stop::before{content:"";position:absolute;top:-44px;left:0;width:22px;height:22px;border-radius:50%;background:var(--red);box-shadow:0 0 0 5px var(--bg)}
body.v3 .stop .n{font:800 14px/1 var(--display);color:var(--red-text);letter-spacing:.06em;font-variant-numeric:tabular-nums}
body.v3 .stop h3{font-size:1.2rem;font-weight:700;margin-top:8px}
body.v3 .stop p{margin:6px 0 0;color:var(--muted);font-size:15.5px}
body.v3 .route .drive{position:absolute;top:-52px;left:0;width:64px;height:64px;z-index:2}
body.v3 .tsc{margin-top:36px;display:flex;flex-wrap:wrap;gap:10px 28px;font-size:15px;color:var(--muted)}
body.v3 .tsc b{color:var(--ink);font-family:var(--display)}
body.v3 .tsc a{color:var(--red-text);text-underline-offset:3px}

/* ── найближча група ── */
body.v3 .grp{position:relative;display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:clamp(16px,3vw,40px);align-items:center;margin-top:28px;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-l);padding:clamp(20px,3vw,34px)}
body.v3 .grp .date{font:800 clamp(2.8rem,6vw,4.6rem)/.9 var(--display);color:var(--red);font-variant-numeric:tabular-nums;padding-right:clamp(16px,3vw,40px);border-right:1px dashed var(--line-2)}
body.v3 .grp .date small{display:block;font:600 16px var(--body);color:var(--muted);margin-top:10px}
body.v3 .grp h3{font:700 1.35rem var(--display)}
body.v3 .grp p{margin:6px 0 0;color:var(--muted)}
body.v3 .grp .left{font:600 15px var(--body);color:var(--red-text);margin-top:10px}
body.v3 .grp .left:empty{display:none}
body.v3 .grp .mg{width:110px;height:110px}
body.v3 .grp .btn{margin-top:16px}

/* ── команда: ролі без імен і фото, гортання ── */
body.v3 .team-head{display:flex;align-items:end;justify-content:space-between;gap:16px;flex-wrap:wrap}
body.v3 .team-nav{display:flex;gap:8px}
body.v3 .team-nav button{width:46px;height:46px;border-radius:50%;border:1.5px solid var(--line-2);background:var(--surface);color:var(--ink);cursor:pointer;display:grid;place-items:center;transition:border-color .2s,background-color .2s}
body.v3 .team-nav button svg{width:18px;height:18px}
body.v3 .team-nav button:hover{border-color:var(--ink)}
body.v3 .team-nav button:active{background:var(--soft)}
body.v3 .team{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(240px,1fr);gap:16px;overflow-x:auto;scroll-snap-type:x mandatory;margin:28px 0 0;padding:0 0 6px;list-style:none;scrollbar-width:none}
body.v3 .team::-webkit-scrollbar{display:none}
body.v3 .person{scroll-snap-align:start;display:grid;grid-template-rows:auto 1fr;gap:10px;min-height:190px;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-l);padding:20px 20px 22px;position:relative;overflow:hidden}
body.v3 .person .n{font:800 3rem/1 var(--display);color:var(--soft);-webkit-text-stroke:1.5px var(--line-2);font-variant-numeric:tabular-nums}
body.v3 .person b{display:block;font:700 1.08rem/1.3 var(--display);align-self:end}
body.v3 .person span{display:block;color:var(--muted);font-size:14.5px;margin-top:4px}

/* ── ціни ── */
body.v3 .prices{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr) minmax(0,1fr);gap:16px;margin-top:36px;align-items:stretch}
body.v3 .pc{position:relative;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-l);padding:24px;display:flex;flex-direction:column;gap:10px}
body.v3 .pc h3{font-size:1.15rem;font-weight:700}
body.v3 .pc .sum{font:800 2.3rem/1 var(--display);font-variant-numeric:tabular-nums;letter-spacing:-.02em}
body.v3 .pc .sum small{font:500 15px var(--body);color:var(--muted);letter-spacing:0}
body.v3 .pc ul{margin:4px 0 8px;padding:0;list-style:none;display:grid;gap:7px;color:var(--muted);font-size:15.5px}
body.v3 .pc li{padding-left:20px;position:relative}
body.v3 .pc li::before{content:"";position:absolute;left:0;top:.55em;width:9px;height:8px;background:var(--red);clip-path:polygon(50% 0,100% 100%,0 100%)}
body.v3 .pc .acts{margin-top:auto;display:grid;gap:8px}
body.v3 .pc.main{background:var(--road);color:var(--on-road);border-color:var(--road)}
body.v3 .pc.main h3,body.v3 .pc.main .sum{color:var(--on-road)}
body.v3 .pc.main .sum small,body.v3 .pc.main ul{color:var(--on-road-2)}
body.v3 .pc.main li::before{background:var(--dash)}
body.v3 .pc.main .tagline{font:600 13px/1 var(--body);color:var(--dash);letter-spacing:.06em;text-transform:uppercase;padding-right:70px}
body.v3 .pc.main .mg{position:absolute;top:14px;right:14px;width:60px;height:60px}
body.v3 .pc .add{font:600 14px var(--body);color:var(--ink);background:transparent;border:1.5px dashed var(--line-2);border-radius:var(--r-s);padding:11px 12px;min-height:44px;cursor:pointer;text-align:left;transition:border-color .15s,color .15s}
body.v3 .pc .add:hover{border-color:var(--ink)}
body.v3 .pc .add[aria-pressed="true"]{border-style:solid;border-color:var(--red);color:var(--red-text)}
body.v3 .pc.main .add{color:var(--on-road);border-color:var(--road-line)}
body.v3 .pc.main .add:hover{border-color:var(--on-road)}
body.v3 .pc.main .add[aria-pressed="true"]{border-color:var(--dash);color:var(--dash)}
body.v3 .disc{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-top:16px}
body.v3 .disc div{border:1.5px dashed var(--line-2);border-radius:16px;padding:16px 18px;font-size:15px;color:var(--muted)}
body.v3 .disc b{display:block;font:800 1.5rem/1.15 var(--display);color:var(--red-text);font-variant-numeric:tabular-nums;margin-bottom:2px}
body.v3 .disc a{color:var(--ink);text-underline-offset:3px}
/* повний прайс — таблиця за категоріями, розгортається */
body.v3 .ptable{margin-top:22px;border:1px solid var(--line);border-radius:var(--r-l);background:var(--surface);overflow:hidden}
body.v3 .ptable summary{list-style:none;cursor:pointer;padding:16px 20px;font:600 1.05rem var(--display);display:flex;justify-content:space-between;align-items:center;gap:12px}
body.v3 .ptable summary::-webkit-details-marker{display:none}
body.v3 .ptable summary::after{content:"+";font:500 26px/1 var(--display);color:var(--red);transition:transform .25s var(--ease)}
body.v3 .ptable[open] summary::after{transform:rotate(45deg)}
body.v3 .ptable summary:hover{background:var(--soft)}
body.v3 .ptable .tw{overflow-x:auto;padding:0 20px 18px}
body.v3 .ptable table{width:100%;border-collapse:collapse;font-size:15px}
body.v3 .ptable th{text-align:left;font:700 13px/1.3 var(--body);text-transform:uppercase;letter-spacing:.06em;color:var(--muted);padding:18px 0 8px}
body.v3 .ptable td{padding:10px 0;border-top:1px solid var(--line);vertical-align:top}
body.v3 .ptable td:last-child{text-align:right;white-space:nowrap;font:600 15px var(--display);font-variant-numeric:tabular-nums;padding-left:16px}
body.v3 .fine{font-size:14px;color:var(--muted);margin:18px 0 0;max-width:80ch}
body.v3 .fine a{color:var(--ink);text-underline-offset:3px}

/* ── запис кроками ── */
body.v3 .book{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,.7fr);gap:clamp(20px,3vw,40px);margin-top:36px;align-items:start}
body.v3 .book .steps{display:grid;gap:14px;min-width:0}
body.v3 .book>.cf-turnstile,body.v3 .pick>.cf-turnstile{grid-column:1/-1}
body.v3 .req{color:var(--red-text);font-weight:600}
body.v3 .hint{font-size:13px;color:var(--muted);font-weight:400}
body.v3 .book .step{margin:0;border:1px solid var(--line);border-radius:var(--r-l);padding:18px 20px 20px;background:var(--surface);min-width:0}
body.v3 .book .step legend{font:700 1.05rem var(--display);padding:0 6px;display:flex;align-items:center;gap:8px}
body.v3 .book .step legend i{font-style:normal;display:inline-grid;place-items:center;width:26px;height:26px;border-radius:50%;background:var(--red);color:var(--on-red);font-size:14px}
body.v3 .book .step legend small{font:500 14px var(--body);color:var(--muted)}
body.v3 .opts{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px}
body.v3 .book .two{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:8px}
body.v3 .book .lead-more{grid-column:1/-1}
body.v3 .sumbox{position:sticky;top:90px;background:var(--road);color:var(--on-road);border-radius:var(--r-l);padding:22px;display:grid;gap:4px}
body.v3 .sumbox h3{font-size:1.1rem;color:var(--on-road)}
body.v3 .sumbox ul{list-style:none;margin:10px 0 12px;padding:0;display:grid;gap:6px;color:var(--on-road-2);font-size:15px}
body.v3 .sumbox li{padding-left:14px;position:relative}
body.v3 .sumbox li::before{content:"";position:absolute;left:0;top:.6em;width:6px;height:6px;border-radius:50%;background:var(--dash)}
body.v3 .sumbox .tot{font:800 1.8rem/1 var(--display);font-variant-numeric:tabular-nums;color:var(--on-red)}
body.v3 .sumbox .tot small{display:block;font:500 13px/1.4 var(--body);color:var(--on-road-2);margin-top:6px}
body.v3 .sumbox .btn{width:100%;margin-top:14px}
body.v3 .sumbox .mg{width:64px;height:64px;margin:-6px 0 6px}
body.v3 .sumbox .form-msg{margin-top:10px}
body.v3 .sumbox .agree,body.v3 .sumbox .agree a{color:var(--on-road-2);margin-top:8px}

/* ── тест ПДР ── */
body.v3 .quiz{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,.6fr);gap:clamp(20px,3vw,40px);margin-top:28px;align-items:start}
body.v3 .q{border:1px solid var(--line);border-radius:var(--r-l);padding:18px 20px;background:var(--surface);margin:0 0 12px;min-width:0}
body.v3 .q legend{font:700 1.05rem var(--display);padding:0 6px}
body.v3 .q .res{margin:10px 0 0;font-size:15px;min-height:1.3em;font-weight:500}
body.v3 .q .res.ok{color:var(--ok)}
body.v3 .q .res.no{color:var(--red-text)}
body.v3 .qside{position:sticky;top:90px;text-align:center;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-l);padding:24px}
body.v3 .qside .mg{width:140px;height:140px;margin:0 auto}
body.v3 .qside b{display:block;font:800 2rem var(--display);font-variant-numeric:tabular-nums;margin-top:8px}
body.v3 .qside p{margin:6px 0 14px;color:var(--muted);font-size:15px}

/* ── відгуки ── */
body.v3 .rev-head{display:flex;align-items:end;justify-content:space-between;gap:16px;flex-wrap:wrap}
body.v3 .gbadge{display:inline-flex;align-items:center;gap:10px;padding:11px 16px;border:1.5px solid var(--line-2);border-radius:12px;background:var(--surface);text-decoration:none;color:var(--ink);font-weight:600;font-size:15px;transition:border-color .2s}
body.v3 .gbadge:hover{border-color:var(--ink)}
body.v3 .gbadge svg{width:22px;height:22px}
body.v3 .revs{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);gap:16px;margin-top:32px}
body.v3 .rev{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-l);padding:24px;display:flex;flex-direction:column;gap:12px;margin:0}
body.v3 .rev:first-child{grid-row:span 2;justify-content:center;padding:clamp(24px,4vw,44px)}
body.v3 .rev:first-child p{font:500 clamp(1.3rem,2.4vw,1.75rem)/1.35 var(--display)}
body.v3 .rev .st{color:var(--red);letter-spacing:3px;font-size:18px}
body.v3 .rev p{font-size:1.05rem;line-height:1.55}
body.v3 .rev .who{margin-top:auto;font-size:14px;color:var(--muted)}
body.v3 .rev .who b{color:var(--ink);font-size:15px}
body.v3 .rev .src{display:inline-flex;align-items:center;gap:8px;font-size:13.5px;color:var(--muted);text-decoration:none;align-self:flex-start}
body.v3 .rev .src:hover{color:var(--ink);text-decoration:underline;text-underline-offset:3px}
body.v3 .rev .src svg{width:16px;height:16px;flex:none}
body.v3 .rev-more{font-size:15px;color:var(--muted);margin-top:16px}
body.v3 .rev-more a{color:var(--red-text);text-underline-offset:3px}

/* ── статті ── */
body.v3 .posts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 32px;margin-top:28px;border-top:1px solid var(--line)}
body.v3 .posts a{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:4px 16px;padding:18px 0;border-bottom:1px solid var(--line);text-decoration:none;color:var(--ink)}
body.v3 .posts a b{font:600 1.05rem/1.35 var(--display)}
body.v3 .posts a span{grid-column:1;font-size:14px;color:var(--muted)}
body.v3 .posts a i{grid-row:1/3;grid-column:2;align-self:center;font-style:normal;color:var(--red-text);transition:transform .25s var(--ease)}
body.v3 .posts a:hover b{color:var(--red-text)}
body.v3 .more-link{display:inline-flex;margin-top:18px;color:var(--red-text);font-weight:600;text-underline-offset:4px}

/* ── питання ── */
body.v3 .faq{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:clamp(24px,4vw,56px)}
body.v3 .faq .lede a{color:var(--ink);font-weight:600;text-decoration:none;white-space:nowrap}
body.v3 .faq .lede a:hover{color:var(--red-text)}
body.v3 .faq details{border-bottom:1px solid var(--line)}
body.v3 .faq details:first-child{border-top:1px solid var(--line)}
body.v3 .faq summary{list-style:none;cursor:pointer;padding:18px 40px 18px 0;position:relative;font:600 1.08rem/1.35 var(--display);transition:color .15s}
body.v3 .faq summary:hover{color:var(--red-text)}
body.v3 .faq summary::-webkit-details-marker{display:none}
body.v3 .faq summary::after{content:"+";position:absolute;right:4px;top:14px;font:500 26px/1 var(--display);color:var(--red);transition:transform .25s var(--ease)}
body.v3 .faq details[open] summary::after{transform:rotate(45deg)}
body.v3 .faq details p{margin:0 0 18px;color:var(--muted);max-width:64ch}
body.v3 .faq .mg{width:84px;height:84px;margin-top:20px}

/* ── пошук: лише для погодження прев'ю ── */
body.v3 .forclient{font-size:13px;color:var(--muted);margin:0 0 6px;text-transform:uppercase;letter-spacing:.06em}
body.v3 .seo{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(20px,3vw,40px);margin-top:28px}
body.v3 .serp{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-l);padding:20px 22px;font-family:Arial,sans-serif}
body.v3 .serp .u{font-size:14px;color:var(--muted)}
body.v3 .serp .t{font-size:20px;color:var(--serp-t);margin:4px 0}
body.v3 .serp .d{font-size:14px;color:var(--muted);line-height:1.5}
body.v3 .seo ul{margin:0;padding-left:20px;display:grid;gap:8px;color:var(--muted)}
@media (max-width:900px){body.v3 .seo{grid-template-columns:minmax(0,1fr)}}

/* ── фінал ── */
body.v3 .final-wrap{padding-bottom:clamp(56px,8vw,104px)}
body.v3 .final{position:relative;overflow:hidden;background:var(--red);color:var(--on-red);border-radius:var(--r-l);padding:clamp(28px,5vw,56px);display:grid;grid-template-columns:minmax(0,1fr) auto;gap:24px;align-items:center}
body.v3 .final::after{content:"";position:absolute;right:-60px;bottom:-80px;width:260px;height:230px;background:rgba(255,255,255,.08);clip-path:polygon(50% 0,100% 100%,0 100%);pointer-events:none}
body.v3 .final h2{color:var(--on-red)}
body.v3 .final p{margin:10px 0 0;color:var(--on-red-2);max-width:52ch}
body.v3 .final .acts{display:flex;flex-wrap:wrap;gap:12px;position:relative;z-index:1}

/* ── підвал ── */
body.v3 .v3f{background:var(--soft);border-top:1px solid var(--line);padding-block:56px 32px;font-size:15px;color:var(--muted)}
body.v3 .v3f .top{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:20px;padding-bottom:32px;border-bottom:1px solid var(--line)}
body.v3 .v3f .top .logo b{font-size:20px}
body.v3 .v3f .top p{margin:6px 0 0}
body.v3 .v3f .contact{display:flex;flex-wrap:wrap;align-items:center;gap:12px}
body.v3 .v3f .fphone{font:800 1.3rem var(--display);color:var(--ink);text-decoration:none;font-variant-numeric:tabular-nums}
body.v3 .v3f .fphone:hover{color:var(--red-text)}
body.v3 .v3f .cols{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:28px;padding-top:32px}
body.v3 .v3f h3{font:700 15px var(--display);color:var(--ink);margin-bottom:12px}
body.v3 .v3f ul{list-style:none;margin:0;padding:0;display:grid;gap:7px}
body.v3 .v3f a{text-decoration:none;color:var(--muted)}
body.v3 .v3f a:hover{color:var(--ink);text-decoration:underline;text-underline-offset:3px}
body.v3 .v3f a.all{color:var(--red-text);font-weight:600}
body.v3 .v3f .bottom{display:flex;flex-wrap:wrap;gap:8px 22px;margin-top:36px;padding-top:20px;border-top:1px solid var(--line);font-size:13px}
body.v3 .v3f .bottom .impc-credit b{color:var(--ink)}

/* ── мобільна смуга дій ── */
body.v3 .mbar{display:none}

/* ── чат: наявний віджет сайту (site.js), лише інший вигляд і обличчя Маґи ── */
body.v3 #maHelp{position:fixed;right:20px;bottom:20px;z-index:150}
body.v3 #maHelpBtn{display:inline-flex;align-items:center;gap:8px;background:var(--btn);color:var(--on-red);border:0;border-radius:999px;padding:8px 18px 8px 10px;min-height:52px;font:600 15px var(--body);box-shadow:var(--shadow);cursor:pointer;font-size:0}
body.v3 #maHelpBtn span{font-size:15px}
body.v3 #maHelpBtn:hover{background:var(--btn-h)}
body.v3 #maHelpBtn:focus-visible{outline:3px solid var(--red);outline-offset:3px}
body.v3 #maHelpBtn .mg{width:36px;height:36px;margin:0;padding:3px;border-radius:50%;background:var(--sign)}
body.v3 #maHelpWin{width:370px;max-width:calc(100vw - 32px);height:520px;max-height:calc(100vh - 100px);background:var(--surface);border:1px solid var(--line);border-radius:var(--r-l);box-shadow:var(--shadow);display:flex;flex-direction:column;overflow:hidden}
body.v3 #maHelpWin[hidden]{display:none!important}
body.v3 #maHelpHead{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:12px 12px 12px 14px;background:var(--road);color:var(--on-road);font-size:14px}
body.v3 #maHelpHead>span{display:flex;align-items:center;gap:8px}
body.v3 #maHelpHead b{font:700 15px var(--display)}
body.v3 #maHelpHead .mg{width:32px;height:32px;padding:2px;border-radius:50%;background:var(--sign)}
body.v3 #maHelpX{width:34px;height:34px;flex:none;display:grid;place-items:center;border-radius:50%;border:0;background:rgba(255,255,255,.12);color:var(--on-red);font-size:15px;cursor:pointer}
body.v3 #maHelpX:hover{background:rgba(255,255,255,.24)}
body.v3 #maHelpBody{flex:1;overflow-y:auto;padding:14px;display:flex;flex-direction:column;gap:8px;background:var(--soft)}
body.v3 .maH-msg{max-width:86%;padding:9px 13px;border-radius:14px;font-size:15px;line-height:1.45;white-space:pre-wrap}
body.v3 .maH-msg.bot{background:var(--surface);border:1px solid var(--line);align-self:flex-start;border-bottom-left-radius:4px;color:var(--ink)}
body.v3 .maH-msg.me{background:var(--red);color:var(--on-red);align-self:flex-end;border-bottom-right-radius:4px}
body.v3 .maH-msg a{color:var(--red-text);text-decoration:underline;word-break:break-all}
body.v3 .maH-fb{display:grid;gap:8px;margin-top:10px;white-space:normal}
body.v3 .maH-fb input{padding:9px 12px;border:1.5px solid var(--line-2);border-radius:var(--r-s);font:inherit;width:100%;background:var(--bg);color:var(--ink);min-height:0}
body.v3 .maH-fb button{padding:10px;border:0;border-radius:var(--r-s);background:var(--btn);color:var(--on-red);font-weight:700;cursor:pointer}
body.v3 .maH-fb button:disabled{opacity:.6;cursor:default}
body.v3 .maH-fb .err{color:var(--red-text);font-size:13px}
body.v3 #maHelpForm{display:flex;gap:8px;padding:10px;border-top:1px solid var(--line);background:var(--surface)}
body.v3 #maHelpInp{flex:1;font:inherit;font-size:15px;color:var(--ink);background:var(--bg);border:1.5px solid var(--line-2);border-radius:999px;padding:10px 14px;min-height:0}
body.v3 #maHelpInp:focus{outline:none;border-color:var(--red)}
body.v3 #maHelpForm button{width:42px;height:42px;flex:none;border-radius:50%;border:0;background:var(--btn);color:var(--on-red);font-size:18px;cursor:pointer}
body.v3 #maHelpForm button:hover{background:var(--btn-h)}
body.v3 #maFallback{background:var(--btn)!important}

/* ── адаптив ── */
@media (max-width:1380px){
  body.v3 .nav{display:none}
  body.v3 .burger{display:inline-flex}
}
@media (max-width:900px){
  body.v3 .hero>.wrap{grid-template-columns:minmax(0,1fr)}
  body.v3 .stage{order:-1;width:min(64%,230px)}
  body.v3 .stage .cap{display:none}
  body.v3 .cats{grid-template-columns:repeat(2,minmax(0,1fr))}
  body.v3 .areas,body.v3 .faq,body.v3 .book,body.v3 .quiz{grid-template-columns:minmax(0,1fr)}
  body.v3 .route{grid-template-columns:repeat(2,minmax(0,1fr));row-gap:48px}
  body.v3 .route::before{display:none}
  body.v3 .route .drive{display:none}
  body.v3 .stop::before{top:-30px}
  body.v3 .prices,body.v3 .revs,body.v3 .disc,body.v3 .final{grid-template-columns:minmax(0,1fr)}
  body.v3 .branches{grid-template-columns:repeat(2,minmax(0,1fr))}
  body.v3 .br:not(:nth-child(3n+1)){padding-left:0;border-left:0}
  body.v3 .br:nth-child(2n){padding-left:22px;border-left:1px solid var(--line)}
  body.v3 .sumbox,body.v3 .qside{position:static}
  body.v3 .grp{grid-template-columns:minmax(0,1fr)}
  body.v3 .grp .date{border-right:0;padding-right:0}
  body.v3 .grp .mg{position:absolute;top:14px;right:14px;width:64px;height:64px}
  body.v3 .posts{grid-template-columns:minmax(0,1fr)}
  body.v3 .v3f .cols{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:600px){
  body.v3{font-size:16px;padding-bottom:76px}
  body.v3 .hdr-right .btn,body.v3 .hdr-right .tel{display:none}
  body.v3 .logo b{font-size:18px}
  body.v3 .pick .send{grid-template-columns:minmax(0,1fr)}
  body.v3 .cats{grid-template-columns:minmax(0,1fr)}
  body.v3 .cat.main{grid-column:auto;grid-row:auto}
  body.v3 .cat.main .ph{aspect-ratio:4/3;min-height:0}
  body.v3 .cat .mg{width:64px;height:64px;padding:5px}
  body.v3 .cat.main .mg{width:80px;height:80px}
  body.v3 .route{grid-template-columns:minmax(0,1fr)}
  body.v3 .branches{grid-template-columns:minmax(0,1fr)}
  body.v3 .br:nth-child(2n){padding-left:0;border-left:0}
  body.v3 .book .two{grid-template-columns:minmax(0,1fr)}
  body.v3 .v3f .cols{grid-template-columns:minmax(0,1fr)}
  body.v3 .mbar{display:grid;grid-template-columns:1fr 1fr;gap:10px;position:fixed;left:0;right:0;bottom:0;z-index:40;background:var(--bg);border-top:1px solid var(--line);padding:10px 16px calc(10px + env(safe-area-inset-bottom,0px))}
  body.v3 .mbar .btn{min-height:46px;padding:12px 10px}
  /* кнопка чату на телефоні: лише обличчя, машинка рівно по центру кола (вада v8: зайвий відступ під схований текст) */
  body.v3 #maHelp{right:16px;bottom:84px}
  body.v3 #maHelpBtn{width:56px;height:56px;min-height:0;padding:0;gap:0;justify-content:center;background:var(--surface);box-shadow:inset 0 0 0 2px var(--red),var(--shadow);overflow:hidden}
  body.v3 #maHelpBtn span{display:none}
  body.v3 #maHelpBtn .mg{width:40px;height:40px;padding:0;background:none}
  body.v3 #maHelpWin{height:calc(100vh - 170px)}
}

/* ── рух: лише transform/opacity і лише коли людина не просила зменшити рух ── */
@media (prefers-reduced-motion:no-preference){
  body.v3 .sign .car{animation:v3-drive-in .9s var(--ease) .15s both}
  @keyframes v3-drive-in{from{transform:translate3d(-40%,0,30px);opacity:0}to{transform:translate3d(0,0,30px);opacity:1}}
  body.v3 .btn{transition:background-color .2s ease,box-shadow .2s ease,transform .1s ease}
  body.v3 .btn:active{transform:translateY(1px)}
  body.v3 .cat:hover .ph img{transform:scale(1.04)}
  body.v3 .cat:hover .go{transform:translateX(2px)}
  body.v3 .pc,body.v3 .rev{transition:transform .25s var(--ease),border-color .2s}
  body.v3 .pc:hover,body.v3 .rev:hover{transform:translateY(-3px)}
  body.v3 .alist button{transition:transform .25s var(--ease),border-color .2s}
  body.v3 .alist button:hover{transform:translateX(3px)}
  body.v3 .chip span{transition:border-color .15s,background-color .15s,color .15s,transform .15s}
  body.v3 .chip:hover span{transform:translateY(-1px)}
  body.v3 .posts a:hover i{transform:translateX(4px)}
  body.v3 .map .pin{transition:transform .25s var(--ease);transform-box:fill-box;transform-origin:center}
  body.v3 .map .pin:hover,body.v3 .map .pin.hot{transform:scale(1.15)}
  body.v3 .dd .menu{animation:v3-drop .18s var(--ease)}
  @keyframes v3-drop{from{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:none}}
  body.v3 #maHelpBtn{transition:background-color .2s,transform .2s var(--ease)}
  body.v3 #maHelpBtn:hover{transform:translateY(-2px)}
  /* машинка категорії під'їжджає, коли плитка з'являється на екрані: один раз */
  @supports (animation-timeline: view()){
    body.v3 .cat .mg{animation:v3-pull-in .7s var(--ease) both;animation-timeline:view();animation-range:entry 0% entry 60%}
    @keyframes v3-pull-in{from{transform:translateX(40px);opacity:0}to{transform:none;opacity:1}}
    /* Маґа їде дорогою «від заявки до прав», поки розділ проходить екран; без підтримки стоїть на старті */
    body.v3 .route .drive{animation:v3-road linear both;animation-timeline:view();animation-range:entry 30% cover 70%}
    @keyframes v3-road{from{transform:translateX(0)}to{transform:translateX(calc(var(--road-w,900px) - 64px))}}
  }
  body.v3 .sumbox .mg,body.v3 .qside .mg{transition:transform .35s var(--ease)}
  body.v3 .sumbox .mg.happy,body.v3 .qside .mg.happy{transform:translateY(-6px) rotate(-4deg)}
}
@media (prefers-reduced-motion:reduce){
  body.v3 *,body.v3 *::before,body.v3 *::after{transition:none!important;animation:none!important}
}

/* ── логотип C2 векторами (студія 01.10): день — темний напис, ніч — білий; та сама пара для системної й ручної ночі ── */
body.v3 .logo .lw{display:block;height:22px;width:auto}
body.v3 .logo .lw-n{display:none}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]) body.v3 .logo .lw-d{display:none}:root:not([data-theme="light"]) body.v3 .logo .lw-n{display:block}}
:root[data-theme="dark"] body.v3 .logo .lw-d{display:none}
:root[data-theme="dark"] body.v3 .logo .lw-n{display:block}
@media (max-width:760px){body.v3 .logo .lw{height:18px}}

/* ── 01.10 правки за знімками ── */
/* 1440: шапка ширша за вміст сторінки, пункти щільніше — номер телефону більше не обрізається справа */
body.v3 header .wrap{max-width:1380px}
body.v3 .nav>a,body.v3 .dd>button{padding:10px 9px}
/* телефон: знак не займає весь перший екран — під ним одразу заголовок і запис */
@media (max-width:900px){body.v3 .hero{padding-top:20px}body.v3 .stage .road{height:18px}}
/* 1440: header with the booking button was 1471px wide; up to 1520px hide the subtitle under the phone and tighten the menu */
@media (max-width:1520px){body.v3 .tel small{display:none}body.v3 .nav>a,body.v3 .dd>button{padding:10px 7px}body.v3 .hdr-right{gap:12px}}
/* quiz and booking steps: the heading sat on the card border (fieldset legend); float puts it inside the card, padding matches the chips */
body.v3 .q legend,body.v3 .book .step legend{float:left;width:100%;padding:0;margin:0 0 12px}
body.v3 .q legend+*,body.v3 .book .step legend+*{clear:both}
body.v3 .q{padding-top:18px}
/* phone: the road "from request to licence" becomes vertical; the stops sit on it (was: loose red dots without a road) */
@media (max-width:600px){
  body.v3 .route{padding-top:0;padding-left:40px;row-gap:28px;margin-top:36px}
  body.v3 .route::before{display:block;left:6px;right:auto;top:6px;bottom:6px;width:16px;height:auto;border-radius:8px;
    background:var(--road) linear-gradient(180deg,var(--dash) 0 22px,transparent 22px 40px) 50% 0/3px 40px repeat-y}
  body.v3 .stop::before{top:2px;left:-37px;width:18px;height:18px;box-shadow:0 0 0 4px var(--bg)}
  body.v3 .pc.main h3{padding-right:64px}
  body.v3 .book .step legend{flex-wrap:wrap;row-gap:2px}
  body.v3 .book .step legend small{flex-basis:100%;padding-left:34px}
}

/* logo: the school's own logo restyled for v3 (Borys 01.10 approved; C2 shelved) - horizontal mark + name, day/night pair */
body.v3 .logo .lw{height:34px}
@media (max-width:760px){body.v3 .logo .lw{height:28px}}
/* 02.10 Borys: "logo from the coach, the old stylized one" - sign with two-line name (logo_v3/logo.svg), one file for day and night */
body.v3 .logo .lw-s{height:56px}
@media (max-width:760px){body.v3 .logo .lw-s{height:44px}}
/* ── 01.10 coach review ── */
/* hero 1440: H1 in max 3 lines - wider text column, smaller clamp */
@media (min-width:901px){body.v3 .hero>.wrap{grid-template-columns:minmax(0,1.25fr) minmax(0,.75fr)}}
body.v3 .hero h1{font-size:clamp(2.1rem,3.6vw,3.4rem)}
/* facts strip under the hero (moved out of the first screen) */
body.v3 .factbar{border-block:1px solid var(--line);background:var(--surface)}
body.v3 .factbar .facts{margin:0;padding-block:16px;justify-content:space-between;gap:10px 28px;font-size:15px}
body.v3 .factbar .facts li{color:var(--ink);font-weight:500}
/* header: account icon next to the phone */
body.v3 .acct{display:inline-grid;place-items:center;width:40px;height:40px;border-radius:50%;color:var(--muted);box-shadow:inset 0 0 0 1.5px var(--line);transition:color .15s,box-shadow .15s}
body.v3 .acct svg{width:20px;height:20px}
body.v3 .acct:hover{color:var(--ink);box-shadow:inset 0 0 0 1.5px var(--ink)}
@media (max-width:600px){body.v3 .acct{display:none}}
/* night: the main price card stands out from its neighbours */
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]) body.v3 .pc.main{box-shadow:0 0 0 2px var(--red)}}
:root[data-theme="dark"] body.v3 .pc.main{box-shadow:0 0 0 2px var(--red)}
/* address: triangle stays on the first line of a wrapped address */
body.v3 .br a.addr{align-items:baseline}
body.v3 .br a.addr::before{transform:translateY(-1px)}
/* phone: hide the round chat button while the hero form is on screen (it covered the form card corner) */
@media (max-width:600px){body.v3.pick-on #maHelp{opacity:0;pointer-events:none;transform:translateY(12px)}body.v3 #maHelp{transition:opacity .2s,transform .2s}}
@media (max-width:600px) and (prefers-reduced-motion:reduce){body.v3 #maHelp{transition:none}}

/* 01.10 Borys: mascot only in the hero sign (no photo, no 3D). Maga stands in the white of the triangle, gently idles */
body.v3 .sign .maga{position:absolute;left:21%;width:58%;bottom:7%;height:auto;transform:translate3d(var(--cx,0px),0,30px);transition:transform .5s cubic-bezier(.16,1,.3,1);filter:drop-shadow(0 10px 10px rgba(25,21,18,.18))}
@media (prefers-reduced-motion:no-preference){body.v3 .sign .maga{animation:v3-idle 3.2s ease-in-out infinite}}
@keyframes v3-idle{0%,100%{translate:0 0}50%{translate:0 -6px}}
/* theme toggle (day is the default; night only by choice) */
body.v3 .themebtn{display:inline-grid;place-items:center;width:40px;height:40px;border-radius:50%;border:0;background:none;cursor:pointer;color:var(--muted);box-shadow:inset 0 0 0 1.5px var(--line);transition:color .15s,box-shadow .15s}
body.v3 .themebtn:hover{color:var(--ink);box-shadow:inset 0 0 0 1.5px var(--ink)}
body.v3 .themebtn svg{width:19px;height:19px}
body.v3 .themebtn .i-sun{display:none}
:root[data-theme="dark"] body.v3 .themebtn .i-sun{display:block}
:root[data-theme="dark"] body.v3 .themebtn .i-moon{display:none}
body.v3 .srchbtn{display:inline-grid;place-items:center;width:40px;height:40px;border-radius:50%;border:0;background:none;cursor:pointer;color:var(--muted);box-shadow:inset 0 0 0 1.5px var(--line);transition:color .15s,box-shadow .15s}
body.v3 .srchbtn:hover{color:var(--ink);box-shadow:inset 0 0 0 1.5px var(--ink)}
body.v3 .srchbtn svg{width:19px;height:19px}

/* ── 03.10 внутрішні сторінки (body.v3i): каркас вмісту — v3-inner.css (зі старих стилів, на токенах), тут — вигляд v3 ── */
body.v3i main{display:block;font:17px/1.6 var(--body);color:var(--ink)}
body.v3i main h1,body.v3i main h2,body.v3i main h3{font-family:var(--display);letter-spacing:-.015em;color:var(--ink)}
body.v3i main h1{font-size:clamp(2rem,4.6vw,3.1rem);line-height:1.06;font-weight:800}
body.v3i main h2{font-size:clamp(1.6rem,3.2vw,2.3rem);line-height:1.1;font-weight:800;margin-bottom:.55em}
body.v3i main h3{font-weight:700}
body.v3i main p+p{margin-top:.8em}
body.v3i main a:not(.btn){color:var(--red-text);text-underline-offset:3px}
body.v3i main .page-hero{background:var(--soft);border-bottom:1px solid var(--line)}
body.v3i main .crumbs{font-size:14px;color:var(--muted)}
body.v3i main .crumbs a{color:var(--muted)}
body.v3i main .card,body.v3i main .hero-card,body.v3i main .step,body.v3i main .review,body.v3i main .branch{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-l);box-shadow:none}
body.v3i main .sec-soft{background:var(--soft)}
body.v3i main .btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:48px;padding:15px 24px;border-radius:12px;border:0;font:600 16px/1 var(--body);text-decoration:none;cursor:pointer;transform:none}
body.v3i main .btn-red{background:var(--btn);color:var(--on-red)}
body.v3i main .btn-red:hover{background:var(--btn-h);color:var(--on-red)}
body.v3i main .btn-ghost{background:transparent;color:var(--ink);box-shadow:inset 0 0 0 2px var(--line-2)}
body.v3i main .btn-ghost:hover{box-shadow:inset 0 0 0 2px var(--ink);color:var(--ink)}
body.v3i main select,body.v3i main textarea{font:inherit;font-size:16px;color:var(--ink);background:var(--bg);border:1.5px solid var(--line-2);border-radius:var(--r-s);padding:13px 14px;width:100%;min-height:48px}
body.v3i main select:focus,body.v3i main textarea:focus{outline:none;border-color:var(--red)}
body.v3i main .lead-form{display:grid;gap:10px}
body.v3i main .price-table td{border-color:var(--line)}
body.v3i main .tag{background:var(--soft);color:var(--ink);border-radius:999px}
/* 03.10 маскоти в блозі (Борис «додай наших маскотів у блог»): герой статті в шапці, на картці списку й у підсумку */
body.v3i main .mg-b{display:block;flex:none}
body.v3i main .page-hero>.wrap{position:relative}
body.v3i main .mg-hero{position:absolute;right:clamp(16px,4vw,40px);bottom:-6px;width:150px;height:150px;filter:drop-shadow(0 10px 18px rgba(25,21,18,.18))}
body.v3i main .page-hero:has(.mg-hero) h1,body.v3i main .page-hero:has(.mg-hero) p{padding-right:170px}
body.v3i main .branch{position:relative}
body.v3i main .mg-card{position:absolute;top:-14px;right:12px;width:64px;height:64px;padding:5px;border-radius:50%;background:var(--surface);box-shadow:var(--shadow-s)}
body.v3i main .branch:has(.mg-card) h3{padding-right:60px}
body.v3i main .mg-cta{width:96px;height:96px;margin:-6px auto 6px}
@media (max-width:760px){
  body.v3i main .mg-hero{position:static;width:92px;height:92px;margin:0 0 8px auto}
  body.v3i main .page-hero:has(.mg-hero) h1,body.v3i main .page-hero:has(.mg-hero) p{padding-right:0}
}
/* 03.10 маскоти категорій у блоці «Інші категорії» (замість емодзі) */
body.v3i main .cards .card{position:relative}
body.v3i main .mg-cat{position:absolute;top:12px;right:12px;width:72px;height:72px;padding:5px;border-radius:50%;background:var(--surface);box-shadow:var(--shadow-s)}
body.v3i main .card:has(.mg-cat) h3,body.v3i main .card:has(.mg-cat) .price{padding-right:78px}
body.v3i main .card:has(.mg-cat) .tag{margin-right:78px}
/* 03.10 сторінка школи 4 на 375 була 376 px (1 px). Вміст внутрішніх сторінок не має давати горизонтальної прокрутки */
body.v3i main{overflow-x:clip}
