/* ============================================================
   Street Swagger — style.css
   Dark #080808 background, #D4820A amber accent
   Bebas Neue (display) + Inter (body)
   ============================================================ */

/* ── Reset & Variables ──────────────────────────────────────── */
*, *::before, *::after {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}

:root {
  --bg:           #080808;
  --bg-card:      #111111;
  --bg-raised:    #161616;
  --amber:        #D4820A;
  --amber-hover:  #E8940C;
  --amber-dim:    rgba(212, 130, 10, 0.12);
  --amber-glow:   rgba(212, 130, 10, 0.06);
  /* Active accent alias for ambient.js + catalog placeholder.
     Tracks --amber, so it follows whatever Theme Studio palette is active. */
  --a:            var(--amber);
  --text:         #F0F0F0;
  --text-muted:   #888888;
  --text-dim:     #444444;
  --border:       rgba(255, 255, 255, 0.07);
  --border-hover: rgba(212, 130, 10, 0.3);
  --font-display: 'Bebas Neue', sans-serif;
  --font-body:    'Inter', sans-serif;
  --radius-card:  8px;
  --radius-pill:  4px;

  /* ── Glass system (frosted floating surfaces) ──────────────────
     All derived from the tokens above via color-mix, so every
     [data-theme] palette gets matching glass automatically — no
     per-theme edits. See the "Glass" rules + @supports fallback below. */
  --glass-bg:           color-mix(in srgb, var(--bg-card) 40%, transparent);
  --glass-bg-strong:    color-mix(in srgb, var(--bg-card) 60%, transparent);
  --glass-border:       color-mix(in srgb, #ffffff 18%, transparent);
  --glass-border-accent:color-mix(in srgb, var(--amber) 34%, transparent);
  --glass-blur:         20px;
  /* Two-layer edge light: a bright top hairline + a faint full inset ring so
     every glass surface reads as "lit glass" rather than a matte card. */
  --glass-highlight:    inset 0 1px 0 color-mix(in srgb, #ffffff 16%, transparent),
                        inset 0 0 0 1px color-mix(in srgb, #ffffff 3%, transparent);
  --glass-shadow:       0 16px 44px rgba(0, 0, 0, 0.45);
}

/* ════════════════════════════════════════════════════════════════
   THEME STUDIO — palettes applied via [data-theme] on <html>.
   Each theme re-maps every design token plus its own font pairing.
   Default (no attribute) = "Amber Noir" defined in :root above.
   ════════════════════════════════════════════════════════════════ */

/* 2 · Sapphire Tech — navy + electric blue */
[data-theme="sapphire"] {
  --bg:#0a0e1a; --bg-card:#111728; --bg-raised:#161d33;
  --amber:#4F8CFF; --amber-hover:#6FA3FF; --amber-dim:rgba(79,140,255,.12); --amber-glow:rgba(79,140,255,.06);
  --text:#EAF0FF; --text-muted:#8A97B5; --text-dim:#39435E;
  --border:rgba(255,255,255,.07); --border-hover:rgba(79,140,255,.3);
  --font-display:'Space Grotesk', sans-serif; --font-body:'Inter', sans-serif;
}

/* 3 · Champagne Luxe — warm black + gold, editorial serif */
[data-theme="champagne"] {
  --bg:#0d0b08; --bg-card:#15110b; --bg-raised:#1c1710;
  --amber:#C9A35E; --amber-hover:#DBB878; --amber-dim:rgba(201,163,94,.12); --amber-glow:rgba(201,163,94,.06);
  --text:#F2ECE0; --text-muted:#9A9080; --text-dim:#4A4234;
  --border:rgba(255,255,255,.07); --border-hover:rgba(201,163,94,.3);
  --font-display:'Playfair Display', serif; --font-body:'Inter', sans-serif;
}

/* 4 · Emerald Estate — green-black + emerald, refined serif */
[data-theme="emerald"] {
  --bg:#07120d; --bg-card:#0c1b14; --bg-raised:#11241a;
  --amber:#34D399; --amber-hover:#54E3AD; --amber-dim:rgba(52,211,153,.12); --amber-glow:rgba(52,211,153,.06);
  --text:#E6F5EE; --text-muted:#7FA493; --text-dim:#33493D;
  --border:rgba(255,255,255,.07); --border-hover:rgba(52,211,153,.3);
  --font-display:'Cormorant Garamond', serif; --font-body:'Jost', sans-serif;
}

/* 5 · Crimson Couture — black-red + crimson, modern serif */
[data-theme="crimson"] {
  --bg:#120708; --bg-card:#1c0d0f; --bg-raised:#241114;
  --amber:#E5384B; --amber-hover:#F45463; --amber-dim:rgba(229,56,75,.12); --amber-glow:rgba(229,56,75,.06);
  --text:#F6E9EA; --text-muted:#A78589; --text-dim:#4E3033;
  --border:rgba(255,255,255,.07); --border-hover:rgba(229,56,75,.3);
  --font-display:'Fraunces', serif; --font-body:'Inter', sans-serif;
}

/* 6 · Violet Synth — indigo-violet + magenta, retro-future */
[data-theme="violet"] {
  --bg:#0e0a1a; --bg-card:#16102a; --bg-raised:#1d1636;
  --amber:#B14EFF; --amber-hover:#C271FF; --amber-dim:rgba(177,78,255,.12); --amber-glow:rgba(177,78,255,.06);
  --text:#EFE8FF; --text-muted:#9488B5; --text-dim:#40385E;
  --border:rgba(255,255,255,.07); --border-hover:rgba(177,78,255,.3);
  --font-display:'Orbitron', sans-serif; --font-body:'Rajdhani', sans-serif;
}

/* 7 · Monochrome Brut — pure black/white, brutalist */
[data-theme="mono"] {
  --bg:#0a0a0a; --bg-card:#141414; --bg-raised:#1c1c1c;
  --amber:#FFFFFF; --amber-hover:#E0E0E0; --amber-dim:rgba(255,255,255,.12); --amber-glow:rgba(255,255,255,.05);
  --text:#FFFFFF; --text-muted:#888888; --text-dim:#3a3a3a;
  --border:rgba(255,255,255,.12); --border-hover:rgba(255,255,255,.4);
  --font-display:'Archivo Black', sans-serif; --font-body:'Space Mono', monospace;
}

/* 8 · Rose Quartz — dark plum + rose, fashion display */
[data-theme="rose"] {
  --bg:#14090f; --bg-card:#1f0e17; --bg-raised:#28121d;
  --amber:#FF6B9D; --amber-hover:#FF8AB3; --amber-dim:rgba(255,107,157,.12); --amber-glow:rgba(255,107,157,.06);
  --text:#FCE9F0; --text-muted:#A8849A; --text-dim:#4C3040;
  --border:rgba(255,255,255,.07); --border-hover:rgba(255,107,157,.3);
  --font-display:'Syne', sans-serif; --font-body:'Inter', sans-serif;
}

/* 9 · Cyber Lime — black-green + lime, techwear */
[data-theme="lime"] {
  --bg:#0b0f08; --bg-card:#121810; --bg-raised:#192015;
  --amber:#B6FF3C; --amber-hover:#C7FF63; --amber-dim:rgba(182,255,60,.12); --amber-glow:rgba(182,255,60,.06);
  --text:#EEF6E4; --text-muted:#8C9A7C; --text-dim:#3E4734;
  --border:rgba(255,255,255,.07); --border-hover:rgba(182,255,60,.3);
  --font-display:'Chakra Petch', sans-serif; --font-body:'Inter', sans-serif;
}

/* 10 · Oceanic Teal — deep teal, soft geometric */
[data-theme="ocean"] {
  --bg:#071316; --bg-card:#0c1d21; --bg-raised:#11262b;
  --amber:#2DD4BF; --amber-hover:#52E0CE; --amber-dim:rgba(45,212,191,.12); --amber-glow:rgba(45,212,191,.06);
  --text:#E2F4F2; --text-muted:#7CA09D; --text-dim:#324A48;
  --border:rgba(255,255,255,.07); --border-hover:rgba(45,212,191,.3);
  --font-display:'Jost', sans-serif; --font-body:'Manrope', sans-serif;
}

/* 11 · Royal Indigo — indigo, clean grotesk */
[data-theme="indigo"] {
  --bg:#0b0a16; --bg-card:#131226; --bg-raised:#1a1832;
  --amber:#818CF8; --amber-hover:#9AA3FA; --amber-dim:rgba(129,140,248,.12); --amber-glow:rgba(129,140,248,.06);
  --text:#ECEEFF; --text-muted:#8B8FB2; --text-dim:#3C3E5C;
  --border:rgba(255,255,255,.07); --border-hover:rgba(129,140,248,.3);
  --font-display:'Space Grotesk', sans-serif; --font-body:'Manrope', sans-serif;
}

/* 12 · Sunset Ember — warm black + burnt orange */
[data-theme="sunset"] {
  --bg:#140a06; --bg-card:#1f110a; --bg-raised:#28160d;
  --amber:#FF7A45; --amber-hover:#FF936B; --amber-dim:rgba(255,122,69,.12); --amber-glow:rgba(255,122,69,.06);
  --text:#F8EAE2; --text-muted:#A8897B; --text-dim:#4E3528;
  --border:rgba(255,255,255,.07); --border-hover:rgba(255,122,69,.3);
  --font-display:'Bebas Neue', sans-serif; --font-body:'Manrope', sans-serif;
}

html {
  scroll-behavior: auto; /* Lenis handles smooth scrolling */
  font-size: 16px;
  /* Horizontal clipping lives HERE, not on body — see the body rule below for why.
     On <html> the value propagates to the viewport, which clips sideways scrolling
     WITHOUT reserving any gutter inside the page. */
  overflow-x: hidden;
}

body {
  background-color: var(--bg);
  color: var(--text);
  font-family: var(--font-body);
  line-height: 1.6;
  /* ⚠️ DO NOT change this back to `overflow-x: hidden` (fixed 2026-07-27).
     `hidden` on body makes body a SCROLL CONTAINER. With the y-axis still auto,
     the browser then reserves a vertical-scrollbar gutter INSIDE body — so body,
     every <section>, the hero and the footer all laid out ~20px narrower than the
     viewport, while the position:fixed layers (.aurora, #bgC, .nav) still spanned
     the full width. The exposed gutter showed the dark page background as a strip
     down the entire right edge on mobile, for the full height of the page.
     `clip` clips identically but does NOT create a scroll container → no gutter.
     Safari <16 ignores `clip` and falls back to `visible`; the html rule above
     still prevents horizontal scrolling there, so the fallback is safe. */
  overflow-x: clip;
  cursor: none; /* replaced by custom cursor */
  -webkit-font-smoothing: antialiased;
}

img {
  display: block;
  max-width: 100%;
}

/* ════════════════════════════════════════════════════════════════
   CINEMATIC AMBIENT BACKGROUND (ambient.js)
   ════════════════════════════════════════════════════════════════ */
#bgC { position: fixed; top:0; left:0; width:100%; height:100%; z-index:0; pointer-events:none; }

/* ── Aurora glow layer ──────────────────────────────────────────
   Soft accent-tinted radial blooms behind everything (below #bgC) so the
   frosted-glass surfaces have luminosity to refract instead of flat black.
   Tinted via --amber → recolours with every theme. Stays dark/premium.
   Drift is transform/opacity only (compositor-cheap, no blur animation). */
.aurora {
  position: fixed; inset: 0; z-index: 0; pointer-events: none;
  background:
    radial-gradient(50vw 50vw at 8% 4%,   color-mix(in srgb, var(--amber) 30%, transparent), transparent 68%),
    radial-gradient(52vw 52vw at 92% 96%, color-mix(in srgb, var(--amber) 26%, transparent), transparent 70%),
    radial-gradient(44vw 44vw at 82% 18%, color-mix(in srgb, var(--amber) 20%, transparent), transparent 68%),
    radial-gradient(48vw 48vw at 22% 66%, color-mix(in srgb, var(--amber) 18%, transparent), transparent 70%);
  opacity: 1;
  animation: auroraDrift 26s ease-in-out infinite alternate;
  will-change: transform;
}
@keyframes auroraDrift {
  from { transform: translate3d(-2%, -1%, 0) scale(1.02); }
  to   { transform: translate3d( 2%,  2%, 0) scale(1.08); }
}
@media (prefers-reduced-motion: reduce) {
  .aurora { animation: none; }
}

/* Lift real content above the drifting-garment canvas (nav keeps its own
   z-index:1000 so it still floats above everything). */
.hero, section, footer, .marquee { position: relative; z-index: 1; }

/* Make the major flat sections transparent so the fixed ambient canvas
   drifts behind the whole scroll experience (body stays the dark base). */
.marquee, .standard, .products, .work,
.calculator, .cta-band, .trustbar, .footer { background: transparent; }

a {
  text-decoration: none;
  color: inherit;
}

/* ── Custom Cursor — minimal dot + lagging ring (positioned by main.js) ──
   Centering + motion are handled by GSAP (xPercent/yPercent + x/y), so no
   translate() here. Colours use color-mix on --amber so the cursor recolours
   with whatever Theme Studio palette is active. */
.cursor-dot {
  width: 7px;
  height: 7px;
  background: var(--amber);
  border-radius: 50%;
  position: fixed;
  top: 0; left: 0;
  pointer-events: none;
  z-index: 10000;
  box-shadow: 0 0 10px color-mix(in srgb, var(--amber) 55%, transparent);
  transition: opacity 0.25s ease;
  will-change: transform;
}

.cursor-ring {
  width: 38px;
  height: 38px;
  border: 1.5px solid color-mix(in srgb, var(--amber) 55%, transparent);
  background: transparent;
  border-radius: 50%;
  position: fixed;
  top: 0; left: 0;
  pointer-events: none;
  z-index: 9999;
  transition: background-color 0.3s ease, border-color 0.3s ease, opacity 0.25s ease;
  will-change: transform;
}

/* Over interactive elements the ring brightens + fills faintly (scale handled by GSAP) */
.cursor-ring.is-hover {
  border-color: var(--amber);
  background: var(--amber-dim);
}

/* Hidden while the pointer is outside the window */
.cursor-dot.is-hidden,
.cursor-ring.is-hidden { opacity: 0; }

/* ── Typography helpers ─────────────────────────────────────── */
.heading-xl {
  font-family: var(--font-display);
  font-size: clamp(3rem, 6vw, 5.5rem);
  line-height: 1;
  letter-spacing: 0.02em;
  text-transform: uppercase;
  color: var(--text);
}

.label {
  font-family: var(--font-body);
  font-size: 0.7rem;
  font-weight: 700;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--amber);
  margin-bottom: 0.75rem;
  display: block;
}

.label-hint {
  font-weight: 400;
  color: var(--text-dim);
  font-size: 0.75em;
  letter-spacing: 0;
  text-transform: none;
}

.body {
  font-family: var(--font-body);
  font-size: 1rem;
  line-height: 1.75;
  color: var(--text-muted);
}

/* ── Amber line draw (section heading accent) ───────────────── */
.amber-line {
  width: 56px;
  height: 1px;
  background: var(--amber);
  transform-origin: left center;
  transform: scaleX(0); /* GSAP animates to scaleX(1) on scroll */
  margin-bottom: 1.25rem;
}

.amber-line--center {
  margin-left: auto;
  margin-right: auto;
  transform-origin: center center;
}

/* ── Layout ─────────────────────────────────────────────────── */
.container {
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 2rem;
}

.section-header {
  text-align: center;
  margin-bottom: 4rem;
}

.section-header .heading-xl {
  margin-bottom: 1rem;
}

.section-header .body {
  max-width: 480px;
  margin: 0 auto;
}

/* ── Buttons ─────────────────────────────────────────────────── */
.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  padding: 0.8rem 1.875rem;
  font-family: var(--font-body);
  font-size: 0.85rem;
  font-weight: 600;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  border: none;
  border-radius: var(--radius-pill);
  cursor: pointer;
  transition: background 0.22s ease, color 0.22s ease, transform 0.22s ease, box-shadow 0.22s ease;
  white-space: nowrap;
  line-height: 1;
}

.btn--primary {
  background: var(--amber);
  color: #080808;
}

.btn--primary:hover {
  background: var(--amber-hover);
  transform: translateY(-2px);
  box-shadow: 0 8px 24px rgba(212, 130, 10, 0.25);
}

.btn--ghost {
  background: var(--glass-bg);
  -webkit-backdrop-filter: blur(8px);
  backdrop-filter: blur(8px);
  color: var(--text-muted);
  border: 1px solid var(--glass-border);
  box-shadow: var(--glass-highlight);
}

.btn--ghost:hover {
  border-color: var(--glass-border-accent);
  color: var(--amber);
}

.btn--sm {
  padding: 0.55rem 1.2rem;
  font-size: 0.78rem;
}

.btn--lg {
  padding: 1rem 2.5rem;
  font-size: 0.9rem;
}

.btn--full {
  width: 100%;
}

/* ── Navigation ──────────────────────────────────────────────── */
.nav {
  position: fixed;
  top: 0; left: 0; right: 0;
  z-index: 1000;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 1.25rem 2.5rem;
  /* Frosted even at the top (over the hero) so the glass reads immediately */
  background: color-mix(in srgb, var(--bg) 30%, transparent);
  -webkit-backdrop-filter: blur(12px) saturate(135%);
  backdrop-filter: blur(12px) saturate(135%);
  transition: background 0.3s, backdrop-filter 0.3s, border-color 0.3s;
  border-bottom: 1px solid var(--glass-border);
}

.nav.nav--scrolled {
  background: var(--glass-bg-strong);
  backdrop-filter: blur(var(--glass-blur)) saturate(140%);
  -webkit-backdrop-filter: blur(var(--glass-blur)) saturate(140%);
  border-bottom-color: var(--glass-border);
  box-shadow: var(--glass-highlight);
}

.nav__logo {
  font-family: var(--font-display);
  font-size: 1.35rem;
  letter-spacing: 0.06em;
  color: var(--text);
}

.nav__links {
  display: flex;
  align-items: center;
  gap: 2.5rem;
}

.nav__links a {
  font-size: 0.8rem;
  font-weight: 500;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--text-muted);
  transition: color 0.2s;
}

.nav__links a:hover {
  color: var(--text);
}

.nav__cta {
  background: var(--amber) !important;
  color: #080808 !important;
  padding: 0.55rem 1.25rem !important;
  border-radius: var(--radius-pill);
}

.nav__cta:hover {
  background: var(--amber-hover) !important;
  color: #080808 !important;
}

/* Nav right-side: WhatsApp CTA + hamburger, shown on every screen size */
.nav__actions {
  display: flex;
  align-items: center;
  gap: 1.1rem;
}

/* Hamburger — now the primary nav control on all viewports */
.nav__hamburger {
  display: flex;
  flex-direction: column;
  gap: 5px;
  background: none;
  border: none;
  cursor: pointer;
  padding: 4px;
  z-index: 1001;
}

.nav__hamburger span {
  display: block;
  width: 22px;
  height: 2px;
  background: var(--text);
  border-radius: 1px;
  transform-origin: center;
}

/* Mobile Menu — frosted glass slide-in */
.mobile-menu {
  position: fixed;
  top: 0; right: -100%;
  width: min(80%, 320px);
  height: 100vh;
  /* Medium glass — page content stays visible and is blurred THROUGH the panel
     (ref: blur 18px over ~65% dark). Stays themeable via the glass tokens. */
  background: var(--glass-bg-strong);
  backdrop-filter: blur(18px) saturate(140%);
  -webkit-backdrop-filter: blur(18px) saturate(140%);
  /* Left edge: faint white hairline (~12%). Top edge: faint oxblood/accent glow. */
  border-left: 1px solid color-mix(in srgb, #ffffff 12%, transparent);
  border-top: 2px solid color-mix(in srgb, var(--amber) 50%, transparent);
  box-shadow: var(--glass-highlight),
              inset 0 4px 18px -8px color-mix(in srgb, var(--amber) 55%, transparent),
              -30px 0 80px rgba(0, 0, 0, 0.4);
  z-index: 999;
  display: flex;
  flex-direction: column;
  padding: 5.5rem 2rem 2rem;
  gap: 0;
  transition: right 0.38s cubic-bezier(0.4, 0, 0.2, 1);
}

.mobile-menu.mobile-menu--open {
  right: 0;
}

.mobile-menu a {
  display: block;
  padding: 1rem 0;
  font-size: 0.9rem;
  font-weight: 500;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--text-muted);
  border-bottom: 1px solid var(--border);
  transition: color 0.2s;
}

.mobile-menu a:hover {
  color: var(--amber);
}

.mobile-menu-overlay {
  position: fixed;
  inset: 0;
  /* Lighter scrim so the page behind the glass panel stays clearly visible */
  background: rgba(0, 0, 0, 0.28);
  z-index: 998;
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.38s ease;
}

.mobile-menu-overlay.active {
  opacity: 1;
  pointer-events: all;
}

/* Menu now scrolls if the list is long, and groups under small labels */
.mobile-menu { overflow-y: auto; }
.mobile-menu__label {
  display: block;
  font-size: 0.65rem;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--amber);
  margin: 1.1rem 0 0.3rem;
  font-weight: 700;
}
.mobile-menu__label:first-child { margin-top: 0; }
.mobile-menu__cta {
  margin-top: 1.4rem;
  text-align: center;
  background: var(--amber);
  color: #080808 !important;
  border-radius: var(--radius-pill);
  border-bottom: 0 !important;
  font-weight: 700;
}
.mobile-menu__cta:hover { background: var(--amber-hover); color: #080808 !important; }

/* ── Overlay panels (secondary sections opened from the menu) ────── */
.panel-overlay {
  position: fixed;
  inset: 0;
  background: rgba(0, 0, 0, 0.6);
  z-index: 1100;
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.4s ease;
}
.panel-overlay.is-active { opacity: 1; pointer-events: all; }

.panel {
  position: fixed;
  top: 0; right: 0;
  width: min(100%, 720px);
  height: 100dvh;
  background: var(--glass-bg-strong);
  backdrop-filter: blur(var(--glass-blur)) saturate(140%);
  -webkit-backdrop-filter: blur(var(--glass-blur)) saturate(140%);
  /* Same treatment as the side nav: white left hairline + oxblood top glow */
  border-left: 1px solid color-mix(in srgb, #ffffff 12%, transparent);
  border-top: 2px solid color-mix(in srgb, var(--amber) 50%, transparent);
  z-index: 1101;
  display: flex;
  flex-direction: column;
  transform: translateX(100%);
  transition: transform 0.42s cubic-bezier(0.4, 0, 0.2, 1);
  box-shadow: var(--glass-highlight),
              inset 0 4px 18px -8px color-mix(in srgb, var(--amber) 50%, transparent),
              -30px 0 80px rgba(0, 0, 0, 0.5);
}
.panel.is-open { transform: translateX(0); }

.panel__bar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 1.1rem 1.5rem;
  border-bottom: 1px solid var(--glass-border);
  background: color-mix(in srgb, var(--bg-card) 55%, transparent);
  position: sticky;
  top: 0;
  z-index: 2;
  flex-shrink: 0;
}
.panel__title {
  font-family: var(--font-display);
  letter-spacing: 0.04em;
  font-size: 1.35rem;
  color: var(--text);
}
.panel__close {
  background: none;
  border: 1px solid var(--border);
  color: var(--text);
  width: 38px; height: 38px;
  border-radius: 50%;
  font-size: 1.4rem;
  line-height: 1;
  cursor: pointer;
  transition: border-color 0.2s, color 0.2s;
}
.panel__close:hover { border-color: var(--amber); color: var(--amber); }

.panel__body { overflow-y: auto; -webkit-overflow-scrolling: touch; }
/* The relocated sections were full-page; inside a panel they get tighter,
   left-aligned padding instead of huge vertical section spacing. */
.panel__body > section { padding: 2rem 1.75rem 3rem !important; min-height: 0 !important; }
.panel__body .container { padding-left: 0 !important; padding-right: 0 !important; }

/* CRITICAL: these sections have GSAP scroll-reveals that set content to
   opacity:0 and never fire inside an off-canvas panel. Force the content
   visible. (The FAQ accordion is unaffected — its answers are class-toggled,
   not opacity-toggled.) */
.panel .section-header,
.panel .amber-line,
.panel .about-headline,
.panel .about-headline span,
.panel .about-body,
.panel .about-checks .acheck,
.panel .std-card,
.panel .faq-item,
.panel [class*="process"] {
  opacity: 1 !important;
  transform: none !important;
}
.panel .amber-line { transform: scaleX(1) !important; }

/* THE LINEUP lives in a panel now — the panel bar already shows its title, so hide
   the section's own eyebrow + heading to avoid a duplicate "The Lineup". */
.panel #catalog-placeholder .sl,
.panel #catalog-placeholder .sh { display: none; }

/* Lock background scroll while a panel (or the menu) is open */
html.panel-open, body.panel-open { overflow: hidden; }

/* ── Hero ────────────────────────────────────────────────────── */
.hero {
  position: relative;
  min-height: 100vh;
  display: flex;
  align-items: center;
  overflow: hidden;
}

/* Background photo — parallax target (GSAP moves this on scroll) */
.hero__bg {
  position: absolute;
  inset: -10% 0;
  background-image: url('https://images.unsplash.com/photo-1529139574466-a303027c1d8b?w=1800&q=80');
  background-size: cover;
  background-position: center 20%;
  will-change: transform;
  z-index: 0;
}

/* Cinematic overlay — heavy on the left so text is readable; reveals photo on the right */
.hero__overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(
    105deg,
    rgba(8, 8, 8, 0.96) 0%,
    rgba(8, 8, 8, 0.80) 40%,
    rgba(8, 8, 8, 0.35) 70%,
    rgba(8, 8, 8, 0.10) 100%
  );
  z-index: 1;
  pointer-events: none;
}

.hero__canvas {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  z-index: 2;
}

/* Bottom gradient fade to bg so the next section blends in */
.hero__gradient {
  position: absolute;
  bottom: 0; left: 0; right: 0;
  height: 320px;
  background: linear-gradient(to bottom, transparent, var(--bg));
  z-index: 3;
  pointer-events: none;
}

.hero__content {
  position: relative;
  z-index: 4;
  width: 100%;
  max-width: 1200px;
  margin: 0 auto;
  padding: 10rem 2rem 6rem;
}

.hero__eyebrow {
  display: block;
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--amber);
  margin-bottom: 1.5rem;
  opacity: 0; /* GSAP slides in from left */
}

.hero__headline {
  font-family: var(--font-display);
  font-size: clamp(52px, 8vw, 118px); /* reduced — was clamp(5rem,11vw,10.5rem); kept off the stats row */
  line-height: 0.9;
  letter-spacing: 0.01em;
  text-transform: uppercase;
  color: var(--text);
  margin-bottom: 2rem;
}

/* Each line gets an overflow:hidden container — creates the left-wall clip for the wipe */
.hero__line-wrap {
  display: block;
  overflow: hidden;
  padding-bottom: 0.06em; /* prevents descender clipping */
}

/* The actual text block — GSAP starts it at x:'-110%' and wipes to x:0 */
.hero__line {
  display: block;
}

.hero__sub {
  font-size: clamp(1rem, 1.5vw, 1.15rem);
  line-height: 1.7;
  color: var(--text-muted);
  max-width: 540px;
  margin-bottom: 2.75rem;
  opacity: 0;
}

.hero__actions {
  display: flex;
  gap: 1rem;
  flex-wrap: wrap;
  margin-bottom: 4.5rem;
  opacity: 0;
}

/* Hero "Launch Pack" promo pill — subtle, soft pulse every ~8s */
.hero__lp-pill {
  display: inline-flex;
  align-items: center;
  align-self: flex-start;
  gap: 0.4rem;
  margin: -3rem 0 3rem;   /* nudge up under the CTA buttons */
  padding: 0.5rem 1rem;
  font-family: var(--font-body);
  font-size: 0.82rem;
  font-weight: 600;
  letter-spacing: 0.03em;
  color: var(--amber);
  background: color-mix(in srgb, var(--amber) 10%, transparent);
  border: 1px solid color-mix(in srgb, var(--amber) 38%, transparent);
  border-radius: var(--radius-pill);
  transition: background 0.2s ease, border-color 0.2s ease, transform 0.2s ease;
  animation: hero-lp-pulse 8s ease-in-out infinite;
}
.hero__lp-pill:hover {
  background: color-mix(in srgb, var(--amber) 18%, transparent);
  border-color: var(--amber);
  transform: translateY(-1px);
}
@keyframes hero-lp-pulse {
  0%, 90%, 100% { box-shadow: 0 0 0 0 color-mix(in srgb, var(--amber) 0%, transparent); }
  94%           { box-shadow: 0 0 0 8px color-mix(in srgb, var(--amber) 20%, transparent); }
}

/* "NEW" tag next to the Launch Pack link in the slide menu */
.menu-new {
  display: inline-block;
  margin-left: 0.4rem;
  padding: 0.05rem 0.4rem;
  font-family: var(--font-body);
  font-size: 0.6rem;
  font-weight: 700;
  letter-spacing: 0.12em;
  vertical-align: middle;
  color: #0a0502;
  background: var(--amber);
  border-radius: 3px;
}

@media (prefers-reduced-motion: reduce) {
  .hero__lp-pill { animation: none; }
}

.hero__stats {
  display: flex;
  gap: 1rem;
  flex-wrap: wrap;
  opacity: 0;
}

/* Frosted-glass stat chips — visible immediately on the hero, frosting the
   photo behind them (the reference look). */
.hero__stat {
  display: flex;
  flex-direction: column;
  gap: 0.3rem;
  padding: 0.9rem 1.4rem;
  background: var(--glass-bg);
  -webkit-backdrop-filter: blur(var(--glass-blur)) saturate(150%);
  backdrop-filter: blur(var(--glass-blur)) saturate(150%);
  border: 1px solid var(--glass-border);
  border-radius: var(--radius-card);
  box-shadow: var(--glass-highlight);
}

.hero__stat-num {
  font-family: var(--font-display);
  font-size: 2.75rem;
  color: var(--amber);
  line-height: 1;
  letter-spacing: 0.02em;
}

/* Longer text values (e.g. "US, UK & Worldwide") shrink to stay on one line */
.hero__stat-num--wide {
  font-size: 1.5rem;
  white-space: nowrap;
}

.hero__stat-label {
  font-size: 0.72rem;
  font-weight: 600;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--text-muted);
}

.hero__scroll-cue {
  position: absolute;
  bottom: 2.5rem; left: 50%; transform: translateX(-50%);
  display: flex;
  align-items: center;
  gap: 0.75rem;
  font-size: 0.68rem;
  font-weight: 700;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--text-dim);
  z-index: 4;
}

.hero__scroll-line {
  width: 40px;
  height: 1px;
  background: var(--text-dim);
}

/* ── Marquee Ticker ──────────────────────────────────────────── */
.marquee {
  width: 100%;
  overflow: hidden;
  padding: 1.4rem 0;
  border-top: 1px solid var(--border);
  border-bottom: 1px solid var(--border);
  background: var(--bg);
  position: relative;
  z-index: 1;
}

.marquee__track {
  display: flex;
  width: max-content;
  animation: marquee-scroll 32s linear infinite;
}

.marquee__item {
  font-family: var(--font-display);
  font-size: 1.1rem;
  letter-spacing: 0.15em;
  text-transform: uppercase;
  color: var(--text-dim);
  white-space: nowrap;
  user-select: none;
}

.marquee__dot {
  color: var(--amber);
  margin: 0 0.65rem;
}

@keyframes marquee-scroll {
  from { transform: translateX(0); }
  to   { transform: translateX(-50%); }
}

@media (prefers-reduced-motion: reduce) {
  .marquee__track {
    animation-play-state: paused;
  }
}

/* ── Shared section label / heading helpers (about + standard) ─── */
.sl {
  font-family: var(--font-body);
  font-size: 0.7rem;
  font-weight: 700;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--amber);
  margin-bottom: 0.75rem;
  display: block;
}

.sh {
  font-family: var(--font-display);
  font-size: clamp(3rem, 6vw, 5.5rem);
  line-height: 0.92;
  letter-spacing: 0.02em;
  text-transform: uppercase;
  color: var(--text);
}

/* ── About (redesigned split panel) ──────────────────────────── */
/* About — image removed, single-column centered (transparent so ambient canvas shows) */
.about { background:transparent; overflow:hidden; }
.about-inner { padding:120px 24px; }
.about-text { display:flex; flex-direction:column; align-items:center; text-align:center; max-width:780px; margin:0 auto; }
.about-headline { font-family:'Bebas Neue',sans-serif; font-size:clamp(48px,6vw,88px); color:#fff; line-height:.9; margin-bottom:28px; margin-top:12px; }
.about-body { font-size:15px; color:#888; line-height:1.7; max-width:620px; }
.about-checks { margin-top:36px; display:flex; flex-direction:column; gap:12px; align-items:center; }
.acheck { font-size:14px; color:#aaa; display:flex; align-items:center; gap:12px; }
.amark { color:var(--amber); font-size:16px; flex-shrink:0; }

/* ── Catalog Gallery placeholder (owner drops in real product photos) ── */
.catalog-placeholder { padding: 110px 52px; background:#070707; }
.catalog-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:14px; }
.catalog-slot {
  aspect-ratio: 4/5;
  border: 1.5px dashed rgba(255,255,255,.14);
  display:flex; align-items:center; justify-content:center;
  color:#3a3a3a; font-size:12px; letter-spacing:.1em; text-transform:uppercase;
  transition: border-color .3s, color .3s;
  /* LITE glass: translucent + lit edge so empty slots read as glass, not voids */
  background: var(--glass-bg);
  box-shadow: var(--glass-highlight);
}
.catalog-slot:hover { border-color: var(--a); color: var(--a); }

/* A filled slot holds a real reference photo instead of a placeholder */
.catalog-slot--filled { border-style: solid; border-color: rgba(255,255,255,.08); position: relative; overflow: hidden; }
.catalog-slot--filled img { width: 100%; height: 100%; object-fit: cover; display: block; }
.catalog-slot-label {
  position: absolute; bottom: 12px; left: 12px;
  font-size: 10px; letter-spacing: .15em; text-transform: uppercase;
  background: rgba(0,0,0,.6); padding: 6px 12px; color: #fff;
}

/* ── The Standard (why brands choose us) ─────────────────────── */
.standard { padding:130px 52px 0; background:#060606; }
.std-header { margin-bottom:60px; }
.std-grid { display:grid; grid-template-columns:1fr 1.4fr 1fr; gap:3px; }
.std-card { position:relative; overflow:hidden; min-height:520px; }
.std-card--tall { min-height:600px; }
.std-img-wrap { position:absolute; inset:0; }
.std-img { width:100%; height:100%; object-fit:cover; display:block; filter:brightness(.5) contrast(1.1) saturate(.8); transition:transform .8s ease,filter .5s ease; }
.std-card:hover .std-img { transform:scale(1.04); filter:brightness(.35) contrast(1.2) saturate(.6); }
.std-img-ov { position:absolute; inset:0; background:linear-gradient(to top, rgba(6,6,6,.95) 0%, rgba(6,6,6,.3) 60%, rgba(6,6,6,.1) 100%); }
.std-content { position:absolute; bottom:0; left:0; right:0; padding:36px 32px; z-index:2; }
.std-num { font-family:'Bebas Neue',sans-serif; font-size:36px; color:var(--amber); opacity:.6; margin-bottom:10px; transition:color .3s; }
.std-card:hover .std-num { opacity:1; }
.std-title { font-family:'Bebas Neue',sans-serif; font-size:clamp(28px,2.5vw,38px); color:#fff; line-height:.95; margin-bottom:12px; }
.std-body { font-size:13px; color:#888; line-height:1.6; max-width:280px; }
.std-bar { background:var(--amber); padding:14px 0; margin-top:3px; overflow:hidden; display:flex; white-space:nowrap; transition:background .3s; }
.std-bar-text { font-family:'Bebas Neue',sans-serif; font-size:15px; letter-spacing:.12em; color:#000; padding:0 24px; animation:mq 22s linear infinite; }
@keyframes mq { from { transform:translateX(0); } to { transform:translateX(-100%); } }

@media (prefers-reduced-motion: reduce) {
  .std-bar-text { animation-play-state: paused; }
}

/* ── Products ────────────────────────────────────────────────── */
.products {
  padding: 9rem 0;
}

.products__grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 1.25rem;
}

.product-card {
  background: var(--glass-bg);
  border-radius: var(--radius-card);
  overflow: hidden;
  border: 1px solid var(--glass-border);
  box-shadow: var(--glass-highlight);
  transition: transform 0.3s ease, box-shadow 0.3s ease, border-color 0.3s ease;
}

.product-card:hover {
  transform: translateY(-6px);
  box-shadow: var(--glass-highlight), 0 24px 48px rgba(0, 0, 0, 0.5);
  border-color: var(--glass-border-accent);
}

.product-card__img-wrap {
  position: relative;
  aspect-ratio: 3 / 4;
  overflow: hidden;
}

.product-card__img-wrap img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.45s ease;
}

.product-card:hover .product-card__img-wrap img {
  transform: scale(1.07);
}

/* Empty product slot — owner drops a real photo in later (mirrors .catalog-slot) */
.product-card__img-wrap--empty {
  display: flex;
  align-items: center;
  justify-content: center;
  border: 1.5px dashed rgba(255, 255, 255, .14);
  background: #0c0c0c;
  transition: border-color .3s, color .3s;
}
.product-card:hover .product-card__img-wrap--empty {
  border-color: var(--a);
}

/* Owner-uploaded photos injected by photos.js (managed at /admin).
   Catalog tiles + product cards get a real <img class="slot-photo"> and an
   .is-filled class; these rules drop the dashed placeholder styling and make
   the photo fill the slot. */
.catalog-slot.is-filled {
  border-style: solid; border-color: rgba(255,255,255,.08);
  position: relative; overflow: hidden; padding: 0;
}
.catalog-slot img.slot-photo,
.product-card__img-wrap img.slot-photo {
  width: 100%; height: 100%; object-fit: cover; display: block;
}
.product-card__img-wrap.is-filled { border: 0; background: none; }

/* ── Testimonials (owner-managed, real clients only) ─────────────── */
.testimonials { padding: 9rem 0; }
.testimonials__grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
  gap: 1.5rem;
  margin-top: 3rem;
}
.tcard {
  background: var(--glass-bg);
  border: 1px solid var(--glass-border);
  border-radius: var(--radius-card);
  box-shadow: var(--glass-highlight);
  padding: 2rem;
  display: flex;
  flex-direction: column;
  gap: 1.25rem;
  transition: transform .3s ease, border-color .3s ease;
}
.tcard:hover { transform: translateY(-4px); border-color: var(--glass-border-accent); }
.tcard__quote {
  margin: 0;
  font-size: 1.05rem;
  line-height: 1.6;
  color: var(--text);
}
.tcard__who { display: flex; flex-direction: column; gap: 2px; margin-top: auto; }
.tcard__name { font-family: var(--font-display); letter-spacing: .03em; font-size: 1.15rem; color: var(--text); }
.tcard__brand { font-size: .8rem; text-transform: uppercase; letter-spacing: .12em; color: var(--amber); }
.tcard__video {
  align-self: flex-start;
  display: inline-flex; align-items: center; gap: .4rem;
  background: color-mix(in srgb, var(--amber) 14%, transparent);
  color: var(--amber);
  border: 1px solid color-mix(in srgb, var(--amber) 40%, transparent);
  padding: .55rem 1rem; border-radius: 4px;
  font-size: .85rem; font-weight: 600; text-decoration: none;
  transition: background .25s ease;
}
.tcard__video:hover { background: color-mix(in srgb, var(--amber) 26%, transparent); }
/* Gated empty slot — hidden on the public site until a real upload loads (photos.js
   removes this class when the media loads; catalog + From The Floor only). */
.slot-gated { display: none !important; }

/* Branded watermark shown in a product card until a real photo is uploaded —
   reads as intentional, not an unfinished admin slot (photos.js hides it on load). */
.product-card__placeholder {
  font-family: var(--font-display);
  color: var(--text-dim);
  font-size: 1.25rem;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  text-align: center;
  padding: 0 1rem;
  opacity: 0.5;
}

.product-card__overlay {
  position: absolute;
  inset: 0;
  background: rgba(8, 8, 8, 0.62);
  display: flex;
  align-items: center;
  justify-content: center;
  opacity: 0;
  transition: opacity 0.3s ease;
}

.product-card:hover .product-card__overlay {
  opacity: 1;
}

.product-card__info {
  padding: 1.1rem 1.25rem 1.25rem;
}

.product-card__name {
  font-family: var(--font-display);
  font-size: 1.35rem;
  letter-spacing: 0.04em;
  color: var(--text);
  margin-bottom: 0.3rem;
}

.product-card__price {
  font-family: var(--font-display);
  font-size: 1.05rem;
  color: var(--amber);
  letter-spacing: 0.03em;
  margin-bottom: 0.4rem;
}

.product-card__price span {
  font-family: var(--font-body);
  font-size: 0.72rem;
  font-weight: 400;
  color: var(--text-dim);
  letter-spacing: 0;
}

.product-card__moq {
  font-size: 0.68rem;
  font-weight: 600;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--text-dim);
  background: var(--bg);
  border: 1px solid var(--border);
  padding: 0.25rem 0.6rem;
  border-radius: var(--radius-pill);
  display: inline-block;
}

/* ── Our Work (bento gallery) ────────────────────────────────── */
.work {
  padding: 9rem 0;
  background: var(--bg);
  border-top: 1px solid var(--border); /* subtle seam from the amber std-bar above */
}

/* 6 equal same-size tiles — uniform 3-col × 2-row grid.
   Each tile holds its shape via aspect-ratio (set on .work-tile below). */
/* Flexbox (not grid) so an incomplete last row centers instead of left-aligning.
   3 per row on desktop; flex-basis is re-set per breakpoint below. */
.work__grid {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 1.25rem;
}

.work-tile {
  position: relative;
  flex: 0 1 calc((100% - 2.5rem) / 3); /* 3 across (2 gaps of 1.25rem) */
  aspect-ratio: 4 / 3;
  margin: 0;
  overflow: hidden;
  border-radius: var(--radius-card);
  border: 1px solid var(--glass-border);
  background: var(--glass-bg);
  box-shadow: var(--glass-highlight);
}

.work-tile img,
.work-tile video {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  /* dimmed so the dark theme + caption stay readable; brightens on hover */
  filter: brightness(0.62) saturate(0.9);
  transition: transform 0.6s ease, filter 0.4s ease;
}

/* Hover ENHANCES the tile — the caption is already visible without it,
   so touch users lose nothing (UX rule: don't rely on hover alone). */
.work-tile:hover img,
.work-tile:hover video {
  transform: scale(1.05);
  filter: brightness(0.78) saturate(1);
}

/* Subtle mute/unmute control on the video tiles (clips autoplay muted) */
.work-tile__mute {
  position: absolute;
  top: 0.65rem;
  right: 0.65rem;
  z-index: 3;
  width: 34px;
  height: 34px;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0;
  border-radius: 50%;
  color: var(--text);
  background: color-mix(in srgb, var(--bg) 55%, transparent);
  -webkit-backdrop-filter: blur(8px) saturate(140%);
  backdrop-filter: blur(8px) saturate(140%);
  border: 1px solid var(--glass-border);
  cursor: pointer;
  opacity: 0.7; /* subtle by default (visible on touch); full on hover */
  transition: opacity 0.25s ease, color 0.2s ease, border-color 0.2s ease, transform 0.12s ease;
}
.work-tile:hover .work-tile__mute { opacity: 1; }
.work-tile__mute:hover { color: var(--amber); border-color: var(--glass-border-accent); }
.work-tile__mute:active { transform: scale(0.92); }
.work-tile__mute svg { width: 16px; height: 16px; display: block; }

.work-tile__cap {
  position: absolute;
  inset: auto 0 0 0;
  display: flex;
  flex-direction: column;
  gap: 0.4rem;
  padding: 1.1rem 1.25rem;
  background: linear-gradient(to top, rgba(8, 8, 8, 0.92) 0%, rgba(8, 8, 8, 0.45) 60%, transparent 100%);
}

.work-tile__name {
  font-family: var(--font-display);
  font-size: 1.5rem;
  letter-spacing: 0.04em;
  line-height: 1;
  /* oxblood/amber accent (themeable) — matches the site's display-accent style */
  color: var(--amber);
}

/* Empty upload slot — dashed "+ Add Photo" placeholder until a real workspace
   photo is uploaded at /admin (photos.js then injects the <img> + .is-filled). */
.work-tile--empty {
  border-style: dashed;
  border-color: rgba(255, 255, 255, 0.14);
}

.work-tile__placeholder {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: var(--font-body);
  font-size: 12px;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--text-dim);
  pointer-events: none;
}

/* Once filled, drop the dashed look back to the standard glass-card border */
.work-tile.is-filled {
  border-style: solid;
  border-color: var(--glass-border);
}

.work__cta {
  margin-top: 3rem;
  text-align: center;
}

.work__cta-note {
  font-family: var(--font-body);
  font-size: 0.95rem;
  color: var(--text-muted);
  margin-bottom: 1.5rem;
}

.work__cta-actions {
  display: flex;
  gap: 1rem;
  justify-content: center;
  flex-wrap: wrap;
}

/* Keyboard focus ring for the CTA buttons (UX rule: visible focus states) */
.work__cta-actions .btn:focus-visible {
  outline: 2px solid var(--amber);
  outline-offset: 3px;
}

/* Tablet: 2 equal columns */
@media (max-width: 1024px) {
  .work-tile { flex-basis: calc((100% - 1.25rem) / 2); } /* 2 across */
}

/* Phone: single column stack */
@media (max-width: 480px) {
  .work-tile { flex-basis: 100%; } /* 1 across */
}

/* ── Calculator ──────────────────────────────────────────────── */
.calculator {
  padding: 9rem 0;
  background: var(--bg-raised);
}

.calculator__layout {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 4rem;
  align-items: start;
}

.form-group {
  margin-bottom: 1.4rem;
}

.form-group label {
  display: block;
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--text-muted);
  margin-bottom: 0.5rem;
}

.form-control {
  display: block;
  width: 100%;
  background: var(--glass-bg);
  border: 1px solid var(--glass-border);
  color: var(--text);
  font-family: var(--font-body);
  font-size: 0.95rem;
  padding: 0.8rem 1rem;
  border-radius: var(--radius-pill);
  outline: none;
  transition: border-color 0.2s;
  -webkit-appearance: none;
  appearance: none;
}

.form-control:focus {
  border-color: var(--amber);
}

select.form-control {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='7' viewBox='0 0 12 7'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%23666' stroke-width='1.5' fill='none' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 1rem center;
  padding-right: 2.5rem;
  cursor: pointer;
}

select.form-control option {
  background: var(--bg-raised);
  color: var(--text);
}

/* Validation highlight */
.form-control.field-error {
  border-color: #c0392b;
  animation: shake 0.3s ease;
}

@keyframes shake {
  0%, 100% { transform: translateX(0); }
  25%       { transform: translateX(-4px); }
  75%       { transform: translateX(4px); }
}

/* Build panel — STRONG frosted glass to mirror the results panel. The two are a
   single side-by-side pair (not repeated), so real blur is justified here. */
.calculator__form {
  background: var(--glass-bg-strong);
  backdrop-filter: blur(var(--glass-blur)) saturate(140%);
  -webkit-backdrop-filter: blur(var(--glass-blur)) saturate(140%);
  border: 1px solid var(--glass-border);
  border-radius: var(--radius-card);
  box-shadow: var(--glass-highlight), var(--glass-shadow);
  padding: 2rem;
}

/* Results panel — frosted glass (sticky, single instance → real blur is fine) */
.calculator__results {
  background: var(--glass-bg-strong);
  backdrop-filter: blur(var(--glass-blur)) saturate(140%);
  -webkit-backdrop-filter: blur(var(--glass-blur)) saturate(140%);
  border: 1px solid var(--glass-border);
  border-radius: var(--radius-card);
  box-shadow: var(--glass-highlight), var(--glass-shadow);
  padding: 2rem;
  min-height: 340px;
  display: flex;
  flex-direction: column;
  justify-content: center;
}

.calc-placeholder {
  text-align: center;
  color: var(--text-dim);
  font-size: 0.9rem;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 1rem;
}

.calc-placeholder__icon {
  width: 48px;
  height: 48px;
  border: 1px solid var(--border);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1rem;
  color: var(--amber);
}

.calc-loading {
  flex-direction: column;
  align-items: center;
  gap: 1rem;
  text-align: center;
  color: var(--text-muted);
  font-size: 0.9rem;
}

.spinner {
  width: 32px;
  height: 32px;
  border: 2px solid var(--border);
  border-top-color: var(--amber);
  border-radius: 50%;
  animation: spin 0.75s linear infinite;
}

@keyframes spin { to { transform: rotate(360deg); } }

.calc-error {
  background: rgba(192, 57, 43, 0.08);
  border: 1px solid rgba(192, 57, 43, 0.25);
  border-radius: var(--radius-pill);
  padding: 0.7rem 1rem;
  font-size: 0.8rem;
  color: #e07070;
  text-align: center;
  margin-bottom: 1rem;
}

.calc-breakdown__title {
  font-family: var(--font-display);
  font-size: 1.75rem;
  letter-spacing: 0.05em;
  color: var(--text);
  margin-bottom: 1.5rem;
}

.calc-row {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  padding: 0.7rem 0;
  border-bottom: 1px solid var(--border);
  font-size: 0.88rem;
  color: var(--text-muted);
}

.calc-row:last-of-type {
  border-bottom: none;
}

.calc-row__val {
  font-weight: 600;
  color: var(--text);
}

.calc-separator {
  height: 1px;
  background: var(--border);
  margin: 0.75rem 0;
}

.calc-row--subtotal {
  color: var(--text-muted);
  font-size: 0.85rem;
  border-bottom: none;
}

.calc-row--total {
  font-family: var(--font-display);
  font-size: 1.9rem;
  letter-spacing: 0.04em;
  color: var(--amber);
  border-bottom: none;
  padding-top: 0.4rem;
}

.calc-row--total .calc-row__val {
  color: var(--amber);
}

.calc-row--per-unit {
  font-family: var(--font-display);
  font-size: 1.2rem;
  letter-spacing: 0.04em;
  color: var(--text-muted);
  border-bottom: none;
}

.calc-row--per-unit .calc-row__val {
  color: var(--text-muted);
}

/* Small +% tag next to wastage / overhead labels */
.calc-row__pct {
  display: inline-block;
  margin-left: 0.4rem;
  font-size: 0.72rem;
  font-weight: 600;
  color: var(--amber);
  opacity: 0.85;
}

/* Headline — Estimated Client Quote */
.calc-quote {
  display: flex;
  flex-direction: column;
  gap: 0.2rem;
  padding: 0.6rem 0 0.4rem;
}

.calc-quote__label {
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--text-muted);
}

.calc-quote__val {
  font-family: var(--font-display);
  font-size: 3.1rem;
  line-height: 1;
  letter-spacing: 0.03em;
  color: var(--amber);
}

/* Estimate disclaimer */
.calc-disclaimer {
  margin-top: 1.1rem;
  font-size: 0.72rem;
  line-height: 1.5;
  color: var(--text-dim);
  font-style: italic;
}

.calc-shipping-cta {
  margin-top: 1.5rem;
  padding-top: 1.5rem;
  border-top: 1px solid var(--border);
  display: flex;
  flex-direction: column;
  gap: 0.9rem;
}

.calc-shipping-cta p {
  font-size: 0.8rem;
  color: var(--text-dim);
  text-align: center;
}

/* ── Multi-product order estimator (cart-style rebuild) ──────── */
.calc-builder__title,
.calc-summary__title {
  font-family: var(--font-display);
  font-size: 1.75rem;
  letter-spacing: 0.05em;
  color: var(--text);
  margin-bottom: 1.5rem;
}

/* Adaptive decoration controls — flex so 1 or 2 visible items lay out cleanly */
.calc-form-row {
  display: flex;
  gap: 1rem;
}
.calc-form-row .form-group {
  flex: 1 1 0;
  min-width: 0;
}

/* Inline validation message under the builder */
.calc-form-msg {
  font-size: 0.8rem;
  color: #e07070;
  margin-bottom: 0.9rem;
  min-height: 1em;
  opacity: 0;
  transition: opacity 0.2s ease;
}
.calc-form-msg.show { opacity: 1; }

/* Results panel becomes a sticky, top-aligned order summary */
.calculator__results {
  justify-content: flex-start;
}
@media (min-width: 1025px) {
  .calculator__results {
    position: sticky;
    top: 90px;
  }
}

/* Empty state */
.calc-empty {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 1rem;
  text-align: center;
  color: var(--text-dim);
  font-size: 0.9rem;
  padding: 2.5rem 0;
}

/* A single product line + its breakdown */
.calc-line {
  border: 1px solid var(--glass-border);
  border-radius: var(--radius-card);
  padding: 1rem 1.1rem;
  margin-bottom: 0.9rem;
  background: color-mix(in srgb, var(--bg-raised) 55%, transparent);
  box-shadow: var(--glass-highlight);
}

.calc-line__head {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 0.75rem;
  margin-bottom: 0.6rem;
}

.calc-line__name {
  font-family: var(--font-display);
  font-size: 1.05rem;
  letter-spacing: 0.03em;
  color: var(--text);
}

.calc-line__remove {
  flex-shrink: 0;
  width: 26px;
  height: 26px;
  line-height: 1;
  border: 1px solid var(--border);
  border-radius: 50%;
  background: transparent;
  color: var(--text-muted);
  font-size: 1.1rem;
  cursor: pointer;
  transition: border-color 0.2s ease, color 0.2s ease, background 0.2s ease;
}
.calc-line__remove:hover {
  border-color: var(--amber);
  color: var(--amber);
  background: var(--amber-dim);
}

.calc-line__rows .calc-row {
  padding: 0.45rem 0;
  font-size: 0.84rem;
}

.calc-line__sub {
  margin-top: 0.4rem;
  padding-top: 0.6rem;
  border-top: 1px solid var(--border);
  font-weight: 600;
  color: var(--text);
}
.calc-line__sub .calc-row__val { color: var(--amber); }

/* Shipping block — visibly separate from the order total */
.calc-ship {
  margin-top: 1.4rem;
  padding: 1.2rem 1.1rem;
  border: 1px dashed var(--border);
  border-radius: var(--radius-card);
}

.calc-ship__head {
  font-size: 0.78rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--text-muted);
  margin-bottom: 1rem;
}
.calc-ship__head span {
  font-weight: 400;
  text-transform: none;
  letter-spacing: 0;
  color: var(--text-dim);
}

.calc-ship .form-group { margin-bottom: 1rem; }

.calc-ship__note {
  margin-top: 0.8rem;
  font-size: 0.72rem;
  line-height: 1.5;
  color: var(--text-dim);
}

#calc-wa { margin-top: 1.4rem; }

/* ── Process ─────────────────────────────────────────────────── */
.process {
  padding: 9rem 0;
}

.process__steps {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 1.5rem;
}

.process-step {
  background: var(--glass-bg);
  border: 1px solid var(--glass-border);
  border-radius: var(--radius-card);
  box-shadow: var(--glass-highlight);
  padding: 2rem 1.75rem;
  transition: border-color 0.3s ease;
}

.process-step:hover {
  border-color: var(--glass-border-accent);
}

.process-step__num {
  font-family: var(--font-display);
  font-size: 4rem;
  color: var(--amber-dim);
  line-height: 1;
  letter-spacing: 0.04em;
  margin-bottom: 1.25rem;
}

.process-step__body h3 {
  font-family: var(--font-display);
  font-size: 1.35rem;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  color: var(--text);
  margin-bottom: 0.75rem;
}

.process-step__body p {
  font-size: 0.88rem;
  line-height: 1.7;
  color: var(--text-muted);
}

/* ── CTA Band ────────────────────────────────────────────────── */
.cta-band {
  padding: 9rem 0;
  background: var(--bg-raised);
  text-align: center;
}

.cta-band .container {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 1.5rem;
  /* LITE glass card — the CTA now floats as a frosted panel over the aurora */
  max-width: 760px;
  padding: 4rem 2rem;
  background: var(--glass-bg);
  border: 1px solid var(--glass-border);
  border-radius: var(--radius-card);
  box-shadow: var(--glass-highlight);
}

.cta-band .body {
  max-width: 380px;
}

/* ── Footer ──────────────────────────────────────────────────── */
.footer {
  padding: 0 0 2rem;
  background: var(--bg);
}

/* Amber top accent line */
.footer__accent {
  height: 2px;
  background: linear-gradient(to right, var(--amber), rgba(212,130,10,0.15), transparent);
  margin-bottom: 4rem;
}

.footer__grid {
  display: grid;
  grid-template-columns: 1.8fr 1fr 1.4fr;
  gap: 4rem;
  margin-bottom: 3.5rem;
}

/* Brand column */
.footer__brand {
  display: flex;
  flex-direction: column;
  gap: 1.1rem;
}

.footer__logo {
  font-family: var(--font-display);
  font-size: 2.75rem;
  line-height: 0.95;
  letter-spacing: 0.04em;
  color: var(--text);
}

.footer__tagline {
  font-size: 0.85rem;
  color: var(--text-dim);
  line-height: 1.7;
  max-width: 280px;
}

/* Instagram handle pill */
.footer__ig-handle {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  font-size: 0.78rem;
  font-weight: 600;
  letter-spacing: 0.04em;
  color: var(--text-muted);
  background: var(--bg-card);
  border: 1px solid var(--border);
  border-radius: 100px;
  padding: 0.4rem 0.9rem;
  width: fit-content;
  transition: border-color 0.2s, color 0.2s;
}

.footer__ig-handle:hover {
  border-color: var(--amber);
  color: var(--amber);
}

.footer__ig-dot {
  width: 6px; height: 6px;
  background: var(--amber);
  border-radius: 50%;
  flex-shrink: 0;
}

/* Nav column */
.footer__col {
  display: flex;
  flex-direction: column;
  gap: 0;
  padding-top: 0.25rem;
}

.footer__col-title {
  font-size: 0.65rem;
  font-weight: 700;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--text-dim);
  margin-bottom: 1rem;
}

.footer__col a {
  font-size: 0.88rem;
  color: var(--text-muted);
  padding: 0.4rem 0;
  border-bottom: 1px solid transparent;
  transition: color 0.2s, border-color 0.2s;
  display: flex;
  align-items: center;
  gap: 0.4rem;
}

.footer__col a::before {
  content: '—';
  font-size: 0.65rem;
  color: var(--text-dim);
  transition: color 0.2s;
}

.footer__col a:hover {
  color: var(--amber);
}

.footer__col a:hover::before {
  color: var(--amber);
}

/* Contact CTA buttons */
.footer__cta-btn {
  display: block;
  text-align: center;
  padding: 0.7rem 1rem;
  border-radius: var(--radius-pill);
  font-size: 0.82rem;
  font-weight: 600;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  margin-bottom: 0.6rem;
  transition: all 0.22s ease;
}

.footer__cta-btn--wa {
  background: var(--amber);
  color: #080808;
}

.footer__cta-btn--wa:hover {
  background: var(--amber-hover);
  transform: translateY(-2px);
  box-shadow: 0 6px 20px rgba(212,130,10,0.25);
}

.footer__cta-btn--ig {
  background: transparent;
  color: var(--text-muted);
  border: 1px solid var(--border);
}

.footer__cta-btn--ig:hover {
  border-color: var(--amber);
  color: var(--amber);
}

.footer__phone {
  font-size: 0.78rem;
  color: var(--text-dim);
  text-align: center;
  margin-top: 0.4rem;
  letter-spacing: 0.04em;
}

/* Bottom bar */
.footer__bottom {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding-top: 2rem;
  border-top: 1px solid var(--border);
  font-size: 0.78rem;
  color: var(--text-dim);
}

.footer__bottom-right {
  display: flex;
  align-items: center;
  gap: 1.25rem;
}

.footer__moq-badge {
  background: var(--amber-dim);
  border: 1px solid rgba(212,130,10,0.25);
  color: var(--amber);
  font-size: 0.68rem;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  padding: 0.25rem 0.65rem;
  border-radius: var(--radius-pill);
}

.footer__location {
  color: var(--text-dim);
  font-size: 0.78rem;
}

/* ── Responsive ──────────────────────────────────────────────── */
@media (max-width: 1024px) {
  .standard {
    padding: 100px 28px 0;
  }

  .std-grid {
    grid-template-columns: 1fr;
  }

  .std-card,
  .std-card--tall {
    min-height: 380px;
  }

  .products__grid {
    grid-template-columns: repeat(2, 1fr);
  }

  .process__steps {
    grid-template-columns: repeat(2, 1fr);
  }

  .about-inner {
    padding: 80px 20px;
  }

  .catalog-grid {
    grid-template-columns: repeat(2, 1fr);
  }

  .calculator__layout {
    grid-template-columns: 1fr;
  }

  .footer__grid {
    grid-template-columns: 1fr 1fr;
    gap: 2.5rem;
  }

  .footer__brand {
    grid-column: 1 / -1;
  }

  .footer__logo {
    font-size: 2.25rem;
  }
}

@media (max-width: 768px) {
  .nav__links {
    display: none;
  }

  .nav__hamburger {
    display: flex;
  }

  .nav {
    padding: 1rem 1.5rem;
  }

  .hero__content {
    padding: 9rem 1.5rem 5rem;
  }

  .hero__headline {
    font-size: clamp(4rem, 16vw, 6rem);
  }

  .hero__actions {
    flex-direction: column;
    align-items: flex-start;
  }

  .hero__stats {
    gap: 2rem;
  }

  .hero__scroll-cue {
    display: none;
  }

  /* Hero bg shows more centered on mobile */
  .hero__bg {
    background-position: 65% 20%;
  }

  .hero__overlay {
    background: linear-gradient(
      to bottom,
      rgba(8, 8, 8, 0.88) 0%,
      rgba(8, 8, 8, 0.75) 60%,
      rgba(8, 8, 8, 0.65) 100%
    );
  }

  .products__grid {
    grid-template-columns: repeat(2, 1fr);
    gap: 1rem;
  }

  .process__steps {
    grid-template-columns: 1fr;
  }

  .footer__grid {
    grid-template-columns: 1fr;
    gap: 2rem;
  }

  .footer__bottom {
    flex-direction: column;
    gap: 0.75rem;
    text-align: center;
  }

  .footer__bottom-right {
    flex-direction: column;
    gap: 0.5rem;
  }

  /* Hide custom cursor on touch devices */
  .cursor-dot,
  .cursor-ring {
    display: none;
  }

  body {
    cursor: auto;
  }
}

@media (max-width: 480px) {
  .container {
    padding: 0 1.25rem;
  }

  .products__grid {
    grid-template-columns: 1fr;
  }

  .hero__stats {
    gap: 1.75rem;
  }

  .hero__stat-num {
    font-size: 2.25rem;
  }
}

/* ════════════════════════════════════════════════════════════════
   THEME STUDIO — floating launcher + slide-in panel
   ════════════════════════════════════════════════════════════════ */
.tweak-btn {
  position: fixed;
  bottom: 1.5rem;
  right: 1.5rem;
  width: 54px;
  height: 54px;
  border-radius: 50%;
  background: var(--amber);
  color: #080808;
  border: none;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  z-index: 950;
  box-shadow: 0 8px 28px rgba(0,0,0,0.45), 0 0 0 0 var(--amber-glow);
  transition: transform 0.3s cubic-bezier(.34,1.56,.64,1), box-shadow 0.3s, background 0.3s;
}

.tweak-btn:hover {
  transform: rotate(90deg) scale(1.06);
  box-shadow: 0 10px 34px rgba(0,0,0,0.55);
}

.tweak-btn svg { display: block; }

/* Dim overlay behind the panel */
.tweak-overlay {
  position: fixed;
  inset: 0;
  background: rgba(0,0,0,0.5);
  backdrop-filter: blur(2px);
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.35s ease, visibility 0.35s;
  z-index: 951;
}

.tweak-overlay.active {
  opacity: 1;
  visibility: visible;
}

.tweak-panel {
  position: fixed;
  bottom: 1.5rem;
  right: 1.5rem;
  width: min(380px, calc(100vw - 3rem));
  max-height: min(76vh, 640px);
  background: var(--glass-bg-strong);
  backdrop-filter: blur(var(--glass-blur)) saturate(140%);
  -webkit-backdrop-filter: blur(var(--glass-blur)) saturate(140%);
  border: 1px solid var(--glass-border);
  border-radius: var(--radius-card);
  padding: 1.5rem;
  display: flex;
  flex-direction: column;
  z-index: 952;
  /* Subtle oxblood/accent glow along the top edge (rounded card → glow, no hard border) */
  box-shadow: var(--glass-highlight),
              inset 0 3px 16px -8px color-mix(in srgb, var(--amber) 45%, transparent),
              0 24px 60px rgba(0,0,0,0.6);
  transform: translateY(24px) scale(0.97);
  transform-origin: bottom right;
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.35s ease, transform 0.35s cubic-bezier(.34,1.2,.64,1), visibility 0.35s;
}

.tweak-panel.open {
  transform: translateY(0) scale(1);
  opacity: 1;
  visibility: visible;
}

.tweak-panel__head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1rem;
  margin-bottom: 0.35rem;
}

.tweak-panel__title {
  font-family: var(--font-display);
  font-size: 1.5rem;
  letter-spacing: 0.04em;
  color: var(--text);
}

.tweak-panel__sub {
  font-size: 0.78rem;
  color: var(--text-muted);
  margin-top: 0.1rem;
}

.tweak-panel__close {
  background: none;
  border: none;
  color: var(--text-muted);
  font-size: 1.6rem;
  line-height: 1;
  cursor: pointer;
  padding: 0 0.25rem;
  transition: color 0.2s;
}

.tweak-panel__close:hover { color: var(--text); }

.tweak-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0.6rem;
  margin-top: 1.1rem;
  overflow-y: auto;
  padding-right: 0.25rem;
}

/* Each swatch is its own mini preview using --sw-bg / --sw-ac */
.tweak-sw {
  display: flex;
  align-items: center;
  gap: 0.6rem;
  text-align: left;
  background: var(--sw-bg);
  border: 1px solid var(--border);
  border-radius: var(--radius-pill);
  padding: 0.7rem 0.75rem;
  cursor: pointer;
  transition: border-color 0.2s, transform 0.15s;
}

.tweak-sw:hover {
  transform: translateY(-2px);
  border-color: var(--sw-ac);
}

.tweak-sw.active {
  border-color: var(--sw-ac);
  box-shadow: 0 0 0 1px var(--sw-ac), 0 0 16px -4px var(--sw-ac);
}

.tweak-sw__chip {
  width: 26px;
  height: 26px;
  border-radius: 50%;
  flex-shrink: 0;
  background: var(--sw-ac);
  box-shadow: 0 0 12px -2px var(--sw-ac);
}

.tweak-sw__meta {
  display: flex;
  flex-direction: column;
  min-width: 0;
}

.tweak-sw__name {
  font-size: 0.8rem;
  font-weight: 600;
  color: #fff;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.tweak-sw__font {
  font-size: 0.66rem;
  color: rgba(255,255,255,0.5);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.tweak-panel__note {
  font-size: 0.68rem;
  color: var(--text-dim);
  margin-top: 1rem;
  font-style: italic;
}

@media (max-width: 480px) {
  .tweak-grid { grid-template-columns: 1fr; }
  .tweak-panel { bottom: 0; right: 0; left: 0; width: 100%; border-radius: var(--radius-card) var(--radius-card) 0 0; }
}

/* ════════════════════════════════════════════════════════════════
   TRUST BAR
   ════════════════════════════════════════════════════════════════ */
.trustbar {
  padding: 5rem 0;
  border-top: 1px solid var(--border);
  border-bottom: 1px solid var(--border);
  background: var(--bg);
}

.trustbar__grid {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 1.5rem;
  text-align: center;
}

.trust-stat {
  display: flex;
  flex-direction: column;
  gap: 0.4rem;
  /* LITE glass cards — the stat blocks now float as frosted panels */
  padding: 1.6rem 1rem;
  background: var(--glass-bg);
  border: 1px solid var(--glass-border);
  border-radius: var(--radius-card);
  box-shadow: var(--glass-highlight);
  transition: border-color 0.3s ease;
}

.trust-stat:hover { border-color: var(--glass-border-accent); }

.trust-stat__num {
  font-family: var(--font-display);
  font-size: clamp(2.4rem, 4vw, 3.4rem);
  line-height: 1;
  color: var(--amber);
  letter-spacing: 0.02em;
}

.trust-stat__num small {
  font-size: 0.4em;
  color: var(--text-muted);
  margin-left: 0.15em;
  letter-spacing: 0.05em;
}

.trust-stat__label {
  font-size: 0.72rem;
  font-weight: 600;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--text-muted);
}

.trustbar__chips {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 0.7rem;
  margin-top: 3rem;
}

.trust-chip {
  font-size: 0.78rem;
  color: var(--text-muted);
  background: var(--glass-bg);
  border: 1px solid var(--glass-border);
  border-radius: var(--radius-pill);
  box-shadow: var(--glass-highlight);
  padding: 0.5rem 1rem;
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
}

.trust-chip::before {
  content: '✓';
  color: var(--amber);
  font-size: 0.8em;
  font-weight: 700;
}

.trustbar__certs {
  margin-top: 2.5rem;
  text-align: center;
}

.trustbar__certs-label {
  display: block;
  font-size: 0.68rem;
  font-weight: 700;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--text-dim);
  margin-bottom: 1rem;
}

.trustbar__certs-row {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 1rem;
}

.trust-cert {
  font-size: 0.8rem;
  font-weight: 600;
  color: var(--text-muted);
  border: 1px dashed var(--border);
  border-radius: var(--radius-card);
  padding: 0.75rem 1.5rem;
  /* LITE glass so the empty cert slots match the frosted card language */
  background: var(--glass-bg);
  box-shadow: var(--glass-highlight);
}

.trust-cert--ph { color: var(--text-dim); }

/* ════════════════════════════════════════════════════════════════
   QUOTE REQUEST
   ════════════════════════════════════════════════════════════════ */
.quote { padding: 9rem 0; }

.quote__layout {
  display: grid;
  grid-template-columns: 0.85fr 1.15fr;
  gap: 4rem;
  align-items: start;
}

.quote__aside {
  position: sticky;
  top: 6rem;
}

.quote__aside-title {
  font-family: var(--font-display);
  font-size: 1.6rem;
  letter-spacing: 0.04em;
  color: var(--text);
  margin-bottom: 1.5rem;
}

.quote__steps {
  list-style: none;
  display: flex;
  flex-direction: column;
  gap: 1.1rem;
  margin-bottom: 2rem;
}

.quote__steps li {
  display: flex;
  gap: 1rem;
  font-size: 0.92rem;
  color: var(--text-muted);
  line-height: 1.5;
}

.quote__steps li span {
  flex-shrink: 0;
  width: 28px;
  height: 28px;
  border-radius: 50%;
  background: var(--amber-dim);
  border: 1px solid var(--border-hover);
  color: var(--amber);
  font-weight: 700;
  font-size: 0.8rem;
  display: flex;
  align-items: center;
  justify-content: center;
}

.quote__assure {
  list-style: none;
  display: flex;
  flex-direction: column;
  gap: 0.7rem;
  padding-top: 1.5rem;
  border-top: 1px solid var(--border);
}

.quote__assure li {
  position: relative;
  padding-left: 1.5rem;
  font-size: 0.85rem;
  color: var(--text-muted);
}

.quote__assure li::before {
  content: '✓';
  position: absolute;
  left: 0;
  color: var(--amber);
  font-weight: 700;
}

.quote__form {
  background: var(--glass-bg-strong);
  backdrop-filter: blur(var(--glass-blur)) saturate(140%);
  -webkit-backdrop-filter: blur(var(--glass-blur)) saturate(140%);
  border: 1px solid var(--glass-border);
  border-radius: var(--radius-card);
  box-shadow: var(--glass-highlight), var(--glass-shadow);
  padding: 2rem;
}

.quote__form textarea.form-control {
  resize: vertical;
  min-height: 96px;
  font-family: var(--font-body);
}

.quote__form-note {
  font-size: 0.78rem;
  color: var(--text-dim);
  text-align: center;
  margin-top: 1rem;
}

.quote__form-note a { color: var(--amber); text-decoration: underline; }

@media (max-width: 1024px) {
  .trustbar__grid { grid-template-columns: repeat(3, 1fr); gap: 2.5rem 1rem; }
  .quote__layout { grid-template-columns: 1fr; gap: 3rem; }
  .quote__aside { position: static; }
}

@media (max-width: 600px) {
  .trustbar__grid { grid-template-columns: repeat(2, 1fr); }
}

/* ════════════════════════════════════════════════════════════════
   FAQ (accordion)
   ════════════════════════════════════════════════════════════════ */
.faq { padding: 9rem 0; }

.faq__list {
  max-width: 780px;
  margin: 0 auto;
  border-top: 1px solid var(--border);
}

.faq-item { border-bottom: 1px solid var(--border); }

.faq-item__q {
  width: 100%;
  background: none;
  border: none;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1.5rem;
  text-align: left;
  padding: 1.5rem 0.25rem;
  font-family: var(--font-body);
  font-size: 1.05rem;
  font-weight: 500;
  color: var(--text);
  transition: color 0.2s;
}

.faq-item__q:hover,
.faq-item.open .faq-item__q { color: var(--amber); }

/* Plus icon that morphs to a minus when open */
.faq-item__icon {
  position: relative;
  width: 14px;
  height: 14px;
  flex-shrink: 0;
}

.faq-item__icon::before,
.faq-item__icon::after {
  content: '';
  position: absolute;
  background: var(--amber);
  transition: transform 0.3s ease, opacity 0.3s ease;
}

.faq-item__icon::before { top: 50%; left: 0; width: 100%; height: 2px; transform: translateY(-50%); }
.faq-item__icon::after  { left: 50%; top: 0; width: 2px; height: 100%; transform: translateX(-50%); }
.faq-item.open .faq-item__icon::after { transform: translateX(-50%) rotate(90deg); opacity: 0; }

.faq-item__a {
  max-height: 0;
  overflow: hidden;
  transition: max-height 0.4s ease;
}

.faq-item.open .faq-item__a { max-height: 400px; }

.faq-item__a p {
  padding: 0 0.25rem 1.5rem;
  font-size: 0.95rem;
  line-height: 1.7;
  color: var(--text-muted);
  max-width: 64ch;
}

.faq__more {
  text-align: center;
  margin-top: 2.5rem;
  font-size: 0.9rem;
  color: var(--text-muted);
}

.faq__more a { color: var(--amber); text-decoration: underline; }

/* ════════════════════════════════════════════════════════════════
   COMPONENT POLISH PASS (Change 5)
   Hand-built refinements (Magic MCP server unavailable in this env) —
   premium focus rings, hover glows, smoother transitions. Uses the
   --a accent + existing dark theme. No structural/HTML changes.
   ════════════════════════════════════════════════════════════════ */

/* Inputs & selects (calculator + quote form) — soft accent focus ring
   instead of a bare border colour swap, plus a subtle hover cue. */
.form-control {
  transition: border-color 0.22s ease, box-shadow 0.22s ease, background 0.22s ease;
}
.form-control:hover {
  border-color: rgba(255, 255, 255, 0.16);
}
.form-control:focus {
  border-color: var(--a);
  box-shadow: 0 0 0 3px var(--amber-dim);
  background: var(--bg-raised);
}
.form-control[type="number"] { font-variant-numeric: tabular-nums; }

/* Buttons — soft accent glow + a touch more lift on hover, snappy press */
.btn--primary { box-shadow: 0 6px 18px rgba(0, 0, 0, 0.35); }
.btn--primary:hover {
  transform: translateY(-2px);
  box-shadow: 0 10px 30px var(--amber-glow), 0 8px 22px rgba(0, 0, 0, 0.45);
}
.btn--primary:active { transform: translateY(0); }
.btn--ghost:hover {
  box-shadow: inset 0 0 0 1px var(--a), 0 8px 22px rgba(0, 0, 0, 0.35);
}
.btn--full { letter-spacing: 0.04em; }

/* Product MOQ pill — premium accent pill that fills in on card hover */
.product-card__moq {
  background: var(--amber-dim);
  border-color: var(--border-hover);
  color: var(--amber);
  transition: background 0.25s ease, color 0.25s ease, border-color 0.25s ease;
}
.product-card:hover .product-card__moq {
  background: var(--amber);
  color: #0a0a0a;
}

/* Work-tile technique tag — subtle accent glow on hover */
.work-tile__tag {
  transition: background 0.25s ease, color 0.25s ease, box-shadow 0.25s ease;
}
.work-tile:hover .work-tile__tag {
  box-shadow: 0 0 0 1px var(--border-hover), 0 6px 16px var(--amber-glow);
}

/* ════════════════════════════════════════════════════════════════
   GLASS — robustness & performance guards (keep LAST so they win)
   ════════════════════════════════════════════════════════════════ */

/* Old browsers without backdrop-filter: fall back to solid surfaces so
   translucent panels never show an un-blurred page behind them. */
@supports not ((backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px))) {
  :root {
    --glass-bg:        var(--bg-card);
    --glass-bg-strong: var(--bg-raised);
  }
  .panel__bar, .calc-line { background: var(--bg-raised); }
}

/* Mobile: lighter blur + no blur on the (potentially several) ghost buttons,
   so the handful of on-screen frosted surfaces stay smooth on phones. */
@media (max-width: 768px) {
  :root { --glass-blur: 9px; }
  .btn--ghost { -webkit-backdrop-filter: none; backdrop-filter: none; }
}
