/* Direction A — Specimen catalogue. Tokens from src/dir_a.py + motion from the design kit. */

@font-face{
  font-family:'Archivo';
  font-style:normal;
  font-weight:500 800;
  font-stretch:100% 125%;
  font-display:swap;
  src:url('/fonts/archivo-var.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:'Inter';
  font-style:normal;
  font-weight:400 600;
  font-display:swap;
  src:url('/fonts/inter-var.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;
}

:root{
  color-scheme:light;
  --bg:#F4F2ED;
  --surface:#FFFFFF;
  --ink:#15202B;
  --ink-2:#36414C;
  --ink-3:#5A646E;
  --ink-4:#7A838C;
  --line:rgba(21,32,43,.12);
  --line-strong:rgba(21,32,43,.30);
  --primary:#0F2A44;
  --primary-hover:#17395B;
  --primary-press:#0A1F33;
  --on-primary:#FFFFFF;
  --focus:#1662B8;
  --focus-ring:rgba(22,98,184,.18);
  --hover-bg:rgba(21,32,43,.05);
  --sel-bg:#E3EAF2;
  --sel-line:#0F2A44;
  --sel-ink:#0F2A44;
  --field-bg:#FFFFFF;
  --field-line:rgba(21,32,43,.22);
  --link:#0F2A44;
  --bar-bg:rgba(244,242,237,.86);
  --pend-a:#ECEAE4;
  --pend-b:#E6E3DC;
  --pend-ink:#3D4650;
  --pend-line:rgba(21,32,43,.25);
  --img-bg:#E7E5E0;
  --band:#E9E6DF;
  --danger:#C62828;
  --footer:#15202B;
  --footer-ink:#D5DBE1;
  --footer-link:#C3CBD3;
  --footer-meta:#9AA4AE;
  --ease-out:cubic-bezier(.23,1,.32,1);
  --ease-in-out:cubic-bezier(.77,0,.175,1);
  --ease-drawer:cubic-bezier(.32,.72,0,1);
  --d-press:120ms;
  --d-ui:180ms;
  --d-enter:260ms;
  --d-drawer:280ms;
  --f-display:'Archivo',system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
  --f-ui:'Inter',system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
  --r-btn:8px;
  --r-img:6px;
  --chev:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20' fill='none' stroke='%235A646E' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m5 7.5 5 5 5-5'/%3E%3C/svg%3E");
}

*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;text-size-adjust:100%;scroll-padding-top:96px}
body{margin:0;background:var(--bg);color:var(--ink);font:400 16px/1.55 var(--f-ui);-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent;text-rendering:optimizeLegibility}
body.menu-open{overflow:hidden}
a,button,input,select,textarea,label,summary{touch-action:manipulation}
img{max-width:100%;height:auto;display:block}
h1,h2,h3,h4{margin:0;font-family:var(--f-display);color:var(--ink);font-stretch:112%;letter-spacing:-.02em;text-wrap:balance}
p{margin:0}
a{color:inherit}
[hidden]{display:none !important}
.wrap{width:min(1200px,calc(100% - 32px));margin-inline:auto}
@media(min-width:961px){.wrap{width:min(1200px,calc(100% - 80px))}}
.sr{position:absolute !important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
.skip{position:absolute;left:12px;top:-60px;z-index:100;background:var(--ink);color:var(--bg);padding:10px 14px;border-radius:8px;text-decoration:none}
.skip:focus{top:12px}
:focus-visible{outline:2px solid var(--focus);outline-offset:2px}
.num,.keys dd,.vt,.mini td,.stats b{font-variant-numeric:tabular-nums;font-feature-settings:"tnum"}

.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:48px;padding:0 22px;border-radius:var(--r-btn);
 font:600 16px/1.1 var(--f-ui);text-decoration:none;border:1px solid transparent;cursor:pointer;white-space:nowrap;
 background:transparent;color:inherit;
 transition:transform var(--d-press) var(--ease-out),background-color var(--d-ui) var(--ease-out),border-color var(--d-ui) var(--ease-out),color var(--d-ui) var(--ease-out),opacity var(--d-ui) var(--ease-out)}
.btn:active{transform:scale(.97)}
.btn:disabled,.btn[aria-disabled="true"]{opacity:.5;cursor:not-allowed}
.btn:disabled:active,.btn[aria-disabled="true"]:active{transform:none}
.btn-primary{background:var(--primary);color:var(--on-primary);border-color:transparent}
.btn-secondary{background:var(--surface);color:var(--ink);border-color:var(--line-strong)}
.btn-ghost{background:transparent;color:var(--ink);border-color:transparent}
.wa{width:18px;height:18px;flex:none;color:#25D366}
.aside .wa-backup{margin-top:10px}
.btn-block{width:100%}
.btn-primary:active{background:var(--primary-press)}
@media (hover:hover) and (pointer:fine){
  .btn-primary:hover:not(:disabled){background:var(--primary-hover)}
  .btn-secondary:hover:not(:disabled){background:var(--hover-bg)}
  .btn-ghost:hover:not(:disabled){background:var(--hover-bg)}
}
.link{color:var(--link);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:3px}
@media (hover:hover) and (pointer:fine){.link:hover{color:var(--focus)}}

.fig{position:relative;overflow:hidden;border-radius:var(--r-img);background:var(--img-bg);aspect-ratio:4/3}
.fig img{width:100%;height:100%;object-fit:contain;padding:8%}
.fig .tag{position:absolute;left:10px;top:10px;font:600 12px/1 var(--f-ui);letter-spacing:.01em;padding:6px 8px;border-radius:999px;background:#15181D;color:#fff}
.pending{display:grid;place-content:center;gap:6px;text-align:center;padding:20px;border-radius:6px;aspect-ratio:4/3;
 background:repeating-linear-gradient(135deg,var(--pend-a) 0 12px,var(--pend-b) 12px 24px);color:var(--pend-ink);border:1px dashed var(--pend-line)}
.pending b{font:600 14px/1.3 var(--f-ui);color:var(--pend-ink)}
.pending span{font:500 12px/1.4 var(--f-ui),"PingFang SC","Hiragino Sans GB","Noto Sans SC","Microsoft YaHei",sans-serif;color:var(--pend-ink)}

.util{font:500 14px/1 var(--f-ui);color:var(--ink-3);border-bottom:1px solid var(--line);background:var(--bg)}
.util .wrap{display:flex;justify-content:space-between;align-items:center;min-height:36px;gap:24px}
.util a{text-decoration:none;color:var(--ink-2)}
.util .r{display:flex;gap:24px}
.hdr{position:sticky;top:0;z-index:50;background:var(--bar-bg);backdrop-filter:saturate(1.6) blur(14px);-webkit-backdrop-filter:saturate(1.6) blur(14px);box-shadow:0 1px 0 var(--line)}
.hdr .wrap{display:flex;align-items:center;gap:28px;min-height:64px}
.logo{display:flex;align-items:baseline;gap:8px;text-decoration:none;font:800 20px/1 var(--f-display);font-stretch:118%;letter-spacing:-.02em;color:var(--ink)}
.logo span{font:600 14px/1 var(--f-ui);color:var(--ink-3);letter-spacing:0;font-stretch:100%}
.nav{display:flex;gap:22px;margin-right:auto;min-width:0}
.nav a{font:500 15px/1 var(--f-ui);text-decoration:none;color:var(--ink-2);padding:8px 0;border-bottom:2px solid transparent;white-space:nowrap}
.nav a[aria-current="page"]{color:var(--ink);border-color:var(--primary)}
@media (hover:hover) and (pointer:fine){.nav a:hover{color:var(--ink)}}
.hdr .btn{min-height:40px;padding:0 16px;font-size:15px}
.menu-btn{display:none;width:44px;height:44px;border-radius:10px;border:1px solid var(--line-strong);background:transparent;color:var(--ink);place-items:center;cursor:pointer;padding:0;transition:transform var(--d-press) var(--ease-out),background-color var(--d-ui) var(--ease-out)}
.menu-btn:active{transform:scale(.97)}
@media(max-width:1100px){
  .hdr .wrap{gap:16px}
  .nav{gap:14px}
  .nav a{font-size:14px}
}
@media(max-width:960px){
  .nav,.util,.hdr .btn-primary{display:none}
  .hdr .wrap{justify-content:space-between}
  .menu-btn{display:grid}
}

.sheet{position:fixed;inset:0;z-index:90;visibility:hidden;pointer-events:none}
.sheet .scrim{position:absolute;inset:0;background:rgba(10,12,16,.45);opacity:0;transition:opacity var(--d-drawer) var(--ease-out)}
.sheet .panel{position:absolute;left:0;right:0;top:0;background:var(--bg);padding:calc(12px + env(safe-area-inset-top)) 16px 24px;transform:translateY(-100%);transition:transform var(--d-drawer) var(--ease-drawer);box-shadow:0 20px 40px rgba(0,0,0,.18);max-height:100%;overflow:auto}
.sheet.on{visibility:visible;pointer-events:auto}
.sheet.on .scrim{opacity:1}
.sheet.on .panel{transform:none}
.sheet-top{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:44px}
.sheet nav a{display:flex;align-items:center;min-height:52px;font:600 18px/1.2 var(--f-ui);text-decoration:none;border-bottom:1px solid var(--line);color:var(--ink)}

.mbar{display:none}
@media(max-width:960px){
  .mbar{display:flex;gap:10px;position:fixed;z-index:60;left:0;right:0;bottom:0;align-items:center;min-height:calc(64px + env(safe-area-inset-bottom));padding:8px 16px calc(8px + env(safe-area-inset-bottom));background:var(--bar-bg);border-top:1px solid var(--line);box-shadow:0 -1px 0 var(--line);backdrop-filter:saturate(1.6) blur(14px);-webkit-backdrop-filter:saturate(1.6) blur(14px)}
  .mbar .btn-primary{flex:1;min-width:0}
  .mbar .wa-backup{flex:0 0 auto;padding:0 10px;font-size:13px;gap:6px;white-space:nowrap}
  body.has-mbar{padding-bottom:calc(64px + env(safe-area-inset-bottom))}
}

.hero{overflow:hidden;padding:72px 0 80px}
.hero .wrap{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);grid-template-areas:"t m" "f m";column-gap:48px;align-items:center}
.hero .txt{grid-area:t;align-self:end;min-width:0}
.hero .facts{grid-area:f;align-self:start}
.mosaic{grid-area:m;min-width:0}
.hero h1{font-size:clamp(40px,4.6vw,64px);line-height:1.02;font-weight:750;overflow-wrap:anywhere}
.hero .sub{margin-top:24px;font-size:19px;line-height:1.5;color:var(--ink-2);max-width:36ch}
.hero .ctas{display:flex;gap:12px;margin-top:32px;flex-wrap:wrap}
.eyebrow{display:inline-flex;flex-wrap:wrap;gap:6px 10px;align-items:center;font:600 14px/1.3 var(--f-ui);color:var(--ink-2);margin-bottom:18px}
.eyebrow span{white-space:nowrap}
.eyebrow span+span::before{content:"·";margin-right:10px;color:var(--ink-4)}
.facts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0;margin-top:40px;border-top:1px solid var(--line)}
.facts div{padding:14px 16px 0 0;min-width:0}
.facts b{display:block;font:700 15px/1.3 var(--f-ui);overflow-wrap:anywhere}
.facts span{font:400 14px/1.4 var(--f-ui);color:var(--ink-3)}
.mosaic{display:grid;grid-template-columns:1.25fr 1fr 1fr;grid-template-rows:auto auto;gap:10px;width:calc(100% + 12vw);margin-right:-12vw}
.tile{margin:0;display:grid;gap:8px;text-decoration:none;color:inherit;min-width:0}
.tile .fig{border-radius:4px}
.tile figcaption{display:flex;justify-content:space-between;gap:12px;font:500 14px/1.3 var(--f-ui);color:var(--ink-2)}
.tile figcaption b{font-weight:600;color:var(--ink)}
.tile.big{grid-row:span 2}
.tile.big .fig{aspect-ratio:4/5}
@media (hover:hover) and (pointer:fine){
  .tile .fig img{transition:transform 220ms var(--ease-out)}
  .tile:hover .fig img{transform:scale(1.03)}
}

.sec{padding:112px 0}
.sec+.sec{padding-top:0}
.sh{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:48px;align-items:end;margin-bottom:40px}
.sh h2,.custom h2,.faqs h2,.page-intro h1{font-size:clamp(30px,3vw,44px);line-height:1.05;font-weight:720}
.sh p{font-size:17px;color:var(--ink-2);max-width:52ch}
.plates{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}
.plate{position:relative;background:var(--surface);border-radius:8px;box-shadow:0 1px 2px rgba(21,32,43,.06),0 0 0 1px rgba(21,32,43,.06);display:flex;flex-direction:column;min-width:0}
.plate .fig{border-radius:8px 8px 0 0}
.plate .body{padding:20px 20px 22px;display:flex;flex-direction:column;gap:10px;flex:1;min-width:0}
.plate h3{font-size:21px;line-height:1.2;font-weight:650;overflow-wrap:anywhere}
.plate h3 a{color:inherit;text-decoration:none}
.plate h3 a::after{content:"";position:absolute;inset:0}
.plate p{font-size:15px;color:var(--ink-2);display:-webkit-box;-webkit-line-clamp:4;line-clamp:4;-webkit-box-orient:vertical;overflow:hidden}
.plate .more{position:relative;z-index:1;margin-top:auto;padding-top:8px;font:600 15px/1.2 var(--f-ui);color:var(--primary);text-underline-offset:3px}
.plate h3 a:active{transform:scale(.97)}
.keys{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1px;background:var(--line);border-radius:8px;overflow:hidden;box-shadow:0 0 0 1px var(--line)}
.keys div{background:var(--bg);padding:12px 12px 14px;min-width:0}
.keys dt{font:500 12px/1.3 var(--f-ui);color:var(--ink-3);letter-spacing:.02em}
.keys dd{margin:4px 0 0;font:600 16px/1.3 var(--f-ui);overflow-wrap:anywhere}
.buy .keys{grid-template-columns:repeat(3,minmax(0,1fr));margin-top:20px}

.custom{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:48px;align-items:start}
.custom .lead{margin:20px 0 28px;font-size:17px;color:var(--ink-2);max-width:42ch}
.ctab{width:100%;border-collapse:collapse;background:var(--surface);border-radius:8px;overflow:hidden;box-shadow:0 0 0 1px rgba(21,32,43,.06)}
.ctab th,.ctab td{text-align:left;padding:16px 20px;border-bottom:1px solid var(--line);font-size:15px;vertical-align:top}
.ctab th{font-weight:600;width:44%}
.ctab td{color:var(--ink-2);overflow-wrap:anywhere}
.ctab tr:last-child th,.ctab tr:last-child td{border-bottom:0}
.factory{background:var(--band);padding:104px 0}
.fgrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.markets{border-top:1px solid var(--line)}
.mrow{display:grid;grid-template-columns:minmax(0,3fr) minmax(0,5fr) minmax(0,4fr);gap:24px;padding:20px 0;border-bottom:1px solid var(--line);align-items:center}
.mrow b{font:700 22px/1.1 var(--f-display);font-stretch:112%}
.mrow span{color:var(--ink-2)}
.mrow em{font-style:normal;font-size:14px;color:var(--ink-3)}
.quote{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:48px;align-items:start}
.steps{list-style:none;padding:0;margin:28px 0 0;display:grid;gap:20px}
.steps li{display:grid;grid-template-columns:32px minmax(0,1fr);gap:14px}
.steps i{font:700 14px/32px var(--f-ui);font-style:normal;text-align:center;width:32px;height:32px;border-radius:50%;background:var(--sel-bg);color:var(--primary)}
.steps b{display:block;font-weight:600}
.steps span{font-size:15px;color:var(--ink-2)}
.card{background:var(--surface);border-radius:10px;padding:32px;box-shadow:0 1px 2px rgba(21,32,43,.06),0 0 0 1px rgba(21,32,43,.06);min-width:0}
.pnote{margin-top:16px;font-size:14px;color:var(--ink-3)}
.faqs{display:grid;grid-template-columns:minmax(0,4fr) minmax(0,8fr);gap:48px;align-items:start}
.faqs h2{position:sticky;top:96px}
.page-intro{padding:48px 0 8px}
.page-intro p{margin-top:16px;font-size:18px;line-height:1.55;color:var(--ink-2);max-width:62ch}
.filters{display:grid;gap:12px;margin:28px 0 24px}
.filter-note{font-size:14px;color:var(--ink-3);max-width:70ch}
.empty-filter{padding:28px;border:1px dashed var(--line-strong);border-radius:8px;display:grid;gap:14px;justify-items:start}

footer{background:var(--footer);color:var(--footer-ink);padding:64px 0 calc(40px + env(safe-area-inset-bottom));margin-top:112px}
footer .wrap{display:grid;grid-template-columns:minmax(0,4fr) minmax(0,2fr) minmax(0,2fr) minmax(0,3fr);gap:32px}
footer b{display:block;color:#fff;font:600 14px/1.3 var(--f-ui);margin-bottom:14px}
footer a{display:block;color:var(--footer-link);text-decoration:none;font-size:15px;padding:4px 0;overflow-wrap:anywhere}
@media (hover:hover) and (pointer:fine){footer a:hover{color:#fff}}
footer p{font-size:14px;color:#AEB7C0;max-width:36ch}
footer .legal{grid-column:1/-1;border-top:1px solid rgba(255,255,255,.12);padding-top:20px;font-size:14px;color:var(--footer-meta)}
footer .legal a{display:inline;color:var(--footer-link);padding:0}

.crumb{font-size:14px;color:var(--ink-3);padding:24px 0}
.crumb a{color:var(--ink-2);text-decoration:none}
.crumb [aria-current="page"]{color:var(--ink)}
.pd{display:grid;grid-template-columns:minmax(0,6fr) minmax(0,6fr);gap:48px;align-items:start}
.gal .stage{position:relative;aspect-ratio:4/3}
.gal [data-slide]{position:absolute;inset:0;opacity:0;transition:opacity 200ms var(--ease-out)}
.gal [data-slide].on{opacity:1;position:relative}
.gal .stage [data-slide].on{position:absolute}
.gal [data-slide] .fig,.gal [data-slide] .pending{height:100%;aspect-ratio:auto}
.thumbs{display:flex;gap:12px;margin-top:12px;flex-wrap:wrap}
.thumbs button{width:88px;height:88px;padding:4px;border-radius:6px;border:1px solid var(--line);background:var(--surface);overflow:hidden;cursor:pointer;transition:transform var(--d-press) var(--ease-out),border-color var(--d-ui) var(--ease-out);font:500 12px/1.2 var(--f-ui);color:var(--ink-3)}
.thumbs button:active{transform:scale(.97)}
.thumbs button[aria-pressed="true"]{border:2px solid var(--primary);color:var(--sel-ink)}
.thumbs img{width:100%;height:100%;object-fit:contain;background:var(--img-bg)}
.buy h1{font-size:clamp(32px,3vw,44px);line-height:1.05;font-weight:720;overflow-wrap:anywhere}
.buy .cat{font:600 14px/1 var(--f-ui);color:var(--ink-3);text-decoration:none;display:inline-block;margin-bottom:14px}
.buy .line{margin-top:14px;font-size:17px;line-height:1.5;color:var(--ink-2);display:block;-webkit-line-clamp:unset;overflow:visible}
.price{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-top:24px;padding:14px 16px;background:var(--surface);border-radius:8px;box-shadow:0 0 0 1px rgba(21,32,43,.06);font-weight:600}
.price span{font-weight:400;font-size:14px;color:var(--ink-3)}
.buy .ctas{display:flex;gap:12px;margin-top:24px}
.buy .ctas .btn{flex:1}
.prose{display:grid;gap:14px;max-width:68ch;color:var(--ink-2);font-size:16px;line-height:1.6}
.prose h2,.block-h{font-size:clamp(30px,3vw,40px);line-height:1.1;margin-bottom:8px}
.prose h3{font-size:20px;line-height:1.2}
.prose ul{margin:0;padding-left:18px;display:grid;gap:6px}
.block{margin-top:72px;min-width:0}
.scroller{position:relative;min-width:0}
.scroller::after{content:"";position:absolute;top:0;right:0;bottom:0;width:28px;pointer-events:none;background:linear-gradient(to left,var(--bg),rgba(244,242,237,0))}
.vt-wrap{overflow-x:auto;background:var(--surface);border-radius:10px;box-shadow:0 0 0 1px rgba(21,32,43,.06);-webkit-overflow-scrolling:touch;max-width:100%}
.vt{border-collapse:collapse;min-width:880px;width:100%;font-size:14px}
.vt th,.vt td{padding:12px 14px;border-bottom:1px solid var(--line);text-align:right;white-space:nowrap}
.vt th[scope="row"],.vt thead th:first-child{text-align:left;position:sticky;left:0;background:var(--surface);font-weight:600;max-width:220px;white-space:normal;overflow-wrap:anywhere}
.vt thead th{font-weight:700;background:#FAF9F6}
.cta-band{background:var(--band);padding:56px 0;margin-top:72px}
.cta-band h2{font-size:clamp(28px,3vw,40px);line-height:1.1;margin-bottom:16px;max-width:20ch}
.fixture-note{margin-top:16px;font-size:14px;color:var(--ink-3)}

.ihead.tight{padding:20px 0;display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:8px 40px;align-items:end}
.ihead .who{font:600 14px/1.3 var(--f-ui);color:var(--ink-3)}
.ihead.tight h1{font-size:36px;line-height:1.05;font-weight:720;margin-top:8px}
.ihead.tight p{margin:0;font-size:16px;line-height:1.45;color:var(--ink-2)}
.ilay{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:40px;align-items:start}
.ilay>.card.fcard{padding:28px}
.aside{position:sticky;top:96px;display:grid;gap:16px}
.aside .card{padding:24px}
.aside h2{font-size:18px;line-height:1.2;margin-bottom:14px;font-stretch:112%}
.contact dl{display:grid;gap:14px;margin:18px 0 0}
.contact dt{font:500 12px/1.3 var(--f-ui);color:var(--ink-3)}
.contact dd{margin:2px 0 0;font-size:15px;overflow-wrap:anywhere}
.contact dd a{color:var(--link)}
.before{margin-top:80px;display:grid;grid-template-columns:minmax(0,4fr) minmax(0,8fr);gap:48px}
.before h2{font-size:32px;line-height:1.1}
.steps.inline{margin:0;gap:14px}

.form{display:grid;gap:0}
.fgroup{border:0;margin:0;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px 16px;min-width:0}
.fcard .fgroup+.fgroup{margin-top:32px}
.fgroup legend{grid-column:1/-1;font:700 16px/1.3 var(--f-ui);color:var(--ink);margin-bottom:14px;padding:0;display:flex;gap:10px;align-items:baseline;flex-wrap:wrap}
.fgroup legend small{font:600 12px/1.3 var(--f-ui);color:var(--ink-3)}
.field{display:grid;gap:8px;min-width:0;scroll-margin-top:110px}
.field.full,.boq,.hint,.submit-note,.form-fail,.consent{grid-column:1/-1}
.field>label,.field>.lab{font:600 14px/1.3 var(--f-ui);color:var(--ink)}
.field .opt{font-weight:500;color:var(--ink-3)}
.hint,.submit-note{font:400 14px/1.4 var(--f-ui);color:var(--ink-3)}
.submit-note{margin:8px 0 12px}
.in{appearance:none;-webkit-appearance:none;width:100%;min-height:48px;padding:0 14px;border-radius:8px;border:1px solid var(--field-line);background:var(--field-bg);color:var(--ink);font:400 16px/1.3 var(--f-ui)}
textarea.in{min-height:120px;padding:12px 14px;resize:vertical;line-height:1.5}
.in::placeholder{color:var(--ink-4)}
select.in{padding-right:40px;background-image:var(--chev);background-repeat:no-repeat;background-position:right 14px center;background-size:16px}
.in:focus-visible{outline:2px solid var(--focus);outline-offset:2px;border-color:var(--focus);box-shadow:0 0 0 3px var(--focus-ring)}
.field.has-error .in{border-color:var(--danger)}
.err{display:none;font:500 14px/1.35 var(--f-ui);color:var(--danger)}
.field.has-error .err,.form-fail,.boq.has-error .err,.consent.has-error .err{display:block}
.form-fail{padding:12px 14px;border-radius:8px;border:1px solid var(--danger);background:#FDECEC;margin-bottom:16px}
.seg{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.seg label{position:relative;display:flex;align-items:center;justify-content:center;min-height:44px;padding:0 12px;border-radius:8px;border:1px solid var(--field-line);background:var(--field-bg);font:500 15px/1.2 var(--f-ui);color:var(--ink-2);cursor:pointer;text-align:center;transition:transform var(--d-press) var(--ease-out),border-color var(--d-ui) var(--ease-out),background-color var(--d-ui) var(--ease-out)}
.seg label:active{transform:scale(.97)}
.seg input{position:absolute;opacity:0;inset:0;margin:0;cursor:pointer}
.seg label:has(input:checked){background:var(--sel-bg);border-color:var(--sel-line);color:var(--sel-ink);font-weight:600}
.seg label:has(input:focus-visible){outline:2px solid var(--focus);outline-offset:2px}
.chips{display:flex;flex-wrap:wrap;gap:8px}
.chips button,.chips label{position:relative;display:inline-flex;align-items:center;justify-content:center;min-height:40px;padding:0 14px;border-radius:999px;border:1px solid var(--field-line);background:var(--field-bg);font:500 14px/1.2 var(--f-ui);color:var(--ink-2);cursor:pointer;text-align:center;transition:transform var(--d-press) var(--ease-out),border-color var(--d-ui) var(--ease-out),background-color var(--d-ui) var(--ease-out)}
.chips button:active,.chips label:active{transform:scale(.97)}
.chips button[aria-pressed="true"],.chips label:has(input:checked){background:var(--sel-bg);border-color:var(--sel-line);color:var(--sel-ink);font-weight:600}
.drop{position:relative;display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:2px 14px;min-height:88px;padding:16px 18px;border-radius:10px;border:1px dashed var(--primary);background:#FBFAF7;cursor:pointer}
.drop svg{grid-row:1/3;width:22px;height:22px;color:var(--ink-3)}
.drop b{font:500 15px/1.3 var(--f-ui);color:var(--ink)}
.drop b u{text-decoration-thickness:1px;text-underline-offset:3px}
.drop small{font:400 14px/1.35 var(--f-ui);color:var(--ink-3)}
.drop input{position:absolute;width:1px;height:1px;opacity:0}
.drop:has(input:focus-visible){outline:2px solid var(--focus);outline-offset:2px}
@media (hover:hover) and (pointer:fine){.drop:hover{border-color:var(--focus)}}
.file-rows{list-style:none;margin:8px 0 0;padding:0;display:grid;gap:4px}
.file-row{display:grid;grid-template-columns:minmax(0,1fr) auto 44px;align-items:center;gap:8px;min-height:44px}
.file-name{overflow-wrap:anywhere;font:500 14px/1.35 var(--f-ui)}
.file-size{font:500 14px/1 var(--f-ui);color:var(--ink-3);font-variant-numeric:tabular-nums}
.file-x{width:44px;height:44px;border:0;background:transparent;color:var(--ink-2);font:500 20px/1 var(--f-ui);cursor:pointer;border-radius:8px;padding:0}
.file-x:active{transform:scale(.97)}
@media (hover:hover) and (pointer:fine){.file-x:hover{background:var(--hover-bg)}}
.consent{display:flex;align-items:flex-start;gap:12px;font:400 14px/1.45 var(--f-ui);color:var(--ink-2);cursor:pointer}
.consent input{appearance:none;-webkit-appearance:none;flex:none;width:20px;height:20px;margin-top:1px;border-radius:5px;border:1.5px solid var(--line-strong);background:var(--field-bg);display:grid;place-content:center}
.consent input::after{content:"";width:10px;height:6px;border-left:2px solid var(--on-primary);border-bottom:2px solid var(--on-primary);transform:rotate(-45deg) translate(1px,-1px);opacity:0}
.consent input:checked{background:var(--primary);border-color:var(--primary)}
.consent input:checked::after{opacity:1}
.consent input:focus-visible{outline:2px solid var(--focus);outline-offset:2px}
.form .btn-submit{width:100%;min-height:52px}
.quick .fgroup{grid-template-columns:1fr 1fr}
.success h2{font-size:32px;line-height:1.1;margin-bottom:12px}
.success p{color:var(--ink-2);margin-top:8px}
.success .btn{margin-top:20px}
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}

.acc details{border-top:1px solid var(--line)}
.acc details:last-child{border-bottom:1px solid var(--line)}
.acc summary{list-style:none;display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:56px;padding:14px 0;cursor:pointer;font:600 16px/1.35 var(--f-ui);color:var(--ink)}
.acc summary::-webkit-details-marker{display:none}
.acc summary svg{flex:none;width:20px;height:20px;color:var(--ink-3);transition:transform var(--d-ui) var(--ease-in-out)}
.acc details[open] summary svg{transform:rotate(180deg)}
.acc summary:active{transform:scale(.97)}
.acc .ans{padding:0 0 18px;color:var(--ink-2);font-size:15px;line-height:1.55;max-width:68ch}
.faq-page{max-width:760px;margin-inline:auto}
.faq-page h1{font-size:clamp(32px,4vw,44px);line-height:1.05;margin-bottom:12px}
.allq{margin-top:16px;display:inline-block}

.article{padding-bottom:24px}
.article-head{max-width:720px;padding-top:8px}
.article-head h1{font-size:44px;line-height:1.05;font-weight:720}
.article-head .lede{margin-top:16px;font-size:18px;line-height:1.65;color:var(--ink-2)}
.guide-layout{display:grid;grid-template-columns:minmax(0,720px) minmax(220px,1fr);gap:40px;align-items:start;margin-top:32px}
.guide-content{min-width:0;max-width:720px;font-size:18px;line-height:1.65;color:var(--ink-2)}
.guide-content h2{font-size:30px;line-height:1.15;margin:36px 0 12px;color:var(--ink)}
.guide-content h3{font-size:20px;line-height:1.25;margin:8px 0;color:var(--ink)}
.guide-content p{margin:0 0 16px}
.guide-content a{color:var(--link);text-decoration:underline;text-underline-offset:3px}
.guide-content section{margin-top:8px}
.section-tag{display:block;font:600 12px/1.3 var(--f-ui);letter-spacing:.04em;text-transform:uppercase;color:var(--ink-3);margin-bottom:8px}
.guide-note{background:var(--surface);border-radius:10px;padding:16px 18px;box-shadow:0 0 0 1px rgba(21,32,43,.06);margin:12px 0 20px}
.guide-note strong{display:block;color:var(--ink);margin-bottom:6px}
.guide-check-grid,.guide-columns{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:12px 0 8px}
.guide-check-card,.guide-side-card{background:var(--surface);border-radius:8px;padding:14px 16px;box-shadow:0 0 0 1px rgba(21,32,43,.06);min-width:0}
.guide-check-card span{font:700 12px/1 var(--f-ui);color:var(--ink-3)}
.guide-list{margin:0;padding-left:18px;display:grid;gap:8px}
.guide-table-wrap{overflow-x:auto;max-width:100%;margin:12px 0 8px;border-radius:8px;box-shadow:0 0 0 1px rgba(21,32,43,.06);background:var(--surface)}
.guide-table{border-collapse:collapse;width:100%;min-width:520px;font-size:15px;line-height:1.45}
.guide-table th,.guide-table td{text-align:left;padding:12px 14px;border-bottom:1px solid var(--line);vertical-align:top}
.guide-table th{font-size:14px;color:var(--ink-3);font-weight:600}
.guide-sidebar{display:grid;gap:12px;min-width:0}
.guide-side-card .section-tag{margin-bottom:10px}
.resource-list{display:grid;gap:16px}
.resource-card{background:var(--surface);border-radius:10px;padding:22px 22px 20px;box-shadow:0 1px 2px rgba(21,32,43,.06),0 0 0 1px rgba(21,32,43,.06);display:grid;gap:8px;min-width:0}
.resource-card span{font:700 12px/1 var(--f-ui);color:var(--ink-3)}
.resource-card h2{font-size:24px;line-height:1.2}
.resource-card h2 a{text-decoration:none}
.resource-card h2 a::after{content:"";position:absolute;inset:0}
.resource-card{position:relative}
.resource-card p,.resource-card li{color:var(--ink-2);font-size:16px;line-height:1.5}
.resource-card ul{margin:0;padding-left:18px}
.support{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:28px}
.support article{background:var(--surface);border-radius:8px;padding:18px;box-shadow:0 0 0 1px rgba(21,32,43,.06);min-width:0}
.support h3{font-size:18px;margin-bottom:8px}
.support p{color:var(--ink-2);font-size:15px}
.narrow{max-width:720px}

@media(max-width:960px){
  .hero{padding:28px 0 40px}
  .hero .wrap{grid-template-areas:"t" "m";grid-template-columns:minmax(0,1fr);row-gap:24px}
  .hero .facts,.hero .ctas .btn-secondary,.eyebrow span:nth-child(3),.custom .btn,.quote .card,.aside .pend-desk{display:none}
  .hero .sub{font-size:17px;margin-top:16px}
  .hero .ctas{margin-top:24px}
  .mosaic{width:auto;margin:0 -16px;padding:0 16px;display:flex;overflow-x:auto;scroll-snap-type:x mandatory;scroll-padding-inline:16px;gap:10px;scrollbar-width:none}
  .mosaic .tile{flex:0 0 78%;scroll-snap-align:start}
  .tile.big{grid-row:auto}
  .tile.big .fig{aspect-ratio:4/3}
  .sec{padding:56px 0}
  .sh,.custom,.quote,.faqs,.pd,.ilay,.before,.guide-layout{grid-template-columns:minmax(0,1fr);gap:20px}
  .sh{margin-bottom:24px}
  .sh p{font-size:15px}
  .plates,.plates.pair{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:12px}
  .form .btn-submit,.aside .btn,.btn-block{white-space:normal;text-align:center;line-height:1.25;padding-top:10px;padding-bottom:10px}
  .plate .body{padding:14px}
  .plate h3{font-size:17px}
  .plate p,.plate .keys{display:none}
  .custom .lead{margin:12px 0 0}
  .ctab th,.ctab td{padding:12px 14px;font-size:14px}
  .factory{padding:56px 0}
  .fgrid{grid-template-columns:1fr 1fr}
  .fgrid .pending.desk-only{display:none}
  .fgrid .pending{padding:12px}
  .mrow{grid-template-columns:minmax(0,1fr);gap:4px;padding:14px 0}
  .mrow b{font-size:18px}
  .quote .steps{margin-top:20px}
  #faq .acc details:nth-child(n+4){display:none}
  .faqs h2,.before h2{position:static}
  .before.mob-3 details:nth-child(n+4){display:none}
  footer{margin-top:64px;padding-top:40px}
  footer .wrap{grid-template-columns:minmax(0,1fr);gap:20px}
  footer .about p,footer .col-products,footer .col-company{display:none}
  .fullspec,.keys.buy-keys{grid-template-columns:repeat(2,minmax(0,1fr))}
  .buy .keys{grid-template-columns:repeat(2,minmax(0,1fr))}
  .aside{position:static}
  .ihead.tight{grid-template-columns:minmax(0,1fr);padding:16px 0}
  .ihead.tight h1{font-size:30px}
  .ilay>.card.fcard{padding:20px 16px}
  .fgroup,.quick .fgroup{grid-template-columns:minmax(0,1fr);gap:16px}
  .fcard textarea.in{min-height:96px}
  .before{margin-top:48px}
  .price{flex-direction:column;align-items:flex-start;gap:2px}
  .buy .ctas{flex-direction:column}
  .buy .ctas .btn{white-space:normal;text-align:center}
  .thumbs button{width:64px;height:64px}
  .article-head h1{font-size:30px}
  .guide-content h2{font-size:24px}
  .guide-check-grid,.guide-columns,.support{grid-template-columns:minmax(0,1fr)}
  .block{margin-top:48px}
  .cta-band{margin-top:48px;padding:40px 0}
  .page-intro{padding-top:28px}
}
@media(max-width:760px){
  .hero .ctas .btn{flex:1}
  .btn{min-height:44px}
}
@media (prefers-reduced-motion:reduce){
  .sheet .panel{transition:opacity 180ms var(--ease-out);transform:none;opacity:0}
  .sheet.on .panel{opacity:1}
  .btn:active,.seg label:active,.chips button:active,.chips label:active,.menu-btn:active,.thumbs button:active,.acc summary:active,.file-x:active,.plate h3 a:active{transform:none}
  .acc summary svg,.tile .fig img,.gal [data-slide]{transition:opacity 180ms var(--ease-out)}
  .acc details[open] summary svg{transform:none}
}
