/*
Theme Name: ZeroY Starter
Description: Static planning-route framework for the Comco website.
Version: 1.0.0
*/

*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{
  margin:0;
  background:var(--bg);
  color:var(--ink);
  font-family:var(--font-body);
  font-size:var(--fs-body);
  line-height:var(--lh-body);
  -webkit-font-smoothing:antialiased;
}
a{color:inherit;text-decoration:none}
a:hover{text-decoration:underline;text-underline-offset:.2em}
img{display:block;max-width:100%;height:auto}
h1,h2{color:var(--ink);font-family:var(--font-heading);line-height:var(--lh-heading)}
h1{margin:0 0 var(--space-5);font-size:var(--fs-h1);letter-spacing:var(--tracking-tight)}
p{margin:0;color:var(--ink-2)}
:focus-visible{outline:3px solid var(--focus);outline-offset:3px}
.wrap{width:min(calc(100% - (var(--gutter) * 2)),var(--max));margin-inline:auto}
.skip-link{position:absolute;left:-9999px;top:0;z-index:100;background:var(--navy);color:#fff;padding:12px 18px}
.skip-link:focus{left:0}

.site-head{border-bottom:1px solid var(--line-2);background:var(--bg)}
.nav{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-4) var(--space-6);padding-block:var(--space-4)}
/* The brand is the logo mark alone — no wordmark text beside it — so it carries
   the whole brand in the header and is sized to read at a glance. */
.brand{display:inline-flex;align-items:center}
.brand:hover{text-decoration:none}
.brand__logo{width:auto;height:clamp(40px,2.8vw,48px)}
/* Fallback wordmark, used only while the logo attachment is unavailable. */
.brand__name{color:var(--navy);font-size:var(--fs-nav);font-weight:var(--w-bold);letter-spacing:var(--tracking-heading)}
.navlinks{order:3;flex:1 1 100%;overflow-x:auto}
/* The top-level row only. Nested lists live inside the popover panel and are laid
   out by their own rules — a bare `.navlinks ul` would also match `.mega` and
   `.mega__children` and flatten the panel. */
.navlinks > ul{display:flex;gap:var(--space-5);margin:0;padding:0;list-style:none}
/* One line each, but only for the top-level row. Written on the row itself the
   rule would be inherited by the popover panels, where a long heading then runs
   into the next column instead of wrapping. */
.navlinks > ul > li > a,.navlinks > ul .nav-pop__trigger{white-space:nowrap}
.navlinks > ul > li > a{display:block;padding-block:var(--space-2);color:var(--ink-2);font-size:var(--fs-nav);font-weight:var(--w-medium);border-bottom:2px solid transparent}
.navlinks > ul > li > a:hover,.navlinks > ul > li > a[aria-current="page"]{color:var(--navy);border-bottom-color:var(--teal);text-decoration:none}
.btn{display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:10px 20px;border:1px solid var(--navy);border-radius:var(--radius-sm);font-size:var(--fs-small);font-weight:var(--w-bold)}
.btn--primary{margin-left:auto;background:var(--navy);color:#fff}
.btn--primary:hover{background:var(--navy-2);text-decoration:none}

.planning-main,.entry{min-height:55vh;padding:var(--space-section) 0}
.planning-content{max-width:820px}
.entry article{max-width:760px}
.entry article+article{margin-top:var(--space-8);padding-top:var(--space-8);border-top:1px solid var(--line)}

/* --- Planning skeleton: one page per route -------------------------------
   Every route renders through template-planning.php, so the page states which
   route it is, at which URL, and what sits underneath it. */
.planning-note{margin:var(--space-6) 0 0;color:var(--muted);font-family:var(--font-heading);font-size:var(--fs-h3);font-weight:var(--w-medium);letter-spacing:var(--tracking-heading)}
.planning-path{margin:var(--space-3) 0 0}
.planning-path code{padding:3px 9px;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--soft-2);color:var(--ink-2);font-size:var(--fs-micro)}
.planning-children{margin:var(--space-8) 0 0;padding-top:var(--space-5);border-top:1px solid var(--line)}
.planning-children__title{margin:0 0 var(--space-4);color:var(--muted);font-size:var(--fs-label);letter-spacing:var(--tracking-label);text-transform:uppercase}
.planning-children ul{display:flex;flex-wrap:wrap;gap:var(--space-3) var(--space-6);margin:0;padding:0;list-style:none}
.planning-children a{color:var(--navy);font-size:var(--fs-small);font-weight:var(--w-medium)}

.site-foot{padding:var(--space-8) 0 var(--space-6);background:var(--navy-deep);color:#fff}
.foot-cols{display:grid;gap:var(--space-6)}
.foot-heading{margin:0 0 var(--space-4);color:var(--on-navy-muted);font-size:var(--fs-label);letter-spacing:var(--tracking-label);text-transform:uppercase}
.foot-cols ul{margin:0;padding:0;list-style:none}
.foot-cols li+li{margin-top:var(--space-2)}
.foot-cols a{color:var(--on-navy)}
.foot-cols a:hover{color:#fff}
.foot-bottom{margin-top:var(--space-7);padding-top:var(--space-5);border-top:1px solid rgba(255,255,255,.14);color:var(--on-navy-muted);font-size:var(--fs-micro)}

@media (min-width:760px){
  .nav{min-height:96px;flex-wrap:nowrap}
  .navlinks{order:initial;flex:1 1 auto;margin-left:auto;overflow:visible}
  .navlinks > ul{justify-content:flex-end}
  .btn--primary{margin-left:0}
  /* Four groups: Products, Solutions, Company and Legal. */
  .foot-cols{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (min-width:1000px){
  .foot-cols{grid-template-columns:repeat(4,minmax(0,1fr))}
}
/* Between the tablet breakpoint and the wide desktop layout the row carries the
   brand, six sections and the quote button; tighten the gaps so the larger
   navigation type never forces a wrap. */
@media (min-width:760px) and (max-width:1240px){
  .navlinks > ul{gap:var(--space-4)}
  .nav{gap:var(--space-4)}
  .nav-rfq{padding-inline:14px}
}

@media (max-width:759px){
  .navlinks{padding-bottom:var(--space-1)}
  .btn{min-height:44px;padding-inline:14px}
}
/* --- Content-model pages: shared vocabulary ------------------------------- */
.content-main{min-height:55vh}
.page-head{padding:var(--space-8) 0 var(--space-6);border-bottom:1px solid var(--line-2);background:var(--soft)}
.page-head h1{max-width:24ch;margin-bottom:var(--space-4);font-size:var(--fs-h1);line-height:var(--lh-heading);letter-spacing:var(--tracking-tight)}
.eyebrow{margin:0 0 var(--space-3);color:var(--teal-deep);font-size:var(--fs-label);font-weight:var(--w-bold);letter-spacing:var(--tracking-label);text-transform:uppercase}
.lead{max-width:62ch;color:var(--ink-2);font-size:var(--fs-lead)}
.breadcrumb{margin:0 0 var(--space-5);color:var(--muted);font-size:var(--fs-micro)}
.breadcrumb a{color:var(--muted)}
.breadcrumb span+span::before{content:"/";margin:0 var(--space-2);color:var(--line)}

.section{padding:var(--space-section) 0}
.section--soft{background:var(--soft-2)}
.section__head{max-width:70ch;margin-bottom:var(--space-6)}
.section h2{margin:0 0 var(--space-4);font-size:var(--fs-h2);letter-spacing:var(--tracking-heading)}
.section h3{margin:0 0 var(--space-3);font-size:var(--fs-h4)}
.section p+p{margin-top:var(--space-4)}
.prose{max-width:72ch}
.grid{display:grid;gap:var(--space-5)}
.grid--2,.grid--3{grid-template-columns:minmax(0,1fr)}
.stack>*+*{margin-top:var(--space-4)}
.meta{margin:0 0 var(--space-3);color:var(--muted);font-size:var(--fs-micro);letter-spacing:.02em}

.card{padding:var(--space-5);border:1px solid var(--line);border-radius:var(--radius);background:var(--bg)}
.card__thumb{margin:0 0 var(--space-4)}
.card__thumb img{width:100%;height:auto;border:1px solid var(--line-2);border-radius:var(--radius-sm);background:var(--soft-2)}
.media--hero{margin-bottom:var(--space-6)}
.media--hero img{width:100%;height:auto;border:1px solid var(--line-2);border-radius:var(--radius);background:var(--soft-2)}
.card__label{margin:0 0 var(--space-2);color:var(--muted);font-size:var(--fs-label);letter-spacing:var(--tracking-label);text-transform:uppercase}
.card__title{margin:0 0 var(--space-3);font-size:var(--fs-h4)}
.card__text{margin:0;color:var(--ink-2);font-size:var(--fs-small)}
.tag-row{display:flex;flex-wrap:wrap;gap:var(--space-2);margin:var(--space-4) 0 0}
.tag{padding:2px 10px;border:1px solid var(--line);border-radius:999px;color:var(--ink-2);font-size:var(--fs-micro)}
.badge{display:inline-block;padding:2px 8px;border-radius:var(--radius-sm);font-size:var(--fs-micro);font-weight:var(--w-semibold)}
.badge--in-house{background:var(--teal-soft);color:var(--teal-deep)}
.badge--sourced{background:var(--soft-2);color:var(--muted)}

.spec{margin:0;display:grid;gap:var(--space-3)}
.spec>div{display:grid;gap:2px;padding-bottom:var(--space-3);border-bottom:1px solid var(--line-2)}
.spec dt{margin:0;color:var(--muted);font-size:var(--fs-label);letter-spacing:var(--tracking-label);text-transform:uppercase}
.spec dd{margin:0}
.table{width:100%;border-collapse:collapse;font-size:var(--fs-small)}
.table th,.table td{padding:var(--space-3);border-bottom:1px solid var(--line-2);text-align:left;vertical-align:top}
.table th{color:var(--muted);font-size:var(--fs-label);letter-spacing:var(--tracking-label);text-transform:uppercase}
.note{margin:var(--space-5) 0 0;padding:var(--space-4) var(--space-5);border-left:3px solid var(--teal);background:var(--teal-soft);color:var(--ink-2);font-size:var(--fs-small)}
.cta{display:flex;flex-wrap:wrap;gap:var(--space-3);align-items:center;margin-top:var(--space-6)}
.links{margin:0;padding:0;list-style:none}
.links li+li{margin-top:var(--space-3)}
.media{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-3);margin:0}
.media img{border:1px solid var(--line);border-radius:var(--radius)}

@media (min-width:760px){
  .grid--2,.grid--4{grid-template-columns:repeat(2,minmax(0,1fr))}
  .grid--3{grid-template-columns:repeat(3,minmax(0,1fr))}
  .spec>div{grid-template-columns:200px minmax(0,1fr);gap:var(--space-4);align-items:baseline}
  .media{grid-template-columns:repeat(3,minmax(0,1fr))}
}
/* Wide sets (the 7 product families) step up to 4 across so a full-width row
   never ends with a single orphan card. */
@media (min-width:1000px){
  .grid--4{grid-template-columns:repeat(3,minmax(0,1fr))}
}
@media (min-width:1280px){
  .grid--4{grid-template-columns:repeat(4,minmax(0,1fr))}
}
/* --- Primary navigation: mega menu, dropdown panels, mobile drawer -------- */
.nav__item{position:relative}
.nav-pop{display:flex}
.nav-pop__trigger{display:block;margin:0;padding:var(--space-2) 0;border:0;border-bottom:2px solid transparent;background:none;color:var(--ink-2);font:inherit;font-size:var(--fs-nav);font-weight:var(--w-medium);cursor:pointer;text-align:left}
.nav-pop__trigger:hover,.nav-pop__trigger.is-current,.nav-pop__trigger[aria-expanded="true"]{color:var(--navy);border-bottom-color:var(--teal)}

/* The panel never inherits the top row's single-line setting: a heading or a
   link inside it wraps rather than crossing into the next column. */
.nav-panel{width:min(1180px,94vw);padding:var(--space-5);border:1px solid var(--line);border-radius:var(--radius-md);background:var(--bg);box-shadow:0 18px 40px rgba(16,42,67,.16);white-space:normal;overflow-wrap:break-word}
/* Products is the only expanding section, so the panel only ever has to hold the
   mega menu; every other section is a plain link in the top-level row. */
.mega{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--space-5);margin:0;padding:0;list-style:none}
.mega__card{margin:0}
.mega__head{display:block;color:inherit}
.mega__title{display:block;color:var(--navy);font-size:var(--fs-nav);font-weight:var(--w-bold)}
.mega__head:hover .mega__title{text-decoration:underline;text-underline-offset:.2em}
.mega__text{margin:var(--space-1) 0 0;color:var(--muted);font-size:15px;line-height:1.5}
.mega__children{margin:var(--space-2) 0 0;padding:0;list-style:none}
.mega__children li+li{margin-top:var(--space-1)}
.mega__children a{color:var(--ink-2);font-size:15px}
.mega__children a:hover{color:var(--navy)}
/* A short panel of direct links: Product Development, Manufacturing, Quality and
   Resources each hold a handful of items, so the panel shrinks to its content
   instead of spanning the mega menu's width. */
.nav-panel--list{width:auto;min-width:min(280px,92vw)}
.nav-panel__list{margin:0;padding:0;list-style:none}
.nav-panel__list li+li{margin-top:var(--space-3)}
.nav-panel__list a{display:block;color:var(--ink-2);font-size:var(--fs-nav);font-weight:var(--w-medium)}
.nav-panel__list a:hover{color:var(--navy);text-decoration:none}
.nav-panel__footer{display:flex;flex-wrap:wrap;gap:var(--space-5);margin:var(--space-5) 0 0;padding:var(--space-4) 0 0;border-top:1px solid var(--line-2);list-style:none}
.nav-panel__footer a{color:var(--navy);font-size:var(--fs-nav);font-weight:var(--w-medium)}

.nav-mobile{order:2;margin-left:auto}
.nav-toggle{min-height:44px;padding:10px 16px;border:1px solid var(--navy);border-radius:var(--radius-sm);background:none;color:var(--navy);font:inherit;font-size:var(--fs-small);font-weight:var(--w-bold);cursor:pointer}
.nav-rfq{order:3;font-size:var(--fs-nav)}
.nav-drawer{position:fixed;inset:0 0 0 auto;width:min(420px,92vw);max-height:100vh;margin:0;padding:var(--space-6) var(--space-5);border:0;border-left:1px solid var(--line);background:var(--bg);color:var(--ink);overflow-y:auto}
.nav-drawer::backdrop{background:rgba(16,42,67,.45)}
.nav-drawer__title{margin:0 0 var(--space-5);color:var(--navy);font-size:var(--fs-label);font-weight:var(--w-bold);letter-spacing:var(--tracking-label);text-transform:uppercase}
.nav-drawer__list{margin:0;padding:0;list-style:none}
.nav-drawer__group+.nav-drawer__group{margin-top:var(--space-5);padding-top:var(--space-5);border-top:1px solid var(--line-2)}
.nav-drawer__section{color:var(--navy);font-weight:var(--w-bold)}
.nav-drawer__sub{margin:var(--space-2) 0 0;padding:0;list-style:none}
.nav-drawer__sub li+li{margin-top:var(--space-2)}
.nav-drawer__sub a{color:var(--ink-2);font-size:var(--fs-small)}
.nav-drawer__sub2{margin:var(--space-1) 0 var(--space-2);padding:0 0 0 var(--space-4);list-style:none}
.nav-drawer__sub2 a{color:var(--muted);font-size:var(--fs-micro)}
.nav-drawer__cta{margin:var(--space-6) 0 0}
.nav-drawer__cta .btn{width:100%}
.nav-drawer__close-row{margin:var(--space-4) 0 0}
.nav-drawer__close{border:0;background:none;color:var(--ink-2);font:inherit;font-size:var(--fs-small);text-decoration:underline;cursor:pointer}

@media (min-width:760px){.nav-mobile{display:none}}
@media (min-width:760px) and (max-width:1100px){.mega{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (max-width:759px){
  .navlinks--desktop{display:none}
  .nav-rfq{flex:1 1 100%;margin-left:0}
  .mega{grid-template-columns:repeat(2,minmax(0,1fr))}
}

/* ==========================================================================
   Reference page system
   The homepage sets the pattern every other page follows: white space first,
   thin rules, large real images, navy bands for statements and evidence, and
   motion that only supports hierarchy (150-350ms, no parallax, no floating).
   ========================================================================== */

/* --- Hero: copy left, one large image right ------------------------------ */
.hero{padding:clamp(56px,6vw,96px) 0 clamp(48px,5vw,80px);background:var(--soft);border-bottom:1px solid var(--line-2)}
.hero__grid{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--space-7);align-items:center}
.hero__copy{min-width:0}
.hero__copy h1{max-width:19ch;margin-bottom:var(--space-5)}
.hero__lead{max-width:58ch;color:var(--ink-2);font-size:var(--fs-lead)}
.hero__media{margin:0}
.hero__media img{width:100%;height:auto;border:1px solid var(--line);border-radius:var(--radius);background:var(--soft-2)}
@media (min-width:980px){
  .hero__grid{grid-template-columns:minmax(0,1.02fr) minmax(0,.98fr);gap:clamp(40px,5vw,80px)}
}
.chips{display:flex;flex-wrap:wrap;gap:var(--space-2);margin:var(--space-6) 0 0;padding:0;list-style:none}
.chip{padding:6px 10px;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--bg);color:var(--ink-2);font-size:var(--fs-micro)}

/* --- Actions: one primary, one secondary, quiet text links --------------- */
.btn{transition:background-color var(--dur) var(--ease),border-color var(--dur) var(--ease),color var(--dur) var(--ease),transform var(--dur) var(--ease)}
.btn:hover{transform:translateY(-1px)}
.cta .btn--primary{margin-left:0}
.btn--ghost{background:var(--bg);color:var(--navy)}
.btn--ghost:hover{background:var(--soft-2);text-decoration:none}
.btn--on-navy{background:#fff;color:var(--navy);border-color:#fff}
.btn--on-navy:hover{background:var(--teal-on-navy);border-color:var(--teal-on-navy);color:var(--navy-deep);text-decoration:none}
.textlink,.cta > a:not(.btn){display:inline-block;padding-bottom:2px;border-bottom:1px solid var(--teal);color:var(--navy);font-size:var(--fs-small);font-weight:var(--w-bold)}
.textlink:hover,.cta > a:not(.btn):hover{text-decoration:none;border-bottom-color:var(--navy)}
.textlink--on-navy{color:#fff;border-bottom-color:var(--teal-on-navy)}
.textlink--on-navy:hover{border-bottom-color:#fff}

/* --- Navy bands: statements and evidence --------------------------------- */
.band{background:var(--navy);color:#fff}
.band .eyebrow{color:var(--teal-on-navy)}
.statement{padding:clamp(64px,7vw,104px) 0}
.statement__grid{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--space-5)}
.statement__quote{margin:0;max-width:36ch;color:#fff;font-family:var(--font-heading);font-size:clamp(24px,2.7vw,38px);font-weight:var(--w-semibold);line-height:1.18;letter-spacing:var(--tracking-heading)}
.statement__quote em{font-style:normal;color:var(--teal-on-navy)}
.statement__note{margin:var(--space-6) 0 0;color:var(--on-navy-muted);font-size:var(--fs-micro);letter-spacing:.04em;text-transform:uppercase}
@media (min-width:980px){
  .statement__grid{grid-template-columns:minmax(0,.72fr) minmax(0,1.28fr);gap:clamp(32px,5vw,72px);align-items:start}
}

/* --- Section heading: eyebrow, heading, one introduction ----------------- */
.section-head{max-width:64ch;margin-bottom:clamp(32px,4vw,56px)}
.section-head h2{margin:var(--space-3) 0 0}
.section-head__intro{margin:var(--space-4) 0 0;max-width:62ch;color:var(--ink-2);font-size:var(--fs-lead)}
.section-head--on-navy h2{color:#fff}
.section-head--on-navy .section-head__intro{color:var(--on-navy)}

/* --- Image-led card: image leads, text supports -------------------------- */
.media-card{position:relative;display:flex;flex-direction:column;border:1px solid var(--line);border-radius:var(--radius);background:var(--bg);overflow:hidden;transition:border-color var(--dur) var(--ease)}
.media-card:hover{border-color:var(--line-strong)}
.media-card__frame{position:relative;margin:0;overflow:hidden;border-bottom:1px solid var(--line-2);background:var(--soft-2)}
.media-card__frame img{width:100%;height:auto;transition:transform var(--dur-slow) var(--ease)}
.media-card:hover .media-card__frame img{transform:scale(1.035)}
.media-card__index{position:absolute;left:14px;top:14px;z-index:2;padding:5px 9px;border-left:3px solid var(--teal);background:#fff;color:var(--navy);font-size:11px;font-weight:var(--w-bold);letter-spacing:.1em}
.media-card__body{display:flex;flex-direction:column;flex:1 1 auto;padding:var(--space-5)}
.media-card__label{margin:0 0 var(--space-2);color:var(--muted);font-size:var(--fs-label);letter-spacing:var(--tracking-label);text-transform:uppercase}
.media-card__title{margin:0;font-size:var(--fs-h4);letter-spacing:var(--tracking-heading)}
.media-card__title a{color:var(--navy)}
.media-card__anchor::after{content:"";position:absolute;inset:0}
.media-card:hover .media-card__title a{text-decoration:underline;text-underline-offset:.2em}
.media-card__text{margin:var(--space-3) 0 0;color:var(--ink-2);font-size:var(--fs-small)}

/* --- Process rail: numbered stages on fine rules ------------------------- */
.rail{display:grid;grid-template-columns:minmax(0,1fr);gap:0 clamp(24px,3vw,44px);margin:0;padding:0;list-style:none}
.rail__step{padding:var(--space-5) 0 var(--space-6);border-top:1px solid var(--line)}
.rail__n{margin:0;color:var(--teal-deep);font-size:var(--fs-label);font-weight:var(--w-bold);letter-spacing:var(--tracking-label)}
.rail__media{margin:var(--space-4) 0 0}
.rail__media img{width:100%;height:auto;border:1px solid var(--line-2);border-radius:var(--radius-sm);background:var(--soft-2)}
.rail__title{margin:var(--space-4) 0 0;font-size:var(--fs-h4);letter-spacing:var(--tracking-heading)}
.rail__text{margin:var(--space-3) 0 0;color:var(--ink-2);font-size:var(--fs-small)}
@media (min-width:760px){.rail{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (min-width:1100px){.rail{grid-template-columns:repeat(4,minmax(0,1fr))}}

/* --- Evidence row: large value, small uppercase label -------------------- */
.stats{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 clamp(24px,3vw,44px);margin:0;padding:0;list-style:none}
.stat{padding:var(--space-5) 0;border-top:1px solid var(--line)}
.stat__value{margin:0;font-family:var(--font-heading);font-size:clamp(30px,3.4vw,44px);font-weight:var(--w-semibold);line-height:1.05;letter-spacing:var(--tracking-tight)}
.stat__label{margin:var(--space-2) 0 0;color:var(--muted);font-size:var(--fs-micro);letter-spacing:.06em;text-transform:uppercase}
@media (min-width:760px){.stats{grid-template-columns:repeat(4,minmax(0,1fr))}}
.stats--on-navy .stat{border-top-color:rgba(255,255,255,.2)}
.stats--on-navy .stat__value{color:#fff}
.stats--on-navy .stat__label{color:var(--on-navy-muted)}

/* --- Two-column compositions: copy beside one large image ---------------- */
.split,.feature{display:grid;grid-template-columns:minmax(0,1fr);gap:clamp(28px,4vw,56px)}
.split{align-items:start}
.feature{align-items:center}
@media (min-width:980px){
  .split,.feature{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
  .feature--reverse .feature__copy{order:2}
  .feature--reverse .feature__media{order:1}
}
.feature__copy{min-width:0}
.feature__media{margin:0}
.feature__media img{width:100%;height:auto;border:1px solid var(--line-2);border-radius:var(--radius);background:var(--soft-2)}
.feature__title{margin:0;font-size:var(--fs-h2);letter-spacing:var(--tracking-heading)}
.feature__text{margin:var(--space-4) 0 0;max-width:56ch;color:var(--ink-2);font-size:var(--fs-lead)}
.band .feature__title{color:#fff}
.band .feature__text{color:var(--on-navy)}

/* --- Development stages: four images, captions under each ---------------- */
.dev-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-4)}
.dev-step{margin:0}
.dev-step img{width:100%;height:auto;border:1px solid var(--line-2);border-radius:var(--radius-sm);background:var(--soft-2)}
.dev-step figcaption{margin-top:var(--space-3)}
.dev-step__n{display:block;margin-bottom:4px;color:var(--teal-deep);font-size:11px;font-weight:var(--w-bold);letter-spacing:.1em;text-transform:uppercase}
.dev-step__text{display:block;color:var(--ink-2);font-size:var(--fs-micro);line-height:1.55}

/* --- Ruled lists: capabilities, proofs, verification --------------------- */
.ruled{margin:0;padding:0;list-style:none;border-top:1px solid var(--line)}
.ruled--two{display:grid;grid-template-columns:minmax(0,1fr);gap:0 var(--space-6)}
.ruled__item{padding:var(--space-5) 0;border-bottom:1px solid var(--line-2)}
.ruled__title{margin:0;font-size:var(--fs-h4);letter-spacing:var(--tracking-heading)}
.ruled__title a{color:var(--navy)}
.ruled__title a:hover{text-decoration:underline;text-underline-offset:.2em}
.ruled__meta{margin:0 0 var(--space-2);color:var(--muted);font-size:var(--fs-label);letter-spacing:var(--tracking-label);text-transform:uppercase}
.ruled__text{margin:var(--space-3) 0 0;color:var(--ink-2);font-size:var(--fs-small)}
.ruled__note{margin:var(--space-3) 0 0;padding-left:var(--space-4);border-left:2px solid var(--line);color:var(--muted);font-size:var(--fs-micro)}
@media (min-width:760px){.ruled--two{grid-template-columns:repeat(2,minmax(0,1fr))}}
.subhead{margin:var(--space-6) 0 var(--space-4);color:var(--navy);font-size:var(--fs-h4);letter-spacing:var(--tracking-heading)}

/* --- Closing call to action --------------------------------------------- */
.cta-band{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--space-6);align-items:center}
@media (min-width:980px){.cta-band{grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);gap:clamp(32px,4vw,64px)}}
.cta-band__copy h2{margin:var(--space-3) 0 0;font-size:var(--fs-h2);letter-spacing:var(--tracking-heading)}
.cta-band__text{margin:var(--space-4) 0 0;max-width:54ch;color:var(--ink-2);font-size:var(--fs-lead)}
.cta-band__actions{display:flex;flex-wrap:wrap;gap:var(--space-4);align-items:center}
.cta-band__actions .btn--primary{margin-left:0}
.cta-band--on-navy h2{color:#fff}
.cta-band--on-navy .cta-band__text{color:var(--on-navy)}

/* --- Motion: one reveal, one hover zoom, one button transition ----------- */
@media (prefers-reduced-motion: no-preference){
  html.is-motion [data-reveal]{opacity:0;transform:translateY(var(--reveal-shift));transition:opacity var(--dur-slow) var(--ease),transform var(--dur-slow) var(--ease)}
  html.is-motion [data-reveal].is-revealed{opacity:1;transform:none}
}
@media (prefers-reduced-motion: reduce){
  .btn:hover{transform:none}
  .media-card:hover .media-card__frame img{transform:none}
}
.navlinks > ul > li > a{transition:color var(--dur) var(--ease),border-color var(--dur) var(--ease)}
.card{transition:border-color var(--dur) var(--ease)}
.card:hover{border-color:var(--line-strong)}

/* --- Reference page: local layout helpers -------------------------------- */
.band--block{padding:clamp(64px,7vw,104px) 0}
.grid--families{grid-template-columns:repeat(2,minmax(0,1fr))}
@media (min-width:1000px){.grid--families{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (min-width:1360px){.grid--families{grid-template-columns:repeat(4,minmax(0,1fr))}}
.facts__lead{margin:var(--space-4) 0 var(--space-7);max-width:56ch;color:var(--on-navy);font-size:var(--fs-lead)}
/* `.section h2` and `.section h3` carry their own margins; these headings own
   their spacing, so the reference blocks stay on the 4/8/12px rhythm. */
.section .feature__title,.section .media-card__title,.section .ruled__title{margin:0}
.section .rail__title{margin:var(--space-4) 0 0}
.split .subhead:first-child{margin-top:0}

/* --- Homepage: media slots, pending frames, local spacing ----------------- */
/* A slot shows the real photograph when one is set, and an honest labelled
   frame when one is not, so a missing image is never filled with a stand-in. */
.media-slot{display:block;position:relative;background:var(--soft-2);overflow:hidden}
.media-slot__image{display:block;width:100%;height:auto}
.media-slot--pending{
  display:grid;place-items:center;min-height:190px;padding:var(--space-5);
  border:1px dashed var(--line-strong);border-radius:var(--radius-sm);
  background:repeating-linear-gradient(135deg,var(--soft) 0 9px,var(--soft-2) 9px 18px);
}
.media-slot--wide{min-height:230px}
.media-slot--tall{min-height:300px}
.media-slot__label{
  max-width:28ch;color:var(--muted);font-size:var(--fs-label);font-weight:var(--w-medium);
  letter-spacing:var(--tracking-label);line-height:1.6;text-align:center;text-transform:uppercase;
}
.media-card__frame .media-slot--pending{border:0;border-radius:0}
.band .media-slot--pending{
  border-color:rgba(255,255,255,.28);
  background:repeating-linear-gradient(135deg,rgba(255,255,255,.04) 0 9px,rgba(255,255,255,.09) 9px 18px);
}
.band .media-slot__label{color:var(--on-navy-muted)}

/* A quiet line for a state the page is in, rather than a claim it makes. */
.aside-note{
  margin:var(--space-5) 0 0;max-width:70ch;padding-left:var(--space-4);
  border-left:2px solid var(--line);color:var(--muted);font-size:var(--fs-micro);line-height:1.6;
}
.band .aside-note{border-left-color:rgba(255,255,255,.24);color:var(--on-navy-muted)}

.home-frames{margin-top:var(--space-7)}
.home-frame{margin:0}

/* The development rail carries five stages, so it steps up one column earlier
   than the shared four-stage rail. */
@media (min-width:760px){.home .rail{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (min-width:1100px){.home .rail{grid-template-columns:repeat(5,minmax(0,1fr))}}

/* ==========================================================================
   Catalogue pages
   The products overview, a product family, a product category and one model.
   They reuse the reference vocabulary above; only the local adjustments the
   catalogue needs live here.
   ========================================================================== */

/* A card whose heading is also the link to the page that lists it. */
.card__title a{color:var(--navy)}
.card__title a:hover{text-decoration:underline;text-underline-offset:.2em}
/* A media slot inside a card thumb keeps the card's own frame. */
.card__thumb .media-slot--pending{border:0;border-radius:0}
/* Reference specification and commercial parameters read as one pair of lists. */
.spec-pair{display:grid;gap:clamp(28px,4vw,56px)}
@media (min-width:980px){.spec-pair{grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr)}}
