/* Autolumin Dynamic Metallurgicals — core styles
   Extracted from the approved Claude Design handoff (Autolumin Website v2).
   Fonts self-hosted under assets/fonts. */

/* cyrillic-ext */
@font-face {
  font-family: 'Hanken Grotesk';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("../fonts/hanken-grotesk-1.woff2") format('woff2');
  unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
/* vietnamese */
@font-face {
  font-family: 'Hanken Grotesk';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("../fonts/hanken-grotesk-2.woff2") format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
  font-family: 'Hanken Grotesk';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("../fonts/hanken-grotesk-3.woff2") format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Hanken Grotesk';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("../fonts/hanken-grotesk-4.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;
}
/* cyrillic-ext */
@font-face {
  font-family: 'Hanken Grotesk';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("../fonts/hanken-grotesk-1.woff2") format('woff2');
  unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
/* vietnamese */
@font-face {
  font-family: 'Hanken Grotesk';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("../fonts/hanken-grotesk-2.woff2") format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
  font-family: 'Hanken Grotesk';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("../fonts/hanken-grotesk-3.woff2") format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Hanken Grotesk';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("../fonts/hanken-grotesk-4.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;
}
/* cyrillic-ext */
@font-face {
  font-family: 'Hanken Grotesk';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("../fonts/hanken-grotesk-1.woff2") format('woff2');
  unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
/* vietnamese */
@font-face {
  font-family: 'Hanken Grotesk';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("../fonts/hanken-grotesk-2.woff2") format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
  font-family: 'Hanken Grotesk';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("../fonts/hanken-grotesk-3.woff2") format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Hanken Grotesk';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("../fonts/hanken-grotesk-4.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;
}
/* cyrillic-ext */
@font-face {
  font-family: 'Hanken Grotesk';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url("../fonts/hanken-grotesk-1.woff2") format('woff2');
  unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
/* vietnamese */
@font-face {
  font-family: 'Hanken Grotesk';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url("../fonts/hanken-grotesk-2.woff2") format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
  font-family: 'Hanken Grotesk';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url("../fonts/hanken-grotesk-3.woff2") format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Hanken Grotesk';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url("../fonts/hanken-grotesk-4.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;
}
/* vietnamese */
@font-face {
  font-family: 'Space Grotesk';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("../fonts/space-grotesk-1.woff2") format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
  font-family: 'Space Grotesk';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("../fonts/space-grotesk-2.woff2") format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Space Grotesk';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("../fonts/space-grotesk-3.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;
}
/* vietnamese */
@font-face {
  font-family: 'Space Grotesk';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("../fonts/space-grotesk-1.woff2") format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
  font-family: 'Space Grotesk';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("../fonts/space-grotesk-2.woff2") format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Space Grotesk';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("../fonts/space-grotesk-3.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;
}
/* vietnamese */
@font-face {
  font-family: 'Space Grotesk';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("../fonts/space-grotesk-1.woff2") format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
  font-family: 'Space Grotesk';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("../fonts/space-grotesk-2.woff2") format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Space Grotesk';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("../fonts/space-grotesk-3.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;
}
/* vietnamese */
@font-face {
  font-family: 'Space Grotesk';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url("../fonts/space-grotesk-1.woff2") format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
  font-family: 'Space Grotesk';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url("../fonts/space-grotesk-2.woff2") format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Space Grotesk';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url("../fonts/space-grotesk-3.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;
}
/* vietnamese */
@font-face {
  font-family: 'Space Mono';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("../fonts/space-mono-1.woff2") format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
  font-family: 'Space Mono';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("../fonts/space-mono-2.woff2") format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Space Mono';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("../fonts/space-mono-3.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;
}
/* vietnamese */
@font-face {
  font-family: 'Space Mono';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url("../fonts/space-mono-4.woff2") format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
  font-family: 'Space Mono';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url("../fonts/space-mono-5.woff2") format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Space Mono';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url("../fonts/space-mono-6.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;
}



  *{ box-sizing:border-box; }
  html,body{ margin:0; padding:0; background:#fff; scroll-behavior:smooth; }
  body{ font-family:'Hanken Grotesk',sans-serif; -webkit-font-smoothing:antialiased; color:#0F161A; }
  ::selection{ background:#2AABE1; color:#fff; }
  #site{ --bg:#fff; --bg-alt:#F4F6F7; --panel:#fff; --ink:#0F161A; --body:#33444E; --muted:#5C6B74; --faint:#8A98A0; --border:#E4E9EC; --border-soft:#EEF2F4; --border-strong:#C7D0D5; --field-border:#D8DDE0; --hatch-a:#EEF2F4; --hatch-b:#E6EBEE; --hover-tint:#F7FBFD; --nav-bg:rgba(255,255,255,0.92); --cyan-ink:#1488BD; background:var(--bg); color:var(--body); min-height:100vh; }
  body.admdark #site{ --bg:#0B1115; --bg-alt:#0F161A; --panel:#141D23; --ink:#F4F7F9; --body:#AEB9C0; --muted:#8A98A0; --faint:#6E7D85; --border:#1F2A31; --border-soft:#1F2A31; --border-strong:#33444E; --field-border:#26333B; --hatch-a:#141D23; --hatch-b:#1A2730; --hover-tint:#15222A; --nav-bg:rgba(11,17,21,0.92); --cyan-ink:#54C3EA; }
  #site, #site *{ transition:background-color .35s ease, border-color .35s ease, color .35s ease; }
  .navlink{ cursor:pointer; }
  .navlink:not(.btn):hover{ color:var(--ink) !important; }
  .cta:hover{ background:#1488BD !important; color:#fff !important; }
  .ctad:hover{ background:#1488BD !important; color:#fff !important; }
  .ghost:hover{ border-color:var(--ink) !important; }
  .prodcard{ cursor:pointer; }
  .prodcard:hover{ border-color:#2AABE1 !important; background:var(--hover-tint) !important; }
  .prodcard:hover .prodarrow{ opacity:1 !important; transform:translateX(0) !important; }
  .diffcard:hover{ transform:translateY(-3px); box-shadow:0 12px 30px -16px rgba(15,22,26,.22) !important; }
  .blogcard{ cursor:pointer; }
  .blogcard:hover .blogtitle{ color:var(--cyan-ink) !important; }
  .capcard:hover{ border-color:#2AABE1 !important; }
  .relcard{ cursor:pointer; }
  .relcard:hover{ border-color:#2AABE1 !important; }
  .ftlink{ cursor:pointer; }
  .site-footer a.ftlink:hover{ color:#fff !important; background-size:100% 1.5px; }
  .social-icon{ color:#6E7D85; transition:color .15s, border-color .15s; }
  .social-icon:hover{ color:#2AABE1; border-color:#2AABE1 !important; }
  .themetoggle:hover{ border-color:#2AABE1 !important; }
  #site h1, #site h2, #site h3{ color:var(--ink); }
  .pcard{ cursor:pointer; }
  .pcard:hover{ border-color:#2AABE1 !important; }
  .pcard:hover .parrow{ opacity:1 !important; transform:translateX(0) !important; }
  .feat{ cursor:pointer; }
  .feat:hover .feattitle{ color:var(--cyan-ink) !important; }
  .upload:hover{ border-color:#2AABE1 !important; background:var(--hover-tint) !important; }
  .fld{ font-family:'Hanken Grotesk',sans-serif; font-size:15px; color:var(--ink); background:var(--panel); border:1.5px solid var(--field-border); border-radius:2px; padding:13px 14px; width:100%; outline:none; transition:border-color .15s; }
  .fld:focus{ border-color:#2AABE1; }
  .fld::placeholder{ color:#A6B0B6; }
  select.fld{ appearance:none; -webkit-appearance:none; background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%235C6B74' stroke-width='1.6' fill='none'/%3E%3C/svg%3E"); background-repeat:no-repeat; background-position:right 14px center; padding-right:36px; }
  .lbl{ display:block; font-family:'Space Mono',monospace; font-size:11px; letter-spacing:0.1em; color:var(--muted); text-transform:uppercase; margin-bottom:8px; }
  @media (max-width:1200px){
    .navlinks{ display:none !important; }
    .navcta{ display:none !important; }
    .burger{ display:flex !important; }
  }
  @media (min-width:1201px){
    .burger{ display:none !important; }
    .mobilepanel{ display:none !important; }
  }
  /* Footer "Have a casting to source?" - text left / CTAs right on desktop,
     both centred on laptop, tablet and mobile. */
  @media (max-width:900px){
    .footer-inquiry-text{ text-align:center !important; }
    .footer-cta-row{ justify-content:center !important; }
  }
  @media (max-width:880px){
    .hero-grid{ grid-template-columns:1fr !important; }
    .hero-fig{ border-left:none !important; border-top:1px solid var(--border) !important; }
    .specrow,.cap-split,.ab-split,.pd-grid,.rfq-grid,.feat-grid,.two{ grid-template-columns:1fr !important; }
    .hero-fig{ min-height:300px !important; }
  }

  /* ============================================================
     Layout & component classes (extracted from inline styles).
     Kept 1:1 with the original design.
     ============================================================ */

  /* Section wrappers (own names so they don't collide with Bootstrap's
     .container-*): outer <section> holds the background/borders, the inner
     .wrap holds the max width and padding; Bootstrap row/col go inside. */
  .wrap       { max-width:1280px; margin:0 auto; padding:clamp(56px,8vw,90px) clamp(20px,4vw,40px); }
  .wrap-sm    { max-width:1280px; margin:0 auto; padding:clamp(40px,6vw,72px) clamp(20px,4vw,40px); }
  .wrap-cta   { max-width:1280px; margin:0 auto; padding:clamp(48px,7vw,80px) clamp(20px,4vw,40px); }
  .wrap-flush { max-width:1280px; margin:0 auto; }

  .band-alt  { background:var(--bg-alt); }
  .band-dark { background:#0F161A; color:#fff; }
  .border-t  { border-top:1px solid var(--border); }
  .border-b  { border-bottom:1px solid var(--border); }
  .border-y  { border-top:1px solid var(--border); border-bottom:1px solid var(--border); }

  /* Small mono label above a heading. */
  .eyebrow { font-family:'Space Mono',monospace; font-size:12px; letter-spacing:0.16em; color:#2AABE1; text-transform:uppercase; margin:0 0 18px; }

  /* Headings. */
  .title-1 { font-family:'Space Grotesk',sans-serif; font-weight:600; font-size:clamp(34px,5vw,56px); line-height:1.04; letter-spacing:-0.028em; margin:0 0 18px; }
  .title-2 { font-family:'Space Grotesk',sans-serif; font-weight:600; font-size:clamp(26px,3.4vw,38px); line-height:1.1;  letter-spacing:-0.02em; margin:0; }
  .title-3 { font-family:'Space Grotesk',sans-serif; font-weight:600; font-size:18px; line-height:1.25; margin:0 0 8px; }

  /* Body copy. */
  .lead      { font-size:clamp(16px,1.7vw,18px); line-height:1.62; color:var(--body); margin:0; }
  .prose     { font-size:16px; line-height:1.7; color:var(--body); margin:0; }
  .card-text { font-size:14px; line-height:1.6; color:var(--muted); margin:0; }
  .measure    { max-width:600px; }
  .measure-sm { max-width:480px; }
  .measure-lg { max-width:760px; }

  /* Buttons. */
  .btn         { display:inline-block; font-family:'Space Grotesk',sans-serif; font-weight:500; font-size:15px; padding:14px 24px; border-radius:2px; text-decoration:none; border:none; cursor:pointer; transition:background .15s, border-color .15s; }
  .btn-primary { background:#2AABE1; color:#fff; }
  .btn-primary:hover { background:#1488BD; color:#fff; }
  .btn-ghost   { background:transparent; color:var(--ink); border:1.5px solid var(--border-strong); }
  .btn-ghost:hover { border-color:var(--ink); }
  .btn-accent  { background:#2AABE1; color:#0B1115; }
  .btn-accent:hover { background:#1488BD; color:#fff; }
  .btn-outline { background:transparent; color:#fff; border:1.5px solid #33444E; }
  .btn-outline:hover { border-color:#fff; }
  .btn-sm      { font-size:13.5px; padding:10px 18px; }
  .btn-row     { display:flex; flex-wrap:wrap; gap:12px; }

  /* Cards. */
  .card        { background:var(--panel); border:1px solid var(--border); border-radius:3px; padding:28px; }
  .card-num    { font-family:'Space Mono',monospace; font-size:11px; color:var(--faint); margin-bottom:16px; }

  /* Grids. */
  .grid          { display:grid; gap:16px; }
  .grid-auto     { grid-template-columns:repeat(auto-fit,minmax(240px,1fr)); }
  .grid-auto-sm  { grid-template-columns:repeat(auto-fit,minmax(200px,1fr)); }
  .grid-auto-lg  { grid-template-columns:repeat(auto-fit,minmax(280px,1fr)); }
  .grid-cards    { grid-template-columns:repeat(auto-fill,minmax(280px,1fr)); }

  /* IATF pill / status badge. */
  .badge      { display:inline-flex; align-items:center; gap:8px; border:1px solid var(--border-soft); background:var(--bg-alt); padding:8px 14px; border-radius:2px; }
  .badge-dark { border-color:#1F2A31; background:#141D23; }
  .badge .dot { width:7px; height:7px; border-radius:50%; background:#2AABE1; display:block; flex:none; }
  .badge .txt { font-family:'Space Mono',monospace; font-size:11px; letter-spacing:0.02em; color:var(--muted); }
  .badge-dark .txt { color:#AEB9C0; }

  /* Heading row: section title on the left, "view all" link on the right. */
  .head-row   { display:flex; flex-wrap:wrap; justify-content:space-between; align-items:flex-end; gap:16px; margin-bottom:36px; }
  .link-arrow { font-family:'Space Mono',monospace; font-size:13px; color:var(--cyan-ink); text-decoration:none; }

  /* Dark CTA band: heading + buttons side by side. */
  .cta-band   { display:grid; grid-template-columns:repeat(auto-fit,minmax(280px,1fr)); gap:32px; align-items:center; }

  /* Stat blocks (dark strips on About / Certifications). */
  .stat-row   { display:grid; grid-template-columns:repeat(auto-fit,minmax(200px,1fr)); }
  .stat       { padding:clamp(36px,5vw,52px) clamp(20px,4vw,40px); border-right:1px solid #1F2A31; }
  .stat:last-child { border-right:none; }
  .stat-num   { font-family:'Space Grotesk',sans-serif; font-weight:700; font-size:clamp(28px,4vw,42px); color:#2AABE1; }
  .stat-label { font-family:'Space Mono',monospace; font-size:11px; letter-spacing:0.08em; color:#7E8C94; margin-top:8px; }

  /* Image figure (fills its box, rounded).
     display/width are set explicitly to override Bootstrap's own .figure
     utility (display:inline-block), which would otherwise collapse the box to
     zero width because the image inside is absolutely positioned. */
  .figure     { display:block; width:100%; position:relative; overflow:hidden; }
  .figure img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; border-radius:4px; }

  /* Leadership pull quote + attribution. */
  .pull-quote { font-family:'Space Grotesk',sans-serif; font-weight:500; font-size:clamp(20px,2.6vw,30px); line-height:1.3; letter-spacing:-0.01em; color:var(--ink); margin:0 0 24px; }
  .name       { font-family:'Space Grotesk',sans-serif; font-weight:600; font-size:17px; color:var(--ink); }
  .role       { font-size:14px; color:var(--muted); margin-top:3px; }

  /* Simple mono field label used above address blocks etc. */
  .mono-label { font-family:'Space Mono',monospace; font-size:11px; letter-spacing:0.12em; color:var(--faint); text-transform:uppercase; margin-bottom:10px; }
  .link-mono  { display:block; text-decoration:none; font-family:'Space Mono',monospace; font-size:15px; color:#2AABE1; padding:3px 0; }

  /* Embedded map. */
  .map-embed        { min-height:420px; border:1px solid var(--border); border-radius:4px; overflow:hidden; background:var(--bg-alt); }
  .map-embed iframe { border:0; display:block; width:100%; height:100%; min-height:420px; }

  /* Capability process card. */
  .capcard      { border:1px solid var(--border); border-radius:3px; padding:30px; transition:border-color .15s; }
  .capcard-head { display:flex; justify-content:space-between; align-items:baseline; margin-bottom:22px; }
  .capcard-abbr { font-family:'Space Grotesk',sans-serif; font-weight:700; font-size:22px; color:#2AABE1; }
  .capcard-code { font-family:'Space Mono',monospace; font-size:10px; color:var(--faint); }
  .capcard-meta { border-top:1px solid var(--border-soft); padding-top:16px; display:grid; grid-template-columns:1fr 1fr; gap:12px; }
  .meta-k       { font-family:'Space Mono',monospace; font-size:10px; color:var(--faint); margin-bottom:4px; }
  .meta-v       { font-size:13px; color:var(--body); }

  /* Home page. */
  .hero-grid { max-width:1280px; margin:0 auto; display:grid; grid-template-columns:1.06fr 0.94fr; }
  .hero-left { padding:clamp(44px,6vw,76px) clamp(20px,4vw,40px); border-right:1px solid var(--border); }
  .hero-h1   { font-family:'Space Grotesk',sans-serif; font-weight:600; font-size:clamp(38px,5.4vw,62px); line-height:1.02; letter-spacing:-0.028em; margin:0 0 24px; }
  .hero-fig  { position:relative; background:var(--bg-alt); min-height:420px; overflow:hidden; }
  .hero-fig img { display:block; position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }

  .inhouse-bar   { max-width:1280px; margin:0 auto; padding:18px clamp(20px,4vw,40px); display:flex; flex-wrap:wrap; align-items:center; gap:10px 22px; }
  .inhouse-label { font-family:'Space Mono',monospace; font-size:11px; color:var(--faint); letter-spacing:0.12em; }
  .inhouse-tag   { font-family:'Space Mono',monospace; font-size:12px; color:var(--body); }
  .inhouse-sep   { color:var(--border-strong); }

  .diffcard      { border:1px solid var(--border); border-radius:3px; padding:28px; transition:transform .2s, box-shadow .2s; }
  .diffcard-icon { width:34px; height:34px; border:1.5px solid #2AABE1; border-radius:3px; display:flex; align-items:center; justify-content:center; margin-bottom:18px; }

  .stage-row { display:grid; grid-template-columns:repeat(auto-fit,minmax(200px,1fr)); }
  .stage     { border-top:2px solid var(--border-strong); padding:18px 20px 0 0; }
  .stage:first-child { border-top-color:#2AABE1; }
  .stage-num { font-family:'Space Mono',monospace; font-size:11px; color:var(--faint); margin-bottom:14px; }

  .spec-sheet      { border:1px solid #1F2A31; border-radius:4px; overflow:hidden; background:#141D23; }
  .spec-sheet-head { display:flex; justify-content:space-between; padding:14px 20px; border-bottom:1px solid #1F2A31; font-family:'Space Mono',monospace; font-size:11px; color:#6E7D85; }
  .spec-sheet-grid { display:grid; grid-template-columns:1fr 1fr; }
  .ss-cell   { padding:16px 20px; }
  .spec-sheet-grid .ss-cell:nth-child(odd)  { border-right:1px solid #1F2A31; }
  .spec-sheet-grid .ss-cell:nth-child(-n+4) { border-bottom:1px solid #1F2A31; }
  .ss-k      { font-family:'Space Mono',monospace; font-size:10px; color:#6E7D85; margin-bottom:6px; }
  .ss-v      { font-family:'Space Grotesk',sans-serif; font-size:15px; color:#fff; }

  .partners-card { background:#fff; border:1px solid var(--border); border-radius:6px; padding:clamp(20px,4vw,44px); max-width:1000px; margin:0 auto; }
  .partners-card img { display:block; width:100%; height:auto; }

  .insight-card     { text-decoration:none; display:block; }
  .insight-card img { display:block; border-radius:3px; height:160px; width:100%; object-fit:cover; margin-bottom:18px; }

  /* Request-a-quote page. */
  .rfq-grid    { max-width:1280px; margin:0 auto; display:grid; grid-template-columns:0.82fr 1.18fr; min-height:calc(100vh - 68px); }
  .rfq-aside   { background:#0F161A; color:#fff; padding:clamp(40px,5vw,64px) clamp(24px,4vw,48px); border-right:1px solid #1F2A31; }
  .rfq-aside h1{ font-family:'Space Grotesk',sans-serif; font-weight:600; font-size:clamp(30px,3.8vw,44px); line-height:1.06; letter-spacing:-0.025em; margin:0 0 18px; color:#fff; }
  .rfq-aside p { font-size:16px; line-height:1.66; color:#AEB9C0; margin:0 0 36px; max-width:380px; }
  .rfq-aside a.mail { display:block; text-decoration:none; font-family:'Space Mono',monospace; font-size:14px; color:#2AABE1; margin-bottom:10px; }
  .rfq-aside .addr { font-size:14px; line-height:1.7; color:#AEB9C0; }
  .rfq-form-wrap { padding:clamp(40px,5vw,64px) clamp(24px,4vw,56px); }
  .rfq-steps   { border:1px solid #1F2A31; border-radius:4px; overflow:hidden; margin-bottom:32px; }
  .rfq-step    { display:flex; gap:14px; padding:18px 20px; border-bottom:1px solid #1F2A31; }
  .rfq-step:last-child { border-bottom:none; }
  .rfq-step .n { font-family:'Space Mono',monospace; font-size:12px; color:#2AABE1; flex:none; }
  .rfq-step .t { font-family:'Space Grotesk',sans-serif; font-weight:600; font-size:15px; }
  .rfq-step .d { font-size:13px; color:#7E8C94; margin-top:3px; }
  .form-section{ font-family:'Space Mono',monospace; font-size:11px; letter-spacing:0.14em; color:var(--faint); text-transform:uppercase; margin:34px 0 24px; }
  .fld.is-error{ border-color:#D46A6A; }
  .field-error { font-size:13px; color:#B34747; margin-top:8px; }
  .upload      { display:flex; align-items:center; gap:14px; border:1.5px dashed var(--border-strong); border-radius:3px; padding:20px; cursor:pointer; transition:border-color .15s, background .15s; }
  .upload-icon { width:40px; height:40px; border:1.5px solid var(--border-strong); border-radius:3px; display:flex; align-items:center; justify-content:center; flex:none; font-family:'Space Grotesk',sans-serif; font-size:20px; color:var(--muted); }
  .consent     { display:flex; align-items:flex-start; gap:10px; margin-bottom:28px; }
  .consent input { margin-top:3px; accent-color:#2AABE1; width:16px; height:16px; }
  .consent span  { font-size:13.5px; line-height:1.55; color:var(--muted); }
  .alert       { border:1px solid #E6A6A6; background:#FBEEEE; color:#9A2A2A; border-radius:3px; padding:14px 18px; margin-bottom:24px; font-size:14px; }
  .alert a     { color:#9A2A2A; }
  .success     { min-height:400px; height:100%; display:flex; flex-direction:column; align-items:flex-start; justify-content:center; }
  .success-check { width:56px; height:56px; border:2px solid #2AABE1; border-radius:50%; display:flex; align-items:center; justify-content:center; margin-bottom:24px; font-family:'Space Grotesk',sans-serif; font-size:26px; color:#2AABE1; }
  .ref-pill    { font-family:'Space Mono',monospace; font-size:13px; color:#2AABE1; border:1px solid #BEE3F3; background:#F0F9FD; padding:12px 18px; border-radius:2px; margin-bottom:30px; }

  /* Product detail. */
  .breadcrumb-bar { border-bottom:1px solid var(--border); }
  .breadcrumb     { max-width:1280px; margin:0 auto; padding:16px clamp(20px,4vw,40px); font-family:'Space Mono',monospace; font-size:12px; color:var(--faint); }
  .breadcrumb a   { color:var(--faint); text-decoration:none; }
  .breadcrumb .cur{ color:#2AABE1; }
  .pd-grid  { max-width:1280px; margin:0 auto; display:grid; grid-template-columns:1fr 1fr; }
  .pd-left  { padding:clamp(28px,4vw,48px) clamp(20px,4vw,40px); border-right:1px solid var(--border); }
  .pd-right { padding:clamp(28px,4vw,48px) clamp(20px,4vw,40px); }
  .pd-media { position:relative; aspect-ratio:4/3; border-radius:4px; overflow:hidden; margin-bottom:14px; background:linear-gradient(140deg,#0B1115 0%,#16232B 55%,#223947 110%); }
  .pd-media img   { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; display:block; }
  .pd-media .code { position:absolute; left:28px; top:26px; z-index:2; pointer-events:none; font-family:'Space Mono',monospace; font-size:11px; letter-spacing:0.14em; color:#2AABE1; text-shadow:0 1px 4px rgba(0,0,0,.45); }
  .pd-thumbs      { display:grid; grid-template-columns:repeat(4,1fr); gap:10px; }
  .pd-thumb       { display:block; aspect-ratio:4/3; border:1.5px solid var(--border); border-radius:3px; overflow:hidden; padding:0; background:none; cursor:pointer; transition:border-color .15s; }
  .pd-thumb img   { width:100%; height:100%; object-fit:cover; display:block; }
  .pd-thumb:hover, .pd-thumb.active { border-color:#2AABE1; }
  .tag-chip       { font-family:'Space Mono',monospace; font-size:11px; color:var(--muted); border:1px solid var(--border); padding:5px 10px; border-radius:2px; }
  .tag-chip.accent{ color:#2AABE1; border-color:#BEE3F3; background:#F0F9FD; }
  .spec       { border:1px solid var(--border); border-radius:4px; overflow:hidden; }
  .spec-head  { display:flex; justify-content:space-between; padding:13px 18px; background:var(--bg-alt); border-bottom:1px solid var(--border); font-family:'Space Mono',monospace; font-size:11px; color:var(--muted); }
  .spec-grid  { display:grid; grid-template-columns:1fr 1fr; }
  .spec-cell  { padding:14px 18px; }
  .spec-grid .spec-cell:nth-child(odd)  { border-right:1px solid var(--border-soft); }
  .spec-grid .spec-cell:nth-child(-n+4) { border-bottom:1px solid var(--border-soft); }
  .spec-k     { font-family:'Space Mono',monospace; font-size:10px; color:var(--faint); margin-bottom:5px; }
  .spec-v     { font-family:'Space Grotesk',sans-serif; font-weight:500; font-size:15px; color:var(--ink); }
  .relcard        { text-decoration:none; display:block; background:var(--panel); border:1px solid var(--border); border-radius:3px; padding:24px; transition:border-color .15s; }
  .relcard .code  { font-family:'Space Mono',monospace; font-size:10px; color:#2AABE1; margin-bottom:10px; }
  .relcard .name  { font-family:'Space Grotesk',sans-serif; font-weight:600; font-size:18px; color:var(--ink); }
  .relcard .tag   { font-size:13px; color:var(--muted); margin-top:5px; }
  .corner { position:absolute; width:16px; height:16px; z-index:3; pointer-events:none; }
  .corner.tl { top:14px; left:14px; border-top:2px solid #2AABE1; border-left:2px solid #2AABE1; }
  .corner.tr { top:14px; right:14px; border-top:2px solid #2AABE1; border-right:2px solid #2AABE1; }
  .corner.bl { bottom:14px; left:14px; border-bottom:2px solid #2AABE1; border-left:2px solid #2AABE1; }
  .corner.br { bottom:14px; right:14px; border-bottom:2px solid #2AABE1; border-right:2px solid #2AABE1; }

  /* Blog. */
  .feat         { text-decoration:none; display:block; }
  .feat-grid    { display:grid; grid-template-columns:1.1fr 0.9fr; border:1px solid var(--border); border-radius:4px; overflow:hidden; }
  .feat-grid img{ display:block; min-height:320px; height:100%; width:100%; object-fit:cover; }
  .feat-body    { padding:clamp(28px,4vw,44px); display:flex; flex-direction:column; justify-content:center; }
  .feat-tag     { font-family:'Space Mono',monospace; font-size:11px; color:#2AABE1; border:1px solid #BEE3F3; background:#F0F9FD; padding:5px 10px; border-radius:2px; }
  .feattitle    { font-family:'Space Grotesk',sans-serif; font-weight:600; font-size:clamp(24px,3vw,32px); line-height:1.14; letter-spacing:-0.02em; margin:0 0 14px; color:var(--ink); transition:color .15s; }
  .blogcard     { text-decoration:none; border:1px solid var(--border); border-radius:4px; overflow:hidden; display:flex; flex-direction:column; transition:border-color .15s; }
  .blogcard-img { height:170px; width:100%; background-size:cover; background-position:center; background-color:#16232B; }
  .blogcard-body{ padding:24px; display:flex; flex-direction:column; flex:1; }
  .blogtitle    { font-family:'Space Grotesk',sans-serif; font-weight:600; font-size:19px; line-height:1.22; margin:0 0 10px; color:var(--ink); transition:color .15s; }
  .meta-mono    { font-family:'Space Mono',monospace; font-size:11px; color:var(--faint); }
  .read-more    { margin-top:auto; font-family:'Space Mono',monospace; font-size:12px; color:var(--cyan-ink); }

  /* Product catalogue card. */
  .pcard        { text-decoration:none; border:1px solid var(--border); border-radius:3px; overflow:hidden; display:flex; flex-direction:column; height:100%; transition:border-color .15s; }
  .pcard-media  { position:relative; height:180px; overflow:hidden; background:linear-gradient(135deg,#0F161A 0%,#16232B 58%,#213846 100%); }
  .pcard-media img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
  .pcard-scrim  { position:absolute; inset:0; pointer-events:none; background:linear-gradient(to top, rgba(11,17,21,0.9) 0%, rgba(11,17,21,0.1) 52%, rgba(11,17,21,0.35) 100%); }
  .pcard-glow   { position:absolute; inset:0; pointer-events:none; background:radial-gradient(130% 95% at 88% -12%, rgba(42,171,225,0.42) 0%, rgba(42,171,225,0) 56%); }
  .pcard-lines  { position:absolute; inset:0; pointer-events:none; background-image:linear-gradient(rgba(255,255,255,0.045) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,0.045) 1px,transparent 1px); background-size:24px 24px; }
  .pcard-name   { position:absolute; left:18px; right:18px; bottom:16px; z-index:2; pointer-events:none; font-family:'Space Grotesk',sans-serif; font-weight:600; font-size:19px; line-height:1.16; letter-spacing:-0.01em; color:#fff; text-shadow:0 1px 6px rgba(0,0,0,.55); }
  .pcard-proc   { position:absolute; top:12px; left:12px; z-index:2; pointer-events:none; font-family:'Space Mono',monospace; font-size:10px; color:#0B1115; background:#2AABE1; padding:3px 8px; border-radius:2px; }
  .pcard-body   { padding:22px; display:flex; flex-direction:column; flex:1; }
  .pcard-code   { font-family:'Space Mono',monospace; font-size:10px; color:#2AABE1; margin-bottom:10px; }
  .pcard-foot   { margin-top:auto; display:flex; justify-content:space-between; align-items:center; }
  .pcard-sys    { font-family:'Space Mono',monospace; font-size:11px; color:var(--faint); }
  .parrow       { font-family:'Space Mono',monospace; font-size:13px; color:#2AABE1; opacity:0; transform:translateX(-4px); transition:opacity .15s, transform .15s; }

  /* Quote attribution + letter badge (Quality Control / SMQCDE). */
  .attrib       { border-left:2px solid #2AABE1; padding-left:16px; }
  .letter-badge { width:34px; height:34px; border:1.5px solid #2AABE1; border-radius:3px; display:flex; align-items:center; justify-content:center; margin-bottom:18px; font-family:'Space Grotesk',sans-serif; font-weight:700; font-size:16px; color:#2AABE1; }

  /* Bordered list panel (integrated stack / vertical integration). */
  .list-panel      { border:1px solid var(--border); border-radius:4px; overflow:hidden; background:var(--panel); }
  .list-panel-item { display:flex; gap:20px; padding:24px 26px; border-bottom:1px solid var(--border); }
  .list-panel-item:last-child { border-bottom:none; }
  .list-panel-item .num { font-family:'Space Mono',monospace; font-size:12px; color:#2AABE1; width:34px; flex:none; }

  @media (max-width:640px){
    .btn{ font-size:14px; }
  }

  /* ---------- Header / navigation ---------- */
  .site-header { position:sticky; top:0; z-index:50; background:var(--nav-bg); backdrop-filter:saturate(150%) blur(8px); -webkit-backdrop-filter:saturate(150%) blur(8px); border-bottom:1px solid var(--border); }
  .nav-inner   { max-width:1280px; margin:0 auto; padding:0 clamp(20px,4vw,40px); display:flex; align-items:center; justify-content:space-between; height:68px; }
  .brand       { display:flex; align-items:center; gap:11px; text-decoration:none; }
  .brand img   { width:36px; height:36px; display:block; }
  .brand-name  { display:block; font-family:'Space Grotesk',sans-serif; font-weight:700; font-size:16px; color:var(--ink); letter-spacing:0.01em; line-height:1; }
  .brand-sub   { display:block; font-family:'Space Mono',monospace; font-size:8.5px; color:var(--faint); letter-spacing:0.16em; margin-top:2px; }
  .main-nav    { display:flex; align-items:center; gap:22px; }
  .main-nav .navlink { position:relative; font-size:14.5px; color:var(--body); font-weight:400; padding:23px 0; text-decoration:none; transition:color .15s; }
  .main-nav .navlink.is-active { color:var(--ink); font-weight:600; }
  .main-nav .navlink::after { content:''; position:absolute; left:0; right:0; bottom:0; height:2px; background:transparent; }
  .main-nav .navlink.is-active::after { background:#2AABE1; }
  .nav-right   { display:flex; align-items:center; gap:14px; }
  .navcta      { display:flex; align-items:center; }
  .themetoggle { display:flex; align-items:center; justify-content:center; width:42px; height:42px; background:transparent; border:1px solid var(--border-strong); border-radius:2px; cursor:pointer; padding:0; transition:border-color .15s; }
  .themetoggle .icon { font-size:15px; line-height:1; color:var(--ink); }
  .burger      { align-items:center; justify-content:center; width:42px; height:42px; background:transparent; border:1px solid var(--border-strong); border-radius:2px; cursor:pointer; padding:0; }
  .burger-bars { display:block; width:18px; height:2px; background:var(--ink); box-shadow:0 6px 0 var(--ink), 0 -6px 0 var(--ink); }
  .burger-x    { font-size:20px; line-height:1; color:var(--ink); }
  .mobilepanel { border-top:1px solid var(--border); background:var(--panel); padding:10px clamp(20px,4vw,40px) 22px; }
  .mobilepanel .navlink { display:block; font-size:16px; color:var(--ink); font-weight:500; padding:14px 0; border-bottom:1px solid var(--border-soft); text-decoration:none; }
  .mobilepanel .btn { display:block; text-align:center; margin-top:16px; }

  /* ---------- Footer ---------- */
  .site-footer { background:#0F161A; color:#fff; }
  .footer-inner { max-width:1280px; margin:0 auto; padding:clamp(48px,7vw,76px) clamp(20px,4vw,40px) 0; }
  .footer-top  { padding-bottom:clamp(40px,6vw,60px); border-bottom:1px solid #1F2A31; }
  .footer-cta-row { justify-content:flex-end; }
  .footer-cols { padding:clamp(40px,6vw,56px) 0; }
  .footer-h    { font-family:'Space Mono',monospace; font-size:11px; letter-spacing:0.14em; color:#6E7D85; text-transform:uppercase; margin-bottom:18px; }
  #site .footer-lead { font-family:'Space Grotesk',sans-serif; font-weight:600; font-size:clamp(26px,3.4vw,34px); line-height:1.08; letter-spacing:-0.02em; margin:0; color:#fff; }
  .footer-note { font-size:13.5px; line-height:1.65; color:#7E8C94; max-width:280px; margin:0 0 18px; }
  .ftlink      { display:block; width:max-content; font-size:14px; color:#AEB9C0; padding:7px 0; text-decoration:none;
                 background-image:linear-gradient(90deg,#2AABE1,#2AABE1); background-repeat:no-repeat;
                 background-position:0 calc(100% - 3px); background-size:0 1.5px;
                 transition:color .18s, background-size .28s ease; }
  .footer-contact { font-size:14px; line-height:1.7; color:#AEB9C0; margin-bottom:16px; }
  .footer-phone { display:block; text-decoration:none; font-family:'Space Mono',monospace; font-size:13px; color:#2AABE1; padding:4px 0; }
  .social-row  { display:flex; gap:12px; margin-top:20px; }
  .social-icon { display:flex; align-items:center; justify-content:center; width:34px; height:34px; border:1px solid #1F2A31; border-radius:2px; }
  .footer-bar  { display:flex; flex-wrap:wrap; gap:14px; justify-content:space-between; align-items:center; padding:24px 0 28px; border-top:1px solid #1F2A31; }
  .footer-bar span { font-family:'Space Mono',monospace; font-size:11.5px; color:#6E7D85; }
  .footer-bar a    { color:#AEB9C0; text-decoration:none; transition:color .15s; }
  .footer-bar a:hover { color:#2AABE1; }

  /* ---------- Blog article pages ---------- */
  .article-hero     { max-width:1120px; margin:clamp(28px,4vw,44px) auto 0; padding:0 clamp(20px,4vw,40px); }
  .article-hero img { display:block; width:100%; aspect-ratio:2.2/1; object-fit:cover; border-radius:4px; border:1px solid var(--border); }
  .article-meta     { display:flex; align-items:center; gap:14px; flex-wrap:wrap; }
  .article-wrap     { max-width:820px; margin:0 auto; padding:clamp(32px,5vw,52px) clamp(20px,4vw,40px) clamp(44px,6vw,68px); }
  .article-body p   { font-size:16px; line-height:1.75; color:var(--body); margin:0 0 20px; }
  .article-body .article-lead { font-size:18.5px; line-height:1.6; color:var(--ink); font-weight:500; }
  .article-body h2  { font-family:'Space Grotesk',sans-serif; font-weight:600; font-size:clamp(22px,2.6vw,28px); line-height:1.15; letter-spacing:-0.015em; margin:38px 0 14px; }
  .article-body h3  { font-family:'Space Grotesk',sans-serif; font-weight:600; font-size:clamp(18px,2.2vw,22px); line-height:1.2; letter-spacing:-0.01em; margin:32px 0 12px; }
  .article-body ul  { margin:0 0 20px; padding:0; list-style:none; }
  .article-body li  { position:relative; padding-left:22px; margin-bottom:12px; font-size:15.5px; line-height:1.7; color:var(--body); }
  .article-body li::before { content:""; position:absolute; left:0; top:11px; width:8px; height:8px; background:#2AABE1; border-radius:1px; }
  .article-body strong { color:var(--ink); font-weight:600; }
