:root {
  color-scheme: light;
  --paper: #f4f4ef;
  --paper-deep: #e8ebe4;
  --surface: #ffffff;
  --surface-soft: #eef1eb;
  --ink: #18201d;
  --ink-strong: #0b100e;
  --muted: #68736b;
  --line: #cbd3ca;
  --line-strong: #aeb9ae;
  --brass: #a87843;
  --brass-soft: #d9bd94;
  --sage: #5c7e6d;
  --blue: #6c8493;
  --shadow: 0 30px 90px rgba(25, 37, 30, 0.14);
  --mono: 'Space Mono', ui-monospace, monospace;
  --sans: 'Space Grotesk', Inter, Arial, sans-serif;
}

html[data-theme='night'] {
  color-scheme: dark;
  --paper: #111512;
  --paper-deep: #1b221e;
  --surface: #171c18;
  --surface-soft: #202a23;
  --ink: #dfe8e0;
  --ink-strong: #ffffff;
  --muted: #99a79b;
  --line: #3a473d;
  --line-strong: #56665a;
  --brass: #c49a6c;
  --brass-soft: #70583f;
  --sage: #88b29a;
  --blue: #8eabbc;
  --shadow: 0 30px 90px rgba(0, 0, 0, 0.28);
}

* { box-sizing: border-box; }
[hidden] { display: none !important; }
.sr-only { position: absolute; width: 1px; height: 1px; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; }
html { scroll-behavior: smooth; background: var(--paper); }
body { min-width: 320px; margin: 0; background: var(--paper); color: var(--ink); font-family: var(--sans); letter-spacing: 0; line-height: 1.45; overflow-x: hidden; }
body::before { content: ''; position: fixed; inset: 0; z-index: 50; pointer-events: none; opacity: 0.32; background-image: linear-gradient(90deg, rgba(71, 89, 77, 0.08) 1px, transparent 1px), linear-gradient(0deg, rgba(71, 89, 77, 0.06) 1px, transparent 1px); background-size: 42px 42px; mask-image: linear-gradient(90deg, black, transparent 80%); }
body::after { content: ''; position: fixed; inset: 0; z-index: 51; pointer-events: none; opacity: 0.035; background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 160 160' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='grain'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.8' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23grain)' opacity='.5'/%3E%3C/svg%3E"); }
a { color: inherit; }
button, input, select, textarea { font: inherit; letter-spacing: 0; }
button, a { -webkit-tap-highlight-color: transparent; }
button { cursor: pointer; }

.scroll-progress { position: fixed; top: 0; left: 0; z-index: 100; width: 100%; height: 3px; background: var(--brass); transform: scaleX(0); transform-origin: left; }
.site-header { position: fixed; top: 0; left: 0; right: 0; z-index: 40; display: grid; grid-template-columns: minmax(180px, 1fr) auto minmax(280px, 1fr); gap: 22px; align-items: center; min-height: 76px; padding: 12px 34px; border-bottom: 1px solid color-mix(in srgb, var(--line) 75%, transparent); background: color-mix(in srgb, var(--paper) 88%, transparent); backdrop-filter: blur(18px); }
.brand { display: inline-flex; align-items: center; gap: 10px; width: max-content; color: var(--ink-strong); text-decoration: none; }
.brand-mark { display: grid; place-items: center; width: 34px; height: 34px; border: 1px solid var(--ink); color: var(--brass); font: 700 11px var(--mono); }
.brand-copy { display: grid; gap: 2px; }
.brand-copy strong { font-size: 12px; letter-spacing: 0.08em; }
.brand-copy small, .header-readout, .footer-status { color: var(--muted); font: 9px var(--mono); letter-spacing: 0.08em; text-transform: uppercase; }
.header-readout { display: grid; gap: 3px; text-align: center; }
.header-readout b { color: var(--sage); }
.main-nav { display: flex; justify-content: flex-end; align-items: center; gap: 18px; }
.main-nav a, .main-nav .nav-account, .footer-links a, .footer-links button { color: var(--muted); font: 11px var(--mono); text-decoration: none; text-transform: uppercase; }
.main-nav a:hover, .main-nav .nav-account:hover, .footer-links a:hover, .footer-links button:hover { color: var(--brass); }
.nav-account { min-height: 38px; border: 1px solid var(--line-strong); background: var(--surface); padding: 0 12px; }
.nav-cta, .button { border: 1px solid var(--brass); border-radius: 3px; }
.nav-cta { min-height: 38px; padding: 0 14px; background: var(--brass); color: #fff; font-size: 11px; font-weight: 700; }
.menu-toggle { display: none; border: 1px solid var(--line-strong); background: var(--surface); padding: 9px; }
.menu-toggle span { display: block; width: 22px; height: 2px; margin: 4px; background: var(--ink); }

.hero-section { position: relative; display: grid; grid-template-columns: minmax(0, 0.92fr) minmax(420px, 1.08fr); align-items: center; gap: clamp(30px, 6vw, 96px); min-height: min(760px, 92svh); padding: 118px 7vw 76px; border-bottom: 1px solid var(--line); background: linear-gradient(120deg, var(--paper) 0%, var(--paper-deep) 58%, var(--surface-soft) 100%); isolation: isolate; overflow: hidden; }
.hero-section::before { content: ''; position: absolute; inset: 0; z-index: -1; opacity: 0.56; background: repeating-linear-gradient(90deg, color-mix(in srgb, var(--ink) 7%, transparent) 0 1px, transparent 1px 56px); mask-image: linear-gradient(90deg, black, transparent 88%); }
.hero-section::after { content: ''; position: absolute; top: 0; right: 7vw; z-index: -1; width: min(44vw, 660px); height: 3px; background: var(--brass); box-shadow: 0 0 18px color-mix(in srgb, var(--brass) 62%, transparent); animation: signal-scan 4.8s cubic-bezier(.55, 0, .2, 1) infinite; }
.hero-copy { display: grid; gap: 20px; min-width: 0; max-width: 720px; }
.eyebrow { color: var(--brass); font: 700 10px/1.2 var(--mono); letter-spacing: 0.14em; text-transform: uppercase; }
h1, h2, h3, p { margin: 0; }
h1, h2, h3 { color: var(--ink-strong); line-height: 0.9; letter-spacing: -0.03em; overflow-wrap: break-word; }
h1 { max-width: 720px; font-size: clamp(58px, 9vw, 132px); text-transform: uppercase; }
h2 { font-size: clamp(48px, 7vw, 96px); text-transform: uppercase; }
h3 { font-size: 24px; text-transform: uppercase; }
.accent-rule { width: 100%; height: 2px; background: var(--brass); }
.hero-lede { max-width: 56ch; color: var(--muted); font-size: 16px; line-height: 1.65; }
.hero-actions { display: flex; flex-wrap: wrap; gap: 8px; }
.button { display: inline-grid; grid-auto-flow: column; place-items: center; gap: 11px; min-height: 48px; padding: 0 18px; font-size: 12px; font-weight: 700; text-decoration: none; text-transform: uppercase; }
.button-primary { background: var(--brass); color: #fff; }
.button-secondary { background: transparent; color: var(--ink-strong); }
.button:hover, .nav-cta:hover { transform: translateY(-2px); box-shadow: 0 10px 22px rgba(75, 86, 75, 0.14); }
.hero-data { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 12px; color: var(--muted); font: 10px var(--mono); letter-spacing: 0.08em; }
.hero-image-wrap { position: relative; min-width: 0; }
.hero-image-frame { position: relative; aspect-ratio: 1.33; overflow: hidden; border: 1px solid var(--line-strong); background: var(--surface); box-shadow: var(--shadow); transform-style: preserve-3d; transition: transform 180ms ease-out; }
.hero-image-frame::before { content: ''; position: absolute; inset: -20% 0 auto; z-index: 2; height: 18%; pointer-events: none; background: linear-gradient(180deg, transparent, color-mix(in srgb, var(--brass) 30%, transparent), transparent); mix-blend-mode: multiply; animation: frame-scan 5.6s linear infinite; }
.hero-image-frame::after { content: ''; position: absolute; inset: 0; pointer-events: none; background: linear-gradient(115deg, rgba(255, 255, 255, 0.28), transparent 32%, transparent 72%, rgba(28, 41, 33, 0.1)); }
.hero-image-frame img, .showcase-card img { width: 100%; height: 100%; object-fit: cover; filter: saturate(0.76) contrast(1.04); transition: transform 600ms ease; }
.hero-image-frame:hover img, .showcase-card:hover img { transform: scale(1.035); }
.image-tag { position: absolute; z-index: 1; padding: 7px 10px; background: var(--surface); color: var(--ink); font: 9px var(--mono); letter-spacing: 0.12em; }
.image-tag-top { top: 14px; left: 14px; }
.image-tag-bottom { right: 14px; bottom: 14px; background: var(--brass); color: #fff; }
.hero-side-note { position: absolute; right: -44px; bottom: 28px; color: var(--muted); font: 10px/1.5 var(--mono); text-transform: uppercase; transform: rotate(-90deg); transform-origin: right bottom; }
.scroll-cue { position: absolute; bottom: 25px; left: 7vw; color: var(--muted); font: 10px var(--mono); text-transform: uppercase; }

.plate-stack { position: relative; overflow: clip; }
.story-plate { position: sticky; top: 0; display: flex; align-items: center; min-height: 100svh; border-bottom: 1px solid var(--line); }
.story-plate::before { content: ''; position: absolute; inset: 0; pointer-events: none; background: repeating-linear-gradient(90deg, color-mix(in srgb, var(--ink) 7%, transparent) 0 1px, transparent 1px 56px); mask-image: linear-gradient(90deg, black, transparent 76%); }
.story-plate-one { z-index: 1; background: var(--paper); }
.story-plate-two { z-index: 2; background: var(--paper-deep); }
.story-plate-three { z-index: 3; background: var(--surface-soft); }
.story-content { position: relative; display: grid; gap: 22px; width: min(1100px, 100%); margin: 0 auto; padding: 110px 7vw; }
.story-content p { max-width: 64ch; color: var(--muted); font-size: 17px; line-height: 1.65; }
.plate-index { color: var(--muted); font: 10px var(--mono); }

.section-band { border-top: 1px solid var(--line); padding: 86px 7vw; }
.access-section, .process-section, .work-section, .signal-section { background: var(--paper); }
.section-heading { display: grid; gap: 16px; max-width: 760px; margin: 0 auto 38px; }
.section-heading p { color: var(--muted); line-height: 1.65; }
.service-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 2px; max-width: 1320px; margin: 0 auto; }
.quick-services, .quick-process { background: var(--paper); }
.quick-service-grid, .quick-process-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 2px; max-width: 1100px; margin: 0 auto; }
.quick-service-grid article, .quick-process-grid article { position: relative; display: grid; align-content: start; gap: 14px; min-height: 190px; border: 1px solid var(--line); background: var(--surface); padding: 24px 20px; }
.quick-service-grid article::before, .quick-process-grid article::before { content: ''; position: absolute; top: 0; left: 0; width: 0; height: 2px; background: var(--brass); transition: width 320ms ease; }
.quick-service-grid article:hover::before, .quick-process-grid article:hover::before { width: 100%; }
.quick-service-grid article p, .quick-process-grid article p { color: var(--muted); line-height: 1.55; }
.quick-terms { max-width: 1100px; margin: 28px auto 0; border-top: 1px solid var(--line); padding-top: 16px; color: var(--muted); font: 10px/1.6 var(--mono); text-align: center; text-transform: uppercase; }
.quick-terms strong { color: var(--brass); }
.quick-terms a { color: var(--brass); text-decoration: underline; text-underline-offset: 3px; }
.equipment-rental-shop { background: var(--surface-soft); }
.rental-shop-heading { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: end; gap: 36px; max-width: 1320px; margin: 0 auto 30px; }
.rental-shop-heading > div:first-child { display: grid; gap: 16px; max-width: 880px; }
.rental-shop-heading h2 { font-size: clamp(48px, 7vw, 92px); }
.rental-shop-heading p { max-width: 68ch; color: var(--muted); font-size: 16px; line-height: 1.65; }
.rental-shop-summary { display: grid; grid-template-columns: auto auto; align-items: baseline; gap: 3px 9px; min-width: 190px; border: 1px solid var(--line); background: var(--surface); padding: 17px; }
.rental-shop-summary strong { color: var(--ink-strong); font: 800 25px var(--sans); }
.rental-shop-summary span { color: var(--muted); font: 9px var(--mono); text-transform: uppercase; }
.rental-package-shortcuts { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 2px; max-width: 1320px; margin: 0 auto 24px; }
.rental-package-shortcuts button { display: grid; align-content: start; gap: 8px; min-height: 145px; border: 1px solid var(--line); background: var(--surface); padding: 18px; color: var(--ink); text-align: left; }
.rental-package-shortcuts button:hover, .rental-package-shortcuts button:focus-visible { border-color: var(--brass); background: color-mix(in srgb, var(--brass) 7%, var(--surface)); }
.rental-package-shortcuts span { color: var(--brass); font: 700 9px var(--mono); letter-spacing: .08em; }
.rental-package-shortcuts strong { color: var(--ink-strong); font-size: 18px; text-transform: uppercase; }
.rental-package-shortcuts small { color: var(--muted); font: 11px/1.5 var(--mono); }
.rental-catalog-toolbar { display: grid; grid-template-columns: minmax(240px, 1fr) minmax(180px, .34fr) auto; align-items: end; gap: 10px; max-width: 1320px; margin: 0 auto; border-top: 1px solid var(--line-strong); padding-top: 22px; }
.rental-search, .rental-filter { display: grid; gap: 6px; margin: 0; color: var(--muted); font: 700 9px var(--mono); letter-spacing: .06em; text-transform: uppercase; }
.rental-search input, .rental-filter select { width: 100%; min-height: 44px; border: 1px solid var(--line-strong); border-radius: 0; background: var(--surface); color: var(--ink); padding: 10px 12px; font-family: var(--sans); font-size: 14px; text-transform: none; }
.rental-view-switcher { display: grid; grid-template-columns: repeat(3, auto); gap: 2px; }
.rental-view-switcher button { min-height: 44px; border: 1px solid var(--line-strong); background: var(--surface); color: var(--muted); padding: 0 12px; font: 700 9px var(--mono); text-transform: uppercase; }
.rental-view-switcher button[aria-pressed="true"] { border-color: var(--brass); background: var(--brass); color: #fff; }
.rental-catalog-status { max-width: 1320px; min-height: 20px; margin: 12px auto; color: var(--muted); font: 10px/1.5 var(--mono); }
.rental-catalog { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; max-width: 1320px; margin: 0 auto; }
.rental-catalog[data-view="list"] { grid-template-columns: 1fr; }
.rental-catalog[data-view="gallery"] { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.rental-catalog-empty { grid-column: 1 / -1; border: 1px dashed var(--line-strong); background: var(--surface); padding: 34px; color: var(--muted); text-align: center; }
.rental-catalog-card { display: grid; grid-template-rows: auto minmax(0, 1fr); min-width: 0; overflow: hidden; border: 1px solid var(--line); background: var(--surface); }
.rental-catalog-card[data-availability="owner_confirmation"] { opacity: .76; }
.rental-catalog-media { position: relative; aspect-ratio: 3 / 2; overflow: hidden; border-bottom: 1px solid var(--line); background: var(--paper-deep); }
.rental-catalog-media img { width: 100%; height: 100%; object-fit: cover; }
.rental-media-sprite { width: 100%; height: 100%; background-image: url('assets/equipment-catalog-sprite-v1.png'); background-repeat: no-repeat; background-size: 300% 200%; }
.rental-media-sprite[data-tile="pa"] { background-position: 0 0; }
.rental-media-sprite[data-tile="wireless"] { background-position: 50% 0; }
.rental-media-sprite[data-tile="mixer"] { background-position: 100% 0; }
.rental-media-sprite[data-tile="xlr"] { background-position: 0 100%; }
.rental-media-sprite[data-tile="power"] { background-position: 50% 100%; }
.rental-media-sprite[data-tile="adapter"] { background-position: 100% 100%; }
.rental-image-label { position: absolute; right: 8px; bottom: 8px; border: 1px solid rgba(255,255,255,.65); background: rgba(11,16,14,.78); color: #fff; padding: 4px 6px; font: 700 7px var(--mono); letter-spacing: .06em; text-transform: uppercase; }
.rental-catalog-body { display: grid; grid-template-rows: auto auto minmax(64px, 1fr) auto auto; gap: 10px; min-width: 0; padding: 16px; }
.rental-item-kicker { display: flex; justify-content: space-between; gap: 8px; color: var(--brass); font: 700 8px var(--mono); letter-spacing: .08em; text-transform: uppercase; }
.rental-item-kicker span:last-child { color: var(--muted); text-align: right; }
.rental-catalog-card h3 { font-size: 21px; line-height: 1; }
.rental-catalog-card p { color: var(--muted); font-size: 12px; line-height: 1.55; }
.rental-item-facts { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1px; background: var(--line); }
.rental-item-facts span { display: grid; gap: 3px; min-width: 0; background: var(--surface-soft); padding: 9px; color: var(--muted); font: 7px var(--mono); text-transform: uppercase; }
.rental-item-facts strong { overflow-wrap: anywhere; color: var(--ink-strong); font: 700 12px var(--sans); text-transform: none; }
.rental-item-controls { display: grid; grid-template-columns: minmax(96px, .38fr) minmax(0, 1fr); align-items: end; gap: 8px; border-top: 1px solid var(--line); padding-top: 11px; }
.rental-item-controls label { display: grid; gap: 4px; margin: 0; color: var(--muted); font: 700 8px var(--mono); text-transform: uppercase; }
.rental-item-controls input { width: 100%; min-height: 40px; border: 1px solid var(--line-strong); background: var(--surface); color: var(--ink); padding: 8px; }
.rental-item-controls button { min-height: 40px; border: 1px solid var(--brass); background: var(--brass); color: #fff; padding: 0 10px; font: 700 9px var(--mono); text-transform: uppercase; }
.rental-item-controls button:disabled { border-color: var(--line); background: var(--surface-soft); color: var(--muted); cursor: not-allowed; }
.rental-catalog[data-view="list"] .rental-catalog-card { grid-template-columns: minmax(190px, 260px) minmax(0, 1fr); grid-template-rows: none; }
.rental-catalog[data-view="list"] .rental-catalog-media { height: 100%; min-height: 210px; aspect-ratio: auto; border-right: 1px solid var(--line); border-bottom: 0; }
.rental-catalog[data-view="list"] .rental-catalog-body { grid-template-columns: minmax(0, 1fr) minmax(260px, .7fr); grid-template-rows: auto auto auto; align-content: center; }
.rental-catalog[data-view="list"] .rental-item-kicker, .rental-catalog[data-view="list"] h3, .rental-catalog[data-view="list"] p { grid-column: 1; }
.rental-catalog[data-view="list"] .rental-item-facts, .rental-catalog[data-view="list"] .rental-item-controls { grid-column: 2; }
.rental-catalog[data-view="list"] .rental-item-facts { grid-row: 1 / span 2; }
.rental-catalog[data-view="list"] .rental-item-controls { grid-row: 3; }
.rental-catalog[data-view="gallery"] .rental-catalog-media { aspect-ratio: 16 / 10; }
.rental-catalog[data-view="gallery"] .rental-catalog-body { grid-template-columns: minmax(0, 1fr) auto; grid-template-rows: auto auto auto; }
.rental-catalog[data-view="gallery"] .rental-item-kicker, .rental-catalog[data-view="gallery"] h3, .rental-catalog[data-view="gallery"] p { grid-column: 1; }
.rental-catalog[data-view="gallery"] .rental-item-facts { grid-column: 2; grid-row: 1 / span 2; min-width: 210px; }
.rental-catalog[data-view="gallery"] .rental-item-controls { grid-column: 1 / -1; }
.rental-cart { display: grid; gap: 16px; max-width: 1320px; margin: 22px auto 0; border: 1px solid var(--line-strong); border-top: 4px solid var(--brass); background: var(--ink-strong); color: #fff; padding: 22px; }
.rental-cart-heading { display: flex; align-items: end; justify-content: space-between; gap: 18px; }
.rental-cart-heading h3 { color: #fff; font-size: 30px; }
.rental-cart-heading > strong { color: var(--brass-soft); font: 700 10px var(--mono); text-transform: uppercase; }
.rental-cart-lines { display: grid; gap: 1px; background: #ffffff26; }
.rental-cart-lines > p { background: #111713; color: #aab6ac; padding: 13px; font: 10px/1.5 var(--mono); }
.rental-cart-line { display: grid; grid-template-columns: minmax(0, 1fr) auto auto; align-items: center; gap: 12px; background: #111713; padding: 12px 13px; }
.rental-cart-line span { display: grid; gap: 2px; min-width: 0; }
.rental-cart-line strong { overflow: hidden; color: #fff; font-size: 13px; text-overflow: ellipsis; white-space: nowrap; }
.rental-cart-line small { color: #9aa79c; font: 9px var(--mono); }
.rental-cart-line > b { color: var(--brass-soft); font: 700 11px var(--mono); }
.rental-cart-line > em { border: 1px solid #b28346aa; border-radius: 999px; color: var(--brass-soft); padding: 5px 8px; font: 700 8px var(--mono); font-style: normal; letter-spacing: .08em; text-transform: uppercase; }
.rental-cart-line button { border: 1px solid #ffffff42; background: transparent; color: #fff; padding: 6px 8px; font: 700 8px var(--mono); text-transform: uppercase; }
.rental-cart-summary { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1px; background: #ffffff26; }
.rental-cart-summary span { display: grid; gap: 4px; background: #111713; color: #9aa79c; padding: 12px; font: 8px var(--mono); text-transform: uppercase; }
.rental-cart-summary strong { color: #fff; font: 700 17px var(--sans); text-transform: none; }
.rental-cart-actions { display: flex; justify-content: flex-end; gap: 8px; }
.rental-cart .button-secondary { border-color: #ffffff52; color: #fff; }
.rental-cart button:disabled { cursor: not-allowed; opacity: .45; }
.rental-cart > p { color: #9aa79c; font: 9px/1.5 var(--mono); }
.service-card { position: relative; display: grid; align-content: space-between; gap: 20px; min-height: 390px; border: 1px solid var(--line); background: var(--surface); padding: 26px 20px 20px; text-decoration: none; transition: transform 180ms ease, border-color 180ms ease, background 180ms ease; }
.service-card:hover { z-index: 1; border-color: var(--brass); background: var(--surface-soft); transform: translateY(-6px); }
.service-card p { color: var(--muted); line-height: 1.55; }
.card-number { position: absolute; top: 14px; right: 16px; color: var(--line-strong); font: 700 40px var(--mono); }
.card-link, .text-link { color: var(--brass); font: 700 10px var(--mono); text-transform: uppercase; }

.showcase-section { position: relative; display: grid; grid-template-columns: minmax(260px, 0.75fr) minmax(0, 1.25fr); align-items: center; gap: 36px; overflow: hidden; background: var(--paper-deep); }
.showcase-lens { position: relative; z-index: 2; display: grid; gap: 20px; padding: 32px; border: 1px solid var(--line); background: color-mix(in srgb, var(--surface) 78%, transparent); box-shadow: var(--shadow); }
.showcase-lens h2 { font-size: clamp(58px, 8vw, 110px); }
.showcase-lens h2 em { color: var(--brass); font-style: normal; }
.lens-meta, .technical-readout, .monitor-top, .monitor-bottom { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 12px; color: var(--muted); font: 9px var(--mono); letter-spacing: 0.1em; text-transform: uppercase; }
.showcase-stage { position: relative; display: grid; place-items: center; min-height: 620px; perspective: 1500px; }
.showcase-backdrop { position: absolute; width: 72%; height: 70%; border: 1px solid var(--brass-soft); background: repeating-linear-gradient(90deg, rgba(38, 55, 45, 0.1) 0 1px, transparent 1px 18px); transform: translate(-30px, 28px) rotate(-5deg); }
.showcase-card { position: relative; z-index: 1; width: min(690px, 88%); aspect-ratio: 1.38; border: 13px solid var(--ink-strong); background: var(--surface); padding: 0; box-shadow: -24px 30px 55px rgba(35, 49, 40, 0.24); transform: translateZ(40px) rotateY(-4deg) rotateX(2deg); transform-style: preserve-3d; transition: transform 180ms ease-out; }
.showcase-card::before { content: ''; position: absolute; inset: -22px; z-index: -1; border: 1px solid var(--line-strong); transform: translateZ(-30px) rotate(-2deg); }
.showcase-card img { display: block; }
.card-corner, .showcase-strip { position: absolute; z-index: 2; background: var(--surface); color: var(--ink); font: 9px var(--mono); letter-spacing: 0.1em; }
.card-corner { top: -2px; left: 0; padding: 8px 10px; }
.showcase-strip { right: -15px; bottom: -30px; padding: 8px 14px; background: var(--brass); color: #fff; transform: rotate(-2deg); }
.technical-readout { position: absolute; right: 2%; bottom: 6%; display: grid; justify-items: end; line-height: 1.8; }

.process-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); max-width: 1320px; margin: 0 auto; border-top: 1px solid var(--line); border-left: 1px solid var(--line); }
.process-grid article { display: grid; gap: 14px; min-height: 220px; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); background: var(--surface); padding: 22px; }
.process-grid p { color: var(--muted); line-height: 1.55; }
.process-number { color: var(--brass); font: 700 26px var(--mono); }
.section-heading-inline { display: flex; justify-content: space-between; align-items: end; max-width: 1320px; }
.section-note { color: var(--muted); font: 10px var(--mono); text-transform: uppercase; }
.work-grid { display: grid; grid-template-columns: 1.4fr 0.8fr 0.8fr; gap: 2px; max-width: 1320px; margin: 0 auto; }
.work-card { display: grid; align-content: end; gap: 14px; min-height: 300px; border: 1px solid var(--line); background: var(--surface); padding: 18px; }
.work-card-large { min-height: 420px; }
.work-card p { color: var(--muted); line-height: 1.5; }
.work-placeholder { display: grid; place-items: center; min-height: 150px; border: 1px dashed var(--line-strong); background: var(--surface-soft); color: var(--muted); font: 10px var(--mono); text-align: center; text-transform: uppercase; }
.work-card-large .work-placeholder { min-height: 230px; }
.signal-section { display: grid; grid-template-columns: minmax(220px, 0.65fr) minmax(0, 1.35fr); align-items: center; gap: 42px; background: var(--surface-soft); }
.signal-copy { display: grid; gap: 18px; }
.signal-copy p { color: var(--muted); line-height: 1.6; }
.signal-monitor { border: 1px solid var(--line-strong); background: var(--ink-strong); padding: 18px; box-shadow: var(--shadow); }
.signal-monitor .monitor-top, .signal-monitor .monitor-bottom { color: var(--brass-soft); }
#signalCanvas { display: block; width: 100%; height: auto; margin: 16px 0; border-top: 1px solid rgba(196, 154, 108, 0.35); border-bottom: 1px solid rgba(196, 154, 108, 0.35); background: linear-gradient(180deg, rgba(196, 154, 108, 0.08), transparent); }
.utilities-section { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 2px; background: var(--paper-deep); }
.utilities-section details { border: 1px solid var(--line); background: var(--surface); padding: 24px; }
.utilities-section summary { display: flex; min-height: 150px; align-items: end; justify-content: space-between; gap: 16px; cursor: pointer; list-style: none; }
.utilities-section summary::-webkit-details-marker { display: none; }
.utilities-section summary strong { display: block; margin-top: 10px; color: var(--ink-strong); font-size: 30px; text-transform: uppercase; }
.utilities-section summary small { color: var(--brass); font: 10px var(--mono); text-transform: uppercase; }
.utility-copy { display: grid; gap: 14px; border-top: 1px solid var(--line); padding-top: 18px; }
.utility-copy p { color: var(--muted); line-height: 1.6; }
.text-link { width: max-content; border: 0; background: transparent; padding: 0; }
.site-footer { position: relative; z-index: 2; display: grid; gap: 42px; background: var(--ink-strong); color: #f2f4ee; padding: 86px 7vw 112px; text-align: center; }
.footer-main { display: grid; justify-items: center; gap: 20px; }
.footer-cta { border: 0; background: transparent; color: #f2f4ee; font-size: clamp(42px, 7vw, 100px); font-weight: 700; line-height: 0.9; letter-spacing: -0.04em; text-transform: uppercase; }
.footer-cta:hover { color: var(--brass-soft); }
.footer-main p { color: #9ba89d; font: 10px var(--mono); letter-spacing: 0.12em; }
.footer-links { display: flex; justify-content: center; flex-wrap: wrap; gap: 18px 28px; }
.footer-links button { border: 0; background: transparent; padding: 0; }
.footer-status { display: flex; justify-content: space-between; gap: 14px; border-top: 1px solid #ffffff26; padding-top: 18px; color: #87958a; }

/* Motion parity with the company index: staged entry, signal scans, and framed depth. */
.motion-ready [data-reveal] { opacity: 0; transform: translateY(34px); transition: opacity 640ms ease, transform 760ms cubic-bezier(.2, .75, .2, 1); }
.motion-ready [data-reveal="hero-copy"] { transform: translateX(-34px); transition-delay: 90ms; }
.motion-ready [data-reveal="hero-frame"] { transform: translateX(38px) rotate(1.5deg); transition-delay: 180ms; }
.motion-ready [data-reveal="hero-cue"] { transform: translateY(14px); transition-delay: 360ms; }
.motion-ready [data-reveal="card"] { transition-duration: 540ms; }
.motion-ready .quick-service-grid [data-reveal="card"]:nth-child(2), .motion-ready .quick-process-grid [data-reveal="card"]:nth-child(2) { transition-delay: 90ms; }
.motion-ready .quick-service-grid [data-reveal="card"]:nth-child(3), .motion-ready .quick-process-grid [data-reveal="card"]:nth-child(3) { transition-delay: 180ms; }
.motion-ready .quick-service-grid [data-reveal="card"]:nth-child(4) { transition-delay: 270ms; }
.motion-ready [data-reveal].is-revealed { opacity: 1; transform: translate3d(0, 0, 0); }
@keyframes signal-scan { 0%, 15% { transform: translateX(-135%); opacity: 0; } 28%, 65% { opacity: 1; } 82%, 100% { transform: translateX(140%); opacity: 0; } }
@keyframes frame-scan { from { transform: translateY(0); } to { transform: translateY(800%); } }

.consultation-drawer { position: fixed; inset: 0; z-index: 90; display: grid; visibility: hidden; opacity: 0; transition: opacity 180ms ease, visibility 180ms ease; }
.consultation-drawer.is-open { visibility: visible; opacity: 1; }
.drawer-scrim { position: absolute; inset: 0; border: 0; background: rgba(16, 24, 19, 0.42); backdrop-filter: blur(3px); }
.drawer-panel { position: relative; align-self: end; justify-self: end; width: min(780px, 100%); max-height: 100svh; overflow: auto; border-left: 1px solid var(--line-strong); background: var(--paper); box-shadow: -20px 0 60px rgba(20, 31, 24, 0.16); padding: 28px; transform: translateX(18px); transition: transform 220ms ease; }
.consultation-drawer.is-open .drawer-panel { transform: translateX(0); }
.account-drawer { position: fixed; inset: 0; z-index: 91; visibility: hidden; opacity: 0; transition: opacity 180ms ease, visibility 180ms ease; }
.account-drawer.is-open { visibility: visible; opacity: 1; }
.account-panel { position: absolute; z-index: 1; top: 0; right: 0; width: min(620px, 100%); height: 100%; overflow-y: auto; border-left: 1px solid var(--line-strong); background: var(--paper); padding: 30px; box-shadow: var(--shadow); transform: translateX(18px); transition: transform 220ms ease; }
.account-drawer.is-open .account-panel { transform: translateX(0); }
.account-panel .drawer-header h2 { max-width: 460px; }
.account-loading, .account-guest { margin-top: 20px; }
.account-guest { display: grid; gap: 14px; }
.account-guest-intro { display: grid; gap: 4px; }
.account-guest-intro strong { color: var(--ink-strong); font-size: 15px; }
.account-guest-intro p { color: var(--muted); font-size: 13px; line-height: 1.5; }
.google-signin-wrap { min-height: 44px; }
.account-status { border-left: 3px solid var(--brass); background: var(--surface-soft); color: var(--ink); padding: 9px 11px; font: 10px/1.5 var(--mono); }
.account-boundary, .account-tools { border: 1px solid var(--line); background: var(--surface-soft); }
.account-boundary > summary, .account-tools > summary { display: flex; align-items: center; justify-content: space-between; gap: 12px; min-height: 44px; padding: 10px 12px; color: var(--ink-strong); cursor: pointer; font: 700 10px/1.4 var(--mono); list-style: none; text-transform: uppercase; }
.account-boundary > summary::-webkit-details-marker, .account-tools > summary::-webkit-details-marker { display: none; }
.account-boundary > summary::after, .account-tools > summary::after { content: '+'; color: var(--brass); font-size: 18px; line-height: 1; }
.account-boundary[open] > summary::after, .account-tools[open] > summary::after { content: '\2212'; }
.account-boundary > span { display: block; border-top: 1px solid var(--line); color: var(--muted); padding: 10px 12px; font: 10px/1.5 var(--mono); }
.account-boundary:not([open]) > span, .account-tools:not([open]) > .account-actions { display: none; }
.account-authenticated { display: grid; gap: 22px; margin-top: 24px; }
.account-identity { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: 12px; border: 1px solid var(--line); background: var(--surface); padding: 14px; }
.account-avatar { display: grid; place-items: center; width: 42px; height: 42px; background: var(--ink-strong); color: var(--brass); font: 700 11px var(--mono); }
.account-identity > div { display: grid; gap: 3px; min-width: 0; }
.account-identity strong { color: var(--ink-strong); }
.account-identity [data-account-email] { overflow: hidden; color: var(--muted); font: 10px var(--mono); text-overflow: ellipsis; }
.account-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; border-top: 1px solid var(--line); padding: 12px; }
.account-link-saved { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 14px; border: 1px solid var(--brass); background: color-mix(in srgb, var(--brass) 9%, var(--surface)); padding: 14px; }
.account-link-saved > div { display: grid; gap: 4px; }
.account-link-saved strong { color: var(--ink-strong); }
.account-link-saved span { color: var(--muted); font: 10px/1.45 var(--mono); }
.account-section-head { display: grid; gap: 4px; border-top: 1px solid var(--line); padding-top: 18px; }
.account-section-head strong { color: var(--ink-strong); font-size: 18px; text-transform: uppercase; }
.account-list { display: grid; gap: 8px; }
.account-empty { border: 1px dashed var(--line-strong); color: var(--muted); padding: 18px; font: 10px/1.5 var(--mono); }
.account-record { display: grid; gap: 12px; border: 1px solid var(--line); background: var(--surface); padding: 14px; }
.account-record-head { display: flex; align-items: start; justify-content: space-between; gap: 12px; }
.account-record-head > div { display: grid; gap: 4px; }
.account-record-head strong { color: var(--ink-strong); font: 700 13px var(--mono); }
.account-record-head span:not(.status-pill), .account-record p { color: var(--muted); font: 10px/1.5 var(--mono); }
.account-record-money { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1px; background: var(--line); }
.account-record-money > div { display: grid; gap: 4px; background: var(--surface-soft); padding: 9px; }
.account-record-money span { color: var(--muted); font: 8px var(--mono); text-transform: uppercase; }
.account-record-money strong { color: var(--ink-strong); font: 700 11px var(--mono); }
.account-record-disclosure { margin-top: 2px; }
.account-record-disclosure .receipt-lines { width: 100%; }
.compact-disclosure { border: 1px solid var(--line); background: var(--surface-soft); }
.compact-disclosure > summary { display: flex; align-items: center; gap: 10px; min-height: 44px; padding: 10px 12px; color: var(--ink-strong); cursor: pointer; font: 700 10px/1.4 var(--mono); list-style: none; text-transform: uppercase; }
.compact-disclosure > summary::-webkit-details-marker { display: none; }
.compact-disclosure > summary small { margin-left: auto; color: var(--muted); font: 8px/1.4 var(--mono); }
.compact-disclosure > summary::after { content: '+'; color: var(--brass); font-size: 18px; line-height: 1; }
.compact-disclosure[open] > summary::after { content: '\2212'; }
.compact-disclosure-body { display: grid; gap: 10px; border-top: 1px solid var(--line); padding: 12px; }
.compact-disclosure-body > p { color: var(--muted); font-size: 12px; line-height: 1.5; }
.compact-disclosure:not([open]) > .compact-disclosure-body { display: none; }
.itemization-first-note { margin: -4px 0 12px; padding: 10px 12px; border-left: 3px solid var(--brass); background: rgba(173, 123, 63, .07); color: var(--muted); font-size: .88rem; line-height: 1.45; }
.itemization-first-note strong { color: var(--ink-strong); }
.optional-account-note { color: var(--muted); }
.drawer-header { display: flex; justify-content: space-between; gap: 20px; align-items: start; }
.drawer-header h2 { margin-top: 10px; font-size: 42px; }
.icon-button { display: grid; place-items: center; width: 38px; height: 38px; border: 1px solid var(--line-strong); background: var(--surface); color: var(--ink); font-size: 22px; }
.drawer-intro { margin: 24px 0; color: var(--muted); line-height: 1.6; }
.booking-steps { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1px; margin: 0 0 8px; padding: 0; border: 1px solid var(--line); background: var(--line); list-style: none; }
.booking-steps li { display: grid; gap: 8px; min-height: 88px; background: var(--surface); padding: 10px; }
.booking-steps b { color: var(--brass); font: 700 11px var(--mono); }
.booking-steps span { color: var(--ink-strong); font: 700 10px/1.2 var(--mono); text-transform: uppercase; }
.booking-steps small { color: var(--muted); font: 9px/1.3 var(--mono); text-transform: none; }
.booking-resume { display: grid; gap: 12px; margin: 16px 0 20px; border: 1px solid var(--brass); background: color-mix(in srgb, var(--brass) 9%, var(--surface)); padding: 16px; }
.booking-resume[hidden] { display: none; }
.booking-resume-head { display: flex; align-items: start; justify-content: space-between; gap: 16px; }
.booking-resume-head > div { display: grid; gap: 5px; }
.booking-resume-head strong { color: var(--ink-strong); font: 700 14px var(--mono); }
.booking-resume p { color: var(--ink); font-size: 13px; line-height: 1.55; }
.booking-resume > small { color: var(--muted); font: 10px/1.5 var(--mono); }
.status-pill { border: 1px solid var(--line-strong); border-radius: 999px; background: var(--surface); color: var(--ink); padding: 5px 8px; font: 700 9px var(--mono); text-transform: uppercase; white-space: nowrap; }
.status-pill.is-ready { border-color: var(--sage); color: var(--sage); }
.status-pill.is-warning { border-color: var(--brass); color: var(--brass); }
.booking-resume-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; border-top: 1px solid var(--line); padding-top: 12px; }
.booking-resume-actions .button { min-height: 42px; }
.consultation-form { display: grid; gap: 14px; }
.lead-planner { display: grid; gap: 14px; margin-top: 8px; border: 1px solid var(--line-strong); background: var(--surface); padding: 18px; }
.lead-planner-head { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 18px; align-items: start; padding-bottom: 14px; border-bottom: 1px solid var(--line); }
.lead-planner-head > div:first-child { display: grid; gap: 8px; }
.lead-planner-head h3 { font-size: clamp(25px, 5vw, 39px); }
.lead-planner-head p { max-width: 66ch; color: var(--muted); font-size: 13px; line-height: 1.55; }
.music-service-decision { display: grid; gap: 10px; border: 1px solid var(--brass); background: color-mix(in srgb, var(--brass) 8%, var(--surface)); padding: 14px; }
.music-service-decision .rental-section-label { border-top: 0; padding-top: 0; }
.music-service-decision .music-coverage { display: grid; gap: 0; margin: 0; border: 0; padding: 0; }
.music-service-decision .terms-check:first-of-type { border-top: 0; padding-top: 4px; }
.music-choice-help { margin-top: 10px; }
.dj-detail-panel { display: grid; gap: 10px; margin-top: 12px; border-top: 1px solid var(--line-strong); padding-top: 14px; }
.dj-detail-panel[hidden] { display: none; }
.dj-detail-title { color: var(--ink-strong); font-size: 15px; text-transform: uppercase; }
.lead-completeness { display: grid; min-width: 106px; border-left: 3px solid var(--brass); background: var(--surface-soft); padding: 12px; }
.lead-completeness strong { color: var(--ink-strong); font: 700 24px var(--mono); }
.lead-completeness span { color: var(--muted); font: 8px/1.4 var(--mono); text-transform: uppercase; }
.lead-analyze { width: max-content; max-width: 100%; }
.lead-parser-status { border-left: 3px solid var(--sage); background: var(--surface-soft); color: var(--ink); padding: 9px 11px; font: 10px/1.5 var(--mono); }
.lead-parser-status:empty { display: none; }
.lead-question-group { border: 1px solid var(--line); background: var(--paper); }
.lead-question-group > summary { display: flex; align-items: center; justify-content: space-between; gap: 12px; min-height: 48px; padding: 12px 14px; color: var(--ink-strong); cursor: pointer; font-size: 14px; font-weight: 700; text-transform: uppercase; }
.lead-question-group > summary span { color: var(--muted); font: 8px/1.4 var(--mono); text-align: right; text-transform: uppercase; }
.lead-question-group[data-requirement-group="required"] > summary span { color: #9f302a; }
.lead-question-group[data-requirement-group="optional"] > summary span { color: var(--muted); }
.lead-question-group[open] > summary { border-bottom: 1px solid var(--line); }
.lead-question-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; padding: 14px; }
.lead-question-group > label { margin: 0 14px 14px; }
.lead-workflow-result { border: 1px solid var(--line-strong); background: var(--surface-soft); }
.lead-workflow-result > summary { display: grid; grid-template-columns: minmax(0, 1fr) auto auto; align-items: center; gap: 10px; min-height: 50px; padding: 10px 12px; color: var(--ink-strong); cursor: pointer; list-style: none; }
.lead-workflow-result > summary::-webkit-details-marker { display: none; }
.lead-workflow-result > summary > span { display: grid; gap: 2px; }
.lead-workflow-result > summary strong { font: 700 11px/1.35 var(--mono); text-transform: uppercase; }
.lead-workflow-result > summary small { color: var(--muted); font: 8px/1.35 var(--mono); }
.lead-workflow-result > summary em { color: var(--brass); font: 700 8px/1.35 var(--mono); font-style: normal; text-align: right; text-transform: uppercase; }
.lead-workflow-result > summary::after { content: '+'; color: var(--brass); font-size: 18px; line-height: 1; }
.lead-workflow-result[open] > summary::after { content: '\2212'; }
.lead-workflow-result-body { display: grid; gap: 12px; border-top: 1px solid var(--line); padding: 12px; }
.lead-workflow-result:not([open]) > .lead-workflow-result-body { display: none; }
.lead-missing { display: grid; gap: 8px; }
.lead-missing [data-lead-missing] { display: flex; flex-wrap: wrap; gap: 6px; }
.lead-missing p { color: var(--muted); font: 10px/1.55 var(--mono); }
.lead-question-chip { border: 1px solid var(--line-strong); background: var(--paper); color: var(--ink); padding: 7px 9px; font: 9px/1.35 var(--mono); }
.lead-options { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; }
.lead-option { display: grid; align-content: start; gap: 9px; min-width: 0; border: 1px solid var(--line-strong); background: var(--paper); padding: 13px; }
.lead-option.is-recommended { border-color: var(--brass); box-shadow: inset 0 3px 0 var(--brass); }
.lead-option.is-selected { background: color-mix(in srgb, var(--brass) 11%, var(--surface)); }
.lead-option-head { display: flex; justify-content: space-between; gap: 8px; color: var(--brass); font: 700 8px/1.3 var(--mono); text-transform: uppercase; }
.lead-option h4 { margin: 0; color: var(--ink-strong); font-size: 18px; line-height: 1; text-transform: uppercase; }
.lead-option ul { display: grid; gap: 4px; margin: 0; padding-left: 16px; color: var(--muted); font: 9px/1.45 var(--mono); }
.lead-option-price { display: grid; gap: 3px; border-top: 1px solid var(--line); padding-top: 8px; }
.lead-option-price strong { color: var(--ink-strong); font: 700 17px var(--mono); }
.lead-option-price span, .lead-option-tradeoff { color: var(--muted); font: 8px/1.45 var(--mono); }
.lead-option button { min-height: 40px; border: 1px solid var(--brass); background: transparent; color: var(--ink-strong); padding: 8px; font: 700 9px var(--mono); text-transform: uppercase; }
.lead-option button:hover, .lead-option button:focus-visible { background: var(--brass); color: #fff; }
.lead-warnings { display: grid; gap: 5px; border-left: 3px solid #a75b35; background: color-mix(in srgb, #a75b35 8%, var(--surface)); padding: 10px 12px; color: var(--muted); font: 9px/1.5 var(--mono); }
.consultation-form label { position: relative; display: grid; gap: 6px; color: var(--muted); font: 10px var(--mono); text-transform: uppercase; }
.label-with-info { display: inline-flex; align-items: center; gap: 6px; }
.field-info { position: relative; display: inline-block; margin: 0; color: var(--muted); font: inherit; text-transform: none; }
.field-info summary { display: grid; place-items: center; width: 26px; height: 26px; border: 1px solid var(--line-strong); border-radius: 50%; background: var(--surface); color: var(--brass); cursor: pointer; font: 700 12px/1 var(--sans); list-style: none; text-transform: lowercase; }
.field-info summary::-webkit-details-marker { display: none; }
.field-info > div { position: absolute; z-index: 12; top: calc(100% + 7px); left: 0; width: min(290px, calc(100vw - 70px)); border: 1px solid var(--line-strong); background: var(--ink-strong); box-shadow: var(--shadow); color: #f2f4ee; padding: 11px 12px; font: 10px/1.5 var(--mono); text-transform: none; }
.terms-check .field-info { margin-left: 4px; vertical-align: middle; }
.terms-check .field-info summary { width: 24px; height: 24px; }
.consultation-form input, .consultation-form select, .consultation-form textarea { width: 100%; border: 1px solid var(--line-strong); border-radius: 3px; background: var(--surface); color: var(--ink); padding: 12px; outline: none; resize: vertical; font: 16px/1.35 var(--sans); }
.consultation-form input:focus, .consultation-form select:focus, .consultation-form textarea:focus { border-color: var(--brass); box-shadow: 0 0 0 3px color-mix(in srgb, var(--brass) 20%, transparent); }
.required-marker { position: static; display: inline-block; margin-left: 4px; color: #c83b36; font: 800 15px/1 var(--sans); vertical-align: baseline; }
.form-two-col { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.outdoor-requirements { display: grid; gap: 12px; margin: 2px 0 0; padding: 16px; border: 1px solid var(--line-strong); background: color-mix(in srgb, var(--surface) 86%, var(--brass) 14%); }
.outdoor-requirements [data-group-heading] { display: grid; gap: 5px; }
.outdoor-requirements [data-group-heading] strong { color: var(--ink-strong); font-size: 16px; text-transform: uppercase; }
.outdoor-requirements-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.outdoor-tent-notice { margin: 0; border-left: 3px solid var(--brass); background: color-mix(in srgb, var(--surface) 72%, var(--brass) 28%); color: var(--ink); padding: 10px 12px; font: 700 11px/1.45 var(--mono); text-transform: none; }
.mixed-venue-details, .weather-readiness { display: grid; gap: 12px; margin: 2px 0 0; padding: 16px; border: 1px solid var(--line-strong); background: color-mix(in srgb, var(--surface) 92%, var(--brass) 8%); }
.mixed-venue-details [data-group-heading] { display: grid; gap: 5px; }
.mixed-venue-details [data-group-heading] strong, .weather-readiness strong { color: var(--ink-strong); font-size: 16px; text-transform: uppercase; }
.weather-readiness { border-color: color-mix(in srgb, #a32929 55%, var(--line-strong)); background: color-mix(in srgb, #a32929 8%, var(--surface)); }
.weather-readiness[data-risk="clear"] { border-color: var(--line-strong); background: color-mix(in srgb, var(--surface) 92%, #397452 8%); }
.weather-readiness p { margin: 0; color: var(--muted); font: 11px/1.55 var(--mono); }
.weather-readiness small { display: block; margin-top: 6px; color: var(--muted); font: 10px/1.5 var(--mono); }
.dj-support-options { display: grid; gap: 7px; min-width: 0; margin: 0; border: 1px solid var(--line-strong); padding: 10px; }
.dj-support-options legend { padding: 0 4px; color: var(--muted); font: 10px var(--mono); text-transform: uppercase; }
.dj-support-options label { display: grid; grid-template-columns: auto minmax(0, 1fr); align-items: start; gap: 8px; color: var(--ink); font: 10px/1.35 var(--mono); text-transform: none; }
.dj-support-options input { width: 16px !important; height: 16px; margin: 0; padding: 0 !important; accent-color: var(--brass); }
.dj-support-options:disabled { opacity: .6; }
.address-picker { position: relative; }
.address-picker-help { display: block; margin-top: 6px; color: var(--muted); font: 10px/1.45 var(--mono); }
.address-suggestions { position: absolute; z-index: 20; top: calc(100% - 2px); right: 0; left: 0; max-height: min(44dvh, 360px); overflow-x: hidden; overflow-y: auto; border: 1px solid var(--line-strong); background: var(--surface); box-shadow: var(--shadow); overscroll-behavior: contain; -webkit-overflow-scrolling: touch; }
.address-suggestion { display: grid; gap: 4px; width: 100%; min-height: 64px; border: 0; border-bottom: 1px solid var(--line); background: var(--surface); color: var(--ink); cursor: pointer; padding: 13px 14px; text-align: left; touch-action: manipulation; }
.address-suggestion:last-child { border-bottom: 0; }
.address-suggestion:hover, .address-suggestion:focus-visible { background: var(--surface-soft); outline: none; }
.address-suggestion strong { font: 700 11px/1.35 var(--mono); }
.address-suggestion small { color: var(--muted); font: 9px/1.4 var(--mono); }
.rental-section-label { display: grid; gap: 6px; border-top: 1px solid var(--line); padding-top: 18px; }
.rental-section-label strong { color: var(--ink-strong); font-size: 18px; text-transform: uppercase; }
.planner-inventory-preview { border: 1px solid var(--line); background: var(--surface-soft); }
.planner-inventory-preview > summary { display: grid; grid-template-columns: minmax(0, 1fr) auto auto; align-items: center; gap: 10px; min-height: 48px; padding: 9px 12px; cursor: pointer; list-style: none; }
.planner-inventory-preview > summary::-webkit-details-marker { display: none; }
.planner-inventory-preview > summary > span { display: grid; gap: 2px; min-width: 0; }
.planner-inventory-preview > summary strong { color: var(--ink-strong); font: 700 10px/1.35 var(--mono); text-transform: uppercase; }
.planner-inventory-preview > summary small { overflow: hidden; color: var(--muted); font: 8px/1.35 var(--mono); text-overflow: ellipsis; white-space: nowrap; }
.planner-inventory-preview > summary em { color: var(--brass); font: 700 8px/1.35 var(--mono); font-style: normal; text-transform: uppercase; }
.planner-inventory-preview > summary::after { content: '+'; color: var(--brass); font-size: 18px; line-height: 1; }
.planner-inventory-preview[open] > summary::after { content: '\2212'; }
.planner-inventory-preview-body { display: grid; gap: 12px; border-top: 1px solid var(--line); padding: 12px; }
.planner-inventory-preview:not([open]) > .planner-inventory-preview-body { display: none; }
.planner-inventory-products { display: grid; gap: 1px; background: var(--line); }
.planner-inventory-products > div { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 3px 12px; background: var(--surface); padding: 10px; }
.planner-inventory-products span { display: grid; gap: 2px; min-width: 0; }
.planner-inventory-products strong { color: var(--ink-strong); font: 700 10px/1.35 var(--mono); text-transform: uppercase; }
.planner-inventory-products small { overflow: hidden; color: var(--muted); font: 8px/1.35 var(--mono); text-overflow: ellipsis; white-space: nowrap; }
.planner-inventory-products b { color: var(--brass); font: 800 13px/1.2 var(--mono); }
.planner-inventory-products em { grid-column: 1 / -1; color: var(--muted); font: 8px/1.35 var(--mono); font-style: normal; text-transform: uppercase; }
.equipment-package-grid { display: grid; gap: 10px; margin: 0; padding: 0; border: 0; }
.equipment-package { display: grid !important; grid-template-columns: auto minmax(0, 1fr); gap: 12px !important; min-height: 112px; border: 1px solid var(--line-strong); background: var(--surface); padding: 16px; cursor: pointer; text-transform: none !important; transition: border-color 160ms ease, background 160ms ease; }
.equipment-package:has(input:checked) { border-color: var(--brass); background: color-mix(in srgb, var(--brass) 10%, var(--surface)); box-shadow: inset 3px 0 0 var(--brass); }
.equipment-package input { width: 18px; height: 18px; margin-top: 2px; padding: 0; accent-color: var(--brass); }
.equipment-package > span { display: grid; gap: 5px; min-width: 0; }
.equipment-package b { color: var(--ink-strong); font: 700 13px/1.35 var(--mono); text-transform: uppercase; }
.equipment-package small { color: var(--muted); font: 11px/1.5 var(--mono); }
.equipment-package em { color: var(--brass); font: 700 9px/1.5 var(--mono); text-transform: uppercase; font-style: normal; }
.equipment-package > strong { grid-column: 2; color: var(--ink-strong); font: 700 11px/1.45 var(--mono); }
.equipment-package input:disabled ~ span, .equipment-package input:disabled ~ strong { opacity: .55; }
.reminder-consent { display: grid !important; grid-template-columns: auto minmax(0, 1fr); align-items: start; gap: 10px !important; border: 1px solid var(--line); background: var(--surface-soft); padding: 12px; text-transform: none !important; }
.reminder-consent input { width: 18px !important; height: 18px; margin-top: 1px; padding: 0 !important; accent-color: var(--brass); }
.reminder-consent span { display: grid; gap: 3px; min-width: 0; }
.reminder-consent strong { color: var(--ink-strong); font: 700 10px/1.4 var(--mono); text-transform: none; }
.reminder-consent small { color: var(--muted); font: 9px/1.5 var(--mono); text-transform: none; }
.draft-state { display: flex; align-items: center; justify-content: space-between; gap: 12px; border-bottom: 1px solid var(--line); padding: 0 0 14px; color: var(--muted); font: 9px/1.5 var(--mono); }
.draft-state .text-link { flex: 0 0 auto; }
.field-help { color: var(--muted); font: 10px/1.55 var(--mono); }
.rental-fineprint { color: var(--muted); font: 9px/1.55 var(--mono); }
.rental-fineprint strong { color: var(--brass); font-weight: 700; }
.rental-quote { display: grid; gap: 1px; border: 1px solid var(--line-strong); background: var(--line); }
.rental-quote > div { display: flex; justify-content: space-between; gap: 12px; background: var(--surface); padding: 11px 12px; }
.rental-quote span { color: var(--muted); font: 10px var(--mono); text-transform: uppercase; }
.rental-quote strong { color: var(--ink-strong); font: 700 12px var(--mono); text-align: right; }
.rental-quote-highlight { background: color-mix(in srgb, var(--brass) 16%, var(--surface)) !important; }
.rental-quote-highlight strong { color: var(--brass); }
.deposit-explainer { margin-top: 16px; border: 1px solid var(--line); background: var(--surface); }
.deposit-explainer summary { display: flex; align-items: center; justify-content: space-between; gap: 16px; min-height: 44px; cursor: pointer; color: var(--ink-strong); padding: 10px 16px; font: 700 11px var(--mono); text-transform: uppercase; }
.deposit-explainer summary span { color: var(--brass); font-size: 18px; }
.deposit-explainer[open] summary { border-bottom: 1px solid var(--line); }
.deposit-explainer-copy { display: grid; gap: 12px; padding: 14px 16px 16px; color: var(--muted); font-size: 13px; line-height: 1.55; }
.deposit-explainer-copy ul { display: grid; gap: 8px; margin: 0; padding-left: 18px; }
.deposit-explainer-copy li::marker { color: var(--brass); }
.service-agreement { border: 1px solid var(--line-strong); background: var(--surface); }
.service-agreement summary { min-height: 48px; padding: 16px; color: var(--ink-strong); font: 700 11px var(--mono); cursor: pointer; text-transform: uppercase; }
.service-agreement[open] summary { border-bottom: 1px solid var(--line); }
.service-agreement-copy { display: grid; gap: 12px; padding: 16px; color: var(--muted); font-size: 12px; line-height: 1.6; }
.service-agreement-copy p { margin: 0; }
.service-agreement-copy strong { color: var(--ink-strong); }
.terms-page { min-height: 100svh; background: var(--paper); }
.terms-document { display: grid; gap: 22px; width: min(860px, calc(100% - 40px)); margin: 0 auto; padding: 44px 0 72px; }
.terms-document h1 { max-width: 680px; font-size: clamp(44px, 8vw, 92px); }
.terms-document section { display: grid; gap: 8px; border-top: 1px solid var(--line); padding-top: 18px; }
.terms-document h2 { font-size: 24px; }
.terms-document p { color: var(--muted); font-size: 15px; line-height: 1.65; }
.terms-document .terms-lede { max-width: 68ch; color: var(--ink); }
.terms-document .terms-note { border-top: 1px solid var(--line); padding-top: 18px; font: 10px/1.6 var(--mono); text-transform: uppercase; }
.payment-methods { display: grid; gap: 7px; border: 0; margin: 0; padding: 18px 0 0; border-top: 1px solid var(--line); }
.payment-methods legend { display: grid; gap: 6px; width: 100%; margin-bottom: 3px; padding: 0; }
.payment-methods legend strong { color: var(--ink-strong); font-size: 18px; text-transform: uppercase; }
.payment-option { display: grid !important; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: 10px !important; border: 1px solid var(--line); background: var(--surface); padding: 11px 12px; cursor: pointer; text-transform: none !important; }
.payment-option:has(input:checked) { border-color: var(--brass); background: color-mix(in srgb, var(--brass) 10%, var(--surface)); }
.payment-option input { width: 16px; height: 16px; accent-color: var(--brass); padding: 0; }
.payment-option span { display: grid; gap: 3px; min-width: 0; }
.payment-option b { color: var(--ink-strong); font: 700 11px var(--mono); text-transform: uppercase; }
.payment-option small { color: var(--muted); font: 9px/1.4 var(--mono); text-transform: none; }
.payment-option > strong { color: var(--brass); font: 700 11px var(--mono); white-space: nowrap; }
.terms-check { display: grid !important; grid-template-columns: auto minmax(0, 1fr); align-items: start; gap: 10px !important; border-top: 1px solid var(--line); padding-top: 16px; text-transform: none !important; }
.terms-check input { width: 17px; height: 17px; margin-top: 1px; accent-color: var(--brass); padding: 0; }
.terms-check span { color: var(--muted); font: 10px/1.55 var(--mono); text-transform: none; }
.terms-check span small { display: block; margin-top: 5px; color: var(--brass); font: 9px/1.45 var(--mono); }
.terms-check input:disabled + span { opacity: .72; }
.service-agreement summary { display: flex; align-items: center; justify-content: space-between; gap: 12px; min-height: 48px; }
.service-agreement summary > span { color: var(--ink-strong); font-weight: 800; }
.service-agreement summary > small { color: var(--brass); font: 750 9px var(--mono); text-transform: uppercase; white-space: nowrap; }
.agreement-required-marker { color: #c83b36; font-style: normal; }
.consultation-form button, .consultation-form input, .consultation-form select, .consultation-form textarea, .consultation-form summary { touch-action: manipulation; }
.form-error-summary { border: 1px solid #b44b43; background: color-mix(in srgb, #b44b43 8%, var(--surface)); color: #9f302a; padding: 12px; font: 10px/1.55 var(--mono); }
.form-error-summary[hidden] { display: none; }
.form-error-summary strong { display: block; margin-bottom: 4px; color: inherit; text-transform: uppercase; }
.form-error-summary p { margin: 0 0 7px; }
.form-error-summary ol { display: grid; gap: 5px; margin: 0; padding: 0; list-style: none; }
.form-error-summary button { display: grid; gap: 2px; width: 100%; min-height: 44px; border: 1px solid color-mix(in srgb, #b44b43 40%, var(--line)); background: var(--surface); color: #9f302a; padding: 8px 10px; text-align: left; }
.form-error-summary button span { font-weight: 800; text-transform: uppercase; }
.form-error-summary button small { color: var(--muted); font: 9px/1.4 var(--mono); text-transform: none; }
.form-error-summary-more { margin: 8px 0 0; color: #9f302a; font: 700 10px/1.3 var(--mono); }
.booking-submit-panel { display: grid; gap: 12px; border: 1px solid var(--line-strong); background: var(--surface); padding: 16px; }
.booking-submit-panel > div { display: grid; gap: 5px; }
.booking-submit-panel > div > strong { color: var(--ink-strong); font-size: 16px; }
.booking-submit-panel > div > small { color: var(--muted); font: 9px/1.5 var(--mono); }
.booking-submit-panel .button { width: 100%; }
.booking-submit-panel .button:disabled { cursor: wait; opacity: 0.64; transform: none; box-shadow: none; }
.form-status { min-height: 22px; color: var(--sage); font: 11px/1.5 var(--mono); }
.saved-receipt { display: grid; gap: 13px; border: 1px solid var(--line-strong); background: var(--surface); padding: 16px; }
.saved-receipt p, .saved-receipt small { color: var(--muted); font: 10px/1.55 var(--mono); }
.receipt-private-access { display: grid; gap: 6px; }
.receipt-private-access .button { width: 100%; }
.receipt-edit-planner { justify-self: start; }
#consultationForm.is-quote-receipt [data-booking-step="details"] > :not([data-saved-receipt]) { display: none; }
#consultationForm.is-quote-receipt .booking-wizard-nav,
#consultationForm.is-quote-receipt .booking-wizard-footer { display: none; }
.receipt-customer-note { margin-top: 1px; }
.receipt-head { display: flex; justify-content: space-between; gap: 12px; border-bottom: 1px solid var(--line); padding-bottom: 12px; }
.receipt-head > div { display: grid; gap: 5px; }
.receipt-head strong { color: var(--ink-strong); font: 700 13px var(--mono); }
.receipt-head > span { color: var(--brass); font: 700 9px var(--mono); text-align: right; text-transform: uppercase; }
.receipt-lines { display: grid; gap: 1px; background: var(--line); }
.receipt-lines > div { display: flex; justify-content: space-between; gap: 12px; background: var(--surface); padding: 9px 10px; }
.receipt-lines span { color: var(--muted); font: 10px/1.4 var(--mono); }
.receipt-lines strong { color: var(--ink-strong); font: 700 10px var(--mono); text-align: right; white-space: nowrap; }
.quote-review-detail { display: grid; gap: 10px; }
.instant-checkout { border: 1px solid var(--brass); background: color-mix(in srgb, var(--brass) 7%, var(--surface)); }
.instant-checkout summary { display: flex; align-items: center; justify-content: space-between; gap: 12px; min-height: 46px; padding: 11px 14px; color: var(--ink-strong); cursor: pointer; font: 700 11px var(--mono); text-transform: uppercase; }
.instant-checkout summary small { color: var(--brass); font: 700 9px var(--mono); white-space: nowrap; }
.instant-checkout[open] summary { border-bottom: 1px solid var(--line); }
.instant-checkout-body { display: grid; gap: 11px; padding: 13px 14px 15px; }
.instant-checkout-body > .field-help { margin: 0; }
.instant-checkout-body .service-agreement { margin-top: 1px; }
.payment-down-payment { display: flex; align-items: center; justify-content: space-between; gap: 12px; border: 1px solid var(--line); background: var(--surface); padding: 10px 12px; }
.payment-down-payment span { display: grid; gap: 3px; }
.payment-down-payment b { color: var(--ink-strong); font: 700 11px var(--mono); text-transform: uppercase; }
.payment-down-payment small { color: var(--muted); font: 9px/1.4 var(--mono); }
.payment-down-payment strong { color: var(--brass); font: 700 11px var(--mono); white-space: nowrap; }
.instant-checkout-body > label:not(.terms-check) { display: grid; gap: 6px; }
.instant-checkout-body .button { width: 100%; }
.receipt-line-copy { display: grid; gap: 4px; min-width: 0; }
.receipt-line-copy > span { display: inline-flex; align-items: center; gap: 7px; min-width: 0; }
.receipt-line-copy > span > strong { text-align: left; white-space: normal; }
.receipt-line-copy small { color: var(--muted); font: 9px/1.45 var(--mono); text-transform: none; }
.receipt-info { flex: 0 0 auto; }
.receipt-info summary { width: 20px; height: 20px; font-size: 10px; }
.receipt-total { border-top: 1px solid var(--line-strong); }
.receipt-deposit { background: color-mix(in srgb, var(--brass) 13%, var(--surface)) !important; }
.receipt-deposit strong { color: var(--brass); }
.vision-toggle { position: fixed; right: 18px; bottom: 18px; z-index: 60; display: inline-flex; align-items: center; gap: 8px; border: 1px solid var(--ink); border-radius: 999px; background: var(--surface); color: var(--ink); padding: 9px 13px; font: 700 10px var(--mono); text-transform: uppercase; box-shadow: var(--shadow); }
.vision-toggle:hover { border-color: var(--brass); color: var(--brass); }

.gravity-assistant { position: fixed; right: 18px; bottom: 18px; z-index: 80; display: grid; justify-items: end; gap: 10px; }
.gravity-launcher { grid-row: 2; display: inline-grid; grid-template-columns: 34px auto; align-items: center; gap: 9px; min-height: 48px; border: 1px solid var(--ink); border-radius: 999px; background: var(--ink); color: var(--paper); padding: 6px 14px 6px 7px; box-shadow: 0 12px 32px rgba(18, 19, 16, .24); cursor: pointer; }
.gravity-launcher-mark { display: grid; place-items: center; width: 34px; height: 34px; border-radius: 50%; background: var(--brass); color: var(--ink); font: 700 20px/1 var(--display); }
.gravity-launcher-copy { display: grid; gap: 1px; text-align: left; }
.gravity-launcher-copy strong { font: 700 10px/1.1 var(--mono); letter-spacing: .08em; text-transform: uppercase; }
.gravity-launcher-copy small { color: color-mix(in srgb, var(--paper) 72%, transparent); font: 8px/1.25 var(--mono); }
.gravity-launcher:hover, .gravity-launcher:focus-visible { border-color: var(--brass); outline: 2px solid color-mix(in srgb, var(--brass) 48%, transparent); outline-offset: 2px; }
.gravity-panel { grid-row: 1; width: min(360px, calc(100vw - 28px)); border: 1px solid var(--line-strong); background: var(--paper); padding: 16px; box-shadow: 0 18px 50px rgba(18, 19, 16, .24); }
.gravity-panel[hidden] { display: none; }
.gravity-panel-header { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: start; gap: 12px; }
.gravity-panel-header > div { display: grid; gap: 5px; }
.gravity-panel-header strong { color: var(--ink-strong); font-size: 17px; line-height: 1.15; }
.gravity-panel > p { margin: 12px 0; color: var(--muted); font-size: 12px; line-height: 1.5; }
.gravity-panel-actions { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.gravity-panel-actions .button { min-width: 0; padding-inline: 10px; text-align: center; }
.sound-app-ready .gravity-assistant { bottom: calc(82px + env(safe-area-inset-bottom)); }

.agreement-page { min-height: 100vh; background: var(--paper); }
.agreement-header { position: sticky; top: 0; z-index: 20; display: flex; justify-content: space-between; align-items: center; min-height: 72px; border-bottom: 1px solid var(--line); background: color-mix(in srgb, var(--paper) 94%, transparent); padding: 12px clamp(18px, 4vw, 48px); backdrop-filter: blur(14px); }
.agreement-shell { width: min(820px, calc(100% - 36px)); margin: 0 auto; padding: 64px 0 96px; }
.agreement-intro { display: grid; gap: 14px; margin-bottom: 34px; }
.agreement-intro h1 { max-width: 760px; font-size: clamp(42px, 8vw, 80px); line-height: .94; }
.agreement-intro p { max-width: 620px; color: var(--muted); font-size: 16px; }
.agreement-loading, .agreement-error { border: 1px solid var(--line-strong); background: var(--surface); padding: 24px; font: 12px/1.6 var(--mono); }
.agreement-error { border-color: #a32929; color: #a32929; }
.agreement-form { display: grid; gap: 20px; }
.agreement-summary, .agreement-money { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); border: 1px solid var(--line-strong); background: var(--line); gap: 1px; }
.agreement-summary > div, .agreement-money > div { display: grid; gap: 8px; min-width: 0; background: var(--surface); padding: 16px; }
.agreement-summary span, .agreement-money span, .agreement-fingerprint span { color: var(--muted); font: 9px var(--mono); text-transform: uppercase; }
.agreement-summary strong, .agreement-money strong { color: var(--ink-strong); font: 700 13px/1.45 var(--mono); overflow-wrap: anywhere; }
.agreement-total { background: color-mix(in srgb, var(--brass) 13%, var(--surface)) !important; }
.agreement-total strong { color: var(--brass); }
.agreement-schedule { display: grid; gap: 1px; margin: 0; padding: 0; border: 1px solid var(--line); background: var(--line); list-style: none; }
.agreement-schedule li { display: grid; grid-template-columns: 1fr auto; gap: 5px 14px; background: var(--surface); padding: 13px 15px; }
.agreement-schedule span, .agreement-schedule strong { font: 700 11px var(--mono); }
.agreement-schedule small { grid-column: 1 / -1; color: var(--muted); font: 9px var(--mono); }
.payment-deferral { display: grid; grid-template-columns: 1fr auto; align-items: center; gap: 18px; border: 1px solid var(--line-strong); background: var(--surface); padding: 20px; }
.payment-deferral h2 { margin: 6px 0 0; color: var(--ink-strong); font-size: clamp(22px, 4vw, 32px); }
.payment-deferral p { margin: 9px 0 0; color: var(--muted); font-size: 13px; line-height: 1.55; }
.payment-choice { display: grid; gap: 16px; border: 1px solid var(--line-strong); background: var(--surface); padding: 20px; }
.payment-choice-heading { display: grid; gap: 5px; }
.payment-choice-heading span { color: var(--ink-strong); font: 700 11px var(--mono); text-transform: uppercase; }
.payment-choice-heading small, .payment-choice .field-help { color: var(--muted); font: 9px/1.55 var(--mono); }
.payment-choice-options { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; }
.payment-choice-options label { display: grid; grid-template-columns: auto 1fr; align-items: start; gap: 9px; min-height: 86px; border: 1px solid var(--line); padding: 13px; cursor: pointer; }
.payment-choice-options label:has(input:checked) { border-color: var(--brass); background: color-mix(in srgb, var(--brass) 8%, var(--surface)); }
.payment-choice-options input { width: 16px; height: 16px; margin: 1px 0 0; accent-color: var(--brass); }
.payment-choice-options span { display: grid; gap: 5px; }
.payment-choice-options strong { color: var(--ink-strong); font: 700 10px/1.35 var(--mono); }
.payment-choice-options small { color: var(--muted); font: 9px/1.45 var(--mono); }
.payment-custom { max-width: 260px; }
.agreement-terms { border: 1px solid var(--line-strong); background: var(--surface); }
.agreement-terms summary { min-height: 48px; padding: 16px; color: var(--ink-strong); font: 700 11px var(--mono); cursor: pointer; }
.agreement-terms pre { max-height: 420px; overflow: auto; margin: 0; border-top: 1px solid var(--line); padding: 18px; color: var(--muted); font: 10px/1.65 var(--mono); white-space: pre-wrap; }
.agreement-consent { display: grid; gap: 12px; border: 1px solid var(--line-strong); background: var(--surface); padding: 20px; }
.agreement-card-on-file { display: grid; gap: 14px; border: 1px solid var(--line-strong); background: var(--surface); padding: 20px; }
.agreement-card-on-file h2 { margin: 0; font-size: clamp(24px, 5vw, 38px); }
.agreement-card-on-file p { margin: 0; color: var(--muted); font-size: 13px; line-height: 1.55; }
.square-card-container { min-height: 82px; border: 1px solid var(--line); padding: 12px; background: var(--paper); }
.agreement-fingerprint { display: grid; gap: 6px; min-width: 0; }
.agreement-fingerprint code { color: var(--muted); font: 9px/1.5 var(--mono); overflow-wrap: anywhere; }
.agreement-submit { width: 100%; min-height: 52px; }

@media (max-width: 620px) {
  .agreement-shell { width: min(100% - 28px, 820px); padding-top: 42px; }
  .agreement-summary, .agreement-money { grid-template-columns: 1fr; }
  .payment-choice-options { grid-template-columns: 1fr; }
  .payment-choice-options label { min-height: 0; }
  .payment-deferral { grid-template-columns: 1fr; }
  .agreement-header .brand-copy small { display: none; }
}

@media (max-width: 980px) {
  .site-header { grid-template-columns: minmax(180px, 1fr) auto; padding-inline: 20px; }
  .header-readout { display: none; }
  .main-nav { position: fixed; top: 76px; left: 14px; right: 14px; display: none; flex-direction: column; align-items: stretch; gap: 0; border: 1px solid var(--line); background: var(--paper); padding: 8px; box-shadow: var(--shadow); }
  .main-nav.is-open { display: flex; }
  .main-nav a, .nav-account, .nav-cta { padding: 13px; text-align: left; }
  .nav-cta { text-align: center; }
  .menu-toggle { display: block; justify-self: end; }
  .hero-section, .showcase-section, .signal-section { grid-template-columns: minmax(0, 1fr); }
  .hero-image-wrap, .showcase-lens, .showcase-stage, .signal-copy, .signal-monitor { min-width: 0; }
  .hero-image-wrap { order: -1; }
  .hero-image-frame { aspect-ratio: 1.55; }
  .hero-side-note { right: 0; }
  .service-grid, .process-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .rental-shop-heading { grid-template-columns: 1fr; align-items: start; }
  .rental-shop-summary { width: min(100%, 360px); }
  .rental-catalog { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .rental-catalog-toolbar { grid-template-columns: minmax(0, 1fr) minmax(180px, .45fr); }
  .rental-view-switcher { grid-column: 1 / -1; justify-content: start; }
  .rental-catalog[data-view="list"] .rental-catalog-body { grid-template-columns: 1fr; grid-template-rows: auto; }
  .rental-catalog[data-view="list"] .rental-item-kicker, .rental-catalog[data-view="list"] h3, .rental-catalog[data-view="list"] p, .rental-catalog[data-view="list"] .rental-item-facts, .rental-catalog[data-view="list"] .rental-item-controls { grid-column: 1; grid-row: auto; }
  .rental-catalog[data-view="gallery"] .rental-catalog-body { grid-template-columns: 1fr; }
  .rental-catalog[data-view="gallery"] .rental-item-kicker, .rental-catalog[data-view="gallery"] h3, .rental-catalog[data-view="gallery"] p, .rental-catalog[data-view="gallery"] .rental-item-facts, .rental-catalog[data-view="gallery"] .rental-item-controls { grid-column: 1; grid-row: auto; }
  .showcase-stage { min-height: 520px; }
  .work-grid { grid-template-columns: 1fr 1fr; }
  .work-card-large { grid-column: 1 / -1; }
}

@media (max-width: 620px) {
  .site-header { min-height: 64px; padding: 10px 14px; }
  .brand-copy strong { font-size: 10px; }
  .brand-copy small { font-size: 8px; }
  .hero-section { width: 100%; max-width: 100vw; min-height: auto; overflow: hidden; padding: 92px 18px 76px; gap: 32px; }
  .hero-copy, .hero-image-wrap, .hero-image-frame, .hero-lede { width: 100%; max-width: 100%; min-width: 0; }
  .hero-image-wrap { order: 0; }
  h1 { width: 100%; font-size: clamp(46px, 12vw, 60px); }
  h2 { font-size: clamp(43px, 14vw, 68px); }
  .hero-lede { overflow-wrap: anywhere; }
  .hero-actions { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); width: 100%; }
  .hero-actions .button { width: 100%; min-width: 0; padding-inline: 12px; text-align: center; white-space: normal; }
  .hero-data { display: grid; grid-template-columns: minmax(0, 1fr) auto; width: 100%; }
  .hero-data > * { min-width: 0; overflow-wrap: anywhere; }
  .hero-data > :last-child { text-align: right; }
  .hero-image-frame { aspect-ratio: 1; }
  .hero-side-note { display: none; }
  .scroll-cue { left: 18px; }
  .story-plate { position: relative; min-height: 88svh; }
  .story-content { padding: 84px 18px; }
  .story-content p { font-size: 15px; }
  .section-band { padding: 62px 18px; }
  .service-grid, .process-grid, .quick-service-grid, .quick-process-grid, .work-grid, .utilities-section { grid-template-columns: 1fr; }
  .quick-service-grid article, .quick-process-grid article { min-height: 150px; }
  .quick-terms { text-align: left; }
  .rental-package-shortcuts, .rental-catalog, .rental-catalog[data-view="gallery"] { grid-template-columns: 1fr; }
  .rental-package-shortcuts button { min-height: 0; }
  .rental-catalog-toolbar { grid-template-columns: 1fr; }
  .rental-view-switcher { grid-column: auto; grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .rental-view-switcher button { padding-inline: 6px; }
  .rental-catalog[data-view="list"] .rental-catalog-card { grid-template-columns: 1fr; grid-template-rows: auto minmax(0, 1fr); }
  .rental-catalog[data-view="list"] .rental-catalog-media { min-height: 0; aspect-ratio: 3 / 2; border-right: 0; border-bottom: 1px solid var(--line); }
  .rental-item-facts { grid-template-columns: 1fr; }
  .rental-item-controls { grid-template-columns: 92px minmax(0, 1fr); }
  .rental-cart { padding: 16px; }
  .rental-cart-heading { align-items: start; flex-direction: column; }
  .rental-cart-line { grid-template-columns: minmax(0, 1fr) auto; }
  .rental-cart-line button { grid-column: 1 / -1; }
  .rental-cart-line > em { grid-column: 1 / -1; justify-self: start; }
  .rental-cart-summary { grid-template-columns: 1fr; }
  .rental-cart-actions { display: grid; grid-template-columns: 1fr; }
  .rental-cart-actions .button { width: 100%; }
  .service-card { min-height: 300px; }
  .section-heading-inline { display: grid; align-items: start; }
  .showcase-stage { min-height: 420px; }
  .showcase-card { width: 88%; border-width: 8px; }
  .showcase-strip { right: -4px; bottom: -28px; font-size: 8px; }
  .technical-readout { right: 0; bottom: 2%; font-size: 8px; }
  .form-two-col { grid-template-columns: 1fr; }
  .lead-planner { padding: 14px; }
  .lead-planner-head { grid-template-columns: 1fr; }
  .lead-completeness { width: 100%; border-top: 3px solid var(--brass); border-left: 0; }
  .lead-question-grid, .lead-options { grid-template-columns: 1fr; }
  .lead-question-group > summary { align-items: center; }
  .outdoor-requirements-grid { grid-template-columns: 1fr; }
  .booking-steps { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .booking-steps li { min-height: 98px; padding: 8px; }
  .footer-status { display: grid; justify-content: stretch; text-align: left; }
  .footer-cta { font-size: 14vw; }
  .drawer-panel { width: 100%; padding: 22px 18px 32px; }
  .account-panel { width: 100%; padding: 22px 18px 90px; }
  .account-link-saved { grid-template-columns: 1fr; }
  .account-record-money { grid-template-columns: 1fr; }
  .lead-workflow-result > summary em { max-width: 92px; }
  .drawer-header h2 { font-size: 38px; }
  .booking-resume-head, .draft-state { align-items: stretch; }
  .booking-resume-actions { display: grid; grid-template-columns: 1fr; }
  .booking-resume-actions .button, .booking-resume-actions .text-link { width: 100%; text-align: center; }
  .vision-toggle { right: 12px; bottom: 12px; }
  .gravity-assistant { right: 12px; bottom: 12px; }
  .sound-app-ready .gravity-assistant { bottom: calc(78px + env(safe-area-inset-bottom)); }
  .gravity-launcher-copy { display: none; }
  .gravity-launcher { grid-template-columns: 38px; min-width: 52px; min-height: 52px; padding: 6px; }
  .gravity-launcher-mark { width: 38px; height: 38px; }
  .gravity-panel-actions { grid-template-columns: 1fr; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; transition-duration: 0.01ms !important; animation-duration: 0.01ms !important; }
}

/* Public Sound OS app shell. Each primary task owns one viewport instead of
   contributing to a single marketing page that grows indefinitely. */
.app-tabbar,
.booking-wizard-nav,
.booking-wizard-footer { display: none; }

html.sound-app-ready,
.sound-app-ready body { height: 100%; overflow: hidden; }

.sound-app-ready .scroll-progress,
.sound-app-ready .quick-services,
.sound-app-ready .quick-process,
.sound-app-ready .site-footer,
.sound-app-ready .vision-toggle { display: none; }

.sound-app-ready .site-header {
  height: 68px;
  min-height: 68px;
  padding-block: 8px;
}

.sound-app-ready .main-nav,
.sound-app-ready .menu-toggle { display: none !important; }

.sound-app-ready main {
  position: fixed;
  inset: 68px 0 calc(72px + env(safe-area-inset-bottom));
  overflow: hidden;
}

.sound-app-ready .app-screen {
  display: none;
  width: 100%;
  height: 100%;
  overflow-x: hidden;
  overflow-y: auto;
  overscroll-behavior: contain;
  scrollbar-gutter: stable;
}

.sound-app-ready .app-screen.is-active { display: grid; }
.sound-app-ready .equipment-rental-shop.is-active,
.sound-app-ready .app-cart-screen.is-active { display: block; }

.sound-app-ready .hero-section {
  min-height: 100%;
  padding: clamp(34px, 6vh, 76px) clamp(28px, 7vw, 112px);
}

.sound-app-ready .hero-copy { align-self: center; }
.sound-app-ready .hero-image-wrap { align-self: center; }
.sound-app-ready .scroll-cue { display: none; }

.sound-app-ready .equipment-rental-shop,
.sound-app-ready .app-cart-screen {
  padding: clamp(28px, 4vw, 58px) clamp(20px, 5vw, 76px) 64px;
}

.app-screen-heading {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: end;
  gap: 20px;
  margin: 0 auto 22px;
  width: min(100%, 980px);
}

.app-screen-heading h2 {
  margin: 4px 0 0;
  font-size: clamp(38px, 6vw, 72px);
  line-height: .86;
}

.app-screen-heading p {
  width: min(100%, 430px);
  margin: 0;
  color: var(--muted);
  font-size: 13px;
  line-height: 1.55;
}

.sound-app-ready .app-cart-screen .rental-cart {
  position: static;
  width: min(100%, 980px);
  margin: 0 auto;
}

.app-tabbar {
  position: fixed;
  z-index: 70;
  right: 0;
  bottom: 0;
  left: 0;
  min-height: calc(72px + env(safe-area-inset-bottom));
  grid-template-columns: repeat(5, minmax(0, 1fr));
  align-items: start;
  gap: 2px;
  border-top: 1px solid var(--line-strong);
  background: color-mix(in srgb, var(--paper) 94%, transparent);
  padding: 7px max(10px, env(safe-area-inset-right)) max(7px, env(safe-area-inset-bottom)) max(10px, env(safe-area-inset-left));
  box-shadow: 0 -12px 34px rgba(18, 19, 16, .1);
  backdrop-filter: blur(16px);
}

.sound-app-ready .app-tabbar { display: grid; }

.app-tabbar button {
  position: relative;
  display: grid;
  place-items: center;
  align-content: center;
  gap: 3px;
  min-width: 0;
  min-height: 54px;
  border: 0;
  background: transparent;
  color: var(--muted);
  cursor: pointer;
  font: inherit;
}

.app-tabbar button > span {
  display: grid;
  place-items: center;
  width: 24px;
  height: 24px;
  font: 18px/1 var(--display);
}

.app-tabbar button strong {
  font: 700 9px/1 var(--mono);
  letter-spacing: .08em;
  text-transform: uppercase;
}

.app-tabbar button[aria-current="page"] { color: var(--ink); }
.app-tabbar button[aria-current="page"]::after {
  position: absolute;
  bottom: 0;
  width: 24px;
  height: 2px;
  background: var(--brass);
  content: "";
}

.app-tabbar .app-tab-primary {
  color: var(--ink);
  transform: translateY(-12px);
}

.app-tabbar .app-tab-primary > span {
  width: 44px;
  height: 44px;
  border: 1px solid var(--ink);
  border-radius: 50%;
  background: var(--brass);
  box-shadow: 0 8px 20px rgba(18, 19, 16, .18);
  font-size: 25px;
}

.app-tabbar em {
  position: absolute;
  top: 1px;
  left: calc(50% + 8px);
  display: grid;
  place-items: center;
  min-width: 17px;
  height: 17px;
  border-radius: 999px;
  background: var(--brass);
  color: var(--ink);
  padding-inline: 4px;
  font: 800 9px/1 var(--mono);
  font-style: normal;
}

/* Booking is a short, stateful flow. The drawer itself never scrolls; only the
   active step does, keeping controls and position visible at all times. */
.sound-app-ready .drawer-panel {
  display: flex;
  flex-direction: column;
  width: min(100%, 760px);
  height: 100svh;
  max-height: none;
  overflow: hidden;
  padding: 0;
}

.sound-app-ready .drawer-header {
  flex: 0 0 auto;
  margin: 0;
  border-bottom: 1px solid var(--line);
  padding: 18px 22px 14px;
}

.sound-app-ready .drawer-header h2 {
  margin-top: 3px;
  font-size: clamp(28px, 5vw, 46px);
  line-height: .9;
}

.sound-app-ready .drawer-intro,
.sound-app-ready .booking-steps { display: none; }

.sound-app-ready .booking-resume {
  flex: 0 0 auto;
  max-height: 34svh;
  overflow-y: auto;
  margin: 12px 22px 0;
}

.sound-app-ready .consultation-form {
  display: grid;
  flex: 1 1 auto;
  grid-template-rows: auto auto minmax(0, 1fr) auto;
  gap: 0;
  min-height: 0;
  overflow: hidden;
}

.sound-app-ready .form-error-summary {
  min-width: 0;
  max-height: min(29svh, 196px);
  overflow-y: auto;
  overscroll-behavior: contain;
}

.sound-app-ready .booking-wizard-nav {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 4px;
  border-bottom: 1px solid var(--line);
  padding: 10px 22px;
}

.booking-wizard-nav button {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  align-items: center;
  gap: 6px;
  min-width: 0;
  border: 0;
  background: transparent;
  color: var(--muted);
  padding: 7px 4px;
  cursor: pointer;
  font: inherit;
  text-align: left;
}

.booking-wizard-nav .booking-step-number {
  display: grid;
  place-items: center;
  width: 20px;
  height: 20px;
  border: 1px solid var(--line-strong);
  border-radius: 50%;
  font: 700 9px/1 var(--mono);
}

.booking-step-copy {
  display: grid;
  min-width: 0;
  gap: 2px;
  text-align: left;
}

.booking-step-copy small {
  overflow: hidden;
  color: var(--muted);
  font: 700 9px/1.2 var(--mono);
  text-overflow: ellipsis;
  white-space: nowrap;
}

.booking-wizard-nav button strong {
  overflow: hidden;
  font: 700 9px/1 var(--mono);
  letter-spacing: .06em;
  text-overflow: ellipsis;
  text-transform: uppercase;
}

.booking-wizard-nav button.is-active { color: var(--ink); }
.booking-wizard-nav button.is-active .booking-step-number {
  border-color: var(--brass);
  background: var(--brass);
}

.booking-wizard-nav button.is-active .booking-step-copy small,
.booking-wizard-nav button.is-complete .booking-step-copy small { color: var(--brass); }

.sound-app-ready .booking-step-panel {
  display: none;
  align-content: start;
  gap: 16px;
  min-height: 0;
  min-width: 0;
  overflow-x: hidden;
  overflow-y: auto;
  overscroll-behavior: contain;
  scroll-padding: 16px 0;
  -webkit-overflow-scrolling: touch;
  padding: 18px 22px 28px;
}

.sound-app-ready .booking-step-panel.is-active { display: grid; }

.sound-app-ready .booking-wizard-footer {
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: center;
  gap: 10px;
  border-top: 1px solid var(--line-strong);
  background: var(--paper);
  padding: 10px 22px max(10px, env(safe-area-inset-bottom));
}

.booking-wizard-footer [data-booking-back] { justify-self: start; }
.booking-wizard-footer [data-booking-next] { justify-self: end; }
.booking-wizard-footer > span {
  color: var(--muted);
  font: 700 9px/1 var(--mono);
  letter-spacing: .08em;
  text-align: center;
  text-transform: uppercase;
}

@media (max-width: 620px) {
  .sound-app-ready .site-header {
    height: 60px;
    min-height: 60px;
    padding: 7px 12px;
  }

  .sound-app-ready .site-header .brand-copy small { display: none; }

  .sound-app-ready main {
    inset: 60px 0 calc(68px + env(safe-area-inset-bottom));
  }

  .app-tabbar {
    min-height: calc(68px + env(safe-area-inset-bottom));
    padding-top: 5px;
  }

  .app-tabbar button { min-height: 52px; }
  .app-tabbar .app-tab-primary { transform: translateY(-10px); }

  .sound-app-ready .hero-section {
    grid-template-columns: 1fr;
    align-content: center;
    gap: 18px;
    min-height: 100%;
    padding: 22px 18px;
  }

  .sound-app-ready .hero-image-wrap { display: none; }
  .sound-app-ready .hero-copy { gap: 15px; }
  .sound-app-ready h1 { font-size: clamp(40px, 13vw, 54px); line-height: .86; }
  .sound-app-ready .hero-lede { font-size: 13px; line-height: 1.5; }
  .sound-app-ready .hero-actions { gap: 8px; }
  .sound-app-ready .hero-actions .button { min-height: 46px; padding-block: 11px; }
  .sound-app-ready .hero-data { font-size: 8px; }

  .sound-app-ready .equipment-rental-shop,
  .sound-app-ready .app-cart-screen { padding: 20px 14px 40px; }

  .sound-app-ready .rental-shop-heading,
  .app-screen-heading {
    grid-template-columns: 1fr;
    gap: 8px;
    margin-bottom: 14px;
  }

  .sound-app-ready .rental-shop-heading h2,
  .app-screen-heading h2 { font-size: clamp(34px, 11vw, 46px); }

  .sound-app-ready .rental-shop-heading > p,
  .app-screen-heading p { font-size: 11px; line-height: 1.45; }

  .sound-app-ready .rental-shop-summary { display: none; }

  .sound-app-ready .rental-package-shortcuts {
    display: flex;
    gap: 8px;
    overflow-x: auto;
    margin-inline: -14px;
    padding: 0 14px 8px;
    scroll-snap-type: x proximity;
  }

  .sound-app-ready .rental-package-shortcuts button {
    flex: 0 0 180px;
    scroll-snap-align: start;
  }

  .sound-app-ready .rental-catalog-toolbar { gap: 8px; }

  .sound-app-ready .drawer-header { padding: 13px 14px 10px; }
  .sound-app-ready .drawer-header h2 { font-size: 29px; }
  .sound-app-ready .booking-resume { margin: 8px 14px 0; }

  .sound-app-ready .booking-wizard-nav {
    gap: 1px;
    padding: 7px 10px;
  }

  .booking-wizard-nav button {
    grid-template-columns: auto minmax(0, 1fr);
    justify-items: stretch;
    gap: 7px;
    padding: 6px 5px;
    text-align: left;
  }

  .booking-wizard-nav button strong { font-size: 9px; }
  .booking-step-copy small { font-size: 8px; }

  .sound-app-ready .booking-step-panel { padding: 14px 14px 22px; }

  .sound-app-ready .booking-wizard-footer {
    grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
    padding: 8px 10px max(8px, env(safe-area-inset-bottom));
  }

  .booking-wizard-footer .button {
    min-width: 0;
    min-height: 40px;
    padding: 9px 11px;
    font-size: 9px;
  }
}
