/* Digital Dackel — site styles
   Palette from the brand: cobalt night + electric blue + DD cyan,
   with the mascot's tan fur and striped mint sweater as accents. */

:root{
  --night:#0B1E5B;
  --night-2:#12297A;
  --night-3:#1A3590;
  --ink:#0E1630;
  --blue:#2450FF;
  --blue-d:#1A3BD6;
  --cyan:#19D3F7;
  --paper:#F4F7FC;
  --white:#FFFFFF;
  --tan:#E8B862;
  --tan-d:#B9852E;
  --mint:#B4E3E0;
  --line:#DCE3F0;
  --line-d:rgba(255,255,255,.14);
  --muted:#56627F;
  --muted-d:#AAB8E0;
  --ok:#1FB57A;
  --err:#D93B4A;

  --f-text:"Sofia Sans","Segoe UI",Roboto,"Helvetica Neue",Arial,system-ui,sans-serif;
  --f-display:"Sofia Sans Extra Condensed","Sofia Sans Condensed","Roboto Condensed","Arial Narrow","DejaVu Sans Condensed",sans-serif;

  --fs-xs:.8125rem;
  --fs-sm:.9375rem;
  --fs-base:1.125rem;
  --fs-md:1.3125rem;
  --fs-lg:1.75rem;
  --fs-xl:clamp(2.125rem,3.6vw,3rem);
  --fs-2xl:clamp(2.75rem,5.6vw,4.75rem);
  --fs-hero:clamp(3.1rem,6.8vw,6.4rem);

  --wrap:1240px;
  --gut:clamp(16px,4vw,40px);
  --sec:clamp(72px,10vw,136px);
  --r-sm:8px;
  --r:16px;
  --r-lg:26px;
  --ease:cubic-bezier(.2,.7,.2,1);
}

*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:96px}
body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--f-text);font-size:var(--fs-base);line-height:1.6;font-feature-settings:"kern","liga";text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased}
img,svg,video{max-width:100%;height:auto;display:block}
a{color:inherit;text-decoration-thickness:1px;text-underline-offset:.18em}
button,input,select,textarea{font:inherit;color:inherit}
h1,h2,h3,h4{margin:0;font-weight:700;line-height:1.1}
p{margin:0 0 1em}
ul,ol{margin:0;padding:0}
::selection{background:var(--cyan);color:var(--ink)}
:focus-visible{outline:3px solid var(--cyan);outline-offset:3px;border-radius:6px}
.skip{position:absolute;left:-999px;top:8px;z-index:200;background:var(--cyan);color:var(--ink);padding:10px 16px;border-radius:999px;font-weight:700}
.skip:focus{left:12px}
.sr{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

.wrap{max-width:var(--wrap);margin:0 auto;padding-left:var(--gut);padding-right:var(--gut)}
.narrow{max-width:820px}

/* ---------- Type ---------- */
.d1,.d2,.d3{font-family:var(--f-display);font-weight:800;letter-spacing:-.005em}
.d1{font-size:var(--fs-hero);line-height:.92;overflow-wrap:break-word;hyphens:auto}
.d2{font-size:var(--fs-2xl);line-height:.95;overflow-wrap:break-word;hyphens:auto}
.d3{font-size:var(--fs-xl);line-height:1}
.h4{font-size:var(--fs-md);font-weight:700;line-height:1.25}
.lede{font-size:var(--fs-md);line-height:1.5;max-width:40ch}
.small{font-size:var(--fs-sm)}
.xs{font-size:var(--fs-xs)}
.muted{color:var(--muted)}
.on-dark .muted,.dark .muted{color:var(--muted-d)}
.kicker{display:inline-flex;align-items:center;gap:10px;font-size:var(--fs-sm);font-weight:600;color:var(--blue);margin-bottom:18px}
.dark .kicker{color:var(--cyan)}
.kicker::before{content:"";width:22px;height:6px;border-radius:3px;background:repeating-linear-gradient(90deg,currentColor 0 4px,transparent 4px 7px)}
.num{font-variant-numeric:tabular-nums}

/* ---------- Buttons ---------- */
.btn{--bg:var(--blue);--fg:#fff;display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:52px;padding:0 26px;border-radius:999px;border:0;background:var(--bg);color:var(--fg);font-weight:700;font-size:1.0625rem;text-decoration:none;cursor:pointer;transition:transform .25s var(--ease),background-color .2s,box-shadow .25s;white-space:nowrap}
.btn:hover{transform:translateY(-2px);box-shadow:0 10px 24px -12px rgba(36,80,255,.65)}
.btn:active{transform:translateY(0)}
.btn-cyan{--bg:var(--cyan);--fg:var(--ink)}
.btn-cyan:hover{box-shadow:0 10px 30px -10px rgba(25,211,247,.7)}
.btn-ghost{--bg:transparent;--fg:currentColor;box-shadow:inset 0 0 0 1.5px currentColor}
.btn-ghost:hover{box-shadow:inset 0 0 0 1.5px currentColor;background:rgba(127,140,180,.12)}
.btn-sm{min-height:42px;padding:0 18px;font-size:.975rem}
.btn .ar{transition:transform .25s var(--ease)}
.btn:hover .ar{transform:translateX(3px)}
.link{font-weight:700;color:var(--blue);text-decoration:none;border-bottom:1.5px solid currentColor;padding-bottom:1px}
.dark .link{color:var(--cyan)}
.link:hover{border-bottom-width:3px}

/* ---------- Header ---------- */
.hdr{position:sticky;top:0;z-index:60;background:rgba(11,30,91,.92);backdrop-filter:saturate(1.4) blur(12px);-webkit-backdrop-filter:saturate(1.4) blur(12px);color:#fff;border-bottom:1px solid transparent;transition:border-color .3s,transform .35s var(--ease)}
.hdr.scrolled{border-bottom-color:var(--line-d)}
.hdr.hide{transform:translateY(-100%)}
.hdr-in{display:flex;align-items:center;gap:20px;height:76px}
.brand{display:flex;align-items:center;gap:10px;text-decoration:none;color:#fff;flex:0 0 auto}
.brand img{width:66px;height:auto;margin:-6px 0 -2px -6px}
.brand b{font-family:var(--f-display);font-weight:800;font-size:1.65rem;letter-spacing:.005em;line-height:.85;display:flex;flex-direction:column}
.brand b span{display:block}
.nav{display:flex;align-items:center;gap:4px;margin-left:auto}
.nav > a,.nav .dd > button{display:inline-flex;align-items:center;gap:6px;height:44px;padding:0 12px;border-radius:999px;color:#E6ECFF;text-decoration:none;font-weight:600;font-size:1rem;background:none;border:0;cursor:pointer}
.nav > a:hover,.nav .dd > button:hover,.nav > a[aria-current="page"]{background:rgba(255,255,255,.09);color:#fff}
.dd{position:relative}
.dd-menu{position:absolute;top:calc(100% + 10px);left:-12px;min-width:330px;background:#fff;color:var(--ink);border-radius:var(--r);padding:10px;box-shadow:0 30px 60px -20px rgba(8,20,70,.45);opacity:0;visibility:hidden;transform:translateY(-6px);transition:.2s var(--ease)}
.dd.open .dd-menu,.dd:focus-within .dd-menu{opacity:1;visibility:visible;transform:none}
.dd-menu a{display:block;padding:10px 12px;border-radius:10px;text-decoration:none}
.dd-menu a:hover{background:var(--paper)}
.dd-menu a b{display:block;font-size:1rem}
.dd-menu a span{display:block;font-size:var(--fs-xs);color:var(--muted);line-height:1.4}
.dd-menu hr{border:0;border-top:1px solid var(--line);margin:6px 4px}
.hdr-cta{display:flex;align-items:center;gap:10px}
.lang{font-weight:700;font-size:.95rem;color:#E6ECFF;text-decoration:none;padding:8px 10px;border-radius:8px}
.lang:hover{background:rgba(255,255,255,.09)}
.burger{display:none;width:46px;height:46px;border-radius:12px;border:1px solid var(--line-d);background:none;color:#fff;cursor:pointer;align-items:center;justify-content:center}
.burger span{display:block;width:20px;height:2px;background:currentColor;position:relative;transition:.3s var(--ease)}
.burger span::before,.burger span::after{content:"";position:absolute;left:0;width:20px;height:2px;background:currentColor;transition:.3s var(--ease)}
.burger span::before{top:-6px}.burger span::after{top:6px}
.menu-open .burger span{background:transparent}
.menu-open .burger span::before{top:0;transform:rotate(45deg)}
.menu-open .burger span::after{top:0;transform:rotate(-45deg)}
.mnav{position:fixed;inset:76px 0 0 0;z-index:55;background:var(--night);color:#fff;padding:24px var(--gut) 40px;overflow:auto;opacity:0;visibility:hidden;transform:translateY(-8px);transition:.3s var(--ease)}
.menu-open .mnav{opacity:1;visibility:visible;transform:none}
.mnav a{display:block;text-decoration:none;font-family:var(--f-display);font-weight:800;font-size:2.1rem;line-height:1.25;padding:4px 0}
.mnav .sub a{font-family:var(--f-text);font-weight:600;font-size:1.05rem;color:var(--muted-d);padding:6px 0 6px 14px}
.mnav .btn{margin-top:22px;width:100%;font-family:var(--f-text);font-size:1.0625rem;font-weight:700;line-height:1;padding:0 26px}
@media (max-width:1080px){.nav,.hdr-cta .btn{display:none}.burger{display:inline-flex}.hdr-cta{margin-left:auto}}

/* ---------- Sections ---------- */
.sec{padding:var(--sec) 0}
.sec-tight{padding:clamp(48px,6vw,80px) 0}
.dark{background:var(--night);color:#fff}
.white{background:#fff}
.sec-head{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,.8fr);gap:24px 48px;align-items:end;margin-bottom:clamp(36px,5vw,64px)}
.sec-head p{margin:0;color:var(--muted);max-width:46ch}
.dark .sec-head p{color:var(--muted-d)}
@media (max-width:860px){.sec-head{grid-template-columns:minmax(0,1fr)}}

/* ---------- Hero ---------- */
.hero{position:relative;background:var(--night);color:#fff;overflow:hidden;padding:clamp(40px,6vw,84px) 0 0}
.hero::before{content:"";position:absolute;inset:-30% -10% auto 35%;height:120%;background:radial-gradient(closest-side,rgba(36,80,255,.55),transparent 70%);pointer-events:none}
.hero::after{content:"";position:absolute;right:-12%;bottom:-40%;width:60%;height:80%;background:radial-gradient(closest-side,rgba(25,211,247,.22),transparent 70%);pointer-events:none}
.hero-grid{position:relative;z-index:1;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.04fr);gap:clamp(32px,5vw,72px);align-items:start}
.hero-copy{padding-top:clamp(8px,2vw,28px)}
.hero-pre{display:block;font-family:var(--f-text);letter-spacing:0;font-size:clamp(1.35rem,2.2vw,1.85rem);line-height:1.3;font-weight:500;color:#DCE4FF;margin:0 0 8px}
.rot{position:relative;display:block;min-height:calc(var(--fs-hero) * .92 * 3);color:#fff}
.rot-txt{display:block}
.rot-txt .w{display:inline-block;opacity:0;transform:translateY(.45em);filter:blur(4px);transition:opacity .5s var(--ease),transform .6s var(--ease),filter .5s}
.rot-txt.in .w{opacity:1;transform:none;filter:none}
.rot-txt.out .w{opacity:0;transform:translateY(-.35em);filter:blur(4px);transition-duration:.35s}
.rot .hl{color:var(--cyan)}
.hero-lede{margin:22px 0 30px;color:#C9D4F5;max-width:44ch;font-size:var(--fs-md);line-height:1.5}
.hero-lede a{color:#fff}
.hero-ctas{display:flex;flex-wrap:wrap;gap:12px}
.hero-meta{display:flex;flex-wrap:wrap;gap:8px 22px;margin-top:26px;font-size:var(--fs-sm);color:#C9D4F5}
.hero-meta span{display:inline-flex;align-items:center;gap:8px}
.dot{width:8px;height:8px;border-radius:50%;background:var(--ok);box-shadow:0 0 0 4px rgba(31,181,122,.2)}
@media (max-width:980px){.hero-grid{grid-template-columns:minmax(0,1fr)}.rot{min-height:calc(var(--fs-hero) * .92 * 2.2)}}
@media (max-width:520px){.rot{min-height:calc(var(--fs-hero) * .92 * 3.2)}}

/* Player */
.player{position:relative;--cw:100%}
.chans{display:grid;grid-template-columns:repeat(8,1fr);gap:4px;margin-bottom:0;position:relative}
.chan{display:flex;flex-direction:column;align-items:center;gap:7px;font-size:.75rem;font-weight:600;color:#8FA0D6;transition:color .3s}
.chan i{width:34px;height:34px;border-radius:10px;display:grid;place-items:center;border:1px solid var(--line-d);background:rgba(255,255,255,.04);transition:.35s var(--ease)}
.chan i svg{width:17px;height:17px}
.chan::after{content:"";width:1px;height:22px;background:linear-gradient(var(--line-d),transparent)}
.chan.on{color:#fff}
.chan.on i{border-color:var(--cyan);background:rgba(25,211,247,.14);color:var(--cyan);box-shadow:0 0 0 5px rgba(25,211,247,.1)}
.chan.on::after{background:linear-gradient(var(--cyan),rgba(25,211,247,0))}
.card-stage{position:relative;min-height:440px}
.pcard{position:absolute;inset:0 0 auto 0;background:linear-gradient(180deg,#14307F,#0F2668);border:1px solid rgba(255,255,255,.16);border-radius:var(--r-lg);padding:22px 22px 0;box-shadow:0 40px 80px -30px rgba(0,0,0,.55);opacity:0;visibility:hidden;transform:translateY(14px) scale(.985);transition:opacity .45s var(--ease),transform .55s var(--ease),visibility .45s}
.pcard.on{opacity:1;visibility:visible;transform:none;position:relative}
.pc-top{display:flex;flex-wrap:wrap;align-items:center;gap:8px 10px;padding-bottom:16px;border-bottom:1px solid var(--line-d);font-size:var(--fs-sm)}
.pc-top b{font-weight:700;font-size:1.05rem}
.tag{display:inline-flex;align-items:center;height:24px;padding:0 9px;border-radius:6px;font-size:.75rem;font-weight:700;background:var(--tan);color:#3A2706}
.pc-time{margin-left:auto;color:var(--muted-d);font-variant-numeric:tabular-nums;white-space:nowrap}
.steps{list-style:none;margin:16px 0 0;display:grid;gap:10px}
.steps li{display:flex;gap:12px;align-items:flex-start;font-size:1rem;line-height:1.4;color:#E9EEFF;opacity:.28;transition:opacity .4s}
.steps li.done{opacity:1}
.ck{flex:0 0 22px;height:22px;border-radius:50%;border:1.5px solid rgba(255,255,255,.35);display:grid;place-items:center;margin-top:1px;transition:.35s var(--ease)}
.ck svg{width:12px;height:12px;opacity:0;transform:scale(.4);transition:.35s var(--ease)}
.done .ck{background:var(--cyan);border-color:var(--cyan);color:var(--ink)}
.done .ck svg{opacity:1;transform:none}
.bubble{margin:18px 0 0;padding:14px 16px;border-radius:16px 16px 16px 4px;background:#fff;color:var(--ink);font-size:.975rem;line-height:1.45;opacity:0;transform:translateY(8px);transition:.45s var(--ease)}
.bubble.show{opacity:1;transform:none}
.bubble small{display:flex;justify-content:space-between;gap:10px;font-size:.75rem;font-weight:700;color:var(--muted);margin-bottom:6px}
.pc-foot{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;margin:18px -22px 0;padding:16px 22px 18px;border-top:1px solid var(--line-d);background:rgba(0,0,0,.12);border-radius:0 0 var(--r-lg) var(--r-lg)}
.pc-foot p{margin:0;font-weight:600;font-size:1rem;color:#fff;max-width:28ch;line-height:1.35}
.saved{text-align:right;flex:0 0 auto}
.saved small{display:block;font-size:.72rem;color:var(--muted-d);line-height:1.3}
.saved b{font-family:var(--f-display);font-weight:800;font-size:2.4rem;line-height:1;color:var(--cyan);font-variant-numeric:tabular-nums}
.track-wrap{display:flex;align-items:center;gap:14px;margin-top:22px;padding-bottom:28px}
.track{position:relative;flex:1;height:10px;border-radius:6px;background:repeating-linear-gradient(90deg,rgba(180,227,224,.18) 0 10px,rgba(255,255,255,.05) 10px 18px)}
.track-fill{position:absolute;inset:0 auto 0 0;width:0;border-radius:6px;background:repeating-linear-gradient(90deg,var(--mint) 0 10px,#3B4C79 10px 18px);transition:width .2s linear}
.track-dog{position:absolute;bottom:2px;left:0;width:66px;transform:translateX(-50%);transition:left .2s linear;pointer-events:none}
.track-dog img{width:66px;transform:scaleX(-1);filter:drop-shadow(0 4px 6px rgba(0,0,0,.35))}
.track-dog.walk img{animation:trot .36s steps(2) infinite}
@keyframes trot{50%{transform:scaleX(-1) translateY(-2px) rotate(-1.5deg)}}
.pl-meta{display:flex;align-items:center;gap:12px;font-size:var(--fs-sm);color:var(--muted-d);white-space:nowrap}
.pl-meta b{color:#fff;font-variant-numeric:tabular-nums}
.pl-btn{display:inline-flex;align-items:center;gap:6px;height:34px;padding:0 12px;border-radius:999px;border:1px solid var(--line-d);background:none;color:#fff;font-size:.85rem;font-weight:700;cursor:pointer}
.pl-btn:hover{background:rgba(255,255,255,.08)}
.pl-btn svg{width:14px;height:14px;flex:0 0 14px}
.rot-pause{margin-top:14px}
.pl-next{display:none}
@media (min-width:600px){.pl-next{display:inline}}
@media (max-width:560px){.pc-time{margin-left:0;width:100%;white-space:normal}.chans{grid-template-columns:repeat(4,1fr);row-gap:10px}.chan::after{height:10px}.card-stage{min-height:520px}.pc-foot{flex-direction:column;align-items:flex-start}.saved{text-align:left}}

/* Tools strip */
.tools{position:relative;z-index:1;margin-top:clamp(30px,5vw,56px);border-top:1px solid var(--line-d);padding:22px 0 26px;display:flex;align-items:center;gap:18px 26px;flex-wrap:wrap}
.tools p{margin:0;font-size:var(--fs-sm);color:var(--muted-d);flex:0 1 auto}
.tools ul{list-style:none;display:flex;flex-wrap:wrap;gap:8px}
.tools li{font-size:.875rem;font-weight:600;color:#DCE4FF;padding:5px 11px;border-radius:8px;background:rgba(255,255,255,.06)}

/* ---------- Problems ---------- */
.probs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border-top:1px solid var(--line)}
.prob{padding:30px 30px 32px 0;border-bottom:1px solid var(--line);display:flex;flex-direction:column}
.prob + .prob{padding-left:30px;border-left:1px solid var(--line)}
.prob:nth-child(3n+1){padding-left:0;border-left:0}
.prob h3{font-size:var(--fs-sm);font-weight:700;color:var(--muted);margin-bottom:14px}
.big{font-family:var(--f-display);font-weight:800;font-size:clamp(3.4rem,5.6vw,4.6rem);line-height:.9;color:var(--blue);letter-spacing:-.01em}
.prob .stat{display:block}
.prob .stat p{margin:10px 0 0;font-size:1.0625rem;line-height:1.45;max-width:30ch}
.src{display:inline-block;margin-top:12px;font-size:var(--fs-xs);color:var(--muted);text-decoration:none;border-bottom:1px dotted currentColor}
.src:hover{color:var(--blue)}
.fix{margin-top:auto;padding-top:22px}
.fix strong{display:block;font-size:1.0625rem;line-height:1.4;padding-left:16px;border-left:3px solid var(--cyan)}
.fix em{display:inline-block;margin-top:10px;font-style:normal;font-size:var(--fs-xs);font-weight:700;color:var(--tan-d)}
.note{margin-top:22px;font-size:var(--fs-sm);color:var(--muted);max-width:90ch}
@media (max-width:980px){.probs{grid-template-columns:repeat(2,minmax(0,1fr))}.prob,.prob + .prob{padding:26px 22px 28px 0;border-left:0}.prob:nth-child(even){padding-left:22px;border-left:1px solid var(--line)}}
@media (max-width:620px){.probs{grid-template-columns:minmax(0,1fr)}.prob:nth-child(even){padding-left:0;border-left:0}}

/* ---------- Builds (typical projects) ---------- */
.builds{list-style:none;border-top:1px solid var(--line)}
.build{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr) auto;gap:16px 40px;padding:28px 0;border-bottom:1px solid var(--line);align-items:start;text-decoration:none}
.build h3{font-family:var(--f-display);font-weight:800;font-size:clamp(1.9rem,3vw,2.5rem);line-height:1}
.build .who{display:block;margin-top:8px;font-size:var(--fs-sm);color:var(--muted)}
.build p{margin:0;color:var(--ink)}
.build .res{font-size:var(--fs-sm);font-weight:700;color:var(--blue);white-space:nowrap}
a.build:hover h3{color:var(--blue)}
@media (max-width:860px){.build{grid-template-columns:minmax(0,1fr)}}

/* ---------- Ladder ---------- */
.ladder{list-style:none;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px;align-items:end;counter-reset:rung}
.rung{position:relative;display:flex;flex-direction:column;background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:22px 20px 20px;text-decoration:none;transition:transform .3s var(--ease),border-color .2s,box-shadow .3s}
.rung:hover{transform:translateY(-4px);border-color:var(--blue);box-shadow:0 24px 40px -28px rgba(36,80,255,.55)}
.ladder li:nth-child(1) .rung{min-height:330px}
.ladder li:nth-child(2) .rung{min-height:370px}
.ladder li:nth-child(3) .rung{min-height:410px}
.ladder li:nth-child(4) .rung{min-height:450px}
.ladder li:nth-child(5) .rung{min-height:490px}
.rung .step{display:flex;justify-content:space-between;align-items:center;font-size:var(--fs-xs);font-weight:700;color:var(--muted);margin-bottom:14px}
.rung .step span:first-child{display:inline-grid;place-items:center;width:28px;height:28px;border-radius:50%;background:var(--paper);color:var(--ink);font-size:.85rem}
.rung h3{font-size:1.2rem;line-height:1.25;margin-bottom:8px}
.rung p{font-size:.95rem;line-height:1.45;color:var(--muted);margin:0 0 14px}
.rung .solves{font-size:.85rem;line-height:1.4;margin-top:auto;padding-top:14px;border-top:1px dashed var(--line)}
.rung .solves b{display:block;font-size:.75rem;color:var(--muted)}
.price{margin-top:14px;font-family:var(--f-display);font-weight:800;font-size:2.4rem;line-height:1;color:var(--ink)}
.price small{font-family:var(--f-text);font-weight:600;font-size:.8rem;color:var(--muted);margin-right:4px}
.price i{font-style:normal;font-family:var(--f-text);font-weight:600;font-size:.85rem;color:var(--muted)}
.ladder li:last-child .rung{background:var(--night);color:#fff;border-color:var(--night)}
.ladder li:last-child .rung p,.ladder li:last-child .rung .solves b,.ladder li:last-child .price small,.ladder li:last-child .price i,.ladder li:last-child .step{color:var(--muted-d)}
.ladder li:last-child .price{color:var(--cyan)}
.ladder li:last-child .rung .step span:first-child{background:var(--night-3);color:#fff}
.ladder li:last-child .rung .solves{border-color:var(--line-d)}
.ladder-foot{display:flex;flex-wrap:wrap;gap:20px 40px;align-items:center;justify-content:space-between;margin-top:30px}
.ladder-foot p{margin:0;max-width:70ch;color:var(--muted)}
@media (max-width:1080px){.ladder{grid-template-columns:repeat(2,minmax(0,1fr))}.ladder li .rung{min-height:0!important}.ladder li:last-child{grid-column:1/-1}}
@media (max-width:560px){.ladder{grid-template-columns:minmax(0,1fr)}}

/* ---------- Services scroller ---------- */
.svc-scroll{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(300px,380px);gap:18px;overflow-x:auto;scroll-snap-type:x mandatory;padding:4px var(--gut) 24px;margin:0 calc(var(--gut) * -1);scrollbar-width:thin;scrollbar-color:var(--night-3) transparent;overscroll-behavior-x:contain}
.svc{scroll-snap-align:start;display:flex;flex-direction:column;background:var(--night-2);border:1px solid var(--line-d);border-radius:var(--r-lg);overflow:hidden;color:#fff;text-decoration:none;transition:border-color .25s,transform .3s var(--ease)}
.svc:hover{border-color:rgba(25,211,247,.6);transform:translateY(-3px)}
.svc.active{border-color:var(--cyan)}
.mock{height:236px;padding:18px;background:linear-gradient(180deg,#0E2266,#0B1E5B);border-bottom:1px solid var(--line-d);font-size:.8rem;overflow:hidden}
.svc-b{padding:22px 22px 24px;display:flex;flex-direction:column;flex:1}
.svc-b h3{font-family:var(--f-display);font-weight:800;font-size:2rem;line-height:1;margin-bottom:6px}
.svc-b .from{font-size:var(--fs-sm);color:var(--cyan);font-weight:700;margin-bottom:12px}
.svc-b p{color:#D2DBF7;font-size:1rem;line-height:1.5}
.svc-b ul{list-style:none;display:grid;gap:7px;margin:4px 0 18px;font-size:.95rem;color:#D2DBF7}
.svc-b li{display:flex;gap:10px}
.svc-b li::before{content:"";flex:0 0 7px;height:7px;margin-top:.55em;border-radius:2px;background:var(--mint)}
.svc-b .more{margin-top:auto;font-weight:700;color:var(--cyan)}
.svc-tabs{display:flex;gap:6px;flex-wrap:wrap;margin-top:8px}
.svc-tabs button{height:38px;padding:0 14px;border-radius:999px;border:1px solid var(--line-d);background:none;color:var(--muted-d);font-weight:600;font-size:.9rem;cursor:pointer}
.svc-tabs button[aria-selected="true"]{background:#fff;color:var(--ink);border-color:#fff}
/* mini mockups */
.m-row{display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:10px;background:rgba(255,255,255,.06);margin-bottom:7px;color:#E7EDFF}
.m-row .r{margin-left:auto;color:var(--muted-d);font-variant-numeric:tabular-nums}
.m-row.hi{background:rgba(25,211,247,.14);box-shadow:inset 0 0 0 1px rgba(25,211,247,.5)}
.m-bar{height:6px;border-radius:3px;background:rgba(255,255,255,.1);overflow:hidden;margin-top:4px}
.m-bar span{display:block;height:100%;background:var(--cyan);border-radius:3px}
.m-h{display:flex;justify-content:space-between;color:var(--muted-d);font-weight:700;margin-bottom:10px;font-size:.75rem}
.m-chk{width:16px;height:16px;border-radius:50%;background:var(--cyan);display:grid;place-items:center;color:var(--ink);flex:0 0 16px}
.m-chk svg{width:9px;height:9px}
.m-score{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:10px}
.m-score div{border-radius:10px;background:rgba(255,255,255,.06);padding:10px;text-align:center}
.m-score b{display:block;font-family:var(--f-display);font-size:1.9rem;line-height:1;color:var(--mint)}
.m-doc{display:grid;grid-template-columns:1fr 1.2fr;gap:10px}
.m-paper{background:#E9EEFA;border-radius:6px;padding:10px;color:#56627F}
.m-paper i{display:block;height:5px;border-radius:3px;background:#C5CEE3;margin:6px 0}
@media (prefers-reduced-motion:no-preference){
  .svc.active .m-row,.svc:hover .m-row{animation:rowin .5s var(--ease) both}
  .svc.active .m-row:nth-child(3),.svc:hover .m-row:nth-child(3){animation-delay:.08s}
  .svc.active .m-row:nth-child(4),.svc:hover .m-row:nth-child(4){animation-delay:.16s}
  .svc.active .m-row:nth-child(5),.svc:hover .m-row:nth-child(5){animation-delay:.24s}
}
@keyframes rowin{from{opacity:0;transform:translateX(-8px)}to{opacity:1;transform:none}}

/* ---------- Process ---------- */
.process{list-style:none;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:0;counter-reset:p}
.process li{position:relative;padding:0 26px 0 0}
.process li + li{padding-left:26px;border-left:1px solid var(--line)}
.process .n{font-family:var(--f-display);font-weight:800;font-size:3.4rem;line-height:1;color:var(--blue)}
.process h3{font-size:1.2rem;margin:10px 0 8px}
.process p{color:var(--muted);font-size:1rem;margin:0}
.process .dur{display:inline-block;margin-top:12px;font-size:var(--fs-xs);font-weight:700;padding:4px 9px;border-radius:6px;background:var(--mint);color:#0F3D3A}
@media (max-width:900px){.process{grid-template-columns:repeat(2,minmax(0,1fr));gap:32px 0}.process li:nth-child(3){padding-left:0;border-left:0}}
@media (max-width:560px){.process{grid-template-columns:minmax(0,1fr)}.process li,.process li + li{padding:0;border-left:0}}

/* ---------- Team ---------- */
.team{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(18px,3vw,32px);max-width:860px}
.person figure{margin:0}
.person .ph{position:relative;border-radius:var(--r-lg);overflow:hidden;background:#C9CCD3;aspect-ratio:4/5}
.person .ph img{width:100%;height:100%;object-fit:cover}
.person .ph::after{content:"";position:absolute;left:0;right:0;bottom:0;height:12px;background:repeating-linear-gradient(90deg,var(--mint) 0 18px,var(--night) 18px 30px)}
.person h3{font-family:var(--f-display);font-weight:800;font-size:2.2rem;line-height:1;margin-top:18px}
.person .role{font-weight:700;color:var(--blue);margin:6px 0 8px;font-size:1rem}
.dark .person .role{color:var(--cyan)}
.person p{color:var(--muted);font-size:1rem;margin:0;max-width:42ch}
@media (max-width:560px){.team{grid-template-columns:minmax(0,1fr)}}

/* ---------- Guides / tools ---------- */
.gtiles{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}
.gtile{display:flex;flex-direction:column;gap:12px;padding:26px;border-radius:var(--r);background:#fff;border:1px solid var(--line);text-decoration:none;transition:border-color .2s,transform .3s var(--ease)}
.gtile:hover{border-color:var(--blue);transform:translateY(-3px)}
.gtile .t{font-size:var(--fs-xs);font-weight:700;color:var(--muted)}
.gtile h3{font-size:1.35rem;line-height:1.25}
.gtile .big{font-size:3.2rem}
.gtile p{margin:0;color:var(--muted);font-size:1rem}
.gtile .more{margin-top:auto;font-weight:700;color:var(--blue)}
.gtile.feat{background:var(--night);border-color:var(--night);color:#fff}
.gtile.feat p,.gtile.feat .t{color:var(--muted-d)}
.gtile.feat .big,.gtile.feat .more{color:var(--cyan)}
@media (max-width:900px){.gtiles{grid-template-columns:minmax(0,1fr)}}

/* ---------- FAQ ---------- */
.faq{border-top:1px solid var(--line);max-width:900px}
.faq details{border-bottom:1px solid var(--line)}
.faq summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;gap:24px;padding:22px 0;font-weight:700;font-size:1.15rem;line-height:1.35}
.faq summary::-webkit-details-marker{display:none}
.faq summary i{flex:0 0 28px;height:28px;border-radius:50%;border:1.5px solid var(--line);position:relative;transition:.3s var(--ease)}
.faq summary i::before,.faq summary i::after{content:"";position:absolute;left:50%;top:50%;width:12px;height:2px;background:currentColor;transform:translate(-50%,-50%)}
.faq summary i::after{transform:translate(-50%,-50%) rotate(90deg);transition:.3s var(--ease)}
.faq details[open] summary i{background:var(--blue);border-color:var(--blue);color:#fff}
.faq details[open] summary i::after{transform:translate(-50%,-50%) rotate(0)}
.faq .a{padding:0 0 24px;color:var(--muted);max-width:72ch}
.faq .a p:last-child{margin:0}
.dark .faq,.dark .faq details{border-color:var(--line-d)}
.dark .faq .a{color:var(--muted-d)}

/* ---------- Final CTA ---------- */
.cta{position:relative;overflow:hidden}
.cta::before{content:"";position:absolute;left:-10%;top:-30%;width:70%;height:120%;background:radial-gradient(closest-side,rgba(36,80,255,.5),transparent 70%);pointer-events:none}
.cta-grid{position:relative;display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);gap:clamp(32px,5vw,72px);align-items:start}
.cta-rot{display:block;font-size:clamp(2.3rem,4.4vw,3.9rem);line-height:.98;min-height:calc(clamp(2.3rem,4.4vw,3.9rem) * .98 * 4)}
.cta-rot .rot-txt .b2{color:var(--cyan);display:block}
.cta-lede{color:#C9D4F5;max-width:46ch;margin:22px 0 22px}
.faces{display:flex;align-items:center;gap:14px;margin-top:18px;font-size:var(--fs-sm);color:#C9D4F5}
.faces span{display:flex}
.faces img{width:48px;height:48px;border-radius:50%;border:2px solid var(--night);object-fit:cover}
.faces img + img{margin-left:-12px}
.slots{background:#fff;color:var(--ink);border-radius:var(--r-lg);padding:24px}
.slots h3{font-size:1.15rem;display:flex;justify-content:space-between;gap:12px;align-items:baseline}
.slots h3 small{font-weight:600;color:var(--muted);font-size:var(--fs-xs)}
.slot-days{display:flex;gap:6px;margin:16px 0 12px;overflow-x:auto;padding-bottom:4px}
.slot-days button{flex:0 0 auto;display:flex;flex-direction:column;align-items:center;min-width:62px;padding:8px 6px;border-radius:12px;border:1px solid var(--line);background:#fff;cursor:pointer;font-size:.8rem;color:var(--muted);line-height:1.25}
.slot-days button b{font-size:1.25rem;color:var(--ink);font-family:var(--f-display);font-weight:800}
.slot-days button[aria-pressed="true"]{border-color:var(--blue);background:var(--blue);color:#DCE4FF}
.slot-days button[aria-pressed="true"] b{color:#fff}
.slot-times{display:grid;grid-template-columns:repeat(4,1fr);gap:6px}
.slot-times a,.slot-times button{display:grid;place-items:center;height:40px;border-radius:10px;border:1px solid var(--line);font-weight:700;font-size:.95rem;text-decoration:none;background:#fff;cursor:pointer;font-variant-numeric:tabular-nums}
.slot-times a:hover,.slot-times button:hover,.slot-times button[aria-pressed="true"]{border-color:var(--blue);color:var(--blue);background:#EEF2FF}
.slots .contact-row{display:flex;flex-wrap:wrap;gap:8px 18px;margin-top:18px;padding-top:16px;border-top:1px solid var(--line);font-size:.95rem}
.slots .contact-row a{text-decoration:none;font-weight:700}
.slots .contact-row a span{display:block;font-size:.75rem;font-weight:600;color:var(--muted)}
.cta-dog{position:absolute;right:clamp(-30px,2vw,40px);bottom:-14px;width:clamp(140px,16vw,220px);opacity:.95;pointer-events:none}
@media (max-width:980px){.cta-grid{grid-template-columns:minmax(0,1fr)}.cta-dog{display:none}}

/* ---------- Page hero (inner pages) ---------- */
.phero{position:relative;background:var(--night);color:#fff;padding:clamp(40px,6vw,80px) 0 clamp(56px,7vw,96px);overflow:hidden}
.phero::before{content:"";position:absolute;inset:-40% -20% auto 40%;height:140%;background:radial-gradient(closest-side,rgba(36,80,255,.45),transparent 70%);pointer-events:none}
.phero .wrap{position:relative}
.crumbs{display:flex;flex-wrap:wrap;gap:6px;list-style:none;font-size:var(--fs-sm);color:var(--muted-d);margin-bottom:22px}
.crumbs li + li::before{content:"/";margin-right:6px;opacity:.6}
.crumbs a{text-decoration:none}
.crumbs a:hover{color:#fff}
.phero h1{max-width:18ch}
.phero .lede{color:#C9D4F5;margin-top:22px;max-width:52ch}
.phero .hero-ctas{margin-top:30px}
.phero-grid{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,.7fr);gap:40px;align-items:end}
.phero-aside{background:rgba(255,255,255,.06);border:1px solid var(--line-d);border-radius:var(--r);padding:22px}
.phero-aside .price{color:#fff}
.phero-aside .price small,.phero-aside .price i{color:var(--muted-d)}
.phero-aside dl{margin:14px 0 0;display:grid;grid-template-columns:auto 1fr;gap:8px 16px;font-size:.95rem}
.phero-aside dt{color:var(--muted-d)}
.phero-aside dd{margin:0;font-weight:600}
@media (max-width:900px){.phero-grid{grid-template-columns:minmax(0,1fr)}}

/* ---------- Generic content blocks ---------- */
.split{display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);gap:clamp(28px,5vw,72px);align-items:start}
.split > :first-child{position:sticky;top:110px}
@media (max-width:900px){.split{grid-template-columns:minmax(0,1fr)}.split > :first-child{position:static}}
.ticks{list-style:none;display:grid;gap:14px}
.ticks li{display:grid;grid-template-columns:26px 1fr;gap:12px;align-items:start}
.ticks li::before{content:"";width:22px;height:22px;margin-top:2px;border-radius:50%;background:var(--cyan) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230E1630' stroke-width='3.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12.5l4.5 4.5L19 7.5'/%3E%3C/svg%3E") center/12px no-repeat}
.ticks b{display:block}
.ticks span{color:var(--muted);font-size:1rem}
.dark .ticks span{color:var(--muted-d)}
.cols{display:grid;grid-template-columns:repeat(var(--n,3),minmax(0,1fr));gap:18px}
@media (max-width:980px){.cols{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:620px){.cols{grid-template-columns:minmax(0,1fr)}}
.box{background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:26px}
.box h3{font-size:1.25rem;line-height:1.3;margin-bottom:10px}
.box p{color:var(--muted);font-size:1rem;margin:0 0 .8em}
.box p:last-child{margin:0}
.box .ticks{margin-top:10px}
.box .ticks li{font-size:1rem}
.dark .box{background:var(--night-2);border-color:var(--line-d)}
.dark .box p{color:var(--muted-d)}
.box.stripe{border-top:0;position:relative;overflow:hidden}
.box.stripe::before{content:"";position:absolute;left:0;right:0;top:0;height:6px;background:repeating-linear-gradient(90deg,var(--mint) 0 14px,var(--night) 14px 24px)}
a.box{text-decoration:none;transition:border-color .2s,transform .3s var(--ease)}
a.box:hover{border-color:var(--blue);transform:translateY(-3px)}
a.box .more{display:inline-block;margin-top:12px;font-weight:700;color:var(--blue)}
.pill{display:inline-flex;align-items:center;height:26px;padding:0 10px;border-radius:999px;font-size:.78rem;font-weight:700;background:var(--paper);color:var(--muted);border:1px solid var(--line)}
.pill.tan{background:#FBF1DE;color:#7A5212;border-color:#F0D9AE}
.pill.mint{background:#E4F5F4;color:#0F4D49;border-color:#C5E9E6}
.dark .pill{background:rgba(255,255,255,.08);color:#DCE4FF;border-color:var(--line-d)}

.table-wrap{overflow-x:auto;border:1px solid var(--line);border-radius:var(--r);background:#fff}
table{border-collapse:collapse;width:100%;font-size:1rem}
th,td{text-align:left;padding:14px 18px;border-bottom:1px solid var(--line);vertical-align:top}
th{font-size:var(--fs-sm);color:var(--muted);font-weight:700;background:var(--paper)}
tr:last-child td{border-bottom:0}
td.r,th.r{text-align:right;white-space:nowrap}

/* Prose (guides, legal) */
.prose{max-width:70ch;font-size:1.125rem}
.prose h2{font-family:var(--f-display);font-weight:800;font-size:clamp(2rem,3.2vw,2.6rem);line-height:1.02;margin:1.8em 0 .5em}
.prose h3{font-size:1.3rem;margin:1.6em 0 .4em}
.prose p,.prose li{color:#2A3557}
.prose ul,.prose ol{padding-left:1.25em;margin:0 0 1.2em}
.prose li{margin:.35em 0}
.prose a{color:var(--blue)}
.prose blockquote{margin:1.5em 0;padding:18px 22px;border-left:4px solid var(--cyan);background:#fff;border-radius:0 var(--r-sm) var(--r-sm) 0}
.prose .table-wrap{margin:1.4em 0}
.prose hr{border:0;border-top:1px solid var(--line);margin:2.4em 0}
.prose .callout{background:var(--night);color:#fff;border-radius:var(--r);padding:24px;margin:2em 0}
.prose .callout p{color:#DCE4FF;margin:0 0 12px}
.toc{position:sticky;top:110px;font-size:var(--fs-sm)}
.toc b{display:block;margin-bottom:10px}
.toc ol{list-style:none;display:grid;gap:8px;border-left:2px solid var(--line);padding-left:14px}
.toc a{text-decoration:none;color:var(--muted)}
.toc a:hover{color:var(--blue)}
.article{display:grid;grid-template-columns:240px minmax(0,1fr);gap:clamp(28px,5vw,72px)}
@media (max-width:980px){.article{grid-template-columns:minmax(0,1fr)}.toc{position:static}}
.meta-line{display:flex;flex-wrap:wrap;gap:8px 18px;margin-top:20px;font-size:var(--fs-sm);color:var(--muted-d)}
.sources{font-size:var(--fs-sm);color:var(--muted)}
.sources li{margin:.3em 0}

/* Forms */
.form{display:grid;gap:16px}
.form .row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
@media (max-width:620px){.form .row{grid-template-columns:minmax(0,1fr)}}
.field label{display:block;font-weight:700;font-size:.95rem;margin-bottom:6px}
.field label span{font-weight:500;color:var(--muted)}
.field input,.field select,.field textarea{width:100%;min-height:52px;padding:12px 16px;border-radius:12px;border:1.5px solid var(--line);background:#fff;font-size:1.0625rem;transition:border-color .2s,box-shadow .2s}
.field textarea{min-height:140px;resize:vertical}
.field input:focus,.field select:focus,.field textarea:focus{outline:0;border-color:var(--blue);box-shadow:0 0 0 4px rgba(36,80,255,.15)}
.field input:user-invalid,.field textarea:user-invalid{border-color:var(--err)}
.check{display:flex;gap:12px;align-items:flex-start;font-size:.95rem;color:var(--muted)}
.check input{width:20px;height:20px;margin-top:3px;accent-color:var(--blue);flex:0 0 20px}
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.form-card{background:#fff;border:1px solid var(--line);border-radius:var(--r-lg);padding:clamp(22px,3vw,36px)}
.alert{padding:14px 18px;border-radius:12px;background:#FDECEE;color:#8A1C27;font-weight:600}
.slot-pick .slot-times{grid-template-columns:repeat(auto-fill,minmax(84px,1fr))}
.contact-list{list-style:none;display:grid;gap:18px}
.contact-list li{display:grid;grid-template-columns:44px 1fr;gap:14px;align-items:start}
.contact-list i{width:44px;height:44px;border-radius:12px;display:grid;place-items:center;background:var(--paper);color:var(--blue)}
.contact-list i svg{width:20px;height:20px}
.contact-list small{display:block;color:var(--muted);font-size:var(--fs-sm)}
.contact-list a{font-weight:700;text-decoration:none}

/* Calculator */
.calc{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);gap:24px;align-items:start}
@media (max-width:900px){.calc{grid-template-columns:minmax(0,1fr)}}
.calc-in{display:grid;gap:22px}
.rng label{display:flex;justify-content:space-between;gap:12px;font-weight:700;margin-bottom:8px}
.rng output{font-variant-numeric:tabular-nums;color:var(--blue)}
.rng input[type=range]{width:100%;accent-color:var(--blue);height:28px}
.rng small{display:block;color:var(--muted);font-size:var(--fs-xs);margin-top:2px}
.calc-out{position:sticky;top:110px;background:var(--night);color:#fff;border-radius:var(--r-lg);padding:28px}
.calc-out .big{color:var(--cyan);font-size:clamp(3.6rem,7vw,5.2rem)}
.calc-out dl{display:grid;grid-template-columns:1fr auto;gap:8px 16px;margin:20px 0 0;padding-top:16px;border-top:1px solid var(--line-d);font-size:.95rem}
.calc-out dt{color:var(--muted-d)}
.calc-out dd{margin:0;font-weight:700;text-align:right;font-variant-numeric:tabular-nums}
.seg{display:inline-flex;gap:4px;padding:4px;border-radius:999px;background:#fff;border:1px solid var(--line);flex-wrap:wrap}
.seg button{height:38px;padding:0 14px;border-radius:999px;border:0;background:none;font-weight:700;cursor:pointer;color:var(--muted)}
.seg button[aria-pressed="true"]{background:var(--blue);color:#fff}

/* Industries */
.ind{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:24px 56px;padding:40px 0;border-top:1px solid var(--line)}
.ind h2{font-family:var(--f-display);font-weight:800;font-size:clamp(2.2rem,3.6vw,3rem);line-height:1}
.ind .pain{margin-top:12px;color:var(--muted);max-width:40ch}
@media (max-width:860px){.ind{grid-template-columns:minmax(0,1fr)}}
.chips{display:flex;flex-wrap:wrap;gap:8px}
.chips a{display:inline-flex;align-items:center;height:40px;padding:0 16px;border-radius:999px;border:1px solid var(--line-d);color:#E6ECFF;text-decoration:none;font-weight:600;font-size:.95rem}
.chips a:hover{background:#fff;color:var(--ink)}
.white .chips a,.sec:not(.dark) .chips a{border-color:var(--line);color:var(--ink)}
.white .chips a:hover,.sec:not(.dark) .chips a:hover{background:var(--night);color:#fff;border-color:var(--night)}

/* ---------- Footer ---------- */
.ftr{background:#081648;color:#C9D4F5;padding:clamp(56px,7vw,88px) 0 28px;font-size:.975rem}
.ftr-grid{display:grid;grid-template-columns:minmax(0,1.4fr) repeat(3,minmax(0,1fr));gap:36px}
.ftr .brand{margin-bottom:16px}
.ftr p{max-width:38ch}
.ftr h2{font-size:.95rem;color:#fff;margin-bottom:14px}
.ftr ul{list-style:none;display:grid;gap:8px}
.ftr a{text-decoration:none}
.ftr a:hover{color:#fff;text-decoration:underline}
.ftr-bot{display:flex;flex-wrap:wrap;gap:12px 24px;justify-content:space-between;margin-top:48px;padding-top:22px;border-top:1px solid var(--line-d);font-size:var(--fs-xs);color:#8FA0D6}
.ftr-bot nav{display:flex;flex-wrap:wrap;gap:6px 18px}
.ftr-bot button{background:none;border:0;padding:0;color:inherit;cursor:pointer;font-size:inherit;text-decoration:underline}
@media (max-width:900px){.ftr-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.ftr-grid > :first-child{grid-column:1/-1}}

/* ---------- Contact dock ---------- */
.dock{position:fixed;right:18px;bottom:18px;z-index:70;display:flex;flex-direction:column;align-items:flex-end;gap:10px}
.dock-btn{display:inline-flex;align-items:center;gap:10px;height:56px;padding:0 20px 0 8px;border-radius:999px;border:0;background:var(--cyan);color:var(--ink);font-weight:800;cursor:pointer;box-shadow:0 16px 34px -12px rgba(11,30,91,.55)}
.dock-btn img{width:44px;height:44px;border-radius:50%;background:var(--night);object-fit:contain;padding:4px}
.dock-list{display:grid;gap:8px;opacity:0;visibility:hidden;transform:translateY(8px);transition:.25s var(--ease)}
.dock.open .dock-list{opacity:1;visibility:visible;transform:none}
.dock-list a{display:flex;align-items:center;gap:10px;height:48px;padding:0 18px;border-radius:999px;background:#fff;color:var(--ink);text-decoration:none;font-weight:700;box-shadow:0 10px 26px -12px rgba(11,30,91,.45)}
.dock-list a svg{width:18px;height:18px;color:var(--blue)}
@media (max-width:560px){.dock-btn span{display:none}.dock-btn{padding:0 6px}}

/* ---------- Cookie bar ---------- */
.cookie{position:fixed;left:18px;bottom:18px;z-index:80;max-width:620px;display:flex;align-items:center;gap:14px 18px;background:#fff;color:var(--ink);border-radius:var(--r);padding:14px 16px;box-shadow:0 30px 60px -20px rgba(8,20,70,.5);border:1px solid var(--line)}
.cookie[hidden]{display:none}
.cookie p{font-size:.875rem;line-height:1.45;margin:0;color:var(--muted)}
.cookie div{display:flex;gap:8px;flex:0 0 auto}
@media (max-width:700px){.cookie{left:10px;right:10px;bottom:82px;max-width:none;flex-direction:column;align-items:stretch}.cookie div .btn{flex:1}}

/* ---------- 404 ---------- */
.nf{min-height:70vh;display:grid;place-items:center;text-align:center}
.nf img{width:min(340px,80vw);margin:0 auto 24px}

/* Count-up / reveal (only numbers animate on view) */
[data-count]{font-variant-numeric:tabular-nums}

@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}
}
@media print{.hdr,.dock,.cookie,.ftr,.mnav{display:none!important}.dark,.hero,.phero{background:#fff;color:#000}}

/* Solution detail list */
.sol{display:grid;grid-template-columns:150px 1fr;gap:14px 24px;margin:0}
.sol dt{font-weight:700;font-size:var(--fs-sm);color:var(--muted);padding-top:2px}
.sol dd{margin:0}
.sol em{color:var(--muted)}
@media (max-width:560px){.sol{grid-template-columns:minmax(0,1fr);gap:4px}.sol dd{margin-bottom:12px}}
button.chan{background:none;border:0;padding:0;cursor:pointer;font:inherit;font-size:.75rem;font-weight:600}
button.chan:hover i{border-color:rgba(25,211,247,.6)}
.form > *{min-width:0}
.faces span{flex:0 0 auto}.faces img{max-width:none;flex:0 0 48px}
