/* tuluu website · built on the tuluu Brand Kit (19.10.2026)
   Layout idea: lots of white, Nacht for structure, Teal for brand and action, Amber only for vouchers.
   Signature: the nested "u" arches from the logo frame every hero visual. 1px lines instead of shadows. */

@font-face{font-family:"Outfit";font-style:normal;font-display:swap;font-weight:100 900;
  src:url(fonts/outfit-latin-wght-normal.woff2) format("woff2-variations"),url(fonts/outfit-latin-wght-normal.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:"Outfit";font-style:normal;font-display:swap;font-weight:100 900;
  src:url(fonts/outfit-latin-ext-wght-normal.woff2) format("woff2-variations"),url(fonts/outfit-latin-ext-wght-normal.woff2) format("woff2");
  unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}

:root{
  /* brand */
  --teal:#3EA798; --teal-deep:#2C7F73; --night:#123A35; --amber:#E08A28; --on-amber:#123A35;
  /* surfaces */
  --bg:#FFFFFF; --bg-alt:#F5FAF9; --surface:#FFFFFF; --mint:#E9F4F2; --line:#D3E9E5; --line-strong:#B8D9D3;
  --header-bg:rgba(255,255,255,.92); --header-solid:#FFFFFF;
  /* text */
  --ink:#22322F; --head:#123A35; --muted:#5E716D; --link:#2C7F73;
  /* actions */
  --primary:#2C7F73; --on-primary:#FFFFFF; --primary-hover:#123A35; --focus-ring:rgba(44,127,115,.25);
  --store-bg:#123A35; --store-fg:#FFFFFF;
  /* states */
  --success:#1F7A44; --success-bg:#E3F2E8; --error:#B83D33; --error-bg:#FBE9E7; --warn-bg:#FCEFDD; --warn-text:#8A4D0B;
  /* dark bands (always dark) */
  --band:#123A35; --on-band:#E6F2F0; --on-band-muted:#A9CCC6; --band-line:rgba(230,242,240,.18); --node-bg:rgba(255,255,255,.04);
  --onband-btn:#5CC4B4; --onband-btn-text:#0D2622; --onband-btn-hover:#86D6CA;
  /* arches + dots */
  --arch-fill:#EEF7F5; --arch-line:#BFE0DA; --dot:#BFE0DA;
  /* map */
  --m-bg:#EDF5F3; --m-street:#FFFFFF; --m-minor:#F6FAF9; --m-river:#C9E4DF; --m-park:#D9EEE2;
  --m-ring:rgba(62,167,152,.10); --m-ring-line:rgba(44,127,115,.45); --m-me:#2C7F73;
  /* pins (brand kit) */
  --pin-partner:#3EA798; --pin-public:#123A35; --pin-ticket:#E08A28; --pin-fault:#B83D33;
  --pg-partner:#FFFFFF; --pg-public:#FFFFFF; --pg-ticket:#123A35; --pg-fault:#FFFFFF;
  /* phone mockup */
  --ph-frame:#123A35; --ph-bg:#F5FAF9; --ph-surface:#FFFFFF;
  /* fixed print objects (same in both themes) */
  --qr-bg:#FFFFFF; --qr-fg:#123A35; --sticker-bg:#123A35; --sticker-fg:#F4FBFA; --sticker-muted:#B5D3CE; --sticker-logo:#3EA798;
  --ph-mark:#FFF3B0;
  /* type + form */
  --font:"Outfit","Avenir Next","Helvetica Neue",Arial,system-ui,sans-serif;
  --mono:ui-monospace,"SF Mono",Menlo,Consolas,monospace;
  --r-s:4px; --r-m:10px; --r-l:12px; --r-xl:20px;
  --maxw:1200px; --hdr:68px;
  color-scheme:light;
}
@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]){
    --bg:#0D2622; --bg-alt:#102D29; --surface:#143430; --mint:#18403A; --line:#24504A; --line-strong:#2F635A;
    --header-bg:rgba(13,38,34,.9); --header-solid:#0D2622;
    --ink:#E6F2F0; --head:#F2FAF8; --muted:#A3BFBA; --link:#5CC4B4;
    --primary:#5CC4B4; --on-primary:#0D2622; --primary-hover:#86D6CA; --focus-ring:rgba(92,196,180,.3);
    --store-bg:#E6F2F0; --store-fg:#0D2622;
    --success:#4FBF90; --success-bg:#163F33; --error:#F07A6E; --error-bg:#40211E; --warn-bg:#3A2E17; --warn-text:#F0A24A;
    --amber:#F0A24A; --on-amber:#0D2622;
    --band:#081C19; --band-line:rgba(230,242,240,.14);
    --arch-fill:#11302B; --arch-line:#24504A; --dot:#24504A;
    --m-bg:#123430; --m-street:#1E4A43; --m-minor:#173C36; --m-river:#0E2A31; --m-park:#173F35;
    --m-ring:rgba(92,196,180,.10); --m-ring-line:rgba(92,196,180,.55); --m-me:#5CC4B4;
    --pin-public:#E6F2F0; --pg-public:#0D2622; --pin-ticket:#F0A24A; --pg-ticket:#0D2622; --pin-fault:#F07A6E; --pg-fault:#0D2622;
    --ph-frame:#05110F; --ph-bg:#0D2622; --ph-surface:#143430;
    --ph-mark:#5A4A12;
    color-scheme:dark;
  }
}
:root[data-theme="dark"]{
  --bg:#0D2622; --bg-alt:#102D29; --surface:#143430; --mint:#18403A; --line:#24504A; --line-strong:#2F635A;
  --header-bg:rgba(13,38,34,.9); --header-solid:#0D2622;
  --ink:#E6F2F0; --head:#F2FAF8; --muted:#A3BFBA; --link:#5CC4B4;
  --primary:#5CC4B4; --on-primary:#0D2622; --primary-hover:#86D6CA; --focus-ring:rgba(92,196,180,.3);
  --store-bg:#E6F2F0; --store-fg:#0D2622;
  --success:#4FBF90; --success-bg:#163F33; --error:#F07A6E; --error-bg:#40211E; --warn-bg:#3A2E17; --warn-text:#F0A24A;
  --amber:#F0A24A; --on-amber:#0D2622;
  --band:#081C19; --band-line:rgba(230,242,240,.14);
  --arch-fill:#11302B; --arch-line:#24504A; --dot:#24504A;
  --m-bg:#123430; --m-street:#1E4A43; --m-minor:#173C36; --m-river:#0E2A31; --m-park:#173F35;
  --m-ring:rgba(92,196,180,.10); --m-ring-line:rgba(92,196,180,.55); --m-me:#5CC4B4;
  --pin-public:#E6F2F0; --pg-public:#0D2622; --pin-ticket:#F0A24A; --pg-ticket:#0D2622; --pin-fault:#F07A6E; --pg-fault:#0D2622;
  --ph-frame:#05110F; --ph-bg:#0D2622; --ph-surface:#143430;
  --ph-mark:#5A4A12;
  color-scheme:dark;
}

/* ------------------------------------------------------------ base */
*,*::before,*::after{box-sizing:border-box}
[hidden]{display:none !important}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:calc(var(--hdr) + 16px)}
body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--font);font-size:17px;line-height:1.6;font-weight:300;
  -webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility}
body::before{content:"";position:fixed;inset:0 0 auto;height:env(safe-area-inset-top,0px);z-index:60;background:var(--header-solid)}
img,svg{max-width:100%}
img{height:auto;display:block}
h1,h2,h3,p,ul,ol,dl,dd,figure,blockquote{margin:0}
h1,h2,h3{color:var(--head);text-wrap:balance}
h1{font-size:clamp(40px,5.4vw,74px);font-weight:300;letter-spacing:-.035em;line-height:1.02}
h2{font-size:clamp(30px,3.5vw,48px);font-weight:300;letter-spacing:-.03em;line-height:1.08}
h3{font-size:19px;font-weight:500;letter-spacing:-.01em;line-height:1.3}
a{color:var(--link);text-underline-offset:3px;text-decoration-thickness:1px}
a:hover{text-decoration-thickness:2px}
b,strong{font-weight:500}
:focus-visible{outline:2px solid var(--primary);outline-offset:3px;border-radius:4px}
.wrap{width:100%;max-width:var(--maxw);margin-inline:auto;padding-left:max(20px,env(safe-area-inset-left,0px));padding-right:max(20px,env(safe-area-inset-right,0px))}
.ic{width:22px;height:22px;flex:none}
.lead{font-size:clamp(18px,1.5vw,20px);line-height:1.55;color:var(--muted);font-weight:300;max-width:60ch}
.body-l{font-size:17.5px;color:var(--ink);max-width:62ch}
.fine{font-size:14px;color:var(--muted);font-weight:400}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
mark.ph{background:var(--ph-mark);color:var(--ink);padding:0 4px;border-radius:2px}
.skip{position:absolute;left:-9999px;top:12px;z-index:100;background:var(--surface);color:var(--head);padding:10px 14px;border-radius:var(--r-m);border:1px solid var(--line)}
.skip:focus{left:16px}

/* ------------------------------------------------------------ logo, pins */
.logo{display:block;width:86px;height:auto;fill:var(--teal)}
.pin{width:18px;height:24px;display:inline-block;flex:none}
.pin-lg{width:30px;height:40px}
.pin-xs{width:11px;height:15px}
.pin-partner .pin-body{fill:var(--pin-partner)} .pin-partner .pin-glyph{fill:var(--pg-partner)}
.pin-public .pin-body{fill:var(--pin-public)} .pin-public .pin-glyph{fill:var(--pg-public)}
.pin-ticket .pin-body{fill:var(--pin-ticket)} .pin-ticket .pin-glyph{fill:var(--pg-ticket)}
.pin-fault .pin-body{fill:var(--pin-fault)} .pin-fault .pin-glyph{fill:var(--pg-fault)}

/* ------------------------------------------------------------ buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;padding:13px 20px;border-radius:var(--r-m);border:1px solid transparent;
  font:inherit;font-size:16px;font-weight:500;line-height:1.2;text-decoration:none;cursor:pointer;transition:background-color .15s,border-color .15s,color .15s,transform .15s;white-space:nowrap}
.btn .ic{width:18px;height:18px;transition:transform .15s}
.btn:hover .ic{transform:translateX(2px)}
.btn-primary{background:var(--primary);color:var(--on-primary)}
.btn-primary:hover{background:var(--primary-hover);color:var(--on-primary)}
.btn-ghost{background:transparent;color:var(--head);border-color:var(--line-strong)}
.btn-ghost:hover{border-color:var(--head);color:var(--head)}
.btn-sm{padding:9px 14px;font-size:15px}
.btn-onband{background:var(--onband-btn);color:var(--onband-btn-text)}
.btn-onband:hover{background:var(--onband-btn-hover);color:var(--onband-btn-text)}
.btn-onband-ghost{background:transparent;color:var(--on-band);border-color:var(--band-line)}
.btn-onband-ghost:hover{border-color:var(--on-band);color:var(--on-band)}
.btn[disabled]{opacity:.6;cursor:progress}
.cta-row{display:flex;flex-wrap:wrap;gap:12px;align-items:center}
.txt-link{display:inline-flex;align-items:center;gap:6px;font-weight:500;text-decoration:none;color:var(--link)}
.txt-link .ic{width:16px;height:16px}

.stores{display:flex;flex-wrap:wrap;gap:10px}
.store{display:inline-flex;align-items:center;gap:10px;padding:9px 16px 9px 12px;border-radius:var(--r-m);background:var(--store-bg);color:var(--store-fg);text-decoration:none;min-width:168px;transition:transform .15s,opacity .15s}
.store:hover{transform:translateY(-1px);color:var(--store-fg)}
.store .ic{width:20px;height:20px;opacity:.85}
.store span{display:grid;line-height:1.15}
.store small{font-size:11.5px;opacity:.8;font-weight:400}
.store b{font-size:16.5px;font-weight:500;letter-spacing:-.01em;white-space:nowrap}
.store.is-mine{outline:2px solid var(--teal);outline-offset:2px}
.stores.sm .store{min-width:0;padding:7px 12px 7px 10px}
.stores.sm .store b{font-size:14.5px}
.site-footer .store{background:var(--on-band);color:var(--band)}
.site-footer .store:hover{color:var(--band)}

/* ------------------------------------------------------------ header */
.site-header{position:sticky;top:env(safe-area-inset-top,0px);z-index:50;background:var(--header-bg);-webkit-backdrop-filter:saturate(1.4) blur(12px);backdrop-filter:saturate(1.4) blur(12px);border-bottom:1px solid transparent;transition:border-color .2s}
.site-header.scrolled{border-bottom-color:var(--line)}
.hdr{display:flex;align-items:center;gap:24px;height:var(--hdr)}
.brand{display:block;padding:6px 0;margin-right:auto}
.brand .logo{width:84px}
.nav{display:flex;align-items:center;gap:28px}
.nav ul{display:flex;gap:26px;list-style:none;padding:0;margin:0}
.nav ul a{color:var(--ink);text-decoration:none;font-size:15.5px;font-weight:400;padding:6px 0;border-bottom:2px solid transparent}
.nav ul a:hover{color:var(--link)}
.nav ul a[aria-current="page"]{color:var(--link);border-bottom-color:var(--teal)}
.nav-extra{display:flex;align-items:center;gap:10px}
.lang{display:inline-flex;align-items:center;gap:6px;color:var(--ink);text-decoration:none;font-size:14.5px;font-weight:500;padding:8px 6px}
.lang .ic{width:18px;height:18px;color:var(--muted)}
.lang:hover{color:var(--link)}
.burger{display:none;align-items:center;justify-content:center;width:44px;height:44px;border:1px solid var(--line);border-radius:var(--r-m);background:transparent;color:var(--head);cursor:pointer}
.burger .ic-close{display:none}
.nav-open .burger .ic-open{display:none}
.nav-open .burger .ic-close{display:block}

/* ------------------------------------------------------------ sections */
.sec{padding-block:clamp(64px,8vw,120px)}
.sec-tight{padding-block:clamp(36px,5vw,64px)}
.sec-top0{padding-top:0}
.sec-alt{background:var(--bg-alt);border-block:1px solid var(--line)}
.sec-head{display:grid;gap:14px;max-width:780px;margin-bottom:clamp(32px,4vw,56px)}
.eyebrow{display:inline-flex;align-items:center;gap:9px;font-size:14.5px;font-weight:500;color:var(--link);letter-spacing:.005em}
.eb-pin{width:11px;height:15px}
.split{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(36px,6vw,96px);align-items:center}
.split-copy{min-width:0}
.split-copy .sec-head{margin-bottom:28px}
.note{display:flex;gap:12px;align-items:flex-start;margin-top:24px;padding:14px 16px;background:var(--mint);border-radius:var(--r-m);font-size:15.5px;color:var(--ink);font-weight:400}
.note .ic{color:var(--link);margin-top:1px}

/* ------------------------------------------------------------ hero */
.hero{padding-block:clamp(36px,6vw,88px) clamp(56px,7vw,104px);overflow:hidden}
.hero-grid{display:grid;grid-template-columns:minmax(0,1.08fr) minmax(0,.92fr);gap:clamp(32px,5vw,72px);align-items:center}
.hero-copy{display:grid;gap:22px;justify-items:start;min-width:0}
.hero-copy .lead{max-width:34em}
.hero-copy .fine{margin-top:-6px}
.hero-visual{position:relative;display:grid;place-items:center;min-height:clamp(440px,48vw,640px);padding-block:12px 40px;min-width:0}
.arches{position:absolute;inset:0 0 0 0;width:100%;height:100%;z-index:0;pointer-events:none}
.arch-fill{fill:var(--arch-fill)}
.arch-line{fill:none;stroke:var(--arch-line);stroke-width:1.5;vector-effect:non-scaling-stroke}
.dots{position:absolute;left:0;bottom:8px;width:150px;height:72px;z-index:0;background-image:radial-gradient(var(--dot) 1.7px,transparent 2px);background-size:18px 18px;opacity:.9}
.hero-small{padding-block:clamp(48px,6vw,96px) clamp(28px,4vw,56px)}
.hero-small h1{font-size:clamp(36px,4.6vw,60px);margin-top:14px}
.hero-small .lead{margin-top:16px}
.dl-row{display:flex;flex-wrap:wrap;align-items:center;gap:18px}
.dl-qr{display:flex;align-items:center;gap:12px;padding:8px 14px 8px 8px;border:1px solid var(--line);border-radius:var(--r-l);max-width:270px;background:var(--surface)}
.dl-qr .qr{width:74px;height:74px;flex:none;border-radius:4px}
.dl-qr span{font-size:13.5px;color:var(--muted);line-height:1.4;font-weight:400}
.qr{display:block;width:100%;height:auto}
.qr-bg{fill:var(--qr-bg)} .qr-fg{fill:var(--qr-fg)}

/* phone mockup */
.phone{position:relative;z-index:1;width:min(300px,82%);border-radius:46px;padding:10px;background:var(--ph-frame)}
.phone-screen{position:relative;height:600px;border-radius:36px;overflow:hidden;background:var(--ph-bg);display:flex;flex-direction:column}
.ph-bar{display:flex;justify-content:space-between;align-items:center;padding:20px 18px 10px;background:var(--ph-surface);border-bottom:1px solid var(--line)}
.ph-logo{width:62px;fill:var(--teal)}
.ph-bar span{font-size:12.5px;color:var(--muted);font-weight:400}
.ph-map{flex:1;position:relative;overflow:hidden}
.ph-map .map{position:absolute;inset:0;width:100%;height:100%}
.ph-sheet{position:absolute;left:0;right:0;bottom:0;padding:10px;display:grid;gap:8px}
.ph-card{background:var(--ph-surface);border:1px solid var(--line);border-radius:16px;padding:14px}
.ph-row1{display:flex;justify-content:space-between;align-items:flex-start;gap:8px}
.ph-row1 b{display:block;font-size:16px;font-weight:500;color:var(--head)}
.ph-row1 span{display:block;font-size:12.5px;color:var(--muted);font-weight:400}
.chip{font-style:normal;font-size:11.5px;font-weight:500;padding:3px 7px;border-radius:var(--r-s);white-space:nowrap}
.chip.ok{background:var(--success-bg);color:var(--success)}
.chip.warn{background:var(--warn-bg);color:var(--warn-text)}
.chip.err{background:var(--error-bg);color:var(--error)}
.chip.soon{background:var(--mint);color:var(--link);margin-left:6px;vertical-align:2px}
.ph-price{display:flex;justify-content:space-between;align-items:baseline;margin-top:10px;padding-top:10px;border-top:1px solid var(--line)}
.ph-price span{font-size:13px;color:var(--muted);font-weight:400}
.ph-price b{font-size:18px;font-weight:500;color:var(--head);font-variant-numeric:tabular-nums}
.ph-action{position:relative;height:44px;margin-top:10px}
.ph-btn,.ph-ok{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;gap:6px;border-radius:var(--r-m);font-size:14.5px;font-weight:500;transition:opacity .35s,transform .35s}
.ph-btn{background:var(--primary);color:var(--on-primary)}
.ph-ok{background:var(--success-bg);color:var(--success);opacity:0;transform:scale(.97)}
.ph-ok .ic{width:18px;height:18px}
.ph-voucher{display:flex;justify-content:space-between;align-items:flex-end;background:var(--amber);color:var(--on-amber);border-radius:var(--r-l);padding:12px 14px;opacity:0;transform:translateY(14px);transition:opacity .45s .2s,transform .45s .2s}
.ph-voucher small{display:block;font-size:12px;font-weight:400}
.ph-voucher b{font-size:24px;font-weight:500;letter-spacing:-.02em;line-height:1.1;font-variant-numeric:tabular-nums}
.ph-voucher span{font-size:12px;text-align:right;font-weight:400;line-height:1.35}
.phone.opened .ph-btn{opacity:0;transform:scale(.97)}
.phone.opened .ph-ok{opacity:1;transform:none}
.phone.opened .ph-voucher{opacity:1;transform:none}

/* map svg */
.m-bg{fill:var(--m-bg)} .m-river{fill:var(--m-river)} .m-park{fill:var(--m-park)}
.m-street{fill:none;stroke:var(--m-street);stroke-width:9;stroke-linecap:round}
.m-minor{fill:none;stroke:var(--m-minor);stroke-width:4;stroke-linecap:round}
.m-ring{fill:var(--m-ring);stroke:var(--m-ring-line);stroke-width:1;stroke-dasharray:3 4}
.m-me{fill:var(--m-me);stroke:var(--ph-surface);stroke-width:3}
.m-me-ring{fill:none;stroke:var(--m-me);stroke-width:1.5;opacity:.35}
.m-pin{transform-box:fill-box;transform-origin:50% 100%;animation:pinDrop .55s cubic-bezier(.2,.9,.3,1.25) both;animation-delay:var(--d,0ms)}
@keyframes pinDrop{from{opacity:0;transform:translateY(-10px) scale(.6)}to{opacity:1;transform:none}}

/* ------------------------------------------------------------ stats */
.stats-sec{border-block:1px solid var(--line)}
.stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:0}
.stats>div{padding:4px 24px 4px 0}
.stats>div+div{padding-left:24px;border-left:1px solid var(--line)}
.stats dt{font-size:clamp(32px,3.4vw,46px);font-weight:200;letter-spacing:-.04em;color:var(--head);line-height:1.05;font-variant-numeric:tabular-nums}
.stats dd{margin-top:8px;font-size:15px;color:var(--muted);font-weight:400;line-height:1.45}

/* ------------------------------------------------------------ audience */
.aud-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}
.aud-card{display:flex;flex-direction:column;gap:10px;padding:26px 24px 22px;border:1px solid var(--line);border-radius:var(--r-l);background:var(--surface);color:inherit;text-decoration:none;transition:border-color .2s,transform .2s}
.aud-card:hover{border-color:var(--teal);transform:translateY(-2px)}
.aud-card>.ic{width:30px;height:30px;color:var(--teal);margin-bottom:6px}
.aud-eb{font-size:13.5px;color:var(--muted);font-weight:400}
.aud-card h3{font-size:22px;font-weight:400;letter-spacing:-.02em}
.aud-card p{font-size:15.5px;color:var(--muted);flex:1;font-weight:400}
.more{display:inline-flex;align-items:center;gap:8px;font-weight:500;color:var(--link);font-size:15.5px;margin-top:6px}
.more .ic{width:18px;height:18px;transition:transform .15s}
.aud-card:hover .more .ic{transform:translateX(3px)}

/* ------------------------------------------------------------ how */
.how{list-style:none;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.how-card{display:grid;gap:10px;align-content:start;padding:24px;border:1px solid var(--line);border-radius:var(--r-l);background:var(--surface)}
.how-card p{color:var(--muted);font-size:15.5px;font-weight:400}
.how-vis{height:128px;border-radius:var(--r-m);background:var(--mint);display:flex;align-items:flex-end;justify-content:center;gap:16px;padding:18px;margin-bottom:10px}
.vis-find .pin{width:26px;height:35px} .vis-find .pin-lg{width:42px;height:56px}
.vis-pay{flex-wrap:wrap;align-content:center;align-items:center;gap:8px}
.vis-pay span{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-s);padding:6px 10px;font-size:13.5px;font-weight:500;color:var(--head)}
.vis-voucher{align-items:center}
.mini-voucher{display:grid;background:var(--amber);color:var(--on-amber);border-radius:var(--r-l);padding:12px 18px;min-width:150px}
.mini-voucher small{font-size:12px;font-weight:400}
.mini-voucher b{font-size:28px;font-weight:500;letter-spacing:-.02em;line-height:1.1}
.step-n{display:grid;place-items:center;width:30px;height:30px;border-radius:50%;border:1px solid var(--line-strong);color:var(--link);font-size:14px;font-weight:500;font-variant-numeric:tabular-nums}
.feat{display:grid;grid-template-columns:auto minmax(0,1fr);gap:16px 28px;align-items:center;margin-top:28px;padding-top:24px;border-top:1px solid var(--line)}
.feat h3{font-size:16px}

/* tags */
.tags{list-style:none;padding:0;display:flex;flex-wrap:wrap;gap:8px}
.tags li{border:1px solid var(--line-strong);border-radius:var(--r-s);padding:6px 11px;font-size:14.5px;font-weight:400;background:var(--surface);color:var(--ink)}
.values{margin-top:22px}
.values li{border-color:var(--teal);color:var(--link);font-weight:500}

/* ------------------------------------------------------------ legend / map frame */
.map-frame{border-radius:var(--r-l);overflow:hidden;border:1px solid var(--line);aspect-ratio:520/420;background:var(--m-bg)}
.map-wide{display:block;width:100%;height:100%}
.legend{list-style:none;padding:0;border-bottom:1px solid var(--line)}
.legend li{display:grid;grid-template-columns:40px minmax(0,1fr);gap:16px;align-items:start;padding:16px 0;border-top:1px solid var(--line)}
.legend h3{font-size:18px}
.legend p{font-size:15.5px;color:var(--muted);font-weight:400}

/* ------------------------------------------------------------ equation */
.equation{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr) auto minmax(0,1fr);gap:10px;align-items:stretch}
.eq-item{display:flex;flex-direction:column;gap:2px;justify-content:flex-end;min-height:156px;padding:18px 16px;border:1px solid var(--line);border-radius:var(--r-l);background:var(--surface)}
.eq-item .ic{width:26px;height:26px;color:var(--link);margin-bottom:auto}
.eq-item small{font-size:13px;color:var(--muted);font-weight:400;line-height:1.35}
.eq-item b{font-size:26px;font-weight:400;letter-spacing:-.02em;color:var(--head);line-height:1.15;font-variant-numeric:tabular-nums}
.eq-voucher{background:var(--amber);border-color:var(--amber)}
.eq-voucher .ic,.eq-voucher small,.eq-voucher b{color:var(--on-amber)}
.eq-result{background:var(--mint);border-color:var(--mint)}
.eq-result b{font-size:20px;font-weight:500}
.eq-op{align-self:center;font-size:30px;font-weight:200;color:var(--muted);text-align:center;min-width:16px}

/* ------------------------------------------------------------ dark band */
.band{background:var(--band);color:var(--on-band)}
.band h2,.band h3{color:var(--on-band)}
.band .lead{color:var(--on-band-muted)}
.band .eyebrow{color:var(--on-band-muted)}
.band .eb-pin .pin-body{fill:var(--teal)} .band .eb-pin .pin-glyph{fill:var(--band)}
.band h2{margin-top:14px;max-width:22ch}
.band-lead{margin-top:16px}
.band-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(36px,6vw,96px);align-items:start}
.band-grid .lead{margin-top:16px;margin-bottom:28px}
.layers{list-style:none;padding:0;border-top:1px solid var(--band-line)}
.layers li{display:grid;grid-template-columns:44px minmax(0,1fr);column-gap:16px;padding:20px 0;border-bottom:1px solid var(--band-line)}
.layers .ic{grid-row:span 2;width:28px;height:28px;color:var(--teal)}
.layers h3{font-size:20px;font-weight:400}
.layers p{color:var(--on-band-muted);font-size:15.5px;font-weight:400}

/* ------------------------------------------------------------ modules */
.modules{display:grid;gap:16px}
.cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}
.cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}
.module{display:flex;flex-direction:column;gap:10px;padding:24px;border:1px solid var(--line);border-radius:var(--r-l);background:var(--surface);min-width:0}
.module>.ic{width:28px;height:28px;color:var(--teal);margin-bottom:4px}
.module p{font-size:15.5px;color:var(--muted);font-weight:400}
.module .txt-link{margin-top:auto;padding-top:6px}
.contact-line{margin-top:auto !important;padding-top:6px;color:var(--ink) !important;font-weight:500 !important}

/* ------------------------------------------------------------ about */
.u-photo{position:relative;margin:0 auto;width:min(100%,520px)}
.u-photo img{width:100%;aspect-ratio:6/5;object-fit:cover;object-position:45% 30%;border-radius:0 0 999px 999px;border:1px solid var(--line)}
.u-photo::before{content:"";position:absolute;inset:-14px -14px -14px -14px;border:1.5px solid var(--arch-line);border-top:0;border-radius:0 0 999px 999px;pointer-events:none}
.u-photo figcaption{margin-top:28px;text-align:center;font-size:14px;color:var(--muted);font-weight:400}
.mission{margin:4px 0 22px;padding-left:20px;border-left:2px solid var(--teal);font-size:clamp(20px,1.9vw,24px);line-height:1.4;font-weight:300;color:var(--head);letter-spacing:-.01em}

/* ------------------------------------------------------------ press */
.press{list-style:none;padding:0;border-top:1px solid var(--line)}
.press a{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:2px 16px;padding:18px 0;border-bottom:1px solid var(--line);text-decoration:none;color:inherit}
.pr-out{font-size:13.5px;color:var(--muted);font-weight:400}
.pr-h{font-size:19px;color:var(--head);font-weight:400;letter-spacing:-.01em}
.press .ic{grid-row:1/span 2;grid-column:2;align-self:center;width:18px;height:18px;color:var(--muted)}
.press a:hover .pr-h{color:var(--link)}
.video-link{display:inline-flex;align-items:center;gap:14px;margin-top:8px;padding:12px 18px 12px 12px;border:1px solid var(--line);border-radius:var(--r-l);text-decoration:none;color:inherit;background:var(--surface)}
.video-link .ic{width:38px;height:38px;color:var(--teal)}
.video-link b{display:block;font-weight:500;color:var(--head)}
.video-link small{color:var(--muted);font-size:13.5px}
.video-link:hover{border-color:var(--teal)}

/* ------------------------------------------------------------ faq */
.faq-grid{display:grid;grid-template-columns:minmax(0,4fr) minmax(0,7fr);gap:clamp(32px,5vw,80px);align-items:start}
.faq-grid>.sec-head{position:sticky;top:calc(var(--hdr) + 24px)}
.faq details{border-bottom:1px solid var(--line)}
.faq details:first-child{border-top:1px solid var(--line)}
.faq summary{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:20px 0;cursor:pointer;list-style:none;font-size:18.5px;font-weight:400;color:var(--head);letter-spacing:-.01em}
.faq summary::-webkit-details-marker{display:none}
.faq summary:hover{color:var(--link)}
.faq-ic{width:20px;height:20px;transform:rotate(90deg);transition:transform .2s;color:var(--link)}
.faq details[open] .faq-ic{transform:rotate(-90deg)}
.faq-a{padding:0 0 22px;color:var(--muted);max-width:62ch;font-weight:400;font-size:16px}

/* ------------------------------------------------------------ final cta */
.final{padding-top:0}
.sec-alt+.final,.band+.final{padding-top:clamp(64px,8vw,120px)}
.final-card{position:relative;overflow:hidden;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:40px;align-items:center;padding:clamp(32px,5vw,64px);border-radius:var(--r-xl);background:var(--mint);isolation:isolate}
.final-card::before,.final-card::after{content:"";position:absolute;z-index:-1;right:-40px;bottom:-60px;width:340px;height:520px;border:1.5px solid var(--arch-line);border-bottom:0;border-radius:999px 999px 0 0}
.final-card::after{right:0;bottom:-60px;width:260px;height:440px}
.final-copy{display:grid;gap:18px;justify-items:start}
.final-copy h2{max-width:18ch}
.final-qr{display:grid;gap:10px;justify-items:center;width:188px;padding:14px;background:var(--qr-bg);border-radius:var(--r-l)}
.final-qr span{font-size:13px;color:var(--qr-fg);font-weight:400}
.final-b2b{grid-template-columns:minmax(0,1fr)}

/* ------------------------------------------------------------ partner page */
.hv-sticker{min-height:clamp(460px,46vw,600px)}
.sticker{position:relative;z-index:1;width:min(290px,74%);aspect-ratio:105/148;display:flex;flex-direction:column;padding:26px;border-radius:10px;background:var(--sticker-bg);color:var(--sticker-fg);transform:rotate(-2deg)}
.st-logo{width:118px;fill:var(--sticker-logo)}
.st-h{margin-top:auto;font-size:34px;font-weight:300;letter-spacing:-.03em;line-height:1.05}
.st-s{color:var(--sticker-muted);font-size:14.5px;margin-top:6px;font-weight:300}
.st-row{display:flex;justify-content:space-between;align-items:flex-end;gap:14px;margin-top:20px;padding-top:16px;border-top:1px solid rgba(230,242,240,.22)}
.st-qr{width:100px;padding:6px;background:var(--qr-bg);border-radius:4px}
.st-id{font-family:var(--mono);font-size:11px;color:var(--sticker-muted);text-align:right;line-height:1.5}
.float-card{position:absolute;z-index:2;display:flex;align-items:center;gap:12px;padding:12px 16px 12px 12px;border:1px solid var(--line);border-radius:var(--r-l);background:var(--surface)}
.float-card b{display:block;font-size:15px;font-weight:500;color:var(--head)}
.float-card small{display:block;font-size:12.5px;color:var(--muted);font-weight:400}
.staff{right:0;bottom:16%}
.fc-ic{display:grid;place-items:center;width:38px;height:38px;border-radius:50%;flex:none}
.fc-ic.ok{background:var(--success-bg);color:var(--success)}
.fc-ic .ic{width:20px;height:20px}

.table-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch}
table{border-collapse:collapse;width:100%}
.ba{min-width:560px;font-size:16.5px}
.ba th,.ba td{text-align:left;padding:18px 16px 18px 0;border-bottom:1px solid var(--line);vertical-align:top;font-weight:400}
.ba thead th{font-size:14px;font-weight:500;color:var(--muted);border-bottom:1px solid var(--head);padding-top:0}
.ba td:first-child,.ba tbody th{color:var(--muted)}
.ba td:nth-child(2){width:44px;color:var(--teal);padding-right:12px}
.ba td:nth-child(2) .ic{width:20px;height:20px}
.ba td:last-child{color:var(--head)}
.concept tbody th{color:var(--head);font-weight:500;width:40%}
.concept td:last-child{color:var(--ink)}

.flow{list-style:none;padding:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:0 20px;margin-top:8px}
.flow li{position:relative;padding-top:40px;border-top:1px solid var(--line-strong)}
.flow-ic{position:absolute;top:-23px;left:0;display:grid;place-items:center;width:46px;height:46px;border-radius:50%;background:var(--bg);border:1px solid var(--line-strong);color:var(--teal)}
.flow-ic .ic{width:22px;height:22px}
.flow h3{margin-bottom:6px}
.flow p{font-size:15.5px;color:var(--muted);font-weight:400}

.steps{list-style:none;padding:0}
.steps li{display:grid;grid-template-columns:46px minmax(0,1fr);column-gap:14px;row-gap:4px;align-content:start;padding:18px 0;border-top:1px solid var(--line)}
.steps li:last-child{border-bottom:1px solid var(--line)}
.steps .step-n{grid-row:span 2}
.steps h3{font-size:18px}
.steps p{font-size:15.5px;color:var(--muted);font-weight:400}
.steps-h{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:20px}
.steps-h li{grid-template-columns:minmax(0,1fr);border-top:1px solid var(--line-strong);border-bottom:0 !important;padding-top:20px}
.steps-h .step-n{grid-row:auto;margin-bottom:10px}

.extras{margin-top:28px;padding:20px 22px;border:1px solid var(--line);border-radius:var(--r-l);background:var(--surface)}
.extras h3{font-size:16px;margin-bottom:6px}
.extras ul{list-style:none;padding:0}
.extras li{display:flex;gap:12px;align-items:flex-start;padding:12px 0;border-top:1px solid var(--line);font-size:15.5px;font-weight:400;color:var(--muted)}
.extras li:first-child{border-top:0}
.extras li .ic{color:var(--teal)}
.extras b{color:var(--head)}

.quote-block{display:grid;justify-items:start;gap:28px}
.quote-block::before{content:"";width:46px;height:56px;border:6px solid var(--teal);border-top:0;border-radius:0 0 999px 999px}
.big-quote{font-size:clamp(28px,3.4vw,46px);font-weight:300;letter-spacing:-.03em;line-height:1.18;color:var(--head);max-width:28ch;text-wrap:balance}
.big-quote em{font-style:normal;color:var(--link)}

/* ------------------------------------------------------------ cities page */
.hv-map{min-height:clamp(440px,44vw,580px)}
.city-map{position:relative;z-index:1;width:min(100%,520px);margin:0;background:var(--surface);border:1px solid var(--line);border-radius:14px;overflow:hidden}
.city-map .map{display:block;width:100%;height:auto;aspect-ratio:520/420}
.city-map figcaption{display:grid;gap:8px;padding:14px 16px;border-top:1px solid var(--line)}
.city-map figcaption p{font-size:14.5px;color:var(--ink);font-weight:400}
.map-legend{display:flex;flex-wrap:wrap;gap:6px 16px;font-size:13px;color:var(--muted);font-weight:400}
.map-legend span{display:inline-flex;align-items:center;gap:6px}
.ring-key{display:inline-block;width:14px;height:14px;border-radius:50%;border:1px dashed var(--m-ring-line);background:var(--m-ring)}
.facts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border-top:1px solid var(--line)}
.fact{padding:28px 28px 0 0}
.fact+.fact{padding-left:28px;border-left:1px solid var(--line)}
.fact b{display:block;font-size:clamp(44px,5vw,66px);font-weight:200;letter-spacing:-.045em;line-height:1;color:var(--head);font-variant-numeric:tabular-nums}
.fact p{margin-top:12px;font-size:15.5px;color:var(--muted);font-weight:400}
.fact small{display:block;margin-top:10px;font-size:12.5px;color:var(--muted);font-weight:400}
.cmp{min-width:680px;font-size:15.5px}
.cmp th,.cmp td{text-align:left;padding:16px 16px 16px 0;border-bottom:1px solid var(--line);vertical-align:top;font-weight:400}
.cmp thead th{font-size:14px;font-weight:500;color:var(--muted);border-bottom:1px solid var(--head)}
.cmp tbody th{font-weight:500;color:var(--head);width:24%}
.cmp td{color:var(--muted)}
.cmp .hl{background:var(--mint);color:var(--head);padding-left:16px;font-weight:500}
.cmp thead .hl{color:var(--link);border-radius:var(--r-m) var(--r-m) 0 0}
.t-no{color:var(--muted)}
.duo{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(24px,4vw,48px)}
.duo>div>.ic{width:28px;height:28px;color:var(--teal)}
.duo h3{font-size:20px;margin:12px 0 8px}
.duo p{color:var(--muted);font-weight:400;font-size:15.5px}
.comms{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,2fr);gap:24px;margin-top:48px;padding:24px;border:1px solid var(--line);border-radius:var(--r-l)}
.comms h3{font-size:18px}
.comms ul{list-style:none;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 24px}
.comms li{position:relative;padding-left:20px;font-size:15.5px;font-weight:400}
.comms li::before{content:"";position:absolute;left:0;top:.6em;width:8px;height:8px;border-radius:50%;background:var(--teal)}

/* architecture / platform diagram (on band) */
.arch-diagram{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1.15fr) auto minmax(0,1fr) auto minmax(0,1fr);gap:10px;align-items:stretch;margin-top:40px}
.arch-3{grid-template-columns:minmax(0,1fr) auto minmax(0,1fr) auto minmax(0,1fr)}
.node{display:grid;gap:6px;align-content:start;padding:18px;border:1px solid var(--band-line);border-radius:var(--r-l);background:var(--node-bg);min-width:0}
.node small{font-size:13px;color:var(--on-band-muted);font-weight:400}
.node b{font-size:18px;font-weight:500;color:var(--on-band);line-height:1.3}
.node span{font-size:14px;color:var(--on-band-muted);font-weight:400}
.node-core{border-color:var(--teal);background:rgba(62,167,152,.12)}
.edge{display:grid;place-items:center;align-content:center;gap:4px;color:var(--teal)}
.edge .ic{width:22px;height:22px}
.edge span{font-size:11.5px;color:var(--on-band-muted);font-weight:400}
.arch-bypass,.arch-out{display:flex;gap:14px;align-items:flex-start;margin-top:14px;padding:16px 18px;border:1px dashed var(--band-line);border-radius:var(--r-l);color:var(--on-band-muted);font-weight:400}
.arch-bypass .ic,.arch-out .ic{color:var(--teal)}
.arch-bypass b,.arch-out b{color:var(--on-band)}

/* ------------------------------------------------------------ business page */
.hv-dash{min-height:clamp(440px,44vw,580px)}
.dash{position:relative;z-index:1;width:min(100%,500px);padding:18px;border:1px solid var(--line);border-radius:14px;background:var(--surface);font-size:13.5px;font-weight:400}
.dash-top{display:flex;align-items:center;gap:10px;padding-bottom:12px;border-bottom:1px solid var(--line);color:var(--muted)}
.dash-logo{width:56px;fill:var(--teal)}
.dash-tag{margin-left:auto;font-style:normal;font-size:11.5px;font-weight:500;padding:2px 7px;border-radius:var(--r-s);background:var(--warn-bg);color:var(--warn-text)}
.dash-kpis{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:14px 0}
.dash-kpis div{padding:10px 12px;border:1px solid var(--line);border-radius:var(--r-m)}
.dash-kpis small{display:block;font-size:12px;color:var(--muted)}
.dash-kpis b{font-size:24px;font-weight:400;color:var(--head);letter-spacing:-.02em;font-variant-numeric:tabular-nums}
.dash-chart{display:flex;align-items:flex-end;gap:6px;height:86px;padding:8px 2px 0;border-bottom:1px solid var(--line)}
.dash-chart i{flex:1;height:var(--h);background:var(--teal);border-radius:3px 3px 0 0;opacity:.8}
.dash-chart i:nth-child(10){background:var(--primary);opacity:1}
.dash-axis{display:flex;justify-content:space-between;padding:4px 2px 12px;font-size:11px;color:var(--muted)}
.dash-table{width:100%;font-size:13px}
.dash-table th{text-align:left;font-weight:500;font-size:12px;color:var(--muted);padding:6px 8px 6px 0;border-bottom:1px solid var(--line)}
.dash-table td{padding:9px 8px 9px 0;border-bottom:1px solid var(--line);color:var(--ink)}
.dash-table tr:last-child td{border-bottom:0}
.num{text-align:right !important;font-variant-numeric:tabular-nums}
.pains{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border-top:1px solid var(--line)}
.pains>div{padding:28px 28px 0 0}
.pains>div+div{padding-left:28px;border-left:1px solid var(--line)}
.pains h3{font-size:21px;font-weight:400;letter-spacing:-.015em}
.pains p{margin-top:8px;color:var(--muted);font-weight:400;font-size:15.5px}
.lanes{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.lane{padding:24px;border:1px solid var(--line);border-radius:var(--r-l);background:var(--surface)}
.lane h3{display:flex;align-items:center;gap:10px;padding-bottom:16px;border-bottom:1px solid var(--line);font-size:20px}
.lane h3 .ic{color:var(--teal);width:24px;height:24px}
.lane ol{list-style:none;padding:0;margin-top:8px;display:grid}
.lane li{position:relative;display:flex;align-items:center;gap:14px;padding:12px 0;font-weight:400}
.lane li .ic{width:40px;height:40px;padding:9px;border-radius:50%;background:var(--mint);color:var(--link)}
.lane li+li::before{content:"";position:absolute;left:19.5px;top:-6px;height:12px;border-left:1px dashed var(--line-strong)}
.lane-alt li .ic{background:var(--bg-alt);border:1px solid var(--line)}
.checks-list{list-style:none;padding:0;border-bottom:1px solid var(--line)}
.checks-list li{display:flex;gap:12px;align-items:flex-start;padding:13px 0;border-top:1px solid var(--line);font-weight:400}
.checks-list .ic{color:var(--teal);margin-top:2px}

/* ------------------------------------------------------------ technology page */
.hv-ways{min-height:clamp(420px,42vw,560px)}
.ways{position:relative;z-index:1;display:grid;gap:10px;width:min(100%,400px)}
.way{display:flex;align-items:center;gap:14px;padding:14px 16px;border:1px solid var(--line);border-radius:var(--r-l);background:var(--surface)}
.way>.ic{width:42px;height:42px;padding:10px;border-radius:var(--r-m);background:var(--mint);color:var(--link)}
.way b{display:block;font-weight:500;color:var(--head)}
.way small{font-size:13.5px;color:var(--muted);font-weight:400}
.way-lock{display:flex;align-items:center;justify-content:center;gap:10px;margin-top:6px;padding:16px;border-radius:var(--r-l);background:var(--success-bg);color:var(--success);font-weight:500}
.way-lock .ic{width:22px;height:22px}

/* ------------------------------------------------------------ forms */
.form-wrap{display:grid;grid-template-columns:minmax(0,4fr) minmax(0,7fr);gap:clamp(32px,5vw,72px);align-items:start;padding:clamp(24px,4vw,56px);border:1px solid var(--line);border-radius:var(--r-xl);background:var(--bg-alt)}
.form-intro{display:grid;gap:16px}
.form-intro h2{font-size:clamp(28px,3vw,40px)}
.direct{display:flex;align-items:center;gap:10px;margin-top:8px;color:var(--muted);font-weight:400}
.direct .ic{color:var(--teal)}
.lead-form{min-width:0}
.fgrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.fld{display:grid;gap:6px;min-width:0;align-content:start}
.fld.full{grid-column:1/-1}
.fld label,.checks legend{font-size:14px;font-weight:500;color:var(--head)}
.fld label i{font-style:normal;color:var(--error);margin-left:3px}
.fld input,.fld select,.fld textarea{width:100%;min-width:0;padding:12px 14px;border:1px solid var(--line-strong);border-radius:var(--r-m);background:var(--surface);color:var(--ink);font:inherit;font-size:16px;font-weight:400;line-height:1.4;transition:border-color .15s,box-shadow .15s}
.fld textarea{resize:vertical;min-height:96px}
.fld input:focus,.fld select:focus,.fld textarea:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px var(--focus-ring)}
.fld.invalid input,.fld.invalid select{border-color:var(--error)}
.checks{border:0;padding:0;margin:0;min-width:0}
.checks legend{padding:0;margin-bottom:8px}
.chk-grid{display:flex;flex-wrap:wrap;gap:8px}
.chk{display:inline-flex;align-items:center;gap:8px;padding:9px 12px;border:1px solid var(--line-strong);border-radius:var(--r-m);background:var(--surface);cursor:pointer;font-size:15px;font-weight:400}
.chk input{width:16px;height:16px;margin:0;accent-color:var(--primary)}
.chk:has(input:checked){border-color:var(--primary);background:var(--mint)}
.chk:has(input:focus-visible){outline:2px solid var(--primary);outline-offset:2px}
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.fnote{margin-top:18px;font-size:13.5px;color:var(--muted);font-weight:400}
.factions{display:flex;flex-wrap:wrap;align-items:center;gap:16px;margin-top:16px}
.fstatus{font-size:14.5px;color:var(--muted);font-weight:400}
.fstatus.err{color:var(--error)}
.fdone,.ffail{padding:8px 0}
.fdone-ic{display:grid;place-items:center;width:54px;height:54px;border-radius:50%;background:var(--success-bg);color:var(--success);margin-bottom:16px}
.fdone-ic .ic{width:26px;height:26px}
.fdone h3,.ffail h3{font-size:24px;font-weight:400;letter-spacing:-.02em}
.fdone p,.ffail p{margin-top:8px;color:var(--muted);font-weight:400}
.ffail-actions{display:flex;flex-wrap:wrap;gap:10px;margin:18px 0 14px}
.ffail-text{margin:0;white-space:pre-wrap;word-break:break-word;font-family:var(--mono);font-size:12.5px;line-height:1.55;max-height:260px;overflow:auto;padding:14px;border:1px solid var(--line);border-radius:var(--r-m);background:var(--surface);color:var(--ink)}

/* ------------------------------------------------------------ legal */
.prose{max-width:780px}
.prose h2{font-size:22px;font-weight:500;letter-spacing:-.01em;margin:36px 0 10px}
.prose h2:first-child{margin-top:0}
.prose p,.prose li{font-size:16.5px;font-weight:400;color:var(--ink)}
.prose p+p{margin-top:12px}
.prose ul{padding-left:20px;display:grid;gap:6px}

/* legal pages */
.legal-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,3fr);gap:clamp(28px,5vw,72px);align-items:start}
.legal-aside{position:sticky;top:calc(var(--hdr) + 24px);min-width:0}
.legal-toc ol{list-style:none;padding:0;margin:0;display:grid;gap:2px;border-left:1px solid var(--line)}
.legal-toc a{display:block;padding:5px 0 5px 14px;margin-left:-1px;border-left:2px solid transparent;color:var(--muted);text-decoration:none;font-size:14.5px;font-weight:400}
.legal-toc a:hover{color:var(--link);border-left-color:var(--teal)}
.legal h2{scroll-margin-top:calc(var(--hdr) + 16px)}
.legal h3{font-size:17px;margin:22px 0 6px}
.legal-box{margin-top:12px;padding:20px 22px;border:1px solid var(--line);border-radius:var(--r-l);background:var(--bg-alt)}
.legal-box h3:first-child{margin-top:0}
.legal-box p+p{margin-top:10px}
.legal-note{padding:12px 14px;margin-bottom:24px;border-radius:var(--r-m);background:var(--mint);font-size:15px}
.legal-strong{padding:12px 14px;border-left:2px solid var(--teal);background:var(--bg-alt)}
.legal-table{min-width:600px;margin-top:14px;font-size:14.5px;font-weight:400}
.legal-table th,.legal-table td{text-align:left;vertical-align:top;padding:10px 14px 10px 0;border-bottom:1px solid var(--line)}
.legal-table th{font-weight:500;color:var(--muted);font-size:13.5px;border-bottom-color:var(--head)}
@media (max-width:1000px){.legal-grid{grid-template-columns:minmax(0,1fr)}.legal-aside{position:static}.legal-toc ol{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:480px){.legal-toc ol{grid-template-columns:minmax(0,1fr)}}

/* app page */
.app-page{text-align:center}
.app-wrap{display:grid;justify-items:center;gap:20px;max-width:620px}
.app-logo{width:150px}
.app-wrap .stores{justify-content:center}
.app-qr{display:flex;align-items:center;gap:14px;padding:10px 16px 10px 10px;border:1px solid var(--line);border-radius:var(--r-l);text-align:left}
.app-qr .qr{width:96px;height:96px;flex:none}
.app-qr span{font-size:14px;color:var(--muted);font-weight:400;max-width:22ch}
.nf .en{color:var(--muted)}
.nf .cta-row{margin-top:24px}

/* ------------------------------------------------------------ footer */
.site-footer{background:var(--band);color:var(--on-band-muted);padding-block:64px 28px;font-weight:400}
.ft-top{display:grid;grid-template-columns:minmax(0,2fr) repeat(3,minmax(0,1fr));gap:40px}
.ft-logo{width:110px}
.ft-brand p{margin:16px 0 22px;max-width:36ch;font-size:15px}
.ft-col h2{font-size:14px;font-weight:500;letter-spacing:0;color:var(--on-band);margin-bottom:14px}
.ft-col ul{list-style:none;padding:0;display:grid;gap:12px;font-size:15px}
.ft-col a{color:var(--on-band);text-decoration:none}
.ft-col a:hover{color:var(--onband-btn)}
.ft-lbl{display:block;font-size:12.5px;color:var(--on-band-muted)}
.ft-bottom{display:flex;flex-wrap:wrap;gap:8px 24px;margin-top:48px;padding-top:20px;border-top:1px solid var(--band-line);font-size:13.5px}
.ft-bottom a{color:var(--on-band-muted);text-decoration:none}
.ft-bottom a:hover{color:var(--on-band)}

/* ------------------------------------------------------------ responsive */
@media (max-width:1100px){
  .aud-grid,.cols-4{grid-template-columns:repeat(2,minmax(0,1fr))}
  .ft-top{grid-template-columns:repeat(2,minmax(0,1fr))}
  .arch-diagram{grid-template-columns:minmax(0,1fr);gap:8px}
  .arch-diagram .edge .ic{transform:rotate(90deg)}
  .arch-diagram .edge{grid-auto-flow:column;gap:8px;padding:2px 0}
}
@media (max-width:1000px){
  :root{--hdr:62px}
  .burger{display:inline-flex}
  .nav{position:fixed;left:0;right:0;top:calc(var(--hdr) + env(safe-area-inset-top,0px));bottom:0;display:none;flex-direction:column;align-items:stretch;gap:24px;
    padding:24px max(20px,env(safe-area-inset-right,0px)) calc(32px + env(safe-area-inset-bottom,0px)) max(20px,env(safe-area-inset-left,0px));background:var(--bg);overflow-y:auto;border-top:1px solid var(--line)}
  .nav-open .nav{display:flex}
  .nav-open .site-header{-webkit-backdrop-filter:none;backdrop-filter:none;background:var(--header-solid)}
  .dl-row,.dl-row .stores{width:100%}
  .nav-open{overflow:hidden}
  .nav ul{flex-direction:column;gap:0}
  .nav ul a{display:block;padding:14px 0;font-size:24px;font-weight:300;border-bottom:1px solid var(--line)}
  .nav ul a[aria-current="page"]{border-bottom-color:var(--line)}
  .nav-extra{flex-wrap:wrap;gap:12px}
  .nav-extra .btn{flex:1}
  .hero-grid,.split,.band-grid,.faq-grid,.form-wrap{grid-template-columns:minmax(0,1fr)}
  .faq-grid>.sec-head{position:static}
  .hero-visual{min-height:0;padding-block:24px 32px}
  .hv-sticker,.hv-map,.hv-dash,.hv-ways{min-height:0}
  .about .u-photo{max-width:400px}
  .stats{grid-template-columns:repeat(2,minmax(0,1fr));row-gap:24px}
  .stats>div:nth-child(3){border-left:0;padding-left:0}
  .flow{grid-template-columns:repeat(2,minmax(0,1fr));gap:44px 20px}
}
@media (max-width:760px){
  body{font-size:16.5px}
  .how,.cols-3,.duo,.lanes,.pains,.facts{grid-template-columns:minmax(0,1fr)}
  .pains>div,.fact{padding:22px 0 0;border-left:0 !important;padding-left:0 !important}
  .pains>div+div,.fact+.fact{border-top:1px solid var(--line);margin-top:22px}
  .fgrid{grid-template-columns:minmax(0,1fr)}
  .equation{grid-template-columns:minmax(0,1fr)}
  .eq-item{min-height:0;display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:12px;padding:14px 16px}
  .eq-item .ic{margin:0}
  .eq-item small{font-size:14px}
  .eq-item b{font-size:22px;text-align:right}
  .eq-result b{font-size:17px}
  .eq-op{transform:rotate(90deg);line-height:1;padding:2px 0}
  .comms{grid-template-columns:minmax(0,1fr)}
  .comms ul{grid-template-columns:minmax(0,1fr)}
  .final-card{grid-template-columns:minmax(0,1fr)}
  .final-qr,.dl-qr,.app-qr{display:none}
  .feat{grid-template-columns:minmax(0,1fr)}
  .phone-screen{height:540px}
  .staff{right:auto;left:50%;bottom:0;transform:translateX(-50%);white-space:nowrap}
  .hv-sticker{padding-bottom:72px}
  .dash-kpis b{font-size:20px}
}
@media (max-width:760px){
  .ba,.cmp{min-width:0}
  .ba thead,.cmp thead{display:none}
  .ba tr,.cmp tr{display:grid;grid-template-columns:minmax(0,1fr);gap:4px;padding:16px 0;border-bottom:1px solid var(--line)}
  .ba th,.ba td,.cmp th,.cmp td{display:block;padding:0;border:0;width:auto}
  .ba td:nth-child(2){display:none}
  .ba td:last-child::before{content:"→ ";color:var(--teal)}
  .cmp tbody th{width:auto;margin-bottom:4px}
  .cmp td{display:grid;grid-template-columns:132px minmax(0,1fr);gap:12px}
  .cmp td::before{content:attr(data-label);color:var(--muted);font-weight:400;font-size:14px}
  .cmp td.hl{padding:8px 10px;border-radius:var(--r-m);margin-top:4px}
}
@media (max-width:480px){
  .aud-grid,.cols-4,.ft-top,.flow{grid-template-columns:minmax(0,1fr)}
  .stats{grid-template-columns:minmax(0,1fr)}
  .stats>div,.stats>div+div{border-left:0;padding:0 0 18px;border-bottom:1px solid var(--line)}
  .stores .store{flex:1 1 140px;min-width:0;padding:9px 12px 9px 10px;gap:8px}
  .store b{font-size:15.5px}
  .store .ic{width:18px;height:18px}
  h1{font-size:clamp(36px,10vw,44px)}
  .dash-table th:nth-child(3),.dash-table td:nth-child(3){display:none}
}
@media (hover:none){ .dl-qr{display:none} }
@media (prefers-reduced-motion: reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation:none !important;transition:none !important}
}
