@charset "UTF-8";
/* =============================================================================
   ADMAX — Design System
   Concept: "Warm light / Cool light" — the two colour temperatures ADMAX sells,
   anchored by the red of the logo star (#ED1C22, sampled from the mark).
   ========================================================================== */

/* ---------------------------------------------------------------- 1. FONTS */
@font-face {
  font-family: 'Instrument Sans';
  src: url('../fonts/instrument-sans-var-latin.woff2') format('woff2-variations');
  font-weight: 400 700;
  font-style: normal;
  font-display: swap;
  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: 'Inter';
  src: url('../fonts/inter-var-latin.woff2') format('woff2-variations');
  font-weight: 400 700;
  font-style: normal;
  font-display: swap;
  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;
}

/* ---------------------------------------------------------------- 2. TOKENS */
:root {
  /* Brand — sampled from the ADMAX mark */
  --brand-red:        #ED1C22;
  --brand-red-deep:   #A8121A;
  --brand-red-bright: #FF4D52;
  --brand-ink:        #58595B;

  /* Light temperature accents (the product line, as colour) */
  --warm-400: #FFC24B;
  --warm-500: #FF9A1F;
  --warm-600: #C96A00;
  --cool-400: #63C8FF;
  --cool-500: #2E9BE6;
  --cool-600: #0A6DAE;

  /* Signature gradients */
  --grad-filament: linear-gradient(100deg, var(--warm-400) 0%, var(--warm-500) 34%, var(--brand-red) 78%);
  --grad-spectrum: linear-gradient(100deg, var(--cool-400) 0%, #9E7BFF 40%, var(--brand-red) 72%, var(--warm-500) 100%);
  --grad-sheen:    linear-gradient(160deg, rgb(255 255 255 / .14), rgb(255 255 255 / 0) 46%);

  /* Type */
  --font-display: 'Instrument Sans', ui-sans-serif, system-ui, -apple-system, 'Segoe UI', sans-serif;
  --font-body:    'Inter', ui-sans-serif, system-ui, -apple-system, 'Segoe UI', sans-serif;

  --fs-display-xl: clamp(2.55rem, 5.4vw, 4.75rem);
  --fs-display:    clamp(2.15rem, 4.4vw, 3.7rem);
  --fs-h2:         clamp(1.85rem, 3.2vw, 2.7rem);
  --fs-h3:         clamp(1.18rem, 1.55vw, 1.42rem);
  --fs-lead:       clamp(1.05rem, 1.35vw, 1.25rem);
  --fs-body:       1rem;
  --fs-sm:         .9375rem;
  --fs-xs:         .8125rem;
  --fs-eyebrow:    .78125rem;

  /* Space */
  --s-1: .25rem;  --s-2: .5rem;   --s-3: .75rem;  --s-4: 1rem;
  --s-5: 1.5rem;  --s-6: 2rem;    --s-7: 3rem;    --s-8: 4rem;
  --s-9: 6rem;    --s-10: 8rem;   --s-11: 10rem;
  --section-y: clamp(3.75rem, 6.6vw, 6.75rem);
  --gutter:    clamp(1.15rem, 4vw, 2.5rem);
  --maxw:      1240px;
  --maxw-text: 68ch;

  /* Radius */
  --r-sm: 10px; --r-md: 16px; --r-lg: 24px; --r-xl: 34px; --r-pill: 999px;

  /* Motion */
  --ease-out:  cubic-bezier(.22, 1, .36, 1);
  --ease-io:   cubic-bezier(.65, 0, .35, 1);
  --t-fast: .18s; --t-mid: .34s; --t-slow: .6s;

  --nav-h: 74px;
  color-scheme: light dark;
}

/* --- LIGHT (default) --- */
:root,
:root[data-theme='light'] {
  --bg:          #FFFFFF;
  --bg-canvas:   #F6F7F9;
  --bg-sunk:     #EEF0F4;
  --surface:     #FFFFFF;
  --surface-2:   #F4F5F8;
  --surface-glass: rgb(255 255 255 / .72);
  --border:      rgb(12 14 22 / .11);
  --border-strong: rgb(12 14 22 / .2);
  --text:        #0C0E14;
  --text-2:      #3D4250;
  --text-muted:  #5D6373;
  --text-faint:  #646A7B;
  --primary:     #C4131A;      /* AA on white for text + buttons */
  --primary-hov: #A8121A;
  --on-primary:  #FFFFFF;
  --accent:      #9A5A00;      /* warm, AA-safe as text on light */
  --link:        #C4131A;
  --success:     #0F7A54;
  --warning:     #92620A;
  --focus:       #0A66C2;
  --shadow-1: 0 1px 2px rgb(12 14 22 / .05), 0 2px 6px rgb(12 14 22 / .04);
  --shadow-2: 0 4px 12px rgb(12 14 22 / .07), 0 14px 34px rgb(12 14 22 / .07);
  --shadow-3: 0 10px 24px rgb(12 14 22 / .09), 0 30px 70px rgb(12 14 22 / .11);
  --glow:     0 12px 40px rgb(237 28 34 / .22);
  --hairline: rgb(12 14 22 / .07);
  --logo-dark-display: block;
  --logo-light-display: none;
}

/* --- DARK --- */
:root[data-theme='dark'] {
  --bg:          #08090C;
  --bg-canvas:   #0B0D12;
  --bg-sunk:     #06070A;
  --surface:     #101218;
  --surface-2:   #171A22;
  --surface-glass: rgb(20 23 31 / .66);
  --border:      rgb(255 255 255 / .1);
  --border-strong: rgb(255 255 255 / .2);
  --text:        #F3F4F8;
  --text-2:      #C7CBD8;
  --text-muted:  #9AA1B4;
  --text-faint:  #767D91;
  --primary:     #FF5A5F;
  --primary-hov: #FF7A7E;
  --on-primary:  #180405;
  --accent:      #FFB45C;
  --link:        #FF7A7E;
  --success:     #35D0A0;
  --warning:     #F0B44A;
  --focus:       #6FB7FF;
  --shadow-1: 0 1px 2px rgb(0 0 0 / .5);
  --shadow-2: 0 6px 18px rgb(0 0 0 / .5), 0 18px 44px rgb(0 0 0 / .42);
  --shadow-3: 0 12px 30px rgb(0 0 0 / .58), 0 36px 88px rgb(0 0 0 / .5);
  --glow:     0 12px 44px rgb(255 90 95 / .3);
  --hairline: rgb(255 255 255 / .07);
  --logo-dark-display: none;
  --logo-light-display: block;
}

@media (prefers-color-scheme: dark) {
  :root:not([data-theme]) {
    --bg: #08090C; --bg-canvas: #0B0D12; --bg-sunk: #06070A;
    --surface: #101218; --surface-2: #171A22; --surface-glass: rgb(20 23 31 / .66);
    --border: rgb(255 255 255 / .1); --border-strong: rgb(255 255 255 / .2);
    --text: #F3F4F8; --text-2: #C7CBD8; --text-muted: #9AA1B4; --text-faint: #767D91;
    --primary: #FF5A5F; --primary-hov: #FF7A7E; --on-primary: #180405;
    --accent: #FFB45C; --link: #FF7A7E; --success: #35D0A0; --warning: #F0B44A;
    --focus: #6FB7FF;
    --shadow-1: 0 1px 2px rgb(0 0 0 / .5);
    --shadow-2: 0 6px 18px rgb(0 0 0 / .5), 0 18px 44px rgb(0 0 0 / .42);
    --shadow-3: 0 12px 30px rgb(0 0 0 / .58), 0 36px 88px rgb(0 0 0 / .5);
    --glow: 0 12px 44px rgb(255 90 95 / .3);
    --hairline: rgb(255 255 255 / .07);
    --logo-dark-display: none; --logo-light-display: block;
  }
}

/* ---------------------------------------------------------------- 3. RESET */
*, *::before, *::after { box-sizing: border-box; }
* { margin: 0; }
html {
  -webkit-text-size-adjust: 100%;
  scroll-behavior: smooth;
  scroll-padding-top: calc(var(--nav-h) + 1.25rem);
}
body {
  font-family: var(--font-body);
  font-size: var(--fs-body);
  line-height: 1.65;
  color: var(--text);
  background: var(--bg);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  font-synthesis-weight: none;
  text-rendering: optimizeLegibility;
  overflow-x: clip;
}
img, video, canvas { display: block; max-width: 100%; height: auto; }
svg { display: block; }
/* Every inline icon defaults to 20px; component rules below override freely. */
:where(svg:not([width])) { width: 20px; height: 20px; flex: none; }
input, button, textarea, select { font: inherit; color: inherit; }
button { background: none; border: 0; cursor: pointer; }
a { color: var(--link); text-decoration-thickness: 1px; text-underline-offset: .18em; }
ul, ol { list-style: none; padding: 0; }
h1, h2, h3, h4 {
  font-family: var(--font-display);
  font-weight: 700;
  line-height: 1.06;
  letter-spacing: -.028em;
  text-wrap: balance;
}
p { text-wrap: pretty; }
:target { scroll-margin-top: calc(var(--nav-h) + 1.5rem); }

::selection { background: var(--brand-red); color: #fff; }

:where(a, button, input, textarea, select, summary, [tabindex]):focus-visible {
  outline: 3px solid var(--focus);
  outline-offset: 3px;
  border-radius: 6px;
}

.skip-link {
  position: absolute; left: var(--s-4); top: -100px; z-index: 200;
  background: var(--primary); color: var(--on-primary);
  padding: .8rem 1.25rem; border-radius: var(--r-sm); font-weight: 600;
  transition: top var(--t-fast) var(--ease-out);
}
.skip-link:focus { top: var(--s-4); }

.visually-hidden {
  position: absolute !important; width: 1px; height: 1px;
  padding: 0; margin: -1px; overflow: hidden;
  clip: rect(0 0 0 0); clip-path: inset(50%); white-space: nowrap; border: 0;
}

/* ---------------------------------------------------------------- 4. LAYOUT */
.wrap { width: 100%; max-width: var(--maxw); margin-inline: auto; padding-inline: var(--gutter); }
.wrap--narrow { max-width: 880px; }
.section { padding-block: var(--section-y); position: relative; }
.section--canvas { background: var(--bg-canvas); }
.section--sunk   { background: var(--bg-sunk); }
.section--dark {
  background: #08090C;
  --text: #F3F4F8; --text-2: #C7CBD8; --text-muted: #9AA1B4; --text-faint: #767D91;
  --surface: #101218; --surface-2: #171A22; --surface-glass: rgb(20 23 31 / .6);
  --border: rgb(255 255 255 / .1); --border-strong: rgb(255 255 255 / .22);
  --primary: #FF5A5F; --primary-hov: #FF7A7E; --on-primary: #180405;
  --accent: #FFB45C; --link: #FF7A7E; --hairline: rgb(255 255 255 / .08);
  --logo-dark-display: none; --logo-light-display: block;
  color: var(--text);
}
.section--dark h1, .section--dark h2, .section--dark h3 { color: var(--text); }

/* soft transition between adjacent bands */
.section--fade-top::before,
.section--fade-bottom::after {
  content: ''; position: absolute; inset-inline: 0; height: 120px;
  pointer-events: none;
}
.section--fade-top::before { top: 0; background: linear-gradient(to bottom, var(--bg), transparent); }
.section--fade-bottom::after { bottom: 0; background: linear-gradient(to top, var(--bg), transparent); }

.grid { display: grid; gap: clamp(1rem, 2.2vw, 1.75rem); }
.grid--2 { grid-template-columns: repeat(auto-fit, minmax(min(100%, 320px), 1fr)); }
.grid--3 { grid-template-columns: repeat(auto-fit, minmax(min(100%, 280px), 1fr)); }
.grid--4 { grid-template-columns: repeat(auto-fit, minmax(min(100%, 220px), 1fr)); }

/* ---------------------------------------------------------------- 5. TYPE UTILS */
.eyebrow {
  display: inline-flex; align-items: center; gap: .55rem;
  font-family: var(--font-body); font-size: var(--fs-eyebrow); font-weight: 600;
  letter-spacing: .13em; text-transform: uppercase; color: var(--text-muted);
  margin-bottom: var(--s-4);
}
.eyebrow::before {
  content: ''; width: 26px; height: 2px; border-radius: 2px;
  background: var(--grad-filament);
}
.display-xl { font-size: var(--fs-display-xl); letter-spacing: -.042em; line-height: .97; }
.display    { font-size: var(--fs-display);    letter-spacing: -.036em; }
h2, .h2     { font-size: var(--fs-h2); }
h3, .h3     { font-size: var(--fs-h3); letter-spacing: -.018em; line-height: 1.25; }
.lead {
  font-size: var(--fs-lead); line-height: 1.6; color: var(--text-2);
  max-width: 60ch; font-weight: 400;
}
.muted { color: var(--text-muted); }
.text-grad {
  background: var(--grad-filament);
  -webkit-background-clip: text; background-clip: text; color: transparent;
  /* keep a readable fallback if background-clip is unsupported */
  padding-inline: .04em; margin-inline: -.04em;
}
@supports not ((-webkit-background-clip: text) or (background-clip: text)) {
  .text-grad { color: var(--primary); background: none; }
}

.section-head { max-width: 760px; margin-bottom: clamp(2rem, 3.6vw, 3rem); }
.section-head--center { margin-inline: auto; text-align: center; }
.section-head--center .eyebrow { justify-content: center; }
.section-head .lead { margin-top: var(--s-5); }
.section-head--center .lead { margin-inline: auto; }

/* ---------------------------------------------------------------- 6. BUTTONS */
.btn {
  --btn-bg: var(--surface); --btn-fg: var(--text); --btn-bd: var(--border-strong);
  position: relative; display: inline-flex; align-items: center; justify-content: center;
  gap: .55rem; padding: .92rem 1.6rem; min-height: 50px;
  font-family: var(--font-body); font-size: var(--fs-sm); font-weight: 600;
  letter-spacing: -.008em; line-height: 1;
  border-radius: var(--r-pill); border: 1px solid var(--btn-bd);
  background: var(--btn-bg); color: var(--btn-fg);
  text-decoration: none; cursor: pointer; overflow: hidden; isolation: isolate;
  transition: transform var(--t-fast) var(--ease-out),
              box-shadow var(--t-mid) var(--ease-out),
              background-color var(--t-fast) var(--ease-out),
              border-color var(--t-fast) var(--ease-out),
              color var(--t-fast) var(--ease-out);
  white-space: nowrap;
}
.btn svg { width: 18px; height: 18px; flex: none; }
.btn:hover { transform: translateY(-2px); }
.btn:active { transform: translateY(0) scale(.985); }

/* Solid primary. The hover treatment is a light sheen + glow rather than a
   gradient wash — a gradient into the warm end would drop the label below AA. */
.btn--primary {
  --btn-bg: var(--primary); --btn-fg: var(--on-primary); --btn-bd: transparent;
  box-shadow: var(--shadow-2);
}
.btn--primary::after {
  content: ''; position: absolute; inset: 0; pointer-events: none;
  background: linear-gradient(160deg, rgb(255 255 255 / .26), rgb(255 255 255 / 0) 52%);
  opacity: .5; transition: opacity var(--t-mid) var(--ease-out);
}
.btn--primary:hover { --btn-bg: var(--primary-hov); box-shadow: var(--glow), var(--shadow-2); }
.btn--primary:hover::after { opacity: 1; }

.btn--ghost { --btn-bg: transparent; --btn-fg: var(--text); --btn-bd: var(--border-strong); }
.btn--ghost:hover { --btn-bg: var(--surface-2); --btn-bd: var(--text-faint); }

.btn--glass {
  --btn-bg: rgb(255 255 255 / .09); --btn-fg: #fff; --btn-bd: rgb(255 255 255 / .26);
}
.btn--glass:hover { --btn-bg: rgb(255 255 255 / .14); --btn-bd: rgb(255 255 255 / .45); }

.btn--wa { --btn-bg: #0F7A3D; --btn-fg: #fff; --btn-bd: transparent; }
.btn--wa:hover { --btn-bg: #0C6633; box-shadow: 0 12px 34px rgb(15 122 61 / .38); }

.btn--lg { padding: 1.08rem 2rem; min-height: 58px; font-size: 1rem; }
.btn--block { width: 100%; }

/* ripple */
.btn .ripple {
  position: absolute; border-radius: 50%; transform: scale(0);
  background: rgb(255 255 255 / .42); pointer-events: none;
  animation: ripple .62s var(--ease-out) forwards; z-index: 1;
}
@keyframes ripple { to { transform: scale(2.6); opacity: 0; } }

.btn-row { display: flex; flex-wrap: wrap; gap: var(--s-3); align-items: center; }

/* ---------------------------------------------------------------- 7. NAV */
.scroll-progress {
  position: fixed; inset-inline: 0; top: 0; height: 2px; z-index: 120;
  background: var(--grad-filament);
  transform: scaleX(var(--p, 0)); transform-origin: 0 50%;
  transition: transform .1s linear; pointer-events: none;
}
.site-header {
  position: fixed; inset-inline: 0; top: 0; z-index: 100;
  height: var(--nav-h);
  display: flex; align-items: center;
  transition: background-color var(--t-mid) var(--ease-out),
              box-shadow var(--t-mid) var(--ease-out),
              border-color var(--t-mid) var(--ease-out);
  border-bottom: 1px solid transparent;
}
.site-header.is-stuck {
  background: var(--surface-glass);
  backdrop-filter: blur(18px) saturate(180%);
  -webkit-backdrop-filter: blur(18px) saturate(180%);
  border-bottom-color: var(--hairline);
  box-shadow: var(--shadow-1);
}
/* pages with a dark hero start with light nav ink */
body[data-nav='over-dark'] .site-header:not(.is-stuck) {
  --text: #fff; --text-2: rgb(255 255 255 / .82); --text-muted: rgb(255 255 255 / .7);
  --border-strong: rgb(255 255 255 / .28);
  --logo-dark-display: none; --logo-light-display: block;
}
.nav-inner {
  width: 100%; max-width: var(--maxw); margin-inline: auto; padding-inline: var(--gutter);
  display: flex; align-items: center; gap: var(--s-5);
}
.brand { display: flex; align-items: center; gap: .7rem; text-decoration: none; flex: none;
         padding-block: .65rem; }   /* 23px logo -> 44px hit area */
.brand img { width: 128px; height: auto; }
.brand .logo-dark  { display: var(--logo-dark-display); }
.brand .logo-light { display: var(--logo-light-display); }
.brand-tag {
  font-family: var(--font-display); font-size: .74rem; font-weight: 600;
  letter-spacing: .04em; color: var(--text-muted); white-space: nowrap;
  padding-left: .7rem; border-left: 1px solid var(--border);
}
.nav { margin-inline-start: auto; display: flex; align-items: center; gap: .15rem; }
.nav a:not(.btn) {
  position: relative; display: inline-block; padding: .55rem .85rem;
  font-size: var(--fs-sm); font-weight: 500; color: var(--text-2);
  text-decoration: none; border-radius: var(--r-sm);
  transition: color var(--t-fast) var(--ease-out), background-color var(--t-fast) var(--ease-out);
}
.nav a:not(.btn):hover { color: var(--text); background: color-mix(in srgb, var(--text) 7%, transparent); }
.nav a:not(.btn)[aria-current='page'] { color: var(--text); font-weight: 600; }
.nav a:not(.btn)[aria-current='page']::after {
  content: ''; position: absolute; left: .85rem; right: .85rem; bottom: .3rem;
  height: 2px; border-radius: 2px; background: var(--grad-filament);
}
.nav-actions { display: flex; align-items: center; gap: .5rem; flex: none; }

.theme-toggle {
  width: 42px; height: 42px; display: grid; place-items: center;
  border-radius: var(--r-pill); border: 1px solid var(--border);
  color: var(--text-2);
  transition: background-color var(--t-fast) var(--ease-out), color var(--t-fast) var(--ease-out),
              transform var(--t-fast) var(--ease-out);
}
.theme-toggle:hover { background: color-mix(in srgb, var(--text) 8%, transparent); color: var(--text); transform: rotate(-18deg); }
.theme-toggle svg { width: 19px; height: 19px; }
.theme-toggle .i-sun { display: none; }
:root[data-theme='dark'] .theme-toggle .i-sun,
body[data-nav='over-dark'] .site-header:not(.is-stuck) .theme-toggle .i-sun { display: block; }
:root[data-theme='dark'] .theme-toggle .i-moon,
body[data-nav='over-dark'] .site-header:not(.is-stuck) .theme-toggle .i-moon { display: none; }
@media (prefers-color-scheme: dark) {
  :root:not([data-theme]) .theme-toggle .i-sun { display: block; }
  :root:not([data-theme]) .theme-toggle .i-moon { display: none; }
}

.nav-toggle {
  display: none; width: 44px; height: 44px; place-items: center;
  border-radius: var(--r-pill); border: 1px solid var(--border); color: var(--text);
}
.nav-toggle .bars { display: block; width: 18px; height: 12px; position: relative; }
.nav-toggle .bars i {
  position: absolute; left: 0; width: 100%; height: 2px; border-radius: 2px;
  background: currentColor; transition: transform var(--t-mid) var(--ease-out), opacity var(--t-fast);
}
.nav-toggle .bars i:nth-child(1) { top: 0; }
.nav-toggle .bars i:nth-child(2) { top: 5px; }
.nav-toggle .bars i:nth-child(3) { top: 10px; }
.nav-toggle[aria-expanded='true'] .bars i:nth-child(1) { transform: translateY(5px) rotate(45deg); }
.nav-toggle[aria-expanded='true'] .bars i:nth-child(2) { opacity: 0; }
.nav-toggle[aria-expanded='true'] .bars i:nth-child(3) { transform: translateY(-5px) rotate(-45deg); }

@media (max-width: 940px) {
  .brand-tag { display: none; }
  .nav-toggle { display: grid; }
  .nav {
    position: fixed; inset: var(--nav-h) 0 auto; margin: 0;
    flex-direction: column; align-items: stretch; gap: .2rem;
    padding: var(--s-5) var(--gutter) var(--s-6);
    background: var(--surface-glass);
    backdrop-filter: blur(22px) saturate(180%); -webkit-backdrop-filter: blur(22px) saturate(180%);
    border-bottom: 1px solid var(--hairline);
    box-shadow: var(--shadow-3);
    transform: translateY(-8px); opacity: 0; visibility: hidden;
    transition: opacity var(--t-mid) var(--ease-out), transform var(--t-mid) var(--ease-out),
                visibility var(--t-mid);
    max-height: calc(100dvh - var(--nav-h)); overflow-y: auto;
  }
  .nav[data-open='true'] { transform: translateY(0); opacity: 1; visibility: visible; }
  .nav a:not(.btn) { padding: .9rem 1rem; font-size: 1.05rem; color: var(--text); }
  .nav a:not(.btn)[aria-current='page']::after { left: 1rem; right: auto; width: 22px; bottom: .55rem; }
  .nav .nav-cta { margin-top: var(--s-4); justify-content: center; }
  body[data-nav='over-dark'] .site-header:not(.is-stuck) .nav {
    --text: var(--text); background: var(--surface-glass);
  }
}

/* ---------------------------------------------------------------- 8. HERO */
.hero {
  position: relative; isolation: isolate; overflow: hidden;
  background: #06070A; color: #fff;
  padding-block: calc(var(--nav-h) + clamp(3.5rem, 9vw, 7rem)) clamp(4rem, 9vw, 7.5rem);
  min-height: min(92svh, 900px);
  display: flex; align-items: center;
}
.hero::after {                       /* vignette + join to next section */
  content: ''; position: absolute; inset: 0; z-index: 1; pointer-events: none;
  background:
    radial-gradient(120% 80% at 50% 0%, transparent 40%, rgb(0 0 0 / .5) 100%),
    linear-gradient(to bottom, transparent 76%, #06070A 100%);
}
.hero > .wrap { position: relative; z-index: 2; }

/* Animated aurora. Deliberately NO filter:blur() — blurring a 50vw layer every
   frame pegs the compositor. Soft radial-gradient stops give the same look for
   roughly nothing, and only `transform` is animated. */
.hero-aurora { position: absolute; inset: -25%; z-index: 0; opacity: .95; pointer-events: none; }
.hero-aurora span {
  position: absolute; display: block; border-radius: 50%;
  will-change: transform; transform: translate3d(0, 0, 0);
}
.hero-aurora span:nth-child(1) {
  width: 78vw; height: 78vw; left: -14%; top: -6%;
  background: radial-gradient(closest-side, rgb(255 154 31 / .5), rgb(255 154 31 / .22) 42%, rgb(255 154 31 / 0) 72%);
  animation: drift-a 26s var(--ease-io) infinite alternate;
}
.hero-aurora span:nth-child(2) {
  width: 68vw; height: 68vw; right: -12%; top: 10%;
  background: radial-gradient(closest-side, rgb(237 28 34 / .46), rgb(237 28 34 / .2) 42%, rgb(237 28 34 / 0) 72%);
  animation: drift-b 32s var(--ease-io) infinite alternate;
}
.hero-aurora span:nth-child(3) {
  width: 62vw; height: 62vw; left: 26%; bottom: -22%;
  background: radial-gradient(closest-side, rgb(46 155 230 / .38), rgb(46 155 230 / .16) 44%, rgb(46 155 230 / 0) 74%);
  animation: drift-c 29s var(--ease-io) infinite alternate;
}
@keyframes drift-a { to { transform: translate3d(9%, 7%, 0) scale(1.12); } }
@keyframes drift-b { to { transform: translate3d(-8%, 9%, 0) scale(1.08); } }
@keyframes drift-c { to { transform: translate3d(6%, -9%, 0) scale(1.14); } }

/* fine grid texture */
.hero-grid {
  position: absolute; inset: 0; z-index: 0; opacity: .3;
  background-image:
    linear-gradient(rgb(255 255 255 / .05) 1px, transparent 1px),
    linear-gradient(90deg, rgb(255 255 255 / .05) 1px, transparent 1px);
  background-size: 68px 68px;
  mask-image: radial-gradient(110% 78% at 50% 34%, #000 30%, transparent 78%);
  -webkit-mask-image: radial-gradient(110% 78% at 50% 34%, #000 30%, transparent 78%);
}
/* light sweep */
.hero-beam {
  position: absolute; top: -40%; left: -30%; width: 60%; height: 190%; z-index: 0;
  background: linear-gradient(100deg, transparent, rgb(255 255 255 / .07) 46%, transparent);
  transform: rotate(14deg); animation: sweep 11s var(--ease-io) infinite;
}
@keyframes sweep {
  0%, 100% { transform: translateX(-30%) rotate(14deg); opacity: 0; }
  40%      { opacity: 1; }
  70%      { transform: translateX(180%) rotate(14deg); opacity: 0; }
}

.hero-layout {
  display: grid; gap: clamp(2.5rem, 5vw, 4.5rem);
  grid-template-columns: minmax(0, 1.08fr) minmax(0, .92fr);
  align-items: center;
}
@media (max-width: 1000px) { .hero-layout { grid-template-columns: 1fr; } }

.hero-badge {
  display: inline-flex; align-items: center; gap: .6rem;
  padding: .46rem .95rem .46rem .55rem; margin-bottom: var(--s-5);
  border-radius: var(--r-pill); border: 1px solid rgb(255 255 255 / .17);
  background: rgb(255 255 255 / .07);
  font-size: var(--fs-xs); font-weight: 500; letter-spacing: .01em; color: rgb(255 255 255 / .88);
  line-height: 1.3;
}
.hero-badge svg { width: 13px; height: 13px; }
.hero-badge b {
  display: inline-flex; align-items: center; gap: .34rem;
  padding: .2rem .58rem; border-radius: var(--r-pill);
  background: var(--grad-filament); color: #0B0102; font-weight: 700; font-size: .72rem;
  letter-spacing: .02em;
}
.hero h1 { color: #fff; margin-bottom: var(--s-5); }
.hero h1 .text-grad { display: inline-block; }
.hero-sub {
  font-size: var(--fs-lead); line-height: 1.58; color: rgb(255 255 255 / .74);
  max-width: 54ch; margin-bottom: var(--s-6);
}
.hero .btn-row { margin-bottom: var(--s-6); }

.hero-proof { display: flex; flex-wrap: wrap; gap: 1rem 1.9rem; align-items: center; }
.hero-proof li {
  display: flex; align-items: center; gap: .5rem;
  font-size: var(--fs-xs); color: rgb(255 255 255 / .7); font-weight: 500;
}
.hero-proof svg { width: 16px; height: 16px; color: var(--warm-400); flex: none; }

/* floating glass product stack */
.hero-stack { position: relative; aspect-ratio: 4 / 4.4; }
@media (max-width: 1000px) { .hero-stack { aspect-ratio: 16 / 11; max-width: 560px; margin-inline: auto; } }
@media (max-width: 560px) { .hero-stack { display: none; } }
.float-card {
  position: absolute; border-radius: var(--r-lg); overflow: hidden;
  border: 1px solid rgb(255 255 255 / .16);
  background: rgb(18 20 26 / .55);
  box-shadow: 0 26px 70px rgb(0 0 0 / .58);
  will-change: transform;
}
.float-card img { width: 100%; height: 100%; object-fit: cover; }
.float-card::after {
  content: ''; position: absolute; inset: 0; background: var(--grad-sheen); pointer-events: none;
}
.float-card--a { width: 62%; left: 0;    top: 4%;   animation: bob 8s var(--ease-io) infinite alternate; }
.float-card--b { width: 47%; right: 2%;  top: 30%;  animation: bob 6.6s var(--ease-io) .7s infinite alternate-reverse; z-index: 3; }
.float-card--c { width: 43%; left: 12%;  bottom: 2%; animation: bob 7.4s var(--ease-io) 1.3s infinite alternate; z-index: 2; }
@keyframes bob { to { transform: translate3d(0, -16px, 0) rotate(1.1deg); } }

.hero-chip {
  position: absolute; right: 0; bottom: 16%; z-index: 4;
  display: flex; align-items: center; gap: .7rem;
  padding: .7rem .95rem; border-radius: var(--r-md);
  background: rgb(12 14 20 / .88); border: 1px solid rgb(255 255 255 / .16);
  box-shadow: 0 18px 44px rgb(0 0 0 / .5);
  animation: bob 9s var(--ease-io) .4s infinite alternate-reverse;
}
.hero-chip .dot {
  width: 9px; height: 9px; border-radius: 50%; background: #35D0A0; flex: none;
  box-shadow: 0 0 0 0 rgb(53 208 160 / .6); animation: pulse 2.4s infinite;
}
@keyframes pulse { 70% { box-shadow: 0 0 0 11px rgb(53 208 160 / 0); } 100% { box-shadow: 0 0 0 0 rgb(53 208 160 / 0); } }
.hero-chip span { font-size: var(--fs-xs); color: rgb(255 255 255 / .9); font-weight: 500; line-height: 1.35; }

.scroll-cue {
  position: absolute; left: 50%; bottom: 1.6rem; z-index: 3;
  translate: -50% 0; display: grid; place-items: center; gap: .5rem;
  font-size: .6875rem; letter-spacing: .18em; text-transform: uppercase;
  color: rgb(255 255 255 / .45); text-decoration: none;
}
.scroll-cue i {
  display: block; width: 1px; height: 34px;
  background: linear-gradient(to bottom, rgb(255 255 255 / .5), transparent);
  animation: cue 2.4s var(--ease-io) infinite;
}
@keyframes cue { 0%, 100% { transform: scaleY(.35); opacity: .3; } 50% { transform: scaleY(1); opacity: 1; } }
@media (max-width: 1000px) { .scroll-cue { display: none; } }

/* compact hero for interior pages */
.hero--page { min-height: auto; padding-block: calc(var(--nav-h) + clamp(3rem, 7vw, 5.5rem)) clamp(3rem, 7vw, 5rem); }
.hero--page .hero-layout { grid-template-columns: 1fr; }
.breadcrumb { display: flex; flex-wrap: wrap; gap: .45rem; align-items: center; margin-bottom: var(--s-5); font-size: var(--fs-xs); }
.breadcrumb a { color: rgb(255 255 255 / .62); text-decoration: none; }
.breadcrumb a:hover { color: #fff; text-decoration: underline; }
.breadcrumb li { display: flex; align-items: center; gap: .45rem; color: rgb(255 255 255 / .5); }
.breadcrumb li + li::before { content: '/'; color: rgb(255 255 255 / .28); }
.breadcrumb [aria-current] { color: rgb(255 255 255 / .9); }

/* ---------------------------------------------------------------- 9. MARQUEE / TRUST */
.trust-strip { border-block: 1px solid var(--hairline); background: var(--bg-canvas); padding-block: var(--s-5); overflow: hidden; }
.marquee { display: flex; gap: 0; overflow: hidden; mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent); -webkit-mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent); }
.marquee ul { display: flex; gap: clamp(1.6rem, 3.6vw, 3.2rem); padding-right: clamp(1.6rem, 3.6vw, 3.2rem); flex: none; animation: scrollx 38s linear infinite; }
.marquee:hover ul { animation-play-state: paused; }
@keyframes scrollx { to { transform: translateX(-100%); } }
.marquee li {
  display: flex; align-items: center; gap: .6rem; white-space: nowrap;
  font-size: var(--fs-sm); font-weight: 500; color: var(--text-muted);
}
.marquee svg { width: 17px; height: 17px; color: var(--primary); flex: none; }

/* ---------------------------------------------------------------- 10. CARDS */
.card {
  position: relative; display: flex; flex-direction: column;
  padding: clamp(1.5rem, 2.4vw, 2rem);
  border-radius: var(--r-lg); border: 1px solid var(--border);
  background: var(--surface); box-shadow: var(--shadow-1);
  overflow: hidden; isolation: isolate;
  transition: transform var(--t-mid) var(--ease-out), box-shadow var(--t-mid) var(--ease-out),
              border-color var(--t-mid) var(--ease-out);
}
/* cursor-tracking spotlight (set by JS: --mx/--my) */
.card::before {
  content: ''; position: absolute; inset: -1px; z-index: -1; border-radius: inherit;
  background: radial-gradient(320px circle at var(--mx, 50%) var(--my, 0%),
              color-mix(in srgb, var(--primary) 16%, transparent), transparent 62%);
  opacity: 0; transition: opacity var(--t-mid) var(--ease-out);
}
.card:hover { transform: translateY(-5px); box-shadow: var(--shadow-3); border-color: var(--border-strong); }
.card:hover::before { opacity: 1; }

.card--glass {
  background: var(--surface-glass);
}
.card--feature { padding: clamp(1.75rem, 2.8vw, 2.4rem); }

.card-icon {
  width: 50px; height: 50px; display: grid; place-items: center; flex: none;
  border-radius: 14px; margin-bottom: var(--s-5);
  background: color-mix(in srgb, var(--primary) 11%, transparent);
  color: var(--primary);
  transition: transform var(--t-mid) var(--ease-out), background-color var(--t-mid) var(--ease-out);
}
.card-icon svg { width: 23px; height: 23px; }
.card:hover .card-icon { transform: translateY(-2px) scale(1.07) rotate(-4deg); }
/* Cycle warm / cool / red so a grid of cards reads as a set, not a repetition. */
[data-stagger] > *:nth-child(3n+2) .card-icon,
.bento > *:nth-child(3n+2) .card-icon {
  background: color-mix(in srgb, var(--cool-500) 14%, transparent); color: var(--cool-600);
}
[data-stagger] > *:nth-child(3n+3) .card-icon,
.bento > *:nth-child(3n+3) .card-icon {
  background: color-mix(in srgb, var(--warm-500) 17%, transparent); color: var(--accent);
}
:root[data-theme='dark'] [data-stagger] > *:nth-child(3n+2) .card-icon,
:root[data-theme='dark'] .bento > *:nth-child(3n+2) .card-icon,
.section--dark [data-stagger] > *:nth-child(3n+2) .card-icon { color: var(--cool-400); }
@media (prefers-color-scheme: dark) {
  :root:not([data-theme]) [data-stagger] > *:nth-child(3n+2) .card-icon,
  :root:not([data-theme]) .bento > *:nth-child(3n+2) .card-icon { color: var(--cool-400); }
}
.card h3 { margin-bottom: .6rem; }
.card p { color: var(--text-muted); font-size: var(--fs-sm); }

/* bento */
.bento { display: grid; gap: clamp(1rem, 1.8vw, 1.5rem); grid-template-columns: repeat(6, 1fr); }
.bento > * { grid-column: span 2; }
.bento > .span-3 { grid-column: span 3; }
.bento > .span-4 { grid-column: span 4; }
.bento > .span-6 { grid-column: span 6; }
@media (max-width: 900px) { .bento { grid-template-columns: repeat(2, 1fr); } .bento > * { grid-column: span 1; } .bento > .span-3, .bento > .span-4, .bento > .span-6 { grid-column: span 2; } }
@media (max-width: 540px) { .bento { grid-template-columns: 1fr; } .bento > *, .bento > .span-3, .bento > .span-4, .bento > .span-6 { grid-column: span 1; } }

/* ---------------------------------------------------------------- 11. PRODUCT CARDS */
.product-grid { display: grid; gap: clamp(1rem, 2vw, 1.6rem); grid-template-columns: repeat(auto-fill, minmax(min(100%, 268px), 1fr)); }
.product-card {
  display: flex; flex-direction: column; height: 100%;
  border-radius: var(--r-lg); border: 1px solid var(--border);
  background: var(--surface); overflow: hidden; isolation: isolate;
  box-shadow: var(--shadow-1); position: relative;
  transition: transform var(--t-mid) var(--ease-out), box-shadow var(--t-mid) var(--ease-out),
              border-color var(--t-mid) var(--ease-out);
}
.product-card:hover { transform: translateY(-6px); box-shadow: var(--shadow-3); border-color: var(--border-strong); }
.product-media {
  position: relative; aspect-ratio: 4 / 3; overflow: hidden;
  background: var(--surface-2); border-bottom: 1px solid var(--hairline);
}
.product-media img { width: 100%; height: 100%; object-fit: cover; transition: transform .7s var(--ease-out); }
.product-card:hover .product-media img { transform: scale(1.055); }
.product-zoom {
  position: absolute; right: .7rem; bottom: .7rem; width: 44px; height: 44px;
  display: grid; place-items: center; border-radius: var(--r-pill);
  background: rgb(10 12 18 / .8); color: #fff; border: 1px solid rgb(255 255 255 / .2);
  opacity: 0; transform: translateY(6px);
  transition: opacity var(--t-mid) var(--ease-out), transform var(--t-mid) var(--ease-out);
}
.product-zoom svg { width: 17px; height: 17px; }
.product-card:hover .product-zoom, .product-zoom:focus-visible { opacity: 1; transform: translateY(0); }
.badge {
  position: absolute; left: .7rem; top: .7rem; z-index: 2;
  display: inline-flex; align-items: center; gap: .32rem;
  padding: .3rem .62rem; border-radius: var(--r-pill);
  font-size: .6875rem; font-weight: 700; letter-spacing: .04em; text-transform: uppercase;
  background: var(--grad-filament); color: #0B0102;
  box-shadow: 0 4px 14px rgb(237 28 34 / .3);
}
.badge--cool { background: linear-gradient(100deg, var(--cool-400), var(--cool-500)); color: #04202f; box-shadow: 0 4px 14px rgb(46 155 230 / .3); }
.badge--neutral { background: var(--surface-2); color: var(--text-muted); box-shadow: none; border: 1px solid var(--border); }
.product-body { display: flex; flex-direction: column; flex: 1; padding: 1.15rem 1.15rem 1.25rem; gap: .55rem; }
.product-body h3 { font-size: 1.02rem; line-height: 1.3; letter-spacing: -.014em; }
.product-spec { display: flex; flex-wrap: wrap; gap: .35rem; margin-top: .1rem; }
.product-spec li {
  font-size: .72rem; font-weight: 500; color: var(--text-muted);
  padding: .22rem .55rem; border-radius: var(--r-pill);
  background: var(--surface-2); border: 1px solid var(--hairline);
}
.product-price {
  margin-top: auto; padding-top: .75rem;
  font-family: var(--font-display); font-size: 1.06rem; font-weight: 700;
  letter-spacing: -.02em; color: var(--text);
}
.product-price small { display: block; font-family: var(--font-body); font-size: .72rem; font-weight: 500; color: var(--text-faint); letter-spacing: 0; margin-bottom: .1rem; }
.product-card .btn { margin-top: .85rem; }

/* filter chips */
.filter-bar { display: flex; flex-wrap: wrap; gap: .5rem; margin-bottom: clamp(1.75rem, 3vw, 2.5rem); }
.chip {
  padding: .58rem 1.05rem; border-radius: var(--r-pill);
  border: 1px solid var(--border); background: var(--surface);
  font-size: var(--fs-sm); font-weight: 500; color: var(--text-2);
  transition: all var(--t-fast) var(--ease-out);
}
.chip:hover { border-color: var(--border-strong); color: var(--text); transform: translateY(-1px); }
.chip[aria-pressed='true'] { background: var(--text); color: var(--bg); border-color: var(--text); font-weight: 600; }
.chip[aria-pressed='true'] .muted { color: color-mix(in srgb, var(--bg) 78%, var(--text)); }

/* ---------------------------------------------------------------- 12. STATS */
.stat-grid { display: grid; gap: clamp(1rem, 2vw, 1.5rem); grid-template-columns: repeat(auto-fit, minmax(min(100%, 200px), 1fr)); }
.stat {
  padding: clamp(1.4rem, 2.4vw, 2rem); border-radius: var(--r-lg);
  border: 1px solid var(--border); background: var(--surface);
  position: relative; overflow: hidden;
}
.stat::after {
  content: ''; position: absolute; left: 0; top: 0; width: 100%; height: 2px;
  background: var(--grad-filament); transform: scaleX(0); transform-origin: 0 50%;
  transition: transform .8s var(--ease-out);
}
.stat.is-visible::after { transform: scaleX(1); }
.stat-num {
  font-family: var(--font-display); font-weight: 700;
  font-size: clamp(2.4rem, 4.6vw, 3.6rem); line-height: 1;
  letter-spacing: -.04em; color: var(--text); margin-bottom: .5rem;
  display: flex; align-items: baseline; gap: .06em;
}
.stat-num .suffix { background: var(--grad-filament); -webkit-background-clip: text; background-clip: text; color: transparent; }
.stat-label { font-size: var(--fs-sm); font-weight: 600; color: var(--text); margin-bottom: .2rem; }
.stat-note  { font-size: var(--fs-xs); color: var(--text-muted); }

/* ---------------------------------------------------------------- 13. PROCESS / TIMELINE */
.process { position: relative; display: grid; gap: clamp(1rem, 2vw, 1.4rem); }
.process-step {
  display: grid; grid-template-columns: auto 1fr; gap: clamp(1.1rem, 2.4vw, 2rem);
  padding: clamp(1.3rem, 2.2vw, 1.9rem);
  border-radius: var(--r-lg); border: 1px solid var(--border);
  background: var(--surface); position: relative; overflow: hidden;
  transition: transform var(--t-mid) var(--ease-out), border-color var(--t-mid) var(--ease-out),
              box-shadow var(--t-mid) var(--ease-out);
}
.process-step:hover { transform: translateX(5px); border-color: var(--border-strong); box-shadow: var(--shadow-2); }
.process-num {
  display: grid; place-items: center; width: 54px; height: 54px; flex: none;
  border-radius: var(--r-md); font-family: var(--font-display); font-weight: 700; font-size: 1.15rem;
  background: color-mix(in srgb, var(--primary) 11%, transparent); color: var(--primary);
  letter-spacing: -.02em;
}
.process-step:nth-child(even) .process-num { background: color-mix(in srgb, var(--cool-500) 14%, transparent); color: var(--cool-600); }
:root[data-theme='dark'] .process-step:nth-child(even) .process-num,
.section--dark .process-step:nth-child(even) .process-num { color: var(--cool-400); }
.process-step h3 { margin-bottom: .45rem; }
.process-step p { color: var(--text-muted); font-size: var(--fs-sm); max-width: 62ch; }
@media (max-width: 560px) { .process-step { grid-template-columns: 1fr; } .process-num { width: 46px; height: 46px; } }

/* ---------------------------------------------------------------- 14. GALLERY */
.gallery { display: grid; gap: clamp(.6rem, 1.4vw, 1rem); grid-template-columns: repeat(4, 1fr); }
.gallery button {
  position: relative; border-radius: var(--r-md); overflow: hidden; padding: 0;
  border: 1px solid var(--border); background: var(--surface-2); aspect-ratio: 3 / 2;
  transition: transform var(--t-mid) var(--ease-out), box-shadow var(--t-mid) var(--ease-out);
}
.gallery button:hover { transform: translateY(-4px) scale(1.012); box-shadow: var(--shadow-3); z-index: 2; }
.gallery img { width: 100%; height: 100%; object-fit: cover; transition: transform .7s var(--ease-out); }
.gallery button:hover img { transform: scale(1.07); }
.gallery button::after {
  content: ''; position: absolute; inset: 0;
  background: linear-gradient(to top, rgb(6 7 10 / .5), transparent 52%);
  opacity: 0; transition: opacity var(--t-mid) var(--ease-out);
}
.gallery button:hover::after { opacity: 1; }
.gallery .g-tall { grid-row: span 2; aspect-ratio: 3 / 4.2; }
@media (max-width: 860px) { .gallery { grid-template-columns: repeat(2, 1fr); } .gallery .g-tall { grid-row: span 1; aspect-ratio: 3 / 2; } }

/* ---------------------------------------------------------------- 15. TESTIMONIAL */
.quote-card {
  position: relative; padding: clamp(1.9rem, 3.6vw, 3.2rem);
  border-radius: var(--r-xl); border: 1px solid var(--border);
  background: var(--surface); box-shadow: var(--shadow-2); overflow: hidden;
}
.quote-card::before {
  content: ''; position: absolute; right: -60px; top: -60px; width: 260px; height: 260px;
  border-radius: 50%; background: radial-gradient(circle, color-mix(in srgb, var(--primary) 13%, transparent), transparent 68%);
  pointer-events: none;
}
.quote-mark { font-family: var(--font-display); font-size: 4.5rem; line-height: .6; color: var(--primary); opacity: .28; margin-bottom: .4rem; }
.quote-card blockquote { font-family: var(--font-display); font-size: clamp(1.2rem, 2.1vw, 1.65rem); line-height: 1.42; letter-spacing: -.02em; font-weight: 500; color: var(--text); margin-bottom: var(--s-5); text-wrap: pretty; }
.quote-by { display: flex; align-items: center; gap: .9rem; }
.avatar-initial {
  width: 46px; height: 46px; flex: none; border-radius: 50%; display: grid; place-items: center;
  font-family: var(--font-display); font-weight: 700; font-size: 1.05rem;
  background: var(--grad-filament); color: #0B0102;
}
.quote-by cite { font-style: normal; font-weight: 600; font-size: var(--fs-sm); color: var(--text); display: block; }
.quote-by span { font-size: var(--fs-xs); color: var(--text-muted); }
.rating { display: inline-flex; gap: .12rem; color: var(--warm-500); margin-bottom: .8rem; }
.rating svg { width: 17px; height: 17px; }

/* ---------------------------------------------------------------- 16. FAQ */
.faq { display: grid; gap: .7rem; }
.faq-item { border: 1px solid var(--border); border-radius: var(--r-md); background: var(--surface); overflow: hidden; transition: border-color var(--t-fast) var(--ease-out), box-shadow var(--t-mid) var(--ease-out); }
.faq-item:hover { border-color: var(--border-strong); }
.faq-item[data-open='true'] { border-color: var(--border-strong); box-shadow: var(--shadow-2); }
.faq-q {
  width: 100%; display: flex; align-items: center; justify-content: space-between; gap: 1.25rem;
  padding: 1.15rem clamp(1.1rem, 2vw, 1.5rem); text-align: left;
  font-family: var(--font-display); font-size: clamp(1rem, 1.3vw, 1.1rem); font-weight: 600;
  letter-spacing: -.014em; color: var(--text); line-height: 1.4;
}
.faq-icon { position: relative; width: 22px; height: 22px; flex: none; border-radius: 50%; background: var(--surface-2); border: 1px solid var(--border); }
.faq-icon::before, .faq-icon::after {
  content: ''; position: absolute; left: 50%; top: 50%; background: var(--primary);
  border-radius: 2px; transition: transform var(--t-mid) var(--ease-out);
}
.faq-icon::before { width: 10px; height: 1.5px; transform: translate(-50%, -50%); }
.faq-icon::after  { width: 1.5px; height: 10px; transform: translate(-50%, -50%); }
.faq-item[data-open='true'] .faq-icon::after { transform: translate(-50%, -50%) rotate(90deg) scaleX(0); }
.faq-a { display: grid; grid-template-rows: 0fr; transition: grid-template-rows var(--t-mid) var(--ease-out); }
.faq-item[data-open='true'] .faq-a { grid-template-rows: 1fr; }
.faq-a > div { overflow: hidden; }
.faq-a p { padding: 0 clamp(1.1rem, 2vw, 1.5rem) 1.3rem; color: var(--text-muted); font-size: var(--fs-sm); max-width: 72ch; }
.faq-a p + p { padding-top: 0; }

/* ---------------------------------------------------------------- 17. CTA BAND */
.cta-band {
  position: relative; isolation: isolate; overflow: hidden;
  border-radius: var(--r-xl); padding: clamp(2.5rem, 5.5vw, 4.75rem) clamp(1.5rem, 4vw, 4rem);
  background: #08090C; color: #fff; text-align: center;
  box-shadow: var(--shadow-3);
}
.cta-band::before {
  content: ''; position: absolute; inset: -50%; z-index: -1;
  background:
    radial-gradient(circle at 22% 28%, rgb(255 154 31 / .42), rgb(255 154 31 / 0) 42%),
    radial-gradient(circle at 78% 66%, rgb(237 28 34 / .4), rgb(237 28 34 / 0) 44%),
    radial-gradient(circle at 52% 104%, rgb(46 155 230 / .3), rgb(46 155 230 / 0) 40%);
  animation: drift-a 24s var(--ease-io) infinite alternate;
}
.cta-band::after {
  content: ''; position: absolute; inset: 0; z-index: -1;
  background-image: linear-gradient(rgb(255 255 255 / .045) 1px, transparent 1px),
                    linear-gradient(90deg, rgb(255 255 255 / .045) 1px, transparent 1px);
  background-size: 54px 54px;
  mask-image: radial-gradient(80% 80% at 50% 50%, #000, transparent 76%);
  -webkit-mask-image: radial-gradient(80% 80% at 50% 50%, #000, transparent 76%);
}
.cta-band h2 { color: #fff; margin-bottom: var(--s-4); }
.cta-band p { color: rgb(255 255 255 / .76); font-size: var(--fs-lead); max-width: 56ch; margin: 0 auto var(--s-6); }
.cta-band .btn-row { justify-content: center; }
.cta-band .fineprint { margin-top: var(--s-5); font-size: var(--fs-xs); color: rgb(255 255 255 / .5); }

/* ---------------------------------------------------------------- 18. FORMS */
.form-grid { display: grid; gap: 1.05rem; grid-template-columns: repeat(2, 1fr); }
.form-grid .full { grid-column: 1 / -1; }
@media (max-width: 640px) { .form-grid { grid-template-columns: 1fr; } }
.field { display: grid; gap: .42rem; }
.field label { font-size: var(--fs-xs); font-weight: 600; color: var(--text-2); letter-spacing: .005em; }
.field label .req { color: var(--primary); }
.field input, .field textarea, .field select {
  width: 100%; padding: .82rem 1rem; font-size: var(--fs-sm);
  border-radius: var(--r-sm); border: 1px solid var(--border);
  background: var(--surface); color: var(--text);
  transition: border-color var(--t-fast) var(--ease-out), box-shadow var(--t-fast) var(--ease-out),
              background-color var(--t-fast) var(--ease-out);
}
.field textarea { resize: vertical; min-height: 132px; line-height: 1.6; }
.field select { appearance: none; cursor: pointer;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%235D6373' stroke-width='2' stroke-linecap='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");
  background-repeat: no-repeat; background-position: right .9rem center; background-size: 17px; padding-right: 2.6rem; }
.field input::placeholder, .field textarea::placeholder { color: var(--text-faint); }
.field input:hover, .field textarea:hover, .field select:hover { border-color: var(--border-strong); }
.field input:focus, .field textarea:focus, .field select:focus {
  outline: none; border-color: var(--primary);
  box-shadow: 0 0 0 4px color-mix(in srgb, var(--primary) 15%, transparent);
}
.field input[aria-invalid='true'], .field textarea[aria-invalid='true'], .field select[aria-invalid='true'] { border-color: var(--primary); }
.field-error { font-size: var(--fs-xs); color: var(--primary); font-weight: 500; min-height: 0; }
.hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.form-note { font-size: var(--fs-xs); color: var(--text-muted); }
.form-status {
  border-radius: var(--r-md); padding: 1rem 1.15rem; font-size: var(--fs-sm);
  border: 1px solid var(--border); display: none; gap: .7rem; align-items: flex-start;
}
.form-status[data-state] { display: flex; }
.form-status svg { width: 19px; height: 19px; flex: none; margin-top: .1rem; }
.form-status[data-state='ok']  { border-color: color-mix(in srgb, var(--success) 42%, transparent); background: color-mix(in srgb, var(--success) 9%, transparent); color: var(--success); }
.form-status[data-state='err'] { border-color: color-mix(in srgb, var(--primary) 42%, transparent); background: color-mix(in srgb, var(--primary) 8%, transparent); color: var(--primary); }
.form-status strong { display: block; color: var(--text); margin-bottom: .1rem; }

/* ---------------------------------------------------------------- 19. CONTACT TILES */
.contact-tile {
  display: flex; flex-direction: column; gap: .35rem;
  padding: clamp(1.4rem, 2.4vw, 1.85rem); border-radius: var(--r-lg);
  border: 1px solid var(--border); background: var(--surface); text-decoration: none;
  color: var(--text); box-shadow: var(--shadow-1); position: relative; overflow: hidden;
  transition: transform var(--t-mid) var(--ease-out), box-shadow var(--t-mid) var(--ease-out), border-color var(--t-mid) var(--ease-out);
}
.contact-tile:hover { transform: translateY(-5px); box-shadow: var(--shadow-3); border-color: var(--border-strong); }
.contact-tile .card-icon { margin-bottom: var(--s-4); }
.contact-tile h3 { font-size: 1.02rem; }
.contact-tile .val { font-size: var(--fs-sm); font-weight: 600; color: var(--text); word-break: break-word; }
.contact-tile .sub { font-size: var(--fs-xs); color: var(--text-muted); }
.contact-tile .go { margin-top: auto; padding-top: .9rem; font-size: var(--fs-xs); font-weight: 600; color: var(--primary); display: inline-flex; align-items: center; gap: .35rem; }
.contact-tile .go svg { width: 14px; height: 14px; transition: transform var(--t-fast) var(--ease-out); }
.contact-tile:hover .go svg { transform: translateX(3px); }

.map-frame { border-radius: var(--r-lg); overflow: hidden; border: 1px solid var(--border); box-shadow: var(--shadow-1); background: var(--surface-2); }
.map-frame iframe { display: block; width: 100%; height: clamp(280px, 40vw, 420px); border: 0; filter: saturate(.92); }
:root[data-theme='dark'] .map-frame iframe { filter: invert(.9) hue-rotate(180deg) saturate(.7) brightness(.95); }

/* ---------------------------------------------------------------- 20. FOOTER */
.site-footer { background: var(--bg-sunk); border-top: 1px solid var(--hairline); padding-block: clamp(3rem, 6vw, 5rem) var(--s-6); }
.footer-top { display: grid; gap: clamp(2rem, 4vw, 3.5rem); grid-template-columns: minmax(0, 1.5fr) repeat(3, minmax(0, 1fr)); margin-bottom: clamp(2.25rem, 4vw, 3.25rem); }
@media (max-width: 900px) { .footer-top { grid-template-columns: repeat(2, 1fr); } .footer-brand { grid-column: 1 / -1; } }
@media (max-width: 520px) { .footer-top { grid-template-columns: 1fr; } }
.footer-brand img { width: 132px; margin-bottom: var(--s-4); }
.footer-brand .logo-dark { display: var(--logo-dark-display); }
.footer-brand .logo-light { display: var(--logo-light-display); }
.footer-brand p { font-size: var(--fs-sm); color: var(--text-muted); max-width: 34ch; margin-bottom: var(--s-5); }
.footer-col .footer-h { font-family: var(--font-body); font-size: var(--fs-xs); font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--text-faint); margin-bottom: var(--s-4); }
.footer-col ul { display: grid; gap: .1rem; }
.footer-col a, .footer-col li { font-size: var(--fs-sm); color: var(--text-muted); text-decoration: none; }
.footer-col a { display: inline-flex; align-items: center; min-height: 40px;
                transition: color var(--t-fast) var(--ease-out); }
.footer-col a:hover { color: var(--text); text-decoration: underline; text-underline-offset: .2em; }
.footer-col li { display: flex; gap: .6rem; align-items: flex-start; min-height: 40px; }
.footer-col li svg { width: 16px; height: 16px; flex: none; margin-top: .18rem; color: var(--text-faint); }
.social { display: flex; gap: .5rem; }
.social a {
  width: 40px; height: 40px; display: grid; place-items: center; border-radius: var(--r-pill);
  border: 1px solid var(--border); color: var(--text-muted);
  transition: all var(--t-fast) var(--ease-out);
}
.social a:hover { color: var(--text); border-color: var(--border-strong); background: var(--surface); transform: translateY(-2px); }
.social svg { width: 17px; height: 17px; }
.footer-bottom { display: flex; flex-wrap: wrap; gap: var(--s-4) var(--s-5); align-items: center; justify-content: space-between; padding-top: var(--s-5); border-top: 1px solid var(--hairline); }
.footer-bottom p { font-size: var(--fs-xs); color: var(--text-faint); }
.footer-bottom a { display: inline-flex; align-items: center; min-height: 40px; font-size: var(--fs-xs); color: var(--text-faint); text-decoration: none; }
.footer-bottom a:hover { color: var(--text-muted); text-decoration: underline; }
.pay-methods { display: flex; flex-wrap: wrap; gap: .4rem; }
.pay-methods li { font-size: .6875rem; font-weight: 600; letter-spacing: .02em; color: var(--text-muted); padding: .28rem .6rem; border: 1px solid var(--border); border-radius: 6px; background: var(--surface); }

/* ---------------------------------------------------------------- 21. STICKY MOBILE BAR */
.action-bar {
  position: fixed; inset-inline: 0; bottom: 0; z-index: 95; display: none;
  padding: .6rem var(--gutter) calc(.6rem + env(safe-area-inset-bottom));
  gap: .55rem;
  background: var(--surface-glass); border-top: 1px solid var(--hairline);
  backdrop-filter: blur(18px) saturate(180%); -webkit-backdrop-filter: blur(18px) saturate(180%);
  box-shadow: 0 -6px 24px rgb(0 0 0 / .1);
  transform: translateY(110%); transition: transform var(--t-mid) var(--ease-out);
}
.action-bar.is-on { transform: translateY(0); }
.action-bar .btn { flex: 1; padding-inline: .5rem; min-height: 48px; }
@media (max-width: 780px) { .action-bar { display: flex; } body { padding-bottom: 66px; } }

.wa-float {
  position: fixed; right: clamp(1rem, 3vw, 1.75rem); bottom: clamp(1rem, 3vw, 1.75rem);
  z-index: 94; width: 56px; height: 56px; border-radius: 50%;
  display: grid; place-items: center; background: #0F7A3D; color: #fff;
  box-shadow: 0 10px 30px rgb(15 122 61 / .46); text-decoration: none;
  transition: transform var(--t-mid) var(--ease-out), box-shadow var(--t-mid) var(--ease-out);
}
.wa-float:hover { transform: scale(1.08) translateY(-2px); box-shadow: 0 14px 40px rgb(15 122 61 / .55); }
.wa-float svg { width: 28px; height: 28px; }
.wa-float::before {
  content: ''; position: absolute; inset: 0; border-radius: 50%; border: 2px solid #0F7A3D;
  animation: halo 2.6s var(--ease-out) infinite;
}
@keyframes halo { 0% { transform: scale(1); opacity: .7; } 100% { transform: scale(1.7); opacity: 0; } }
@media (max-width: 780px) { .wa-float { display: none; } }

/* ---------------------------------------------------------------- 22. LIGHTBOX */
.lightbox {
  position: fixed; inset: 0; z-index: 200; display: grid; place-items: center;
  padding: clamp(1rem, 4vw, 3rem);
  background: rgb(4 5 8 / .9); backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px);
  opacity: 0; visibility: hidden; transition: opacity var(--t-mid) var(--ease-out), visibility var(--t-mid);
}
.lightbox[data-open='true'] { opacity: 1; visibility: visible; }
.lightbox figure { max-width: min(1000px, 100%); max-height: 100%; display: grid; gap: .9rem; justify-items: center; transform: scale(.96); transition: transform var(--t-mid) var(--ease-out); }
.lightbox[data-open='true'] figure { transform: scale(1); }
.lightbox img { max-height: 78vh; width: auto; border-radius: var(--r-md); box-shadow: 0 30px 90px rgb(0 0 0 / .6); }
.lightbox figcaption { color: rgb(255 255 255 / .78); font-size: var(--fs-sm); text-align: center; }
.lightbox-close {
  position: absolute; right: clamp(1rem, 3vw, 2rem); top: clamp(1rem, 3vw, 2rem);
  width: 46px; height: 46px; display: grid; place-items: center; border-radius: 50%;
  background: rgb(255 255 255 / .1); border: 1px solid rgb(255 255 255 / .22); color: #fff;
  transition: background-color var(--t-fast) var(--ease-out), transform var(--t-fast) var(--ease-out);
}
.lightbox-close:hover { background: rgb(255 255 255 / .2); transform: rotate(90deg); }
.lightbox-close svg { width: 20px; height: 20px; }

/* ---------------------------------------------------------------- 23. FEEDBACK LIST */
.review-grid { display: grid; gap: clamp(1rem, 2vw, 1.4rem); grid-template-columns: repeat(auto-fill, minmax(min(100%, 300px), 1fr)); }
.review { padding: 1.4rem 1.5rem; border-radius: var(--r-lg); border: 1px solid var(--border); background: var(--surface); box-shadow: var(--shadow-1); display: flex; flex-direction: column; gap: .6rem; }
.review p { font-size: var(--fs-sm); color: var(--text-2); line-height: 1.62; }
.review footer { margin-top: auto; padding-top: .7rem; display: flex; align-items: center; gap: .7rem; border-top: 1px solid var(--hairline); }
.review .avatar-initial { width: 36px; height: 36px; font-size: .85rem; }
.empty-state { padding: clamp(2rem, 5vw, 3.5rem); text-align: center; border: 1px dashed var(--border-strong); border-radius: var(--r-lg); color: var(--text-muted); }

/* ---------------------------------------------------------------- 24. REVEAL MOTION */
[data-reveal] { opacity: 0; transform: translate3d(0, 22px, 0); }
[data-reveal='left']  { transform: translate3d(-26px, 0, 0); }
[data-reveal='right'] { transform: translate3d(26px, 0, 0); }
[data-reveal='zoom']  { transform: scale(.965); }
html.js [data-reveal] { transition: opacity .7s var(--ease-out), transform .7s var(--ease-out); transition-delay: var(--d, 0ms); }
html:not(.js) [data-reveal] { opacity: 1; transform: none; }
[data-reveal].is-visible { opacity: 1; transform: none; }

/* ---------------------------------------------------------------- 25. REDUCED MOTION */
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after {
    animation-duration: .001ms !important; animation-iteration-count: 1 !important;
    transition-duration: .001ms !important; scroll-behavior: auto !important;
  }
  [data-reveal] { opacity: 1 !important; transform: none !important; }
  .hero-aurora span, .hero-beam, .float-card, .hero-chip, .marquee ul, .scroll-cue i, .wa-float::before { animation: none !important; }
  .marquee { mask-image: none; -webkit-mask-image: none; }
  .marquee ul { flex-wrap: wrap; }
}

/* ---------------------------------------------------------------- 26. PRINT */
@media print {
  .site-header, .action-bar, .wa-float, .scroll-progress, .hero-aurora, .hero-beam, .scroll-cue, .lightbox { display: none !important; }
  body { background: #fff; color: #000; }
  .hero { min-height: auto; background: #fff; color: #000; padding-block: 2rem; }
  .hero h1, .hero-sub { color: #000; }
  a[href^='http']::after { content: ' (' attr(href) ')'; font-size: .8em; word-break: break-all; }
}
