/* -------------------------
   DESIGN TOKENS & BASE
   ------------------------- */
:root {
  --color-deep-pine: #203a32;
  --color-warm-ivory: #fff8ef;
  --color-dark-ink: #202f29;
  --color-terracotta: #ac4028;
  --color-pale-sand: #e9b180;
  --color-white: #ffffff;
  --color-on-terracotta: #fff8ef;

  --font-body: "Helvetica Neue", Helvetica, Arial, sans-serif;

  --container-width: 1200px;
  --container-padding: 2rem;
  --spacing-unit: 1.5rem;
  --section-gap: 4rem;

  --type-scale-ratio: 1.125;
  --type-h1: 3rem; /* ~48px */
  --type-h2: 2.25rem; /* ~36px */
  --type-h3: 1.6875rem; /* ~27px */
  --type-h4: 1.5rem; /* ~24px */
  --type-body: 17px;
  --type-body-lg: 19px;
  --line-height-body: 1.65;

  --radius-card: 8px;
  --radius-form: 12px;

  --shadow-soft: 0 24px 40px rgba(32, 47, 41, 0.08);
  --shadow-subtle: 0 8px 24px rgba(32, 47, 41, 0.04);

  --border-thin: 1px solid rgba(32, 47, 41, 0.12);
}

* {
  box-sizing: border-box;
}

html {
  font-size: 100%;
  scroll-behavior: smooth;
}

body {
  margin: 0;
  padding: 0;
  font-family: var(--font-body);
  font-size: var(--type-body);
  line-height: var(--line-height-body);
  color: var(--color-dark-ink);
  background-color: var(--color-warm-ivory);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

/* -------------------------
   UTILITIES & ACCESSIBILITY
   ------------------------- */
body {
  min-height: 100vh;
}

.skip-link {
  position: absolute;
  top: -40px;
  left: 0;
  padding: 8px 12px;
  background: var(--color-deep-pine);
  color: var(--color-white);
  text-decoration: none;
  z-index: 10000;
}

.skip-link:focus {
  top: 0;
}

.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;
}

.hidden[hidden] {
  display: none !important;
}

button {
  font-family: inherit;
  font-weight: 600;
}

a {
  color: var(--color-terracotta);
}

a:focus-visible,
button:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible {
  outline: 3px solid var(--color-deep-pine);
  outline-offset: 2px;
}

::-moz-focus-inner {
  border: 0;
  padding: 0;
}

::-webkit-inner-spin-button,
::-webkit-outer-spin-button {
  -webkit-appearance: none;
  margin: 0;
}

/* -------------------------
   LAYOUT SYSTEM
   ------------------------- */
.wrap {
  max-width: var(--container-width);
  margin-left: auto;
  margin-right: auto;
  padding-left: var(--container-padding);
  padding-right: var(--container-padding);
}

@media (max-width: 480px) {
  .wrap {
    padding-left: 1rem;
    padding-right: 1rem;
  }
}

.wrap::after {
  content: "";
  display: table;
  clear: both;
}

.wrap-narrow {
  max-width: 720px;
}

.wrap-narrow p {
  max-width: 68ch;
  margin-left: auto;
  margin-right: auto;
}

/* -------------------------
   HEADER & NAV
   ------------------------- */
.preview-bar {
  background: var(--color-deep-pine);
  color: var(--color-white);
  padding: 6px 1rem;
  font-size: 0.75rem;
  text-align: center;
  border-bottom: 1px solid rgba(255,255,255,0.08);
}

.site-header {
  position: sticky;
  top: 0;
  z-index: 1000;
  background: var(--color-warm-ivory);
  border-bottom: var(--border-thin);
}

.header-inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  min-height: 72px;
}

.brand {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  font-weight: 700;
  font-size: 1.125rem;
  color: var(--color-dark-ink);
  text-decoration: none;
}

.brand img {
  display: block;
}

.brand strong {
  color: var(--color-deep-pine);
}

.menu-toggle {
  background: none;
  border: none;
  padding: 8px;
  display: none;
  color: var(--color-dark-ink);
  font-size: 1.5rem;
  line-height: 1;
}

#primary-nav {
  display: flex;
  align-items: center;
  gap: 20px;
}

#primary-nav a {
  text-decoration: none;
  color: var(--color-dark-ink);
  font-size: 0.9375rem;
  font-weight: 500;
}

#primary-nav a:hover {
  color: var(--color-terracotta);
}

#primary-nav .nav-cta {
  color: var(--color-terracotta);
  background: var(--color-warm-ivory);
  padding: 8px 16px;
  border: 1px solid var(--color-terracotta);
  border-radius: var(--radius-form);
  transition: all 0.2s ease;
}

#primary-nav .nav-cta:hover {
  background: var(--color-terracotta);
  color: var(--color-white);
  border-color: var(--color-terracotta);
}

/* -------------------------
   HERO
   ------------------------- */
.hero {
  position: relative;
  min-height: 600px;
  color: var(--color-warm-ivory);
  display: grid;
  grid-template-columns: 1fr;
  overflow: hidden;
}

.hero-image {
  position: absolute;
  inset: 0;
  object-fit: cover;
  width: 100%;
  height: 100%;
  z-index: 0;
  transition: transform 0.6s ease;
}

.hero-shade {
  position: absolute;
  inset: 0;
  background: linear-gradient(to right, rgba(32, 58, 50, 0.92), rgba(32, 58, 50, 0.65) 55%, rgba(255,248,239,0) 100%);
  z-index: 1;
}

.hero-inner {
  position: relative;
  z-index: 2;
  display: grid;
  grid-template-columns: 1fr;
  min-height: 600px;
}

.hero-copy {
  padding: 4rem 1rem 0 1rem;
  max-width: 680px;
  margin: 0 auto;
}

.hero-copy > .eyebrow {
  color: var(--color-warm-ivory);
  font-size: 0.875rem;
  font-weight: 600;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  margin-bottom: 1rem;
}

.hero-copy > h1 {
  color: var(--color-warm-ivory);
  font-size: 3.75rem; /* ~60px */
  font-weight: 700;
  line-height: 1.05;
  margin: 0 0 1.5rem 0;
  letter-spacing: -0.02em;
}

.hero-intro {
  color: var(--color-warm-ivory);
  font-size: var(--type-body-lg);
  line-height: var(--line-height-body);
  max-width: 34em;
  margin: 0 0 2rem 0;
}

.hero-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem;
  margin-top: 1.25rem;
}

.hero-tags span {
  font-size: 0.8125rem;
  padding: 0.5rem 0.75rem;
  background: rgba(255,255,255,0.12);
  border-radius: var(--radius-card);
  border: 1px solid rgba(255,255,255,0.1);
}

.hero-footnote {
  margin-top: 1.5rem;
  font-size: 0.75rem;
  opacity: 0.8;
}

/* -------------------------
   HERO WITH FORM
   ------------------------- */
.hero-with-form {
  grid-template-columns: 55% 1fr;
}

@media (max-width: 900px) {
  .hero-with-form {
    grid-template-columns: 1fr;
  }
}

.quote-form {
  padding-top: 28px;
  width: 376px;
  min-width: 360px;
  margin-left: auto;
  margin-right: 0;
  background: var(--color-warm-ivory);
  border-radius: var(--radius-form);
  box-shadow: var(--shadow-subtle);
  padding: 28px 28px 32px;
  color: var(--color-dark-ink);
  display: flex;
  flex-direction: column;
  gap: 16px;
}

@media (max-width: 900px) {
  .quote-form {
    width: auto;
    margin-top: 1.5rem;
    margin-left: 1rem;
    margin-right: 1rem;
    margin-bottom: 1.5rem;
  }
}

.quote-form fieldset {
  display: flex;
  flex-direction: column;
  gap: 16px;
}

.quote-form legend.sr-only {
  position: absolute;
}

.quote-form .field {
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.quote-form label {
  font-size: 0.875rem;
  font-weight: 600;
  color: var(--color-dark-ink);
}

.quote-form input,
.quote-form select,
.quote-form textarea {
  padding: 12px 14px;
  font-size: 0.9375rem;
  line-height: 1.5;
  background: var(--color-warm-ivory);
  border: 1px solid rgba(32, 47, 41, 0.25);
  border-radius: 8px;
  outline: none;
  transition: border-color 0.2s ease;
}

.quote-form select {
  cursor: pointer;
}

.quote-form input:focus,
.quote-form select:focus,
.quote-form textarea:focus {
  border-color: var(--color-terracotta);
}

.quote-form fieldset[hidden] {
  display: none !important;
}

.quote-form .step-hint,
.quote-form .form-status,
.quote-form .form-note {
  font-size: 0.75rem;
  line-height: 1.5;
  margin: 0;
}

.quote-form .step-hint {
  color: var(--color-dark-ink);
  opacity: 0.75;
}

.quote-form .form-note {
  margin-top: 1rem;
}

.quote-form .form-note strong {
  display: block;
  margin-bottom: 0.25rem;
}

.quote-form .form-progress {
  font-size: 0.75rem;
  font-weight: 600;
  color: var(--color-terracotta);
  margin-bottom: 0.5rem;
}

.quote-form .field-error {
  margin: 0;
  font-size: 0.8125rem;
  color: var(--color-terracotta);
  min-height: 1.1em;
}

.quote-form .button {
  background: var(--color-terracotta);
  color: var(--color-white);
  padding: 14px 20px;
  font-size: 0.9375rem;
  font-weight: 600;
  text-align: center;
  border: none;
  border-radius: 8px;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  transition: background-color 0.2s ease, opacity 0.2s ease;
}

.quote-form .button:disabled {
  opacity: 0.5;
  cursor: not-allowed;
}

.quote-form .button:not(:disabled):hover {
  background-color: #963722;
}

.quote-form .step-next,
.quote-form .step-back {
  align-self: flex-start;
}

.quote-form .step-back {
  background: transparent;
  color: var(--color-dark-ink);
  border: 1px solid rgba(32,47,41,0.25);
  padding: 12px 20px;
}

.quote-form .step-back:hover:not(:disabled) {
  background: rgba(233,177,128,0.15);
}

.quote-form details.notes {
  margin-top: 6px;
}

.quote-form details.notes summary {
  color: var(--color-terracotta);
  font-weight: 600;
  cursor: pointer;
  font-size: 0.875rem;
}

.quote-form details.notes textarea {
  margin-top: 10px;
  resize: vertical;
}

.quote-form p.form-status {
  margin-top: 0.75rem;
}

/* -------------------------
   BUTTONS & TAGS
   ------------------------- */
.button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 14px 24px;
  font-size: 0.9375rem;
  font-weight: 600;
  text-decoration: none;
  border-radius: 12px;
  transition: all 0.2s ease;
  cursor: pointer;
}

.button-primary {
  background: var(--color-terracotta);
  color: var(--color-white);
  border: none;
}

.button-primary:hover {
  background: #963722;
}

.button-secondary {
  background: var(--color-warm-ivory);
  color: var(--color-deep-pine);
  border: 1px solid var(--color-deep-pine);
}

.button-secondary:hover {
  background: #f7f2e6;
}

.eyebrow {
  font-size: 0.75rem;
  font-weight: 600;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--color-terracotta);
  margin-bottom: 0.75rem;
}

/* -------------------------
   BREADCRUMBS & TITLES
   ------------------------- */
.breadcrumbs {
  padding: 1rem 0 0;
}

.breadcrumbs a {
  text-decoration: none;
  color: var(--color-dark-ink);
  font-size: 0.875rem;
}

.breadcrumbs a:hover {
  color: var(--color-terracotta);
}

.breadcrumbs span[aria-hidden="true"] {
  margin: 0 0.5rem;
  opacity: 0.5;
}

/* -------------------------
   MAIN LAYOUT
   ------------------------- */
.page-copy {
  display: grid;
  grid-template-columns: 240px 1fr;
  gap: 3rem;
  padding: 3rem 0;
}

@media (max-width: 850px) {
  .page-copy {
    grid-template-columns: 1fr;
    gap: 2rem;
    padding: 2rem 0;
  }

  .on-page {
    display: none;
  }
}

.on-page {
  position: sticky;
  top: 72px;
  height: fit-content;
  padding-right: 2rem;
}

.on-page .eyebrow {
  margin-bottom: 1rem;
}

.on-page nav {
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
  margin-bottom: 1.5rem;
}

.on-page nav a {
  text-decoration: none;
  color: var(--color-dark-ink);
  font-size: 0.9375rem;
  transition: color 0.2s ease;
}

.on-page nav a:hover,
.on-page nav a:focus-visible {
  color: var(--color-terracotta);
}

.side-note {
  margin-top: 1.5rem;
  padding: 1rem;
  background: var(--color-warm-ivory);
  border-radius: var(--radius-card);
  border-left: 3px solid var(--color-terracotta);
}

.side-note h3 {
  font-size: 1rem;
  margin: 0 0 0.5rem 0;
}

.side-note .small-mark {
  font-size: 1.1rem;
  font-weight: 700;
  color: var(--color-terracotta);
}

/* -------------------------
   SECTIONS & CONTENT
   ------------------------- */
.answer {
  margin-bottom: 3rem;
}

.answer .section-heading {
  display: flex;
  align-items: baseline;
  gap: 1rem;
  margin-bottom: 1.5rem;
  border-bottom: 1px solid rgba(32, 47, 41, 0.08);
  padding-bottom: 0.5rem;
}

.answer .section-number {
  font-size: 1.25rem;
  font-weight: 700;
  color: var(--color-deep-pine);
  min-width: 40px;
}

.answer h2 {
  font-size: var(--type-h3);
  font-weight: 700;
  margin: 0;
  color: var(--color-dark-ink);
}

.answer .section-content {
  line-height: var(--line-height-body);
}

.answer .section-content > p {
  margin-bottom: 1.25rem;
}

.answer .section-content > p:last-child {
  margin-bottom: 0;
}

.answer .context-links {
  margin-top: 1.5rem;
}

.context-link {
  color: var(--color-terracotta);
  font-weight: 600;
  text-decoration: none;
}

.context-link:hover {
  text-decoration: underline;
}

/* -------------------------
   COMPONENTS: LISTS, STEPS, TABLES
   ------------------------- */
.items {
  margin-left: 1.5rem;
  margin-bottom: 1.5rem;
}

.items.steps {
  list-style: none;
  padding-left: 0;
  margin-left: 0;
}

.items.steps > li {
  position: relative;
  padding-left: 2rem;
  margin-bottom: 1.25rem;
}

.items.steps > li::before {
  content: counter(step-counter);
  counter-increment: step-counter;
  position: absolute;
  left: 0;
  top: 0;
  background: var(--color-deep-pine);
  color: var(--color-white);
  width: 28px;
  height: 28px;
  line-height: 28px;
  text-align: center;
  border-radius: 50%;
  font-size: 0.875rem;
  font-weight: 700;
}

.items li {
  margin-bottom: 0.75rem;
}

.items li strong {
  color: var(--color-dark-ink);
}

.table-wrap {
  overflow-x: auto;
}

.table-wrap table {
  width: 100%;
  border-collapse: collapse;
  min-width: 320px;
  font-size: 0.9375rem;
}

.table-wrap th,
.table-wrap td {
  padding: 0.75rem 0.5rem;
  border-bottom: 1px solid rgba(32, 47, 41, 0.12);
  text-align: left;
}

.table-wrap th {
  font-weight: 600;
  color: var(--color-dark-ink);
  white-space: nowrap;
}

/* -------------------------
   ROUTE CARDS (GRID)
   ------------------------- */
.route-section {
  margin: 4rem 0;
}

.route-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 2rem;
}

@media (max-width: 1024px) {
  .route-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (max-width: 700px) {
  .route-grid {
    grid-template-columns: 1fr;
  }
}

.route-card {
  display: block;
  text-decoration: none;
  color: inherit;
  border-radius: var(--radius-card);
  overflow: hidden;
  transition: transform 0.2s ease, box-shadow 0.2s ease;
  box-shadow: var(--shadow-subtle);
}

.route-card:hover {
  transform: translateY(-4px);
  box-shadow: var(--shadow-soft);
}

.route-card img {
  width: 100%;
  height: 180px;
  object-fit: cover;
  object-position: center;
  display: block;
}

.route-card-copy {
  padding: 1.25rem;
}

.route-card-copy .eyebrow {
  margin-bottom: 0.25rem;
}

.route-card-copy h3 {
  font-size: 1.375rem;
  font-weight: 700;
  margin: 0 0 0.5rem 0;
  line-height: 1.2;
}

.route-card-copy p {
  margin: 0;
  font-size: 0.9375rem;
  line-height: var(--line-height-body);
}

.route-card-copy .text-link {
  display: inline-flex;
  align-items: center;
  gap: 0.25rem;
  font-size: 0.9375rem;
  font-weight: 600;
  color: var(--color-terracotta);
}

/* -------------------------
   MAP SECTION
   ------------------------- */
.map-section {
  margin: 3rem 0;
}

.map-heading {
  margin-bottom: 1.25rem;
}

.map-heading .eyebrow {
  margin-bottom: 0.5rem;
}

.map-heading > div {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
}

.map-heading h2 {
  font-size: var(--type-h2);
  font-weight: 700;
  margin: 0.5rem 0 1rem 0;
}

.map-section iframe {
  width: 100%;
  height: 400px;
  border: 0;
  border-radius: var(--radius-card);
}

.map-caption {
  font-size: 0.8125rem;
  margin-top: 0.5rem;
}

.map-caption a {
  color: var(--color-terracotta);
  text-decoration: none;
}

/* -------------------------
   FAQ ACCORDION
   ------------------------- */
.faq {
  margin: 3rem 0;
}

.faq details {
  margin-bottom: 0.75rem;
}

.faq details summary {
  list-style: none;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 1rem 1.25rem;
  background: var(--color-warm-ivory);
  border-radius: var(--radius-form);
  border: 1px solid rgba(32, 47, 41, 0.08);
  font-weight: 600;
  color: var(--color-dark-ink);
}

.faq details[open] summary {
  border-bottom: 0;
  border-radius: var(--radius-form) var(--radius-form) 0 0;
}

.faq details summary::-webkit-details-marker {
  display: none;
}

.faq details summary::after {
  content: "▼";
  font-size: 0.75rem;
  font-weight: 700;
  transition: transform 0.2s ease;
}

.faq details[open] summary::after {
  transform: rotate(180deg);
}

.faq details p {
  padding: 0 1.25rem 1rem 1.25rem;
  margin: 0;
}

/* -------------------------
   BODY PHOTO CAPTION
   ------------------------- */
.body-photo {
  margin: 2.5rem 0 1.5rem;
}

.body-photo img {
  width: 100%;
  height: auto;
  border-radius: var(--radius-card);
  object-fit: cover;
}

.body-photo figcaption {
  font-size: 0.8125rem;
  text-align: center;
  margin-top: 0.75rem;
  color: var(--color-dark-ink);
  opacity: 0.75;
}

/* -------------------------
   BOTTOM ACTION
   ------------------------- */
.next-step {
  background: var(--color-deep-pine);
  color: var(--color-warm-ivory);
  padding: 3rem 1rem;
  text-align: center;
}

.next-step .wrap {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-direction: column;
  gap: 1.5rem;
}

@media (min-width: 768px) {
  .next-step .wrap {
    flex-direction: row;
    text-align: left;
  }
}

.next-step h2 {
  font-size: var(--type-h2);
  color: var(--color-warm-ivory);
  margin: 0;
  line-height: 1.15;
}

.next-step p {
  margin-bottom: 0;
}

.next-step .button {
  background: var(--color-pale-sand);
  color: var(--color-deep-pine);
}

.next-step .button:hover {
  background: #e0a872;
}

/* -------------------------
   VALUE STRIP
   ------------------------- */
.value-strip {
  padding: 2rem 0 1rem;
}

.value-strip > div {
  display: flex;
  align-items: center;
  gap: 1.5rem;
}

.value-strip span {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  font-size: 0.9375rem;
  font-weight: 600;
  color: var(--color-dark-ink);
}

.value-strip span:first-child {
  color: var(--color-terracotta);
  font-weight: 700;
}

/* -------------------------
   SOURCES DETAILS
   ------------------------- */
.sources {
  margin: 3rem 0;
}

.sources summary {
  list-style: none;
  cursor: pointer;
  display: flex;
  align-items: center;
  gap: 0.5rem;
  padding: 0.5rem 1rem;
  border-radius: var(--radius-card);
  font-weight: 600;
  color: var(--color-terracotta);
}

.sources summary::-webkit-details-marker {
  display: none;
}

.sources summary::after {
  content: "▼";
  font-size: 0.75rem;
  font-weight: 700;
}

.sources[open] summary::after {
  transform: rotate(180deg);
}

.sources ul {
  padding-left: 1.25rem;
  margin: 0.75rem 0 1rem;
}

.sources ul li {
  margin-bottom: 0.25rem;
}

.sources ul li a {
  color: var(--color-deep-pine);
}

.source-note {
  font-size: 0.75rem;
  margin-top: 0.75rem;
}

/* -------------------------
   FOOTER
   ------------------------- */
.site-footer {
  background: var(--color-dark-ink);
  color: var(--color-warm-ivory);
  padding: 3rem 0 1.5rem;
}

.footer-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 2rem;
}

@media (min-width: 768px) {
  .footer-grid {
    grid-template-columns: repeat(4, 1fr);
  }
}

.footer-grid > div h2 {
  font-size: 1rem;
  color: var(--color-pale-sand);
  margin: 0 0 1rem 0;
  font-weight: 600;
}

.footer-grid > div p {
  font-size: 0.875rem;
  margin: 0.5rem 0 0;
}

.footer-grid > div a {
  color: var(--color-warm-ivory);
  text-decoration: none;
  display: block;
  margin: 0.25rem 0;
}

.footer-grid > div a:hover {
  color: var(--color-pale-sand);
}

.footer-grid .nav-cta {
  display: block;
  margin: 0.5rem 0 0;
}

.footer-base {
  margin-top: 2.5rem;
  padding-top: 1.5rem;
  border-top: 1px solid rgba(255,255,255,0.08);
  text-align: center;
  font-size: 0.875rem;
  color: rgba(255,255,255,0.75);
}

/* -------------------------
   MOBILE ACTION & MENU
   ------------------------- */
.mobile-action {
  display: none;
  position: fixed;
  bottom: 24px;
  left: 24px;
  right: 24px;
  z-index: 1000;
  background: var(--color-terracotta);
  color: var(--color-white);
  padding: 16px 20px;
  font-weight: 600;
  border-radius: 12px;
  text-decoration: none;
  box-shadow: 0 12px 32px rgba(32, 47, 41, 0.25);
  transition: transform 0.3s ease;
}

@media (min-width: 900px) {
  .mobile-action {
    display: none !important;
  }
}

/* -------------------------
   RESPONSIVE: MOBILE
   ------------------------- */
@media (max-width: 760px) {
  .site-header {
    position: sticky;
    top: 0;
  }

  .header-inner {
    flex-wrap: wrap;
  }

  .brand {
    flex: 1;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
  }

  .menu-toggle {
    display: block;
  }

  #primary-nav {
    order: 2;
    width: 100%;
    flex-direction: column;
    margin-top: 1rem;
    display: none;
  }

  .menu-toggle[aria-expanded="true"] + #primary-nav {
    display: flex;
  }

  #primary-nav a {
    padding: 8px 0;
  }

  #primary-nav .nav-cta {
    background: rgba(255,255,255,0.08);
    color: var(--color-warm-ivory);
    border: 1px solid rgba(255,255,255,0.12);
    padding: 12px 16px;
    width: 100%;
  }

  .hero {
    min-height: 520px;
  }

  .hero-copy > h1 {
    font-size: 2.25rem; /* ~36px */
  }

  .hero-intro {
    font-size: var(--type-body);
    margin-bottom: 2.5rem;
  }

  .hero-image {
    object-fit: cover;
  }

  .hero-shade {
    background: linear-gradient(to right, rgba(32, 58, 50, 0.95), rgba(32, 58, 50, 0.75) 45%, rgba(255,248,239,0) 95%);
  }

  .quote-form {
    width: auto;
    padding: 24px 16px 32px;
  }

  .quote-form .button {
    width: 100%;
  }

  .quote-form .step-next,
  .quote-form .step-back {
    align-self: stretch;
  }

  .mobile-action {
    display: flex;
  }

  .next-step .wrap {
    flex-direction: column;
    text-align: center;
  }

  .next-step h2 {
    font-size: 1.75rem;
  }

  .site-footer {
    padding: 2.5rem 0 1rem;
  }

  .footer-grid {
    grid-template-columns: 1fr;
  }

  .footer-grid > div h2 {
    margin-top: 1.5rem;
  }
}

/* -------------------------
   SMOOTH SCROLL OFFSET
   ------------------------- */
html {
  scroll-padding-top: 80px;
}

.answer section[id] {
  scroll-margin-top: 80px;
}

/* -------------------------
   REDUCED MOTION
   ------------------------- */
@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }

  .mobile-action {
    display: none !important;
  }
}

/* -------------------------
   STICKY MOBILE ACTION LOGIC
   - Handled in JS via IntersectionObserver
   ------------------------- */

/* PM integration repairs: exact renderer structure, no inherited assumptions. */
[hidden]{display:none!important}img{max-width:100%}.wrap::after{display:none}h1,h2,h3,p{overflow-wrap:break-word}h2,h3{line-height:1.18}p{margin:0 0 1.15em}a,button{-webkit-tap-highlight-color:transparent}.brand>span{display:block;font-size:11px;letter-spacing:2px;line-height:1.5}.brand strong{display:block;font-size:19px;letter-spacing:1.2px}.brand img{flex:none}.header-inner{min-height:88px;gap:24px}.button{background:var(--color-terracotta);color:#fff;border:1px solid transparent;border-radius:6px;gap:20px;font-size:16px}.button:hover{background:#963722}.hero{display:block;min-height:0}.hero-with-form{display:block}.hero-inner{width:100%;min-height:690px;grid-template-columns:minmax(0,1fr)376px;align-items:start;gap:64px;padding-top:48px;padding-bottom:90px}.hero-copy{padding:12px 0 0;margin:0;max-width:620px}.hero-copy>h1{font-size:52px;line-height:1.06;letter-spacing:-1.9px}.hero-copy>.eyebrow{color:#f2c69e;font-size:12px;letter-spacing:1.6px}.hero-intro{font-size:18px;line-height:1.6;max-width:37em;margin-bottom:26px}.hero-shade{background:linear-gradient(180deg,rgba(14,31,25,.85),rgba(14,31,25,.58) 65%,rgba(14,31,25,.12)),linear-gradient(90deg,rgba(14,31,25,.15),transparent 65%)}.hero-image{object-position:center 60%}.hero-tags{gap:14px;margin-top:24px;max-width:470px}.hero-tags span{border:0;background:transparent;border-radius:0;padding:0;font-size:12px;color:#fff0df}.hero-tags span+span:before{content:'·';margin-right:14px;color:#e9b180}.hero-footnote{position:absolute;z-index:3;left:max(calc((100vw - 1136px)/2),32px);bottom:17px;margin:0;font-size:12px;color:#fff;opacity:1}.hero-editorial .hero-inner{display:block;min-height:410px;padding-top:48px;padding-bottom:68px}.hero-editorial .hero-copy{max-width:790px}.hero-editorial .hero-tags{display:none}.hero-editorial .hero-image{object-position:center 45%}.quote-form{width:100%;min-width:0;margin:0;gap:10px;padding:28px;box-shadow:0 16px 55px #0003}.quote-form h2{font-size:28px;line-height:1.1;margin:0}.quote-form .eyebrow{margin:0;font-size:10px;letter-spacing:1.4px}.form-intro{font-size:14px;line-height:1.5;margin:0}.quote-form .form-progress{margin:6px 0 3px;font-size:12px}.quote-form fieldset{border:0;padding:0;margin:0;min-width:0;gap:14px}.quote-form input,.quote-form select,.quote-form textarea{width:100%;min-height:48px;background:#fff;font-size:16px;border-radius:5px}.quote-form .field-error:empty{display:none}.quote-form .field-error{min-height:0}.quote-form .button{width:100%;padding:13px 16px;border-radius:5px}.quote-form .form-note{margin-top:3px;border-top:1px solid #203a3226;padding-top:12px;font-size:11px}.quote-form .form-note strong{display:inline}.quote-form .form-status:empty{display:none}.quote-form .form-status{font-size:14px;padding:12px;background:#e1ecdf;border-left:3px solid #203a32}.quote-form .step-back{border:0;padding:4px 0;text-align:left;font-size:13px}.form-note a{text-decoration:underline}.quote-form input:focus-visible,.quote-form select:focus-visible,.quote-form textarea:focus-visible{outline:2px solid #ac4028;outline-offset:2px}
.content-layout{display:grid;grid-template-columns:220px minmax(0,1fr);gap:72px;padding-top:68px;padding-bottom:30px;align-items:start}.page-copy{display:block;padding:0;min-width:0}.page-copy p{max-width:68ch}.on-page{top:112px;padding-right:0;font-size:14px}.on-page nav a{font-size:14px;line-height:1.45;padding-bottom:10px;border-bottom:1px solid #203a321a}.side-note{background:#eeeadd;padding:22px;margin-top:30px;font-size:14px}.side-note p{margin:10px 0}.section-heading{align-items:start!important;gap:16px!important;margin-bottom:22px!important;padding-bottom:18px!important}.answer{margin-bottom:55px;scroll-margin-top:115px}.answer h2{font-size:29px;letter-spacing:-.6px}.answer .section-number{font-size:13px;min-width:23px;padding-top:6px;color:#ac4028}.section-content{font-size:17px}.context-links{display:flex;gap:12px 24px;flex-wrap:wrap;border-top:1px solid #203a321a;padding-top:17px}.context-link{font-size:14px;line-height:1.45;text-decoration:underline;text-underline-offset:4px}.items{padding-left:22px;margin:0 0 22px}.items li>strong,.items li>span{display:block}.items li>strong{margin-bottom:5px}.items.steps{counter-reset:step-counter;margin:0}.items.steps>li{padding-left:44px;min-height:40px}.items.cards{padding:0;display:grid;grid-template-columns:1fr 1fr;gap:16px;list-style:none}.items.cards>li{padding:22px;background:#fff;border:1px solid #deddd2;border-radius:6px;margin:0}.table-wrap{max-width:100%;border:1px solid #d8dbcf;border-radius:6px;margin-top:15px}.table-wrap table{min-width:100%;font-size:15px}.table-wrap th{white-space:normal}.table-wrap th,.table-wrap td{padding:16px 18px;vertical-align:top;line-height:1.5}.table-wrap thead th{background:#203a32;color:#fff8ef}.table-wrap tbody tr:nth-child(even){background:#f2ede3}.table-wrap tbody th{width:28%}.body-photo{margin:36px 0}.body-photo img{max-height:430px;object-fit:cover}.body-photo figcaption{text-align:left;font-size:12px}.faq h2{font-size:29px}.faq details{border-bottom:1px solid #ccd3c7;margin:0}.faq details summary{background:transparent;border:0;border-radius:0;padding:22px 0;gap:20px;font-size:17px}.faq details p{padding:0 25px 24px 0;font-size:16px}.breadcrumbs{padding-top:20px;padding-bottom:0;font-size:13px;line-height:1.6}.breadcrumbs>a,.breadcrumbs>span{display:inline}.value-strip{display:grid;grid-template-columns:repeat(3,1fr);gap:28px;padding-top:26px;padding-bottom:26px;border-bottom:1px solid #d6d9ce;font-size:14px}.value-strip>div{gap:16px}.route-section,.sources{margin:64px auto}.section-title{margin-bottom:30px;max-width:650px}.section-title h2{font-size:36px;margin:0}.route-grid{gap:22px}.home-projects{grid-template-columns:1fr 1fr}.route-card{background:#fff;border:1px solid #dce0d4;box-shadow:none;display:flex;flex-direction:column}.route-card-copy{display:flex;flex-direction:column;flex:1;gap:12px;padding:23px}.route-card-copy h3{font-size:22px;margin:0}.route-card-copy p{font-size:15px;margin:0}.route-card-copy .text-link{margin-top:auto;padding-top:8px;font-size:13px}.route-card img{height:auto;aspect-ratio:3/2}.official-link{display:inline-block;margin-top:16px;font-weight:600;font-size:15px}.source-note{font-size:13px!important;line-height:1.6;padding:18px;background:#efe8dc;margin-top:20px}.map-heading{display:grid;grid-template-columns:1.5fr 1fr;gap:50px;align-items:end}.map-heading>p{font-size:16px}.map-heading h2{font-size:34px;letter-spacing:-.7px}.rr-real-map{margin:25px 0 0;border:1px solid #d3d9ce;background:#fff;padding:8px;border-radius:8px}.rr-real-map iframe{display:block;height:420px}.rr-real-map figcaption{font-size:12px;line-height:1.5;display:flex;justify-content:space-between;gap:24px;padding:15px 10px 8px}.rr-real-map figcaption a{white-space:nowrap}.next-step{display:flex;justify-content:space-between;align-items:center;text-align:left;gap:45px;margin:70px auto 30px;padding:45px}.next-step .eyebrow{color:#e9b180;margin:0 0 15px}.next-step p{font-size:16px;margin-top:16px}.next-step .button{flex:none}.sources summary{padding:0;font-size:14px}.sources ul,.sources p{font-size:13px}.footer-grid{grid-template-columns:2fr 1fr 1fr 1fr;gap:50px}.footer-grid>.brand{display:flex}.footer-grid>div>a.brand{display:inline-flex;margin-bottom:15px}.site-footer .brand strong,.site-footer .brand>span{color:#fff8ef}.footer-grid>div>p{max-width:30ch;line-height:1.6}.footer-grid>div>a:not(.brand){font-size:14px;line-height:1.6;margin-bottom:10px}.footer-base{text-align:left;font-size:12px}.missing-page{padding-top:60px}.mobile-action.is-concealed{visibility:hidden;opacity:0;pointer-events:none;transform:translateY(140%)}.mobile-action{align-items:center;justify-content:space-between;left:16px;right:16px;bottom:16px;border-radius:6px;padding:14px 20px}summary:focus-visible{outline:2px solid #ac4028;outline-offset:4px}.hero a:focus-visible,.site-footer a:focus-visible,.next-step a:focus-visible{outline-color:#e9b180}
@media(max-width:1100px) and (min-width:761px){.hero-inner{gap:30px;grid-template-columns:minmax(0,1fr)350px}.hero-copy>h1{font-size:44px}.content-layout{gap:38px;grid-template-columns:180px minmax(0,1fr)}.header-inner{gap:20px}#primary-nav{gap:14px}#primary-nav a{font-size:13px}.brand img{width:44px;height:44px}.brand strong{font-size:16px}.brand>span{font-size:10px}.footer-grid{gap:25px}.map-heading h2{font-size:28px}}
@media(max-width:760px){.wrap{padding-left:20px;padding-right:20px}.preview-bar{font-size:10px;padding:5px 10px}.header-inner{min-height:76px;gap:15px}.brand{gap:10px;flex:0 1 auto}.brand>span{font-size:10px;letter-spacing:1.5px}.brand strong{font-size:16px;letter-spacing:1px}.brand img{width:44px;height:44px}.menu-toggle{font-size:14px;min-width:60px;min-height:44px;padding:8px 0}.menu-toggle span{margin-left:8px}.header-inner{justify-content:space-between}.js #primary-nav{display:none}.js .menu-toggle[aria-expanded=true]+#primary-nav{display:flex}html:not(.js) #primary-nav{display:flex}#primary-nav{margin:0;padding:10px 0 22px;align-items:stretch;gap:4px}#primary-nav a{font-size:16px}#primary-nav .nav-cta{color:#ac4028;border-color:#ac4028;text-align:center}.hero,.hero-with-form{min-height:0;display:block;background:#eee8dd}.hero-inner{display:block;min-height:0;padding-top:0;padding-bottom:25px}.hero-copy{padding:32px 0 120px;max-width:none;margin:0;min-height:500px}.hero-copy>h1{font-size:38px;line-height:1.05;letter-spacing:-1.3px;max-width:15ch}.hero-copy>.eyebrow{font-size:10px;margin-top:0}.hero-intro{font-size:17px;line-height:1.55;margin-bottom:22px;max-width:34ch}.hero-tags{margin-top:22px;gap:10px;max-width:34ch}.hero-tags span{font-size:10px}.hero-tags span+span:before{margin-right:10px}.hero-image{height:550px;object-position:35% 60%}.hero-shade{height:550px;background:linear-gradient(180deg,rgba(14,31,25,.88),rgba(14,31,25,.68) 58%,rgba(14,31,25,.05))}.quote-form{position:relative;margin:0;width:100%;min-width:0;padding:24px}.hero-footnote{display:none}.hero-editorial{background:#203a32}.hero-editorial .hero-inner{padding-top:0;padding-bottom:0;min-height:0}.hero-editorial .hero-copy{min-height:370px;padding:35px 0 45px}.hero-editorial .hero-image,.hero-editorial .hero-shade{height:100%}.hero-editorial .hero-copy>h1{max-width:17ch;font-size:36px}.content-layout{display:block;padding-top:38px;padding-bottom:0}.on-page{display:none}.answer{margin-bottom:40px;scroll-margin-top:100px}.answer h2{font-size:25px}.answer .section-number{min-width:18px;font-size:11px}.section-heading{gap:12px!important}.section-content{font-size:16px}.page-copy{padding:0}.items.cards{grid-template-columns:1fr}.home-projects{grid-template-columns:1fr}.table-wrap table{font-size:14px;min-width:480px}.table-wrap th,.table-wrap td{padding:12px 14px}.value-strip{display:block;padding-top:18px;padding-bottom:18px}.value-strip>div{padding:6px 0;font-size:13px}.value-strip span{font-size:12px}.route-section{margin:42px auto}.section-title h2{font-size:29px}.route-grid{gap:20px;grid-template-columns:1fr}.route-card-copy{padding:22px}.context-link{font-size:14px}.map-heading{display:block}.map-heading h2{font-size:28px}.map-heading>p{font-size:15px}.rr-real-map iframe{height:330px}.rr-real-map figcaption{display:block;font-size:11px}.rr-real-map figcaption a{display:block;margin-top:12px;white-space:normal}.next-step{display:block;margin:45px 20px 20px;padding:28px}.next-step h2{font-size:29px}.next-step .button{margin-top:25px;width:100%}.next-step p{font-size:15px}.sources{margin:35px auto}.footer-grid{grid-template-columns:1fr 1fr;gap:30px}.footer-grid>div:first-child{grid-column:1/-1}.footer-grid>div h2{margin-top:0}.site-footer{padding:40px 0 70px}.footer-grid>div>a:not(.brand){font-size:14px}.faq h2{font-size:26px}.breadcrumbs{font-size:12px}.mobile-action{display:flex}.body-photo figcaption{font-size:11px}}
@media(min-width:761px){.mobile-action{display:none!important}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{transition:none!important;animation:none!important}}

/* Readable small-screen two-column tables; wider comparisons retain accessible scrolling. */
@media(max-width:760px){.table-wrap.cols-2 table{min-width:100%;table-layout:fixed}.table-wrap.cols-2 thead th:first-child,.table-wrap.cols-2 tbody th{width:34%}.table-wrap:not(.cols-2):before{content:"Swipe to compare all columns →";display:block;padding:10px 14px;font-size:12px;color:#4e6255;background:#ecefe6}.table-wrap.cols-2 th,.table-wrap.cols-2 td{overflow-wrap:anywhere}}

.boundary-diagram{margin:0 0 48px}.boundary-diagram img{display:block;width:100%;height:auto}.boundary-diagram figcaption{font-size:12px;line-height:1.6;margin-top:12px;color:#52604f}

.boundary-pair{display:grid;grid-template-columns:1fr 1fr;gap:16px}@media(max-width:600px){.boundary-pair{grid-template-columns:1fr}}

/* Mobile photo follows the actual copy height, including long city names and text zoom. */
@media(max-width:760px){.hero>.hero-image,.hero>.hero-shade{display:none}.hero-copy{margin-left:-20px;margin-right:-20px;padding-left:20px;padding-right:20px;background-image:linear-gradient(180deg,rgba(14,31,25,.88),rgba(14,31,25,.68) 58%,rgba(14,31,25,.08)),var(--hero-photo);background-size:cover;background-position:35% 60%}.hero-editorial .hero-copy{padding-left:20px;padding-right:20px}.hero-with-form .quote-form{margin-top:24px}}

.page-legal .hero{min-height:0;background:#203a32}.page-legal .hero-image,.page-legal .hero-shade,.page-legal .hero-action,.page-legal .hero-footnote{display:none}.page-legal .hero-inner{min-height:0;padding-top:40px;padding-bottom:40px}.page-legal .hero-copy{min-height:0;padding-top:0;padding-bottom:0;background-image:none}.page-legal .hero-intro{max-width:65ch}.page-legal .side-note{display:none}
