/* Præcis: the lab. Cool mineral canvas, ink line-art, one calibration blue. */
@font-face{font-family:"Schibsted Grotesk";src:url(/assets/fonts/schibsted-grotesk-latin-500-normal.woff2) format("woff2");font-weight:500;font-display:swap}
@font-face{font-family:"Schibsted Grotesk";src:url(/assets/fonts/schibsted-grotesk-latin-700-normal.woff2) format("woff2");font-weight:700;font-display:swap}
@font-face{font-family:"Public Sans";src:url(/assets/fonts/public-sans-latin-400-normal.woff2) format("woff2");font-weight:400;font-display:swap}
@font-face{font-family:"Public Sans";src:url(/assets/fonts/public-sans-latin-600-normal.woff2) format("woff2");font-weight:600;font-display:swap}
@font-face{font-family:"JetBrains Mono";src:url(/assets/fonts/jetbrains-mono-latin-400-normal.woff2) format("woff2");font-weight:400;font-display:swap}

:root{
  --canvas:#eef2f4;--panel:#f9fbfc;--ink:#0f1b24;--text-2:#4a5a66;
  --accent:#1f4fe0;--accent-hover:#173db3;--accent-muted:rgba(31,79,224,.12);--on-accent:#fff;
  --line:#cfd8de;--line-strong:#8796a1;
  --f-display:"Schibsted Grotesk",system-ui,sans-serif;--f-body:"Public Sans",system-ui,sans-serif;--f-mono:"JetBrains Mono",ui-monospace,monospace;
  --w-display:700;--ls-display:-.025em;
  --r-btn:8px;--r-card:6px;--r-chip:6px;--r-input:6px;
  --nav-bg:rgba(238,242,244,.84);--nav-shadow:0 1px 0 #cfd8de;
  --card-shadow:0 0 0 1px #d6dee3;--card-shadow-hover:0 0 0 1.5px #0f1b24;
  --chip-bg:#f9fbfc;--chip-line:#b9c5cd;--input-bg:#fff;--input-line:#b9c5cd;
  --tag-line:#0f1b24;--tag-bg:rgba(249,251,252,.92);--tag-shadow:0 0 0 1px #cfd8de;--floor:rgba(15,27,36,.16);
  --gap:56px;
}
/* Baldvin Repair: site stylesheet (Præcis direction). Tokens and fonts first, then structure. */
*,*::before,*::after{box-sizing:border-box}
:root{--ease-out:cubic-bezier(.22,1,.36,1);--ease-io:cubic-bezier(.65,0,.35,1);--r-btn:10px;--r-card:14px;--gap:58px}
html{overflow-x:hidden;overflow-x:clip;scroll-behavior:smooth;-webkit-text-size-adjust:100%;scroll-padding-top:84px}
body{margin:0;overflow-x:hidden;overflow-x:clip;background:var(--canvas);color:var(--ink);font-family:var(--f-body);font-size:17px;line-height:1.6;-webkit-font-smoothing:antialiased;animation:pagein .7s var(--ease-out) both}
@keyframes pagein{from{opacity:0}to{opacity:1}}
img,svg{display:block;max-width:100%}
a{color:inherit}
h1,h2,h3{font-family:var(--f-display);font-weight:var(--w-display,700);line-height:1.05;margin:0;letter-spacing:var(--ls-display,-.02em)}
p{margin:0}
.sr{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.skip{position:absolute;left:12px;top:-80px;z-index:100;background:var(--ink);color:var(--canvas);padding:10px 16px;border-radius:8px;text-decoration:none;transition:top .3s var(--ease-out)}
.skip:focus{top:12px}
:focus-visible{outline:2px solid var(--focus,var(--accent));outline-offset:3px;border-radius:4px}
.wrap{width:min(1180px,calc(100% - 32px));margin-inline:auto}
.mono{font-family:var(--f-mono);font-size:13px;letter-spacing:.04em}
.kicker{font-family:var(--f-mono);font-size:13px;letter-spacing:.08em;text-transform:uppercase;color:var(--text-2)}
.env{position:fixed;inset:0;z-index:-1;pointer-events:none;overflow:hidden}

/* ---------- Nav ---------- */
.nav{position:fixed;top:0;left:0;right:0;z-index:50;transition:background-color .4s,box-shadow .4s}
.nav.scrolled{background:var(--nav-bg);box-shadow:var(--nav-shadow);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px)}
.nav .wrap{display:flex;align-items:center;justify-content:space-between;height:70px;gap:24px}
.logo{display:inline-flex;align-items:center;gap:10px;text-decoration:none;font-family:var(--f-display);font-weight:var(--w-display,700);font-size:20px;letter-spacing:-.01em;white-space:nowrap}
.logo svg{width:32px;height:32px;flex:none}
.logo .it{font-family:var(--f-mono);font-size:.62em;letter-spacing:.06em;padding:2px 6px;border-radius:5px;background:var(--ink);color:var(--canvas);transform:translateY(-1px)}
.nav ul{display:flex;gap:28px;list-style:none;margin:0;padding:0}
.nav ul a{text-decoration:none;font-size:15px;color:var(--text-2);transition:color .25s}
.nav ul a:hover{color:var(--ink)}
@media (max-width:900px){.nav ul{display:none}}

/* ---------- Buttons ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;padding:14px 24px;border-radius:var(--r-btn);font:inherit;font-weight:600;font-size:16px;text-decoration:none;border:0;cursor:pointer;white-space:nowrap;transition:transform .35s var(--ease-out),background-color .3s,box-shadow .3s,color .3s}
.btn svg{width:18px;height:18px;transition:transform .35s var(--ease-out)}
.btn:hover svg{transform:translateX(3px)}
.btn-primary{background:var(--accent);color:var(--on-accent)}
.btn-primary:hover{background:var(--accent-hover);transform:translateY(-2px)}
.btn-ghost{background:transparent;color:var(--ink);box-shadow:inset 0 0 0 1.5px var(--line-strong)}
.btn-ghost:hover{box-shadow:inset 0 0 0 1.5px var(--ink);transform:translateY(-2px)}
.btn-sm{padding:10px 18px;font-size:15px}
@media (pointer:coarse){.btn{min-height:44px}}
@media (max-width:440px){.nav .btn-sm{padding:9px 13px;font-size:13px}.logo{font-size:18px}}

/* ---------- Hero: pinned exploded-device journey ---------- */
.hero{position:relative;height:500vh}
.stage{position:sticky;top:0;height:100vh;height:100svh;overflow:hidden}
.device{position:absolute;right:max(3vw,calc((100vw - 1180px)/2 - 10px));top:52%;width:min(44vw,560px);height:min(80vh,640px);transform:translateY(-50%);perspective:1700px;perspective-origin:50% 30%}
.stack{position:absolute;left:33%;top:44%;width:min(15vw,190px);aspect-ratio:200/410;transform-style:preserve-3d;transform:translate(-50%,-50%) rotateX(56deg) rotateZ(calc(var(--rz,-32) * 1deg))}
.layer{position:absolute;inset:0;transform-style:preserve-3d;transform:translateZ(calc(var(--i) * 7px + var(--i) * var(--e,0) * var(--gap)))}
.layer>svg{width:100%;height:100%;overflow:visible}
.anchor{position:absolute;left:95%;top:var(--ty,50%);width:2px;height:2px;pointer-events:none}
.tags{position:absolute;inset:0;pointer-events:none}
.tag{position:absolute;left:0;top:0;opacity:clamp(0,(var(--e,0) - .38) * 4,1);display:flex;align-items:center;white-space:nowrap;will-change:transform}
.tag::before{content:"";flex:none;width:7px;height:7px;margin:-3.5px 0 0 -3.5px;border-radius:50%;background:var(--tag-line);position:absolute;left:0;top:50%}
.tag::after{content:"";position:absolute;left:0;top:50%;width:var(--lw,40px);height:1.5px;background:var(--tag-line);transform-origin:left center;transform:scaleX(clamp(0,(var(--e,0) - .38) * 3,1))}
.tag span{margin-left:calc(var(--lw,40px) + 8px)}
.tag b{font-family:var(--f-body);font-weight:600;font-size:14px;color:var(--ink)}
.tag i{font-style:normal;font-family:var(--f-mono);font-size:11px;letter-spacing:.04em;color:var(--text-2)}
.tag span{display:flex;flex-direction:column;line-height:1.25;padding:6px 10px;border-radius:8px;background:var(--tag-bg);box-shadow:var(--tag-shadow)}
.shadow-floor{position:absolute;left:33%;top:72%;width:min(26vw,320px);height:60px;transform:translate(-50%,-50%);border-radius:50%;background:radial-gradient(closest-side,var(--floor),transparent);opacity:calc(1 - var(--e,0) * .55)}

.bands{position:absolute;left:max(16px,calc((100vw - 1180px)/2));top:50%;width:min(640px,47vw);height:0}
.band{position:absolute;left:0;top:0;width:100%;transform:translateY(-50%);opacity:0;will-change:opacity}
.band-1{opacity:1}
.band h1,.band h2{font-size:clamp(40px,4.9vw,70px)}
.band .lede{margin-top:22px;font-size:clamp(17px,1.35vw,20px);max-width:36ch;color:var(--text-2)}
.band .actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:30px}
.band .kicker{display:block;margin-bottom:18px}
.band .sub{opacity:var(--ks,1)}
.band-1 .sub,.band-1 .actions{opacity:clamp(0,(var(--k,0) - .55) * 3,1)}
.band-4 .lede{opacity:clamp(0,(var(--k,0) - .62) * 4,1)}
.band-4 .actions{opacity:clamp(0,(var(--k,0) - .76) * 5,1)}
.band-2 .lede,.band-3 .lede{opacity:clamp(0,(var(--k,0) - .5) * 3,1)}
.split .w{display:inline-block;will-change:transform,opacity}
.cue{position:absolute;left:50%;bottom:28px;transform:translateX(-50%);display:flex;flex-direction:column;align-items:center;gap:8px;color:var(--text-2);opacity:calc(1 - var(--p,0) * 14);pointer-events:none}
.cue svg{width:20px;height:20px;animation:cue 2.4s var(--ease-io) infinite}
@keyframes cue{0%,100%{transform:translateY(0)}50%{transform:translateY(6px)}}
@media (max-height:560px){.cue,.ruler,.readout{display:none}}

/* The five static-hero gates (must match GATES in front.js exactly) */
@media (max-width: 720px), (orientation: portrait) and (max-width: 1024px), (orientation: portrait) and (pointer: coarse), (orientation: landscape) and (pointer: coarse) and (max-height: 560px), (prefers-reduced-motion: reduce){
  .hero{height:auto}
  .stage{position:relative;height:auto;overflow:visible;display:flex;flex-direction:column;padding:104px 0 40px}
  .bands{position:relative;left:auto;top:auto;width:auto;height:auto;margin:0 16px}
  .band{position:relative;transform:none;opacity:1!important}
  .band:not(.band-1){display:none}
  .band-1{--k:1!important}
  .device{position:relative;right:auto;top:auto;transform:none;width:100%;height:400px;margin-top:28px;perspective:1300px}
  .stage{--e:.62!important}
  .stack{--gap:46px;left:28%;top:54%;width:112px}
  .shadow-floor{left:30%;top:84%;width:240px}
  .tag i{display:none}
  .tag b{font-size:12px}
  .tag span{padding:4px 8px}
  .cue,.ruler,.readout{display:none}
}

/* ---------- Sections ---------- */
section.sec{position:relative;padding:clamp(80px,11vw,150px) 0}
.sec-head{display:grid;gap:18px;margin-bottom:clamp(36px,5vw,64px)}
.sec-head h2{font-size:clamp(34px,4.4vw,58px);max-width:18ch}
.sec-head p{max-width:52ch;color:var(--text-2);font-size:18px}

/* reveal choreography */
[data-reveal] .rv{opacity:0;transform:translateY(22px);transition:opacity .8s var(--ease-out),transform .9s var(--ease-out);transition-delay:calc(var(--i,0) * 90ms)}
[data-reveal].in .rv{opacity:1;transform:none}
[data-reveal].done .rv{transition-delay:0s!important}

/* devices grid */
.devices{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;list-style:none;margin:0;padding:0}
.dev a{position:relative;display:flex;flex-direction:column;height:100%;padding:22px;border-radius:var(--r-card);text-decoration:none;background:var(--panel);box-shadow:var(--card-shadow);transition:transform .45s var(--ease-out),box-shadow .45s var(--ease-out),background-color .3s}
.dev a:hover{transform:translateY(-4px);box-shadow:var(--card-shadow-hover)}
.dev .ico{width:44px;height:44px;margin-bottom:26px;color:var(--ink)}
.dev h3{font-size:22px;font-family:var(--f-display)}
.dev p{margin-top:6px;color:var(--text-2);font-size:15px;line-height:1.45}
.dev .from{margin-top:auto;padding-top:20px;display:flex;justify-content:space-between;align-items:baseline;font-size:14px;color:var(--text-2)}
.dev .from strong{color:var(--ink);font-weight:600}
.dev .arrow{width:18px;height:18px;transition:transform .35s var(--ease-out)}
.dev a:hover .arrow{transform:translateX(4px)}
@media (max-width:980px){.devices{grid-template-columns:repeat(2,1fr)}}
@media (max-width:520px){.devices{grid-template-columns:1fr}}

/* price picker (the interactive moment) */
.picker{display:grid;grid-template-columns:1.25fr 1fr;gap:clamp(20px,3vw,40px);align-items:start}
.pick-step{margin-bottom:28px}
.pick-step .mono{display:block;color:var(--text-2);margin-bottom:12px}
.chips{display:flex;flex-wrap:wrap;gap:8px}
.chip{font:inherit;font-size:15px;padding:10px 16px;border-radius:var(--r-chip,999px);border:0;cursor:pointer;background:var(--chip-bg);color:var(--ink);box-shadow:inset 0 0 0 1.5px var(--chip-line);transition:background-color .25s,color .25s,box-shadow .25s,transform .3s var(--ease-out)}
.chip:hover{transform:translateY(-2px)}
.chip[aria-pressed="true"]{background:var(--ink);color:var(--canvas);box-shadow:inset 0 0 0 1.5px var(--ink)}
.chip[disabled]{opacity:.35;cursor:not-allowed;transform:none}
.quote-card{position:sticky;top:100px;padding:clamp(24px,3vw,36px);border-radius:var(--r-card);background:var(--panel);box-shadow:var(--card-shadow)}
.quote-card .q-device{color:var(--text-2)}
.quote-card .q-price{display:block;margin-top:10px;font-family:var(--f-display);font-size:clamp(44px,5vw,64px);line-height:1;letter-spacing:-.02em;transition:opacity .3s,transform .5s var(--ease-out)}
.quote-card .q-price.swap{opacity:0;transform:translateY(8px)}
.quote-card .q-time{display:flex;align-items:center;gap:8px;margin-top:14px;font-weight:600}
.quote-card .q-time svg{width:18px;height:18px}
.quote-card .q-note{margin-top:18px;font-size:14px;color:var(--text-2)}
.quote-card .btn{margin-top:24px;width:100%}
.quote-card .q-empty{color:var(--text-2)}
@media (max-width:860px){.picker{grid-template-columns:1fr}.quote-card{position:relative;top:auto}}

/* promises */
.promises{display:grid;grid-template-columns:repeat(2,1fr);gap:14px;list-style:none;margin:0;padding:0}
.promise{padding:clamp(22px,2.6vw,34px);border-radius:var(--r-card);background:var(--panel);box-shadow:var(--card-shadow)}
.promise .ico{width:40px;height:40px;margin-bottom:22px;color:var(--accent-ink,var(--accent))}
.promise h3{font-size:24px}
.promise p{margin-top:10px;color:var(--text-2);max-width:44ch}
@media (max-width:760px){.promises{grid-template-columns:1fr}}

/* steps */
.steps{position:relative;display:grid;grid-template-columns:repeat(4,1fr);gap:24px;list-style:none;margin:0;padding:0;counter-reset:s}
.steps .track{position:absolute;left:0;right:0;top:22px;height:2px;background:var(--line);transform-origin:left;transform:scaleX(0);transition:transform 1.6s var(--ease-out) .2s}
.steps.in .track{transform:scaleX(1)}
.step{position:relative;padding-top:64px}
.step .num{position:absolute;top:0;left:0;width:46px;height:46px;display:grid;place-items:center;border-radius:50%;background:var(--canvas);box-shadow:inset 0 0 0 2px var(--ink);font-family:var(--f-mono);font-size:15px}
.step h3{font-size:21px}
.step p{margin-top:8px;color:var(--text-2);font-size:16px}
@media (max-width:860px){.steps{grid-template-columns:1fr 1fr}.steps .track{display:none}}
@media (max-width:520px){.steps{grid-template-columns:1fr}}

/* reviews (placeholders) */
.reviews{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;list-style:none;margin:0;padding:0}
.review{padding:28px;border-radius:var(--r-card);background:var(--panel);box-shadow:var(--card-shadow);display:flex;flex-direction:column;gap:18px}
.review blockquote{margin:0;font-size:18px;line-height:1.5}
.review .who{margin-top:auto;font-size:14px;color:var(--text-2)}
.ph-note{display:inline-flex;margin-top:22px;padding:6px 12px;border-radius:999px;font-family:var(--f-mono);font-size:12px;letter-spacing:.04em;background:var(--chip-bg);box-shadow:inset 0 0 0 1px var(--chip-line);color:var(--text-2)}
@media (max-width:900px){.reviews{grid-template-columns:1fr}}

/* faq */
.faq{display:grid;grid-template-columns:1fr 1.4fr;gap:clamp(24px,5vw,80px)}
.faq-list details{border-top:1.5px solid var(--line)}
.faq-list details:last-child{border-bottom:1.5px solid var(--line)}
.faq-list summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;align-items:baseline;gap:20px;padding:22px 0;font-weight:600;font-size:19px}
.faq-list summary::-webkit-details-marker{display:none}
.faq-list summary .pm{flex:none;width:18px;height:18px;position:relative;transform:translateY(3px)}
.faq-list summary .pm::before,.faq-list summary .pm::after{content:"";position:absolute;left:0;right:0;top:50%;height:2px;background:currentColor;transition:transform .4s var(--ease-out)}
.faq-list summary .pm::after{transform:rotate(90deg)}
.faq-list details[open] summary .pm::after{transform:rotate(0)}
.faq-list .ans{padding:0 0 24px;color:var(--text-2);max-width:60ch}
@media (max-width:860px){.faq{grid-template-columns:1fr}}

/* contact */
.contact{display:grid;grid-template-columns:1fr 1.1fr;gap:clamp(28px,5vw,80px);align-items:start}
.contact-info{display:grid;gap:26px}
.contact-info .line{display:flex;align-items:baseline;gap:14px}
.contact-info .line .mono{min-width:72px;color:var(--text-2)}
.contact-info a{font-size:20px;font-weight:600;text-decoration:none}
.contact-info a:hover{text-decoration:underline;text-underline-offset:4px}
.form{padding:clamp(24px,3vw,40px);border-radius:var(--r-card);background:var(--panel);box-shadow:var(--card-shadow);display:grid;gap:16px}
.form .row{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.form label{display:grid;gap:6px;font-size:14px;font-weight:600}
.form input,.form select,.form textarea{font:inherit;font-size:16px;font-weight:400;padding:13px 14px;border-radius:var(--r-input,10px);border:0;background:var(--input-bg);color:var(--ink);box-shadow:inset 0 0 0 1.5px var(--input-line);transition:box-shadow .25s}
.form input:focus,.form select:focus,.form textarea:focus{outline:none;box-shadow:inset 0 0 0 2px var(--focus,var(--accent))}
.form textarea{resize:vertical;min-height:110px}
.form .btn{justify-self:start}
.form-privacy{font-size:13px;color:var(--text-2)}
.form-status{font-size:15px;font-weight:600;min-height:1.4em}
.hp{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}
@media (max-width:860px){.contact{grid-template-columns:1fr}}
@media (max-width:520px){.form .row{grid-template-columns:1fr}}

/* footer */
.foot{padding:64px 0 40px;border-top:1.5px solid var(--line)}
.foot-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:28px}
.foot h4{margin:0 0 12px;font-family:var(--f-mono);font-size:12px;font-weight:400;letter-spacing:.08em;text-transform:uppercase;color:var(--text-2)}
.foot ul{list-style:none;margin:0;padding:0;display:grid;gap:8px;font-size:15px}
.foot a{text-decoration:none}
.foot a:hover{text-decoration:underline;text-underline-offset:3px}
.foot .legal{margin-top:48px;display:flex;flex-wrap:wrap;gap:10px 24px;font-size:13px;color:var(--text-2)}
.foot .linkbtn{font:inherit;background:none;border:0;padding:0;color:inherit;cursor:pointer;text-decoration:underline;text-underline-offset:3px}
@media (max-width:860px){.foot-grid{grid-template-columns:1fr 1fr}}

/* pause everything on hidden tabs */
body.paused *,body.paused *::before,body.paused *::after{animation-play-state:paused!important}

/* reduced motion: final states, no movement */
@media (prefers-reduced-motion: reduce){
  *,*::before,*::after{animation:none!important;transition:none!important;transition-delay:0s!important;scroll-behavior:auto!important}
  [data-reveal] .rv{opacity:1;transform:none}
  .steps .track{transform:scaleX(1)}
  .split .w{opacity:1!important;transform:none!important}
}

/* ---------- Præcis look ---------- */
/* environment: measurement grid that drifts very slowly */
.env-a{position:absolute;inset:-60px;background-image:radial-gradient(#c3ced5 1px,transparent 1.2px);background-size:28px 28px;opacity:.7;animation:gridDrift 90s linear infinite}
.env-b{position:absolute;inset:0;background:radial-gradient(ellipse 70% 50% at 80% 10%,rgba(31,79,224,.06),transparent 70%)}
@keyframes gridDrift{to{transform:translate(28px,28px)}}


/* layers: technical line drawing */
.layer svg .s{stroke:var(--ink);stroke-width:1.6;vector-effect:non-scaling-stroke}
.layer svg .f{fill:#f9fbfc}
.ly-back .bump{fill:#e7edf0}
.ly-back .lens{fill:#0f1b24}
.layer svg .a{fill:var(--accent)}
.layer svg .d{stroke:#8796a1;stroke-width:1.4;fill:none;vector-effect:non-scaling-stroke}
.layer svg .d2{fill:#8796a1}
.ly-batt .f{fill:#dfe6ea}
.ly-batt .s2{stroke:var(--accent);stroke-width:2.4;fill:none;vector-effect:non-scaling-stroke}
.ly-board .f{fill:#e3ebe8}
.ly-board .chip{fill:#0f1b24}
.ly-board .tr{stroke:var(--accent);stroke-width:1.6;fill:none;vector-effect:non-scaling-stroke}
.ly-board .glow{display:none}
.ly-frame .f{fill:#b8c3ca}
.ly-screen .scr{fill:#16242e}
.ly-screen .isl{fill:#000}
.ly-screen .crack{stroke:rgba(255,255,255,.6);stroke-width:1.2;fill:none;vector-effect:non-scaling-stroke;opacity:calc(1 - var(--e,0) * 2.2 - var(--p,0) * 1.6)}
.ly-screen .sheen{fill:url(#none);fill:rgba(31,79,224,.14);opacity:calc(var(--p,0) * 1.2)}
.tag span{border-radius:4px}

/* signature: diagnosis readout + calibration ruler */
.ruler{position:absolute;right:max(16px,calc((100vw - 1180px)/2 - 30px));top:14vh;bottom:14vh;width:14px;background:repeating-linear-gradient(to bottom,#8796a1 0 1px,transparent 1px 10px);mask:linear-gradient(transparent,#000 12%,#000 88%,transparent)}
.ruler::after{content:"";position:absolute;right:-6px;left:-8px;height:2px;background:var(--accent);top:calc(var(--p,0) * 100%)}
.readout{position:absolute;right:max(46px,calc((100vw - 1180px)/2 + 12px));bottom:9vh;padding:8px 12px;border-radius:4px;background:var(--panel);box-shadow:0 0 0 1px #cfd8de;color:var(--ink)}
.stage{--p:0}

/* entrance: grid snap-align, words slide into place in reading order */
.band .split .w{--kc:clamp(0,(var(--k,0) - var(--th,0)) * 2.6,1);opacity:var(--kc);transform:translateX(calc((1 - var(--kc)) * -28px))}
.band h1 .w.em,.band h2 .w.em{color:var(--accent)}

/* sections */
.dev .idx{position:absolute;top:20px;right:20px;color:var(--text-2)}
.dev .ico{color:var(--accent)}
.dev .crack{opacity:.55}
.sec-devices .devices{gap:0;box-shadow:0 0 0 1px #d6dee3;border-radius:6px;overflow:hidden;background:#d6dee3;grid-gap:1px}
.sec-devices .dev a{border-radius:0;box-shadow:none}
.sec-devices .dev a:hover{background:#fff;transform:none;box-shadow:inset 0 0 0 1.5px var(--ink)}
.quote-card{box-shadow:0 0 0 1.5px var(--ink)}
.quote-card .q-price{font-weight:700}
.promises{grid-template-columns:1fr;gap:0;border-top:1.5px solid var(--ink)}
.promise{display:grid;grid-template-columns:70px 56px 1fr 1.2fr;gap:24px;align-items:baseline;border-radius:0;background:transparent;box-shadow:none;border-bottom:1px solid var(--line);padding:28px 0}
.promise .ico{margin:0;transform:translateY(8px)}
.promise .pnum{color:var(--accent)}
.promise p{margin:0}
@media (max-width:860px){.promise{grid-template-columns:44px 1fr}.promise .ico{display:none}.promise p{grid-column:2}}
.step .num{border-radius:4px;box-shadow:inset 0 0 0 1.5px var(--ink);background:var(--panel)}
.steps .track{background:var(--accent);height:1.5px}
.review{background:transparent;box-shadow:inset 0 0 0 1px var(--line)}
.review blockquote::before{content:"“";display:block;font-family:var(--f-display);font-size:48px;line-height:.8;color:var(--accent)}
.sec-faq{background:linear-gradient(transparent,rgba(31,79,224,.04))}
.pnum{display:block}

/* ============ Baldvin Repair: multi-page additions ============ */
:root{--accent-text:#1a44c2;--ok:#1d7a4d}
.logo{gap:10px;font-size:20px}
.logo .wm{display:inline-flex;align-items:baseline;gap:.28em}
.logo .wm-r{color:var(--accent-text);font-weight:500}
.foot .logo{font-size:22px}

/* mobile menu */
.nav .nav-r{display:flex;align-items:center;gap:10px}
.menu-btn{display:none;width:44px;height:44px;border:0;border-radius:8px;background:transparent;color:var(--ink);cursor:pointer;box-shadow:inset 0 0 0 1.5px var(--line-strong);place-items:center}
.menu-btn svg{width:20px;height:20px}
.menu-btn .x{display:none}
.menu-btn[aria-expanded="true"] .x{display:block}
.menu-btn[aria-expanded="true"] .bars{display:none}
.mobilmenu{position:fixed;top:70px;left:0;right:0;z-index:49;background:var(--canvas);box-shadow:0 1px 0 var(--line),0 24px 40px rgba(15,27,36,.12);padding:8px 0 24px}
.mobilmenu ul{list-style:none;margin:0;padding:0}
.mobilmenu li a{display:flex;justify-content:space-between;align-items:center;padding:15px 0;border-bottom:1px solid var(--line);text-decoration:none;font-family:var(--f-display);font-size:20px;font-weight:700}
.mobilmenu .sub a{font-family:var(--f-body);font-weight:400;font-size:16px;padding:11px 0 11px 14px;color:var(--text-2)}
.mobilmenu .btn{margin-top:20px;width:100%}
body.menu-open .nav{background:var(--canvas);box-shadow:var(--nav-shadow)}
@media (max-width:900px){.menu-btn{display:grid}.nav .nav-r .btn-sm{display:none}}
@media (min-width:901px){.mobilmenu{display:none!important}}
.nav ul a[aria-current="page"]{color:var(--ink);box-shadow:0 2px 0 var(--accent)}

/* page hero (subpages) */
.page-hero{position:relative;padding:clamp(120px,15vw,170px) 0 clamp(56px,7vw,96px)}
.page-hero .wrap{display:grid;grid-template-columns:1.1fr .9fr;gap:clamp(28px,5vw,72px);align-items:center}
.page-hero.solo .wrap{grid-template-columns:1fr}
.crumbs{display:flex;flex-wrap:wrap;gap:8px;list-style:none;margin:0 0 26px;padding:0;font-family:var(--f-mono);font-size:12px;letter-spacing:.06em;color:var(--text-2)}
.crumbs li+li::before{content:"/";margin-right:8px;color:var(--line-strong)}
.crumbs a{text-decoration:none}
.crumbs a:hover{color:var(--ink);text-decoration:underline;text-underline-offset:3px}
.page-hero h1{font-size:clamp(40px,5.6vw,76px);max-width:14ch;text-wrap:balance}
.page-hero.solo h1{max-width:18ch}
.page-hero .lede{margin-top:22px;font-size:clamp(17px,1.4vw,20px);color:var(--text-2);max-width:46ch}
.page-hero .actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:30px}
.facts{display:flex;flex-wrap:wrap;gap:10px 26px;margin:34px 0 0;padding:0;list-style:none}
.facts li{display:flex;align-items:center;gap:8px;font-size:15px;font-weight:600}
.facts svg{width:18px;height:18px;color:var(--accent)}
@media (max-width:900px){.page-hero .wrap{grid-template-columns:1fr}}

/* the spec drawing: device line-art with dimension lines and a scan line */
.spec{position:relative;aspect-ratio:1/1;max-width:460px;width:100%;justify-self:end}
.spec svg{width:100%;height:100%;overflow:visible}
.spec .o{fill:var(--panel);stroke:var(--ink);stroke-width:1.6}
.spec .sc{fill:#16242e}
.spec .ln{fill:none;stroke:var(--line-strong);stroke-width:1}
.spec .ac{fill:var(--accent)}
.spec .ck{fill:none;stroke:rgba(255,255,255,.55);stroke-width:1.2}
.spec .dim{fill:none;stroke:var(--line-strong);stroke-width:1;stroke-dasharray:3 4}
.spec text{font-family:var(--f-mono);font-size:11px;fill:var(--text-2);letter-spacing:.04em}
.spec .scan{fill:url(#scanG)}
.spec .scanline{transform-box:view-box;animation:scan 7s var(--ease-io) infinite;animation-delay:-2s;animation-play-state:paused}
.spec.live .scanline{animation-play-state:running}
@keyframes scan{0%{transform:translateY(0)}50%{transform:translateY(var(--scan-h,300px))}100%{transform:translateY(0)}}
.spec .readout-s{position:absolute;right:0;bottom:4%;padding:8px 12px;border-radius:4px;background:var(--panel);box-shadow:0 0 0 1px var(--line);font-family:var(--f-mono);font-size:12px}
@media (max-width:900px){.spec{justify-self:start;max-width:360px}}

/* price table */
.ptable{width:100%;border-collapse:collapse;font-variant-numeric:tabular-nums}
.ptable caption{text-align:left}
.ptable th,.ptable td{text-align:left;padding:20px 14px 20px 0;border-bottom:1px solid var(--line);vertical-align:baseline}
.ptable thead th{font-family:var(--f-mono);font-size:12px;font-weight:400;letter-spacing:.08em;text-transform:uppercase;color:var(--text-2);padding-top:0;border-bottom:1.5px solid var(--ink)}
.ptable td.r,.ptable th.r{text-align:right;padding-right:0}
.ptable .rep{font-weight:600;font-size:18px}
.ptable .rep small{display:block;margin-top:4px;font-weight:400;font-size:15px;color:var(--text-2);max-width:48ch}
.ptable .time{font-family:var(--f-mono);font-size:13px;color:var(--text-2);white-space:nowrap}
.ptable .price{font-family:var(--f-display);font-weight:700;font-size:20px;white-space:nowrap}
.ptable .price .fra{font-family:var(--f-body);font-weight:400;font-size:14px;color:var(--text-2);margin-right:4px}
.ptable tr{transition:background-color .25s}
.ptable tbody tr:hover{background:rgba(31,79,224,.04)}
.ptable .book{white-space:nowrap}
.ptable .book a{font-size:14px;font-weight:600;color:var(--accent-text);text-decoration:none}
.ptable .book a:hover{text-decoration:underline;text-underline-offset:3px}
.pnote{margin-top:20px;font-size:14px;color:var(--text-2);max-width:70ch}
@media (max-width:700px){
  .ptable thead{display:none}
  .ptable tr{display:grid;grid-template-columns:1fr auto;gap:6px 14px;padding:18px 0;border-bottom:1px solid var(--line)}
  .ptable td{padding:0;border:0}
  .ptable td.rep{grid-column:1/-1}
  .ptable td.book{grid-column:1/-1}
  .ptable td.r{text-align:right}
}

/* models list */
.models{display:grid;grid-template-columns:1fr 2fr;gap:clamp(24px,5vw,80px)}
.model-groups{display:grid;gap:26px}
.model-groups h3{font-size:18px;margin-bottom:12px}
.model-groups ul{display:flex;flex-wrap:wrap;gap:8px;list-style:none;margin:0;padding:0}
.model-groups li{padding:7px 12px;border-radius:4px;background:var(--panel);box-shadow:inset 0 0 0 1px var(--line);font-size:15px}
@media (max-width:860px){.models{grid-template-columns:1fr}}

/* trio (subpages): three promises in a row, a different skeleton from the front page list */
.trio{display:grid;grid-template-columns:repeat(3,1fr);gap:0;list-style:none;margin:0;padding:0;box-shadow:0 0 0 1px var(--line);border-radius:6px;background:var(--line);grid-gap:1px;overflow:hidden}
.trio li{background:var(--panel);padding:clamp(22px,2.6vw,32px)}
.trio .ico{width:34px;height:34px;color:var(--accent);margin-bottom:18px}
.trio h3{font-size:20px}
.trio p{margin-top:8px;color:var(--text-2);font-size:16px}
@media (max-width:860px){.trio{grid-template-columns:1fr}}

/* CTA band */
.cta-band{padding:clamp(56px,8vw,100px) 0}
.cta-band .box{display:grid;grid-template-columns:1.3fr auto;gap:28px;align-items:center;padding:clamp(28px,4vw,52px);border-radius:6px;background:var(--ink);color:#eef2f4;position:relative;overflow:hidden}
.cta-band .box::before{content:"";position:absolute;inset:0;background-image:radial-gradient(rgba(238,242,244,.14) 1px,transparent 1.2px);background-size:22px 22px;mask:linear-gradient(90deg,transparent 30%,#000)}
.cta-band h2{font-size:clamp(30px,3.6vw,46px);max-width:20ch;position:relative}
.cta-band p{margin-top:12px;color:#b4c1ca;max-width:46ch;position:relative}
.cta-band .actions{display:flex;flex-wrap:wrap;gap:12px;position:relative}
.cta-band .btn-ghost{color:#eef2f4;box-shadow:inset 0 0 0 1.5px rgba(238,242,244,.4)}
.cta-band .btn-ghost:hover{box-shadow:inset 0 0 0 1.5px #eef2f4}
.cta-band :focus-visible{outline-color:#9fb6ff}
@media (max-width:860px){.cta-band .box{grid-template-columns:1fr}}

/* sibling device nav */
.siblings{display:flex;flex-wrap:wrap;gap:8px;list-style:none;margin:0;padding:0}
.siblings a{display:inline-flex;padding:10px 16px;border-radius:6px;text-decoration:none;font-size:15px;box-shadow:inset 0 0 0 1.5px var(--chip-line);background:var(--chip-bg);transition:box-shadow .25s,transform .3s var(--ease-out)}
.siblings a:hover{box-shadow:inset 0 0 0 1.5px var(--ink);transform:translateY(-2px)}
.sec-tight{padding:clamp(40px,6vw,72px) 0!important}

/* brands strip */
.brands{display:flex;flex-wrap:wrap;gap:10px 28px;margin:0;padding:22px 0;list-style:none;border-block:1px solid var(--line);font-family:var(--f-display);font-weight:500;font-size:clamp(17px,1.6vw,21px);color:var(--text-2)}

/* contact page */
.contact-page .contact-info .line{flex-wrap:wrap}
.contact-info .note{font-size:15px;color:var(--text-2);max-width:40ch}
.form .opt{font-weight:400;color:var(--text-2)}
.form-status.is-error{color:#b3261e}
.form.is-sent .form-status{color:var(--ok)}

/* legal prose */
.prose{max-width:72ch}
.prose h2{font-size:clamp(24px,2.6vw,30px);margin:48px 0 14px}
.prose h3{font-size:19px;margin:28px 0 8px}
.prose p,.prose li{color:#2c3a44;font-size:17px}
.prose p+p{margin-top:12px}
.prose ul{padding-left:20px;margin:10px 0}
.prose li+li{margin-top:6px}
.prose a{color:var(--accent-text)}
.draft{display:inline-flex;margin-bottom:28px;padding:6px 12px;border-radius:4px;font-family:var(--f-mono);font-size:12px;letter-spacing:.04em;background:#fff6d6;box-shadow:inset 0 0 0 1px #e3c86a;color:#5b4a0c}
.tbl-wrap{overflow-x:auto;margin:16px 0}
.ctable{border-collapse:collapse;min-width:600px;width:100%;font-size:15px}
.ctable th,.ctable td{text-align:left;padding:12px 14px 12px 0;border-bottom:1px solid var(--line);vertical-align:top}
.ctable th{font-family:var(--f-mono);font-size:12px;font-weight:400;letter-spacing:.06em;text-transform:uppercase;color:var(--text-2);border-bottom:1.5px solid var(--ink)}
.linkbtn-inline{font:inherit;background:none;border:0;padding:0;color:var(--accent-text);cursor:pointer;text-decoration:underline;text-underline-offset:3px}

/* consent banner */
.consent{position:fixed;left:16px;bottom:16px;z-index:80;width:min(440px,calc(100% - 32px));padding:22px;border-radius:8px;background:var(--panel);color:var(--ink);box-shadow:0 0 0 1.5px var(--ink),0 24px 60px rgba(15,27,36,.18);animation:consentIn .6s var(--ease-out) both}
.consent[hidden]{display:none}
@keyframes consentIn{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}
.consent h2{font-size:20px;margin-bottom:8px}
.consent p{font-size:15px;color:var(--text-2)}
.consent a{color:var(--accent-text)}
.consent__actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:16px;align-items:center}
.consent__btn{flex:1 1 140px;font:inherit;font-weight:600;font-size:15px;padding:12px 16px;border-radius:6px;border:0;cursor:pointer;background:var(--ink);color:var(--canvas);min-height:44px}
.consent__btn:hover{background:#25333e}
.consent__link{font:inherit;font-size:15px;background:none;border:0;padding:10px 4px;color:var(--ink);text-decoration:underline;text-underline-offset:3px;cursor:pointer;min-height:44px}
.consent fieldset{border:0;margin:0;padding:0;display:grid;gap:12px}
.consent legend{font-family:var(--f-display);font-weight:700;font-size:20px;margin-bottom:10px;padding:0}
.consent label{display:grid;grid-template-columns:auto 1fr;gap:10px;align-items:start;font-size:15px;color:var(--text-2)}
.consent label b{color:var(--ink);font-weight:600}
.consent input[type=checkbox]{width:20px;height:20px;margin:1px 0 0;accent-color:var(--accent)}
@media (max-width:520px){.consent{left:8px;right:8px;bottom:8px;width:auto;padding:18px}}

/* 404 / thanks */
.center-msg{min-height:60vh;display:grid;align-content:center}
.form-fejl{display:none;font-size:15px;font-weight:600;color:#b3261e}
.form-fejl:target{display:block}
.page-hero:not(.solo) h1{font-size:clamp(38px,4.6vw,64px);max-width:17ch;hyphens:manual}
