.aec-footer-fragment{all:revert-layer;display:block;box-sizing:border-box;text-align:left;}
.aec-footer-fragment *,.aec-footer-fragment *::before,.aec-footer-fragment *::after{box-sizing:border-box;}
.aec-footer-fragment :where(*){margin:0;padding:0;border:0;background:none;font:inherit;color:inherit;line-height:inherit;letter-spacing:normal;text-transform:none;text-decoration:none;list-style:none;}
.aec-footer-fragment *,.aec-footer-fragment :before,.aec-footer-fragment :after{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }.aec-footer-fragment ::backdrop{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }.aec-footer-fragment *,.aec-footer-fragment :before,.aec-footer-fragment :after{box-sizing:border-box;border-width:0;border-style:solid;border-color:#e5e7eb}.aec-footer-fragment :before,.aec-footer-fragment :after{--tw-content: ""}.aec-footer-fragment,.aec-footer-fragment :host{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji";font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}.aec-footer-fragment{margin:0;line-height:inherit}.aec-footer-fragment h3,.aec-footer-fragment h4{font-size:inherit;font-weight:inherit}.aec-footer-fragment a{color:inherit;text-decoration:inherit}.aec-footer-fragment :-moz-focusring{outline:auto}.aec-footer-fragment :-moz-ui-invalid{box-shadow:none}.aec-footer-fragment ::-webkit-inner-spin-button,.aec-footer-fragment ::-webkit-outer-spin-button{height:auto}.aec-footer-fragment ::-webkit-search-decoration{-webkit-appearance:none}.aec-footer-fragment ::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}.aec-footer-fragment h3,.aec-footer-fragment h4,.aec-footer-fragment figure,.aec-footer-fragment p{margin:0}.aec-footer-fragment ul{list-style:none;margin:0;padding:0}.aec-footer-fragment :disabled{cursor:default}.aec-footer-fragment img,.aec-footer-fragment svg{display:block;vertical-align:middle}.aec-footer-fragment img{max-width:100%;height:auto}.aec-footer-fragment{--background: 0 0% 98%;--foreground: 220 20% 14%;--card: 0 0% 100%;--card-foreground: 220 20% 14%;--popover: 0 0% 100%;--popover-foreground: 220 20% 14%;--primary: 220 70% 50%;--primary-foreground: 0 0% 100%;--secondary: 220 14% 94%;--secondary-foreground: 220 20% 14%;--muted: 220 14% 94%;--muted-foreground: 220 10% 46%;--accent: 220 14% 94%;--accent-foreground: 220 20% 14%;--destructive: 0 72% 51%;--destructive-foreground: 0 0% 100%;--border: 220 13% 90%;--input: 220 13% 90%;--ring: 220 70% 50%;--radius: 8px;--sidebar-background: 220 20% 14%;--sidebar-foreground: 220 14% 90%;--sidebar-primary: 220 70% 55%;--sidebar-primary-foreground: 0 0% 100%;--sidebar-accent: 220 20% 20%;--sidebar-accent-foreground: 220 14% 90%;--sidebar-border: 220 15% 22%;--sidebar-ring: 220 70% 55%;--status-positive: 120 86% 34%;--status-positive-text: 120 100% 19%;--status-positive-surface: 122 55% 94%;--status-positive-border: 122 40% 80%;--status-attention: 32 95% 44%;--status-attention-text: 36 100% 24%;--status-attention-surface: 44 92% 92%;--status-attention-border: 38 75% 76%;--status-critical: 0 72% 51%;--status-critical-text: 3 74% 38%;--status-critical-surface: 0 80% 96%;--status-critical-border: 0 65% 86%;--status-neutral: 220 9% 46%;--status-neutral-text: 220 16% 28%;--status-neutral-surface: 220 14% 94%;--status-neutral-border: 220 13% 85%;--affirmative: 120 100% 19%;--affirmative-hover: 120 100% 15%;--affirmative-foreground: 0 0% 100%;--admin-sidebar-width: 260px;--font-heading: Inter, system-ui, sans-serif;--font-body: Inter, system-ui, sans-serif;--font-secondary: Montserrat, system-ui, sans-serif}.aec-footer-fragment *{border-color:hsl(var(--border))}.aec-footer-fragment{background-color:hsl(var(--background));color:hsl(var(--foreground));font-family:var(--font-body)}.aec-footer-fragment h3,.aec-footer-fragment h4{font-family:var(--font-heading)}.aec-footer-fragment .mx-auto{margin-left:auto;margin-right:auto}.aec-footer-fragment .mb-2{margin-bottom:8px}.aec-footer-fragment .mb-4{margin-bottom:16px}.aec-footer-fragment .mb-5{margin-bottom:20px}.aec-footer-fragment .mt-0\.5{margin-top:2px}.aec-footer-fragment .mt-6{margin-top:24px}.aec-footer-fragment .mt-8{margin-top:32px}.aec-footer-fragment .inline-block{display:inline-block}.aec-footer-fragment .flex{display:flex}.aec-footer-fragment .grid{display:grid}.aec-footer-fragment .contents{display:contents}.aec-footer-fragment .h-4{height:16px}.aec-footer-fragment .h-5{height:20px}.aec-footer-fragment .min-h-screen{min-height:100vh}.aec-footer-fragment .w-4{width:16px}.aec-footer-fragment .w-5{width:20px}.aec-footer-fragment .min-w-0{min-width:0px}.aec-footer-fragment .max-w-7xl{max-width:1280px}.aec-footer-fragment .max-w-none{max-width:none}.aec-footer-fragment .shrink-0{flex-shrink:0}@keyframes pulse{50%{opacity:.5}}@keyframes spin{to{transform:rotate(360deg)}}.aec-footer-fragment .flex-col{flex-direction:column}.aec-footer-fragment .flex-wrap{flex-wrap:wrap}.aec-footer-fragment .items-start{align-items:flex-start}.aec-footer-fragment .items-center{align-items:center}.aec-footer-fragment .gap-10{gap:40px}.aec-footer-fragment .gap-2{gap:8px}.aec-footer-fragment .gap-4{gap:16px}.aec-footer-fragment .space-y-2>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(8px * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(8px * var(--tw-space-y-reverse))}.aec-footer-fragment .break-all{word-break:break-all}.aec-footer-fragment .border-t{border-top-width:1px}.aec-footer-fragment .border-black\/10{border-color:#0000001a}.aec-footer-fragment .bg-background{background-color:hsl(var(--background))}.aec-footer-fragment .bg-card{background-color:hsl(var(--card))}.aec-footer-fragment .px-6{padding-left:24px;padding-right:24px}.aec-footer-fragment .pb-8{padding-bottom:32px}.aec-footer-fragment .pt-12{padding-top:48px}.aec-footer-fragment .pt-6{padding-top:24px}.aec-footer-fragment .align-middle{vertical-align:middle}.aec-footer-fragment .font-heading{font-family:var(--font-heading),Oswald,system-ui,sans-serif}.aec-footer-fragment .text-\[11px\]{font-size:11px}.aec-footer-fragment .text-sm{font-size:14px;line-height:20px}.aec-footer-fragment .text-xs{font-size:12px;line-height:16px}.aec-footer-fragment .font-medium{font-weight:500}.aec-footer-fragment .font-semibold{font-weight:600}.aec-footer-fragment .uppercase{text-transform:uppercase}.aec-footer-fragment .tracking-wide{letter-spacing:.025em}.aec-footer-fragment .text-foreground{color:hsl(var(--foreground))}.aec-footer-fragment .text-muted-foreground{color:hsl(var(--muted-foreground))}.aec-footer-fragment .text-primary{color:hsl(var(--primary))}.aec-footer-fragment .opacity-70{opacity:.7}.aec-footer-fragment .transition-colors{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}@keyframes enter{0%{opacity:var(--tw-enter-opacity, 1);transform:translate3d(var(--tw-enter-translate-x, 0),var(--tw-enter-translate-y, 0),0) scale3d(var(--tw-enter-scale, 1),var(--tw-enter-scale, 1),var(--tw-enter-scale, 1)) rotate(var(--tw-enter-rotate, 0))}}@keyframes exit{to{opacity:var(--tw-exit-opacity, 1);transform:translate3d(var(--tw-exit-translate-x, 0),var(--tw-exit-translate-y, 0),0) scale3d(var(--tw-exit-scale, 1),var(--tw-exit-scale, 1),var(--tw-exit-scale, 1)) rotate(var(--tw-exit-rotate, 0))}}.aec-footer-fragment .file\:border-0::file-selector-button{border-width:0px}.aec-footer-fragment .file\:bg-transparent::file-selector-button{background-color:transparent}.aec-footer-fragment .file\:text-sm::file-selector-button{font-size:14px;line-height:20px}.aec-footer-fragment .file\:font-medium::file-selector-button{font-weight:500}.aec-footer-fragment .file\:text-foreground::file-selector-button{color:hsl(var(--foreground))}.aec-footer-fragment .hover\:text-foreground:hover{color:hsl(var(--foreground))}.aec-footer-fragment .hover\:text-primary:hover{color:hsl(var(--primary))}.aec-footer-fragment .hover\:after\:bg-sidebar-border:hover:after{content:var(--tw-content);background-color:hsl(var(--sidebar-border))}.aec-footer-fragment .group.destructive .group-\[\.destructive\]\:hover\:border-destructive\/30:hover{border-color:hsl(var(--destructive) / .3)}.aec-footer-fragment .group.destructive .group-\[\.destructive\]\:hover\:bg-destructive:hover{background-color:hsl(var(--destructive))}.aec-footer-fragment .group.destructive .group-\[\.destructive\]\:hover\:text-destructive-foreground:hover{color:hsl(var(--destructive-foreground))}.aec-footer-fragment .group.destructive .group-\[\.destructive\]\:hover\:text-red-50:hover{--tw-text-opacity: 1;color:rgb(254 242 242 / var(--tw-text-opacity, 1))}.aec-footer-fragment .group.destructive .group-\[\.destructive\]\:focus\:ring-destructive:focus{--tw-ring-color: hsl(var(--destructive))}.aec-footer-fragment .group.destructive .group-\[\.destructive\]\:focus\:ring-red-400:focus{--tw-ring-opacity: 1;--tw-ring-color: rgb(248 113 113 / var(--tw-ring-opacity, 1))}.aec-footer-fragment .group.destructive .group-\[\.destructive\]\:focus\:ring-offset-red-600:focus{--tw-ring-offset-color: #dc2626}.aec-footer-fragment .has-\[\[data-variant\=inset\]\]\:bg-sidebar:has([data-variant=inset]){background-color:hsl(var(--sidebar-background))}.aec-footer-fragment .has-\[\:disabled\]\:opacity-50:has(:disabled){opacity:.5}@keyframes accordion-up{0%{height:var(--radix-accordion-content-height)}to{height:0}}@keyframes accordion-down{0%{height:0}to{height:var(--radix-accordion-content-height)}}.aec-footer-fragment .data-\[panel-group-direction\=vertical\]\:after\:left-0[data-panel-group-direction=vertical]:after{content:var(--tw-content);left:0}.aec-footer-fragment .data-\[panel-group-direction\=vertical\]\:after\:h-1[data-panel-group-direction=vertical]:after{content:var(--tw-content);height:4px}.aec-footer-fragment .data-\[panel-group-direction\=vertical\]\:after\:w-full[data-panel-group-direction=vertical]:after{content:var(--tw-content);width:100%}.aec-footer-fragment .data-\[panel-group-direction\=vertical\]\:after\:translate-x-0[data-panel-group-direction=vertical]:after{content:var(--tw-content);--tw-translate-x: 0px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.aec-footer-fragment .data-\[state\=open\]\:hover\:bg-sidebar-accent:hover[data-state=open]{background-color:hsl(var(--sidebar-accent))}.aec-footer-fragment .data-\[state\=open\]\:hover\:text-sidebar-accent-foreground:hover[data-state=open]{color:hsl(var(--sidebar-accent-foreground))}.aec-footer-fragment .group[data-collapsible=offcanvas] .group-data-\[collapsible\=offcanvas\]\:after\:left-full:after{content:var(--tw-content);left:100%}.aec-footer-fragment .group[data-collapsible=offcanvas] .group-data-\[collapsible\=offcanvas\]\:hover\:bg-sidebar:hover{background-color:hsl(var(--sidebar-background))}.aec-footer-fragment .\[\&\:has\(\[aria-selected\]\)\]\:bg-accent:has([aria-selected]){background-color:hsl(var(--accent))}.aec-footer-fragment .first\:\[\&\:has\(\[aria-selected\]\)\]\:rounded-l-md:has([aria-selected]):first-child{border-top-left-radius:calc(var(--radius) - 2px);border-bottom-left-radius:calc(var(--radius) - 2px)}.aec-footer-fragment .last\:\[\&\:has\(\[aria-selected\]\)\]\:rounded-r-md:has([aria-selected]):last-child{border-top-right-radius:calc(var(--radius) - 2px);border-bottom-right-radius:calc(var(--radius) - 2px)}.aec-footer-fragment .\[\&\:has\(\[aria-selected\]\.day-outside\)\]\:bg-accent\/50:has([aria-selected].day-outside){background-color:hsl(var(--accent) / .5)}.aec-footer-fragment .\[\&\:has\(\[aria-selected\]\.day-range-end\)\]\:rounded-r-md:has([aria-selected].day-range-end){border-top-right-radius:calc(var(--radius) - 2px);border-bottom-right-radius:calc(var(--radius) - 2px)}.aec-footer-fragment .\[\&\:has\(\[role\=checkbox\]\)\]\:pr-0:has([role=checkbox]){padding-right:0}.aec-footer-fragment .\[\&_\[cmdk-group\]\:not\(\[hidden\]\)_\~\[cmdk-group\]\]\:pt-0 [cmdk-group]:not([hidden])~[cmdk-group]{padding-top:0}.aec-footer-fragment .\[\&_a\]\:text-foreground a{color:hsl(var(--foreground))}.aec-footer-fragment .\[\&_a\]\:hover\:underline:hover a,.aec-footer-fragment .hover\:\[\&_a\]\:underline a:hover{text-decoration-line:underline}.aec-footer-fragment .\[\&_figure\]\:mr-4 figure{margin-right:16px}.aec-footer-fragment .\[\&_figure\]\:inline-block figure{display:inline-block}.aec-footer-fragment .\[\&_img\]\:inline-block img{display:inline-block}.aec-footer-fragment .\[\&_img\]\:h-11 img{height:44px}.aec-footer-fragment .\[\&_img\]\:w-auto img{width:auto}
/* =============================================================================
   stryker-handoff.css
   -----------------------------------------------------------------------------
   Purpose: Provide a single stylesheet that gives pages generated in Lovable
   pixel-accurate rendering in BOTH the Lovable preview environment AND in
   FusionCMS production after handoff.

   How to use:
   1. Load this file once globally in the FusionCMS v5 Stryker theme
      (recommended: include it after theme.css so it layers on top without
      conflicting with the existing Bootstrap-derived rules).
   2. When Lovable generates content_html that uses class names prefixed with
      `.stryker-*` (per the pattern library in stryker-branding.md §5), those
      classes resolve against the rules in this file — producing identical
      visual output to the live site.
   3. No Tailwind runtime required. All values here are hand-written CSS that
      references either verified Stryker hex values or --stryker-* custom
      properties declared at the top of this file.

   All values in this file are sourced from the live production theme.css
   of strykerttops.com (id=466e1d7316b3352d2d04). Do not modify hex values
   without re-running the CSS audit in stryker-branding.md.

   Version: 1.4 — 2026-04-21 (Cycle 2: mobile responsive §6b — #compare card-stack,
   feature-grid collapse, CTA stack, hero/section sizing — replaces SHARED_CLAUSES Pattern B inlines)
   ============================================================================= */


/* -----------------------------------------------------------------------------
   §1 — Design tokens as CSS custom properties
   These are the canonical values. Everything below references them.
   ----------------------------------------------------------------------------- */
.aec-footer-fragment {
  /* Colors — primary palette */
  --stryker-primary:               #db1e1e;
  --stryker-primary-hover-bg:      #b91919;
  --stryker-primary-hover-border:  #ae1818;
  --stryker-primary-active-bg:     #ae1818;
  --stryker-primary-active-border: #a31616;
  --stryker-primary-deep:          #721010;
  --stryker-link-hover:            #981515;

  /* Colors — neutrals */
  --stryker-secondary:             #000000;
  --stryker-body-text:             #000000;
  --stryker-ink-soft:              #111111;
  --stryker-muted-text:            #9b9b9d;
  --stryker-surface-alt-1:         #f6f6f6;
  --stryker-surface-alt-2:         #f8f9fa;
  --stryker-border-subtle:         #c3c3c3;
  --stryker-border-card:           #d8d7d7;
  --stryker-border-form-focus:     #ef8a8a;
  --stryker-divider:               #dadada;

  /* Colors — semantic only, NOT brand accents */
  --stryker-semantic-success:      #28a745;
  --stryker-semantic-warning:      #ffc107;
  --stryker-semantic-info:         #17a2b8;

  /* Fonts */
  --stryker-font-primary-display:   'Oswald', 'Oswald Fallback', sans-serif;
  --stryker-font-secondary-display: 'Montserrat', 'Montserrat Fallback', sans-serif;
  --stryker-font-body:              'Barlow Semi Condensed', 'Barlow Semi Condensed Fallback', sans-serif;
  --stryker-font-accent-display:    'Roboto Slab', 'Roboto Slab Fallback', sans-serif;

  /* Spacing */
  --stryker-section-margin-bottom:         85px; /* 85px */
  --stryker-section-padding-y:             100px;   /* 100px */
  --stryker-cta-padding-y:                 65px;
  --stryker-outer-gutter:                  15px;
  --stryker-heading-margin-bottom:         22px;  /* 22px */
  --stryker-heading-margin-bottom-content: 40px;    /* 40px */
  --stryker-card-margin-bottom:            30px;  /* 30px */

  /* Radii */
  --stryker-radius-default: 0;
  --stryker-radius-small:   3px;
  --stryker-radius-button:  4px;
  --stryker-radius-btn-lg:  6px;

  /* Shadows */
  --stryker-shadow-focus:       0 0 0 3.2px rgba(219, 30, 30, 0.25);
  --stryker-shadow-page-header: 0 0 10px 3px rgba(0, 0, 0, 0.3);
  --stryker-shadow-card:        0 15px 15px 0 rgba(0, 0, 0, 0.25);
  --stryker-shadow-modal:       0 2px 10px rgba(0, 0, 0, 0.3);
}


/* -----------------------------------------------------------------------------
   §2 — Typography
   ----------------------------------------------------------------------------- */

/* Scope to .stryker-page to avoid overriding FusionCMS native page styles. */

/* UAT-1 item 2: list/form templates that do not render inside `.stryker-page`
   (/gallery/, /blog/, /blog/category/*) opt into the SAME hero buffer with
   this class. Handoff CSS is injected per tenant, so the value stays
   tenant-scoped without a second registry. !important because the class sits
   alongside a Tailwind `pt-*` utility of equal specificity. */


/* Primary display headings — Oswald, "Oswald Fallback", uppercase, letter-spaced */   /* 30px */    /* 28px */

/* Secondary display headings — Montserrat, "Montserrat Fallback", red by default for H4/H5 */  /* 18px */ /* 13px */

/* Content-page H2 override — the main red 42px section heading */

/* Display variants */

/* Eyebrow label — uppercase form-label style */

/* Body links */

/* Body text spacing */


/* -----------------------------------------------------------------------------
   §3 — Buttons
   ----------------------------------------------------------------------------- */

/* Primary — the dominant brand CTA */

/* Secondary — solid black, for paired actions */

/* Outline primary */

/* Outline secondary */

/* Link-style button — no border, text only */

/* Inverse — for use on dark hero / cta-strip backgrounds ONLY */


/* -----------------------------------------------------------------------------
   §4 — Section patterns
   Named patterns that correspond to the live site's section vocabulary.
   Use these class names in Lovable-generated content_html.
   ----------------------------------------------------------------------------- */

/* ===== Hero ===== */

/* ===== Section CTA (dark full-bleed band) ===== */
/* Default button styling inside dark sections = inverse pattern. */

/* ===== Content section (editorial prose block) ===== */

/* ===== Feature grid (3–4 column cards) ===== */

/* ===== Spec strip (surface-alt band with icon+label columns) ===== */

/* ===== FAQ list ===== */


/* -----------------------------------------------------------------------------
   §5 — Utility + layout helpers
   Only the helpers needed to hand off generated pages cleanly. Not a full
   utility framework. Avoid bloat.
   ----------------------------------------------------------------------------- */


/* -----------------------------------------------------------------------------
   §6 — Responsive (desktop bumps for display sizes)
   The live site bumps display-lead from 45→90 and display-xxl from 35→55
   once the viewport reaches ≥ 768px. Match that here.
   ----------------------------------------------------------------------------- */

@media (min-width: 768px) {  /* 90px */ /* 55px */           /* 45px */
}


/* -----------------------------------------------------------------------------
   §6b — Mobile responsive (≤768px)
   These rules previously had to be hand-emitted by the LLM via inline <style>
   blocks per SHARED_CLAUSES Pattern B. Now lives here so every Stryker page
   inherits responsive behavior automatically — no per-page mobile patching.
   ----------------------------------------------------------------------------- */

@media (max-width: 768px) {
  /* Hero + section heading sizes */

  /* CTA button stacks: wrap and full-width */

  /* Feature grids: collapse to single column */

  /* Spec strip grid: collapse to single column */

  /* MOBILE-COMPARE-MATRIX-OVERLAP-1 — comparison table → horizontal scroll
     with a sticky feature column.

     WHAT WAS HERE BEFORE, AND WHY IT IS GONE. The previous rules collapsed the
     table into per-model cards with `tbody { display: grid }`,
     `tr { display: contents }` and a hard-coded placement of
     `td:nth-child(2|3|4)` into `grid-row: 1|2|3`. Because `display: contents`
     dissolves every <tr>, EVERY row's cells became siblings in the SAME grid —
     so row 1's cells, row 2's cells and row 9's cells were all assigned to grid
     rows 1-3 and painted on top of each other. Nine rows of values rendered in
     three positions. The pattern cannot work with a fixed grid-row per column:
     the row index has to come from the source row, and CSS has no way to read
     it once `display: contents` has removed the row box.

     It also depended on a markup contract that live authored content does not
     honour: `<th scope="row">`, `data-feature` on every cell and `data-model`
     on the first row. Stryker's live matrix has none of them, so the feature
     labels stayed visible as stray full-width rows and the ::before/::after
     label injection resolved to empty strings.

     THE REPLACEMENT depends on NO attributes at all — only on "the first cell
     of each row is the label". It works for three models or six, keeps the
     model names in <thead> on screen (the card stack hid them), and preserves
     the table's semantics for screen readers. Sizing is in em/tokens, so a
     third tenant inherits it off its own type scale rather than off pixels
     tuned to a 390px iPhone. */

  /* The generated markup wraps the table in a div carrying inline
     `overflow: hidden` — an author-stylesheet !important is what beats an
     inline declaration, hence the !important here. :has() is the only way to
     reach an unclassed wrapper; it is baseline in every browser this CSS
     targets (Safari 15.4+, Chrome 105+). */
  .aec-footer-fragment #compare div:has(> table) {
    overflow-x: auto !important;
    overflow-y: hidden !important;
    -webkit-overflow-scrolling: touch;
    overscroll-behavior-x: contain;
  }

  /* Data columns: wide enough to read, narrow enough that a second column is
     visibly cut off — that partial column IS the scroll affordance. Both
     bounds are in em so they track the tenant's body size. */

  /* Width, padding and alignment for the FIRST column apply to every matrix,
     sticky or not. Without this the first cell is the only unconstrained cell
     in the row (the sizing rule above deliberately excludes it) and blows out
     to ~680px on Aerial's matrix, pushing the actual comparison off-screen
     even though the table scrolls. */

  /* Sticky feature column — ONLY for matrices that actually have a label
     column. The `:has(tbody tr > th:first-child)` guard is the whole point:
     Stryker's matrix opens each row with `<th>Best Use</th>`, so pinning
     column 1 keeps the question visible while the answers scroll. Aerial's
     matrix has no label column at all — its first column is the *Ascent
     model* — so pinning it would freeze one product and scroll the others
     past it, which reads as a bug. Those tables just scroll, all columns
     equal. Structure decides, not tenant. */

  /* Row separators, restored by hand because border-collapse is now separate */

  /* Featured column keeps its accent when the generator marks it. Optional:
     absent the attribute the table is still correct, just unemphasised. */

  /* Decision-cards table (id="decision") — simpler stack, no per-card label injection */

  /* CTA button blockquotes wrap full-width */

  /* FAQ list breathing room */
}


/* -----------------------------------------------------------------------------
   §7 — Rendered-app overrides (Stryker legacy design parity)

   These target the REAL class names emitted by the shared React components
   (src/pages/Index.tsx HeroSection, src/components/public/SiteHeader.tsx +
   MegaNavItem.tsx). This file is injected only when the Stryker tenant is
   active, so nothing here can reach another tenant. Specificity is kept just
   high enough to beat single-class Tailwind utilities.
   ----------------------------------------------------------------------------- */

/* 7.1 — Homepage hero headline
   Component: HeroSection <section class="is-hero relative overflow-hidden">
              > <div class="... max-w-7xl"> > <h1 class="text-4xl md:text-6xl font-bold ...">
   HERO-2: keyed off the explicit `is-hero` class (HERO-CLASS-1 pattern), not
   the presentational `bg-card` class HERO-1 removed from the hero. */

/* 7.2 — Hero body / subtitle copy (rendered as .prose inside the hero) */

/* 7.3 — Primary CTA buttons (red bg-primary buttons/links in page content) */

/* 7.4 — Main header navigation links (NOT the utility bar above it)

   NAV-TRIGGER-ROLE-1: every declaration is now var(<record token>, <today's
   literal>), so a tenant record carrying the `nav_trigger` role moves both
   this sheet and the BigCommerce chrome, and a record without it renders
   byte-identically.

   SPECIFICITY, written out because the :hover colour depends on it:
     type rule  `.site-header .site-header-main-nav a.nav-mega-trigger` = (0,2,1)
     hover rule `.site-header .site-header-main-nav a.nav-mega-trigger:hover`
                = (0,3,1) — a pseudo-class counts as a class, so the hover rule
                wins outright, and it is also LATER in the file.
   `:hover` is deliberately REMOVED from the type rule's selector list: while it
   was listed there, the resting `color` applied on hover too and pinned it, so
   the record's hover colour could never take effect. */

/* NAV-TRIGGER-ROLE-1 — hover colour, (0,3,1), after the type rule.
   Fallback hsl(var(--primary)) is today's Tailwind `hover:text-primary`. */

/* NAV-TRIGGER-ROLE-1 — header action icons take the SAME hover colour. Their
   resting colour is left to Tailwind's text-foreground/70, which already reads
   the record's body_text token.
   Specificity (0,3,0) / (0,2,1) beats Tailwind's `.hover\:text-primary:hover`
   at (0,2,0), so these win regardless of stylesheet order. */



/* 7.5 — Interior page-header headings (About, Gallery, Model Comparison,
   Blog, Installation Guides, Locations, Contact).
   Component: PageBanner <h1 class="font-heading font-bold ...">.
   Fusion renders these at regular weight (400); keep font-family (Oswald, "Oswald Fallback"),
   uppercase, size, tracking, and color as-is. */


/* 7.6 — Footer newsletter band (site-wide, sits directly above the footer)
   Component: SiteFooter.tsx > NewsletterSection (.footer-newsletter region
   class contract). Mirrors the Aerial treatment — full-bleed brand band,
   centred uppercase white heading, white input, solid white submit button
   with brand-colour label — but driven by --stryker-primary so the colour is
   this tenant's own red. Copy wording is untouched. */

/* 7.7 — Footer shading (site-wide)
   The shared footer renders on `bg-card` (white). Aerial reads as a light
   neutral gray because its handoff CSS makes the footer transparent over the
   page background (#f9fafb); match that exact value here, and give the
   bottom copyright line its own darker full-bleed band (Stryker renders the
   sub-footer-band markup on both its BigCommerce pages and its homepage, so
   the band element itself carries the darker treatment; the `> div >`
   variant below covers the legacy no-band layout). */
.aec-footer-fragment footer.site-footer {
  background-color: #f9fafb;
}
/* Bottom copyright band. Stryker renders the sub-footer-band markup, so the
   band element itself carries the darker treatment (same structure Aerial
   uses). The `> div >` variant covers the legacy no-band layout. */
.aec-footer-fragment footer.site-footer .footer-sub-footer-band {
  background-color: var(--stryker-secondary);
  color: #ffffff;
  padding: 12px 0;
  margin-top: 32px;
  font-family: var(--stryker-font-body);
  font-size: 14px;
}
.aec-footer-fragment footer.site-footer .footer-sub-footer-band-inner {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px 20px;
}
@media (max-width: 640px) {
  .aec-footer-fragment footer.site-footer .footer-sub-footer-band-inner {
    justify-content: flex-start;
    text-align: left;
  }
  .aec-footer-fragment footer.site-footer .footer-sub-footer-band .footer-copyright {
    text-align: left;
    width: 100%;
  }
  .aec-footer-fragment footer.site-footer .footer-sub-footer-band .footer-brand-family {
    display: block;
    width: 100%;
    text-align: left;
  }
  .aec-footer-fragment footer.site-footer .footer-sub-footer-band .footer-brand-family-list {
    display: block;
    text-align: left;
  }
  .aec-footer-fragment footer.site-footer .footer-sub-footer-band .footer-brand-family-list li {
    display: block;
    text-align: left;
  }
  .aec-footer-fragment footer.site-footer .footer-sub-footer-band .footer-brand-family-list li:not(:last-child)::after {
    content: none;
  }
}
.aec-footer-fragment footer.site-footer .footer-sub-footer-band a,
.aec-footer-fragment footer.site-footer .footer-sub-footer-band .footer-copyright,
.aec-footer-fragment footer.site-footer .footer-sub-footer-band .footer-brand-family {
  color: #ffffff;
}
/* Brand-family block inside the band. Structural mirror of aerial-handoff.css
   §9.3, rewritten with this sheet's `footer.site-footer` selector prefix.
   Layout only: no colour, no typeface. Colour already arrives from the rule
   above and the family from the band's font-family. */
.aec-footer-fragment footer.site-footer .footer-sub-footer-band .footer-brand-family {
  display: inline-flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 0 8px;
}
.aec-footer-fragment footer.site-footer .footer-sub-footer-band .footer-brand-family-label {
  font-weight: 600;
  text-transform: uppercase;
}
.aec-footer-fragment footer.site-footer .footer-sub-footer-band .footer-brand-family-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: inline-flex;
  flex-wrap: wrap;
  gap: 0 12px;
}
.aec-footer-fragment footer.site-footer .footer-sub-footer-band .footer-brand-family-list li:not(:last-child)::after {
  content: "|";
  margin-left: 12px;
  opacity: 0.5;
}


/* 7.8 — Mega-menu flyout panels (NAV-STYLE-1, 2026-08-18)
   Stryker's dropdown variants (Boat T-tops, Accessories, Support) render
   with no panel styling unless authored here: the shared index.css only
   carries the .nav-mega-bridge and is-open rules, and MegaNavItem.tsx
   provides positioning (absolute left-0 top-full z-50) and .nav-mega-root
   (relative) via Tailwind. Geometry is copied VERBATIM from Aerial's UX-7
   block (aerial-handoff.css); brand-carrying values are mapped to Stryker's
   own tokens, per the per-tenant convention used everywhere else in this
   sheet. Do NOT copy Aerial's var(--aerial-body-text, #1c1c1c) or
   var(--aerial-accent, #c8102e) — those custom properties do not exist
   under Stryker and would silently fall through to Aerial-authored fallback
   hex values that belong to neither brand.

   Intentionally omitted (see task NAV-STYLE-1):
   - .site-header { position: relative } and .nav-mega-root:has(.nav-mega-
     columns) { position: static } — Stryker has no columns variant and no
     media_files rows; importing these would change the containing block for
     no benefit.
   - The trigger hover rule hardcoding #00a1d6 — Stryker's §7.4 sets no
     colour and no !important, so Tailwind hover:text-primary already
     resolves to --stryker-primary. An override would be redundant and would
     hardcode a colour.
   - Any positioning declaration other than margin-top: 4px — position, top,
     left and z-index all arrive from the component's Tailwind classes. */
/* DROPDOWN-ROLES-STRYKER-1: every value below now comes from this tenant's
   brand record (Globals > Branding > Navigation dropdown + the nav_dropdown
   type-scale entry) via the variables emitted by emitBrandingCss.ts. The
   literal kept as each var() fallback is exactly what shipped before, so a
   record without those roles renders identically. */

/* Dropdown variant — list/item/link geometry copied verbatim from Aerial. */


/* Open-state pin. Stryker has the same markup and the same exposure as
   Aerial: Tailwind's group-hover:block does not compile reliably for the
   dropdown root, so pin the open state explicitly so the panel stays open
   across the 4px margin-top gap when the pointer travels trigger→panel. */


/* 7.9 — Header utility bar typography (EYEBROW-4, 2026-08-18;
   supersedes the EYEBROW-2 values that shipped in 4dc8606c)
   DELIBERATE DIVERGENCE FROM THE FUSION SOURCE — NOT A PARITY RESTORATION.
   Stryker's Fusion original renders this bar at 11px / rgb(155,155,157);
   Aerial's renders at 13px / rgb(106,113,129). John chose these absolute
   sizes on 2026-08-18 after reviewing a rendered preview of the Stryker
   header: Stryker 14px, Aerial 13px, each taking its own --foreground
   token for colour. The two bars therefore stay one pixel apart by design
   — the tenants are NOT collapsed onto a shared size or a shared default.
   Size and colour here are chosen, not source-derived.
   This block is NOT a mirror of aerial-handoff.css — Aerial's utility-bar
   selector list also carries font-family, font-weight, letter-spacing and
   text-transform (source-derived), whereas Stryker's carries only font-size
   and colour here. The divergence is recorded so a future diff against the
   Fusion source can see it was intentional.
   font-weight is NOT set here: it stays source-derived (600 on Stryker,
   700 on Aerial). Text-transform and letter-spacing likewise stay
   source-derived. Background, height, padding, borders and the help icon
   are untouched — this is a type treatment only.
   Specificity/!important mirror the Aerial block: SiteHeader.tsx sets
   text-[11px] on .site-header-utility-bar-inner via a Tailwind arbitrary
   value, which otherwise wins at equal specificity on some build orders. */

/* UTILITY-BAR-ROLE-1 — bar chrome. The fallbacks are exactly what SiteHeader.tsx
   renders today (bg-muted/60, px-6 py-1, min-h-8, justify-end, mx-2 separator
   in text-muted-foreground/50, hover:text-foreground). */
/* UTILITY-BAR-ROLE-1d — hover and separator colours must beat the type rule.
   Specificity: the type rule above is (0,2,0) with color ... !important; the
   hover rule is (0,2,1) and the separator rule is (0,2,0) — all three carry
   !important, so the later source order here wins. Without !important these
   two rules could never take effect, breaking parity with the worker, which
   applies hover_color and separator_color directly.
   Separator fallback corrected to hsl(var(--foreground)): today the separator
   span is caught by the !important type rule and renders in the TEXT colour,
   not muted-foreground/50, so that is the value that keeps the render
   byte-identical until a record supplies separator_color. */

/* Nav layout (EYEBROW-5 / NAV-CENTER-1, 2026-08-18, John's decision): center
   the main nav row between the logo (far-left) and the utility icons
   (far-right), mirroring aerial-handoff.css. Stryker's nav items carry no
   horizontal padding (§7.4 sets none), so the existing gap is preserved —
   do NOT copy Aerial's gap:0 companion rule, or the labels fuse. */

/* 7.10 — Content body inside PageContentSection
   (CONTENT-CSS-1 Part 2, 2026-08-18. Structural mirror of
   aerial-handoff.css §8.5 — SPACING copied exactly, per John's request that
   Stryker's rhythm match Aerial's. Typeface/weight/tracking are NOT copied:
   they stay Stryker's own §2 values.)

   Why this scope: the homepage renders body copy through PageContentSection
   in src/pages/Index.tsx, which emits `.content-body` and never applies
   `.stryker-page`. All Stryker typography above is `.stryker-page`-scoped and
   is therefore inert on the homepage. Keying on
   `body main.public-content .content-body` matches on BOTH the homepage and
   slug pages, exactly as Aerial's §8.5 does.

   NOTE (reported, not fixed here): Aerial's §8.5 sets no paragraph margin
   either, so Aerial's homepage renders consecutive paragraphs flush. The `p`
   rule below fixes Stryker only; aerial-handoff.css is deliberately untouched
   this turn. */



/* -----------------------------------------------------------------------------
   §8 — End
   ----------------------------------------------------------------------------- */




/* -----------------------------------------------------------------------------
   MOBILE-NAV-ROLE-1 — the phone drawer behind the hamburger.

   The drawer is a Radix Sheet PORTALED TO <body>, so `.site-header` is NOT an
   ancestor: every selector here is scoped to the `.site-header-mobile-drawer`
   class hook on SheetContent (see the REGION CLASS CONTRACT in SiteHeader.tsx).

   Every fallback below is today's rendered value, measured 2026-09-06 at 390px,
   so with no `mobile_nav` role in the record the drawer renders byte-identically
   to before this ticket. Panel width, padding, overlay, shadow, title margin,
   list gaps, the close control and the Support panel geometry stay in code.

   SPECIFICITY / !important. Every selector here is (0,1,0) or (0,2,0) and the
   tenant handoff sheet is linked AFTER the bundle stylesheet, so it already
   beats Tailwind at equal specificity. `!important` is added only where the
   value must beat a Tailwind utility that is a class ON THE SAME ELEMENT:
     - the title            (font-heading, uppercase, tracking-wide, text-sm)
     - the nav links        (text-sm, font-heading, font-semibold, uppercase,
                             tracking-wide, py-3, border-border/60)
     - the utility a/span   (text-xs) — font-size ONLY. `color` is deliberately
                             NOT !important: a utility_bar item may carry an
                             inline `style="color:…"` from tenant config, and
                             !important would beat that inline colour and change
                             today's render.
     - the Support panel links (text-xs, font-body)
   The panel background and the utility group's border-bottom-colour carry no
   !important (`bg-background`, `border-border`): equal specificity plus later
   source order already wins, and that is what the utility-bar role does too.
   ----------------------------------------------------------------------------- */
/* Scoped to the utility ROWS: the Support PANEL links keep the component's
   px-4 py-2 geometry (see the panel rule below). */
/* Phone widths: the type-scale entry's mobile size. Same 14px fallback, so the
   render does not move without a record. Breakpoint matches the emitter's own
   mobile block in buildTypeScaleCss. */
.aec-footer-fragment [data-aec-footer-ancestor]{min-height:0;}
.aec-footer-fragment{--primary:0 76% 49%;--ring:0 76% 49%;--sidebar-primary:0 76% 49%;--primary-foreground:0 0% 100%;--accent:0 0% 0%;--accent-foreground:0 0% 100%;--foreground:0 0% 0%;--card-foreground:0 0% 0%;--popover-foreground:0 0% 0%;--border:0 0% 76%;--input:0 0% 76%;--muted-foreground:215 14% 34%;--muted:0 0% 96%;--background:0 0% 98%;--card:0 0% 98%;--popover:0 0% 98%;--brand-primary:#db1e1e;--brand-primary-deep:#721010;--brand-secondary:#000000;--brand-body-text:#000000;--brand-ink-soft:#111111;--brand-muted-text:#4b5563;--brand-surface-alt-1:#f6f6f6;--brand-surface-alt-2:#f8f9fa;--brand-border-subtle:#c3c3c3;--brand-border-card:#d8d7d7;--font-primary-display:"Oswald", "Oswald Fallback", system-ui, sans-serif;--font-heading:"Oswald", "Oswald Fallback", system-ui, sans-serif;--font-secondary-display:"Montserrat", "Montserrat Fallback", system-ui, sans-serif;--font-secondary:"Montserrat", "Montserrat Fallback", system-ui, sans-serif;--font-body:"Barlow Semi Condensed", "Barlow Semi Condensed Fallback", system-ui, sans-serif;--font-accent-display:"Roboto Slab", "Roboto Slab Fallback", system-ui, sans-serif;--type-body-size-desktop:16px;--type-body-size-mobile:16px;--type-body-weight:400;--type-body-line-height:1.5;--type-body-letter-spacing:0em;--type-body-text-transform:none;--type-body-color:#000000;--type-eyebrow-size-desktop:12px;--type-eyebrow-size-mobile:12px;--type-eyebrow-weight:600;--type-eyebrow-line-height:1.5;--type-eyebrow-letter-spacing:0.1em;--type-eyebrow-text-transform:uppercase;--type-eyebrow-color:#4b5563;--type-eyebrow-font-family:"Montserrat", "Montserrat Fallback", system-ui, sans-serif;--type-h2-size-desktop:28px;--type-h2-size-mobile:28px;--type-h2-weight:400;--type-h2-line-height:1.2;--type-h2-letter-spacing:0.05em;--type-h2-text-transform:uppercase;--type-h2-color:#000000;--type-h3-size-desktop:18px;--type-h3-size-mobile:18px;--type-h3-weight:400;--type-h3-line-height:1.278;--type-h3-letter-spacing:0.05em;--type-h3-text-transform:uppercase;--type-h3-color:#000000;--type-h4-size-desktop:18px;--type-h4-size-mobile:18px;--type-h4-weight:700;--type-h4-line-height:1.444;--type-h4-letter-spacing:0em;--type-h4-text-transform:none;--type-h4-color:#db1e1e;--type-h5-size-desktop:13px;--type-h5-size-mobile:13px;--type-h5-weight:700;--type-h5-line-height:1.385;--type-h5-letter-spacing:0em;--type-h5-text-transform:none;--type-h5-color:#db1e1e;--type-cta-size-desktop:12px;--type-cta-size-mobile:12px;--type-cta-weight:700;--type-cta-line-height:1.667;--type-cta-letter-spacing:0.075em;--type-cta-text-transform:uppercase;--type-cta-color:#ffffff;--type-cta-font-family:"Montserrat", "Montserrat Fallback", system-ui, sans-serif;--type-nav-dropdown-size-desktop:13px;--type-nav-dropdown-size-mobile:13px;--type-nav-dropdown-weight:600;--type-nav-dropdown-line-height:1.5;--type-nav-dropdown-letter-spacing:0.02em;--type-nav-dropdown-text-transform:none;--type-nav-dropdown-color:#000000;--type-nav-dropdown-font-family:"Barlow Semi Condensed", "Barlow Semi Condensed Fallback", system-ui, sans-serif;--type-utility-bar-size-desktop:14px;--type-utility-bar-size-mobile:14px;--type-utility-bar-weight:400;--type-utility-bar-line-height:1.5;--type-utility-bar-letter-spacing:0.025em;--type-utility-bar-text-transform:none;--type-utility-bar-color:#000000;--type-utility-bar-font-family:"Barlow Semi Condensed", "Barlow Semi Condensed Fallback", system-ui, sans-serif;--type-nav-trigger-size-desktop:20px;--type-nav-trigger-size-mobile:20px;--type-nav-trigger-weight:400;--type-nav-trigger-line-height:1.4;--type-nav-trigger-letter-spacing:0.02em;--type-nav-trigger-text-transform:uppercase;--type-nav-trigger-color:#000000;--type-nav-trigger-font-family:"Oswald", "Oswald Fallback", system-ui, sans-serif;--type-mobile-nav-size-desktop:14px;--type-mobile-nav-size-mobile:14px;--type-mobile-nav-weight:600;--type-mobile-nav-line-height:1.43;--type-mobile-nav-letter-spacing:0.025em;--type-mobile-nav-text-transform:uppercase;--type-mobile-nav-color:#000000;--type-mobile-nav-font-family:"Oswald", "Oswald Fallback", system-ui, sans-serif;--brand-section-margin-bottom:85px;--brand-section-padding-y:100px;--brand-cta-padding-y:65px;--brand-heading-margin-bottom:22px;--brand-heading-margin-bottom-content:40px;--brand-outer-gutter:15px;--nav-dropdown-link-padding:8px 10px;--nav-dropdown-item-gap:2px;--nav-dropdown-hover-bg:#f5f5f5;--nav-dropdown-hover-color:#db1e1e;--nav-dropdown-panel-padding:16px 18px;--nav-dropdown-panel-min-width:220px;--nav-dropdown-panel-shadow:0 12px 32px rgba(0, 0, 0, 0.12);--nav-dropdown-panel-border-top:3px solid #db1e1e;--nav-dropdown-panel-border:1px solid #dadada;--nav-dropdown-panel-radius:0px;--utility-bar-hover-color:#db1e1e;--utility-bar-background:#f8f9fa;--utility-bar-padding:4px 24px;--utility-bar-item-gap:8px;--utility-bar-justify:flex-end;--utility-bar-separator-color:#000000;--utility-bar-min-height:32px;--nav-trigger-hover-color:#db1e1e;--nav-trigger-item-gap:20px;--nav-trigger-link-padding:0;--nav-trigger-justify:center;--mobile-nav-hover-color:#db1e1e;--mobile-nav-divider-color:#c3c3c3;--mobile-nav-link-padding:12px 0;--mobile-nav-panel-background:#fafafa;--mobile-nav-utility-size:12px;--mobile-nav-utility-color:#4b5563;--mobile-nav-utility-hover-color:#000000;--mobile-nav-utility-row-padding:4px 0;--mobile-nav-utility-menu-hover-background:#f5f5f5;--header-actions-color:rgba(0, 0, 0, 0.7);}