  /* Self-hosted fonts (was Google Fonts) — removes an external round-trip that was blocking
     first paint by ~4s. Both weight ranges live in one variable-font file per subset. */
  @font-face{
    font-family:'Golos Text'; font-style:normal; font-weight:400 700; font-display:swap;
    src:url('fonts/golos-text-latin.woff2') format('woff2');
    unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
  }
  @font-face{
    font-family:'Golos Text'; font-style:normal; font-weight:400 700; font-display:swap;
    src:url('fonts/golos-text-cyrillic.woff2') format('woff2');
    unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116;
  }
  @font-face{
    font-family:'Unbounded'; font-style:normal; font-weight:600 800; font-display:swap;
    src:url('fonts/unbounded-latin.woff2') format('woff2');
    unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
  }
  @font-face{
    font-family:'Unbounded'; font-style:normal; font-weight:600 800; font-display:swap;
    src:url('fonts/unbounded-cyrillic.woff2') format('woff2');
    unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116;
  }

  :root{
    --ink:#0a0f14;
    --ink-2:#111a22;
    --ink-3:#182430;
    --paper:#f5f2ea;
    --paper-2:#ece7d9;
    --text:#12181d;
    --muted:#5b6570;
    --muted-2:#8b93a3;
    --line:#dcd6c6;
    --line-dark:#25323e;

    --accent:#2fd9ae;
    --accent: oklch(78% 0.15 174);
    --accent-ink:#08211b;
    --lime:#c7e26a;
    --lime: oklch(84% 0.16 118);

    --radius-lg: 28px;
    --radius-md: 18px;
    --radius-sm: 10px;
    --shadow: 0 20px 60px -25px rgba(10,15,20,.45);
    --shadow-sm: 0 10px 30px -15px rgba(10,15,20,.35);
    --maxw: 1220px;
    --ease: cubic-bezier(.22,1,.36,1);
  }

  *,*::before,*::after{ box-sizing:border-box; }
  html{ scroll-behavior:smooth; }
  body{
    margin:0;
    background:var(--paper);
    color:var(--text);
    font-family:"Golos Text", "Segoe UI", system-ui, sans-serif;
    font-size:16px;
    line-height:1.55;
    -webkit-font-smoothing:antialiased;
    overflow-x:hidden;
  }
  img{ max-width:100%; display:block; }
  a{ color:inherit; text-decoration:none; }
  h1,h2,h3,h4{
    font-family:"Unbounded","Golos Text",sans-serif;
    font-weight:700;
    line-height:1.08;
    margin:0;
    letter-spacing:-0.01em;
  }
  p{ margin:0; }
  ul{ margin:0; padding:0; list-style:none; }
  button{ font-family:inherit; cursor:pointer; }
  section{ position:relative; }
  .wrap{
    max-width:var(--maxw);
    margin:0 auto;
    padding:0 28px;
  }
  ::selection{ background:var(--accent); color:var(--accent-ink); }

  .eyebrow{
    display:inline-flex; align-items:center; gap:8px;
    font-family:"Golos Text",sans-serif;
    font-weight:600;
    font-size:13px;
    letter-spacing:.08em;
    text-transform:uppercase;
  }
  .eyebrow::before{
    content:"";
    width:7px; height:7px;
    border-radius:50%;
    background:var(--accent);
    box-shadow:0 0 0 4px color-mix(in oklch, var(--accent) 25%, transparent);
    flex:none;
  }

  .btn{
    display:inline-flex; align-items:center; justify-content:center; gap:10px;
    padding:16px 28px;
    border-radius:999px;
    font-weight:600;
    font-size:15px;
    border:1px solid transparent;
    white-space:nowrap;
    position:relative;
    overflow:hidden;
    isolation:isolate;
    transition:transform .35s var(--ease), box-shadow .35s var(--ease), background .35s var(--ease), color .35s var(--ease), border-color .35s;
  }
  .btn::after{
    content:"";
    position:absolute; inset:0;
    background:linear-gradient(115deg, transparent 30%, rgba(255,255,255,.55) 50%, transparent 70%);
    transform:translateX(-120%);
    transition:transform .7s var(--ease);
    z-index:1;
    pointer-events:none;
  }
  .btn:hover::after{ transform:translateX(120%); }
  .btn span{ position:relative; z-index:2; display:inline-flex; align-items:center; gap:10px; }
  .btn:active{ transform:scale(.97); }

  .btn-primary{ background:var(--accent); color:var(--accent-ink); }
  .btn-primary:hover{ box-shadow:0 14px 34px -12px color-mix(in oklch, var(--accent) 70%, black 10%); transform:translateY(-2px); }

  .btn-ghost-dark{ background:transparent; color:var(--paper); border-color:rgba(245,242,234,.28); }
  .btn-ghost-dark:hover{ border-color:rgba(245,242,234,.7); background:rgba(245,242,234,.06); }

  .btn-ghost-light{ background:transparent; color:var(--text); border-color:var(--line); }
  .btn-ghost-light:hover{ border-color:var(--text); }

  .btn-dark{ background:var(--ink); color:var(--paper); }
  .btn-dark:hover{ transform:translateY(-2px); box-shadow:var(--shadow-sm); }

  .btn-sm{ padding:11px 20px; font-size:13.5px; }

  /* magnetic pull - reserve for 1-2 focal CTAs per screen only, never every button */
  .magnetic{ transition:transform .2s cubic-bezier(.22,1,.36,1); }

  .icon{ width:22px; height:22px; flex:none; }
  .icon-sm{ width:18px; height:18px; }

  /* ---------- Header ---------- */
  header{
    position:fixed; top:0; left:0; right:0; z-index:100;
    padding:18px 0;
    transition:padding .35s var(--ease), background .35s var(--ease), box-shadow .35s var(--ease), border-color .35s var(--ease);
    border-bottom:1px solid transparent;
  }
  header .wrap{ display:flex; align-items:center; justify-content:space-between; gap:24px; }
  header.scrolled{
    padding:12px 0;
    background:rgba(10,15,20,.72);
    backdrop-filter:blur(16px) saturate(140%);
    border-bottom-color:rgba(245,242,234,.08);
  }
  .brand{
    display:flex; align-items:center; gap:10px;
    font-family:"Unbounded",sans-serif;
    font-weight:700;
    font-size:18px;
    color:var(--paper);
    letter-spacing:-.01em;
    white-space:nowrap; flex:none;
  }
  .brand-mark{
    width:36px; height:36px; border-radius:11px;
    overflow:hidden;
    flex:none;
  }
  .brand-mark img{ width:100%; height:100%; display:block; }
  .brand small{
    display:block; font-family:"Golos Text",sans-serif; font-weight:500;
    font-size:11px; letter-spacing:.03em; color:var(--muted-2); margin-top:1px;
  }

  nav.primary-nav{ display:flex; align-items:center; gap:22px; flex-wrap:nowrap; flex:none; }
  nav.primary-nav a{
    font-size:14.5px; font-weight:500; color:rgba(245,242,234,.82);
    position:relative; padding:4px 0; white-space:nowrap;
  }
  nav.primary-nav a::after{
    content:""; position:absolute; left:0; right:100%; bottom:0; height:1px;
    background:var(--accent); transition:right .3s var(--ease);
  }
  nav.primary-nav a:hover{ color:var(--paper); }
  nav.primary-nav a:hover::after{ right:0; }

  .header-actions{ display:flex; align-items:center; gap:14px; flex:none; }
  .header-phone{
    display:flex; align-items:center; gap:8px;
    color:var(--paper);
    white-space:nowrap; flex:none;
  }
  .header-phone .icon{ color:var(--accent); flex:none; }
  .header-phone-text{ display:flex; flex-direction:column; line-height:1.25; }
  .header-phone-number{ font-weight:600; font-size:14.5px; }
  .header-phone-hours{ font-weight:500; font-size:10.5px; color:var(--muted-2); }
  .menu-toggle{
    display:none; background:none; border:none; padding:8px; color:var(--paper);
  }
  .menu-toggle svg{ width:26px; height:26px; }

  .mobile-nav{
    position:fixed; inset:0; z-index:99;
    background:var(--ink);
    display:flex; flex-direction:column;
    padding:100px 32px 40px;
    gap:6px;
    transform:translateY(-8px);
    opacity:0;
    pointer-events:none;
    transition:opacity .3s var(--ease), transform .3s var(--ease);
  }
  .mobile-nav.open{ opacity:1; transform:translateY(0); pointer-events:auto; }
  .mobile-nav a{
    font-family:"Unbounded",sans-serif; font-size:28px; font-weight:600;
    color:var(--paper); padding:14px 0; border-bottom:1px solid var(--line-dark);
  }
  .mobile-nav .btn{ margin-top:28px; align-self:flex-start; }

  @media (max-width:1150px){
    nav.primary-nav, .header-phone{ display:none; }
    .menu-toggle{ display:block; }
  }

  /* химчистка's nav has one extra item ("Клининг") and a longer label ("Расчёт стоимости"),
     so it needs the desktop nav to give way to the hamburger menu sooner than клининг's does */
  @media (max-width:1240px){
    body[data-landing="Химчистка"] nav.primary-nav,
    body[data-landing="Химчистка"] .header-phone{ display:none; }
    body[data-landing="Химчистка"] .menu-toggle{ display:block; }
  }

  /* ---------- Hero ---------- */
  .hero{
    background:
      radial-gradient(60% 50% at 85% 0%, color-mix(in oklch, var(--accent) 20%, transparent), transparent 60%),
      radial-gradient(45% 40% at 8% 15%, color-mix(in oklch, var(--lime) 14%, transparent), transparent 60%),
      linear-gradient(180deg, var(--ink) 0%, var(--ink-2) 100%);
    color:var(--paper);
    padding:168px 0 220px;
    overflow:hidden;
    clip-path:polygon(0 0,100% 0,100% 92%,0 100%);
  }
  .hero-noise{
    position:absolute; inset:0; opacity:.4; mix-blend-mode:overlay; pointer-events:none;
    background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='120' height='120'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/></filter><rect width='100%25' height='100%25' filter='url(%23n)' opacity='0.35'/></svg>");
  }
  .sparkle-field{ position:absolute; inset:0; pointer-events:none; }
  .sparkle{
    position:absolute; color:var(--accent); opacity:0;
    animation:twinkle 4.5s ease-in-out infinite;
  }
  .sparkle svg{ width:100%; height:100%; }
  @keyframes twinkle{
    0%,100%{ opacity:0; transform:scale(.6) rotate(0deg); }
    50%{ opacity:.85; transform:scale(1) rotate(20deg); }
  }
  @keyframes drift{
    0%{ transform:translateY(0px); }
    50%{ transform:translateY(-22px); }
    100%{ transform:translateY(0px); }
  }

  .hero-grid{
    position:relative; z-index:2;
    display:grid; grid-template-columns:1.15fr .85fr; gap:60px; align-items:center;
  }
  .hero-copy .eyebrow{ color:var(--accent); }
  .hero h1{
    margin-top:22px;
    font-size:clamp(38px, 5.4vw, 68px);
    color:var(--paper);
  }
  .hero h1 em{
    font-style:normal;
    background:linear-gradient(100deg, var(--accent), var(--lime));
    -webkit-background-clip:text; background-clip:text; color:transparent;
  }
  .hero p.lead{
    margin-top:24px;
    font-size:18px;
    max-width:520px;
    color:rgba(245,242,234,.78);
  }
  .hero-actions{ display:flex; flex-wrap:wrap; gap:14px; margin-top:36px; }
  .hero-actions-center{ justify-content:center; }
  .btn-lg{ padding:22px 44px; font-size:17.5px; }
  .hero-fineprint{
    margin-top:18px; font-size:13.5px; color:var(--muted-2);
    display:flex; align-items:center; gap:8px;
  }
  .hero-fineprint .dot{ width:4px; height:4px; border-radius:50%; background:var(--muted-2); }
  .hero-fineprint-center{ justify-content:center; font-size:18px; gap:10px; }
  .fineprint-dot{
    width:9px; height:9px; border-radius:50%; background:var(--accent); flex:none;
    box-shadow:0 0 0 4px color-mix(in oklch, var(--accent) 25%, transparent);
  }

  /* ---------- Trust strip ---------- */
  .trust-strip{
    background:var(--ink-2);
    border-top:1px solid var(--line-dark);
    padding:26px 0;
  }
  .trust-strip .wrap{
    display:flex; flex-wrap:wrap; align-items:center; justify-content:center;
    gap:14px 0;
  }
  .trust-item{
    display:flex; align-items:center; gap:10px;
    padding:0 26px;
    border-right:1px solid var(--line-dark);
    font-size:13.5px; font-weight:500;
    color:rgba(245,242,234,.85);
    white-space:nowrap;
  }
  .trust-item:last-child{ border-right:none; }
  .trust-item .icon-sm{ color:var(--accent); flex:none; }
  @media (max-width:900px){
    .trust-item{ border-right:none; padding:0 14px; }
  }

  /* trust strip as an infinite marquee - feels alive instead of a static badge row */
  .marquee{ overflow:hidden; -webkit-mask-image:linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent); mask-image:linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent); }
  .marquee-track{
    display:flex; align-items:center; width:max-content;
    animation:marquee 26s linear infinite;
    will-change:transform;
  }
  .marquee:hover .marquee-track{ animation-play-state:paused; }
  @keyframes marquee{ from{ transform:translateX(0); } to{ transform:translateX(-50%); } }

  /* ---------- Floating desktop contact ---------- */
  .float-contact{
    position:fixed; right:28px; bottom:28px; z-index:95;
    display:flex; flex-direction:column; align-items:flex-end; gap:12px;
    opacity:0; transform:translateY(12px); pointer-events:none;
    transition:opacity .35s var(--ease), transform .35s var(--ease);
  }
  .float-contact.show{ opacity:1; transform:translateY(0); pointer-events:auto; }
  .float-contact .fc-bubble{
    width:52px; height:52px; border-radius:50%;
    background:var(--paper); color:var(--ink);
    display:flex; align-items:center; justify-content:center;
    box-shadow:var(--shadow-sm);
    border:1px solid var(--line);
    transition:transform .3s var(--ease);
  }
  .float-contact .fc-bubble:hover{ transform:scale(1.08); }
  .float-contact .fc-bubble svg{ width:22px; height:22px; }
  .float-contact .fc-main{
    border-radius:999px; padding:15px 24px;
    background:var(--accent); color:var(--accent-ink);
    font-weight:600; font-size:14.5px;
    display:flex; align-items:center; gap:10px;
    box-shadow:0 14px 34px -12px color-mix(in oklch, var(--accent) 70%, black 10%);
  }
  .float-contact .fc-main svg{ width:18px; height:18px; }
  @media (max-width:980px){ .float-contact{ display:none; } }

  /* ---------- Guarantee banner ---------- */
  .guarantee-banner{
    background:linear-gradient(120deg, color-mix(in oklch, var(--accent) 92%, black 4%), color-mix(in oklch, var(--lime) 85%, black 4%));
    color:var(--accent-ink);
  }
  .guarantee-grid{
    display:flex; align-items:center; gap:36px; justify-content:space-between; flex-wrap:wrap;
  }
  .guarantee-icon{
    width:64px; height:64px; border-radius:18px; flex:none;
    background:rgba(8,33,27,.12);
    display:flex; align-items:center; justify-content:center;
  }
  .guarantee-icon svg{ width:32px; height:32px; }
  .guarantee-copy{ flex:1 1 380px; min-width:260px; }
  .guarantee-copy h2{ font-size:clamp(24px,3vw,34px); }
  .guarantee-copy p{ margin-top:10px; font-size:15px; max-width:520px; opacity:.85; }
  .guarantee-banner .btn-dark{ flex:none; }

  /* ---------- Mid-page CTA banner ---------- */
  .midcta{
    background:var(--ink); color:var(--paper);
    padding:64px 0;
  }
  .midcta .wrap{
    display:flex; align-items:center; justify-content:space-between; gap:24px; flex-wrap:wrap;
  }
  .midcta h3{ font-size:clamp(20px,2.6vw,28px); max-width:520px; }
  .midcta p{ margin-top:8px; color:var(--muted-2); font-size:14.5px; }

  /* ---------- Calculator ---------- */
  .calculator{
    margin-top:56px;
    background:#fff; border:1px solid var(--line); border-radius:var(--radius-lg);
    padding:36px; max-width:760px; margin-left:auto; margin-right:auto;
  }
  .calculator-head{ text-align:center; margin-bottom:28px; }
  .calculator-head h3{ font-size:20px; }
  .calculator-head p{ font-size:13.5px; color:var(--muted); margin-top:6px; }
  .calculator-row{ display:flex; flex-direction:column; gap:10px; margin-bottom:24px; }
  .calculator-row label{ font-size:13px; font-weight:600; color:var(--muted); display:flex; justify-content:space-between; }
  .calculator-row select{
    font-family:inherit; font-size:15px; padding:14px 16px;
    border-radius:var(--radius-sm); border:1px solid var(--line); background:#fff;
  }
  .calculator-row input[type=range]{
    accent-color:var(--accent-ink);
    width:100%;
  }
  .calculator-row input[type=range]:disabled{ opacity:.4; }
  .calculator-result{
    display:flex; align-items:center; justify-content:space-between; gap:20px; flex-wrap:wrap;
    padding-top:24px; border-top:1px solid var(--line);
  }
  .calculator-result .amount{ font-family:"Unbounded",sans-serif; font-size:32px; font-weight:800; }
  .calc-disclaimer{ margin-top:14px; font-size:12px; color:var(--muted-2); text-align:center; }

  /* ---------- Not-found CTA ---------- */
  .not-found-cta{ background:var(--paper-2); text-align:center; }
  .not-found-cta .wrap{ max-width:560px; }
  .not-found-cta h3{ font-size:clamp(20px,2.6vw,26px); }
  .not-found-cta p{ margin-top:12px; color:var(--muted); font-size:15px; }
  .not-found-cta .btn{ margin-top:24px; }

  /* ---------- Thanks page ---------- */
  .thanks-page{
    min-height:100vh; display:flex; align-items:center; justify-content:center;
    text-align:center; padding:40px 20px; position:relative; overflow:hidden;
    background:
      radial-gradient(60% 50% at 85% 0%, color-mix(in oklch, var(--accent) 20%, transparent), transparent 60%),
      radial-gradient(45% 40% at 8% 15%, color-mix(in oklch, var(--lime) 14%, transparent), transparent 60%),
      linear-gradient(180deg, var(--ink) 0%, var(--ink-2) 100%);
    color:var(--paper);
  }
  .thanks-card{ position:relative; z-index:2; max-width:480px; }
  .thanks-icon{
    width:84px; height:84px; border-radius:50%;
    background:var(--accent); color:var(--accent-ink);
    display:flex; align-items:center; justify-content:center;
    margin:0 auto 28px;
  }
  .thanks-icon svg{ width:40px; height:40px; }
  .thanks-card h1{ font-size:clamp(28px,4vw,38px); color:var(--paper); }
  .thanks-card p{ margin-top:16px; font-size:16px; color:rgba(245,242,234,.78); }
  .thanks-actions{ margin-top:32px; display:flex; flex-direction:column; align-items:center; gap:16px; }
  .thanks-phone{ font-size:14px; color:var(--muted-2); }
  .thanks-phone a{ color:var(--paper); font-weight:600; }
  .thanks-brand{
    position:absolute; top:28px; left:0; right:0; z-index:2;
    display:flex; align-items:center; justify-content:center; gap:10px;
  }
  .thanks-brand img{ width:32px; height:32px; }
  .thanks-brand span{
    font-family:"Unbounded",sans-serif; font-weight:700; font-size:15px; color:var(--paper);
  }
  @media (max-width:640px){
    .thanks-icon{ width:68px; height:68px; margin-bottom:22px; }
    .thanks-icon svg{ width:32px; height:32px; }
  }

  /* ---------- Lead modal ---------- */
  .modal-overlay{
    position:fixed; inset:0; z-index:200;
    display:flex; align-items:center; justify-content:center;
    background:rgba(10,15,20,.6);
    backdrop-filter:blur(6px);
    padding:20px;
    opacity:0; pointer-events:none;
    transition:opacity .3s var(--ease);
  }
  .modal-overlay.open{ opacity:1; pointer-events:auto; }
  .modal-card{
    position:relative;
    background:var(--paper); color:var(--text);
    border-radius:var(--radius-lg);
    padding:36px 32px;
    max-width:360px; width:100%;
    max-height:90vh; overflow:auto;
    box-shadow:var(--shadow);
    transform:translateY(12px);
    transition:transform .3s var(--ease);
  }
  .modal-overlay.open .modal-card{ transform:translateY(0); }
  .modal-close{
    position:absolute; top:14px; right:14px;
    width:32px; height:32px; border-radius:50%;
    border:none; background:var(--paper-2); color:var(--text);
    display:flex; align-items:center; justify-content:center;
  }
  .modal-close svg{ width:16px; height:16px; }
  .lead-note{ font-family:"Unbounded",sans-serif; font-weight:700; font-size:18px; margin-bottom:18px; text-align:center; }
  .modal-card .lead-note{ padding-right:28px; }
  .modal-form{ display:flex; flex-direction:column; gap:14px; }
  .modal-form .form-note{ margin-top:0; }
  .modal-form .form-consent-center{ margin-bottom:0; }
  .modal-form input{
    font-family:inherit; font-size:15px;
    padding:15px 16px; border-radius:var(--radius-sm);
    border:1px solid var(--line); background:#fff; color:var(--text);
    outline:none; transition:border-color .25s;
  }
  .modal-form input:focus{ border-color:var(--text); }
  .modal-form .btn{ width:100%; }
  @media (max-width:480px){
    .modal-card{ padding:26px 20px; max-height:85vh; }
    .lead-note{ font-size:16px; margin-bottom:14px; }
  }


  /* ---------- Add-on services ---------- */
  .addons{ margin-top:56px; }
  .addons-head{ text-align:center; margin-bottom:24px; }
  .addons-head h3{ font-size:18px; }
  .addons-head p{ font-size:13.5px; color:var(--muted); margin-top:6px; }
  .addon-grid{ display:grid; grid-template-columns:repeat(5,1fr); gap:14px; max-width:1080px; margin:0 auto; }
  .addon-item{
    background:#fff; border:1px solid var(--line); border-radius:var(--radius-sm);
    padding:18px; text-align:center;
  }
  .addon-name{ font-size:13px; color:var(--muted); }
  .addon-price{ font-family:"Unbounded",sans-serif; font-weight:700; font-size:18px; margin-top:8px; }

  .hero-visual{ position:relative; padding:18px 8px 8px 34px; }
  .hero-blob{
    position:absolute;
    top:-8%; right:-8%; bottom:-6%; left:-6%;
    background:
      radial-gradient(120% 90% at 100% 0%, rgba(255,255,255,.4), transparent 55%),
      linear-gradient(160deg, color-mix(in oklch, var(--accent) 55%, var(--ink) 45%), color-mix(in oklch, var(--lime) 40%, var(--ink) 60%) 70%);
    border-radius:44% 56% 63% 37% / 41% 44% 56% 59%;
    animation:blobmove 11s ease-in-out infinite, drift 8s ease-in-out infinite;
    z-index:0;
  }
  .quick-form-card{
    position:relative; z-index:1;
    background:var(--paper); color:var(--text);
    border-radius:var(--radius-lg);
    padding:32px 30px;
    box-shadow:var(--shadow);
  }
  .quick-form-card .btn{ width:100%; margin-top:14px; }
  .quick-form-fields{ display:flex; flex-direction:column; gap:12px; margin-top:18px; }
  .quick-form-fields input{
    font-family:inherit; font-size:15px;
    padding:15px 16px; border-radius:var(--radius-sm);
    border:1px solid var(--line); background:#fff; color:var(--text);
    outline:none; transition:border-color .25s;
  }
  .quick-form-fields input:focus{ border-color:var(--text); }
  .quick-form-card .form-consent-center{ margin-top:16px; }
  .quick-form-card .form-note{ margin-top:10px; margin-bottom:0; }
  .quick-form-trust{
    display:flex; flex-wrap:wrap; gap:14px; margin-top:16px;
  }
  .quick-form-trust span{
    display:flex; align-items:center; gap:6px;
    font-size:12.5px; color:var(--muted);
  }
  .quick-form-trust svg{ width:14px; height:14px; color:color-mix(in oklch, var(--accent) 70%, black 25%); flex:none; }
  @media (max-width:980px){
    .hero-visual{ padding:0; max-width:420px; }
  }

  @keyframes blobmove{
    0%{ border-radius:44% 56% 63% 37% / 41% 44% 56% 59%; transform:rotate(0deg) scale(1); }
    50%{ border-radius:58% 42% 39% 61% / 55% 61% 39% 45%; transform:rotate(6deg) scale(1.04); }
    100%{ border-radius:44% 56% 63% 37% / 41% 44% 56% 59%; transform:rotate(0deg) scale(1); }
  }

  /* ---------- Section shell ---------- */
  .section{ padding:120px 0; }
  .section-tight{ padding:96px 0; }
  .section-head{
    display:flex; align-items:flex-end; justify-content:space-between; gap:40px;
    margin-bottom:56px;
    flex-wrap:wrap;
  }
  .section-head .eyebrow{ color:color-mix(in oklch, var(--accent) 70%, black 25%); margin-bottom:16px; }
  .section-head h2{ font-size:clamp(28px, 3.6vw, 42px); max-width:640px; }
  .section-head p{ color:var(--muted); font-size:16px; max-width:420px; }
  .section-head-center{ justify-content:center; text-align:center; flex-direction:column; align-items:center; }
  .section-head-center p{ max-width:560px; }
  .reveal{ opacity:0; transform:translateY(28px); transition:opacity .8s var(--ease), transform .8s var(--ease); }
  .reveal.in{ opacity:1; transform:translateY(0); }

  /* scroll-reveal variants for distinct choreography per section (not one fade-up everywhere) */
  .reveal-scale{ opacity:0; transform:scale(.92) translateY(10px); transition:opacity .55s cubic-bezier(.34,1.56,.64,1), transform .55s cubic-bezier(.34,1.56,.64,1); }
  .reveal-scale.in{ opacity:1; transform:scale(1) translateY(0); }

  /* "squeegee wipe" reveal - cloth wiping across to reveal the card, used for before/after portfolio.
     The clip-path lives on the INNER wrap, never on the observed .reveal element itself - Chrome
     treats a clip-path'd-to-near-zero target as non-intersecting, which would stop it ever revealing. */
  .reveal-wipe .compare-wrap{ clip-path:inset(0 0 0 100%); transition:clip-path .8s var(--ease); }
  .reveal-wipe.in .compare-wrap{ clip-path:inset(0 0 0 0%); }

  @media (prefers-reduced-motion: reduce){
    .reveal, .reveal-scale{ transition:none !important; opacity:1 !important; transform:none !important; }
    .reveal-wipe .compare-wrap{ transition:none !important; clip-path:none !important; }
    .marquee-track{ animation:none !important; }
    .magnetic{ transition:none !important; }
  }

  /* staggered entrance for grids - 2nd/3rd/... item lags slightly behind the first */
  .services-grid > :nth-child(1), .pricing-grid > :nth-child(1), .benefits-grid > :nth-child(1), .photo-gallery > :nth-child(1){ transition-delay:0ms; }
  .services-grid > :nth-child(2), .pricing-grid > :nth-child(2), .benefits-grid > :nth-child(2), .photo-gallery > :nth-child(2){ transition-delay:70ms; }
  .services-grid > :nth-child(3), .pricing-grid > :nth-child(3), .benefits-grid > :nth-child(3), .photo-gallery > :nth-child(3){ transition-delay:140ms; }
  .services-grid > :nth-child(4), .benefits-grid > :nth-child(4), .photo-gallery > :nth-child(4){ transition-delay:210ms; }
  .photo-gallery > :nth-child(5){ transition-delay:280ms; }
  .photo-gallery > :nth-child(6){ transition-delay:350ms; }

  /* ---------- Services ---------- */
  .services-grid{
    display:grid; grid-template-columns:repeat(3,1fr); gap:20px;
    align-items:start;
  }
  .services-carousel-nav{ display:none; }
  .service-card{
    background:#fff;
    border:1px solid var(--line);
    border-radius:var(--radius-md);
    padding:30px;
    display:flex; flex-direction:column; gap:18px;
    transition:transform .4s var(--ease), box-shadow .4s var(--ease), border-color .4s;
  }
  .service-card:hover{
    transform:translateY(-6px);
    box-shadow:var(--shadow-sm);
    border-color:transparent;
  }
  .service-icon{
    width:52px; height:52px; border-radius:14px;
    background:var(--paper-2);
    display:flex; align-items:center; justify-content:center;
    color:var(--ink);
    transition:background .4s, color .4s;
  }
  .service-card:hover .service-icon{ background:var(--accent); color:var(--accent-ink); }
  .service-card h3{ font-size:19px; }
  .service-card p{ color:var(--muted); font-size:14.5px; }
  .service-foot{
    margin-top:auto; padding-top:14px; border-top:1px solid var(--line);
    display:flex; align-items:center; justify-content:space-between;
    font-size:13.5px;
  }
  .service-price{ font-weight:700; font-family:"Unbounded",sans-serif; font-size:14px; }
  .service-link{ display:flex; align-items:center; gap:6px; color:var(--muted); font-weight:600; }
  .service-card:hover .service-link{ color:var(--text); }
  .service-link svg{ width:14px; height:14px; transition:transform .3s var(--ease); }
  .service-card:hover .service-link svg{ transform:translateX(3px); }

  /* ---------- Before / After ---------- */
  .compare-section{ background:var(--ink); color:var(--paper); }
  .compare-section .section-head p{ color:var(--muted-2); }
  .compare-section .eyebrow{ color:var(--accent); }
  .compare-wrap{
    max-width:900px; margin:0 auto;
    border-radius:var(--radius-lg);
    overflow:hidden;
    box-shadow:var(--shadow);
  }
  .compare{
    position:relative;
    aspect-ratio:16/10;
    user-select:none;
    touch-action:pan-y;
  }
  .compare-after,.compare-before{
    position:absolute; inset:0;
    display:flex; align-items:center; justify-content:center;
    flex-direction:column; gap:10px;
    text-align:center;
  }
  .compare-after{
    background:
      radial-gradient(120% 100% at 20% 0%, rgba(255,255,255,.5), transparent 55%),
      linear-gradient(140deg, color-mix(in oklch, var(--accent) 65%, white 10%), color-mix(in oklch, var(--lime) 55%, white 15%));
    color:var(--accent-ink);
  }
  .compare-before{
    background:
      repeating-linear-gradient(135deg, #2a2f33 0 14px, #34393d 14px 28px),
      var(--ink-3);
    color:rgba(245,242,234,.75);
  }
  .compare-before-inner{ position:absolute; inset:0; overflow:hidden; }
  .compare-tag{
    position:absolute; top:20px; padding:8px 16px; border-radius:999px;
    font-size:12.5px; font-weight:700; letter-spacing:.06em; text-transform:uppercase;
    background:rgba(10,15,20,.55); color:var(--paper);
  }
  .compare-after .compare-tag{ left:20px; background:rgba(8,33,27,.55); }
  .compare-before .compare-tag{ right:20px; }
  .compare-label{ font-family:"Unbounded",sans-serif; font-size:20px; font-weight:700; }
  .compare-sub{ font-size:13.5px; opacity:.75; max-width:260px; }

  .compare-divider{
    position:absolute; top:0; bottom:0; width:0;
    border-left:2px solid var(--paper);
    left:50%;
  }
  .compare-handle{
    position:absolute; top:50%; left:50%;
    width:52px; height:52px; border-radius:50%;
    background:var(--paper); color:var(--ink);
    display:flex; align-items:center; justify-content:center; gap:2px;
    transform:translate(-50%,-50%);
    box-shadow:0 8px 24px rgba(0,0,0,.35);
    cursor:grab;
  }
  .compare-handle:active{ cursor:grabbing; }
  .compare-handle svg{ width:16px; height:16px; }
  .compare-note{
    text-align:center; margin-top:22px; font-size:13.5px; color:var(--muted-2);
  }

  /* ---------- Photo compare (real images) ---------- */
  .compare img{
    position:absolute; inset:0; width:100%; height:100%; object-fit:cover;
  }
  .compare.compare-photo{ aspect-ratio:4/5; }
  .compare-photo .compare-tag{ background:rgba(10,15,20,.6); }
  .compare-tag-left{ left:20px; }
  .compare-tag-right{ right:20px; }
  .photo-gallery{
    display:grid; grid-template-columns:repeat(3,1fr); gap:28px;
  }
  .photo-gallery .compare-wrap{ margin:0; }
  .photo-gallery figure{ margin:0; }
  .photo-gallery figcaption{
    margin-top:14px; text-align:center; font-size:14px; color:var(--muted-2);
  }
  @media (max-width:980px){
    .photo-gallery{ grid-template-columns:repeat(2,1fr); }
  }
  @media (max-width:640px){
    .photo-gallery{ grid-template-columns:1fr; }
  }

  /* ---------- Photo carousel (before/after, arrow-navigated) ---------- */
  .carousel{
    position:relative; max-width:900px; margin:0 auto;
    border-radius:var(--radius-lg); overflow:hidden; box-shadow:var(--shadow);
    background:var(--ink-3);
  }
  .carousel-track{ display:flex; transition:transform .5s var(--ease); }
  .carousel-slide{
    flex:0 0 100%; aspect-ratio:16/9;
    display:flex; align-items:center; justify-content:center;
  }
  .carousel-slide img{ max-width:100%; max-height:100%; object-fit:contain; }
  .carousel-arrow{
    position:absolute; top:50%; transform:translateY(-50%);
    width:44px; height:44px; border-radius:50%;
    background:var(--paper); color:var(--ink); border:none;
    display:flex; align-items:center; justify-content:center;
    box-shadow:var(--shadow-sm);
    transition:background .25s, color .25s, transform .25s;
  }
  .carousel-arrow:hover{ background:var(--accent); color:var(--accent-ink); }
  .carousel-prev{ left:16px; }
  .carousel-next{ right:16px; }
  .carousel-arrow svg{ width:20px; height:20px; }
  .carousel-dots{
    position:absolute; bottom:16px; left:0; right:0;
    display:flex; justify-content:center; gap:8px;
  }
  .carousel-dot{
    width:8px; height:8px; border-radius:4px;
    background:rgba(245,242,234,.4); border:none; padding:0;
    transition:width .3s var(--ease), background .3s;
  }
  .carousel-dot.active{ background:var(--paper); width:22px; }
  @media (max-width:640px){
    .carousel-arrow{ width:36px; height:36px; }
    .carousel-arrow svg{ width:16px; height:16px; }
    .carousel-prev{ left:8px; }
    .carousel-next{ right:8px; }
  }

  /* ---------- How it works ---------- */
  .steps{
    display:grid; grid-template-columns:repeat(4,1fr); gap:0;
    position:relative;
  }
  .step{ padding:0 20px 0 0; position:relative; }
  .step-num{
    font-family:"Unbounded",sans-serif; font-size:15px; font-weight:700;
    color:var(--accent-ink); background:var(--accent);
    width:36px; height:36px; border-radius:50%;
    display:flex; align-items:center; justify-content:center;
    margin-bottom:22px;
  }
  .step h3{ font-size:18px; margin-bottom:10px; }
  .step p{ color:var(--muted); font-size:14.5px; }
  .step-line{
    position:absolute; top:18px; left:36px; right:-4px; height:1px;
    background:repeating-linear-gradient(90deg, var(--line) 0 8px, transparent 8px 14px);
  }
  .step:last-child .step-line{ display:none; }

  /* ---------- Pricing ---------- */
  .pricing-section{ background:var(--paper-2); }
  .pricing-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:24px; }
  .price-card{
    background:#fff; border-radius:var(--radius-md);
    padding:34px 30px; display:flex; flex-direction:column; gap:22px;
    border:1px solid var(--line);
  }
  .price-card.is-popular{
    background:var(--ink); color:var(--paper);
    border-color:transparent;
    transform:translateY(-14px);
    box-shadow:var(--shadow);
  }
  .price-card.is-popular .price-list li{ color:rgba(245,242,234,.82); }
  .price-card.is-popular .price-unit{ color:var(--muted-2); }
  .price-badge{
    align-self:flex-start;
    font-size:12px; font-weight:700; letter-spacing:.05em; text-transform:uppercase;
    background:var(--accent); color:var(--accent-ink);
    padding:6px 14px; border-radius:999px;
  }
  .price-name{ font-size:20px; }
  .price-value{ display:flex; align-items:baseline; gap:8px; }
  .price-value .amount{ font-family:"Unbounded",sans-serif; font-size:38px; font-weight:800; }
  .price-unit{ font-size:13.5px; color:var(--muted); }
  .price-list{ display:flex; flex-direction:column; gap:12px; }
  .price-list li{ display:flex; gap:10px; font-size:14.5px; color:var(--muted); }
  .price-list li svg{ width:18px; height:18px; color:var(--accent-ink); flex:none; margin-top:1px; }
  .price-card.is-popular .price-list li svg{ color:var(--accent); }
  .price-card .btn{ width:100%; }

  /* ---------- Benefits ---------- */
  .benefits-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:20px; }
  .benefit-card{ display:flex; flex-direction:column; gap:16px; }
  .benefit-icon{
    width:54px; height:54px; border-radius:16px;
    background:linear-gradient(160deg, var(--ink), var(--ink-3));
    color:var(--accent);
    display:flex; align-items:center; justify-content:center;
  }
  .benefit-card h3{ font-size:17px; }
  .benefit-card p{ font-size:14px; color:var(--muted); }
  .placeholder-text{ color:var(--muted-2); font-style:italic; }

  /* ---------- Master quote (real testimony) ---------- */
  .quote-section{ background:var(--paper-2); }
  .quote-card{
    max-width:760px; margin:0 auto;
    background:#fff; border-radius:var(--radius-lg);
    padding:48px; box-shadow:var(--shadow-sm);
    position:relative;
  }
  .quote-mark{
    position:absolute; top:28px; left:36px;
    font-family:"Unbounded",sans-serif; font-size:64px; line-height:1;
    color:var(--paper-2); z-index:0;
  }
  .quote-text{
    position:relative; z-index:1;
    font-size:18px; line-height:1.65; color:var(--text);
    white-space:pre-line;
  }
  .quote-text strong{ color:var(--accent-ink); background:color-mix(in oklch, var(--accent) 30%, transparent); padding:0 4px; border-radius:4px; }
  .quote-attribution{
    margin-top:28px; display:flex; align-items:center; gap:14px;
  }
  .quote-avatar{
    width:44px; height:44px; border-radius:50%;
    background:var(--ink); color:var(--accent);
    display:flex; align-items:center; justify-content:center;
    flex:none;
  }
  .quote-name{ font-weight:600; font-size:14.5px; }
  .quote-role{ font-size:13px; color:var(--muted); }

  /* ---------- Testimonials ---------- */
  .testimonials-section{ background:var(--ink); color:var(--paper); }
  .testimonials-section .eyebrow{ color:var(--accent); }
  .testimonials-section .section-head p{ color:var(--muted-2); }
  .t-track{
    display:flex; flex-wrap:wrap; justify-content:center; gap:20px;
  }
  .t-card{
    background:var(--ink-2); border:1px solid var(--line-dark);
    border-radius:var(--radius-md); padding:28px;
    display:flex; flex-direction:column; gap:18px;
    flex:1 1 300px; max-width:340px;
  }
  .t-stars{ display:flex; gap:4px; color:var(--accent); }
  .t-stars svg{ width:16px; height:16px; }
  .t-quote{ font-size:15px; color:rgba(245,242,234,.85); }
  .t-person{ display:flex; align-items:center; gap:12px; margin-top:auto; }
  .t-avatar{
    width:42px; height:42px; border-radius:50%;
    background:var(--ink-3); color:var(--accent);
    display:flex; align-items:center; justify-content:center;
    font-family:"Unbounded",sans-serif; font-weight:700; font-size:14px;
    flex:none;
  }
  .t-name{ font-weight:600; font-size:14.5px; }
  .t-carousel-nav{ display:none; }

  /* ---------- Rating band ---------- */
  .rating-band{ background:var(--ink); color:var(--paper); }
  .rating-grid{
    display:flex; align-items:center; justify-content:center; gap:28px; flex-wrap:wrap;
    text-align:center;
  }
  .rating-score{ font-family:"Unbounded",sans-serif; font-size:48px; font-weight:800; }
  .rating-stars{ display:flex; gap:4px; color:var(--accent); justify-content:center; margin-top:8px; }
  .rating-stars svg{ width:18px; height:18px; }
  .rating-sub{ font-size:13.5px; color:var(--muted-2); margin-top:6px; }

  /* ---------- FAQ ---------- */
  .faq-list{ max-width:820px; margin:0 auto; display:flex; flex-direction:column; gap:12px; }
  .faq-item{
    border:1px solid var(--line); border-radius:var(--radius-sm);
    background:#fff;
    overflow:hidden;
  }
  .faq-q{
    width:100%; text-align:left; background:none; border:none;
    padding:22px 26px; display:flex; align-items:center; justify-content:space-between; gap:20px;
    font-family:"Golos Text",sans-serif; font-weight:600; font-size:16px; color:var(--text);
  }
  .faq-q svg{ width:20px; height:20px; flex:none; transition:transform .35s var(--ease); color:var(--muted); }
  .faq-item.open .faq-q svg{ transform:rotate(45deg); color:var(--text); }
  .faq-a{
    max-height:0; overflow:hidden; transition:max-height .4s var(--ease);
  }
  .faq-a-inner{ padding:0 26px 24px; color:var(--muted); font-size:14.5px; max-width:640px; }

  /* ---------- CTA + Form ---------- */
  .cta-section{
    background:
      radial-gradient(60% 60% at 90% 10%, color-mix(in oklch, var(--lime) 18%, transparent), transparent 60%),
      linear-gradient(180deg, var(--ink) 0%, var(--ink-2) 100%);
    color:var(--paper);
  }
  .cta-grid{ display:grid; grid-template-columns:1fr 1fr; gap:64px; align-items:start; }
  .cta-copy .eyebrow{ color:var(--accent); }
  .cta-copy h2{ font-size:clamp(28px,3.6vw,42px); margin-top:18px; }
  .cta-copy p{ margin-top:18px; color:var(--muted-2); max-width:420px; }
  .cta-points{ margin-top:34px; display:flex; flex-direction:column; gap:16px; }
  .cta-points li{ display:flex; gap:12px; align-items:flex-start; font-size:14.5px; color:rgba(245,242,234,.85); }
  .cta-points svg{ width:20px; height:20px; color:var(--accent); flex:none; margin-top:1px; }

  .form-card{
    background:var(--paper); color:var(--text);
    border-radius:var(--radius-lg); padding:36px;
    box-shadow:var(--shadow);
  }
  .form-row{ display:flex; flex-direction:column; gap:8px; margin-bottom:18px; }
  .form-row label{ font-size:13px; font-weight:600; color:var(--muted); }
  .form-row input, .form-row select, .form-row textarea{
    font-family:inherit; font-size:15px;
    padding:14px 16px; border-radius:var(--radius-sm);
    border:1px solid var(--line); background:#fff; color:var(--text);
    outline:none;
    transition:border-color .25s;
  }
  .form-row input:focus, .form-row select:focus, .form-row textarea:focus{
    border-color:var(--text);
  }
  .form-row textarea{ resize:vertical; min-height:88px; }
  .form-two{ display:grid; grid-template-columns:1fr 1fr; gap:16px; }
  .form-consent{ display:flex; gap:10px; align-items:flex-start; font-size:12.5px; color:var(--muted); margin-bottom:20px; }
  .form-consent input{ margin-top:3px; }
  .form-consent-center{ justify-content:center; text-align:center; margin-bottom:0; }
  .form-note{ margin-top:14px; font-size:12.5px; color:var(--muted-2); text-align:center; }

  /* ---------- Footer ---------- */
  footer{ background:var(--ink); color:var(--paper); padding:80px 0 26px; }
  .footer-top{
    display:grid; grid-template-columns:1.3fr 1fr 1fr 1.2fr; gap:40px;
    padding-bottom:56px; border-bottom:1px solid var(--line-dark);
  }
  .footer-top.footer-top-3col{ grid-template-columns:1.3fr 1fr 1fr; }
  .footer-brand p{ margin-top:16px; color:var(--muted-2); font-size:14px; max-width:280px; }
  .footer-social{ display:flex; gap:10px; margin-top:22px; }
  .footer-social a{
    width:38px; height:38px; border-radius:50%; border:1px solid var(--line-dark);
    display:flex; align-items:center; justify-content:center; color:var(--paper);
    transition:background .3s, border-color .3s;
  }
  .footer-social a:hover{ background:var(--accent); border-color:var(--accent); color:var(--accent-ink); }
  .footer-social svg{ width:16px; height:16px; }
  .footer-col h4{
    font-family:"Golos Text",sans-serif; font-size:13px; font-weight:700;
    letter-spacing:.06em; text-transform:uppercase; color:var(--muted-2);
    margin-bottom:18px;
  }
  .footer-col ul{ display:flex; flex-direction:column; gap:12px; }
  .footer-col a, .footer-col span{ font-size:14.5px; color:rgba(245,242,234,.82); }
  .footer-col a:hover{ color:var(--accent); }
  .footer-map{
    border-radius:var(--radius-md); border:1px dashed var(--line-dark);
    aspect-ratio:4/3; display:flex; align-items:center; justify-content:center;
    flex-direction:column; gap:10px; color:var(--muted-2); text-align:center; padding:20px;
    font-size:13px;
  }
  .footer-map svg{ width:26px; height:26px; color:var(--accent); }
  .footer-bottom{
    padding-top:26px; display:flex; justify-content:space-between; align-items:center;
    flex-wrap:wrap; gap:12px; font-size:13px; color:var(--muted-2);
  }

  /* ---------- Mobile sticky bar ---------- */
  .mobile-bar{
    position:fixed; bottom:0; left:0; right:0; z-index:90;
    display:none;
    background:rgba(10,15,20,.92);
    backdrop-filter:blur(14px);
    border-top:1px solid var(--line-dark);
    padding:12px 16px;
    gap:10px;
  }
  .mobile-bar a, .mobile-bar button{
    flex:1; display:flex; align-items:center; justify-content:center; gap:8px;
    padding:13px; border-radius:12px; font-weight:600; font-size:13.5px;
    border:1px solid var(--line-dark); color:var(--paper); background:none;
  }
  .mobile-bar .mb-main{ background:var(--accent); color:var(--accent-ink); border-color:transparent; flex:1.3; }
  .mobile-bar svg{ width:18px; height:18px; }
  .mobile-bar{ padding-bottom:calc(12px + env(safe-area-inset-bottom)); }

  @media (max-width:980px){
    .hero-grid{ grid-template-columns:1fr; gap:28px; }
    .hero-visual{ max-width:380px; margin:0 auto; }
    .services-grid{ grid-template-columns:repeat(2,1fr); }
    .steps{ grid-template-columns:repeat(2,1fr); row-gap:40px; }
    .step-line{ display:none; }
    .pricing-grid{ grid-template-columns:1fr; max-width:420px; margin:0 auto; }
    .price-card.is-popular{ transform:none; order:-1; }
    .benefits-grid{ grid-template-columns:repeat(2,1fr); }
    .addon-grid{ grid-template-columns:repeat(3,1fr); max-width:640px; }
    .cta-grid{ grid-template-columns:1fr; gap:40px; }
    .footer-top{ grid-template-columns:1fr 1fr; row-gap:40px; }
    .footer-top.footer-top-3col{ grid-template-columns:1fr 1fr; }
    .mobile-bar{ display:flex; }
    body{ padding-bottom:calc(74px + env(safe-area-inset-bottom)); }
    .photo-gallery{ grid-template-columns:1fr; }
  }
  @media (max-width:640px){
    .wrap{ padding:0 20px; }
    .hero{ padding:96px 0 90px; }
    .section{ padding:80px 0; }
    .section-tight{ padding:64px 0; }
    .services-carousel-wrap{ margin:0 -20px; padding:0 20px; }
    .services-grid{
      display:flex; grid-template-columns:none;
      overflow-x:auto; scroll-snap-type:x mandatory; gap:14px;
      padding-bottom:2px; -webkit-overflow-scrolling:touch;
      scrollbar-width:none;
    }
    .services-grid::-webkit-scrollbar{ display:none; }
    .services-grid > *{ flex:0 0 82%; scroll-snap-align:start; }
    .services-carousel-nav{ display:flex; justify-content:center; gap:12px; margin-top:20px; }
    .services-carousel-nav .carousel-arrow{ position:static; transform:none; }
    .t-carousel-wrap{ margin:0 -20px; padding:0 20px; }
    .t-track{
      flex-wrap:nowrap; justify-content:flex-start;
      overflow-x:auto; scroll-snap-type:x mandatory; gap:14px;
      padding-bottom:2px; -webkit-overflow-scrolling:touch;
      scrollbar-width:none;
    }
    .t-track::-webkit-scrollbar{ display:none; }
    .t-track > .t-card{ flex:0 0 86%; max-width:none; scroll-snap-align:start; }
    .t-carousel-nav{ display:flex; justify-content:center; gap:14px; margin-top:20px; }
    .t-carousel-nav .carousel-arrow{ position:static; transform:none; width:46px; height:46px; }
    .t-carousel-nav .carousel-arrow svg{ width:20px; height:20px; }
    .steps{ grid-template-columns:1fr; }
    .benefits-grid{ grid-template-columns:1fr; }
    .footer-top{ grid-template-columns:1fr; }
    .footer-top.footer-top-3col{ grid-template-columns:1fr; }
    .form-two{ grid-template-columns:1fr; }
    .section-head{ margin-bottom:36px; }
    .compare-wrap{ margin:0 -4px; }
    .quote-card{ padding:32px 24px; }
    .quote-text{ font-size:16px; }

    .header-actions .btn.btn-sm{ display:none; }
    .brand small{ display:none; }

    .hero-copy{ text-align:center; }

    /* tighter hero + quick-form-card rhythm so the form fits without scrolling on phones */
    .hero h1{ margin-top:14px; }
    .hero p.lead{ margin-top:12px; }
    .hero-actions{ margin-top:20px; }
    .hero-fineprint{ margin-top:10px; }
    .quick-form-card{ padding:24px 22px; }
    .lead-note{ margin-bottom:10px; }
    .quick-form-fields{ margin-top:10px; gap:8px; }
    .quick-form-card .form-consent-center{ margin-top:8px; }
    .quick-form-card .form-note{ margin-top:6px; }
    .quick-form-card .btn{ margin-top:8px; }

    .midcta .wrap{ flex-direction:column; align-items:flex-start; }
    .midcta .btn{ width:100%; }

    .calculator{ padding:26px 20px; }
    .calculator-result{ flex-direction:column; align-items:stretch; gap:16px; }
    .calculator-result .btn{ width:100%; white-space:normal; }

    .guarantee-grid{ flex-direction:column; align-items:flex-start; text-align:left; }
    .guarantee-copy{ flex-basis:auto; width:100%; }
    .guarantee-banner .btn{ width:100%; }

    .addon-grid{ grid-template-columns:repeat(2,1fr); }
  }

  @media (max-width:400px){
    .hero h1{ font-size:32px; }
  }
