/* ============================================================
   ANAYA ENTERPRISES - Design System
   "Forged & Machined" - dark steel + molten amber.
   Hero, marquee, CTA band, header and footer are dark; .sec content
   sections are light (see "Light content sections" near the end).
   ============================================================ */

/* ---------- Fonts: self-hosted Google Fonts, latin + latin-ext subsets (IBM Plex Sans is one variable file) ---------- */
@font-face{font-family:"Barlow Condensed";font-style:normal;font-weight:500;font-display:swap;src:url(/assets/fonts/barlow-condensed-500-latin-ext.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}
@font-face{font-family:"Barlow Condensed";font-style:normal;font-weight:500;font-display:swap;src:url(/assets/fonts/barlow-condensed-500-latin.woff2) format("woff2");unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD}
@font-face{font-family:"Barlow Condensed";font-style:normal;font-weight:600;font-display:swap;src:url(/assets/fonts/barlow-condensed-600-latin-ext.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}
@font-face{font-family:"Barlow Condensed";font-style:normal;font-weight:600;font-display:swap;src:url(/assets/fonts/barlow-condensed-600-latin.woff2) format("woff2");unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD}
@font-face{font-family:"Barlow Condensed";font-style:normal;font-weight:700;font-display:swap;src:url(/assets/fonts/barlow-condensed-700-latin-ext.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}
@font-face{font-family:"Barlow Condensed";font-style:normal;font-weight:700;font-display:swap;src:url(/assets/fonts/barlow-condensed-700-latin.woff2) format("woff2");unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD}
@font-face{font-family:"IBM Plex Mono";font-style:normal;font-weight:400;font-display:swap;src:url(/assets/fonts/ibm-plex-mono-400-latin-ext.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}
@font-face{font-family:"IBM Plex Mono";font-style:normal;font-weight:400;font-display:swap;src:url(/assets/fonts/ibm-plex-mono-400-latin.woff2) format("woff2");unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD}
@font-face{font-family:"IBM Plex Mono";font-style:normal;font-weight:500;font-display:swap;src:url(/assets/fonts/ibm-plex-mono-500-latin-ext.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}
@font-face{font-family:"IBM Plex Mono";font-style:normal;font-weight:500;font-display:swap;src:url(/assets/fonts/ibm-plex-mono-500-latin.woff2) format("woff2");unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD}
@font-face{font-family:"IBM Plex Mono";font-style:normal;font-weight:600;font-display:swap;src:url(/assets/fonts/ibm-plex-mono-600-latin-ext.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}
@font-face{font-family:"IBM Plex Mono";font-style:normal;font-weight:600;font-display:swap;src:url(/assets/fonts/ibm-plex-mono-600-latin.woff2) format("woff2");unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD}
@font-face{font-family:"IBM Plex Sans";font-style:normal;font-weight:400 700;font-display:swap;src:url(/assets/fonts/ibm-plex-sans-latin-ext.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}
@font-face{font-family:"IBM Plex Sans";font-style:normal;font-weight:400 700;font-display:swap;src:url(/assets/fonts/ibm-plex-sans-latin.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}

/* ---------- Tokens ---------- */
:root{
  --ink:#070b12;
  --steel-950:#0a0f18;
  --steel-900:#0c1320;
  --steel-850:#101827;
  --steel-800:#141d2e;
  --steel-700:#1b2638;
  --steel-600:#243147;
  --line:rgba(148,163,190,.14);
  --line-strong:rgba(148,163,190,.28);
  --text:#e9eef6;
  --text-dim:#9aa8bd;
  --text-faint:#8391a7;
  --amber:#ffa61a;
  --amber-soft:#ffc35c;
  --ember:#ff5a1f;
  --blue:#3d6bff;
  --blue-soft:#7d9bff;
  --molten:linear-gradient(96deg,#ffc35c 0%,#ffa61a 34%,#ff7a00 68%,#ff4d12 100%);
  --molten-soft:linear-gradient(96deg,rgba(255,195,92,.16),rgba(255,122,0,.16));
  --plate:#f4f6f9;
  --plate-edge:#dde3ec;
  --font-display:"Barlow Condensed",ui-sans-serif,sans-serif;
  --font-body:"IBM Plex Sans",ui-sans-serif,system-ui,sans-serif;
  --font-mono:"IBM Plex Mono",ui-monospace,monospace;
  --wrap:1200px;
  --wrap-wide:1360px;
  --r-sm:6px; --r-md:12px; --r-lg:20px;
  --shadow-deep:0 30px 80px -20px rgba(2,6,14,.85);
  --ease-out:cubic-bezier(.22,1,.36,1);
}

/* ---------- Reset ---------- */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{
  font-family:var(--font-body);
  background:var(--ink);
  color:var(--text);
  line-height:1.65;
  font-size:1.0625rem;
  overflow-x:hidden;
}
img,svg,video{display:block;max-width:100%;height:auto}
/* Discourage casual saving: no drag-out, no iOS long-press menu (main.js blocks right-click) */
img,video{-webkit-user-drag:none;-webkit-touch-callout:none;user-select:none}
a{color:inherit;text-decoration:none}
button{font:inherit;cursor:pointer;border:0;background:none;color:inherit}
ul[class],ol[class]{list-style:none}
[hidden]{display:none!important}
::selection{background:#ff7a00;color:#0a0f18}

/* ---------- Type ---------- */
h1,h2,h3,h4{font-family:var(--font-display);line-height:1.02;letter-spacing:.01em;text-wrap:balance;font-weight:700}
.display{text-transform:uppercase;font-weight:700;letter-spacing:.02em;overflow-wrap:break-word}
h1.display{font-size:clamp(2.7rem,6.8vw,5.4rem)}
h2.display{font-size:clamp(2rem,4.5vw,3.4rem)}
h3{font-size:clamp(1.2rem,2vw,1.5rem);line-height:1.2}
.lede{font-size:clamp(1.06rem,1.5vw,1.24rem);color:var(--text-dim);max-width:62ch}
p+p{margin-top:1em}
.grad-text{background:var(--molten);-webkit-background-clip:text;background-clip:text;color:transparent}

/* mono annotations */
.tag{
  font-family:var(--font-mono);font-size:.72rem;letter-spacing:.22em;
  text-transform:uppercase;color:var(--amber);display:inline-flex;align-items:center;gap:.75rem;
}
.sec-num{font-family:var(--font-mono);font-size:.72rem;color:var(--text-faint);letter-spacing:.2em}

/* ---------- Layout ---------- */
.wrap{width:min(var(--wrap),calc(100% - 3rem));margin-inline:auto}
.wrap-wide{width:min(var(--wrap-wide),calc(100% - 3rem));margin-inline:auto}
section{position:relative}
.sec{padding-block:clamp(3.75rem,7vw,6rem)}
.sec-head{display:flex;flex-direction:column;gap:1.1rem;margin-bottom:clamp(2.2rem,5vw,3.6rem);max-width:70ch}
.sec-head--row{flex-direction:row;justify-content:space-between;align-items:flex-end;max-width:none;gap:2rem;flex-wrap:wrap}

/* blueprint grid backdrop */
.bp{position:relative}
.bp::before{
  content:"";position:absolute;inset:0;pointer-events:none;
  background:
    linear-gradient(rgba(148,163,190,.05) 1px,transparent 1px),
    linear-gradient(90deg,rgba(148,163,190,.05) 1px,transparent 1px);
  background-size:56px 56px;
  mask-image:radial-gradient(ellipse 90% 70% at 50% 0%,#000 30%,transparent 75%);
}
/* corner reticles */
.reticle{position:relative}
.reticle::after{
  content:"+";position:absolute;top:1.1rem;right:1.4rem;
  font-family:var(--font-mono);color:var(--text-faint);font-size:.9rem;
}

/* ---------- Header ---------- */
.skip-link{position:absolute;left:-9999px;top:0;background:var(--amber);color:#0a0f18;padding:.7rem 1.2rem;z-index:200;font-weight:600}
.skip-link:focus{left:0}
.site-header{
  position:fixed;inset-inline:0;top:0;z-index:100;
  transition:border-color .35s;
  border-bottom:1px solid transparent;
}
/* The scrolled backdrop lives on a pseudo-element: backdrop-filter on the
   header itself would trap the fixed mobile menu inside the header bar */
.site-header::before{
  content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;
  background:rgba(7,11,18,.82);
  backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);
  opacity:0;transition:opacity .35s;
}
.site-header.scrolled::before{opacity:1}
.site-header.scrolled{border-bottom-color:var(--line)}
.header-bar{display:flex;align-items:center;justify-content:space-between;gap:2rem;padding-block:.9rem}
.brand img{width:170px;height:auto}
.nav-list{display:flex;align-items:center;gap:.4rem;font-size:.94rem;font-weight:500}
.nav-list>li{position:relative}
.nav-list a{padding:.55rem .85rem;border-radius:var(--r-sm);color:var(--text-dim);transition:color .2s;display:block}
.nav-list a:hover,.nav-list a[aria-current="page"]{color:var(--text)}
.nav-list a[aria-current="page"]{color:var(--amber)}
/* dropdown */
.has-sub>button{
  display:flex;align-items:center;gap:.45rem;padding:.55rem .85rem;color:var(--text-dim);
  font-size:.94rem;font-weight:500;border-radius:var(--r-sm);transition:color .2s;
}
.has-sub>button::after{content:"";width:7px;height:7px;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transform:rotate(45deg) translateY(-2px);transition:transform .25s}
.has-sub:hover>button,.has-sub:focus-within>button{color:var(--text)}
.has-sub:hover>button::after,.has-sub:focus-within>button::after{transform:rotate(225deg) translateY(-2px)}
.sub{
  position:absolute;top:calc(100% + .6rem);left:0;min-width:270px;
  background:var(--steel-850);border:1px solid var(--line-strong);border-radius:var(--r-md);
  padding:.55rem;box-shadow:var(--shadow-deep);
  opacity:0;visibility:hidden;transform:translateY(10px);
  transition:opacity .25s,transform .25s,visibility .25s;
}
.has-sub:hover .sub,.has-sub:focus-within .sub{opacity:1;visibility:visible;transform:translateY(0)}
.sub a{display:flex;justify-content:space-between;align-items:center;padding:.65rem .9rem;border-radius:var(--r-sm);color:var(--text-dim)}
.sub a:hover{background:var(--steel-700);color:var(--text)}
.sub a::after{content:"→";color:var(--amber);opacity:0;transform:translateX(-6px);transition:.2s}
.sub a:hover::after{opacity:1;transform:none}
.sub .sub-view-all{border-top:1px solid var(--line);margin-top:.4rem;font-family:var(--font-mono);font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;color:var(--amber)}
.header-cta{display:flex;align-items:center;gap:1.1rem}
.header-phone{font-family:var(--font-mono);font-size:.84rem;color:var(--text-dim);transition:color .2s}
.header-phone:hover{color:var(--amber)}
.header-brochure{gap:.45rem}
.header-brochure svg{width:15px;height:15px;flex-shrink:0}
.nav-list a,.has-sub>button,.header-phone{white-space:nowrap}
@media (max-width:1200px) and (min-width:881px){.header-phone{display:none}.nav-list a,.has-sub>button{padding-inline:.6rem}}
.brand{flex-shrink:0}
@media (max-width:960px) and (min-width:881px){.brand img{width:138px}.nav-list{gap:0}.header-cta{gap:.7rem}}
@media (max-width:1080px) and (min-width:881px){.header-brochure .hb-label{display:none}.header-brochure{padding-inline:.8rem}.header-bar{gap:1rem}.nav-list a,.has-sub>button{padding-inline:.45rem;font-size:.9rem}}
.nav-extras{display:none}
.nav-toggle{display:none;width:44px;height:44px;position:relative;z-index:110}
.nav-toggle span{position:absolute;left:10px;right:10px;height:2px;background:var(--text);transition:.3s;border-radius:2px}
.nav-toggle span:nth-child(1){top:15px}.nav-toggle span:nth-child(2){top:22px}.nav-toggle span:nth-child(3){top:29px}
.nav-open .nav-toggle span:nth-child(1){top:22px;transform:rotate(45deg)}
.nav-open .nav-toggle span:nth-child(2){opacity:0}
.nav-open .nav-toggle span:nth-child(3){top:22px;transform:rotate(-45deg)}

/* ---------- Buttons ---------- */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:.6rem;
  font-weight:700;font-size:.97rem;letter-spacing:.01em;
  padding:.95rem 1.9rem;border-radius:999px;position:relative;overflow:hidden;
  transition:transform .25s var(--ease-out),box-shadow .25s;white-space:nowrap;
}
.btn:active{transform:scale(.97)}
.btn--molten{background:var(--molten);color:#160b02;box-shadow:0 10px 34px -10px rgba(255,122,0,.55)}
.btn--molten::before{
  content:"";position:absolute;inset:0;
  background:linear-gradient(105deg,transparent 38%,rgba(255,255,255,.5) 50%,transparent 62%);
  transform:translateX(-110%);transition:transform .7s var(--ease-out);
}
.btn--molten:hover{transform:translateY(-2px);box-shadow:0 16px 44px -10px rgba(255,122,0,.7)}
.btn--molten:hover::before{transform:translateX(110%)}
.btn--ghost{border:1px solid var(--line-strong);color:var(--text)}
.btn--ghost:hover{border-color:var(--amber);color:var(--amber);transform:translateY(-2px)}
.btn--sm{padding:.62rem 1.3rem;font-size:.87rem}
.btn .arr{transition:transform .25s}
.btn:hover .arr{transform:translateX(4px)}

/* ---------- Hero ---------- */
.hero{
  min-height:100svh;display:flex;flex-direction:column;justify-content:center;
  position:relative;isolation:isolate;padding-top:6.5rem;overflow:clip;
}
.hero-media{position:absolute;inset:0;z-index:-3}
.hero-media img{width:100%;height:100%;object-fit:cover;filter:saturate(.85) contrast(1.05)}
.hero-media::after{
  content:"";position:absolute;inset:0;
  background:
    radial-gradient(90% 70% at 18% 88%,rgba(255,90,20,.24),transparent 55%),
    linear-gradient(180deg,rgba(7,11,18,.86) 0%,rgba(7,11,18,.62) 45%,var(--ink) 100%);
}
.hero-canvas{position:absolute;inset:0;z-index:-2;pointer-events:none}
/* 3D gear pair (home hero, desktop) */
.hero-3d{
  position:absolute;inset-block:0;right:0;width:min(50vw,860px);z-index:-1;
  pointer-events:none;opacity:0;transition:opacity 1.4s ease .15s;
}
.hero-3d.is-on{opacity:1}
.hero-3d canvas{width:100%!important;height:100%!important;display:block}
@media (max-width:1080px){.hero-3d{display:none}}
.hero-inner{display:grid;gap:2.2rem;max-width:60rem}
.hero h1 .grad-text{display:inline-block}
.hero-ctas{display:flex;gap:1rem;flex-wrap:wrap;align-items:center}
.hero-scroll{
  position:absolute;bottom:2rem;left:50%;transform:translateX(-50%);
  font-family:var(--font-mono);font-size:.72rem;letter-spacing:.3em;color:var(--text-faint);
  display:flex;flex-direction:column;align-items:center;gap:.7rem;text-transform:uppercase;
}
.hero-scroll::after{content:"";width:1px;height:44px;background:linear-gradient(var(--amber),transparent);animation:drip 2.2s infinite}
@keyframes drip{0%{transform:scaleY(0);transform-origin:top}55%{transform:scaleY(1);transform-origin:top}56%{transform-origin:bottom}100%{transform:scaleY(0);transform-origin:bottom}}

/* hero stats strip */
.stat-strip{
  display:grid;grid-template-columns:repeat(4,1fr);
  border-block:1px solid var(--line);margin-top:1rem;
}
.stat{padding:1.4rem 1.2rem;border-right:1px solid var(--line)}
.stat:first-child{padding-left:0}
.stat:last-child{border-right:0}
.stat-strip--3{grid-template-columns:repeat(3,1fr)}
@media (max-width:700px){
  .stat-strip{grid-template-columns:1fr 1fr}
  .stat:nth-child(even){border-right:0}
  .stat:nth-child(odd){padding-left:0}
  /* three figures: the wide one on its own row, the other two side by side */
  .stat-strip--3{grid-template-columns:1fr 1fr}
  .stat-strip--3 .stat{border-right:0;padding:1rem 0}
  .stat-strip--3 .stat:first-child{grid-column:1/-1;border-bottom:1px solid var(--line)}
  .stat-strip--3 .stat:nth-child(2){border-right:1px solid var(--line)}
  .stat-strip--3 .stat:nth-child(3){padding-left:1rem}
}
.stat b{font-family:var(--font-display);font-weight:900;font-size:clamp(1.7rem,3vw,2.4rem);display:block;line-height:1}
.stat b em{font-style:normal;color:var(--amber)}
.stat>span{font-family:var(--font-mono);font-size:.72rem;letter-spacing:.16em;text-transform:uppercase;color:var(--text-faint);display:block;margin-top:.5rem}

/* ---------- Marquee ---------- */
.marquee{overflow:hidden;border-block:1px solid var(--line);padding-block:1.15rem;background:var(--steel-950)}
.marquee-track{display:flex;gap:3.4rem;width:max-content;animation:marquee 42s linear infinite}
.marquee:hover .marquee-track{animation-play-state:paused}
.marquee-track span{
  font-family:var(--font-display);font-weight:800;text-transform:uppercase;
  font-size:1rem;letter-spacing:.12em;color:var(--text-faint);display:flex;align-items:center;gap:3.4rem;white-space:nowrap;
}
.marquee-track span::after{content:"✦";color:var(--ember);font-size:.8rem}
@keyframes marquee{to{transform:translateX(-50%)}}

/* ---------- Cards ---------- */
.grid{display:grid;gap:1.4rem}
.grid-2{grid-template-columns:repeat(2,1fr)}
.grid-3{grid-template-columns:repeat(3,1fr)}
.grid-4{grid-template-columns:repeat(4,1fr)}

.card{
  background:linear-gradient(165deg,var(--steel-800),var(--steel-900) 70%);
  border:1px solid var(--line);border-radius:var(--r-lg);
  padding:1.9rem;position:relative;overflow:hidden;
  transition:transform .4s var(--ease-out),border-color .4s,box-shadow .4s;
}
.card:hover{transform:translateY(-6px);border-color:rgba(255,166,26,.45);box-shadow:0 24px 60px -18px rgba(2,6,14,.9)}
.card::before{
  content:"";position:absolute;inset:0 0 auto 0;height:3px;background:var(--molten);
  transform:scaleX(0);transform-origin:left;transition:transform .5s var(--ease-out);
}
.card:hover::before{transform:scaleX(1)}
.card h3 a::after{content:"";position:absolute;inset:0}
.card .card-kicker{font-family:var(--font-mono);font-size:.72rem;letter-spacing:.2em;text-transform:uppercase;color:var(--amber);margin-bottom:.9rem;display:block}
.card p{color:var(--text-dim);font-size:.97rem;margin-top:.7rem}
.card .card-more{display:inline-flex;align-items:center;gap:.5rem;margin-top:1.3rem;font-family:var(--font-mono);font-size:.74rem;letter-spacing:.14em;text-transform:uppercase;color:var(--amber-soft)}
.card .card-more::after{content:"→";transition:transform .25s}
.card:hover .card-more::after{transform:translateX(5px)}

/* product spec-plate card (photo on white) */
.plate-card{
  background:var(--steel-900);border:1px solid var(--line);border-radius:var(--r-lg);
  overflow:hidden;position:relative;
  transition:transform .45s var(--ease-out),border-color .45s,box-shadow .45s;
  transform-style:preserve-3d;
}
.plate-card:hover{transform:translateY(-6px);border-color:rgba(255,166,26,.5);box-shadow:0 26px 60px -18px rgba(2,6,14,.95)}
.plate-card .plate{
  background:var(--plate);aspect-ratio:4/3;display:grid;place-items:center;position:relative;overflow:hidden;
}
.plate-card .plate img{width:96%;height:96%;object-fit:contain;transition:transform .6s var(--ease-out)}
.plate-card:hover .plate img{transform:scale(1.07) rotate(-1deg)}
.plate-card .plate--photo img{width:100%;height:100%;object-fit:cover}
.plate-card:hover .plate--photo img{transform:scale(1.05)}
.plate-card .plate::after{
  content:"";position:absolute;inset:0;
  background:linear-gradient(115deg,transparent 42%,rgba(255,255,255,.65) 50%,transparent 58%);
  transform:translateX(-120%);transition:transform .8s var(--ease-out);
}
.plate-card:hover .plate::after{transform:translateX(120%)}
.plate-card .plate-meta{padding:1.4rem 1.6rem 1.6rem}
.plate-card .plate-meta h3{font-size:1.18rem}
.plate-card .plate-meta h3 a::after{content:"";position:absolute;inset:0}
.plate-card .plate-meta p{color:var(--text-dim);font-size:.94rem;margin-top:.5rem}
.plate-card .plate-id{
  position:absolute;top:1rem;left:1.2rem;z-index:2;
  font-family:var(--font-mono);font-size:.72rem;letter-spacing:.18em;color:#5c6a80;text-transform:uppercase;
}

/* icon chip */
.chip{
  width:52px;height:52px;border-radius:14px;display:grid;place-items:center;margin-bottom:1.2rem;
  background:var(--molten-soft);border:1px solid rgba(255,166,26,.3);color:var(--amber);
}
.chip svg{width:26px;height:26px}

/* ---------- Split sections ---------- */
.split{display:grid;grid-template-columns:1fr 1fr;gap:clamp(2.5rem,6vw,5rem);align-items:center}
.split-media{position:relative;border-radius:var(--r-lg);overflow:hidden;box-shadow:var(--shadow-deep)}
.split-media img{width:100%;height:100%;object-fit:cover;aspect-ratio:4/3.2}
.split-media::after{content:"";position:absolute;inset:0;background:linear-gradient(200deg,transparent 55%,rgba(7,11,18,.55))}
/* product photos on white: no photo shading, just the clean plate */
.split-media:has(img[src*="/parts/"]){background:#fff}
.split-media:has(img[src*="/parts/"])::after{display:none}
.split-media img[src*="/parts/"]{object-fit:contain;padding:0 0 2.8rem}
.split-media .media-badge{
  position:absolute;bottom:1.4rem;left:1.4rem;z-index:2;
  background:rgba(7,11,18,.72);backdrop-filter:blur(10px);
  border:1px solid var(--line-strong);border-radius:var(--r-md);
  padding:.9rem 1.3rem;font-family:var(--font-mono);font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;color:#ffc35c;border-color:rgba(148,163,190,.28);
}
.checklist li{display:flex;gap:.9rem;padding-block:.55rem;color:var(--text-dim)}
.checklist li::before{
  content:"";flex:0 0 22px;height:22px;margin-top:.2rem;border-radius:50%;
  background:var(--molten-soft) center/12px no-repeat;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23ffa61a' stroke-width='3.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 12.5l5 5L20 6.5'/%3E%3C/svg%3E");
  border:1px solid rgba(255,166,26,.35);
}
.checklist b{color:var(--text)}

/* ---------- Industry tiles ---------- */
.ind-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem}
.ind-tile{
  position:relative;border-radius:var(--r-md);overflow:hidden;aspect-ratio:16/11;
  border:1px solid var(--line);
}
.ind-tile img{width:100%;height:100%;object-fit:cover;transition:transform .7s var(--ease-out),filter .5s;filter:saturate(.62) contrast(1.06) brightness(.9)}
.ind-tile:hover img{transform:scale(1.08);filter:saturate(.9) contrast(1.04)}
.ind-tile::after{content:"";position:absolute;inset:0;background:linear-gradient(rgba(24,40,66,.26),rgba(24,40,66,.26)),linear-gradient(185deg,transparent 38%,rgba(7,11,18,.9))}
.ind-tile span{
  position:absolute;bottom:.95rem;left:1.1rem;right:1rem;z-index:2;
  font-family:var(--font-display);font-weight:800;text-transform:uppercase;
  font-size:clamp(.72rem,1.7vw,.92rem);letter-spacing:.06em;overflow-wrap:break-word;color:#fff;
}
.ind-tile--text{
  aspect-ratio:16/11;border:1px dashed var(--line-strong);border-radius:var(--r-md);
  display:grid;place-items:center;text-align:center;padding:1rem;
  font-family:var(--font-mono);font-size:.8rem;letter-spacing:.12em;text-transform:uppercase;color:var(--text-dim);
  transition:border-color .3s,color .3s;
}
.ind-tile--text:hover{border-color:var(--amber);color:var(--amber)}

/* ---------- Process rail ---------- */
.rail{display:grid;grid-template-columns:repeat(4,1fr);gap:1.4rem;counter-reset:step}
.rail-step{position:relative;padding-top:1.6rem;border-top:1px solid var(--line)}
.rail-step::before{
  counter-increment:step;content:"0" counter(step);
  font-family:var(--font-mono);font-size:.78rem;color:var(--amber);letter-spacing:.16em;
  position:absolute;top:-.62rem;background:var(--ink);padding-right:.9rem;
}
.rail-step h3{font-size:1.06rem;margin-bottom:.5rem}
.rail-step p{color:var(--text-dim);font-size:.93rem}

/* home services: a ruled list rather than cards */
.svc-list{display:grid;grid-template-columns:repeat(3,1fr);gap:1.4rem 2rem}
.svc-list li{position:relative;padding-top:1.3rem;border-top:1px solid var(--line-strong)}
.svc-list h3{font-size:1.12rem;transition:color .2s}
.svc-list h3::after{content:" →";color:var(--amber)}
.svc-list h3 a::after{content:"";position:absolute;inset:0}
.svc-list li:hover h3{color:var(--amber)}
.svc-list p{color:var(--text-dim);font-size:.94rem;margin-top:.45rem}

/* ---------- CTA band ---------- */
.cta-band{
  position:relative;border-radius:var(--r-lg);overflow:hidden;isolation:isolate;
  padding:clamp(2.6rem,6vw,4.5rem);text-align:center;
  background:var(--steel-850);border:1px solid var(--line-strong);
}
.cta-band::before{
  content:"";position:absolute;inset:-40%;z-index:-1;
  background:
    radial-gradient(45% 60% at 22% 70%,rgba(255,90,20,.34),transparent 60%),
    radial-gradient(42% 60% at 80% 30%,rgba(61,107,255,.22),transparent 60%);
  animation:lava 14s ease-in-out infinite alternate;
}
@keyframes lava{to{transform:rotate(8deg) scale(1.15)}}
.cta-band h2{margin-bottom:.9rem}
.cta-band p{color:var(--text-dim);max-width:56ch;margin-inline:auto}
.cta-band .hero-ctas{justify-content:center;margin-top:2rem}

/* ---------- Page hero (interior) ---------- */
.page-hero{
  padding:clamp(9rem,16vw,12rem) 0 clamp(3rem,6vw,4.5rem);
  position:relative;isolation:isolate;overflow:clip;
}
.page-hero-media{position:absolute;inset:0;z-index:-2}
.page-hero-media img{width:100%;height:100%;object-fit:cover;filter:saturate(.8)}
.page-hero-media::after{
  content:"";position:absolute;inset:0;
  background:linear-gradient(180deg,rgba(7,11,18,.88),rgba(7,11,18,.72) 55%,var(--ink) 100%);
}
.page-hero .lede{margin-top:1.3rem}
.breadcrumbs{margin-bottom:1.6rem}
.breadcrumbs ol{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:.6rem;font-family:var(--font-mono);font-size:.74rem;letter-spacing:.1em;text-transform:uppercase;color:var(--text-faint)}
.breadcrumbs li:not(:last-child)::after{content:"/";margin-left:.6rem;color:var(--text-faint)}
.breadcrumbs a{color:var(--text-dim);transition:color .2s}
.breadcrumbs a:hover{color:var(--amber)}
.breadcrumbs [aria-current]{color:var(--amber)}

/* ---------- Data tables (alloy specs) ---------- */
.table-scroll{overflow-x:auto;border:1px solid var(--line-strong);border-radius:var(--r-md);background:var(--steel-900)}
table.spec{width:100%;border-collapse:collapse;font-family:var(--font-mono);font-size:.82rem;min-width:640px}
table.spec caption{
  text-align:left;padding:1.1rem 1.3rem;font-family:var(--font-display);
  font-size:1.05rem;font-weight:800;text-transform:uppercase;letter-spacing:.06em;
  border-bottom:1px solid var(--line-strong);
}
table.spec th{
  text-align:left;padding:.8rem 1.1rem;font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;
  color:var(--amber);background:var(--steel-850);border-bottom:1px solid var(--line-strong);white-space:nowrap;
}
table.spec td{padding:.66rem 1.1rem;border-bottom:1px solid var(--line);color:var(--text-dim);white-space:nowrap}
table.spec tbody tr:hover td{background:rgba(255,166,26,.05);color:var(--text)}
table.spec tbody tr:last-child td{border-bottom:0}
/* long grade tables fold on phones (main.js closes them); wider screens always show the table */
.tbl-fold>summary{list-style:none}
.tbl-fold>summary::-webkit-details-marker{display:none}
.tbl-fold>summary::after{content:"";width:7px;height:7px;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transform:rotate(45deg) translateY(-2px);transition:transform .25s}
.tbl-fold[open]>summary{margin-bottom:1rem}
.tbl-fold[open]>summary::after{transform:rotate(225deg) translateY(-2px)}
.tbl-fold .tf-open,.tbl-fold[open] .tf-closed{display:none}
.tbl-fold[open] .tf-open{display:inline}
@media (min-width:881px){.tbl-fold>summary{display:none}}

/* ---------- FAQ ---------- */
.faq{display:grid;gap:.9rem;max-width:56rem}
.faq details{
  background:var(--steel-900);border:1px solid var(--line);border-radius:var(--r-md);
  transition:border-color .3s;
}
.faq details[open]{border-color:rgba(255,166,26,.4)}
.faq summary{
  list-style:none;cursor:pointer;display:flex;justify-content:space-between;align-items:center;gap:1rem;
  padding:1.15rem 1.4rem;font-weight:650;font-size:1.02rem;
}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{
  content:"+";font-family:var(--font-mono);color:var(--amber);font-size:1.3rem;transition:transform .3s;flex-shrink:0;
}
.faq details[open] summary::after{transform:rotate(45deg)}
.faq .faq-a{padding:0 1.4rem 1.3rem;color:var(--text-dim)}

/* ---------- Forms ---------- */
.form-shell{
  background:linear-gradient(165deg,var(--steel-800),var(--steel-900) 75%);
  border:1px solid var(--line-strong);border-radius:var(--r-lg);
  padding:clamp(1.8rem,4vw,2.8rem);position:relative;overflow:hidden;
}
.form-shell::before{content:"";position:absolute;inset:0 0 auto 0;height:3px;background:var(--molten)}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:1.1rem}
.field{display:flex;flex-direction:column;gap:.45rem}
.field--full{grid-column:1/-1}
.field label{font-family:var(--font-mono);font-size:.74rem;letter-spacing:.16em;text-transform:uppercase;color:var(--text-dim)}
.field label em{color:var(--ember);font-style:normal}
.field input,.field select,.field textarea{
  background:var(--steel-950);border:1px solid var(--line-strong);border-radius:var(--r-sm);
  color:var(--text);padding:.85rem 1rem;font:inherit;font-size:.97rem;width:100%;
  transition:border-color .25s,box-shadow .25s;
}
.field textarea{min-height:130px;resize:vertical}
.field input:focus,.field select:focus,.field textarea:focus{
  outline:none;border-color:var(--amber);box-shadow:0 0 0 3px rgba(255,166,26,.18);
}
.field select{appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%239aa8bd' stroke-width='2'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right .9rem center;background-size:16px}
/* drawing upload */
.field-opt{font-style:normal;text-transform:none;letter-spacing:0;color:var(--text-faint);margin-left:.3rem}
.file-input{padding:.7rem!important;cursor:pointer;font-size:.88rem!important;color:var(--text-dim)!important}
.file-input::file-selector-button{
  font:inherit;font-weight:650;font-size:.85rem;margin-right:.9rem;padding:.55rem 1rem;border-radius:999px;cursor:pointer;
  border:1px solid var(--line-strong);background:var(--steel-800);color:var(--text);transition:border-color .2s,color .2s;
}
.file-input:hover::file-selector-button{border-color:var(--amber);color:var(--amber)}
.field-hint{font-size:.8rem;color:var(--text-faint);line-height:1.45}
.file-list{display:grid;gap:.25rem;font-family:var(--font-mono);font-size:.76rem;color:var(--text-dim)}
.file-list li::before{content:"\2713";color:var(--amber);margin-right:.5rem}
.form-note{font-size:.82rem;color:var(--text-faint);margin-top:1rem}
.form-error{
  background:rgba(255,90,31,.12);border:1px solid rgba(255,90,31,.45);border-radius:var(--r-sm);
  color:#ffb59e;padding:.85rem 1.1rem;font-size:.92rem;margin-bottom:1.2rem;
}
.hp-field{position:absolute;left:-9999px;opacity:0;height:0;overflow:hidden}

/* mini quote strip on product/service pages */
.quote-rail{
  position:sticky;top:6.4rem;
  background:linear-gradient(165deg,var(--steel-800),var(--steel-900) 75%);
  border:1px solid var(--line-strong);border-radius:var(--r-lg);padding:1.8rem;
}
.quote-rail h3{margin-bottom:.4rem}
.quote-rail>p{color:var(--text-dim);font-size:.92rem;margin-bottom:1.3rem}
.quote-rail .form-grid{grid-template-columns:1fr}
.quote-rail .btn{width:100%}
.quote-contact{margin-top:1.4rem;padding-top:1.3rem;border-top:1px solid var(--line);display:grid;gap:.55rem}
.quote-contact a{display:flex;gap:.7rem;align-items:center;font-family:var(--font-mono);font-size:.82rem;color:var(--text-dim);transition:color .2s}
.quote-contact a:hover{color:var(--amber)}
.quote-contact svg{width:16px;height:16px;color:var(--amber);flex-shrink:0}

/* contact page side panel */
.contact-rail h3{margin-bottom:1rem}
.contact-rail h4{font-family:var(--font-body);font-size:.95rem;font-weight:650;margin:1.6rem 0 .6rem;padding-top:1.3rem;border-top:1px solid var(--line)}
.contact-line{display:flex;gap:.85rem;align-items:flex-start;padding:.55rem 0;color:var(--text-dim);font-size:.88rem;line-height:1.35}
.contact-line svg{width:20px;height:20px;color:var(--amber);flex-shrink:0;margin-top:.15rem}
.contact-line b{display:block;color:var(--text);font-size:1.12rem;font-weight:650;margin-bottom:.1rem}
.contact-line:hover b{color:var(--amber)}
.rail-list{display:grid;gap:.4rem;color:var(--text-dim);font-size:.92rem}
.rail-list li{padding-left:1rem;position:relative}
.rail-list li::before{content:"";position:absolute;left:0;top:.62em;width:5px;height:5px;border-radius:50%;background:var(--amber)}
.rail-locs{display:grid;gap:.45rem;font-size:.92rem}
.rail-locs div{display:flex;justify-content:space-between;gap:1rem}
.rail-locs dt{color:var(--text);font-weight:600}
.rail-locs dd{color:var(--text-dim)}
.rail-brochure{display:inline-block;margin-top:1.4rem;color:var(--amber);font-size:.9rem;text-decoration:underline;text-underline-offset:3px}

/* article layout with rail */
.article-rail{display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:clamp(2rem,5vw,4rem);align-items:start}
.article h2{font-size:clamp(1.45rem,2.6vw,1.95rem);margin:2.6rem 0 1rem}
.article h2:first-child{margin-top:0}
/* phones: main.js folds .article--fold after its first section and adds a Read more button */
.article.is-folded>h2~h2,.article.is-folded>h2~h2~*{display:none}
.article-more{justify-self:start;margin-top:-.6rem}
.article p{color:var(--text-dim)}
.article ul{margin:1rem 0;display:grid;gap:.5rem}
.article ul li{display:flex;gap:.8rem;color:var(--text-dim)}
.article ul li::before{content:"-";color:var(--amber);flex-shrink:0}
.article b,.article strong{color:var(--text)}
.article a:not(.btn){color:var(--amber);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:3px;text-decoration-color:rgba(163,83,0,.35);transition:text-decoration-color .2s}
.article a:not(.btn):hover{text-decoration-color:currentColor}

/* ---------- Gallery ---------- */
.gallery-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem}
.g-item{background:var(--plate);border-radius:var(--r-md);overflow:hidden;aspect-ratio:1;display:grid;place-items:center;position:relative;border:1px solid var(--line)}
.g-item img{width:100%;height:100%;object-fit:contain;padding:.4rem .4rem 1.6rem;transition:transform .5s var(--ease-out)}
.g-item:hover img{transform:scale(1.09)}
/* close-up crops whose part runs off the original photo: fill the tile edge to edge */
.g-item--bleed img{padding:0;object-fit:cover}
.g-item figcaption{
  position:absolute;bottom:0;inset-inline:0;padding:.55rem .9rem;
  font-family:var(--font-mono);font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;
  color:#5c6a80;background:linear-gradient(transparent,rgba(244,246,249,.94) 40%);
}

/* product gallery filter tabs (products page) */
.pg-tabs{display:flex;flex-wrap:wrap;gap:.5rem;margin:1.6rem 0 1.8rem}
.pg-tabs button{
  font-family:var(--font-mono);font-size:.74rem;letter-spacing:.12em;text-transform:uppercase;
  padding:.6rem 1rem;border-radius:999px;border:1px solid var(--line-strong);color:var(--text-dim);background:var(--steel-900);
  transition:border-color .2s,color .2s,background .2s;
}
.pg-tabs button span{opacity:.6;margin-left:.3rem}
.pg-tabs button:hover{border-color:var(--amber);color:var(--amber)}
.pg-tabs button[aria-pressed="true"]{background:var(--text);border-color:var(--text);color:var(--sec-bg,#fff)}
.pg-tabs button:focus-visible{outline:2px solid var(--amber);outline-offset:2px}

/* workshop photo grid (full-bleed site photos, not product cutouts) */
.photo-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:1rem}
.p-item{position:relative;margin:0;border-radius:var(--r-md);overflow:hidden;border:1px solid var(--line);background:var(--steel-900);grid-column:span 2;aspect-ratio:16/9}
.p-item--lead{grid-column:span 4}
.p-item--tall{aspect-ratio:auto}
.p-item img{width:100%;height:100%;object-fit:cover;transition:transform .6s var(--ease-out)}
.p-item--tall img{position:absolute;inset:0}
.p-item--wide{grid-column:span 4}
.p-item--video{grid-row:span 2;aspect-ratio:auto;background:#000}
.p-item video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.cc-layout{display:grid;grid-template-columns:1fr minmax(260px,330px);gap:clamp(2rem,4vw,3.5rem);align-items:start}
.p-item.p-item--solo{grid-column:auto;grid-row:auto;aspect-ratio:9/16}
@media (max-width:880px){.cc-layout{grid-template-columns:1fr}.p-item.p-item--solo{width:min(100%,360px)}}
.p-item--video figcaption{bottom:auto;top:0;padding:.6rem .95rem 1.6rem;background:linear-gradient(rgba(7,11,18,.86),transparent);pointer-events:none}
.p-item:hover img{transform:scale(1.04)}
.p-item figcaption{
  position:absolute;bottom:0;inset-inline:0;padding:1.6rem .95rem .6rem;
  font-family:var(--font-mono);font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;
  color:#e9eef6;background:linear-gradient(transparent,rgba(7,11,18,.86));
}

/* ---------- Google reviews ---------- */
.review-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.4rem}
.review-card{
  margin:0;background:var(--steel-900);border:1px solid var(--line);border-radius:var(--r-lg);
  padding:1.8rem;display:flex;flex-direction:column;gap:1rem;
}
.review-card blockquote{margin:0;flex:1}
.review-card blockquote p{font-size:1.05rem;line-height:1.6;color:var(--text)}
.review-card figcaption{display:flex;flex-direction:column;gap:.2rem;padding-top:1rem;border-top:1px solid var(--line)}
.review-card figcaption b{font-weight:650}
.review-card figcaption span{font-family:var(--font-mono);font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;color:var(--text-faint)}
.stars{display:inline-flex;gap:.15rem;color:#f5a623}
.stars svg{width:18px;height:18px;fill:currentColor}
.review-score{display:flex;align-items:center;gap:.7rem}
.review-score b{font-family:var(--font-display);font-weight:800;font-size:2.4rem;line-height:1}
.review-score span:last-child{font-family:var(--font-mono);font-size:.74rem;letter-spacing:.14em;text-transform:uppercase;color:var(--text-dim)}
.center-row{justify-content:center}
@media (max-width:880px){.review-grid{grid-template-columns:1fr}}
/* home gallery: three columns hold six photos without a half-empty last row */
@media (max-width:1080px) and (min-width:621px){.gallery-grid--short .g-item:nth-child(n+7){display:none}}

/* ---------- Lightbox ---------- */
.g-item img[role="button"],.p-item img[role="button"]{cursor:zoom-in}
.g-item img[role="button"]:focus-visible,.p-item img[role="button"]:focus-visible{outline:3px solid var(--amber);outline-offset:-3px}
html.lb-open{overflow:hidden}
.lightbox{
  border:0;padding:0;margin:auto;width:100vw;height:100dvh;max-width:none;max-height:none;
  background:transparent;color:#e9eef6;display:none;
}
.lightbox[open]{display:grid;place-items:center}
.lightbox::backdrop{background:rgba(5,8,13,.92);backdrop-filter:blur(6px)}
.lightbox figure{margin:0;display:grid;justify-items:center;gap:1rem;max-width:min(92vw,1100px);pointer-events:none}
.lightbox img{
  max-width:100%;max-height:78dvh;width:auto;height:auto;object-fit:contain;
  background:#fff;border-radius:var(--r-md);box-shadow:0 30px 80px -20px rgba(0,0,0,.8);pointer-events:auto;
}
.lightbox figcaption{font-family:var(--font-mono);font-size:.8rem;letter-spacing:.14em;text-transform:uppercase;color:#c9d2de;text-align:center}
.lb-btn{
  position:fixed;width:52px;height:52px;border-radius:50%;display:grid;place-items:center;
  background:rgba(20,29,46,.85);border:1px solid rgba(148,163,190,.35);color:#fff;font-size:2rem;line-height:1;
  transition:border-color .2s,color .2s;
}
.lb-btn:hover,.lb-btn:focus-visible{border-color:#ffa61a;color:#ffa61a;outline:none}
.lb-close{top:calc(1rem + env(safe-area-inset-top,0px));right:1rem}
.lb-prev{left:1rem;top:50%;transform:translateY(-50%)}
.lb-next{right:1rem;top:50%;transform:translateY(-50%)}
.lb-single .lb-prev,.lb-single .lb-next{display:none}
.lb-count{position:fixed;left:50%;transform:translateX(-50%);bottom:calc(1rem + env(safe-area-inset-bottom,0px));font-family:var(--font-mono);font-size:.75rem;letter-spacing:.14em;color:#8391a7}
@media (max-width:620px){.lb-prev,.lb-next{top:auto;bottom:calc(1rem + env(safe-area-inset-bottom,0px));transform:none;width:46px;height:46px}}

/* ---------- Locations ---------- */
.loc-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.4rem}
.loc-card{background:var(--steel-900);border:1px solid var(--line);border-radius:var(--r-lg);padding:1.9rem;position:relative;overflow:hidden}
.loc-card::after{
  content:"";position:absolute;top:-30%;right:-20%;width:60%;aspect-ratio:1;border-radius:50%;
  background:radial-gradient(circle,rgba(61,107,255,.14),transparent 70%);
}
.loc-card .loc-flag{font-size:1.6rem;margin-bottom:1rem;display:block}
.loc-card h3{font-size:1.1rem;margin-bottom:.3rem}
.loc-card .loc-role{font-family:var(--font-mono);font-size:.72rem;letter-spacing:.18em;text-transform:uppercase;color:var(--amber);display:block;margin-bottom:.9rem}
.loc-card p{color:var(--text-dim);font-size:.93rem}

/* ---------- Footer ---------- */
.site-footer{border-top:1px solid var(--line);background:var(--steel-950);position:relative;overflow:hidden}
.site-footer::before{
  content:"";position:absolute;bottom:-55%;left:50%;transform:translateX(-50%);
  width:130%;height:100%;border-radius:50%;
  background:radial-gradient(ellipse,rgba(255,122,0,.09),transparent 65%);pointer-events:none;
}
.footer-main{display:grid;grid-template-columns:2fr 1fr 1fr 1.4fr;gap:2.6rem;padding-block:4rem 3rem}
.footer-brand img{width:180px;margin-bottom:1.2rem}
.footer-brand p{color:var(--text-dim);font-size:.93rem;max-width:34ch}
.footer-social{display:flex;gap:.7rem;margin-top:1.4rem}
.footer-social a{
  width:40px;height:40px;border:1px solid var(--line-strong);border-radius:50%;
  display:grid;place-items:center;color:var(--text-dim);transition:.25s;
}
.footer-social a:hover{border-color:var(--amber);color:var(--amber);transform:translateY(-3px)}
.footer-social svg{width:17px;height:17px}
.footer-col h4,.footer-col .footer-h{font-family:var(--font-mono);font-size:.74rem;letter-spacing:.2em;text-transform:uppercase;color:var(--amber);font-weight:600;margin-bottom:1.2rem}
.footer-col ul{display:grid;gap:.55rem;list-style:none}
.footer-col a{color:var(--text-dim);font-size:.93rem;transition:color .2s}
.footer-col a:hover{color:var(--text)}
.footer-col address{font-style:normal;color:var(--text-dim);font-size:.93rem;display:grid;gap:.85rem}
.footer-col address a{display:flex;align-items:center;gap:.6rem}
.footer-col address svg{width:15px;height:15px;color:var(--amber);flex-shrink:0}
.footer-bottom{
  border-top:1px solid var(--line);padding-block:1.4rem;
  display:flex;justify-content:space-between;gap:1rem;flex-wrap:wrap;
  font-size:.82rem;color:var(--text-faint);
}
.footer-bottom a,.footer-bottom button{color:var(--text-dim)}
.footer-bottom a:hover,.footer-bottom button:hover{color:var(--amber)}

/* ---------- Cookie notice (built by main.js) ---------- */
.ck{
  position:fixed;left:1.25rem;bottom:1.25rem;z-index:95;width:min(26rem,calc(100% - 2.5rem));
  padding:1.1rem 1.2rem 1.2rem;border:1px solid var(--line-strong);border-radius:var(--r-md);
  background:var(--steel-850);box-shadow:var(--shadow-deep);
  font-size:.9rem;line-height:1.55;color:var(--text-dim);
}
.ck a{color:var(--text);text-decoration:underline;text-underline-offset:3px}
.ck a:hover{color:var(--amber)}
.ck-btns{display:flex;gap:.6rem;margin-top:.9rem}
.ck-btns .btn{flex:1}
.ck-btns .btn[aria-pressed="true"]{border-color:var(--amber);color:var(--amber)}

/* ---------- Mobile lead bar ---------- */
.lead-bar{
  position:fixed;bottom:0;inset-inline:0;z-index:90;display:none;
  grid-template-columns:1fr 1fr;gap:1px;background:var(--line-strong);
  border-top:1px solid var(--line-strong);
}
.lead-bar a{
  display:flex;align-items:center;justify-content:center;gap:.6rem;
  padding:1rem;font-weight:700;font-size:.95rem;
}
.lead-bar .lb-call{background:var(--steel-850);color:var(--text)}
.lead-bar .lb-quote{background:var(--molten);color:#160b02}
.lead-bar svg{width:18px;height:18px}

/* ---------- Reveal animations ---------- */
.rv{opacity:0;transform:translateY(26px);transition:opacity .8s var(--ease-out),transform .8s var(--ease-out)}
.rv.in{opacity:1;transform:none}
.rv-d1{transition-delay:.08s}.rv-d2{transition-delay:.16s}.rv-d3{transition-delay:.24s}
.rv-d4{transition-delay:.32s}.rv-d5{transition-delay:.4s}.rv-d6{transition-delay:.48s}

/* ---------- Noise overlay ---------- */
body::after{
  content:"";position:fixed;inset:0;z-index:999;pointer-events:none;opacity:.05;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2'/%3E%3C/filter%3E%3Crect width='140' height='140' filter='url(%23n)' opacity='1'/%3E%3C/svg%3E");
}

/* ---------- Light content sections ----------
   Every .sec is a light "catalog page"; the hero, marquee, CTA band,
   header and footer stay dark. Components read these tokens, so most
   of them need no light-specific rules. */
.sec{
  --sec-bg:#f4f6f9;
  --ink:var(--sec-bg);
  --steel-950:#f7f9fb; --steel-900:#fff; --steel-850:#f2f5f8; --steel-800:#fff; --steel-700:#e7ebf0;
  --line:rgba(22,36,58,.12); --line-strong:rgba(22,36,58,.22);
  --text:#141d2a; --text-dim:#44536a; --text-faint:#5a6980;
  --amber:#a35300; --amber-soft:#8c4700;
  --plate:#eef1f5;
  --shadow-deep:0 28px 60px -30px rgba(18,30,50,.4);
  background:var(--sec-bg);color:var(--text);
}
.sec.bp{--sec-bg:#e9edf2}
.sec.bp::before{
  background:linear-gradient(rgba(30,45,70,.055) 1px,transparent 1px),linear-gradient(90deg,rgba(30,45,70,.055) 1px,transparent 1px);
  background-size:56px 56px;
}
.sec .card,.sec .plate-card,.sec .loc-card,.sec .faq details,.sec .quote-rail,.sec .form-shell,.sec .table-scroll,.sec .g-item{
  box-shadow:0 1px 2px rgba(18,30,50,.05),0 14px 34px -24px rgba(18,30,50,.32);
}
.sec .card:hover,.sec .plate-card:hover{box-shadow:0 26px 50px -26px rgba(18,30,50,.42)}
.sec .card{background:#fff}
.sec .g-item{background:#fff}
.sec .g-item figcaption{background:linear-gradient(transparent,rgba(255,255,255,.96) 40%);color:var(--text-faint)}
.sec .loc-card::after{background:radial-gradient(circle,rgba(61,107,255,.07),transparent 70%)}
.sec .chip{border-color:rgba(163,83,0,.25)}
.sec .form-error{color:#9a2d0a;background:rgba(255,90,31,.08)}
.sec .marquee-track span{color:var(--text-faint)}
/* the CTA band stays a dark, molten moment inside its light section */
.sec .cta-band{
  --text:#e9eef6; --text-dim:#a9b6c9; --text-faint:#8391a7;
  --amber:#ffa61a; --amber-soft:#ffc35c;
  --line:rgba(148,163,190,.14); --line-strong:rgba(148,163,190,.28);
  background:#101827;color:var(--text);box-shadow:0 30px 60px -32px rgba(10,15,24,.6);
}
body::after{opacity:.035}

/* ---------- Utility ---------- */
.center{text-align:center}
.mt-1{margin-top:1rem}.mt-2{margin-top:2rem}.mt-3{margin-top:3rem}
.dim{color:var(--text-dim)}
.nowrap{white-space:nowrap}
.visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

/* ---------- Responsive ---------- */
@media (max-width:1080px){
  .grid-4{grid-template-columns:repeat(2,1fr)}
  .ind-grid{grid-template-columns:repeat(3,1fr)}
  .rail{grid-template-columns:repeat(2,1fr);row-gap:2.2rem}
  .footer-main{grid-template-columns:1fr 1fr}
  .article-rail{grid-template-columns:1fr}
  .quote-rail{position:static}
  .gallery-grid{grid-template-columns:repeat(3,1fr)}
}
@media (max-width:880px){
  .grid-3{grid-template-columns:1fr 1fr}
  .split{grid-template-columns:1fr}
  .loc-grid{grid-template-columns:1fr}
  .photo-grid{grid-template-columns:1fr 1fr}
  .p-item{grid-column:span 1;aspect-ratio:4/3}
  .p-item--lead,.p-item--wide{grid-column:span 2;aspect-ratio:16/9}
  .p-item--tall,.p-item--video{grid-row:auto;aspect-ratio:9/16}
  .header-phone{display:none}
  /* mobile nav: a drawer from the right; tapping the dimmed page beside it closes it */
  .nav-toggle{display:block}
  .site-header::after{
    content:"";position:fixed;inset:0;z-index:50;cursor:pointer;
    background:rgba(3,6,12,.62);opacity:0;visibility:hidden;transition:opacity .3s,visibility .3s;
  }
  .nav-open .site-header::after{opacity:1;visibility:visible}
  .site-nav{
    position:fixed;top:0;right:0;bottom:0;width:min(86vw,380px);z-index:100;
    display:flex;flex-direction:column;
    padding:0 1.4rem calc(1.4rem + env(safe-area-inset-bottom,0px));
    background:var(--steel-900);border-left:1px solid var(--line-strong);
    box-shadow:-30px 0 60px -30px rgba(0,0,0,.7);
    overflow-y:auto;overscroll-behavior:contain;
    transform:translateX(100%);visibility:hidden;transition:transform .35s var(--ease-out),visibility .35s;
  }
  .nav-open .site-nav{transform:none;visibility:visible}
  /* solid strip under the close button, so a scrolled list slides beneath it */
  .site-nav::before{content:"";position:sticky;top:0;z-index:1;flex-shrink:0;height:4.75rem;margin-inline:-1.4rem;background:var(--steel-900)}
  .nav-open{overflow:hidden}
  .nav-list{flex-direction:column;align-items:stretch;gap:0;border-top:1px solid var(--line)}
  .nav-list>li{border-bottom:1px solid var(--line)}
  .nav-list a,.has-sub>button{
    display:flex;align-items:center;justify-content:space-between;width:100%;
    padding:.95rem .15rem;border-radius:0;font-size:1.06rem;font-weight:600;color:var(--text);
  }
  .nav-list a[aria-current="page"]{color:var(--amber)}
  .has-sub:hover>button::after,.has-sub:focus-within>button::after{transform:rotate(45deg) translateY(-2px)}
  .has-sub.open>button::after{transform:rotate(225deg) translateY(-2px)}
  .sub{position:static;opacity:1;visibility:visible;transform:none;background:none;border:0;box-shadow:none;min-width:0;padding:0 0 .8rem .9rem;display:none}
  .has-sub.open .sub{display:block}
  .sub a{padding:.6rem .15rem;font-size:.97rem;font-weight:500;color:var(--text-dim)}
  .sub a:hover{background:none;color:var(--text)}
  .sub a::after{display:none}
  .sub .sub-view-all{border-top:0;margin-top:.2rem;font-size:.7rem;color:var(--amber)}
  .nav-extras{display:grid;gap:.7rem;margin-top:auto;padding-top:1.8rem}
  .nav-extras .btn{width:100%}
  .nav-pdf{display:flex;align-items:center;justify-content:center;gap:.5rem;padding:.55rem;font-size:.9rem;color:var(--text-dim)}
  .nav-pdf svg{width:15px;height:15px}
  .header-cta .btn{display:none}
  .lead-bar{display:grid}
  body{padding-bottom:56px}
  .lead-bar ~ .ck{bottom:calc(56px + .75rem)}
}
@media (max-width:620px){
  .ck{left:.75rem;bottom:.75rem;width:calc(100% - 1.5rem)}
  h1.display{font-size:clamp(1.85rem,8.5vw,2.5rem)}
  .ind-tile--text{font-size:.7rem}
  .grid-2,.grid-3{grid-template-columns:1fr}
  .ind-grid{grid-template-columns:repeat(2,1fr)}
  .rail{grid-template-columns:1fr}
  .form-grid{grid-template-columns:1fr}
  /* phone footer: logo + icons in one row, the two link lists side by side */
  .footer-main{grid-template-columns:1fr 1fr;gap:1.8rem 1.2rem;padding-block:2.4rem 1.6rem}
  .footer-brand,.footer-main>.footer-col:last-child{grid-column:1/-1}
  .footer-brand{display:flex;align-items:center;justify-content:space-between;gap:1rem}
  .footer-brand img{width:140px;margin-bottom:0}
  .footer-brand p{display:none}
  .footer-social{margin-top:0;gap:.5rem}
  .footer-col h4,.footer-col .footer-h{margin-bottom:.8rem}
  .footer-col ul{gap:.45rem}
  .footer-col a{font-size:.88rem}
  .footer-col address{font-size:.88rem;gap:.6rem}
  .footer-bottom{padding-block:1rem;gap:.4rem}
  .gallery-grid{grid-template-columns:repeat(2,1fr)}
  .photo-grid{grid-template-columns:1fr}
  .p-item,.p-item--lead,.p-item--wide{grid-column:auto;aspect-ratio:4/3}
  .p-item--tall{aspect-ratio:3/4}
  .p-item--video{aspect-ratio:9/16}
  .brand img{width:140px}
  .hero-scroll{display:none}
  /* tighter vertical rhythm on phones */
  .sec{padding-block:2.75rem}
  .sec-head{margin-bottom:1.5rem}
  .sec-head h2.mt-1{margin-top:0}
  .rail{row-gap:1.5rem}
  /* home products: photo rows instead of tall cards; the quote card repeats the CTA band */
  .prod-grid{gap:0}
  .prod-grid>.card{display:none}
  .prod-grid .plate-card{
    display:grid;grid-template-columns:92px 1fr;gap:1rem;align-items:center;
    background:none;border:0;border-radius:0;box-shadow:none;overflow:visible;
    padding-block:.9rem;border-top:1px solid var(--line);
  }
  .prod-grid .plate-card:first-child{border-top:0;padding-top:0}
  .prod-grid .plate-card:hover{transform:none;box-shadow:none}
  .prod-grid .plate{aspect-ratio:1;border-radius:var(--r-sm)}
  .prod-grid .plate-meta{padding:0}
  .prod-grid .plate-meta h3{font-size:1.05rem}
  .prod-grid .plate-meta p{font-size:.86rem;margin-top:.2rem}
  .split-media--wide img{aspect-ratio:16/9}
  .ind-grid--compact{grid-template-columns:repeat(3,1fr);gap:.5rem}
  .ind-grid--compact .ind-tile,.ind-grid--compact .ind-tile--text{aspect-ratio:1}
  .ind-grid--compact .ind-tile span{left:.5rem;right:.4rem;bottom:.5rem;font-size:.66rem;letter-spacing:.03em}
  .ind-grid--compact .ind-tile--text{font-size:.6rem;letter-spacing:.06em;padding:.4rem}
  .gallery-grid--short .g-item:nth-child(n+5){display:none}
  .svc-list{grid-template-columns:1fr;gap:1.1rem}
  .svc-list li{padding-top:1.1rem}
  /* reviews: one panel with dividers; the 5.0 score above already shows the stars */
  .review-grid{
    gap:0;padding-inline:1.2rem;background:var(--steel-900);border:1px solid var(--line);border-radius:var(--r-lg);
    box-shadow:0 1px 2px rgba(18,30,50,.05),0 14px 34px -24px rgba(18,30,50,.32);
  }
  .review-card{background:none;border:0;border-radius:0;padding:1.1rem 0;gap:.5rem;border-top:1px solid var(--line)}
  .review-card:first-child{border-top:0}
  .review-card>.stars{display:none}
  .review-card blockquote p{font-size:.98rem}
  .review-card figcaption{padding-top:0;border-top:0}
  /* link cards as a ruled list on phones */
  .grid--rows{gap:0}
  .grid--rows>.card{background:none;border:0;border-radius:0;box-shadow:none;overflow:visible;padding:1rem 0;border-top:1px solid var(--line)}
  .grid--rows>.card:first-child{border-top:0;padding-top:.2rem}
  .grid--rows>.card:hover{transform:none;box-shadow:none}
  .grid--rows>.card::before,.grid--rows .card-more{display:none}
  .grid--rows .card-kicker{margin-bottom:.35rem}
  .grid--rows h3::after{content:" →";color:var(--amber)}
  .grid--rows .card p{margin-top:.3rem;font-size:.9rem}
  /* the lead bar and footer already carry the phone and email */
  .quote-rail .quote-contact{display:none}
  /* the tall centrifugal clip as 4:5; the pour, mould and both workers sit in the middle band */
  .p-item.p-item--solo.p-item--video{aspect-ratio:4/5;width:100%}
}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}
  html{scroll-behavior:auto}
  .rv{opacity:1;transform:none}
  /* static view: stop the ticker and hide the loop duplicate */
  .marquee-track{animation:none;flex-wrap:wrap}
  .marquee-track span:nth-child(n+13){display:none}
}
