/* ===== Blue Ridge Sound Co. — 2026 rebuild ===== */
:root {
  --ink: #0e1726;
  --ink-soft: #18263b;
  --cream: #f4f6fb;
  --cream-dim: #c6cede;
  --amber: #c9a24b;
  --amber-deep: #a98232;
  --blue: #78a8e3;
  --blue-deep: #3f6fb0;
  --slate: #7c8bab;
  --line: rgba(244, 246, 251, 0.12);
  --radius: 14px;
  --max: 1180px;
  font-size: 16px;
  --paper: #ffffff;
  --paper-ink: #171a24;
  --paper-dim: #5b6478;
  --paper-line: #e7e9f0;
}
:root { --amber: #d9ac68; }

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
section[id] { scroll-margin-top: 120px; }
body {
  margin: 0;
  background: var(--ink);
  color: var(--cream);
  font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
}
h1, h2, h3, .display {
  font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
  font-weight: 800;
  line-height: 1.1;
  margin: 0 0 0.5em;
  letter-spacing: -0.01em;
}
p { margin: 0 0 1em; color: var(--cream-dim); }
a { color: var(--amber); text-decoration: none; }
a:hover { color: var(--amber-deep); }
button, input, select, textarea, summary, a { outline-offset: 4px; }
:focus-visible { outline: 3px solid var(--blue); }
img, svg { max-width: 100%; display: block; }
main > section:not(.hero) { content-visibility: auto; contain-intrinsic-size: auto 720px; }
.wrap { max-width: var(--max); margin: 0 auto; padding: 0 24px; }
.skip-link { position: fixed; left: 16px; top: -80px; z-index: 1000; background: #fff; color: var(--paper-ink); padding: 10px 16px; border-radius: 8px; font-weight: 700; }
.skip-link:focus { top: 16px; }
.eyebrow {
  text-transform: uppercase; letter-spacing: 0.14em; font-size: 0.75rem;
  color: var(--amber); font-weight: 600; margin-bottom: 0.75em; display: block;
}

header.site {
  position: sticky; top: 30px; z-index: 50;
  background: rgba(18,20,28,0.88); backdrop-filter: blur(10px);
  border-bottom: 1px solid var(--line);
}
header.site .nav-row, header.site .mark { transition: padding .18s ease, width .18s ease; }
header.site.is-compact .nav-row { padding-top: 8px; padding-bottom: 8px; }
header.site.is-compact .logo .mark { width: 92px; }
.nav-row { display: flex; align-items: center; justify-content: space-between; padding: 16px 24px; max-width: var(--max); margin: 0 auto; }
.logo { display: flex; align-items: center; gap: 10px; }
.logo .mark { width: 116px; height: auto; border-radius: 6px; display: block; }
nav.primary { display: flex; gap: 18px; align-items: center; }
nav.primary details { position: relative; }
nav.primary summary { list-style: none; cursor: pointer; color: var(--cream-dim); font-size: 0.92rem; font-weight: 500; }
nav.primary summary::-webkit-details-marker { display: none; }
nav.primary summary:hover { color: var(--cream); }
nav.primary summary.has-current { color: var(--cream); text-decoration: underline; text-decoration-color: var(--amber); text-underline-offset: 7px; }
nav.primary a.top { color: var(--cream-dim); font-size: 0.92rem; font-weight: 500; }
nav.primary a.top:hover { color: var(--cream); }
.dropdown {
  position: absolute; top: 130%; left: 0; min-width: 220px;
  background: var(--ink-soft); border: 1px solid var(--line); border-radius: 10px;
  padding: 8px; box-shadow: 0 12px 32px rgba(0,0,0,0.4);
}
.dropdown a { display: block; padding: 9px 12px; border-radius: 6px; color: var(--cream-dim); font-size: 0.9rem; }
.dropdown a:hover { background: rgba(232,163,61,0.1); color: var(--cream); }
.cta-btn {
  background: var(--amber); color: var(--ink); font-weight: 600; font-size: 0.9rem;
  padding: 10px 20px; border-radius: 7px; white-space: nowrap;
}
.cta-btn:hover { background: var(--amber-deep); color: var(--ink); }
.nav-phone { color: var(--cream-dim); font-size: .82rem; font-weight: 700; white-space: nowrap; }
.nav-phone:hover { color: var(--amber); }
.resource-menu { min-width: 250px; }
.mobile-toggle { display: none; }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }
nav.primary a[aria-current="page"] { color: var(--cream); text-decoration: underline; text-decoration-color: var(--amber); text-underline-offset: 7px; }

.hero {
  position: relative; padding: 96px 0 80px; overflow: hidden; border-bottom: 1px solid var(--line);
  background:
    radial-gradient(60% 70% at 15% 0%, rgba(63,111,176,0.2), transparent 60%),
    radial-gradient(50% 60% at 100% 10%, rgba(217,172,104,0.14), transparent 60%),
    var(--ink);
}
.hero .wrap { position: relative; z-index: 2; }
.hero h1 { font-size: clamp(2.2rem, 5vw, 3.6rem); max-width: 15ch; }
.hero .lead { font-size: 1.15rem; max-width: 52ch; }
.hero-actions { display: flex; gap: 14px; flex-wrap: wrap; margin-top: 28px; }
.btn { display: inline-block; padding: 13px 26px; border-radius: 8px; font-family: inherit; font-weight: 700; font-size: 0.95rem; cursor: pointer; }
.btn, .cta-btn { transition: transform .2s ease, box-shadow .2s ease, background-color .2s ease, color .2s ease; }
.btn:hover, .cta-btn:hover { transform: translateY(-2px); }
.btn-primary { background: var(--amber); color: var(--ink); }
.btn-primary:hover { background: var(--amber-deep); color: var(--ink); }
.btn-ghost { border: 1px solid var(--line); color: var(--cream); }
.btn-ghost:hover { border-color: var(--amber); color: var(--amber); }
.ridge {
  position: absolute; inset: auto 0 0 0; height: 140px; opacity: 0.5; z-index: 1;
}
.hero.small { padding: 64px 0 56px; }
.hero.small h1 { font-size: clamp(1.9rem, 4vw, 2.6rem); max-width: 24ch; }
.ambient-wave { position: absolute; inset: auto 0 0; z-index: 1; display: flex; align-items: end; gap: clamp(3px, .55vw, 9px); height: 74px; padding-inline: 1vw; opacity: .3; pointer-events: none; overflow: hidden; }
.ambient-wave span { flex: 1 1 0; min-width: 2px; height: var(--wave-height); border-radius: 3px 3px 0 0; background: linear-gradient(to top, var(--wave-color), rgba(255,255,255,.9)); transform-origin: center bottom; animation: ambient-pulse var(--wave-speed) ease-in-out infinite alternate; animation-delay: var(--wave-delay); }
@keyframes ambient-pulse { from { transform: scaleY(.42); opacity: .45; } to { transform: scaleY(1); opacity: 1; } }

.home-hero { min-height: 660px; display: flex; align-items: center; padding: 118px 0 150px; }
.home-hero::before { content: ""; position: absolute; inset: 0; z-index: 1; background: linear-gradient(90deg, rgba(8,14,26,.96) 0%, rgba(8,14,26,.82) 42%, rgba(8,14,26,.42) 72%, rgba(8,14,26,.62) 100%); }
.home-hero .hero-photo { position: absolute; inset: 0; z-index: 0; background: #0a101d url('hero-event.svg') center 48% / cover no-repeat; }
.home-hero .wrap { z-index: 3; }
.home-hero .ridge { z-index: 2; opacity: .46; width: 100%; height: clamp(150px, 18vw, 225px); bottom: -2px; }
.home-hero .hero-waveform { filter: drop-shadow(0 -8px 24px rgba(40, 92, 165, .18)); }
.home-hero .hero-waveform rect {
  transform-box: fill-box;
  transform-origin: center bottom;
  animation: waveform-pulse 2.35s ease-in-out infinite alternate;
  will-change: transform, opacity;
}
.home-hero .hero-waveform rect:nth-of-type(6n + 1) { animation-delay: -.15s; animation-duration: 2.05s; }
.home-hero .hero-waveform rect:nth-of-type(6n + 2) { animation-delay: -.55s; animation-duration: 2.65s; }
.home-hero .hero-waveform rect:nth-of-type(6n + 3) { animation-delay: -1.1s; animation-duration: 2.25s; }
.home-hero .hero-waveform rect:nth-of-type(6n + 4) { animation-delay: -.8s; animation-duration: 2.85s; }
.home-hero .hero-waveform rect:nth-of-type(6n + 5) { animation-delay: -1.45s; animation-duration: 2.45s; }
.home-hero .hero-waveform rect:nth-of-type(6n) { animation-delay: -.35s; animation-duration: 2.15s; }
.home-hero .hero-waveform.is-paused rect { animation-play-state: paused; }
@keyframes waveform-pulse {
  0% { transform: scaleY(.64); opacity: .62; }
  52% { transform: scaleY(.88); opacity: .86; }
  100% { transform: scaleY(1.08); opacity: 1; }
}
.home-hero h1 { font-family: 'Inter', sans-serif; font-size: clamp(2.75rem, 5.3vw, 4.6rem); font-weight: 800; letter-spacing: -.045em; max-width: 16ch; }
.home-hero .lead { color: #d3dbea; max-width: 650px; font-size: 1.16rem; }
.home-hero .btn-ghost { background: rgba(9,15,27,.34); border-color: rgba(255,255,255,.5); }
.trust-rail { background: #0b1424; border-bottom: 1px solid rgba(255,255,255,.08); }
.trust-rail .wrap { display: grid; grid-template-columns: repeat(4,1fr); gap: 1px; padding-block: 22px; }
.trust-rail span { padding: 4px 20px; border-left: 1px solid rgba(255,255,255,.1); }
.trust-rail span:first-child { border-left: 0; }
.trust-rail strong, .trust-rail small { display: block; }
.trust-rail strong { color: #fff; font-size: .92rem; }
.trust-rail small { color: var(--slate); font-size: .76rem; margin-top: 2px; }
.home-services { padding: 88px 0; }
.home-services .section-head { max-width: 760px; }
.home-services .section-head h2 { font-family: 'Inter', sans-serif; font-weight: 800; font-size: clamp(2rem,4vw,3.1rem); letter-spacing: -.035em; }
.service-card-grid { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 18px; }
.service-card { display: flex; flex-direction: column; min-height: 310px; padding: 28px; color: var(--paper-ink); background: #f8f9fc; border: 1px solid var(--paper-line); border-radius: 14px; box-shadow: 0 12px 30px rgba(20,29,47,.06); transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease; }
.service-card:hover { color: var(--paper-ink); border-color: var(--amber); transform: translateY(-4px); box-shadow: 0 18px 40px rgba(20,29,47,.12); }
.service-card > span { color: var(--amber-deep); font-weight: 800; font-size: .78rem; letter-spacing: .12em; }
.service-card h3 { font-family: 'Inter', sans-serif; font-size: 1.25rem; margin-top: 58px; }
.service-card p { color: var(--paper-dim); font-size: .9rem; flex: 1; }
.service-card strong { color: #315f9d; font-size: .84rem; }
.event-paths { padding: 46px 0; background: #101c30; border-bottom: 1px solid var(--line); }
.event-paths .section-head { margin-bottom: 24px; }
.event-path-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 12px; }
.event-path-grid a { display: flex; flex-direction: column; gap: 4px; padding: 20px; border: 1px solid var(--line); border-radius: 12px; background: rgba(255,255,255,.025); color: var(--cream); }
.event-path-grid a:hover { border-color: var(--amber); transform: translateY(-2px); }
.event-path-grid span { color: var(--slate); font-size: .8rem; }

section { padding: 72px 0; }
section.tight { padding: 48px 0; }
.section-head { max-width: 62ch; margin-bottom: 40px; }
.section-head h2 { font-size: clamp(1.6rem, 3vw, 2.2rem); }

.alt-bg {
  background: var(--paper); color: var(--paper-ink);
}
.alt-bg p, .alt-bg .pkg-guests, .alt-bg .addon-table th { color: var(--paper-dim); }
.alt-bg h2, .alt-bg h3 { color: var(--paper-ink); }
.alt-bg .pkg-card { background: var(--paper); border-color: var(--paper-line); box-shadow: 0 1px 3px rgba(20,20,40,0.06); }
.alt-bg .pkg-card li { border-color: var(--paper-line); color: var(--paper-dim); }
.alt-bg .link-card { background: var(--paper); border-color: var(--paper-line); box-shadow: 0 1px 3px rgba(20,20,40,0.06); }
.alt-bg .link-card h3 { color: var(--paper-ink); }
.alt-bg .link-card p { color: var(--paper-dim); }
.alt-bg .addon-table td, .alt-bg .addon-table th { border-color: var(--paper-line); }
.alt-bg .feature h3 { color: var(--paper-ink); }
.alt-bg .feature p { color: var(--paper-dim); }
.alt-bg .feature .num {
  display: inline-flex; align-items: center; justify-content: center; width: 40px; height: 40px;
  border-radius: 10px; background: rgba(81,99,139,0.12); color: #51638b; font-size: 1.1rem; margin-bottom: 6px;
}

.was-price { font-size: 0.85rem; color: var(--slate); text-decoration: line-through; font-family: 'Inter', sans-serif; margin-left: 6px; }
.alt-bg .was-price { color: var(--paper-dim); }

.preview-banner {
  background: var(--amber); color: #241c0b; text-align: center; font-weight: 700;
  font-size: 0.78rem; letter-spacing: 0.03em; padding: 8px 16px; position: sticky; top: 0; z-index: 60;
}

.pkg-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)); gap: 20px; }
.pkg-card {
  background: var(--ink-soft); border: 1px solid var(--line); border-radius: var(--radius);
  padding: 28px; display: flex; flex-direction: column; position: relative;
}
.pkg-card.popular { border-color: var(--amber); }
.pkg-badge {
  position: absolute; top: -12px; right: 20px; background: var(--amber); color: var(--ink);
  font-size: 0.72rem; font-weight: 700; padding: 4px 12px; border-radius: 999px; text-transform: uppercase; letter-spacing: 0.04em;
}
.pkg-card h3 { font-size: 1.25rem; margin-bottom: 0.2em; }
.pkg-guests { color: var(--slate); font-size: 0.85rem; margin-bottom: 14px; }
.pkg-price { font-family: 'Fraunces', serif; font-size: 2.1rem; color: var(--amber); margin-bottom: 14px; }
.pkg-price span { font-size: 0.95rem; color: var(--cream-dim); font-family: 'Inter', sans-serif; }
.pkg-card ul { list-style: none; padding: 0; margin: 0 0 20px; flex: 1; }
.pkg-card li { padding: 6px 0; border-top: 1px solid var(--line); font-size: 0.92rem; color: var(--cream-dim); }
.pkg-card li:first-child { border-top: none; }
.package-note { margin: 24px 0 0; text-align: center; }
.package-note strong { color: var(--amber); }
.package-note a { color: var(--amber); font-weight: 700; }
.rental-grid .pkg-card { background: #fff; }
.rental-grid .pkg-card h3 { color: var(--paper-ink); }
.rental-grid .pkg-card li { color: var(--paper-dim); border-color: var(--paper-line); }
.rental-grid .pkg-price span { color: var(--paper-dim); }

.event-showcase { padding-block: clamp(52px, 7vw, 92px); }
.event-showcase-grid { display: grid; grid-template-columns: minmax(0, 1.35fr) minmax(280px, .65fr); gap: clamp(30px, 5vw, 72px); align-items: center; }
.event-showcase figure { margin: 0; overflow: hidden; border-radius: var(--radius); box-shadow: 0 20px 50px rgba(0,0,0,.28); }
.event-showcase img { display: block; width: 100%; height: auto; aspect-ratio: 3 / 2; object-fit: cover; }
.event-showcase h2 { margin-top: 10px; }
.event-showcase p { max-width: 46ch; }
.text-link { color: var(--amber); font-weight: 800; }
.visual-story { padding-block: clamp(58px, 8vw, 104px); }
.event-gallery { display: grid; grid-template-columns: 1.05fr 1fr 1.05fr; gap: 18px; }
.event-gallery.event-gallery-four { grid-template-columns: repeat(4, 1fr); }
.event-gallery.event-gallery-four a { min-height: 320px; }
.event-gallery a { position: relative; min-height: 390px; overflow: hidden; border-radius: var(--radius); box-shadow: 0 16px 35px rgba(21,26,39,.16); }
.event-gallery img { width: 100%; height: 100%; display: block; object-fit: cover; transition: transform .35s ease; }
.event-gallery a:hover img { transform: scale(1.035) translate3d(var(--image-x, 0), var(--image-y, 0), 0); }
.event-gallery span { position: absolute; inset: auto 0 0; padding: 42px 20px 18px; color: #fff; font-weight: 800; background: linear-gradient(transparent, rgba(8,12,20,.88)); }

.addon-table { width: 100%; border-collapse: collapse; }
.addon-table th, .addon-table td { text-align: left; padding: 12px 14px; border-bottom: 1px solid var(--line); font-size: 0.94rem; }
.addon-table th { color: var(--slate); font-weight: 600; text-transform: uppercase; font-size: 0.75rem; letter-spacing: 0.06em; }
.addon-table td:last-child, .addon-table th:last-child { color: var(--amber); font-weight: 600; text-align: right; }

.feature-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(230px, 1fr)); gap: 24px; }
.feature { padding: 4px 0; }
.feature .num { color: var(--amber); font-family: 'Fraunces', serif; font-size: 1.5rem; }
.feature h3 { font-size: 1.05rem; margin: 8px 0 6px; }
.feature p { font-size: 0.92rem; margin: 0; }
.support-flow { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1px; background: var(--paper-line); border: 1px solid var(--paper-line); border-radius: var(--radius); overflow: hidden; }
.support-flow article { padding: 26px; background: var(--paper); }
.support-flow span { display: block; margin-bottom: 26px; color: var(--amber-deep); font-size: .72rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.support-flow h3 { color: var(--paper-ink); font-size: 1rem; }
.support-flow p { color: var(--paper-dim); font-size: .86rem; margin: 0; }
.included-band { display: flex; align-items: center; flex-wrap: wrap; gap: 10px; padding: 20px 24px; border: 1px solid var(--line); border-radius: var(--radius); background: var(--ink-soft); }
.included-band strong { margin-right: 8px; }
.included-band span { padding: 6px 10px; border-radius: 999px; background: rgba(255,255,255,.055); color: var(--cream-dim); font-size: .78rem; }

.faq-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; }
.faq-card { background: #fff; border: 1px solid var(--paper-line); border-radius: var(--radius); padding: 24px; box-shadow: 0 1px 3px rgba(20,20,40,0.06); }
.faq-card summary { position: relative; padding-right: 30px; color: var(--paper-ink); font-weight: 800; font-size: 1.05rem; cursor: pointer; list-style: none; }
.faq-card summary::-webkit-details-marker { display: none; }
.faq-card summary::after { content: "+"; position: absolute; right: 0; top: -.2em; color: var(--amber-deep); font-size: 1.35rem; }
.faq-card[open] summary::after { content: "–"; }
.faq-card p { color: var(--paper-dim); margin: 0; font-size: 0.94rem; }
.faq-card[open] p { margin-top: 12px; }
.faq-card[open] { border-color: rgba(169,130,50,.55); box-shadow: 0 14px 34px rgba(20,20,40,.1); }
.faq-card[open] p { animation: faq-answer-in .22s ease both; }
@keyframes faq-answer-in { from { opacity: 0; transform: translateY(-5px); } to { opacity: 1; transform: translateY(0); } }

.location-layout { display: grid; grid-template-columns: minmax(0, 1.45fr) minmax(280px, .75fr); gap: 48px; align-items: start; }
.location-layout article h2 { margin-top: 1.5em; }
.location-layout article h2:first-child { margin-top: 0; }
.check-list { list-style: none; padding: 0; margin: 24px 0 0; }
.check-list li { position: relative; padding: 10px 0 10px 28px; border-top: 1px solid var(--line); color: var(--cream-dim); }
.check-list li::before { content: "✓"; position: absolute; left: 2px; color: var(--amber); font-weight: 800; }

.link-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 18px; }
.link-card {
  display: block; background: var(--ink-soft); border: 1px solid var(--line); border-radius: var(--radius);
  padding: 24px; transition: border-color 0.15s;
}
.link-card:hover { border-color: var(--amber); }
.link-card h3 { color: var(--cream); font-size: 1.05rem; margin-bottom: 6px; }
.link-card p { font-size: 0.88rem; margin: 0; }
.link-card .arrow { color: var(--amber); font-size: 0.85rem; margin-top: 10px; display: inline-block; }

.quote-panel { background: var(--ink-soft); border: 1px solid var(--line); border-radius: var(--radius); padding: 32px; }
.quote-layout { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(280px, 1fr); gap: 40px; align-items: start; }
.quote-form label { display: block; font-size: 0.85rem; color: var(--slate); margin: 16px 0 6px; }
.quote-form label:first-child { margin-top: 0; }
.form-section-title { display: flex; align-items: center; gap: 12px; margin: 26px 0 2px; padding-top: 20px; border-top: 1px solid var(--line); }
.form-section-title span { display: grid; place-items: center; width: 32px; height: 32px; border-radius: 50%; background: rgba(217,172,104,.15); color: var(--amber); font-weight: 800; }
.form-section-title strong, .form-section-title small { display: block; }
.form-section-title small { color: var(--slate); font-size: .74rem; }
.form-progress { display: grid; grid-template-columns: 1fr auto; gap: 5px 12px; margin-bottom: 20px; }
.form-progress > span { grid-column: 1 / -1; height: 6px; overflow: hidden; border-radius: 99px; background: rgba(255,255,255,.08); }
.form-progress i { display: block; width: 0; height: 100%; border-radius: inherit; background: var(--amber); transition: width .2s ease; }
.form-progress strong { font-size: .8rem; }
.form-progress small { color: var(--slate); }
.quote-form input, .quote-form select, .quote-form textarea {
  width: 100%; background: var(--ink); border: 1px solid var(--line); border-radius: 8px;
  padding: 11px 13px; color: var(--cream); font-family: inherit; font-size: 0.95rem;
}
.quote-form [aria-invalid="true"] { border-color: #ef8b7d; box-shadow: 0 0 0 2px rgba(239,139,125,.15); }
.field-meta { display: flex; justify-content: space-between; gap: 12px; margin-top: 6px; color: var(--slate); font-size: .72rem; }
.quote-form textarea { min-height: 100px; resize: vertical; }
.quote-form fieldset { margin: 18px 0 0; padding: 0; border: 0; }
.quote-form legend { margin-bottom: 8px; color: var(--slate); font-size: .85rem; }
.choice-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.choice-grid label { display: flex; align-items: flex-start; gap: 8px; margin: 0; padding: 10px; border: 1px solid var(--line); border-radius: 8px; color: var(--cream-dim); cursor: pointer; }
.choice-grid input { width: auto; margin-top: 4px; accent-color: var(--amber); }
.form-note { margin: 12px 0 0; color: var(--slate); font-size: .78rem; }
.quote-form .row2 { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.quote-form button { margin-top: 22px; width: 100%; border: none; cursor: pointer; }
.quote-form button:disabled { opacity: .65; cursor: wait; }
.form-honeypot { position: absolute; left: -9999px; }
.form-success, .form-error { margin: 16px 0 0; padding: 12px 14px; border-radius: 8px; font-size: .88rem; }
.form-success { color: #bce6ca; background: rgba(46,139,87,.18); border: 1px solid rgba(82,180,119,.45); }
.form-error { color: #ffd0c8; background: rgba(180,58,40,.17); border: 1px solid rgba(217,92,73,.5); }
.form-error a { text-decoration: underline; }
.contact-strip { display: flex; gap: 32px; flex-wrap: wrap; margin-top: 20px; font-size: 0.92rem; }
.contact-strip strong { color: var(--cream); display: block; font-size: 0.78rem; text-transform: uppercase; letter-spacing: 0.05em; color: var(--slate); margin-bottom: 3px; }

.review-card { background: var(--ink-soft); border: 1px solid var(--line); border-radius: var(--radius); padding: 24px; }
.stars { color: var(--amber); letter-spacing: 2px; margin-bottom: 10px; }
.empty-state { border: 1px dashed var(--line); border-radius: var(--radius); padding: 40px; text-align: center; color: var(--slate); }

.article { max-width: 72ch; margin: 0 auto; }
.article h2 { font-size: 1.4rem; margin-top: 1.6em; }
.article ul { padding-left: 1.2em; color: var(--cream-dim); }
.article li { margin-bottom: 0.4em; }
.guide-article > section { padding: 0; }
.guide-checklist { margin: 36px 0 10px; padding: 26px; background: var(--ink-soft); border: 1px solid var(--line); border-radius: var(--radius); }
.guide-checklist h2 { margin-top: 0; }
.guide-meta { display: flex; gap: 18px; margin-top: 20px; color: #aebbd0; font-size: .78rem; }
.guide-toc { margin: 0 0 34px; padding: 22px 24px; border: 1px solid var(--line); border-radius: var(--radius); background: var(--ink-soft); }
.guide-toc strong { display: block; margin-bottom: 10px; }
.guide-toc ol { margin: 0; padding-left: 20px; }
.guide-toc li { margin: 5px 0; }
.guide-tools { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin: 30px 0 12px; }
.guide-tools button { padding: 8px 12px; border: 1px solid var(--line); border-radius: 8px; background: transparent; color: var(--cream-dim); font: inherit; font-size: .78rem; cursor: pointer; }
.guide-tools button:hover { border-color: var(--amber); color: var(--amber); }
.guide-tools [role="status"] { color: var(--amber); font-size: .76rem; }
.reading-progress { position: fixed; left: 0; right: 0; top: 0; z-index: 1001; height: 3px; pointer-events: none; }
.reading-progress span { display: block; width: 0; height: 100%; background: var(--amber); }
.comparison-wrap { overflow-x: auto; border: 1px solid var(--line); border-radius: var(--radius); }
.comparison-table { width: 100%; min-width: 760px; border-collapse: collapse; }
.comparison-table th, .comparison-table td { padding: 15px 16px; border-bottom: 1px solid var(--line); text-align: left; font-size: .86rem; }
.comparison-table thead th { color: var(--slate); font-size: .72rem; text-transform: uppercase; letter-spacing: .06em; }
.comparison-table tbody th { color: var(--cream); }
.comparison-table td { color: var(--cream-dim); }
.related-links { display: flex; gap: 10px; flex-wrap: wrap; margin-top: 32px; }
.related-links a { border: 1px solid var(--line); border-radius: 999px; padding: 8px 16px; font-size: 0.85rem; }

.crumb { font-size: 0.82rem; color: var(--slate); margin-bottom: 18px; }
.crumb a { color: var(--slate); }
.crumb a:hover { color: var(--amber); }

.cta-band { position: relative; overflow: hidden; isolation: isolate; background: linear-gradient(135deg, var(--amber-deep), var(--amber)); color: var(--ink); border-radius: 20px; padding: 48px; text-align: center; }
.cta-band::after { content: ""; position: absolute; inset: -40% auto -40% -25%; z-index: -1; width: 18%; background: rgba(255,255,255,.3); transform: skewX(-18deg) translateX(-220%); animation: cta-sheen 7s ease-in-out infinite; }
@keyframes cta-sheen { 0%, 68% { transform: skewX(-18deg) translateX(-220%); } 82%, 100% { transform: skewX(-18deg) translateX(850%); } }
.cta-band h2 { color: var(--ink); }
.cta-band p { color: rgba(18,20,28,0.75); }
.cta-band .btn-primary { background: var(--ink); color: var(--cream); }
.cta-band .btn-primary:hover { background: #000; }
.next-step-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; counter-reset: next-step; }
.next-step { position: relative; padding: 28px; border: 1px solid var(--line); border-radius: var(--radius); background: linear-gradient(145deg, rgba(255,255,255,.055), rgba(255,255,255,.018)); }
.next-step::before { counter-increment: next-step; content: "0" counter(next-step); display: block; margin-bottom: 28px; color: var(--amber); font-weight: 800; letter-spacing: .12em; }
.next-step p { margin-bottom: 0; }

.page-progress { position: fixed; inset: 0 0 auto; z-index: 100; height: 3px; background: rgba(255,255,255,.05); pointer-events: none; }
.page-progress span { display: block; width: 100%; height: 100%; background: linear-gradient(90deg, #2f75d6, #8ec8ff 48%, var(--amber)); transform: scaleX(0); transform-origin: left; will-change: transform; }
.js-ready .motion-reveal { opacity: 0; transform: translateY(22px); transition: opacity .62s ease, transform .62s cubic-bezier(.2,.7,.2,1); transition-delay: var(--reveal-delay, 0ms); }
.js-ready .motion-reveal.is-visible { opacity: 1; transform: translateY(0); }
.service-card, .feature, .planning-card, .event-path-grid a, .faq-card { transition: transform .22s ease, box-shadow .22s ease, border-color .22s ease; }
.feature:hover, .planning-card:hover, .event-path-grid a:hover, .faq-card:hover { transform: translateY(-4px); }

footer.site { border-top: 1px solid var(--line); padding: 56px 0 32px; margin-top: 40px; }
.foot-grid { display: grid; grid-template-columns: 2fr 1fr 1fr 1fr; gap: 32px; margin-bottom: 40px; }
.foot-grid h4 { color: var(--cream); font-size: 0.82rem; text-transform: uppercase; letter-spacing: 0.06em; margin-bottom: 14px; }
.foot-grid a { display: block; color: var(--cream-dim); font-size: 0.88rem; padding: 4px 0; }
.foot-grid a:hover { color: var(--amber); }
.foot-bottom { display: flex; justify-content: space-between; flex-wrap: wrap; gap: 12px; border-top: 1px solid var(--line); padding-top: 24px; font-size: 0.8rem; color: var(--slate); }
.local-links { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 16px; padding: 20px 0; border-top: 1px solid var(--line); color: var(--slate); font-size: .84rem; }
.local-links strong { color: var(--cream); }
.local-links a { color: var(--cream-dim); }
.local-links a:hover { color: var(--amber); }

.process-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; counter-reset: process; }
.process-step { position: relative; padding: 28px; border: 1px solid var(--paper-line); border-radius: var(--radius); background: #fff; }
.process-step::before { counter-increment: process; content: "0" counter(process); display: block; margin-bottom: 30px; color: var(--amber-deep); font-weight: 800; letter-spacing: .1em; }
.process-step h3 { color: var(--paper-ink); font-size: 1.08rem; }
.process-step p { color: var(--paper-dim); font-size: .92rem; margin: 0; }
.planning-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; }
.planning-card { padding: 24px; background: var(--ink-soft); border: 1px solid var(--line); border-radius: var(--radius); }
.planning-card h3 { font-size: 1.05rem; }
.planning-card p { margin: 0; font-size: .9rem; }
.case-study { display: grid; grid-template-columns: .8fr 1.4fr; gap: 36px; padding: 34px; background: var(--ink-soft); border: 1px solid var(--line); border-radius: var(--radius); }
.case-facts { display: grid; grid-template-columns: repeat(2, 1fr); gap: 12px; }
.case-fact { padding: 14px; border: 1px solid var(--line); border-radius: 10px; }
.case-fact strong, .case-fact span { display: block; }
.case-fact strong { color: var(--cream); font-size: .84rem; }
.case-fact span { color: var(--slate); font-size: .76rem; }
.area-chips { display: flex; flex-wrap: wrap; gap: 10px; }
.area-chips a { padding: 10px 16px; border: 1px solid var(--line); border-radius: 999px; color: var(--cream-dim); }
.area-chips a:hover { border-color: var(--amber); color: var(--amber); }
.next-steps { margin-top: 30px; padding: 24px; background: var(--ink-soft); border: 1px solid var(--line); border-radius: var(--radius); }
.next-steps ol { margin: 18px 0 0; padding-left: 22px; color: var(--cream-dim); }
.next-steps li { margin-bottom: 10px; padding-left: 6px; }
.mobile-actions { display: none; }
.back-to-top { position: fixed; right: 22px; bottom: 22px; z-index: 45; width: 44px; height: 44px; border: 1px solid var(--line); border-radius: 50%; background: var(--ink-soft); color: var(--cream); font-size: 1.2rem; cursor: pointer; opacity: 0; pointer-events: none; transform: translateY(8px); transition: .18s ease; }
.back-to-top.is-visible { opacity: 1; pointer-events: auto; transform: none; }

body.modal-open { overflow: hidden; }
.quiz-overlay { position: fixed; inset: 0; z-index: 500; display: flex; align-items: center; justify-content: center; padding: 20px; background: rgba(7,12,23,.76); backdrop-filter: blur(4px); }
.quiz-overlay[hidden], .quiz-step[hidden] { display: none !important; }
.quiz-card { width: min(100%, 460px); max-height: calc(100vh - 40px); overflow-y: auto; color: var(--paper-ink); background: #fff; border: 1px solid var(--paper-line); border-radius: 16px; box-shadow: 0 30px 80px rgba(0,0,0,.42); }
.quiz-head { position: relative; padding: 24px 26px 16px; border-bottom: 1px solid var(--paper-line); }
.quiz-head h2, .quiz-step h2 { font-family: 'Inter', sans-serif; color: var(--paper-ink); font-size: 1.3rem; font-weight: 800; letter-spacing: -.02em; }
.quiz-head p { color: var(--paper-dim); font-size: .88rem; margin: 0; }
.quiz-head .eyebrow { color: #3566a9; margin-bottom: 5px; }
.quiz-close { position: absolute; top: 10px; right: 14px; width: 36px; height: 36px; border: 0; background: transparent; color: var(--paper-dim); font-size: 1.45rem; cursor: pointer; }
.quiz-progress { display: flex; gap: 7px; padding: 14px 26px 0; }
.quiz-progress span { flex: 1; height: 4px; border-radius: 999px; background: #dfe4ec; }
.quiz-progress span.active { background: var(--amber-deep); }
.quiz-step { padding: 18px 26px 26px; }
.quiz-question { color: var(--paper-ink); font-weight: 800; margin-bottom: 12px; }
.quiz-options { display: grid; grid-template-columns: 1fr 1fr; gap: 9px; }
.quiz-options.single { grid-template-columns: 1fr; }
.quiz-options button { min-height: 50px; padding: 10px 12px; border: 1.5px solid #dbe1ea; border-radius: 9px; background: #fff; color: var(--paper-ink); font: inherit; font-size: .85rem; text-align: left; cursor: pointer; }
.quiz-options button:hover, .quiz-options button.selected { border-color: var(--amber-deep); background: #fff8e9; }
.quiz-nav { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-top: 18px; }
.quiz-next, .quiz-submit, .quiz-done { border: 0; border-radius: 8px; padding: 10px 18px; background: var(--amber); color: #231b0b; font: inherit; font-size: .86rem; font-weight: 800; cursor: pointer; }
.quiz-next:disabled, .quiz-submit:disabled { opacity: .45; cursor: not-allowed; }
.quiz-back { border: 0; padding: 8px 0; background: transparent; color: var(--paper-dim); font: inherit; font-size: .82rem; cursor: pointer; }
.quiz-recommendation { display: grid; gap: 4px; padding: 14px; margin-bottom: 14px; border: 1px solid #dce3ed; border-radius: 10px; background: #f4f7fb; }
.quiz-recommendation small { color: #3566a9; font-size: .68rem; font-weight: 800; letter-spacing: .09em; text-transform: uppercase; }
.quiz-recommendation strong { font-size: 1.06rem; }
.quiz-recommendation span { color: var(--paper-dim); font-size: .8rem; }
.quiz-offer { padding: 11px 13px; margin-bottom: 14px; border: 1px dashed var(--amber-deep); border-radius: 9px; background: #fff8e9; color: #755414; font-size: .82rem; }
.quiz-step label { display: block; margin: 10px 0 4px; color: var(--paper-dim); font-size: .76rem; }
.quiz-step label span { font-weight: 400; }
.quiz-step input { width: 100%; padding: 10px 11px; border: 1.5px solid #dbe1ea; border-radius: 8px; color: var(--paper-ink); background: #fff; font: inherit; }
.quiz-error { color: #a72e22; font-size: .8rem; margin: 10px 0 0; }
.quiz-success, .quiz-failure { text-align: center; padding-top: 30px; }
.quiz-success p, .quiz-failure p { color: var(--paper-dim); }
.success-check { display: grid; place-items: center; width: 48px; height: 48px; margin: 0 auto 14px; border-radius: 50%; background: #e5f4e9; color: #2d7241; font-size: 1.4rem; }

@media (max-width: 860px) {
  .nav-row { position: relative; padding: 10px 18px; }
  .mobile-toggle { display: grid; place-content: center; gap: 4px; width: 44px; height: 44px; padding: 0; border: 1px solid var(--line); border-radius: 8px; background: transparent; cursor: pointer; }
  .mobile-toggle span:not(.sr-only) { display: block; width: 20px; height: 2px; background: var(--cream); transition: .18s ease; }
  .mobile-toggle[aria-expanded="true"] span:nth-child(1) { transform: translateY(6px) rotate(45deg); }
  .mobile-toggle[aria-expanded="true"] span:nth-child(2) { opacity: 0; }
  .mobile-toggle[aria-expanded="true"] span:nth-child(3) { transform: translateY(-6px) rotate(-45deg); }
  nav.primary { display: none; position: absolute; left: 0; right: 0; top: 100%; flex-direction: column; align-items: stretch; gap: 0; padding: 12px 18px 20px; background: rgba(14,23,38,.98); border-top: 1px solid var(--line); box-shadow: 0 18px 30px rgba(0,0,0,.35); }
  nav.primary.is-open { display: flex; }
  nav.primary a.top, nav.primary summary, nav.primary .cta-btn { display: block; padding: 11px 4px; }
  nav.primary details { width: 100%; }
  .dropdown { position: static; margin: 0 0 8px; box-shadow: none; background: rgba(255,255,255,.035); }
  body.menu-open { overflow: hidden; }
  .hero { padding-top: 72px; }
  .faq-grid { grid-template-columns: 1fr; }
  .location-layout { grid-template-columns: 1fr; gap: 30px; }
  .quote-layout { grid-template-columns: 1fr; }
  .foot-grid { grid-template-columns: 1fr 1fr; }
  .quote-form .row2 { grid-template-columns: 1fr; }
  .trust-rail .wrap { grid-template-columns: 1fr 1fr; row-gap: 18px; }
  .trust-rail span:nth-child(3) { border-left: 0; }
  .service-card-grid { grid-template-columns: 1fr 1fr; }
  .event-path-grid, .support-flow { grid-template-columns: 1fr 1fr; }
  .process-grid, .planning-grid { grid-template-columns: 1fr; }
  .case-study { grid-template-columns: 1fr; }
  .event-showcase-grid { grid-template-columns: 1fr; }
  .event-gallery, .event-gallery.event-gallery-four { grid-template-columns: 1fr; }
  .event-gallery a, .event-gallery.event-gallery-four a { min-height: 280px; }
  .next-step-grid { grid-template-columns: 1fr; }
  .mobile-actions { display: grid; grid-template-columns: .8fr 1.2fr; position: fixed; left: 12px; right: 12px; bottom: 12px; z-index: 44; padding: 6px; border: 1px solid var(--line); border-radius: 12px; background: rgba(14,23,38,.96); box-shadow: 0 12px 34px rgba(0,0,0,.42); backdrop-filter: blur(10px); }
  .mobile-actions a { padding: 10px 12px; border-radius: 8px; text-align: center; font-weight: 800; }
  .mobile-actions a:last-child { background: var(--amber); color: var(--ink); }
  .back-to-top { bottom: 82px; }
  footer.site { padding-bottom: 90px; }
}

@media (max-width: 560px) {
  .wrap { padding: 0 18px; }
  .hero { padding: 58px 0 64px; }
  section { padding: 54px 0; }
  .cta-band { padding: 34px 20px; }
  .foot-grid { grid-template-columns: 1fr; }
  .home-hero { min-height: 610px; padding: 88px 0 128px; }
  .home-hero::before { background: linear-gradient(90deg, rgba(8,14,26,.94), rgba(8,14,26,.69)); }
  .home-hero .ridge { height: 155px; opacity: .42; }
  .trust-rail .wrap, .service-card-grid { grid-template-columns: 1fr; }
  .trust-rail span, .trust-rail span:nth-child(3) { border-left: 0; border-top: 1px solid rgba(255,255,255,.08); padding-top: 14px; }
  .trust-rail span:first-child { border-top: 0; }
  .service-card { min-height: 245px; }
  .service-card h3 { margin-top: 34px; }
  .quiz-options { grid-template-columns: 1fr; }
  .choice-grid, .case-facts { grid-template-columns: 1fr; }
  .event-path-grid, .support-flow { grid-template-columns: 1fr; }
  .addon-table { display: block; overflow-x: auto; white-space: nowrap; }
}

@media print {
  .preview-banner, header.site, footer.site, .mobile-actions, .back-to-top, .reading-progress, .guide-tools, .cta-band { display: none !important; }
  body, .alt-bg { background: #fff !important; color: #111 !important; }
  p, li, .article ul { color: #333 !important; }
  main, section { padding: 12px 0 !important; }
  .guide-article { max-width: none; }
  a { color: #111 !important; text-decoration: underline; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation-duration: 0.01ms !important; animation-iteration-count: 1 !important; transition-duration: 0.01ms !important; }
  .home-hero .hero-waveform rect { animation: none !important; transform: none !important; opacity: .9; }
  .ambient-wave span, .cta-band::after { animation: none !important; }
  .js-ready .motion-reveal { opacity: 1; transform: none; }
}
