/*
 * Insured by Schulz — theme stylesheet (v6)
 *
 *  1. Fonts & tokens        6. Header & drawer        11. Service cards, steps, FAQ
 *  2. Base & typography     7. Heroes                 12. Page: story
 *  3. Layout                8. Strips & trust bar     13. Page: contact, referral, quote, thanks
 *  4. Buttons & links       9. Coverage tiles         14. Blog, prose, 404
 *  5. Shared bits          10. Features & values      15. CTA band, footer, action bar, dialog
 *
 * Mobile first. Breakpoints: 640 / 768 / 1024 / 1200.
 */

/* 1. Fonts & tokens ------------------------------------------------------ */

@font-face { font-family: "Source Serif"; src: url("../fonts/source-serif-4.woff2") format("woff2"); font-weight: 500 700; font-style: normal; font-display: swap; }
@font-face { font-family: "Figtree"; src: url("../fonts/figtree.woff2") format("woff2"); font-weight: 300 900; font-style: normal; font-display: swap; }
@font-face { font-family: "Yellowtail"; src: url("../fonts/yellowtail.woff2") format("woff2"); font-weight: 400; font-style: normal; font-display: swap; }

:root {
  --navy-950: #061429;
  --navy-900: #0b1f3a;
  --navy-850: #0f2645;
  --navy-800: #13304f;
  --navy-700: #1d3f66;
  --ink: #0d2240;
  --body: #3d4a5c;
  --muted: #5f6b7c;
  --line: #e3e6eb;
  --line-strong: #d3d8df;
  --gold: #d2a24c;
  --gold-300: #e9c67e;
  --gold-400: #ddb466;
  --gold-600: #b0822d;
  --gold-700: #8d6519;
  --cream: #faf6ee;
  --cream-200: #f3ecdf;
  --white: #fff;

  --serif: "Source Serif", "Iowan Old Style", Georgia, "Times New Roman", serif;
  --sans: "Figtree", ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;
  --script: "Yellowtail", "Brush Script MT", cursive;

  --container: 1200px;
  --gutter: clamp(20px, 5vw, 40px);
  --section: clamp(4rem, 2.75rem + 4.5vw, 7rem);
  --header-h: 72px;

  --r-sm: 6px;
  --r: 10px;
  --r-lg: 16px;
  --shadow-sm: 0 1px 2px rgb(11 31 58 / .06), 0 2px 8px -2px rgb(11 31 58 / .06);
  --shadow: 0 1px 2px rgb(11 31 58 / .05), 0 18px 40px -18px rgb(11 31 58 / .22);
  --shadow-lg: 0 30px 70px -24px rgb(3 12 26 / .55);
  --ease: cubic-bezier(.2, .7, .2, 1);
}

/* 2. Base & typography --------------------------------------------------- */

*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; text-size-adjust: 100%; scroll-behavior: smooth; scroll-padding-top: calc(var(--header-h) + 16px); }
body {
  margin: 0;
  background: var(--white);
  color: var(--body);
  font: 400 1.0625rem/1.65 var(--sans);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-rendering: optimizeLegibility;
  overflow-x: clip;
}
img, svg, video, iframe { display: block; max-width: 100%; }
img { height: auto; }
a { color: inherit; text-decoration-thickness: 1px; text-underline-offset: 3px; }
button, input, select, textarea { font: inherit; color: inherit; }
button { cursor: pointer; }
p, ul, ol, figure, h1, h2, h3, h4, blockquote { margin: 0; }
ul[class], ol[class], .checklist ol, .next-list ol { list-style: none; padding: 0; }
h1, h2, h3, h4 { color: var(--ink); font-family: var(--serif); font-weight: 600; line-height: 1.1; letter-spacing: -.012em; text-wrap: balance; }
h1 em, h2 em, h3 em, .statement__title em { font-style: normal; color: var(--gold-600); }
p { text-wrap: pretty; }
html:has(dialog[open]) { overflow: hidden; }
::selection { background: var(--gold-300); color: var(--navy-900); }
:focus-visible { outline: 3px solid var(--gold); outline-offset: 3px; border-radius: 4px; }

.screen-reader-text {
  position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px;
  overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0;
}
.skip-link { position: fixed; top: 12px; left: 12px; z-index: 1000; padding: 12px 18px; border-radius: var(--r-sm); background: var(--white); color: var(--ink); font-weight: 700; transform: translateY(-160%); transition: transform .2s; }
.skip-link:focus { transform: none; }

.icon { width: 1.25em; height: 1.25em; flex: none; }
.icon--wide { width: 2.5em; height: 1.25em; }

.eyebrow {
  display: flex; align-items: center; gap: .75rem;
  margin-bottom: 1rem;
  color: var(--gold-700);
  font: 700 .75rem/1.3 var(--sans);
  letter-spacing: .16em;
  text-transform: uppercase;
}
.section-head--center .eyebrow { justify-content: center; }
.eyebrow--rule::before { content: ""; width: 28px; height: 2px; background: var(--gold); flex: none; }
.eyebrow--light, .section--navy .eyebrow, .hero .eyebrow { color: var(--gold-400); }

.section-title { font-size: clamp(2rem, 1.3rem + 2.4vw, 3.125rem); }
.section-lead { margin-top: 1.125rem; font-size: 1.125rem; color: var(--body); }

/* 3. Layout -------------------------------------------------------------- */

.container { width: min(100% - var(--gutter) * 2, var(--container)); margin-inline: auto; }
.section { padding-block: var(--section); }
.section--navy { background: var(--navy-900); color: rgb(255 255 255 / .78); }
.section--navy h2, .section--navy h3 { color: var(--white); }
.section--navy h2 em { color: var(--gold-400); }
.section--navy .section-lead { color: rgb(255 255 255 / .74); }
.section--cream { background: var(--cream); }
.section--soft { background: linear-gradient(180deg, var(--cream) 0%, #fff 100%); }

.section-head { margin-bottom: clamp(2.5rem, 2rem + 2vw, 3.75rem); }
.section-head--center { max-width: 780px; margin-inline: auto; text-align: center; }
.section-head--center .section-lead { max-width: 680px; margin-inline: auto; }
.section-head--center .section-title::after { content: ""; display: block; width: 64px; height: 3px; margin: 1.25rem auto 0; border-radius: 2px; background: var(--gold); }

.split { display: grid; gap: clamp(2.5rem, 1.5rem + 4vw, 6rem); align-items: center; }
.split__copy > p + p { margin-top: 1rem; }
.split__copy .section-title { margin-bottom: 1.5rem; }
.split__copy .text-link { margin-top: 1.75rem; }
@media (min-width: 1024px) { .split { grid-template-columns: minmax(0, 1fr) minmax(0, 1.05fr); } .split--flip > :first-child { order: 2; } }

.overlap { position: relative; z-index: 3; margin-top: -3.5rem; }
@media (min-width: 768px) { .overlap { margin-top: -4.5rem; } }

/* 4. Buttons & links ----------------------------------------------------- */

.btn {
  --btn-bg: var(--navy-900); --btn-fg: var(--white); --btn-bd: transparent; --btn-icon-bg: var(--gold); --btn-icon-fg: var(--navy-900);
  display: inline-flex; align-items: center; justify-content: center; gap: .75rem;
  min-height: 52px; padding: .625rem 1.375rem;
  border: 1.5px solid var(--btn-bd); border-radius: var(--r-sm);
  background: var(--btn-bg); color: var(--btn-fg);
  font: 700 1rem/1.2 var(--sans); letter-spacing: .005em; text-decoration: none; text-align: center; white-space: nowrap;
  transition: transform .2s var(--ease), background-color .2s, border-color .2s, box-shadow .2s, color .2s;
  -webkit-tap-highlight-color: transparent;
}
.btn:hover { transform: translateY(-1px); }
.btn:active { transform: translateY(0); }
.btn__icon { display: grid; place-items: center; width: 28px; height: 28px; margin-right: -.375rem; border-radius: 50%; background: var(--btn-icon-bg); color: var(--btn-icon-fg); transition: transform .2s var(--ease); }
.btn__icon .icon { width: 14px; height: 14px; }
.btn:hover .btn__icon { transform: translateX(3px); }
.btn__lead { width: 1.125rem; height: 1.125rem; }

.btn--gold { --btn-bg: linear-gradient(180deg, #ddb466 0%, #cf9d46 100%); --btn-fg: var(--navy-900); --btn-icon-bg: var(--navy-900); --btn-icon-fg: var(--white); background: var(--btn-bg); box-shadow: inset 0 1px 0 rgb(255 255 255 / .35), 0 1px 2px rgb(11 31 58 / .18); }
.btn--gold:hover { box-shadow: inset 0 1px 0 rgb(255 255 255 / .35), 0 10px 24px -10px rgb(210 162 76 / .75); }
.btn--navy:hover { --btn-bg: var(--navy-800); }
.btn--light { --btn-bg: rgb(255 255 255 / .06); --btn-bd: rgb(255 255 255 / .42); --btn-icon-bg: rgb(255 255 255 / .16); --btn-icon-fg: var(--white); backdrop-filter: blur(4px); }
.btn--light:hover { --btn-bd: var(--gold-400); --btn-bg: rgb(255 255 255 / .1); }
.btn--outline { --btn-bg: transparent; --btn-fg: var(--ink); --btn-bd: var(--line-strong); --btn-icon-bg: var(--cream-200); --btn-icon-fg: var(--ink); }
.btn--outline:hover { --btn-bd: var(--ink); }
.btn--lg { min-height: 58px; padding-inline: 1.625rem; font-size: 1.0625rem; }
.btn--sm { min-height: 44px; padding: .5rem 1rem; font-size: .9375rem; gap: .625rem; }
.btn--sm .btn__icon { width: 24px; height: 24px; }
.btn--sm .btn__icon .icon { width: 12px; height: 12px; }

.text-link {
  display: inline-flex; align-items: center; gap: .5rem;
  padding-bottom: 3px; border-bottom: 1.5px solid var(--gold);
  color: var(--ink); font: 700 .9375rem/1.3 var(--sans); text-decoration: none;
  transition: color .2s, border-color .2s;
}
.text-link .icon { width: 1rem; height: 1rem; transition: transform .2s var(--ease); }
.text-link:hover { color: var(--gold-700); }
.text-link:hover .icon { transform: translateX(3px); }
.text-link--light { color: var(--white); }
.text-link--light:hover { color: var(--gold-300); }

/* 5. Shared bits --------------------------------------------------------- */

.script { max-width: 100%; display: inline-flex; flex-direction: column; align-items: flex-end; color: var(--gold-400); font: 400 clamp(1.75rem, 1.3rem + 1.4vw, 2.5rem)/1 var(--script); transform: rotate(-6deg); pointer-events: none; user-select: none; }
.script span { white-space: nowrap; text-shadow: 0 2px 18px rgb(6 20 41 / .55); }
.script__swoosh { width: 72%; height: 14px; margin-top: .125rem; color: var(--gold); }

.chips { display: flex; flex-wrap: wrap; gap: .5rem; }
.chips li { padding: .3125rem .75rem; border: 1px solid var(--line); border-radius: 999px; background: var(--cream); color: var(--ink); font-size: .8125rem; font-weight: 600; line-height: 1.3; }

.photo-frame { position: relative; overflow: hidden; border-radius: var(--r-lg); background: var(--navy-800); box-shadow: var(--shadow); aspect-ratio: 4 / 3; }
.photo-frame img { width: 100%; height: 100%; object-fit: cover; }
.photo-frame::after { content: ""; position: absolute; inset: 45% 0 0; background: linear-gradient(0deg, rgb(6 20 41 / .82), transparent); pointer-events: none; }
.photo-frame__script { position: absolute; z-index: 1; right: 1.25rem; bottom: 1.25rem; font-size: clamp(1.5rem, 1.1rem + 1.4vw, 2.375rem); }

.crumbs { display: flex; align-items: center; flex-wrap: wrap; gap: .375rem; margin-bottom: 1.125rem; color: rgb(255 255 255 / .66); font-size: .8125rem; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; }
.crumbs a { color: var(--gold-400); text-decoration: none; }
.crumbs a:hover { text-decoration: underline; }
.crumbs .icon { width: .875rem; height: .875rem; opacity: .6; }

.card { background: var(--white); border: 1px solid var(--line); border-radius: var(--r-lg); box-shadow: var(--shadow-sm); }

.help-card { padding: 1.5rem; border: 1px solid var(--line); border-radius: var(--r-lg); background: var(--white); box-shadow: var(--shadow-sm); }
.help-card__icon { display: grid; place-items: center; width: 48px; height: 48px; margin-bottom: 1rem; border-radius: 50%; background: var(--cream-200); color: var(--gold-700); --i2: var(--gold); --i2o: .45; }
.help-card__icon .icon { width: 26px; height: 26px; }
.help-card__title { margin-bottom: .375rem; color: var(--ink); font: 600 1.375rem/1.2 var(--serif); }
.help-card > p:not(.help-card__title) { margin-bottom: 1rem; font-size: .9375rem; color: var(--muted); }
.help-card__line { display: flex; align-items: center; gap: .75rem; padding: .75rem 0; border-top: 1px solid var(--line); color: var(--ink); font-weight: 700; text-decoration: none; overflow-wrap: anywhere; }
.help-card__line .icon { width: 20px; height: 20px; color: var(--gold-600); --i2: var(--gold); --i2o: .3; }
.help-card__line:hover span { text-decoration: underline; text-decoration-color: var(--gold); }


.stepper { --step-line: var(--line-strong); }
.stepper__count { margin-bottom: .875rem; color: var(--gold-700); font-size: .75rem; font-weight: 800; letter-spacing: .16em; text-transform: uppercase; }
.stepper ol { display: flex; align-items: flex-start; margin: 0; padding: 0; list-style: none; }
.stepper__step { position: relative; flex: 1; display: flex; flex-direction: column; align-items: center; gap: .5rem; min-width: 0; color: var(--muted); font-size: .8125rem; font-weight: 700; line-height: 1.3; text-align: center; }
.stepper__step + .stepper__step::before { content: ""; position: absolute; top: 17px; left: calc(-50% + 26px); right: calc(50% + 26px); height: 2px; border-radius: 2px; background: var(--step-line); }
.stepper__step.is-done + .stepper__step::before, .stepper__step.is-current::before { background: var(--gold); }
.stepper__dot { display: grid; place-items: center; width: 36px; height: 36px; border: 2px solid var(--line-strong); border-radius: 50%; background: var(--white); color: var(--muted); font: 800 .9375rem/1 var(--sans); transition: background-color .2s, border-color .2s; }
.stepper__dot .icon { width: 16px; height: 16px; }
.stepper__step.is-current { color: var(--ink); }
.stepper__step.is-current .stepper__dot { border-color: var(--gold); background: var(--gold); color: var(--navy-900); box-shadow: 0 0 0 5px rgb(210 162 76 / .2); }
.stepper__step.is-done { color: var(--ink); }
.stepper__step.is-done .stepper__dot { border-color: var(--navy-900); background: var(--navy-900); color: var(--white); }
.stepper--complete .stepper__step.is-done .stepper__dot { border-color: var(--gold); background: var(--gold); color: var(--navy-900); }
.stepper--complete .stepper__count { color: var(--gold-700); }
.stepper--panel { margin-bottom: 1.5rem; padding-bottom: 1.5rem; border-bottom: 1px solid var(--line); }
.stepper--center { max-width: 560px; margin: 0 auto 2.5rem; }
.stepper--center .stepper__count { text-align: center; }
@media (min-width: 640px) {
  .stepper--panel ol { gap: 3.25rem; }
  .stepper--panel .stepper__step { flex: 0 1 auto; flex-direction: row; gap: .625rem; font-size: .875rem; text-align: left; }
  .stepper--panel .stepper__step + .stepper__step::before { left: -2.75rem; right: auto; width: 2.25rem; }
}

/* 6. Header & drawer ----------------------------------------------------- */

.site-header { position: sticky; top: 0; z-index: 60; background: var(--navy-900); color: var(--white); border-bottom: 1px solid rgb(255 255 255 / .08); transition: box-shadow .25s, background-color .25s; }
.site-header.is-scrolled { background: rgb(11 31 58 / .97); box-shadow: 0 10px 30px -12px rgb(3 12 26 / .6); backdrop-filter: saturate(1.2) blur(8px); }
.admin-bar .site-header { top: 32px; }
@media (max-width: 782px) { .admin-bar .site-header { top: 46px; } }
@media (max-width: 600px) { .admin-bar .site-header { top: 0; } }
.site-header__inner { display: flex; align-items: center; gap: .75rem; min-height: var(--header-h); }
@media (min-width: 640px) { .site-header__inner { gap: 1.5rem; } }

.brand { display: inline-flex; align-items: center; gap: .75rem; color: var(--white); text-decoration: none; flex: none; }
.brand__badge { width: 46px; height: auto; filter: drop-shadow(0 2px 6px rgb(0 0 0 / .25)); }
.brand__text { display: flex; flex-direction: column; gap: .1875rem; }
.brand__name { font: 600 1.0625rem/1 var(--serif); letter-spacing: .1em; text-transform: uppercase; white-space: nowrap; }
.brand__name b { font-weight: 700; color: var(--gold-400); }
.brand__tag { font: 700 .625rem/1 var(--sans); letter-spacing: .22em; text-transform: uppercase; color: rgb(255 255 255 / .55); }

.primary-nav { display: none; }
.site-header__actions { display: flex; align-items: center; gap: .5rem; margin-left: auto; }
@media (min-width: 640px) { .site-header__actions { gap: .75rem; } }
@media (max-width: 379px) { .brand__name { font-size: .9375rem; letter-spacing: .07em; } .brand__badge { width: 40px; } }
.header-phone { display: inline-flex; align-items: center; gap: .625rem; color: var(--white); text-decoration: none; font-weight: 700; font-size: .9375rem; white-space: nowrap; }
.header-phone__icon { display: grid; place-items: center; width: 40px; height: 40px; border-radius: 50%; background: rgb(255 255 255 / .08); color: var(--gold-400); transition: background-color .2s; }
.header-phone__icon .icon { width: 18px; height: 18px; }
.header-phone:hover .header-phone__icon { background: rgb(255 255 255 / .16); }
.header-phone__text { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.header-phone__text small { display: block; color: rgb(255 255 255 / .56); font-size: .6875rem; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; line-height: 1.2; }
.site-header__quote { display: none; }
.menu-toggle { display: grid; place-items: center; width: 44px; height: 44px; margin-right: -4px; border: 0; border-radius: var(--r-sm); background: none; color: var(--white); }
.menu-toggle .icon { width: 26px; height: 26px; }

@media (min-width: 640px) {
  :root { --header-h: 80px; }
  .brand__badge { width: 54px; }
  .brand__name { font-size: 1.1875rem; }
  .header-phone__text { position: static; width: auto; height: auto; overflow: visible; clip: auto; display: block; }
  .site-header__quote { display: inline-flex; }
}
@media (min-width: 1120px) {
  :root { --header-h: 88px; }
  .primary-nav { display: flex; align-items: center; gap: clamp(1rem, 2vw, 2rem); margin-left: auto; }
  .primary-nav__link { position: relative; padding-block: .5rem; color: rgb(255 255 255 / .86); font-size: .9375rem; font-weight: 600; text-decoration: none; white-space: nowrap; transition: color .2s; }
  .primary-nav__link::after { content: ""; position: absolute; left: 0; right: 0; bottom: -2px; height: 2px; border-radius: 2px; background: var(--gold); transform: scaleX(0); transition: transform .25s var(--ease); }
  .primary-nav__link:hover { color: var(--white); }
  .primary-nav__link:hover::after, .primary-nav__link[aria-current="page"]::after { transform: scaleX(1); }
  .primary-nav__link[aria-current="page"] { color: var(--gold-300); }
  .site-header__actions { margin-left: clamp(1rem, 2vw, 2rem); gap: 1.25rem; }
  .header-phone__text small { display: none; }
  .menu-toggle { display: none; }
}
@media (min-width: 1120px) and (max-width: 1279px) { .header-phone__text { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; } }

.drawer {
  position: fixed; inset: 0 0 0 auto; width: min(420px, 100%); height: 100dvh; max-height: 100dvh; max-width: 100%;
  margin: 0; padding: 1.25rem 1.5rem calc(1.5rem + env(safe-area-inset-bottom));
  border: 0; background: var(--navy-900); color: var(--white); overflow-y: auto;
  transform: translateX(100%);
  transition: transform .32s var(--ease), overlay .32s allow-discrete, display .32s allow-discrete;
}
.drawer[open] { display: flex; flex-direction: column; transform: none; }
@starting-style { .drawer[open] { transform: translateX(100%); } }
.drawer::backdrop { background: rgb(3 12 26 / .6); backdrop-filter: blur(2px); }
.drawer__head { display: flex; align-items: center; justify-content: space-between; min-height: 48px; margin-bottom: 1rem; }
.drawer__close { display: grid; place-items: center; width: 44px; height: 44px; margin-right: -10px; border: 0; background: none; color: var(--white); }
.drawer__close .icon { width: 24px; height: 24px; }
.drawer__nav { display: flex; flex-direction: column; border-top: 1px solid rgb(255 255 255 / .1); }
.drawer__link { display: flex; align-items: center; justify-content: space-between; padding: .875rem 0; border-bottom: 1px solid rgb(255 255 255 / .1); color: var(--white); font: 600 1.5rem/1.2 var(--serif); text-decoration: none; }
.drawer__link[aria-current="page"] { color: var(--gold-400); }
.drawer__quotes { display: grid; gap: .625rem; margin-top: 1.75rem; }
.drawer__quotes .eyebrow { margin-bottom: .25rem; }
.drawer__quote { display: grid; grid-template-columns: 56px 1fr 20px; align-items: center; gap: .875rem; padding: .875rem 1rem; border: 1px solid rgb(255 255 255 / .14); border-radius: var(--r); background: rgb(255 255 255 / .04); color: var(--white); text-decoration: none; --i2: var(--gold); --i2o: 1; }
.drawer__quote:first-of-type { border-color: var(--gold); background: rgb(210 162 76 / .1); }
.drawer__quote .icon--wide { width: 56px; height: 28px; }
.drawer__quote strong { display: block; font-size: 1rem; }
.drawer__quote small { display: block; color: rgb(255 255 255 / .62); font-size: .8125rem; }
.drawer__quote > .icon:last-child { width: 18px; height: 18px; color: var(--gold-400); }
.drawer__contact { display: grid; gap: .25rem; margin-top: auto; padding-top: 1.75rem; }
.drawer__contact a { display: flex; align-items: center; gap: .75rem; padding: .5rem 0; color: rgb(255 255 255 / .86); font-weight: 600; text-decoration: none; overflow-wrap: anywhere; --i2: var(--gold); --i2o: .5; }
.drawer__contact .icon { color: var(--gold-400); width: 20px; height: 20px; }

/* 7. Heroes -------------------------------------------------------------- */

.hero { position: relative; isolation: isolate; overflow: hidden; background: var(--navy-900); color: rgb(255 255 255 / .8); }
.hero__media { position: absolute; inset: 0; z-index: -2; }
.hero__media img { width: 100%; height: 100%; object-fit: cover; }
.hero::before { content: ""; position: absolute; inset: 0; z-index: -1; pointer-events: none; }
.hero__inner { position: relative; }
.hero__content { position: relative; max-width: 640px; }
.hero__title { color: var(--white); font-size: clamp(2.5rem, 1.35rem + 4.6vw, 4.625rem); line-height: 1.02; letter-spacing: -.018em; }
.hero__title em { color: var(--gold-400); }
.hero__lead { margin-top: 1.25rem; color: var(--white); font-size: clamp(1.125rem, 1rem + .5vw, 1.375rem); font-weight: 600; line-height: 1.35; }
.hero__text { max-width: 34em; margin-top: .75rem; font-size: 1.0625rem; color: rgb(255 255 255 / .78); }
.hero__actions { display: flex; flex-wrap: wrap; gap: .75rem; margin-top: 2rem; }
.hero__call { display: flex; align-items: center; flex-wrap: wrap; gap: .5rem; margin-top: 1.5rem; color: rgb(255 255 255 / .64); font-size: .9375rem; }
.hero__call a { display: inline-flex; align-items: center; gap: .4rem; color: var(--white); font-weight: 700; text-decoration: none; }
.hero__call a:hover { color: var(--gold-300); }
.hero__call .icon { width: 1.05rem; height: 1.05rem; color: var(--gold-400); --i2: var(--gold); --i2o: .45; }
.hero__script { display: none; }

@media (max-width: 639px) {
  .hero__actions .btn { width: 100%; }
  .hero__actions .btn:has(.btn__icon) { justify-content: space-between; }
}

/* Photo hero: copy on the left over a darkened photograph. */
.hero--photo::before {
  background:
    linear-gradient(180deg, rgb(11 31 58 / .5) 0%, rgb(11 31 58 / .82) 42%, rgb(11 31 58 / .97) 78%, var(--navy-900) 100%);
}
.hero--photo .hero__inner { padding-block: clamp(3.5rem, 2.5rem + 5vw, 7rem) clamp(5.5rem, 4.5rem + 5vw, 9rem); }
.hero--photo .hero__media img { object-position: 70% center; }
@media (max-width: 767px) { .hero--photo .hero__media { bottom: auto; height: min(92vw, 480px); -webkit-mask-image: linear-gradient(180deg, #000 55%, transparent); mask-image: linear-gradient(180deg, #000 55%, transparent); } }
@media (min-width: 768px) {
  .hero--photo::before {
    background:
      linear-gradient(90deg, rgb(11 31 58 / .98) 0%, rgb(11 31 58 / .92) 32%, rgb(11 31 58 / .6) 55%, rgb(11 31 58 / .12) 82%, rgb(11 31 58 / .2) 100%),
      linear-gradient(0deg, rgb(11 31 58 / .75) 0%, transparent 38%);
  }
  .hero--photo .hero__inner { display: flex; align-items: center; min-height: clamp(560px, 50vw + 120px, 720px); }
}

@media (min-width: 1200px) { .hero__script { display: block; position: absolute; right: 0; bottom: clamp(6rem, 5rem + 3vw, 8rem); } }

/* Home: founder card on the right. */
.hero--home .hero__inner { gap: 3rem; justify-content: space-between; }
.founder-card { display: none; }
.founder-chip { display: flex; align-items: center; gap: .875rem; max-width: 30rem; margin-top: 1.75rem; padding: .75rem 1rem .75rem .75rem; border: 1px solid rgb(255 255 255 / .14); border-radius: var(--r); background: rgb(255 255 255 / .05); }
.founder-chip img { width: 52px; height: 52px; border-radius: 50%; object-fit: cover; border: 2px solid var(--gold); flex: none; }
.founder-chip p { font-size: .875rem; line-height: 1.45; color: rgb(255 255 255 / .74); }
.founder-chip strong { display: block; color: var(--white); font-size: .9375rem; }
@media (min-width: 1024px) {
  .founder-chip { display: none; }
  .founder-card { position: relative; display: block; flex: none; width: clamp(260px, 24vw, 320px); aspect-ratio: 4 / 5; margin-top: 2rem; overflow: hidden; border: 1px solid rgb(221 180 102 / .6); border-radius: var(--r-lg); background: var(--navy-800); box-shadow: var(--shadow-lg); }
  .founder-card img { width: 100%; height: 100%; object-fit: cover; }
  .founder-card::after { content: ""; position: absolute; inset: 55% 0 0; background: linear-gradient(0deg, rgb(6 20 41 / .92), transparent); }
  .founder-card figcaption { position: absolute; z-index: 1; left: 1.25rem; right: 1.25rem; bottom: 1.125rem; }
  .founder-card strong { display: block; color: var(--white); font: 600 1.375rem/1.15 var(--serif); }
  .founder-card span { display: block; margin-top: .25rem; color: var(--gold-300); font-size: .75rem; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; }
  .hero--home .founder-card { margin-top: 4.5rem; }
  .hero--home .hero__script { top: clamp(2rem, 3vw, 2.75rem); bottom: auto; right: -.5rem; }
}

/* Split hero: photo bleeds to the right edge (Our Story). */
.hero--split::before { background: linear-gradient(180deg, transparent 0%, rgb(11 31 58 / .3) 30%, var(--navy-900) 62%); }
.hero--split .hero__media { bottom: auto; height: min(92vw, 460px); }
.hero--split .hero__inner { padding-top: min(80vw, 400px); padding-bottom: clamp(3.5rem, 3rem + 3vw, 6rem); }
@media (min-width: 900px) {
  .hero--split::before { background: linear-gradient(90deg, var(--navy-900) 0%, var(--navy-900) 44%, rgb(11 31 58 / .72) 54%, rgb(11 31 58 / 0) 72%); }
  .hero--split .hero__media { left: 40%; height: auto; bottom: 0; }
  .hero--split .hero__inner { display: flex; align-items: center; min-height: 600px; padding-block: 5.5rem; }
  .hero--split .hero__content { max-width: 560px; }
}

/* Centered hero (contact, 404). */
.hero--center::before { background: linear-gradient(180deg, rgb(11 31 58 / .88), rgb(11 31 58 / .94) 70%, var(--navy-900)); }
.hero--center .hero__inner { padding-block: clamp(3.5rem, 2.5rem + 4vw, 6rem) clamp(6.5rem, 5rem + 5vw, 9.5rem); text-align: center; }
.hero--center .hero__content { max-width: 820px; margin-inline: auto; }
.hero--center .eyebrow { justify-content: center; }
.hero--center .hero__text { margin-inline: auto; }
.hero--center .hero__actions { justify-content: center; }

/* Compact hero (quote, thank-you, resources, legal). */
.hero--compact::before { background: linear-gradient(90deg, rgb(11 31 58 / .97) 0%, rgb(11 31 58 / .9) 45%, rgb(11 31 58 / .55) 100%); }
.hero--compact .hero__inner { display: grid; gap: 2rem; align-items: end; padding-block: clamp(2.75rem, 2rem + 3vw, 4.5rem); }
.hero--compact .hero__title { font-size: clamp(2.25rem, 1.5rem + 2.8vw, 3.5rem); }
.hero--compact .hero__text { margin-top: 1rem; }
.hero--compact.hero--plain .hero__inner { padding-block: clamp(2.5rem, 2rem + 2.5vw, 4rem); }
@media (min-width: 1024px) { .hero--compact .hero__inner { grid-template-columns: minmax(0, 1fr) auto; } }

/* 8. Strips & trust bar -------------------------------------------------- */

.trust-bar { position: relative; z-index: 3; display: grid; margin-top: -3rem; padding: .5rem 1.25rem; border-radius: var(--r-lg); background: var(--white); box-shadow: var(--shadow); border: 1px solid var(--line); }
.trust-bar li { display: flex; align-items: center; gap: 1rem; padding: 1rem 0; color: var(--body); font-size: .9375rem; line-height: 1.4; --i2: var(--gold); --i2o: .35; }
.trust-bar li + li { border-top: 1px solid var(--line); }
.trust-bar .icon { width: 36px; height: 36px; color: var(--gold-600); }
.trust-bar strong { display: block; color: var(--ink); font-size: 1rem; }
.trust-bar small { display: block; color: var(--muted); font-size: .8125rem; }
@media (min-width: 900px) {
  .trust-bar { grid-template-columns: repeat(3, 1fr); margin-top: -3.5rem; padding: .5rem 1rem; }
  .trust-bar li { padding: 1.5rem 1.5rem; }
  .trust-bar li + li { border-top: 0; border-left: 1px solid var(--line); }
}

.vehicle-strip { position: relative; z-index: 3; }
.vehicle-strip .container { margin-top: -3.25rem; }
.vehicle-strip__list { display: grid; grid-template-columns: repeat(3, 1fr); padding: .75rem; border: 1px solid var(--line); border-radius: var(--r-lg); background: var(--white); box-shadow: var(--shadow); --i2: var(--gold); --i2o: 1; }
.vehicle-strip__list--7 { grid-template-columns: repeat(4, 1fr); }
.vehicle-strip__list li { display: flex; flex-direction: column; align-items: center; justify-content: flex-start; gap: .625rem; padding: .875rem .25rem; color: var(--ink); font-size: .75rem; font-weight: 700; line-height: 1.25; text-align: center; }
.vehicle-strip__list .icon { width: 44px; height: 44px; color: var(--navy-900); --i2o: .35; }
.vehicle-strip__list .icon--wide { width: 64px; height: 32px; margin-block: 6px; --i2o: 1; }
@media (min-width: 900px) {
  .vehicle-strip .container { margin-top: -4rem; }
  .vehicle-strip__list, .vehicle-strip__list--7 { grid-template-columns: repeat(var(--cols, 6), 1fr); padding: .5rem 1rem; }
  .vehicle-strip__list--7 { --cols: 7; }
  .vehicle-strip__list li { padding: 1.5rem .5rem; font-size: .875rem; }
  .vehicle-strip__list li + li { border-left: 1px solid var(--line); }
  .vehicle-strip__list .icon--wide { width: 88px; height: 44px; margin-block: 2px; }
  .vehicle-strip__list .icon:not(.icon--wide) { width: 48px; height: 48px; }
}

/* 9. Coverage tiles ------------------------------------------------------ */

.coverage { position: relative; overflow: hidden; }
.coverage .container { position: relative; }
.tile-grid { display: grid; gap: 1rem; }
.tile { position: relative; padding: 1.75rem 1.5rem; border: 1px solid rgb(255 255 255 / .12); border-radius: var(--r-lg); background: linear-gradient(180deg, rgb(255 255 255 / .06), rgb(255 255 255 / .025)); transition: border-color .25s, background-color .25s; }
.tile:hover { border-color: rgb(221 180 102 / .5); }
.tile__icon { display: grid; place-items: center; width: 56px; height: 56px; margin-bottom: 1.25rem; border-radius: 14px; background: rgb(210 162 76 / .12); border: 1px solid rgb(210 162 76 / .35); color: var(--white); --i2: var(--gold); --i2o: 1; }
.tile__icon .icon { width: 30px; height: 30px; }
.tile__title { margin-bottom: .5rem; font-size: 1.375rem; line-height: 1.2; }
.tile p { font-size: .9688rem; line-height: 1.6; color: rgb(255 255 255 / .72); }
.coverage__foot { display: flex; flex-direction: column; align-items: flex-start; gap: 1.25rem; margin-top: 2.5rem; padding-top: 2rem; border-top: 1px solid rgb(255 255 255 / .12); }
.coverage__foot p { max-width: 640px; font-size: .9375rem; color: rgb(255 255 255 / .64); }
@media (max-width: 639px) {
  .tile { display: grid; grid-template-columns: 48px 1fr; gap: 0 1rem; padding: 1.25rem; }
  .tile__icon { grid-row: span 2; width: 48px; height: 48px; margin: 0; border-radius: 12px; }
  .tile__icon .icon { width: 26px; height: 26px; }
  .tile__title { margin: .125rem 0 .25rem; font-size: 1.1875rem; }
  .tile p { font-size: .9375rem; }
}
@media (min-width: 640px) { .tile-grid { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1024px) {
  .tile-grid { grid-template-columns: repeat(3, 1fr); gap: 1.25rem; }
  .tile { padding: 2rem 1.875rem; }
  .coverage__foot { flex-direction: row; align-items: center; justify-content: space-between; }
}

/* 10. Features & values -------------------------------------------------- */

.feature-grid { display: grid; gap: 2rem 2.5rem; }
.feature { display: grid; grid-template-columns: 56px 1fr; gap: 1.125rem; align-items: start; }
.feature__icon { display: grid; place-items: center; width: 56px; height: 56px; border-radius: 50%; background: var(--cream-200); color: var(--gold-700); --i2: var(--gold); --i2o: .55; }
.feature__icon .icon { width: 30px; height: 30px; }
.feature__title { margin: .25rem 0 .375rem; font: 700 1.125rem/1.3 var(--sans); letter-spacing: 0; color: var(--ink); }
.feature p { font-size: .9688rem; color: var(--muted); }
@media (min-width: 640px) { .feature-grid { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1024px) { .feature-grid { grid-template-columns: repeat(3, 1fr); gap: 3rem 3.5rem; } }

.values__grid { display: grid; gap: 0; }
.values__grid li { padding: 2rem 0; border-top: 1px solid rgb(255 255 255 / .12); --i2: var(--gold); --i2o: 1; }
.values__grid .icon { width: 48px; height: 48px; margin-bottom: 1.25rem; color: var(--white); }
.values__grid .icon--wide { width: 96px; height: 48px; margin-bottom: 1.25rem; }
.values__grid h3 { margin-bottom: .625rem; font-size: 1.5rem; }
.values__grid p { color: rgb(255 255 255 / .72); }
@media (min-width: 900px) {
  .values__grid { grid-template-columns: repeat(3, 1fr); }
  .values__grid li { padding: .5rem 2.5rem; border-top: 0; }
  .values__grid li:first-child { padding-left: 0; }
  .values__grid li:last-child { padding-right: 0; }
  .values__grid li + li { border-left: 1px solid rgb(255 255 255 / .12); }
}

/* 11. Service cards, steps, FAQ ------------------------------------------ */

.story-intro__list { color: var(--ink); font: 600 1.25rem/1.5 var(--serif); }
.split__copy .story-intro__list + p { margin-top: 1.25rem; }

.service-cards { display: grid; gap: 1.5rem; }
.service-card { display: flex; flex-direction: column; overflow: hidden; border: 1px solid var(--line); border-radius: var(--r-lg); background: var(--white); box-shadow: var(--shadow-sm); transition: box-shadow .3s, transform .3s var(--ease); }
.service-card:hover { box-shadow: var(--shadow); }
.service-card__media { display: block; aspect-ratio: 16 / 9; overflow: hidden; background: var(--navy-800); }
.service-card__media img { width: 100%; height: 100%; object-fit: cover; transition: transform .6s var(--ease); }
.service-card:hover .service-card__media img { transform: scale(1.035); }
.service-card__body { display: flex; flex-direction: column; flex: 1; padding: 1.75rem 1.5rem 1.875rem; }
.service-card__kicker { display: flex; align-items: center; gap: .625rem; margin-bottom: .75rem; color: var(--gold-700); font-size: .75rem; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; --i2: var(--gold); --i2o: 1; }
.service-card__kicker .icon--wide { width: 44px; height: 22px; color: var(--navy-900); }
.service-card h3 { font-size: clamp(1.625rem, 1.3rem + 1vw, 2rem); }
.service-card h3 a { text-decoration: none; }
.service-card h3 a:hover { color: var(--gold-700); }
.service-card__body > p { margin: .625rem 0 1.25rem; color: var(--muted); }
.service-card__actions { display: flex; flex-wrap: wrap; align-items: center; gap: 1rem 1.5rem; margin-top: auto; padding-top: 1.75rem; }
@media (min-width: 900px) { .service-cards { grid-template-columns: repeat(2, 1fr); gap: 2rem; } .service-card__body { padding: 2rem 2.25rem 2.25rem; } }

.steps { display: grid; gap: 1.5rem; counter-reset: none; }
.step { display: grid; grid-template-columns: 56px 1fr; gap: 1.125rem; align-items: start; }
.step__num { display: grid; place-items: center; width: 56px; height: 56px; border-radius: 50%; background: var(--gold); color: var(--navy-900); font: 700 1.5rem/1 var(--serif); box-shadow: 0 0 0 6px var(--cream-200); }
.step__title { margin: .375rem 0 .375rem; font: 700 1.1875rem/1.3 var(--sans); letter-spacing: 0; }
.step p { color: var(--muted); }
@media (min-width: 900px) {
  .steps--row { grid-template-columns: repeat(3, 1fr); gap: 2.5rem; position: relative; }
  .steps--row .step { grid-template-columns: 1fr; text-align: center; justify-items: center; gap: 1.25rem; }
  .steps--row .step p { max-width: 300px; margin-inline: auto; }
  .steps--row .step:not(:last-child)::after { content: ""; position: absolute; top: 28px; left: calc(50% + 48px); width: calc(100% - 96px + 2.5rem); height: 2px; background: repeating-linear-gradient(90deg, var(--gold) 0 8px, transparent 8px 14px); }
  .steps--row .step { position: relative; }
}

.faq-layout { display: grid; gap: 2.5rem; }
.faq-layout__intro .section-title { margin-bottom: 1rem; }
.faq-layout__intro > p { margin-bottom: 2rem; color: var(--muted); }
.faq { display: grid; gap: .75rem; }
.faq__item { border: 1px solid var(--line); border-radius: var(--r); background: var(--white); transition: border-color .2s, box-shadow .2s; }
.faq__item[open] { border-color: rgb(210 162 76 / .6); box-shadow: var(--shadow-sm); }
.faq__item summary { display: flex; align-items: center; justify-content: space-between; gap: 1.25rem; padding: 1.125rem 1.25rem; color: var(--ink); font-size: 1.0625rem; font-weight: 700; line-height: 1.4; cursor: pointer; list-style: none; }
.faq__item summary::-webkit-details-marker { display: none; }
.faq__toggle { display: grid; place-items: center; width: 32px; height: 32px; flex: none; border-radius: 50%; background: var(--cream-200); color: var(--gold-700); transition: transform .25s var(--ease), background-color .2s; }
.faq__toggle .icon { width: 14px; height: 14px; }
.faq__item[open] .faq__toggle { transform: rotate(45deg); background: var(--gold); color: var(--navy-900); }
.faq__answer { padding: 0 1.25rem 1.25rem; }
.faq__answer p { max-width: 62ch; color: var(--body); }
@media (min-width: 1024px) {
  .faq-layout { grid-template-columns: minmax(0, .85fr) minmax(0, 1.15fr); gap: 4.5rem; align-items: start; }
  .faq-layout__intro { position: sticky; top: calc(var(--header-h) + 2rem); }
  .faq__item summary { padding: 1.3125rem 1.5rem; }
  .faq__answer { padding: 0 1.5rem 1.5rem; }
}

/* Shared list styles used on service pages. */
.check-list { display: grid; gap: .875rem; margin-top: 1.75rem; }
.check-list li { display: grid; grid-template-columns: 24px 1fr; gap: .75rem; align-items: start; }
.check-list .icon { width: 24px; height: 24px; margin-top: .1rem; color: var(--gold-600); --i2: var(--gold); --i2o: .3; }
.check-list strong { color: var(--ink); }
.pill { display: inline-flex; align-items: center; gap: .5rem; margin-bottom: 1.25rem; padding: .4375rem .875rem .4375rem .625rem; border: 1px solid rgb(221 180 102 / .4); border-radius: 999px; background: rgb(210 162 76 / .1); color: var(--gold-300); font-size: .75rem; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; --i2: var(--gold); --i2o: 1; }
.pill .icon { width: 18px; height: 18px; color: var(--navy-900); }
.story-teaser .split__copy > p:not(.pill) { color: rgb(255 255 255 / .76); }
.story-teaser__highlight { color: var(--gold-300) !important; font: 600 1.25rem/1.45 var(--serif); }
.story-teaser .text-link { margin-top: 1.75rem; }
.story-teaser .photo-frame { box-shadow: var(--shadow-lg); }
.tick-row { display: flex; flex-wrap: wrap; gap: .75rem 1.5rem; margin-top: 1.5rem; }
.tick-row li { display: inline-flex; align-items: center; gap: .5rem; color: var(--white); font-weight: 600; }
.tick-row .icon { width: 22px; height: 22px; padding: 4px; border-radius: 50%; background: var(--gold); color: var(--navy-900); }

.editorial { display: grid; gap: 1.5rem 4rem; }
.editorial__lede { color: var(--ink); font: 600 clamp(1.25rem, 1.1rem + .6vw, 1.5rem)/1.45 var(--serif); }
.editorial__body p + p { margin-top: 1rem; }
.editorial__body .text-link { margin-top: 1.75rem; }
@media (min-width: 1024px) { .editorial { grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); } .editorial__head .section-title::after { content: ""; display: block; width: 64px; height: 3px; margin-top: 1.5rem; border-radius: 2px; background: var(--gold); } }

/* 12. Page: story -------------------------------------------------------- */

.chapter__label { display: flex; align-items: center; gap: .75rem; margin-bottom: 1rem; color: var(--gold-700); font-size: .75rem; font-weight: 800; letter-spacing: .18em; text-transform: uppercase; }
.chapter__label::after { content: ""; width: 48px; height: 1px; background: currentColor; opacity: .5; }
.section--navy .chapter__label { color: var(--gold-400); }
.chapter__grid { display: grid; gap: 2.5rem; }
.chapter__main .section-title { margin-bottom: 1.5rem; }
.chapter__text { display: grid; gap: 1rem; max-width: 64ch; }
.chapter__text p, .chapter--photo .split__copy p:not(.chapter__label) { font-size: 1.0938rem; line-height: 1.75; }
.chapter + .chapter--photo { padding-top: 0; }
.chapter--photo .split__copy p + p { margin-top: 1rem; }
.chapter--photo .split__copy .section-title { margin-bottom: 1.5rem; }
.chapter__emphasis { padding-left: 1rem; border-left: 3px solid var(--gold); color: var(--ink); font: 600 1.25rem/1.45 var(--serif) !important; }
.chapter__goal { margin-top: .5rem; padding: 1.25rem 1.5rem; border-radius: var(--r); background: rgb(255 255 255 / .06); border-left: 3px solid var(--gold); color: var(--white); font: 600 1.3125rem/1.5 var(--serif); }
.chapter--purpose .chapter__text p { color: rgb(255 255 255 / .78); }
.pullquote { align-self: start; padding: 2rem 1.75rem; border-radius: var(--r-lg); background: var(--navy-900); color: rgb(255 255 255 / .74); box-shadow: var(--shadow); }
.pullquote__mark { width: 40px; height: 40px; margin-bottom: .75rem; color: var(--gold); --i2: var(--gold); --i2o: .35; }
.pullquote blockquote p { color: var(--white); font: 600 clamp(1.5rem, 1.2rem + 1vw, 1.875rem)/1.25 var(--serif); letter-spacing: -.01em; }
.pullquote__note { margin-top: 1.25rem; padding-top: 1.25rem; border-top: 1px solid rgb(255 255 255 / .14); font-size: .9688rem; line-height: 1.65; }
.portrait { position: relative; overflow: hidden; border-radius: var(--r-lg); aspect-ratio: 4 / 5; background: var(--navy-800); box-shadow: var(--shadow); max-width: 520px; }
.portrait img { width: 100%; height: 100%; object-fit: cover; }
.portrait figcaption { position: absolute; left: 0; right: 0; bottom: 0; padding: 3rem 1.5rem 1.25rem; background: linear-gradient(0deg, rgb(6 20 41 / .9), transparent); color: rgb(255 255 255 / .8); font-size: .875rem; }
.portrait figcaption strong { display: block; color: var(--white); font: 600 1.25rem/1.2 var(--serif); }
.stat-stack { display: grid; gap: 1px; overflow: hidden; margin: 0; border-radius: var(--r-lg); background: var(--line-strong); border: 1px solid var(--line-strong); }
.stat-stack div { padding: 1.5rem 1.75rem; background: var(--white); }
.stat-stack dt { color: var(--gold-600); font: 700 clamp(2rem, 1.6rem + 1.4vw, 2.75rem)/1.05 var(--serif); letter-spacing: -.02em; }
.stat-stack dd { margin: .375rem 0 0; color: var(--body); font-size: .9688rem; }
.values__grid--light li { border-color: var(--line); --i2: var(--gold); --i2o: 1; }
.values__grid--light .icon { color: var(--navy-900); }
.values__grid--light .icon:not(.icon--wide) { --i2o: .35; }
.values__grid--light h3 { color: var(--ink); }
.values__grid--light p { color: var(--muted); }
.closing__inner { max-width: 820px; margin-inline: auto; text-align: center; }
.closing__inner p { margin-top: 1.25rem; font-size: 1.125rem; }
@media (min-width: 900px) { .values__grid--light li + li { border-left-color: var(--line); } }
@media (min-width: 1024px) {
  .chapter__grid { grid-template-columns: minmax(0, 1.35fr) minmax(0, .9fr); gap: 4.5rem; }
  .chapter__grid--stat { align-items: center; }
  .chapter--purpose .chapter__grid { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); align-items: start; }
  .pullquote { position: sticky; top: calc(var(--header-h) + 2rem); padding: 2.5rem 2.25rem; }
}

/* 13. Page: contact, referral, quote, thanks ----------------------------- */

.hero--center + .help-options .overlap { margin-top: -5rem; }
.option-grid { display: grid; gap: 1rem; }
.option { display: flex; flex-direction: column; padding: 1.75rem 1.5rem; border: 1px solid var(--line); border-radius: var(--r-lg); background: var(--white); box-shadow: var(--shadow); --i2: var(--gold); --i2o: 1; }
.option__icon { display: grid; place-items: center; width: 64px; height: 64px; margin-bottom: 1.25rem; border-radius: 16px; background: var(--cream-200); color: var(--navy-900); }
.option__icon .icon { width: 32px; height: 32px; --i2o: .5; }
.option__icon .icon--wide { width: 56px; height: 28px; --i2o: 1; }
.option h3 { margin-bottom: .5rem; font-size: 1.375rem; }
.option p { margin-bottom: 1.25rem; color: var(--muted); font-size: .9688rem; }
.option .text-link { margin-top: auto; align-self: flex-start; }
.option--alert { background: var(--cream); border-color: rgb(210 162 76 / .45); }
.option--alert .option__icon { background: var(--white); color: var(--gold-700); }
@media (min-width: 640px) { .option-grid { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1100px) { .option-grid { grid-template-columns: repeat(4, 1fr); gap: 1.25rem; } }

.contact-layout { display: grid; gap: 1.5rem; align-items: start; }
@media (min-width: 1024px) { .contact-layout { grid-template-columns: minmax(0, 380px) minmax(0, 1fr); gap: 2rem; } .info-card { position: sticky; top: calc(var(--header-h) + 1.5rem); } }
.info-card { padding: 2rem 1.75rem; border-radius: var(--r-lg); background: var(--navy-900); color: rgb(255 255 255 / .74); box-shadow: var(--shadow); }
.info-card h2 { margin-bottom: 1.25rem; color: var(--white); font-size: 2rem; }
.info-card__list { display: grid; }
.info-card__list a { display: flex; align-items: center; gap: 1rem; padding: 1rem 0; border-top: 1px solid rgb(255 255 255 / .12); color: var(--white); font-weight: 700; text-decoration: none; overflow-wrap: anywhere; --i2: var(--gold); --i2o: .45; }
.info-card__list .icon { width: 40px; height: 40px; padding: 9px; border-radius: 50%; background: rgb(210 162 76 / .14); color: var(--gold-400); }
.info-card__list small { display: block; color: rgb(255 255 255 / .56); font-size: .75rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }
.info-card__list a:hover span { color: var(--gold-300); }
.info-card__note { padding: 1rem 0 1.25rem; border-top: 1px solid rgb(255 255 255 / .12); font-size: .9375rem; }
.info-card__claim { padding: 1.25rem; border-radius: var(--r); background: rgb(255 255 255 / .05); border: 1px solid rgb(255 255 255 / .1); }
.info-card__claim h3 { margin-bottom: .375rem; color: var(--gold-300); font-size: 1.25rem; }
.info-card__claim p { font-size: .9375rem; }
.info-card__refer { margin-top: 1.25rem; font-size: .9375rem; }
.info-card__refer a { color: var(--gold-300); font-weight: 700; }

.form-panel { min-width: 0; padding: 1.5rem 1.125rem; border: 1px solid var(--line); border-radius: var(--r-lg); background: var(--white); box-shadow: var(--shadow); }
.form-panel__head { margin-bottom: 1.25rem; padding-bottom: 1.25rem; border-bottom: 1px solid var(--line); }
.form-panel__head .eyebrow { margin-bottom: .625rem; }
.form-panel__head h2 { font-size: clamp(1.75rem, 1.4rem + 1.2vw, 2.25rem); }
.form-panel__head p:last-child { margin-top: .5rem; color: var(--muted); font-size: .9688rem; }
.form-embed { min-height: 480px; border-radius: var(--r-sm); background: linear-gradient(180deg, var(--cream) 0, #fff 240px); }
.form-embed iframe { width: 100%; }
.form-fallback { margin-top: .875rem; color: var(--muted); font-size: .8125rem; }
.form-fallback a { color: var(--gold-700); font-weight: 700; }
.form-notes { display: grid; gap: .625rem; margin-top: 1.25rem; padding-top: 1.25rem; border-top: 1px solid var(--line); }
.form-notes li { display: grid; grid-template-columns: 18px 1fr; gap: .625rem; color: var(--muted); font-size: .8125rem; line-height: 1.5; }
.form-notes .icon { width: 18px; height: 18px; color: var(--gold-600); --i2: var(--gold); --i2o: .3; }
@media (min-width: 640px) { .form-panel { padding: 2rem; } }
@media (min-width: 1024px) { .form-panel { padding: 2.25rem 2.5rem; } }

.application__layout { display: grid; gap: 1.5rem; align-items: start; }
.application__aside { display: contents; }
@media (min-width: 1024px) {
  .application__layout { grid-template-columns: minmax(0, 1fr) 360px; gap: 2rem; }
  .application__aside { display: grid; gap: 1.25rem; position: sticky; top: calc(var(--header-h) + 1.5rem); }
}
.checklist { padding: 1.75rem 1.5rem; border-radius: var(--r-lg); background: var(--navy-900); color: rgb(255 255 255 / .74); box-shadow: var(--shadow); }
.checklist .eyebrow { color: var(--gold-400); margin-bottom: .5rem; }
.checklist__title { margin-bottom: 1.25rem; color: var(--white); font-size: 1.625rem; }
.checklist ol { display: grid; gap: 0; }
.checklist li { display: grid; grid-template-columns: 32px 1fr; gap: .875rem; padding: .875rem 0; border-top: 1px solid rgb(255 255 255 / .12); font-size: .9375rem; line-height: 1.5; }
.checklist strong { display: block; color: var(--white); }
.checklist__num { display: grid; place-items: center; width: 32px; height: 32px; border-radius: 50%; background: var(--gold); color: var(--navy-900); font: 700 1rem/1 var(--serif); }
.checklist .fine-print { margin-top: .75rem; padding-top: 1rem; border-top: 1px solid rgb(255 255 255 / .12); color: rgb(255 255 255 / .58); }
.application__switch { margin-top: 1rem; color: var(--muted); font-size: .9375rem; text-align: center; }
.application__switch a { color: var(--ink); font-weight: 700; text-decoration-color: var(--gold); }
.fine-print { color: var(--muted); font-size: .8125rem; line-height: 1.55; }

/* Referral */
.reward { margin: 1.5rem 0 .25rem; }
.reward__amount { color: var(--gold-400); font: 700 clamp(3rem, 2rem + 4.5vw, 5.25rem)/1 var(--serif); letter-spacing: -.02em; white-space: nowrap; }
.reward__label { margin-top: .5rem; color: var(--white); font-size: clamp(1.125rem, 1rem + .5vw, 1.375rem); font-weight: 700; }
.hero__fine { max-width: 34rem; margin-top: 1.25rem; color: rgb(255 255 255 / .56); font-size: .8125rem; line-height: 1.55; }
.hero--referral .hero__actions { margin-top: 1.75rem; }
.hero--referral .hero__inner { padding-bottom: clamp(3.5rem, 3rem + 3vw, 6rem); }
.step-cards { display: grid; gap: 1rem; counter-reset: none; }
.step-cards li { position: relative; padding: 2rem 1.75rem 1.75rem; border: 1px solid var(--line); border-radius: var(--r-lg); background: var(--white); box-shadow: var(--shadow-sm); --i2: var(--gold); --i2o: .45; }
.step-cards__num { position: absolute; top: 1.5rem; right: 1.5rem; display: grid; place-items: center; width: 40px; height: 40px; border-radius: 50%; background: var(--gold); color: var(--navy-900); font: 700 1.25rem/1 var(--serif); }
.step-cards .icon { width: 48px; height: 48px; margin-bottom: 1.25rem; color: var(--navy-900); }
.step-cards h3 { margin-bottom: .5rem; font-size: 1.375rem; }
.step-cards p { color: var(--muted); }
@media (min-width: 900px) { .step-cards { grid-template-columns: repeat(3, 1fr); gap: 1.5rem; } }
.mail-card { padding: 1.75rem 1.5rem; border-radius: var(--r-lg); background: var(--navy-900); color: rgb(255 255 255 / .74); box-shadow: var(--shadow); }
.mail-card__icon { width: 44px; height: 44px; margin-bottom: 1rem; color: var(--gold); --i2: var(--gold); --i2o: .35; }
.mail-card h3 { color: var(--white); font-size: 1.75rem; }
.mail-card__email { display: inline-block; margin: .375rem 0 1.25rem; color: var(--gold-300); font-weight: 700; font-size: 1.0625rem; overflow-wrap: anywhere; }
.mail-card__subject { margin-bottom: .5rem; padding-top: 1rem; border-top: 1px solid rgb(255 255 255 / .14); color: var(--white); font-weight: 700; }
.mail-card__subject span { color: rgb(255 255 255 / .56); font-weight: 600; }
.mail-card p:last-child { font-size: .9375rem; }
.note-card { padding: 1.5rem; border: 1px solid rgb(210 162 76 / .4); border-radius: var(--r-lg); background: var(--white); --i2: var(--gold); --i2o: .45; }
.note-card > .icon { width: 36px; height: 36px; margin-bottom: .75rem; color: var(--gold-700); }
.note-card h3 { margin-bottom: .375rem; font-size: 1.375rem; }
.note-card p { color: var(--muted); font-size: .9375rem; }
.note-card__links { display: flex; flex-wrap: wrap; gap: .5rem 1.25rem; margin-top: .75rem; }
.note-card__links a { color: var(--ink); font-weight: 700; text-decoration-color: var(--gold); }

/* Thank-you */
.hero--thanks .hero__title em { display: inline; }
.confirm__inner { max-width: 880px; margin-inline: auto; text-align: center; }
.confirm__mark { display: inline-grid; place-items: center; width: 96px; height: 96px; margin-bottom: 1.75rem; border: 3px solid var(--gold); border-radius: 50%; color: var(--gold-600); box-shadow: 0 0 0 10px var(--cream); }
.confirm__mark .icon { width: 44px; height: 44px; }
.confirm__sub { margin-top: .75rem; color: var(--ink); font: 600 clamp(1.25rem, 1.1rem + .8vw, 1.75rem)/1.3 var(--serif); }
.confirm__lede { max-width: 680px; margin: 1.25rem auto 0; font-size: 1.0938rem; }
.next-list { margin-top: 3.5rem; padding-top: 2.5rem; border-top: 1px solid var(--line); text-align: left; }
.next-list__title { margin-bottom: 1.5rem; font-size: clamp(1.625rem, 1.3rem + 1vw, 2.125rem); }
.next-list ol { display: grid; }
.next-list li { display: grid; grid-template-columns: 48px 1fr; gap: .5rem 1.25rem; align-items: start; padding: 1.5rem 0; border-bottom: 1px solid var(--line); --i2: var(--gold); --i2o: .4; }
.next-list__icon { grid-row: span 2; display: grid; place-items: center; width: 48px; height: 48px; border-radius: 12px; background: var(--cream-200); color: var(--navy-900); }
.next-list__icon .icon { width: 26px; height: 26px; }
.next-list__num { color: var(--gold-600); font: 700 1.125rem/1 var(--serif); }
.next-list h4 { margin-bottom: .25rem; font-size: 1.3125rem; }
.next-list p { color: var(--muted); }
@media (min-width: 640px) {
  .next-list li { grid-template-columns: 56px 64px 1fr; align-items: center; }
  .next-list__icon { grid-row: auto; width: 56px; height: 56px; }
  .next-list__num { font-size: 2.25rem; padding-left: 1rem; border-left: 1px solid var(--line); }
}
.notice { display: grid; grid-template-columns: 44px 1fr; gap: 1rem; margin-top: 2.5rem; padding: 1.5rem; border: 1px solid rgb(210 162 76 / .45); border-radius: var(--r-lg); background: var(--cream); text-align: left; }
.notice__icon .icon { width: 44px; height: 44px; color: var(--gold-600); --i2: var(--gold); --i2o: .35; }
.notice h3 { margin-bottom: .375rem; font-size: 1.375rem; }
.notice p { font-size: .9688rem; }
.notice a { color: var(--ink); font-weight: 700; text-decoration-color: var(--gold); overflow-wrap: anywhere; }
.confirm__actions { display: flex; flex-wrap: wrap; justify-content: center; gap: .75rem; margin-top: 2.5rem; }
.confirm__tagline { margin-top: 3rem; padding-top: 2rem; border-top: 1px solid var(--line); color: var(--ink); font: 600 clamp(1.375rem, 1.2rem + .8vw, 1.875rem)/1.3 var(--serif); }
.confirm .fine-print { max-width: 560px; margin: .75rem auto 0; }

/* 14. Blog, prose, 404 --------------------------------------------------- */

.section--tight { padding-block: clamp(3rem, 2.5rem + 2.5vw, 5rem); }
.post-grid { display: grid; gap: 1.5rem; }
@media (min-width: 700px) { .post-grid { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1024px) { .post-grid { grid-template-columns: repeat(3, 1fr); } }
.post-card { display: flex; flex-direction: column; overflow: hidden; border: 1px solid var(--line); border-radius: var(--r-lg); background: var(--white); box-shadow: var(--shadow-sm); transition: box-shadow .25s; }
.post-card:hover { box-shadow: var(--shadow); }
.post-card__media { aspect-ratio: 16 / 9; overflow: hidden; }
.post-card__media img { width: 100%; height: 100%; object-fit: cover; }
.post-card__body { display: flex; flex-direction: column; flex: 1; padding: 1.5rem; }
.post-card__date { color: var(--gold-700); font-size: .75rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.post-card__title { margin: .5rem 0 .625rem; font-size: 1.5rem; line-height: 1.2; }
.post-card__title a { text-decoration: none; }
.post-card__title a:hover { color: var(--gold-700); }
.post-card__body > p { margin-bottom: 1.25rem; color: var(--muted); font-size: .9688rem; }
.post-card .text-link { margin-top: auto; align-self: flex-start; }
.pager .nav-links { display: flex; flex-wrap: wrap; justify-content: center; gap: .5rem; margin-top: 3rem; }
.pager .page-numbers { display: grid; place-items: center; min-width: 44px; height: 44px; padding: 0 .875rem; border: 1px solid var(--line); border-radius: var(--r-sm); color: var(--ink); font-weight: 700; text-decoration: none; }
.pager .page-numbers.current, .pager .page-numbers:hover { border-color: var(--gold); background: var(--cream); }
.empty-state { padding: 3rem; border: 1px dashed var(--line-strong); border-radius: var(--r-lg); color: var(--muted); text-align: center; }

.prose { max-width: 72ch; margin-inline: auto; font-size: 1.0938rem; line-height: 1.75; }
.prose > * + * { margin-top: 1.25em; }
.prose h2 { margin-top: 2em; font-size: clamp(1.625rem, 1.35rem + 1vw, 2.125rem); }
.prose h3 { margin-top: 1.75em; font-size: 1.4375rem; }
.prose h4 { margin-top: 1.5em; font: 700 1.125rem/1.35 var(--sans); }
.prose a { color: var(--ink); font-weight: 600; text-decoration-color: var(--gold); text-decoration-thickness: 2px; }
.prose a:hover { color: var(--gold-700); }
.prose ul, .prose ol { padding-left: 1.25em; }
.prose li + li { margin-top: .5em; }
.prose li::marker { color: var(--gold-600); }
.prose blockquote { padding: .25em 0 .25em 1.25em; border-left: 3px solid var(--gold); color: var(--ink); font: 600 1.25rem/1.5 var(--serif); }
.prose img, .prose figure { border-radius: var(--r); }
.prose table { width: 100%; border-collapse: collapse; font-size: .9375rem; }
.prose th, .prose td { padding: .75rem; border-bottom: 1px solid var(--line); text-align: left; }
.prose hr { border: 0; border-top: 1px solid var(--line); margin-block: 2.5em; }
.prose__lead-image { margin-bottom: 2rem; overflow: hidden; }
.article-cta { display: flex; flex-direction: column; align-items: flex-start; gap: 1rem; max-width: 72ch; margin: 3.5rem auto 0; padding: 1.5rem 1.75rem; border-radius: var(--r-lg); background: var(--cream); border: 1px solid rgb(210 162 76 / .4); }
.article-cta strong { color: var(--ink); }
@media (min-width: 768px) { .article-cta { flex-direction: row; align-items: center; justify-content: space-between; } }
.hero--plain .hero__title { font-size: clamp(2.25rem, 1.6rem + 2.4vw, 3.25rem); }
.hero--404 .hero__inner { padding-bottom: clamp(4rem, 3rem + 4vw, 7rem); min-height: 62vh; display: flex; align-items: center; justify-content: center; }

/* 15. CTA band, statement, footer, action bar, dialog -------------------- */

.site-footer { background: var(--navy-950); color: rgb(255 255 255 / .7); }
.cta-band { position: relative; overflow: hidden; background: radial-gradient(120% 140% at 85% 0%, var(--navy-800) 0%, var(--navy-900) 55%); border-top: 3px solid var(--gold); }
.cta-band::before { content: ""; position: absolute; right: -60px; top: -120px; width: 420px; height: 400px; background: url("../images/route-lines.svg") center / contain no-repeat; opacity: .1; pointer-events: none; }
.cta-band__inner { position: relative; display: grid; gap: 1.5rem; padding-block: clamp(3.5rem, 2.5rem + 3vw, 5rem); }
.cta-band__mark { display: grid; place-items: center; width: 72px; height: 72px; border-radius: 20px; background: rgb(210 162 76 / .12); border: 1px solid rgb(210 162 76 / .4); color: var(--white); --i2: var(--gold); --i2o: 1; }
.cta-band__mark .icon { width: 40px; height: 40px; }
.cta-band h2 { color: var(--white); font-size: clamp(1.875rem, 1.35rem + 1.9vw, 2.75rem); }
.cta-band p { margin-top: .625rem; font-size: 1.125rem; color: rgb(255 255 255 / .74); }
.cta-band__actions { display: flex; flex-wrap: wrap; gap: .75rem; }
@media (max-width: 639px) { .cta-band__actions .btn { width: 100%; } .cta-band__actions .btn:has(.btn__icon) { justify-content: space-between; } }
@media (min-width: 1024px) {
  .cta-band__inner { grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: 2rem 2.5rem; }
  .cta-band__actions { justify-content: flex-end; }
}

.statement { background: var(--cream); color: var(--body); border-top: 1px solid var(--cream-200); }
.statement__inner { display: grid; gap: 1.25rem; align-items: center; padding-block: clamp(2.5rem, 2rem + 2vw, 3.5rem); }
.statement__mark { width: 96px; height: auto; color: var(--gold-600); }
.statement__title { color: var(--ink); font: 600 clamp(1.625rem, 1.3rem + 1.4vw, 2.375rem)/1.15 var(--serif); letter-spacing: -.01em; }
.statement__inner p:last-child { margin-top: .375rem; }
@media (min-width: 768px) { .statement__inner { grid-template-columns: auto 1fr; gap: 2rem; } .statement__mark { width: 120px; padding-right: 2rem; border-right: 1px solid rgb(176 130 45 / .35); box-sizing: content-box; } }

.footer-main { display: grid; gap: 2.5rem 2rem; padding-block: clamp(3rem, 2.5rem + 2.5vw, 4.5rem); }
.footer-brand p { max-width: 320px; margin-top: 1.25rem; font-size: .9375rem; }
.brand--footer .brand__badge { width: 60px; }
.footer-contact { display: grid; gap: .5rem; margin-top: 1.25rem; }
.footer-contact a { display: inline-flex; align-items: center; gap: .625rem; color: var(--white); font-weight: 700; text-decoration: none; overflow-wrap: anywhere; --i2: var(--gold); --i2o: .45; }
.footer-contact .icon { width: 20px; height: 20px; color: var(--gold-400); }
.footer-contact a:hover { color: var(--gold-300); }
.footer-nav { display: flex; flex-direction: column; align-items: flex-start; gap: .625rem; }
.footer-nav__title { margin-bottom: .375rem; color: var(--gold-400); font-size: .75rem; font-weight: 800; letter-spacing: .16em; text-transform: uppercase; }
.footer-nav a { color: rgb(255 255 255 / .74); font-size: .9688rem; text-decoration: none; transition: color .2s; }
.footer-nav a:hover { color: var(--white); text-decoration: underline; text-decoration-color: var(--gold); }
.footer-help { padding: 1.5rem; border: 1px solid rgb(255 255 255 / .1); border-radius: var(--r-lg); background: rgb(255 255 255 / .03); }
.footer-help p:not(.footer-nav__title) { margin-bottom: 1rem; font-size: .9375rem; }
.footer-legal { display: flex; flex-direction: column; gap: .75rem; padding-block: 1.5rem; border-top: 1px solid rgb(255 255 255 / .1); font-size: .8438rem; color: rgb(255 255 255 / .56); }
.footer-legal nav { display: flex; flex-wrap: wrap; gap: .5rem 1.5rem; }
.footer-legal a { color: rgb(255 255 255 / .74); text-decoration: none; }
.footer-legal a:hover { color: var(--white); text-decoration: underline; }
@media (min-width: 700px) { .footer-main { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1100px) { .footer-main { grid-template-columns: minmax(0, 1.35fr) minmax(0, .8fr) minmax(0, .8fr) minmax(0, 1.1fr); gap: 3rem; } }
@media (min-width: 768px) { .footer-legal { flex-direction: row; justify-content: space-between; align-items: center; } }

.action-bar { display: none; }
@media (max-width: 767px) {
  body { padding-bottom: calc(76px + env(safe-area-inset-bottom)); }
  .action-bar { position: fixed; left: 0; right: 0; bottom: 0; z-index: 50; display: grid; grid-template-columns: 1fr 1fr; gap: .5rem; padding: .625rem .75rem calc(.625rem + env(safe-area-inset-bottom)); background: rgb(255 255 255 / .96); border-top: 1px solid var(--line); box-shadow: 0 -8px 24px -12px rgb(11 31 58 / .25); backdrop-filter: blur(10px); transition: transform .3s var(--ease); }
  .action-bar .btn { min-height: 50px; padding-inline: .5rem; gap: .5rem; font-size: .9063rem; white-space: nowrap; }
  .action-bar .btn:hover { transform: none; }
  .action-bar .btn { min-width: 0; }
  .action-bar .btn span { overflow: hidden; text-overflow: ellipsis; }
  .action-bar.is-hidden { transform: translateY(110%); }
}
@media (max-width: 359px) { .action-bar .btn { font-size: .8125rem; } .action-bar .btn__lead { display: none; } }

.quote-dialog { width: min(820px, calc(100% - 24px)); max-height: calc(100dvh - 24px); margin: auto; padding: 0; border: 0; border-radius: var(--r-lg); background: var(--white); color: var(--body); box-shadow: var(--shadow-lg); overflow: auto; opacity: 0; transform: translateY(12px) scale(.98); transition: opacity .25s, transform .3s var(--ease), overlay .3s allow-discrete, display .3s allow-discrete; }
.quote-dialog[open] { opacity: 1; transform: none; }
@starting-style { .quote-dialog[open] { opacity: 0; transform: translateY(12px) scale(.98); } }
.quote-dialog::backdrop { background: rgb(3 12 26 / .7); backdrop-filter: blur(3px); }
.quote-dialog__panel { position: relative; padding: 2rem 1.25rem 1.5rem; }
.quote-dialog__close { position: absolute; top: .75rem; right: .75rem; display: grid; place-items: center; width: 44px; height: 44px; border: 0; border-radius: 50%; background: var(--cream); color: var(--ink); }
.quote-dialog__close .icon { width: 20px; height: 20px; }
.quote-dialog h2 { padding-right: 3rem; font-size: clamp(1.75rem, 1.4rem + 1.4vw, 2.375rem); }
.quote-dialog__intro { margin-top: .625rem; color: var(--muted); }
.quote-dialog__intro a { color: var(--ink); font-weight: 700; }
.quote-dialog__options { display: grid; gap: 1rem; margin-top: 1.5rem; }
.quote-option { display: grid; grid-template-columns: 112px 1fr; overflow: hidden; border: 1px solid var(--line); border-radius: var(--r); background: var(--white); color: var(--body); text-decoration: none; transition: border-color .2s, box-shadow .2s, transform .2s var(--ease); }
.quote-option:hover { border-color: var(--gold); box-shadow: var(--shadow); transform: translateY(-2px); }
.quote-option__media { background: var(--navy-800); }
.quote-option__media img { width: 100%; height: 100%; object-fit: cover; }
.quote-option__body { display: flex; flex-direction: column; gap: .25rem; padding: 1rem; }
.quote-option strong { color: var(--ink); font: 600 1.25rem/1.2 var(--serif); }
.quote-option small { font-size: .875rem; color: var(--muted); line-height: 1.45; }
.quote-option__cta { display: inline-flex; align-items: center; gap: .375rem; margin-top: .5rem; color: var(--gold-700); font-size: .875rem; font-weight: 800; }
.quote-option__cta .icon { width: 16px; height: 16px; }
@media (min-width: 700px) {
  .quote-dialog__panel { padding: 2.5rem; }
  .quote-dialog__options { grid-template-columns: 1fr 1fr; gap: 1.25rem; }
  .quote-option { grid-template-columns: 1fr; grid-template-rows: auto 1fr; }
  .quote-option__media { aspect-ratio: 16 / 9; }
  .quote-option__body { padding: 1.25rem 1.375rem 1.375rem; }
}

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

@media print {
  .site-header, .action-bar, .cta-band, .quote-dialog, .drawer { display: none !important; }
  body { padding: 0; color: #000; }
}

.next-steps__cta { display: flex; flex-wrap: wrap; justify-content: center; align-items: center; gap: 1rem 1.5rem; margin-top: 3.5rem; }
.next-steps__cta p { color: var(--muted); }

/* Mobile: get visitors to the form sooner. */
@media (max-width: 1023px) {
  .contact-layout .form-panel { order: -1; }
}
@media (max-width: 639px) {
  .checklist { padding: 1.25rem; }
  .checklist__title { margin-bottom: .75rem; font-size: 1.375rem; }
  .checklist li { grid-template-columns: 28px 1fr; gap: .75rem; padding: .625rem 0; align-items: center; }
  .checklist__num { width: 28px; height: 28px; font-size: .875rem; }
  .checklist__desc { display: none; }
  .checklist .fine-print { margin-top: .25rem; padding-top: .75rem; }
  .option { display: grid; grid-template-columns: 48px 1fr; gap: .25rem 1rem; padding: 1.25rem; }
  .option__icon { grid-row: span 3; width: 48px; height: 48px; margin: 0; border-radius: 12px; }
  .option__icon .icon { width: 26px; height: 26px; }
  .option__icon .icon--wide { width: 40px; height: 20px; }
  .option h3 { margin: 0; font-size: 1.1875rem; }
  .option p { margin-bottom: .625rem; font-size: .9063rem; }
  .option-grid { gap: .75rem; }
}

/* Multi-step quote flow: step 1 and step 2 share one application frame. */
.hero--flow .hero__title { max-width: 18ch; }
.quote-flow--step-2 .hero--flow .hero__title { max-width: none; font-size: clamp(2.125rem, 1.45rem + 2.6vw, 3.25rem); }
.form-panel--flow .form-panel__head { margin-bottom: 1.5rem; }
.form-panel--flow .form-panel__head h2 { font-size: clamp(1.75rem, 1.4rem + 1.3vw, 2.375rem); }
.form-notice { display: grid; grid-template-columns: 22px 1fr; gap: .75rem; align-items: start; margin-bottom: 1.25rem; padding: .875rem 1.125rem; border: 1px solid rgb(210 162 76 / .5); border-radius: var(--r); background: #fbf3e2; color: var(--ink); font-size: .9375rem; font-weight: 600; line-height: 1.5; --i2: var(--gold); --i2o: .45; }
.form-notice .icon { width: 22px; height: 22px; color: var(--gold-700); }
.flow-links { display: grid; gap: .375rem; margin-top: 1rem; padding-top: 1rem; border-top: 1px solid var(--line); color: var(--muted); font-size: .875rem; }
.flow-links a { color: var(--ink); font-weight: 700; text-decoration-color: var(--gold); }
@media (min-width: 768px) { .flow-links { grid-template-columns: 1fr auto; align-items: center; gap: 1.5rem; } .flow-links p:last-child { text-align: right; } }
.checklist__next { display: grid; grid-template-columns: 20px 1fr; gap: .625rem; margin-top: .5rem; padding: .875rem 1rem; border-radius: var(--r); background: rgb(255 255 255 / .06); color: rgb(255 255 255 / .82); font-size: .875rem; line-height: 1.5; --i2: var(--gold); --i2o: .4; }
.checklist__next .icon { width: 20px; height: 20px; margin-top: .05rem; color: var(--gold-400); }
.checklist--docs ul { display: grid; margin: 0 0 .5rem; padding: 0; list-style: none; }
.checklist--docs li { display: grid; grid-template-columns: 22px 1fr; gap: .75rem; align-items: center; padding: .6875rem 0; border-top: 1px solid rgb(255 255 255 / .12); color: var(--white); font-size: .9375rem; font-weight: 600; --i2: var(--gold); --i2o: 1; }
.checklist--docs li .icon { width: 22px; height: 22px; color: var(--gold-400); --i2o: .3; }
@media (max-width: 639px) {
  .checklist__next { font-size: .8125rem; }
  .checklist--docs li { padding: .5rem 0; font-size: .875rem; }
}
@media (max-width: 639px) {
  /* Step 2 on phones: keep the hero short so the stepper and uploads are reached quickly. */
  .quote-flow--step-2 .hero--flow .hero__title { font-size: 1.875rem; }
  .quote-flow--step-2 .hero--flow .hero__text { display: none; }
}
.quote-flow .application { padding-top: clamp(1.75rem, 1rem + 3vw, 4rem); }
