/* ============================================================================
   ADVANCED ROBOTIC SOLUTIONS, soon.arsrobots.com. DESIGN SYSTEM "CONTROL ROOM".
   ARS999 builder A, 2026-09-30. Spec: /root/claude-code/ars999/DESIGN-SPEC.md, section 3.

   One accent, sampled from the client's own logo: #D5181B (--red). Small accent text uses --red-hi.
   Forced dark theme: color-scheme dark here and in the head meta, ONE theme-color, and no
   light/dark media query anywhere in this file.
   CSP style-src 'self': no rule here depends on an inline style, and nothing is injected by script.
   Reserved class families (the widget rail, consent bar, translate panel, accessibility panel, footer map
   and honeypot) are never selected here. The ONE named exception is the back-to-top base compat rule (3.6).
   Scroll-driven effects animate transform only, never opacity or visibility of content, so a
   full-page capture, a print or an unsupported browser shows every word.
   ============================================================================ */

/* ------------------------------------------------------------------ fonts */
@font-face{font-family:'ARS Display';src:url('/assets/fonts/space-grotesk-var.woff2') format('woff2');font-weight:300 700;font-style:normal;font-display:swap}
@font-face{font-family:'ARS Text';src:url('/assets/fonts/inter-var.woff2') format('woff2');font-weight:100 900;font-style:normal;font-display:swap}
@font-face{font-family:'ARS Mono';src:url('/assets/fonts/ibm-plex-mono-400.woff2') format('woff2');font-weight:400;font-style:normal;font-display:swap}

/* ----------------------------------------------------------------- tokens */
:root{
  color-scheme:dark;
  --ground:#07090C; --panel:#0E1117; --raised:#151A22; --rule:#1F2631; --rule-2:#2B3441; --field:#66727F;
  --ink:#F2F4F7; --ink-2:#C5CDD8; --mute:#8C97A6;
  --red:#D5181B; --red-hi:#FF5A5C; --red-lo:#B3121A; --plaque:#F2F4F7; --night:#030406;
  --f-display:'ARS Display','Inter',system-ui,-apple-system,'Segoe UI',Roboto,Arial,sans-serif;
  --f-text:'ARS Text',system-ui,-apple-system,'Segoe UI',Roboto,Arial,sans-serif;
  --f-mono:'ARS Mono',ui-monospace,'SFMono-Regular',Menlo,Consolas,monospace;
  --t-d1:clamp(2rem,1.3rem + 2.4vw,3.5rem);
  --t-d2:clamp(1.625rem,1.2rem + 1.6vw,2.5rem);
  --t-h3:clamp(1.25rem,1.1rem + .6vw,1.5rem);
  --t-lede:clamp(1.0625rem,1rem + .35vw,1.25rem);
  --t-body:1rem; --t-small:.875rem; --t-eye:.75rem;
  --t-stat:clamp(2.25rem,1.6rem + 2.4vw,3.5rem);
  --ease:cubic-bezier(.2,.7,.2,1); --dur-1:160ms; --dur-2:320ms;
  --hdr-h:64px; --sub-h:48px;
  --sec-pad:clamp(56px,9vw,128px);
  --bgc:var(--ground);
  --grid-ink:rgba(242,244,247,.035);
}
/* Compat block (3.2, required): widgets.css and footer-map.css read these names. */
:root{
  --paper:var(--ground); --paper-2:var(--panel); --paper-3:var(--raised);
  --line:var(--rule); --line-2:var(--rule-2);
  --gold:var(--red-hi);   /* consent primary puts --paper text on --gold: 6.52:1. Mapping --gold to --red would give 3.77:1 and fail */
  --gold-dk:#FF7A7C;      /* hover: ground text on it 7.90:1; as text on --raised 6.92:1 */
  --surface-dark:var(--panel); --surface-dark-2:var(--raised);
  --ink-on-dark:var(--ink); --ink-muted:var(--mute); --hairline:var(--rule); --accent:var(--red-hi);
  --body:var(--f-text); --gut:clamp(20px,5vw,64px); --wrap:1280px;
  --r-sm:2px; --r-round:9999px;
  --s1:8px; --s2:16px; --s3:24px; --s4:40px; --s5:64px; --s6:96px; --s7:140px;
}
@media (min-width:768px){:root{--t-body:1.0625rem}}
@media (min-width:1024px){:root{--hdr-h:72px}}

/* ------------------------------------------------------------------- base */
*,*::before,*::after{box-sizing:border-box}
html,body{max-width:100%;overflow-x:hidden}
@supports (overflow-x:clip){html,body{overflow-x:clip}}
html{-webkit-text-size-adjust:100%;text-size-adjust:100%;scroll-padding-top:calc(var(--hdr-h) + 16px)}
body{margin:0;background:var(--ground);color:var(--ink);font-family:var(--f-text);font-size:var(--t-body);line-height:1.65;
  font-optical-sizing:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility}
/* Page body classes (4.7: p- plus the registry key, / as -). One per registry key, 27. Each page starts on the ground, so the
   notch color resolves to it until a section sets its own. Row 11: a key added to the registry without a line here is caught. */
.p-home,.p-capabilities,.p-robot-programming,.p-controls-engineering,.p-controls-implementation,.p-training-programs,
.p-production-support,.p-integration-support,.p-preventative-maintenance,.p-industries,.p-industries-automotive,
.p-industries-life-sciences,.p-industries-pharmaceutical,.p-industries-food-and-beverage,.p-industries-aerospace,
.p-industries-defense,.p-industries-agriculture,.p-industries-marine,.p-industries-ship-building,.p-certifications,
.p-certifications-wbenc,.p-certifications-other-certifications,.p-company,.p-contact,.p-privacy,.p-terms,.p-404{--bgc:var(--ground)}
img,svg,video{max-width:100%;height:auto}
img{display:block}
h1,h2,h3,h4{margin:0;font-family:var(--f-display);font-weight:600;color:var(--ink);text-wrap:balance}
p{margin:0;text-wrap:pretty}
ul,ol,dl{margin:0;padding:0}
ul,ol{list-style:none}
dd{margin:0}
figure{margin:0}
blockquote{margin:0}
a{color:inherit;text-decoration:none}
a:focus-visible,button:focus-visible,summary:focus-visible,[tabindex]:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid var(--red-hi);outline-offset:2px}
main{display:block}
main:focus{outline:none}
.c-prose a,.c-note a{overflow-wrap:anywhere}
::selection{background:var(--red);color:#FFFFFF}

/* -------------------------------------------------------------- utilities */
.u-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}
.u-skip{position:absolute;left:12px;top:-100px;z-index:10000000;background:var(--red-hi);color:var(--ground);font-weight:600;padding:12px 16px;border-radius:var(--r-sm)}
.u-skip:focus{top:12px}
.l-wrap{width:100%;max-width:var(--wrap);margin-inline:auto;padding-inline:var(--gut)}

/* --------------------------------------------------------------- header */
.c-hdr{position:sticky;top:0;z-index:1000;background:rgba(7,9,12,.94);box-shadow:0 1px 0 var(--rule);
  transition:background-color var(--dur-2) var(--ease),box-shadow var(--dur-2) var(--ease)}
/* no backdrop-filter on the header: it would make the header the containing block of the fixed drawer */
.c-hdr.is-scrolled{background:rgba(21,26,34,.96);box-shadow:0 1px 0 var(--rule-2),0 12px 32px rgba(0,0,0,.35)}
.c-hdr__bar{display:flex;align-items:center;gap:20px;height:var(--hdr-h);white-space:nowrap}
.c-hdr__logo{display:flex;align-items:center;flex:0 0 auto;min-height:44px}
.c-hdr__logo img{height:40px;width:auto}
.c-hdr__act{display:flex;align-items:center;gap:10px;margin-left:auto;flex:0 0 auto}
.c-hdr__call{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;border:1px solid var(--rule-2);border-radius:var(--r-sm);color:var(--ink);
  transition:border-color var(--dur-1) var(--ease),background-color var(--dur-1) var(--ease)}
.c-hdr__call:hover{border-color:var(--field);background:var(--raised)}
.c-hdr__call .c-i{width:20px;height:20px}
.c-hdr__act .c-hdr__sup,.c-hdr__act .c-hdr__start{display:none}
.c-hdr__fill{position:absolute;left:0;bottom:-1px;height:2px;width:0;background:var(--red);pointer-events:none}
.c-burger{display:inline-flex;flex-direction:column;justify-content:center;align-items:center;gap:5px;width:44px;height:44px;padding:0;border:1px solid var(--rule-2);
  border-radius:var(--r-sm);background:transparent;color:var(--ink);cursor:pointer}
.c-burger span{display:block;width:20px;height:2px;background:currentColor;transition:transform var(--dur-2) var(--ease),opacity var(--dur-1) var(--ease)}
.c-burger[aria-expanded="true"] span:nth-child(1){transform:translateY(7px) rotate(45deg)}
.c-burger[aria-expanded="true"] span:nth-child(2){opacity:0}
.c-burger[aria-expanded="true"] span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}

/* nav: a drawer under 1024, one line of links at 1024 and up */
.c-nav{display:none;position:fixed;left:0;right:0;top:var(--hdr-h);bottom:0;z-index:999;overflow-y:auto;overscroll-behavior:contain;
  background:var(--ground);border-top:1px solid var(--rule);padding:8px var(--gut) 40px;white-space:normal}
body.has-drawer .c-nav{display:block}
body.has-drawer{overflow:hidden}
.c-nav__l>li{border-bottom:1px solid var(--rule)}
.c-nav__top{display:flex;align-items:center;min-height:52px;font-family:var(--f-display);font-size:1.25rem;font-weight:600;color:var(--ink)}
.c-nav__top[aria-current="page"],.c-nav__l>li.is-active>.c-nav__top{color:var(--red-hi)}
.c-mega{padding:0 0 16px}
.c-mega__l{display:grid;gap:2px}
.c-mega__a{display:flex;align-items:center;gap:12px;min-height:44px;padding:6px 0;color:var(--ink-2)}
.c-mega__a:hover,.c-mega__a[aria-current="page"]{color:var(--ink)}
.c-mega__a .c-i{width:20px;height:20px;flex:0 0 auto;color:var(--mute)}
.c-mega__i{font-family:var(--f-mono);font-size:var(--t-eye);letter-spacing:.14em;color:var(--red-hi);flex:0 0 auto}
.c-mega__lab{font-weight:500}
.c-mega__line{display:none}
.c-mega__all{display:inline-flex;align-items:center;gap:8px;min-height:44px;font-family:var(--f-mono);font-size:var(--t-eye);letter-spacing:.14em;text-transform:uppercase;color:var(--mute)}
.c-mega__all:hover{color:var(--ink)}
.c-mega__all .c-i{width:16px;height:16px}
.c-nav__extra{display:grid;gap:12px;padding-top:24px}
.c-nav__extra .c-btn{width:100%}
.c-nav__contact{display:grid;gap:4px;margin-top:8px;font-family:var(--f-mono);font-size:var(--t-small);color:var(--ink-2)}
.c-nav__contact a{display:inline-flex;align-items:center;min-height:44px;overflow-wrap:anywhere}

@media (min-width:1024px){
  .c-burger{display:none}
  .c-hdr__act .c-hdr__start{display:inline-flex}
  .c-nav,body.has-drawer .c-nav{display:block;position:static;padding:0;border:0;background:transparent;overflow:visible;margin-left:12px}
  body.has-drawer{overflow:visible}
  .c-nav__l{display:flex;align-items:stretch;gap:4px;height:var(--hdr-h)}
  .c-nav__l>li{border:0;display:flex;align-items:center;position:static}
  .c-nav__top{min-height:44px;padding:0 12px;font-family:var(--f-text);font-size:.9375rem;font-weight:500;color:var(--ink-2);position:relative;height:100%}
  .c-nav__top:hover{color:var(--ink)}
  .c-nav__top[aria-current="page"],.c-nav__l>li.is-active>.c-nav__top{color:var(--ink)}
  .c-nav__top[aria-current="page"]::after,.c-nav__l>li.is-active>.c-nav__top::after{content:"";position:absolute;left:12px;right:12px;bottom:-1px;height:2px;background:var(--red)}
  .has-panel>.c-nav__top .c-nav__chev{width:14px;height:14px;margin-left:6px;color:var(--mute);transition:transform var(--dur-1) var(--ease)}
  .c-mega{position:absolute;left:0;right:0;top:100%;display:block;visibility:hidden;opacity:0;transform:translateY(-6px);pointer-events:none;
    background:var(--panel);border-top:1px solid var(--rule-2);border-bottom:1px solid var(--rule-2);padding:28px 0 32px;
    box-shadow:0 24px 48px rgba(0,0,0,.55);transition:opacity var(--dur-1) var(--ease),transform var(--dur-1) var(--ease),visibility 0s linear var(--dur-1)}
  .has-panel:hover>.c-mega,.has-panel:focus-within>.c-mega{visibility:visible;opacity:1;transform:none;pointer-events:auto;transition-delay:0s}
  .has-panel.is-closed>.c-mega{visibility:hidden;opacity:0;pointer-events:none}
  .has-panel:hover>.c-nav__top .c-nav__chev,.has-panel:focus-within>.c-nav__top .c-nav__chev{transform:rotate(180deg)}
  .c-mega__in{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px 24px;align-items:start}
  .c-mega--sm .c-mega__in{grid-template-columns:repeat(3,minmax(0,1fr))}
  .c-mega__l{display:contents}
  .c-mega__a{display:grid;grid-template-columns:auto 1fr;grid-template-rows:auto auto;column-gap:12px;row-gap:2px;align-items:start;padding:12px;margin:0 -12px;border:1px solid transparent;border-radius:var(--r-sm)}
  .c-mega__a:hover,.c-mega__a:focus-visible{background:var(--raised);border-color:var(--rule-2)}
  .c-mega__a .c-i{grid-row:1 / span 2;width:22px;height:22px;margin-top:2px;color:var(--ink-2)}
  .c-mega__i{display:none}
  .c-mega__lab{color:var(--ink);font-weight:600;white-space:normal}
  .c-mega__line{display:block;grid-column:2;font-size:var(--t-small);line-height:1.45;color:var(--mute);white-space:normal}
  .c-mega__all{grid-column:1 / -1;margin-top:8px}
  .c-nav__extra{display:none}
}
@media (min-width:1280px){.c-hdr__act .c-hdr__sup{display:inline-flex}}

/* --------------------------------------------------------------- buttons */
.c-btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:44px;padding:0 20px;border:1px solid transparent;border-radius:var(--r-sm);
  font-family:var(--f-text);font-size:.9375rem;font-weight:600;line-height:1.2;letter-spacing:.005em;white-space:nowrap;cursor:pointer;
  transition:background-color var(--dur-1) var(--ease),border-color var(--dur-1) var(--ease),color var(--dur-1) var(--ease)}
.c-btn .c-i{width:18px;height:18px;flex:0 0 auto;transition:transform var(--dur-1) var(--ease)}
.c-btn:hover .c-btn__i{transform:translateX(4px)}
.c-btn--red{background:var(--red);color:#FFFFFF}
.c-btn--red:hover,.c-btn--red:active{background:var(--red-lo)}
.c-btn--ghost{border-color:var(--field);color:var(--ink);background:transparent}
.c-btn--ghost:hover{background:var(--raised);border-color:var(--ink-2)}
.c-btn--link{padding:0 4px;color:var(--ink);background:transparent}
.c-btn--link:hover{text-decoration:underline;text-decoration-color:var(--red-hi);text-underline-offset:5px;text-decoration-thickness:1px}
.c-btn--tel{font-family:var(--f-mono);font-weight:400;letter-spacing:.02em}
.c-btn__lead{color:var(--red-hi)}
.c-ctas{display:flex;flex-wrap:wrap;align-items:center;gap:12px}

/* ---------------------------------------------------------------- chips */
.c-pills{display:flex;flex-wrap:wrap;gap:6px}
.c-pill{display:inline-flex;align-items:center;min-height:26px;padding:3px 10px;border:1px solid var(--rule-2);border-radius:var(--r-round);
  font-family:var(--f-mono);font-size:.75rem;line-height:1.3;letter-spacing:.04em;color:var(--ink-2)}
.c-pill__by{margin-left:.5em;color:var(--mute)}

/* -------------------------------------------------------------- eyebrow */
.c-eye{display:flex;align-items:center;gap:12px;font-family:var(--f-mono);font-size:var(--t-eye);line-height:1.4;letter-spacing:.14em;text-transform:uppercase;color:var(--mute)}
.c-eye__i{color:var(--red-hi)}
.c-eye__r{display:inline-block;width:24px;height:1px;background:var(--rule-2);flex:0 0 auto}
.c-eye--node{color:var(--ink-2)}
.c-eye__node{display:inline-block;width:7px;height:7px;background:var(--red);transform:rotate(45deg);flex:0 0 auto}

/* ------------------------------------------------------------ texture */
.c-hero,.c-cta{position:relative;isolation:isolate}
.c-hero::before,.c-cta::before{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;
  background-image:linear-gradient(var(--grid-ink) 1px,transparent 1px),linear-gradient(90deg,var(--grid-ink) 1px,transparent 1px);
  background-size:64px 64px;background-position:-1px -1px;
  -webkit-mask-image:linear-gradient(to bottom,#000 0%,#000 55%,transparent 100%);mask-image:linear-gradient(to bottom,#000 0%,#000 55%,transparent 100%)}

/* ----------------------------------------------------------------- hero */
.c-hero{padding-top:clamp(20px,4vh,48px);padding-bottom:clamp(40px,6vw,88px)}
@media (max-height:700px){.c-hero{padding-top:16px}}
.c-hero__grid{display:grid;grid-template-columns:minmax(0,1fr);gap:32px;align-items:center}
.c-hero__text>.c-eye{margin-bottom:12px}
.c-hero__h{font-size:var(--t-d1);line-height:1.04;letter-spacing:-.025em;font-weight:600;max-width:18ch}
.c-hero--home .c-hero__h{max-width:18ch}
.c-hero__where{display:block;margin-top:10px;font-family:var(--f-text);font-size:var(--t-lede);font-weight:400;line-height:1.35;letter-spacing:0;color:var(--ink-2)}
.c-hero .c-ctas{margin-top:20px}
.c-hero .c-ctas .c-btn{min-height:48px}
.c-hero__chips{margin-top:14px}
.c-hero .c-lede{margin-top:20px}
.c-lede{max-width:60ch;font-size:var(--t-lede);line-height:1.55;color:var(--ink-2)}
.c-hero__media,.c-hero__panel{min-width:0}
@media (max-width:1023px){.c-hero__panel{max-height:220px;overflow:hidden}}
@media (min-width:1024px){
  .c-hero__grid{grid-template-columns:repeat(12,minmax(0,1fr));gap:24px}
  .c-hero__text{grid-column:1 / span 7}
  .c-hero__media,.c-hero__panel{grid-column:8 / span 5}
  .c-hero__grid--solo .c-hero__text{grid-column:1 / span 8}
  .c-hero--page .c-hero__h{max-width:20ch}
}

/* breadcrumbs */
.c-crumbs{margin-bottom:16px}
.c-crumbs ol{display:flex;flex-wrap:wrap;align-items:center;font-family:var(--f-mono);font-size:var(--t-eye);letter-spacing:.08em;color:var(--mute)}
.c-crumbs li{display:inline-flex;align-items:center}
.c-crumbs li+li::before{content:"/";margin:0 10px;color:var(--rule-2)}
/* row 5: a 44x44 target. The padding is taken back by an equal negative margin, so the crumb row still lays out at 32px
   and the pinned hero geometry (row 8's CTA budget) does not move. Neighbors cannot overlap: each side gives up 6px of the
   separator's 10px margin. */
.c-crumbs a{display:inline-flex;align-items:center;min-height:44px;min-width:44px;padding:6px;margin:-6px;color:var(--mute)}
.c-crumbs a:hover{color:var(--ink)}
.c-crumbs [aria-current="page"]{color:var(--ink-2)}

/* ---------------------------------------------------------- media frame */
.c-frame{position:relative;border:1px solid var(--rule-2);border-radius:var(--r-sm);background:var(--panel)}
.c-frame::after{content:"";position:absolute;top:-1px;right:-1px;width:0;height:0;border-style:solid;border-width:0 15px 15px 0;border-color:transparent var(--bgc) transparent transparent;pointer-events:none}
.c-frame__stage{position:relative;padding:clamp(10px,1.6vw,18px);
  background-image:
    linear-gradient(var(--grid-ink) 1px,transparent 1px),linear-gradient(90deg,var(--grid-ink) 1px,transparent 1px),
    linear-gradient(var(--mute),var(--mute)),linear-gradient(var(--mute),var(--mute)),linear-gradient(var(--mute),var(--mute)),linear-gradient(var(--mute),var(--mute)),
    linear-gradient(var(--mute),var(--mute)),linear-gradient(var(--mute),var(--mute)),linear-gradient(var(--mute),var(--mute)),linear-gradient(var(--mute),var(--mute));
  background-size:32px 32px,32px 32px,12px 1px,1px 12px,12px 1px,1px 12px,12px 1px,1px 12px,12px 1px,1px 12px;
  background-position:-1px -1px,-1px -1px,6px 6px,6px 6px,calc(100% - 22px) 6px,calc(100% - 22px) 6px,6px calc(100% - 6px),6px calc(100% - 17px),calc(100% - 6px) calc(100% - 6px),calc(100% - 6px) calc(100% - 17px);
  background-repeat:repeat,repeat,no-repeat,no-repeat,no-repeat,no-repeat,no-repeat,no-repeat,no-repeat,no-repeat}
.c-frame__img,.c-frame__video,.c-frame__still{width:100%;height:auto}
.c-frame--svg .c-sch{display:block}
.c-frame__cap{padding:10px 14px;border-top:1px solid var(--rule-2);font-family:var(--f-mono);font-size:.75rem;line-height:1.5;letter-spacing:.02em;color:var(--mute)}
.c-frame__still{display:none}
.c-frame__pause{position:absolute;left:12px;top:12px;display:inline-flex;align-items:center;gap:8px;min-height:44px;padding:0 14px;border:1px solid var(--field);border-radius:var(--r-sm);
  background:rgba(7,9,12,.85);color:var(--ink);font:500 .875rem/1 var(--f-text);cursor:pointer}
.c-frame__pause .c-i{width:16px;height:16px}

/* cell schematic (revision 3). Tokens only. */
.c-sch{width:100%;height:auto;display:block}
.c-sch__fence{fill:none;stroke:var(--field);stroke-width:1.5;stroke-dasharray:8 5}
.c-sch__eq{fill:var(--panel);stroke:var(--ink-2);stroke-width:1.5}
.c-sch__dim{fill:none;stroke:var(--rule-2);stroke-width:1.25}
.c-sch__env{fill:none;stroke:var(--mute);stroke-width:1;stroke-dasharray:3 6}
.c-sch__arm{fill:none;stroke:var(--ink);stroke-linecap:round}
.c-sch__joint{fill:var(--ground);stroke:var(--ink);stroke-width:2}
.c-sch__net{fill:none;stroke:var(--mute);stroke-width:1.25}
.c-sch__node{fill:var(--red)}
.c-sch__safe{fill:none;stroke:var(--red-hi);stroke-width:1.5;stroke-dasharray:2 4}
.c-sch__part{fill:var(--red)}
.c-sch__t{font:400 15px 'ARS Mono',ui-monospace,monospace;letter-spacing:.12em;fill:var(--mute)}
.c-sch__h{font:400 15px 'ARS Mono',ui-monospace,monospace;letter-spacing:.14em;fill:var(--ink-2)}
@media (max-width:599px){.c-sch__t,.c-sch__h{display:none}}
@media (prefers-reduced-motion:no-preference){.c-sch__part{animation:c-sch-part 4s var(--ease) 1 forwards}}
@keyframes c-sch-part{to{transform:translateX(232px)}}

/* -------------------------------------------------------------- sub-nav */
.c-subnav{position:sticky;top:var(--hdr-h);z-index:900;background:rgba(7,9,12,.96);border-bottom:1px solid var(--rule)}
.c-subnav ul{display:flex;gap:4px;overflow-x:auto;overscroll-behavior-x:contain;scrollbar-width:thin;scrollbar-color:var(--rule-2) transparent}
.c-subnav a{display:inline-flex;align-items:center;min-height:var(--sub-h);padding:0 12px;white-space:nowrap;position:relative;
  font-family:var(--f-mono);font-size:var(--t-eye);letter-spacing:.14em;text-transform:uppercase;color:var(--mute)}
.c-subnav li:first-child a{padding-left:0}
.c-subnav a:hover,.c-subnav a[aria-current="true"]{color:var(--ink)}
.c-subnav a[aria-current="true"]::after{content:"";position:absolute;left:12px;right:12px;bottom:0;height:2px;background:var(--red)}
.c-subnav li:first-child a[aria-current="true"]::after{left:0}

/* ------------------------------------------------------------- sections */
.sec{position:relative;padding-block:var(--sec-pad);scroll-margin-top:calc(var(--hdr-h) + var(--sub-h))}
.sec--ground{--bgc:var(--ground);background:var(--ground)}
.sec--panel{--bgc:var(--panel);background:var(--panel);border-block:1px solid var(--rule)}
.sec--plaque{--bgc:var(--plaque);background:var(--plaque);color:#0A0A0A}
.sec--plaque .c-h2,.sec--plaque h3{color:#0A0A0A}
/* signature 1: the trace line. 1px down the left edge, a 7px red node level with the eyebrow and 48px of red below it */
.sec::before{content:"";position:absolute;top:0;bottom:0;left:8px;width:1px;pointer-events:none;transform-origin:top;
  background:linear-gradient(to bottom,var(--rule-2) 0,var(--rule-2) calc(var(--sec-pad) + 8px),var(--red) calc(var(--sec-pad) + 8px),var(--red) calc(var(--sec-pad) + 56px),var(--rule-2) calc(var(--sec-pad) + 56px))}
.sec::after{content:"";position:absolute;left:5px;top:calc(var(--sec-pad) + 2px);width:7px;height:7px;background:var(--red);transform:rotate(45deg);pointer-events:none}
@media (min-width:1024px){.sec::before{left:calc(var(--gut) / 2)}.sec::after{left:calc(var(--gut) / 2 - 3px)}}
.sec--bare::before,.sec--bare::after{display:none}
.sec--bare{padding-block:clamp(24px,4vw,56px)}
@supports (animation-timeline:view()){
  @media (prefers-reduced-motion:no-preference){
    .sec::before{animation:sec-trace linear both;animation-timeline:view();animation-range:entry 0% cover 45%}
  }
}
@keyframes sec-trace{from{transform:scaleY(.08)}to{transform:scaleY(1)}}
.c-h2{margin-top:14px;font-size:var(--t-d2);line-height:1.1;letter-spacing:-.02em;max-width:24ch}
.c-eye+.c-h2{margin-top:14px}
.c-h2:first-child{margin-top:0}
.c-intro{margin-top:16px;max-width:62ch;font-size:var(--t-lede);line-height:1.55;color:var(--ink-2)}
.sec>.l-wrap>:is(ul,ol,dl,div,figure,.c-grid,.c-cards,.c-index,.c-spec,.c-process,.c-flow,.c-quote,.c-faq,.c-plates,.c-plaques,.c-check,.c-trio,.c-links,.c-range){margin-top:clamp(28px,4vw,48px)}
.sec>.l-wrap>h3{margin-top:clamp(36px,5vw,56px)}
.sec>.l-wrap>h3+ul{margin-top:18px}
.sec>.l-wrap>.c-plates+.c-note{margin-top:14px}
.sec>.l-wrap>.c-links{margin-top:28px}
.c-note{max-width:68ch;font-size:var(--t-small);color:var(--mute)}
.c-plaques__h,.c-plates__h{font-size:var(--t-h3);letter-spacing:-.01em;line-height:1.25}

/* ----------------------------------------------------------- spec strip */
.c-spec{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));border-top:1px solid var(--rule-2);border-bottom:1px solid var(--rule-2)}
.sec--bare>.l-wrap>.c-spec{margin-top:0}
.c-spec__cell{padding:22px 16px 22px 0;display:flex;flex-direction:column;gap:6px;min-width:0}
.c-spec__cell:nth-child(2n){padding-left:16px;border-left:1px solid var(--rule-2)}
.c-spec__cell:nth-child(n+3){border-top:1px solid var(--rule-2)}
.c-spec dt{font-family:var(--f-mono);font-size:var(--t-eye);letter-spacing:.14em;text-transform:uppercase;color:var(--mute)}
.c-spec__v{font-family:var(--f-display);font-size:var(--t-stat);font-weight:600;line-height:1;letter-spacing:-.02em;font-variant-numeric:tabular-nums;color:var(--ink);overflow-wrap:anywhere}
.c-spec__v--long{font-size:clamp(1.25rem,.95rem + .9vw,1.75rem);line-height:1.15;letter-spacing:-.01em}
.c-spec__n{font-size:var(--t-small);line-height:1.45;color:var(--ink-2)}
@media (min-width:1024px){
  .c-spec{grid-template-columns:repeat(var(--spec-n,5),minmax(0,1fr))}
  .c-spec:has(>.c-spec__cell:nth-child(3):last-child){--spec-n:3}
  .c-spec:has(>.c-spec__cell:nth-child(4):last-child){--spec-n:4}
  .c-spec:has(>.c-spec__cell:nth-child(6):last-child){--spec-n:6}
  .c-spec__cell,.c-spec__cell:nth-child(2n){padding:26px 20px;border-left:1px solid var(--rule-2);border-top:0}
  .c-spec__cell:first-child{border-left:0;padding-left:0}
  .c-spec__cell:nth-child(n+3){border-top:0}
}

/* --------------------------------------------------------- service cards */
.c-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,280px),1fr));gap:16px}
.c-card{position:relative;display:flex;flex-direction:column;gap:10px;min-height:44px;padding:26px 24px 24px;border:1px solid var(--rule-2);border-radius:var(--r-sm);background:var(--panel);
  transition:border-color var(--dur-1) var(--ease),background-color var(--dur-1) var(--ease)}
.sec--panel .c-card{background:var(--ground)}
.c-card::after,.c-tile::after,.c-xlink::after{content:"";position:absolute;top:-1px;right:-1px;width:0;height:0;border-style:solid;border-width:0 15px 15px 0;border-color:transparent var(--bgc) transparent transparent;pointer-events:none}
.c-card:hover{border-color:var(--field);background:var(--raised)}
.c-card:has(.c-card__a:focus-visible){outline:3px solid var(--red-hi);outline-offset:2px}
.c-card__icon{width:28px;height:28px;color:var(--ink-2)}
.c-card__i{font-family:var(--f-mono);font-size:var(--t-eye);letter-spacing:.14em;color:var(--red-hi);margin-top:6px}
.c-card__h{font-size:var(--t-h3);line-height:1.25;letter-spacing:-.01em}
.c-card__a::before{content:"";position:absolute;inset:0;z-index:1}
.c-card__a:focus-visible{outline:none}
.c-card__line{font-size:var(--t-small);line-height:1.55;color:var(--ink-2)}
.c-card .c-pills{margin-top:auto;padding-top:8px}
.c-card__go{position:absolute;top:24px;right:24px;width:20px;height:20px;color:var(--mute);transition:transform var(--dur-1) var(--ease),color var(--dur-1) var(--ease)}
.c-card:hover .c-card__go{color:var(--red-hi);transform:translate(3px,-3px)}
.c-cards--grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,280px),1fr))}
.c-cards--compact{grid-template-columns:repeat(auto-fit,minmax(min(100%,240px),1fr));gap:12px}
.c-cards--compact .c-card{padding:20px 20px 18px;gap:6px}
.c-cards--compact .c-card__h{font-size:1.125rem}

/* ------------------------------------------------------- industry index */
.c-index{display:grid;grid-template-columns:minmax(0,1fr)}
.c-index--index{border-top:1px solid var(--rule-2)}
.c-index__i{position:relative;display:grid;grid-template-columns:auto auto minmax(0,1fr) auto;grid-template-areas:"n icon h go" ". . line line" ". . meta meta";column-gap:14px;row-gap:6px;align-items:center;
  padding:20px 4px;border-bottom:1px solid var(--rule-2);transition:background-color var(--dur-1) var(--ease)}
.c-index__n{grid-area:n;font-family:var(--f-mono);font-size:var(--t-eye);letter-spacing:.14em;color:var(--red-hi)}
.c-index__icon{grid-area:icon;width:24px;height:24px;color:var(--ink-2)}
.c-index__h{grid-area:h;font-size:clamp(1.125rem,1rem + .5vw,1.375rem);line-height:1.25;letter-spacing:-.01em}
.c-index__a::before{content:"";position:absolute;inset:0;z-index:1}
.c-index__a:focus-visible{outline:none}
.c-index__i:has(.c-index__a:focus-visible){outline:3px solid var(--red-hi);outline-offset:-3px}
.c-index__line{grid-area:line;font-size:var(--t-small);line-height:1.5;color:var(--ink-2);max-width:56ch}
.c-index__meta{grid-area:meta}
.c-index__go{grid-area:go;width:20px;height:20px;color:var(--mute);transition:transform var(--dur-1) var(--ease),color var(--dur-1) var(--ease)}
.c-index__i:hover{background:var(--raised)}
.c-index__i:hover .c-index__go{color:var(--red-hi);transform:translate(3px,-3px)}
.c-pill--group{color:var(--mute)}
@media (min-width:1024px){
  .c-index--index{grid-template-columns:repeat(2,minmax(0,1fr));column-gap:48px;border-top:0}
  .c-index--index .c-index__i{border-top:1px solid var(--rule-2);border-bottom:0}
  .c-index--index .c-index__i:nth-last-child(-n+2){border-bottom:1px solid var(--rule-2)}
}
.c-index--tiles{grid-template-columns:repeat(auto-fill,minmax(min(100%,300px),1fr));gap:16px}
.c-index--tiles .c-index__i{border:1px solid var(--rule-2);border-radius:var(--r-sm);background:var(--panel);padding:22px 20px;grid-template-areas:"n icon h go" "line line line line" "meta meta meta meta";align-content:start}
.sec--panel .c-index--tiles .c-index__i{background:var(--ground)}
.c-index--tiles .c-index__i::after{content:"";position:absolute;top:-1px;right:-1px;width:0;height:0;border-style:solid;border-width:0 15px 15px 0;border-color:transparent var(--bgc) transparent transparent;pointer-events:none}

/* ----------------------------------------------------------- generic cards */
.c-grid{display:grid;grid-template-columns:minmax(0,1fr);gap:16px}
@media (min-width:600px){.c-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (min-width:1024px){.c-grid--2{grid-template-columns:repeat(2,minmax(0,1fr))}.c-grid--3{grid-template-columns:repeat(3,minmax(0,1fr))}.c-grid--4{grid-template-columns:repeat(4,minmax(0,1fr))}}
.c-tile{position:relative;display:flex;flex-direction:column;gap:10px;padding:24px 22px;border:1px solid var(--rule-2);border-radius:var(--r-sm);background:var(--panel)}
.sec--panel .c-tile{background:var(--ground)}
.c-tile__i{width:26px;height:26px;color:var(--ink-2)}
.c-tile__h{font-size:1.1875rem;line-height:1.3;letter-spacing:-.01em}
.c-tile p{font-size:var(--t-small);line-height:1.6;color:var(--ink-2)}
.c-tile.has-link{transition:border-color var(--dur-1) var(--ease),background-color var(--dur-1) var(--ease)}
.c-tile.has-link:hover{border-color:var(--field);background:var(--raised)}
.c-tile__a::before{content:"";position:absolute;inset:0;z-index:1}
.c-tile__a:focus-visible{outline:none}
.c-tile:has(.c-tile__a:focus-visible){outline:3px solid var(--red-hi);outline-offset:2px}

/* ------------------------------------------------------------ checklist */
.c-check{display:grid;grid-template-columns:minmax(0,1fr);gap:0 40px}
@media (min-width:768px){.c-check--2{grid-template-columns:repeat(2,minmax(0,1fr))}}
.c-check li{position:relative;padding:14px 0 14px 34px;border-bottom:1px solid var(--rule);line-height:1.5}
.c-check li::before{content:"";position:absolute;left:4px;top:19px;width:12px;height:7px;border-left:2px solid var(--red-hi);border-bottom:2px solid var(--red-hi);transform:rotate(-45deg)}
/* row 5: a 44px target; 8px padding taken back by an equal negative margin, so one-line and wrapped rows lay out as before
   (the box grows into the li's 14px padding, never into the next row). */
.c-check a{display:inline-flex;align-items:center;gap:8px;min-height:44px;padding-block:8px;margin-block:-8px;text-decoration:underline;text-decoration-color:var(--rule-2);text-underline-offset:5px}
.c-check a:hover{text-decoration-color:var(--red-hi)}
.c-check__go{width:16px;height:16px;color:var(--mute)}

/* ----------------------------------------------------------------- trio */
.c-trio{display:grid;grid-template-columns:minmax(0,1fr);gap:28px}
@media (min-width:768px){.c-trio{grid-template-columns:repeat(3,minmax(0,1fr));gap:32px}}
.c-trio__c{padding-top:18px;border-top:1px solid var(--rule-2);position:relative}
.c-trio__c::before{content:"";position:absolute;top:-1px;left:0;width:32px;height:2px;background:var(--red)}
.c-trio h3{font-size:1.125rem;line-height:1.3}
.c-trio p{margin-top:10px;color:var(--ink-2)}

/* ---------------------------------------------------------------- quote */
.c-quote{max-width:62ch;padding-left:24px;border-left:2px solid var(--red)}
.c-quote p{font-family:var(--f-display);font-size:clamp(1.25rem,1.05rem + .8vw,1.625rem);font-weight:400;line-height:1.4;letter-spacing:-.01em;color:var(--ink)}
.c-quote p::before{content:"\201C"}
.c-quote p::after{content:"\201D"}
.c-quote figcaption{margin-top:14px;font-family:var(--f-mono);font-size:var(--t-eye);letter-spacing:.14em;text-transform:uppercase;color:var(--mute)}
.sec>.l-wrap>.c-quote+.c-quote{margin-top:28px}

/* ---------------------------------------------------------------- range */
.c-range{max-width:720px}
.c-range__bar{position:relative;display:flex;justify-content:space-between;padding-top:22px;font-family:var(--f-mono);font-size:var(--t-eye);letter-spacing:.14em;text-transform:uppercase;color:var(--ink-2)}
.c-range__bar::before{content:"";position:absolute;left:0;right:0;top:0;height:8px;border-radius:var(--r-sm);background:linear-gradient(90deg,var(--rule-2),var(--field) 55%,var(--red))}
.c-range__from{text-align:left}
.c-range__to{text-align:right}
.c-range figcaption{margin-top:14px;font-size:var(--t-small);color:var(--mute)}

/* -------------------------------------------------------------- process */
.c-process{display:grid;grid-template-columns:minmax(0,1fr);counter-reset:none;position:relative}
.c-step{position:relative;padding:0 0 32px 56px}
.c-step::before{content:"";position:absolute;left:19px;top:40px;bottom:0;width:1px;background:var(--rule-2)}
.c-step:last-child{padding-bottom:0}
.c-step:last-child::before{display:none}
.c-step__n{position:absolute;left:0;top:0;display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;border:1px solid var(--rule-2);border-radius:var(--r-sm);
  background:var(--bgc);font-family:var(--f-mono);font-size:.8125rem;letter-spacing:.06em;color:var(--red-hi)}
.c-step h3{padding-top:7px;font-size:1.1875rem;line-height:1.3}
.c-step p{margin-top:8px;font-size:var(--t-small);line-height:1.6;color:var(--ink-2)}
.c-step__links{display:flex;flex-wrap:wrap;gap:4px 16px;margin-top:10px}
.c-step__links a{display:inline-flex;align-items:center;gap:6px;min-height:44px;font-size:var(--t-small);font-weight:500;color:var(--ink)}
.c-step__links a:hover{color:var(--red-hi)}
.c-step__go{width:14px;height:14px;transition:transform var(--dur-1) var(--ease)}
.c-step__links a:hover .c-step__go{transform:translateX(4px)}
@media (min-width:1024px){
  .c-process{grid-template-columns:repeat(auto-fit,minmax(0,1fr));gap:24px}
  .c-process::before{content:"";position:absolute;left:0;right:0;top:20px;height:1px;background:var(--rule-2)}
  .c-step{padding:56px 0 0}
  .c-step::before{display:none}
  .c-step h3{padding-top:0}
}

/* ----------------------------------------------------------------- flow */
.c-flow,.c-flow--seq,.c-flow--stack{position:relative}
.c-flow ol{position:relative;display:grid;grid-template-columns:minmax(0,1fr);gap:10px;overflow:hidden;padding:2px}
.c-flow__node{position:relative;display:flex;align-items:center;gap:12px;min-height:44px;padding:10px 14px;border:1px solid var(--rule-2);border-radius:var(--r-sm);background:var(--bgc);
  font-family:var(--f-mono);font-size:.8125rem;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-2)}
.c-flow__node::before{content:"";width:6px;height:6px;flex:0 0 auto;background:var(--mute);transform:rotate(45deg)}
.c-flow__node:last-child{border-color:var(--field);color:var(--ink)}
.c-flow__node:last-child::before{background:var(--red)}
/* the part square: one 4-second pass along the track, then it rests on the last node */
.c-flow ol::after{content:"";position:absolute;left:-10px;top:0;bottom:0;width:10px;pointer-events:none;
  background:linear-gradient(var(--red),var(--red)) center bottom / 10px 10px no-repeat}
@media (min-width:768px){
  .c-flow ol{grid-auto-flow:column;grid-auto-columns:minmax(0,1fr);gap:0;padding-bottom:22px}
  .c-flow__node{margin-right:-1px;border-radius:0;min-height:56px;justify-content:flex-start}
  .c-flow__node:first-child{border-radius:var(--r-sm) 0 0 var(--r-sm)}
  .c-flow__node:last-child{border-radius:0 var(--r-sm) var(--r-sm) 0;margin-right:0}
  .c-flow__node.is-long{font-size:.75rem}
  .c-flow ol::before{content:"";position:absolute;left:2px;right:2px;bottom:6px;height:1px;background:var(--rule-2)}
  .c-flow ol::after{left:0;right:auto;top:auto;bottom:2px;width:100%;height:10px;transform:none;
    background:linear-gradient(var(--red),var(--red)) right center / 10px 10px no-repeat}
}
@media (min-width:768px) and (prefers-reduced-motion:no-preference){
  .c-flow ol::after{animation:c-flow-pass 4s var(--ease) 1 both}
}
@keyframes c-flow-pass{from{transform:translateX(-100%)}to{transform:translateX(0)}}
@media (max-width:767px){.c-flow ol::after{display:none}}
/* inside a page hero under 1024 the flow wraps as a compact row so the panel stays under 220px */
@media (max-width:1023px){
  .c-hero__panel .c-flow ol{display:flex;flex-wrap:wrap;gap:8px;padding:0}
  .c-hero__panel .c-flow__node{min-height:36px;padding:6px 10px;border-radius:var(--r-sm);margin:0;font-size:.75rem}
  .c-hero__panel .c-flow ol::before,.c-hero__panel .c-flow ol::after{display:none}
}
@media (min-width:1024px){
  .c-hero__panel .c-flow ol{grid-auto-flow:row;grid-auto-columns:auto;grid-template-columns:minmax(0,1fr);gap:0;padding:0 0 0 22px}
  .c-hero__panel .c-flow__node{margin:0 0 -1px;border-radius:0;min-height:52px}
  .c-hero__panel .c-flow__node:first-child{border-radius:var(--r-sm) var(--r-sm) 0 0}
  .c-hero__panel .c-flow__node:last-child{border-radius:0 0 var(--r-sm) var(--r-sm);margin-bottom:0}
  .c-hero__panel .c-flow ol::before{left:6px;right:auto;top:2px;bottom:2px;width:1px;height:auto}
  .c-hero__panel .c-flow ol::after{left:2px;top:0;bottom:auto;width:10px;height:100%;transform:none;background:linear-gradient(var(--red),var(--red)) center bottom / 10px 10px no-repeat}
}
@media (min-width:1024px) and (prefers-reduced-motion:no-preference){
  .c-hero__panel .c-flow ol::after{animation:c-flow-drop 4s var(--ease) 1 both}
}
@keyframes c-flow-drop{from{transform:translateY(-100%)}to{transform:translateY(0)}}
.c-hero__panel .c-flow{padding:18px;border:1px solid var(--rule-2);border-radius:var(--r-sm);background:var(--panel)}
.c-hero__panel .c-flow__node{background:var(--panel)}
@media (max-width:1023px){.c-hero__panel .c-flow{padding:12px}}

/* ------------------------------------------------------------------ FAQ */
.c-faq{max-width:880px;border-top:1px solid var(--rule-2)}
.c-faq__i{border-bottom:1px solid var(--rule-2)}
.c-faq__i summary{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:56px;padding:14px 0;cursor:pointer;list-style:none;
  font-family:var(--f-display);font-size:1.125rem;font-weight:600;line-height:1.35;color:var(--ink)}
.c-faq__i summary::-webkit-details-marker{display:none}
.c-faq__chev{width:20px;height:20px;flex:0 0 auto;color:var(--mute);transition:transform var(--dur-2) var(--ease)}
.c-faq__i[open] .c-faq__chev{transform:rotate(180deg);color:var(--red-hi)}
.c-faq__a{padding:0 40px 22px 0}
.c-faq__a p{color:var(--ink-2);max-width:68ch}

/* ------------------------------------------------------------ cross-links */
.c-xlinks{--bgc:var(--panel)}
.c-xlinks__l{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,260px),1fr));gap:12px}
.c-xlink{position:relative;display:grid;grid-template-columns:auto 1fr;column-gap:12px;row-gap:6px;padding:20px 44px 20px 20px;border:1px solid var(--rule-2);border-radius:var(--r-sm);background:var(--ground);
  transition:border-color var(--dur-1) var(--ease),background-color var(--dur-1) var(--ease)}
.c-xlink:hover{border-color:var(--field);background:var(--raised)}
.c-xlink:has(.c-xlink__a:focus-visible){outline:3px solid var(--red-hi);outline-offset:2px}
.c-xlink__icon{width:22px;height:22px;color:var(--ink-2)}
.c-xlink__n{display:none}
.c-xlink__h{font-size:1.0625rem;line-height:1.3}
.c-xlink__a::before{content:"";position:absolute;inset:0;z-index:1}
.c-xlink__a:focus-visible{outline:none}
.c-xlink p{grid-column:1 / -1;font-size:var(--t-small);line-height:1.5;color:var(--ink-2)}
.c-xlink__go{position:absolute;right:16px;top:20px;width:18px;height:18px;color:var(--mute)}
.c-xlink:hover .c-xlink__go{color:var(--red-hi)}

/* ----------------------------------------------------------------- plaques */
.c-plaques{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,190px),1fr));gap:16px}
.c-plaques--oem,.c-plaques--partners,.c-plaques--affiliations{grid-template-columns:repeat(auto-fill,minmax(min(100%,190px),1fr))}
.c-plaques--band{grid-template-columns:minmax(0,1fr)}
.c-plaque{display:flex;flex-direction:column;gap:10px}
/* 2026-10-19 drew-ars-1019 (Tony): no white tile behind any logo; the logo itself sits on the section ground. */
.c-plaque__img{position:relative;display:flex;align-items:center;justify-content:center;height:104px;padding:12px 0;background:transparent}
.c-plaque__m{max-height:64px;max-width:100%;width:auto;height:auto;object-fit:contain;filter:none;mix-blend-mode:normal}
.c-plaque__cap{font-family:var(--f-mono);font-size:.75rem;line-height:1.5;letter-spacing:.04em;color:var(--mute)}
.c-plaque__cap>span{color:var(--ink-2)}
.c-plaque__cap>span+span{color:var(--mute)}
.c-plaque__cap>span+span::before{content:"\00B7";margin:0 .5em;color:var(--rule-2)}
.c-plaque--band .c-plaque__img{height:auto;min-height:104px;justify-content:flex-start}
.c-plaque__list{display:grid;gap:4px}
@media (min-width:768px){.c-plaque__list{grid-template-columns:repeat(2,minmax(0,1fr));column-gap:24px}}
.c-plaque__v{display:inline-flex;align-items:center;min-height:44px;color:var(--red-hi);text-decoration:underline;text-underline-offset:4px}

/* --------------------------------------------------------------- plates */
.c-plates{display:flex;flex-wrap:wrap;gap:8px}
.c-plate{display:inline-flex;align-items:center;min-height:40px;padding:8px 14px;border:1px solid var(--rule-2);border-radius:var(--r-sm);background:var(--ground);
  font-family:var(--f-mono);font-size:.8125rem;letter-spacing:.1em;color:var(--ink)}
.sec--ground .c-plate{background:var(--panel)}

/* ------------------------------------------------------------------ links */
.c-links{display:flex;flex-wrap:wrap;gap:8px 24px}
.c-links .c-btn--link{padding:0;min-height:44px}

/* ----------------------------------------------------------------- CTA band */
.c-cta{padding-block:clamp(64px,9vw,128px);border-top:1px solid var(--rule-2);background:var(--ground);--bgc:var(--ground)}
.c-cta::after{content:"";position:absolute;left:0;top:-1px;width:min(240px,40%);height:2px;background:var(--red)}
.c-cta__in{display:grid;grid-template-columns:minmax(0,1fr);gap:28px;align-items:end}
.c-cta__text{min-width:0}
.c-cta .c-h2{max-width:22ch;margin-top:0}
.c-cta .c-lede{margin-top:16px}
.c-cta .c-btn{min-height:48px}
@media (min-width:1024px){.c-cta__in{grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:48px}.c-cta__lanes{justify-content:flex-end}}

/* ---------------------------------------------------------- certificate */
.c-cert__dl{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,220px),1fr));gap:16px;margin-top:28px}
.c-cert__dl>div{padding:16px 0;border-top:1px solid var(--rule-2)}
.c-cert__dl dt{font-family:var(--f-mono);font-size:var(--t-eye);letter-spacing:.14em;text-transform:uppercase;color:var(--mute)}
.c-cert__dl dd{margin-top:6px;color:var(--ink)}
.c-cert .c-btn{margin-top:24px}

/* ------------------------------------------------------------------ prose */
.c-prose-wrap{padding-block:clamp(40px,6vw,88px)}
.c-prose{max-width:68ch;color:var(--ink-2)}
.c-prose>*+*{margin-top:16px}
.c-prose h2{margin-top:44px;font-size:clamp(1.375rem,1.2rem + .7vw,1.75rem);line-height:1.2;color:var(--ink)}
.c-prose h3{margin-top:28px;font-size:1.1875rem;line-height:1.3;color:var(--ink)}
.c-prose h2:first-child,.c-prose h3:first-child{margin-top:0}
.c-prose ul,.c-prose ol{padding-left:1.25em}
.c-prose ul{list-style:square}
.c-prose ol{list-style:decimal}
.c-prose li+li{margin-top:6px}
.c-prose li::marker{color:var(--red-hi)}
.c-prose a{color:var(--ink);text-decoration:underline;text-decoration-color:var(--red-hi);text-underline-offset:4px}
.c-prose a:hover{color:var(--red-hi)}
.c-prose strong{color:var(--ink);font-weight:600}
.c-prose address{font-style:normal}
.c-prose dt{color:var(--ink);font-weight:600;margin-top:12px}
.c-prose dd{margin-top:4px}

/* ------------------------------------------------------------------- form */
.c-form{display:grid;gap:18px;max-width:760px}
.c-form__row{display:grid;grid-template-columns:minmax(0,1fr);gap:18px}
@media (min-width:600px){.c-form__row{grid-template-columns:repeat(2,minmax(0,1fr))}}
.c-field{display:grid;gap:8px}
.c-field label{font-family:var(--f-mono);font-size:var(--t-eye);letter-spacing:.14em;text-transform:uppercase;color:var(--ink-2)}
.c-field input,.c-field select,.c-field textarea{width:100%;min-height:48px;padding:12px 14px;border:1px solid var(--field);border-radius:var(--r-sm);background:var(--raised);color:var(--ink);
  font:400 1rem/1.5 var(--f-text)}
.c-field textarea{min-height:140px;resize:vertical}
.c-field input:focus-visible,.c-field select:focus-visible,.c-field textarea:focus-visible{outline:3px solid var(--red-hi);outline-offset:1px;border-color:var(--ink-2)}
.c-form__err{padding:14px 16px;border:1px solid var(--red-hi);border-left-width:4px;border-radius:var(--r-sm);background:var(--panel);color:var(--ink)}
.c-form__err ul{margin-top:8px;padding-left:1.25em;list-style:square}
.c-form__ok{padding:16px 18px;border:1px solid var(--field);border-left:4px solid var(--red);border-radius:var(--r-sm);background:var(--panel);color:var(--ink)}
.c-form__trap{position:absolute!important;left:-10000px;top:auto;width:1px;height:1px;overflow:hidden}
.c-nap{display:grid;gap:10px;padding:24px;border:1px solid var(--rule-2);border-radius:var(--r-sm);background:var(--panel)}
.c-nap a{display:inline-flex;align-items:center;gap:10px;min-height:44px;color:var(--ink);overflow-wrap:anywhere}
.c-nap .c-i{width:18px;height:18px;color:var(--red-hi);flex:0 0 auto}
.c-lanes{display:flex;flex-wrap:wrap;gap:12px}

/* ------------------------------------------------------------------ footer */
.c-foot{background:var(--panel);border-top:1px solid var(--rule-2);padding:clamp(48px,7vw,88px) 0 32px;--bgc:var(--panel)}
.c-foot__grid{display:grid;grid-template-columns:minmax(0,1fr);gap:36px}
.c-foot__brand,.c-foot__col{min-width:0}
.c-foot__logo img{height:48px;width:auto}
.c-foot__tag{margin-top:16px;font-family:var(--f-display);font-size:1.25rem;font-weight:600;color:var(--ink)}
.c-foot__cat{margin-top:4px;font-family:var(--f-mono);font-size:var(--t-eye);letter-spacing:.14em;text-transform:uppercase;color:var(--mute)}
.c-foot__social{display:flex;flex-wrap:wrap;gap:4px 16px;margin-top:16px}
.c-foot__social a,.c-foot__l a,.c-foot__legal a{display:inline-flex;align-items:center;min-height:44px;min-width:44px;color:var(--ink-2)}
.c-foot__social a:hover,.c-foot__l a:hover,.c-foot__legal a:hover{color:var(--ink);text-decoration:underline;text-decoration-color:var(--red-hi);text-underline-offset:4px}
.c-foot__h{font-family:var(--f-mono);font-size:var(--t-eye);font-weight:400;letter-spacing:.14em;text-transform:uppercase;color:var(--mute)}
.c-foot__l{margin-top:10px;display:grid}
.c-foot__l a{min-height:44px;font-size:.9375rem}
.c-foot__nap{margin-top:16px;font-style:normal;display:grid;gap:2px;color:var(--ink-2);font-size:.9375rem}
.c-foot__nap a{display:inline-flex;align-items:center;min-height:44px;color:var(--ink)}
.c-foot__legal{grid-column:1 / -1;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px 24px;margin-top:8px;padding-top:20px;border-top:1px solid var(--rule-2);
  font-size:var(--t-small);color:var(--mute)}
.c-foot__legal-l{display:flex;flex-wrap:wrap;gap:0 20px}
@media (min-width:768px){.c-foot__grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (min-width:1024px){.c-foot__grid{grid-template-columns:minmax(0,1.3fr) repeat(3,minmax(0,1fr));gap:40px}}

/* Back-to-top base (compat, revision 4): exactly these declarations. widgets.css owns the offsets, size, colors and z-index. */
.to-top{position:fixed;display:flex;align-items:center;justify-content:center;cursor:pointer;opacity:0;visibility:hidden;transform:translateY(10px);transition:opacity 400ms var(--ease),transform 400ms var(--ease),visibility 400ms}
.to-top.is-on{opacity:1;visibility:visible;transform:none}

/* -------------------------------------------------------- reduced motion */
@media (prefers-reduced-motion:reduce){
  .to-top{transition:none}
  [class^="c-"],[class*=" c-"],[class^="c-"]::before,[class*=" c-"]::before,[class^="c-"]::after,[class*=" c-"]::after,.c-flow ol::after,.sec,.sec::before,.sec::after{animation:none!important;transition:none!important}
  .c-frame__video{display:none}
  .c-frame__still{display:block}
  html{scroll-behavior:auto}
}

/* ------------------------------------------------------------------- print */
@media print{
  .c-hdr,.c-subnav,.c-burger,.c-frame__pause{display:none!important}
  body{background:#FFFFFF;color:#0A0A0A}
  .sec::before,.sec::after,.c-hero::before,.c-cta::before{display:none}
}

/* ------------------------------------------- logo walls (2026-10-19 drew-ars-1019) */
/* One CSS height per set, width auto, so every mark in a set renders at the same height. Sizes are capped so the widest
 * mark (Standard Bots 8.9:1, Clampbooster 9.8:1) still fits a 390px phone inside the 20px gutters. No tile, no caption. */
/* repair drew-ars-1019r: partner heights 64/72/80 so badge text reads on phones; max-width caps only a mark wider than the screen (Standard Bots on phones), keeping its aspect */
.c-logos__h{font-size:var(--t-h3);letter-spacing:-.01em;line-height:1.25}
.c-logos{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:28px 40px}
.c-logos__h+.c-logos{margin-top:20px}
.c-logos+.c-logos__h,.c-plaques+.c-logos__h,.c-logos+.c-plates__h,.c-logos+.c-links{margin-top:clamp(32px,4vw,52px)}
.c-logos__i{display:flex;align-items:center;margin:0;padding:0;max-width:100%}
.c-logos__i picture{display:block;max-width:100%}
.c-logos__img{display:block;width:auto;height:var(--logo-h);max-width:100%;object-fit:contain}
.c-logos--partners{--logo-h:64px}
.c-logos--suppliers{--logo-h:34px}
@media (min-width:768px){.c-logos--partners{--logo-h:72px}.c-logos--suppliers{--logo-h:44px}.c-logos{gap:32px 48px}}
@media (min-width:1024px){.c-logos--partners{--logo-h:80px}.c-logos--suppliers{--logo-h:50px}}

/* ------------------------------------------- click-to-play video (2026-10-19 drew-ars-1019) */
.c-vids{display:grid;gap:24px;grid-template-columns:minmax(0,1fr)}
@media (min-width:768px){.c-vids--n{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (min-width:1280px){.c-vids--n:has(> :nth-child(3):last-child){grid-template-columns:repeat(3,minmax(0,1fr))}}
.c-vids--1{max-width:960px}
.c-vid{margin:0;border:1px solid var(--rule-2);border-radius:var(--r-sm);background:var(--panel);overflow:hidden}
.sec--panel .c-vid{background:var(--ground)}
.c-vid__stage{position:relative;aspect-ratio:16 / 9;background:#000}
.c-vid__v{display:block;width:100%;height:100%;object-fit:contain;background:#000}
.c-vid__cap{padding:12px 14px;font-size:.875rem;line-height:1.5;color:var(--ink-2)}
.c-vid__len{display:block;margin-top:2px;font-family:var(--f-mono);font-size:.75rem;letter-spacing:.02em;color:var(--mute)}
/* Reduced motion: the hero loop never plays; its poster still shows instead. */
@media (prefers-reduced-motion:reduce){.c-frame--video .c-frame__video,.c-frame--video .c-frame__pause{display:none}.c-frame--video .c-frame__still{display:block}}
