/* Premium inventory page — dealer template 2.0. Client values via placeholders/config only. */
.nav-logo { align-items: center; gap: 10px; text-decoration: none; }
.nav-logo-text {
  font-family: 'Bricolage Grotesque', sans-serif;
  font-weight: 800;
  font-size: 1.05rem;
  color: var(--navy-deep);
  letter-spacing: -.02em;
  line-height: 1.1;
}
.inv-card-img img, .ht-card .inv-card-img img {
  object-fit: cover;
}
/* ============================================================
       INVENTORY · PREMIUM REBUILD
       Self-contained style layer using the same design system as
       the premium homepage: Bricolage Grotesque / Instrument Sans /
       Spline Sans Mono, deep navy + champagne gold, gold hairlines,
       glass surfaces, and restrained micro-animation.
       All JS hooks (IDs, classes, data attributes) are unchanged.
       ============================================================ */
    :root {
      --brand-blue: #16469B;
      --brand-blue-deep: #0B2559;
      --brand-blue-night: #06183D;
      --brand-gold: #FFB81C;
      --brand-gold-deep: #E8A400;
      --brand-red: #D7261E;
      --navy-royal:var(--brand-blue,#16469B); --navy-mid:#0F327A; --navy-deep:var(--brand-blue-deep,#0B2559);
      --navy-night:var(--brand-blue-night,#06183D); --navy-abyss:#030C20;
      --gold:var(--brand-gold,#FFB81C); --gold-soft:#FFCB57; --gold-deep:var(--brand-gold-deep,#E8A400); --gold-dark:#B98200;
      --red:var(--brand-red,#D7261E); --sand:#F8F4EC; --ink:#141927; --ink-soft:#4A5268;
      --line:rgba(11,37,89,.12);
      --ease-out:cubic-bezier(.22,.68,0,1);
      /* Legacy variable names kept so any JS-injected markup that
         still references them resolves to the premium palette. */
      --section-alt:#F8F4EC;
      --divider:rgba(11,37,89,.12);
      --text-primary:#141927;
      --text-secondary:#4A5268;
      --text-muted:#6B7590;
      --dark-section:#0B2559;
      --darker-navy:#06183D;
      --amber:#B98200;
    }
    * { margin:0; padding:0; box-sizing:border-box; }
    html { scroll-behavior:smooth; -webkit-text-size-adjust:100%; overflow-x:clip; overflow-y:auto; }
    body {
      font-family:'Instrument Sans', system-ui, sans-serif;
      color:var(--ink);
      background:#fff;
      font-size:16px;
      line-height:1.6;
      -webkit-font-smoothing:antialiased;
      -webkit-tap-highlight-color:transparent;
      overflow-x:clip;
      overflow-y:auto;
    }
    h1, h2, h3, h4, .announcement-bar, .nav-logo-text, .inv-card-name {
      overflow-wrap:anywhere;
      word-break:break-word;
      max-width:100%;
    }
    img { max-width:100%; display:block; }
    a { color:inherit; }
    button, select, input { font-family:inherit; }
    [id] { scroll-margin-top:96px; }
    [hidden] { display:none !important; }
    ::selection { background:var(--gold); color:var(--navy-night); }
    a:focus-visible, button:focus-visible, input:focus-visible, select:focus-visible {
      outline:3px solid var(--gold); outline-offset:2px; border-radius:6px;
    }
    h1, h2, h3, h4 {
      font-family:'Bricolage Grotesque', sans-serif;
      font-weight:800;
      line-height:1.08;
      letter-spacing:-.02em;
      color:var(--navy-deep);
    }
    /* ---------- Gold shimmer hairline ---------- */
    .gold-hairline { position:relative; height:1px; background:rgba(255,184,28,.28); overflow:hidden; }
    .gold-hairline::after {
      content:""; position:absolute; top:0; bottom:0; width:38%;
      background:linear-gradient(90deg,transparent,#FFD46A 50%,transparent);
      animation:sweep 5.5s ease-in-out infinite;
    }
    @keyframes sweep { 0%{transform:translateX(-120%)} 55%,100%{transform:translateX(300%)} }
    /* ---------- Shared premium buttons (gold) ---------- */
    .inv-card-cta, .ht-help-cta, .btn-coupon, .nav-call-cta,
    .inventory-gate-form button[type="submit"],
    .ghl-form-shell button[type="submit"] {
      position:relative;
      display:inline-flex; align-items:center; justify-content:center; gap:7px;
      font-family:'Bricolage Grotesque', sans-serif; font-weight:700;
      color:var(--navy-night);
      background:linear-gradient(180deg,#FFD46A 0%,#FFB81C 52%,#F0A400 100%);
      border:1px solid transparent; border-radius:13px;
      text-decoration:none; cursor:pointer; text-align:center; white-space:nowrap;
      overflow:hidden; isolation:isolate;
      box-shadow:inset 0 1px 0 rgba(255,255,255,.55), 0 12px 28px -10px rgba(232,164,0,.7);
      transition:transform .3s var(--ease-out), box-shadow .3s var(--ease-out);
    }
    .inv-card-cta:hover, .ht-help-cta:hover, .btn-coupon:hover, .nav-call-cta:hover,
    .inventory-gate-form button[type="submit"]:hover,
    .ghl-form-shell button[type="submit"]:hover {
      transform:translateY(-2px);
      box-shadow:inset 0 1px 0 rgba(255,255,255,.65), 0 18px 38px -12px rgba(232,164,0,.85);
      color:var(--navy-night);
    }
    .inv-card-cta:active, .ht-help-cta:active,
    .inventory-gate-form button[type="submit"]:active,
    .ghl-form-shell button[type="submit"]:active { transform:translateY(0) scale(.98); }
    .inv-card-cta::after, .ht-help-cta::after,
    .inventory-gate-form button[type="submit"]::after,
    .ghl-form-shell button[type="submit"]::after {
      content:""; position:absolute; inset:0; z-index:1;
      background:linear-gradient(115deg,transparent 32%,rgba(255,255,255,.55) 50%,transparent 68%);
      transform:translateX(-130%); transition:transform .65s ease;
    }
    .inv-card-cta:hover::after, .ht-help-cta:hover::after,
    .inventory-gate-form button[type="submit"]:hover::after,
    .ghl-form-shell button[type="submit"]:hover::after { transform:translateX(130%); }
    /* ============================================================
       [1] ANNOUNCEMENT BAR
       ============================================================ */
    .announcement-bar {
      position:relative;
      background:linear-gradient(180deg,var(--navy-night),var(--navy-abyss));
      color:var(--gold-soft);
      text-align:center;
      padding:9px 14px;
      font-family:'Spline Sans Mono', monospace;
      font-weight:600;
      font-size:.66rem;
      letter-spacing:.12em;
      line-height:1.35;
      text-transform:uppercase;
      white-space:normal;
    }
    .announcement-bar::after {
      content:""; position:absolute; left:0; right:0; bottom:0; height:1px;
      background:
        linear-gradient(90deg,transparent,#FFD46A 50%,transparent) no-repeat,
        rgba(255,184,28,.28);
      background-size:38% 100%;
      animation:inv-sweep 5.5s ease-in-out infinite;
    }
    @keyframes inv-sweep {
      0% { background-position:-80% 0; }
      55%, 100% { background-position:180% 0; }
    }
    body.inventory-page .announcement-bar { padding:7px 14px; font-size:.62rem; line-height:1.3; }
    body.inventory-page { background:var(--sand); }
    /* ============================================================
       [2] NAV BAR
       ============================================================ */
    .navbar {
      position:sticky; top:0; z-index:80;
      display:flex; align-items:center; gap:16px;
      min-height:66px; padding:12px 18px;
      background:rgba(255,255,255,.85);
      backdrop-filter:blur(20px) saturate(1.4);
      -webkit-backdrop-filter:blur(20px) saturate(1.4);
      border-bottom:1px solid var(--line);
    }
    .nav-logo { display:inline-flex; flex:none; }
    .nav-logo img { height:38px; width:auto; }
    .nav-call-cta { margin-left:auto; min-height:44px; padding:0 16px; border-radius:999px; font-size:.82rem; }
    .nav-call-cta svg { flex:none; }
    .nav-links { display:none; }
    .nav-actions { display:none; }
    .phone-badge-wrap { display:inline-flex; align-items:center; gap:9px; text-decoration:none; }
    .phone-badge-pill {
      display:inline-flex; align-items:center; gap:4px;
      background:linear-gradient(180deg,#E8382F,#B71E17); color:#fff;
      border-radius:999px; padding:4px 9px;
      font-family:'Spline Sans Mono', monospace; font-weight:600; font-size:.58rem; letter-spacing:.1em;
      box-shadow:0 6px 14px -6px rgba(215,38,30,.6);
    }
    .phone-badge-number {
      font-family:'Bricolage Grotesque', sans-serif; font-weight:700;
      color:var(--navy-royal); font-size:1rem; white-space:nowrap;
      transition:color .25s;
    }
    .phone-badge-wrap:hover .phone-badge-number { color:var(--navy-deep); }
    .btn-coupon { min-height:44px; padding:0 18px; font-size:.84rem; border-radius:11px; }
    .nav-hamburger {
      width:48px; height:48px; flex:none;
      border:1px solid var(--line); border-radius:12px; background:#fff; cursor:pointer;
      display:flex; flex-direction:column; align-items:center; justify-content:center; gap:5px;
      transition:border-color .25s;
    }
    .nav-hamburger:hover { border-color:var(--navy-royal); }
    .nav-hamburger span { width:20px; height:2px; background:var(--navy-deep); border-radius:2px; }
    .nav-mobile-menu {
      position:fixed; inset:0; z-index:70;
      display:flex; flex-direction:column;
      padding:100px 24px calc(34px + env(safe-area-inset-bottom));
      background:
        radial-gradient(1000px 700px at 85% -10%,rgba(22,70,155,.55),transparent 60%),
        linear-gradient(180deg,var(--navy-night),var(--navy-abyss));
      color:#fff;
      transform:translateX(102%);
      transition:transform .38s var(--ease-out), visibility .38s;
      overflow-y:auto;
      visibility:hidden;
      pointer-events:none;
    }
    .nav-mobile-menu.open {
      transform:none;
      visibility:visible;
      pointer-events:auto;
    }
    .nav-mobile-menu > a:not(.phone-badge-wrap):not(.btn-coupon) {
      font-family:'Bricolage Grotesque', sans-serif; font-weight:700; font-size:1.35rem;
      color:#fff; text-decoration:none; padding:15px 0;
      border-bottom:1px solid rgba(255,255,255,.09);
      transition:padding-left .25s var(--ease-out), color .25s;
    }
    .nav-mobile-menu > a:not(.phone-badge-wrap):not(.btn-coupon):hover { padding-left:8px; color:var(--gold-soft); }
    .nav-mobile-menu .phone-badge-wrap { margin-top:auto; padding-top:26px; }
    .nav-mobile-menu .phone-badge-number { color:#fff; font-size:1.15rem; }
    .nav-mobile-menu .btn-coupon { margin-top:14px; width:100%; min-height:52px; }
    @media (min-width:981px) {
      .navbar { gap:26px; padding:12px 24px; }
      .nav-logo img { height:42px; }
      .nav-call-cta { display:none; }
      .nav-hamburger { display:none; }
      .nav-mobile-menu { display:none; }
      .nav-links { display:flex; gap:24px; margin-left:6px; }
      .nav-links a {
        position:relative;
        font-family:'Bricolage Grotesque', sans-serif; font-weight:600;
        font-size:.8rem; letter-spacing:.07em; text-transform:uppercase;
        color:var(--ink); text-decoration:none; padding:8px 0; white-space:nowrap;
        transition:color .25s;
      }
      .nav-links a::after {
        content:""; position:absolute; left:0; right:0; bottom:2px; height:2px; border-radius:2px;
        background:linear-gradient(90deg,var(--gold),var(--gold-deep));
        transform:scaleX(0); transform-origin:left;
        transition:transform .3s var(--ease-out);
      }
      .nav-links a:hover { color:var(--navy-royal); }
      .nav-links a:hover::after { transform:scaleX(1); }
      .nav-links a.nav-active { color:var(--navy-royal); }
      .nav-links a.nav-active::after { transform:scaleX(1); }
      .nav-actions { display:flex; align-items:center; gap:18px; margin-left:auto; }
    }
    /* ============================================================
       UNLOCKED BANNER
       ============================================================ */
    .inventory-unlocked-banner {
      display:none;
      margin:0; padding:10px 16px;
      text-align:center;
      background:linear-gradient(180deg,#EAF7EF,#DDF0E5);
      border-bottom:1px solid #C4E6D0;
      color:#12603A;
      font-weight:600; font-size:.88rem;
    }
    body:not(.inventory-locked) .inventory-unlocked-banner,
    body.inventory-unlocked .inventory-unlocked-banner,
    .inventory-unlocked-banner.visible { display:block; }
    .inventory-unlocked-banner[hidden] { display:none !important; }
    /* ============================================================
       INVENTORY GATE — premium glass modal over ambient navy
       ============================================================ */
    .inventory-gate {
      display:none;
      position:fixed; inset:0; z-index:120;
      align-items:center; justify-content:center;
      padding:12px;
      background:
        radial-gradient(1000px 560px at 82% -8%,rgba(255,184,28,.12),transparent 62%),
        radial-gradient(1000px 640px at 12% 30%,rgba(22,70,155,.55),transparent 62%),
        linear-gradient(165deg,rgba(6,24,61,.95),rgba(3,12,32,.97));
      backdrop-filter:blur(10px);
      -webkit-backdrop-filter:blur(10px);
    }
    body.inventory-locked .inventory-gate { display:flex; }
    body.inventory-locked { overflow:hidden; }
    body.inventory-locked .inventory-gated-wrap {
      filter:blur(16px) saturate(.9);
      pointer-events:none;
      user-select:none;
    }
    /* Safety valves for whichever unlock pattern the gate script uses */
    .inventory-gate[hidden],
    .inventory-gate.is-hidden, .inventory-gate.hidden, .inventory-gate.closed,
    body.inventory-unlocked .inventory-gate { display:none !important; }
    body.inventory-unlocked { overflow:auto; }
    body.inventory-unlocked .inventory-gated-wrap,
    .inventory-gated-wrap.unlocked { filter:none !important; pointer-events:auto !important; user-select:auto !important; }
    .inventory-gate-panel {
      position:relative;
      width:min(100%,520px);
      max-height:calc(100vh - 24px);
      max-height:calc(100dvh - 24px);
      display:flex; flex-direction:column;
      background:linear-gradient(168deg,rgba(255,255,255,.96),rgba(255,255,255,.88));
      backdrop-filter:blur(26px) saturate(1.3);
      -webkit-backdrop-filter:blur(26px) saturate(1.3);
      border:1px solid rgba(255,255,255,.7);
      border-radius:26px;
      box-shadow:0 44px 90px -28px rgba(3,12,32,.85), inset 0 1px 0 rgba(255,255,255,.9);
      overflow:hidden;
    }
    .inventory-gate-panel::before {
      content:""; position:absolute; top:0; left:26px; right:26px; height:3px;
      border-radius:0 0 4px 4px;
      background:linear-gradient(90deg,var(--gold-soft),var(--gold) 40%,var(--gold-deep));
    }
    .inventory-gate-header { padding:20px 22px 6px; text-align:center; }
    .inventory-gate-logo { height:26px; width:auto; margin:0 auto 10px; }
    .inventory-gate-eyebrow {
      display:inline-flex; align-items:center; gap:10px;
      font-family:'Spline Sans Mono', monospace; font-weight:600;
      font-size:.58rem; letter-spacing:.26em; text-transform:uppercase;
      color:var(--gold-dark); margin-bottom:6px;
    }
    .inventory-gate-header h2 { font-size:clamp(1.22rem,4.4vw,1.5rem); margin-bottom:6px; }
    .inventory-gate-lead { font-size:.85rem; line-height:1.5; color:var(--ink-soft); max-width:400px; margin:0 auto; }
    .inventory-gate-stats { display:flex; flex-wrap:wrap; justify-content:center; gap:7px; margin-top:10px; }
    .inventory-gate-stat {
      display:inline-flex; align-items:center; gap:5px;
      border:1px solid rgba(232,164,0,.35);
      background:linear-gradient(180deg,rgba(255,184,28,.1),rgba(255,184,28,.04));
      border-radius:999px; padding:5px 11px;
      font-family:'Spline Sans Mono', monospace; font-weight:500;
      font-size:.58rem; letter-spacing:.08em; text-transform:uppercase;
      color:var(--gold-dark);
    }
    .inventory-gate-stat::before { content:"★"; font-size:.62rem; color:var(--gold-deep); }
    /* No internal scrolling — the panel is compacted to fit the viewport instead */
    .inventory-gate-scroll-body { overflow:visible; padding:0 22px; }
    .inventory-gate-body { padding:4px 0 2px; }
    .inventory-gate-form { display:flex; flex-direction:column; }
    .inventory-gate-form label,
    .ghl-form-shell label {
      display:block;
      font-family:'Spline Sans Mono', monospace; font-weight:600;
      font-size:.6rem; letter-spacing:.14em; text-transform:uppercase;
      color:var(--ink-soft);
      margin:10px 0 6px;
    }
    /* Conversion: placeholders carry the contact field names visually;
       the labels stay in the DOM for screen readers. The financing
       question keeps its visible label since the select needs it. */
    .inventory-gate-form label[for="full_name"],
    .inventory-gate-form label[for="email"],
    .inventory-gate-form label[for="phone"] {
      position:absolute; width:1px; height:1px; margin:0; padding:0;
      overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; border:0;
    }
    .inventory-gate-form #full_name,
    .inventory-gate-form #email,
    .inventory-gate-form #phone { margin-top:9px; }
    .inventory-gate-form input, .inventory-gate-form select,
    .ghl-form-shell input, .ghl-form-shell select {
      width:100%; min-height:48px;
      padding:11px 14px;
      border:1px solid rgba(11,37,89,.16); border-radius:13px;
      font-family:'Instrument Sans', sans-serif; font-size:16px;
      background:rgba(255,255,255,.85); color:var(--ink);
      appearance:none; -webkit-appearance:none;
      transition:border-color .25s, box-shadow .25s;
    }
    .inventory-gate-form select, .ghl-form-shell select {
      background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='9' fill='none'%3E%3Cpath d='M1 1l6 6 6-6' stroke='%234A5268' stroke-width='2' stroke-linecap='round'/%3E%3C/svg%3E");
      background-repeat:no-repeat; background-position:right 15px center;
    }
    .inventory-gate-form input:focus, .inventory-gate-form select:focus,
    .ghl-form-shell input:focus, .ghl-form-shell select:focus {
      border-color:var(--navy-royal);
      box-shadow:0 0 0 4px rgba(22,70,155,.12);
      outline:none;
    }
    .inventory-gate-form-honeypot {
      position:absolute !important; left:-9999px !important;
      width:1px; height:1px; overflow:hidden; opacity:0;
    }
    .inventory-gate-turnstile { margin:10px 0 0; }
    .inventory-gate-turnstile:empty { margin:0; }
    .inventory-gate-form button[type="submit"],
    .ghl-form-shell button[type="submit"] {
      width:100%; min-height:52px; margin-top:12px; font-size:.95rem;
      border-radius:14px;
    }
    .inventory-gate-form-disclaimer {
      font-size:.62rem; line-height:1.45; color:var(--ink-soft);
      margin:9px 0 2px;
    }
    .inventory-gate-form-disclaimer a { color:var(--navy-royal); font-weight:700; }
    .inventory-gate-form-error,
    #ghl-modal-lead-error {
      color:var(--red); font-size:.84rem; font-weight:600; margin:0 0 4px;
    }
    .inventory-gate-footer { padding:9px 22px 12px; border-top:1px dashed rgba(11,37,89,.18); }
    .inventory-gate-trust { font-size:.68rem; color:var(--ink-soft); text-align:center; }
    /* Progressive compaction: trim decoration before content ever needs to scroll */
    @media (max-height:760px) {
      .inventory-gate-logo { display:none; }
      .inventory-gate-header { padding-top:16px; }
      .inventory-gate-lead { font-size:.8rem; }
    }
    @media (max-height:660px) {
      .inventory-gate-stats, .inventory-gate-footer { display:none; }
      .inventory-gate-eyebrow { margin-bottom:4px; }
      .inventory-gate-header h2 { font-size:1.15rem; }
      .inventory-gate-form input, .inventory-gate-form select { min-height:44px; padding:9px 13px; }
      .inventory-gate-form button[type="submit"] { min-height:48px; margin-top:10px; }
      .inventory-gate-body { padding-bottom:14px; }
    }
    @media (max-height:580px) {
      .inventory-gate-lead { display:none; }
      /* TCPA consent language must stay visible — shrink, never hide */
      .inventory-gate-form-disclaimer { font-size:.56rem; line-height:1.35; }
    }
    /* Absolute last resort for very short landscape phones only */
    @media (max-height:480px) {
      .inventory-gate-panel { overflow-y:auto; }
    }
    /* ============================================================
       HOT TUB INVENTORY SECTION
       ============================================================ */
    .ht-inventory-section { max-width:1200px; margin:0 auto; padding:46px 20px 10px; }
    .ht-inventory-section h1 { font-size:clamp(1.9rem,5.4vw,2.9rem); margin-bottom:12px; }
    .ht-sub { color:var(--ink-soft); max-width:680px; font-size:1.02rem; line-height:1.65; }
    .ht-chips { display:flex; flex-wrap:wrap; gap:9px; margin-top:20px; }
    .ht-chips:empty { display:none; }
    .ht-chip, .ht-chips button {
      border:1px solid rgba(11,37,89,.16); border-radius:999px;
      padding:11px 17px; min-height:44px;
      font-family:'Bricolage Grotesque', sans-serif; font-weight:600; font-size:.86rem;
      background:#fff; color:var(--ink); cursor:pointer;
      transition:border-color .2s, background .2s, color .2s, transform .2s var(--ease-out), box-shadow .2s;
    }
    .ht-chip:hover, .ht-chips button:hover { border-color:var(--navy-royal); transform:translateY(-1px); }
    .ht-chip.active, .ht-chip.is-active, .ht-chip[aria-pressed="true"], .ht-chip.selected {
      background:linear-gradient(165deg,var(--navy-royal),var(--navy-deep));
      border-color:var(--navy-deep); color:#fff;
      box-shadow:0 10px 22px -10px rgba(11,37,89,.55);
    }
    .ht-pay-disclaimer { font-size:.72rem; color:var(--ink-soft); margin-top:16px; max-width:780px; }
    .ht-results-bar { margin:20px 0 4px; font-size:.9rem; font-weight:600; color:var(--ink-soft); }
    .ht-results-bar strong { color:var(--navy-deep); font-family:'Bricolage Grotesque', sans-serif; }
    .ht-grid { display:grid; grid-template-columns:1fr; gap:18px; margin-top:12px; }
    /* ============================================================
       INVENTORY SHELL / FILTERS
       ============================================================ */
    .inventory-shell { width:min(100%,980px); margin:0 auto; padding:0 24px 56px; }
    .inventory-sidebar-title { display:none; }
    .inventory-controls { margin-top:20px; }
    .inventory-filter-card {
      background:linear-gradient(168deg,rgba(255,255,255,.96),rgba(255,255,255,.9));
      border:1px solid var(--line);
      border-radius:20px;
      box-shadow:0 14px 36px -18px rgba(6,24,61,.25);
      padding:16px;
    }
    .inventory-filter-row {
      display:grid;
      grid-template-columns:minmax(220px,1fr) auto minmax(190px,auto);
      gap:12px; align-items:center;
    }
    .inventory-search {
      width:100%; min-height:50px;
      border:1px solid rgba(11,37,89,.16); border-radius:13px;
      padding:0 16px;
      font:600 15px 'Instrument Sans', sans-serif;
      color:var(--ink); background:rgba(255,255,255,.85);
      transition:border-color .25s, box-shadow .25s;
    }
    .inventory-search:focus { border-color:var(--navy-royal); box-shadow:0 0 0 4px rgba(22,70,155,.12); outline:none; }
    .inventory-search::placeholder { color:var(--ink-soft); }
    .inventory-filter-toggle {
      min-height:50px; border:none; border-radius:13px; padding:0 18px;
      background:linear-gradient(165deg,var(--navy-royal),var(--navy-deep));
      color:#fff; cursor:pointer;
      font-family:'Bricolage Grotesque', sans-serif; font-size:.88rem; font-weight:700;
      display:inline-flex; align-items:center; justify-content:center; gap:8px; white-space:nowrap;
      box-shadow:0 12px 26px -12px rgba(11,37,89,.6);
      transition:transform .25s var(--ease-out), box-shadow .25s;
    }
    .inventory-filter-toggle:hover { transform:translateY(-1px); box-shadow:0 16px 32px -12px rgba(11,37,89,.7); }
    .inventory-sort, .inventory-sort-desktop {
      min-height:50px;
      border:1px solid rgba(11,37,89,.16); border-radius:13px; padding:0 38px 0 14px;
      background:#fff; color:var(--ink);
      font:600 14px 'Instrument Sans', sans-serif;
      appearance:none; -webkit-appearance:none;
      background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='9' fill='none'%3E%3Cpath d='M1 1l6 6 6-6' stroke='%234A5268' stroke-width='2' stroke-linecap='round'/%3E%3C/svg%3E");
      background-repeat:no-repeat; background-position:right 14px center;
      cursor:pointer;
    }
    .inventory-sort-desktop { display:none; }
    .inventory-advanced-filters {
      display:none;
      grid-template-columns:repeat(3,1fr);
      gap:18px; margin-top:16px; padding-top:16px;
      border-top:1px dashed rgba(11,37,89,.18);
    }
    .inventory-advanced-filters.open { display:grid; }
    .filter-group h3 {
      font-family:'Spline Sans Mono', monospace;
      font-size:.62rem; font-weight:600;
      color:var(--gold-dark);
      text-transform:uppercase; letter-spacing:.2em;
      margin:0 0 10px;
    }
    .filter-option {
      display:flex; align-items:center; gap:9px;
      margin-bottom:9px; cursor:pointer;
      font-size:14px; color:var(--ink-soft);
      transition:color .2s;
    }
    .filter-option:hover { color:var(--navy-deep); }
    .filter-option input[type="checkbox"] { width:17px; height:17px; accent-color:var(--navy-royal); }
    .price-slider-wrap input[type="range"] { width:100%; accent-color:var(--gold-deep); }
    .price-slider-labels {
      display:flex; justify-content:space-between;
      font-family:'Spline Sans Mono', monospace;
      font-size:.62rem; color:var(--ink-soft); margin-top:4px;
    }
    #priceDisplay {
      font-size:13px; font-weight:700; color:var(--navy-deep); margin-top:8px;
      font-family:'Bricolage Grotesque', sans-serif;
    }
    .btn-reset {
      width:100%; min-height:42px;
      background:var(--sand);
      border:1px solid var(--line); border-radius:12px;
      color:var(--navy-deep); cursor:pointer;
      font:700 13px 'Bricolage Grotesque', sans-serif;
      transition:border-color .2s, background .2s;
    }
    .btn-reset:hover { border-color:var(--navy-royal); background:#fff; }
    .inv-other-section h2 { font-size:clamp(1.4rem,4vw,1.9rem); margin:30px 0 6px; }
    .inv-results-bar { display:flex; justify-content:space-between; align-items:center; gap:12px; margin-bottom:14px; }
    .inv-results-count { color:var(--ink-soft); font-size:14px; font-weight:600; }
    .inv-results-prefix-desktop, .inv-results-suffix-desktop { display:none; }
    .inv-results-suffix-mobile { display:inline; }
    .inv-results-count strong { color:var(--navy-deep); font-family:'Bricolage Grotesque', sans-serif; }
    .inv-results-note {
      color:var(--gold-dark);
      font-family:'Spline Sans Mono', monospace;
      font-size:.64rem; font-weight:600; letter-spacing:.08em; text-transform:uppercase;
    }
    /* ============================================================
       PRODUCT CARDS (shared: .inv-card and JS-rendered .ht-card)
       ============================================================ */
    .inv-grid { display:grid; grid-template-columns:1fr; gap:22px; }
    .inv-card, .ht-card {
      background:#fff;
      border:1px solid var(--line);
      border-radius:20px;
      overflow:hidden;
      box-shadow:0 8px 22px -14px rgba(6,24,61,.16);
      transition:box-shadow .4s var(--ease-out), transform .4s var(--ease-out), border-color .3s;
    }
    .inv-card:hover, .ht-card:hover {
      transform:translateY(-4px);
      border-color:rgba(232,164,0,.4);
      box-shadow:0 28px 54px -22px rgba(6,24,61,.32);
    }
    .inv-card-img, .ht-card .inv-card-img {
      position:relative; aspect-ratio:4/3; height:auto; overflow:hidden;
      background:linear-gradient(155deg,#eef2f8,#e2e9f4);
    }
    .inv-card-img img {
      position:absolute; inset:0; width:100%; height:100%;
      object-fit:cover; object-position:center; display:block;
      transition:transform .7s var(--ease-out);
    }
    .inv-card:hover .inv-card-img img, .ht-card:hover .inv-card-img img { transform:scale(1.045); }
    .product-tag {
      position:absolute; top:12px; left:12px; z-index:1;
      border-radius:999px; padding:6px 12px;
      font-family:'Spline Sans Mono', monospace; font-weight:600;
      font-size:.6rem; letter-spacing:.09em; text-transform:uppercase;
      background:linear-gradient(180deg,#FFD46A,#F5AD0E); color:var(--navy-night);
      box-shadow:0 8px 18px -8px rgba(232,164,0,.7);
    }
    .product-tag-dark { background:linear-gradient(180deg,#2A3244,#141927); color:#fff; box-shadow:0 8px 18px -8px rgba(0,0,0,.5); }
    .product-tag-blue { background:linear-gradient(180deg,var(--navy-royal),var(--navy-deep)); color:#fff; box-shadow:0 8px 18px -8px rgba(11,37,89,.6); }
    .inv-card-body { padding:20px 24px 24px; display:flex; flex-direction:column; }
    .inv-card-top { flex:1 1 auto; }
    .inv-card-name { color:var(--navy-deep); font-size:22px; font-weight:700; margin:0 0 14px; }
    .inv-card-divider { border:none; border-top:1px solid var(--line); margin:0 0 14px; }
    .inv-card-pills { display:grid; grid-template-columns:repeat(3,1fr); gap:10px; margin-bottom:16px; }
    .inv-pill {
      min-height:78px; background:#fff; border-radius:0; border:none;
      padding:10px 6px;
      display:flex; flex-direction:column; align-items:center; justify-content:center; gap:7px;
      text-align:center;
    }
    .inv-pill svg { color:var(--navy-royal); flex-shrink:0; }
    .inv-pill span {
      color:var(--ink-soft);
      font-family:'Spline Sans Mono', monospace;
      font-size:.6rem; font-weight:600; letter-spacing:.04em; text-transform:uppercase;
      line-height:1.3;
    }
    .inv-price-box {
      display:flex; justify-content:space-between; align-items:flex-end;
      gap:12px 18px; margin-bottom:14px;
      padding-top:13px; border-top:1px solid rgba(11,37,89,.09);
    }
    .inv-price-left { flex:1; min-width:0; }
    .inv-card-msrp, .inv-card-price { margin:0; }
    .inv-card-msrp { color:var(--ink-soft); font-size:13px; margin-bottom:2px; }
    .inv-card-msrp span { text-decoration:line-through; opacity:.75; }
    .inv-card-price {
      color:var(--navy-deep);
      font-family:'Bricolage Grotesque', sans-serif;
      font-size:26px; font-weight:800; letter-spacing:-.01em;
      line-height:1.15; margin-bottom:4px;
    }
    .inv-card-save {
      color:#12603A;
      font-family:'Bricolage Grotesque', sans-serif;
      font-size:15px; font-weight:700; margin:0; line-height:1.2;
    }
    .inv-price-box--quote .inv-card-msrp,
    .inv-price-box--quote .inv-card-save { display:none; }
    .inv-financing-label {
      font-family:'Spline Sans Mono', monospace;
      font-size:.6rem; font-weight:600; letter-spacing:.12em; text-transform:uppercase;
      color:var(--ink-soft); margin:0 0 4px;
    }
    .inv-card-monthly {
      font-family:'Bricolage Grotesque', sans-serif;
      font-size:32px; line-height:1; font-weight:800;
      background:linear-gradient(180deg,#D9A50E 8%,#B98200 70%);
      -webkit-background-clip:text; background-clip:text; color:transparent;
      margin:0; text-align:right; flex-shrink:0;
    }
    .inv-card-cta {
      width:100%; min-height:56px; margin-top:4px;
      font-size:.92rem; letter-spacing:.01em;
    }
    .inv-card-cta-arrow { color:inherit; font-size:18px; line-height:1; font-weight:800; position:relative; z-index:2; }
    .inv-no-results {
      display:none; text-align:center; padding:40px 20px;
      background:#fff; border:1px solid var(--line); border-radius:20px;
      color:var(--ink-soft); font-size:16px; grid-column:1 / -1;
    }
    .inv-no-results.visible { display:block; }
    /* ============================================================
       RESPONSIVE — mirrors the original breakpoints
       ============================================================ */
    @media (max-width:900px) {
      body.inventory-page { background:var(--sand); padding-bottom:96px; }
      .inventory-shell { max-width:520px; padding-left:16px; padding-right:16px; padding-bottom:96px; }
      .inventory-controls { margin-top:14px; }
      .inventory-filter-card { box-shadow:none; border-radius:0; border:none; background:transparent; padding:0; }
      .inventory-filter-row { grid-template-columns:1fr auto; }
      .inventory-search, .inventory-filter-toggle, .inventory-sort { min-height:50px; border-radius:13px; }
      .inventory-sort { grid-column:1 / -1; width:220px; }
      .inv-results-bar { margin:14px 0 10px; }
      .inv-results-note { display:none; }
      .inventory-advanced-filters {
        background:#fff; border:1px solid var(--line); border-radius:16px;
        padding:16px; margin-top:12px;
        box-shadow:0 14px 36px -18px rgba(6,24,61,.22);
      }
      .inv-card, .ht-card { border-radius:16px; }
      .inv-card-img { aspect-ratio:4/3; height:auto; }
      .inv-card-body { padding:14px 16px 16px; }
      .inv-card-name { font-size:18px; margin-bottom:10px; line-height:1.2; }
      .inv-card-divider { display:none; }
      .inv-card-pills {
        border-top:1px solid var(--line); border-bottom:1px solid var(--line);
        padding:10px 0; margin-bottom:10px; gap:6px;
      }
      .inv-pill { min-height:58px; padding:6px 4px; }
      .inv-pill span { font-size:.56rem; }
      .inv-price-box { margin-bottom:10px; gap:4px 12px; padding-top:0; border-top:none; }
      .inv-card-msrp { font-size:12px; }
      .inv-card-price { font-size:20px; }
      .inv-card-save { font-size:14px; }
      .inv-card-monthly { font-size:26px; }
      .inv-card-cta { min-height:52px; font-size:.88rem; }
    }
    @media (max-width:768px) {
      .navbar { padding-top:12px; padding-bottom:12px; }
      .inventory-shell { max-width:520px; padding:0 14px 44px; }
      .inventory-filter-row { grid-template-columns:1fr auto; gap:10px; }
      .inventory-advanced-filters.open { display:block; }
      .filter-group { margin-bottom:16px; }
      .inv-results-bar { margin-bottom:10px; }
      .inv-results-note { display:none; }
      .inv-grid { grid-template-columns:1fr; gap:16px; }
      .inv-card, .ht-card { border-radius:18px; }
      .inv-card-img { aspect-ratio:4/3; height:auto; }
      .inv-card-body { padding:12px 14px 14px; }
      .inv-card-name { font-size:17px; margin-bottom:8px; }
      .inv-card-pills { padding:8px 0; margin-bottom:8px; }
      .inv-pill { min-height:52px; }
      .inv-price-box { margin-bottom:8px; }
      .inv-card-price { font-size:18px; }
      .inv-card-monthly { font-size:24px; }
      .inv-card-cta { min-height:50px; font-size:.84rem; }
    }
    @media (min-width:901px) {
      body.inventory-page { background:#fff; }
      .inventory-shell { width:min(100%,1200px); padding:32px 24px 64px; }
      .inventory-layout { display:flex; gap:36px; align-items:flex-start; }
      .inventory-sidebar { width:264px; flex-shrink:0; position:sticky; top:92px; }
      .inventory-sidebar-title {
        display:block;
        font-family:'Bricolage Grotesque', sans-serif;
        font-size:30px; font-weight:800; color:var(--navy-deep);
        margin:0 0 18px;
      }
      .inventory-controls { margin-top:0; }
      .inventory-filter-card {
        border:1px solid var(--line); border-radius:16px;
        box-shadow:0 8px 26px -18px rgba(6,24,61,.2);
        padding:20px;
        background:#fff;
      }
      .inventory-filter-row { grid-template-columns:1fr; }
      .inventory-search { min-height:46px; border-radius:11px; padding-left:14px; }
      .inventory-filter-toggle { display:none; }
      .inventory-advanced-filters { display:block; margin-top:18px; padding-top:18px; border-top:1px dashed rgba(11,37,89,.18); }
      .filter-group { margin-bottom:22px; padding-bottom:22px; border-bottom:1px solid var(--line); }
      .filter-group:last-of-type { margin-bottom:0; padding-bottom:0; border-bottom:none; }
      .btn-reset {
        margin-top:16px; background:none; border:none; padding:0; min-height:auto;
        text-align:left; text-decoration:underline; text-underline-offset:3px;
        font-size:14px; font-weight:700; color:var(--navy-royal);
      }
      .btn-reset:hover { color:var(--navy-deep); background:none; }
      .inventory-main { flex:1; min-width:0; }
      .inv-results-bar { margin-bottom:18px; padding-bottom:14px; border-bottom:1px solid var(--line); }
      .inv-results-count {
        font-family:'Bricolage Grotesque', sans-serif;
        font-size:24px; font-weight:800; color:var(--navy-deep);
      }
      .inv-results-prefix-desktop, .inv-results-suffix-desktop { display:inline; }
      .inv-results-suffix-mobile, .inv-results-note { display:none; }
      .inventory-sort-desktop { display:block; min-width:210px; min-height:44px; border-radius:11px; }
      .inv-grid { gap:20px; }
      .ht-grid { grid-template-columns:1fr; gap:20px; }
      .inv-card, .ht-card {
        display:flex; flex-direction:row; align-items:stretch;
        border-radius:18px;
        box-shadow:0 6px 18px -12px rgba(6,24,61,.14);
      }
      .inv-card:hover, .ht-card:hover {
        transform:translateY(-3px);
        box-shadow:0 24px 48px -22px rgba(6,24,61,.3);
      }
      .inv-card-img {
        width:42%; max-width:360px; min-width:260px;
        aspect-ratio:1/1; height:auto; flex-shrink:0; align-self:stretch;
      }
      .inv-card-body { flex:1; padding:24px 28px; justify-content:space-between; }
      .inv-card-name { order:1; font-size:22px; margin-bottom:10px; }
      .inv-card-divider { display:none; }
      .inv-card-top { display:flex; flex-direction:column; flex:1; }
      .inv-price-box { order:2; margin-bottom:14px; padding-top:0; border-top:none; }
      .inv-card-pills {
        order:3;
        display:flex; justify-content:flex-start; gap:28px;
        margin-top:auto; margin-bottom:0; padding-top:14px;
        border-top:1px solid var(--line);
        grid-template-columns:none;
      }
      .inv-pill { min-height:auto; padding:0; background:transparent; align-items:center; }
      .inv-card-price { font-size:24px; }
      .inv-card-monthly { font-size:32px; }
      .inv-card-cta { margin-top:16px; border-radius:13px; min-height:54px; }
    }
    /* ============================================================
       HELP SECTION + FINAL DISCLAIMER
       ============================================================ */
    .ht-help-section {
      position:relative; overflow:hidden;
      text-align:center; color:#fff;
      padding:72px 20px;
      background:
        radial-gradient(900px 480px at 50% -10%,rgba(22,70,155,.55),transparent 60%),
        linear-gradient(180deg,var(--navy-night),var(--navy-abyss));
    }
    .ht-help-section::before, .ht-help-section::after {
      content:""; position:absolute; left:0; right:0; height:1px;
      background:linear-gradient(90deg,transparent,rgba(255,184,28,.65),transparent);
    }
    .ht-help-section::before { top:0; }
    .ht-help-section::after { bottom:0; }
    .ht-help-section h2 { color:#fff; font-size:clamp(1.6rem,5vw,2.4rem); margin-bottom:14px; overflow-wrap:anywhere; word-break:break-word; }
    .ht-help-section p { color:#C9D5EE; max-width:640px; margin:0 auto 26px; font-size:.98rem; line-height:1.65; overflow-wrap:anywhere; }
    .ht-help-cta {
      box-sizing:border-box;
      width:auto;
      max-width:100%;
      min-height:56px;
      padding:12px 22px;
      font-size:.95rem;
      border-radius:14px;
      white-space:normal;
      line-height:1.25;
    }
    @media (max-width:480px) {
      .ht-help-section { padding:56px 16px; }
      .ht-help-cta {
        width:100%;
        max-width:100%;
        padding:14px 16px;
        font-size:.9rem;
      }
    }
    .ht-final-disclaimer {
      max-width:900px; margin:0 auto; padding:28px 20px;
      font-size:.7rem; color:var(--ink-soft); text-align:center; line-height:1.6;
      overflow-wrap:anywhere;
    }
    /* ============================================================
       FOOTER
       ============================================================ */
    .site-footer {
      background:linear-gradient(180deg,var(--navy-deep),var(--navy-abyss));
      color:#C6D4EF; font-size:.9rem;
    }
    .footer-inner {
      max-width:1200px; margin:0 auto;
      display:grid; grid-template-columns:1fr; gap:34px;
      padding:56px 20px 36px;
    }
    .footer-logo {
      height:40px; width:auto; max-width:min(160px, 70vw); margin-bottom:14px;
      object-fit:contain;
    }
    .footer-blurb { font-size:.87rem; line-height:1.65; }
    .footer-social { margin-top:16px; }
    .footer-social a {
      display:inline-flex; align-items:center; justify-content:center;
      width:42px; height:42px; border-radius:50%;
      border:1px solid rgba(255,255,255,.2); color:#C6D4EF;
      transition:border-color .25s, color .25s, background .25s;
    }
    .footer-social a:hover { border-color:var(--gold); color:var(--gold-soft); background:rgba(255,184,28,.07); }
    .footer-map {
      margin-top:18px; border-radius:16px; overflow:hidden;
      border:1px solid rgba(255,255,255,.14);
      box-shadow:0 20px 44px -24px rgba(0,0,0,.6);
    }
    .footer-map iframe { width:100%; height:210px; border:0; display:block; }
    .footer-col h4 {
      font-family:'Spline Sans Mono', monospace;
      font-size:.64rem; font-weight:600; letter-spacing:.2em; text-transform:uppercase;
      color:var(--gold-soft); margin:0 0 14px;
    }
    .site-footer a { color:#C6D4EF; text-decoration:none; transition:color .2s; }
    .site-footer a:hover { color:#fff; text-decoration:underline; text-underline-offset:3px; }
    .site-footer ul { list-style:none; }
    .site-footer li { margin-bottom:10px; }
    .site-footer li a { display:inline-block; padding:2px 0; min-height:32px; }
    .footer-showroom p { margin-bottom:12px; }
    .footer-phone-badge { margin-bottom:12px; }
    .footer-phone-badge .phone-badge-number { color:var(--gold-soft); font-size:1.15rem; }
    .footer-hours { font-size:.86rem; line-height:1.7; }
    .footer-email { display:inline-block; margin-top:4px; }
    .footer-bottom {
      max-width:1200px; margin:0 auto;
      display:flex; flex-direction:column; gap:8px;
      border-top:1px solid rgba(255,255,255,.1);
      padding:18px 20px 24px;
      font-size:.78rem; color:#8FA6D2;
    }
    @media (min-width:900px) {
      .footer-inner { grid-template-columns:1.3fr .7fr 1fr; gap:40px; padding:64px 24px 40px; }
      .footer-bottom { flex-direction:row; justify-content:space-between; padding:18px 24px 24px; }
    }
    /* ============================================================
       GHL POPUP MODAL
       ============================================================ */
    .ghl-overlay {
      display:none;
      position:fixed; inset:0; z-index:130;
      align-items:center; justify-content:center;
      padding:18px;
      background:rgba(3,12,32,.78);
      backdrop-filter:blur(8px);
      -webkit-backdrop-filter:blur(8px);
    }
    .ghl-overlay.open, .ghl-overlay.active, .ghl-overlay.visible,
    .ghl-overlay[aria-hidden="false"] { display:flex; }
    .ghl-modal-panel {
      position:relative;
      width:min(100%,480px);
      max-height:calc(100vh - 36px);
      max-height:calc(100dvh - 36px);
      overflow-y:auto;
      background:linear-gradient(168deg,rgba(255,255,255,.97),rgba(255,255,255,.9));
      backdrop-filter:blur(26px) saturate(1.3);
      -webkit-backdrop-filter:blur(26px) saturate(1.3);
      border:1px solid rgba(255,255,255,.7);
      border-radius:26px;
      padding:30px 26px 26px;
      box-shadow:0 44px 90px -28px rgba(3,12,32,.85), inset 0 1px 0 rgba(255,255,255,.9);
    }
    .ghl-modal-panel::before {
      content:""; position:absolute; top:0; left:26px; right:26px; height:3px;
      border-radius:0 0 4px 4px;
      background:linear-gradient(90deg,var(--gold-soft),var(--gold) 40%,var(--gold-deep));
    }
    .ghl-modal-close {
      position:absolute; top:14px; right:14px;
      width:42px; height:42px;
      border:1px solid rgba(11,37,89,.16); border-radius:12px;
      background:#fff; color:var(--ink-soft);
      font-size:1rem; line-height:1; cursor:pointer;
      transition:border-color .2s, color .2s;
    }
    .ghl-modal-close:hover { border-color:var(--navy-royal); color:var(--navy-deep); }
    .ghl-modal-title { font-size:1.35rem; margin:0 26px 8px 0; }
    .ghl-modal-sub { font-size:.9rem; color:var(--ink-soft); }
    .ghl-modal-product {
      margin-top:12px; padding:10px 13px;
      border:1px solid rgba(232,164,0,.35); border-radius:12px;
      background:linear-gradient(180deg,rgba(255,184,28,.1),rgba(255,184,28,.04));
      font-family:'Bricolage Grotesque', sans-serif; font-weight:700; font-size:.9rem;
      color:var(--navy-deep);
    }
    .ghl-modal-trust { margin-top:12px; }
    .ghl-trust-badge {
      display:inline-flex; align-items:center; gap:6px;
      border:1px dashed rgba(11,37,89,.22); border-radius:999px;
      padding:7px 13px;
      font-size:.72rem; color:var(--ink-soft);
      background:rgba(248,244,236,.5);
    }
    .ghl-form-shell { margin-top:14px; }
    /* ---------- Scroll reveal (classes added by JS; no-JS unaffected) ---------- */
    .reveal { opacity:0; transform:translateY(22px); transition:opacity .75s ease, transform .75s var(--ease-out); }
    .reveal.in { opacity:1; transform:none; }
    /* ---------- Shared utilities (must exist per SITE_MASTER_SPEC Part 1 §4) ---------- */
    .text-center { text-align:center; }
    .mx-auto { margin-inline:auto; }
    .max-w-md { max-width:28rem; }
    /* ---------- Reduced motion ---------- */
    @media (prefers-reduced-motion:reduce) {
      html { scroll-behavior:auto; }
      *, *::before, *::after { animation:none !important; transition:none !important; }
      .reveal { opacity:1; transform:none; }
    }

/* Empty/unfilled media tokens never render: an explicitly-empty config value
   hydrates to src="" (build-config), an unprovided one keeps its raw token —
   both are hidden so cards and headers stay clean. */
img[src=""],iframe[src=""],img[src*="{{"],iframe[src*="{{"]{display:none}
