
:root {
  --ink: #292923;
  --paper: #fffaf2;
  --muted: #655e51;
  --line: #ded4c6;
  --accent: #9a4d24;
  --accent-light: #e8bd8b;
  --brand-serif: Georgia, Cambria, "Times New Roman", Times, serif;
  --brand-sans: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Open Sans", "Helvetica Neue", Arial, sans-serif;
  --max-width: 1240px;
  --wrap-pad: clamp(16px, 3vw, 32px);
  --type-base: 18px;
  --type-base-mobile: 17px;
  --lh: 1.6;
  --radius: 8px;
  --shadow: 0 2px 6px rgba(0,0,0,0.08);
  --focus-ring: 0 0 0 3px #579bca, 0 0 0 5px #fff;
}

*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body {
  margin: 0;
  font-family: var(--brand-sans);
  font-size: var(--type-base);
  line-height: var(--lh);
  color: var(--ink);
  background: var(--paper);
}

/* Utilities */
.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] { display: none !important; }

.text-link {
  color: var(--accent);
  font-weight: 600;
  text-decoration: underline;
}

.eyebrow {
  display: block;
  font-size: 0.85em;
  font-weight: 600;
  letter-spacing: 0.06em;
  color: var(--muted);
  text-transform: uppercase;
  margin-bottom: 0.4em;
}

.button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.5ch;
  padding: 0.85em 1.2em;
  background: var(--accent);
  color: #fff;
  border-radius: var(--radius);
  text-decoration: none;
  font-weight: 600;
  border: none;
  cursor: pointer;
  font-size: 1em;
  line-height: 1.2;
  transition: background 0.2s ease;
}
.button:hover { background: #0c4b58; }
.button:active { transform: translateY(1px); }
.button:disabled {
  opacity: 0.5;
  cursor: not-allowed;
}

.wrap {
  max-width: var(--max-width);
  margin: 0 auto;
  padding: 0 var(--wrap-pad);
}

/* Typography overrides */
h1, h2, h3, h4, h5, h6 {
  font-family: var(--brand-serif);
  margin: 1.2em 0 0.6em;
  line-height: 1.25;
  font-weight: 600;
  color: var(--ink);
}
h1 { font-size: clamp(2rem, 4.5vw, 4rem); }
h2 { font-size: clamp(1.6rem, 2.4vw, 2.4rem); }
h3 { font-size: clamp(1.25rem, 1.8vw, 1.6rem); }
h4 { font-size: 1.15rem; }

p { margin: 0 0 1em; max-width: 65ch; }

a {
  color: var(--accent);
  text-decoration: underline;
  text-underline-offset: 2px;
}
a:hover { color: #0c4b58; }
a:focus { outline: none; box-shadow: var(--focus-ring); border-radius: 4px; }

/* Skip link */
.skip-link {
  position: absolute;
  top: -40px; left: 0;
  background: var(--ink);
  color: #fff;
  padding: 0.75em 1.2em;
  z-index: 9999;
  text-decoration: none;
  font-weight: 600;
}
.skip-link:focus { top: 0; }

/* Preview bar */
.preview-bar {
  background: #000;
  color: #aaa;
  font-size: 0.85rem;
  text-align: center;
  padding: 0.4em 0;
  position: static;
  top: auto;
}

/* Header & Nav */
.site-header {
  background: var(--paper);
  border-bottom: 1px solid var(--line);
  position: static;
  top: auto;
}
.header-inner {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  min-height: 72px;
}

.brand {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  text-decoration: none;
  color: var(--ink);
}
.brand img { width: 52px; height: 52px; }
.brand span {
  font-family: var(--brand-serif);
  font-size: 1.25rem;
  font-weight: 700;
  line-height: 1.1;
  letter-spacing: -0.02em;
}
.brand strong {
  display: block;
  font-size: 0.95em;
  line-height: 1;
}

.menu-toggle {
  background: none;
  border: none;
  font-size: 1.25rem;
  color: var(--ink);
  padding: 0.5rem;
  cursor: pointer;
}
.menu-toggle:focus { outline: none; box-shadow: var(--focus-ring); border-radius: 8px; }

#primary-nav {
  display: flex;
  flex-wrap: wrap;
  gap: 1.25rem;
  align-items: center;
  font-weight: 500;
}
#primary-nav a {
  text-decoration: none;
  color: var(--ink);
  position: relative;
}
#primary-nav a::after {
  content: "";
  position: absolute;
  left: 0; bottom: -2px;
  width: 0; height: 2px;
  background: var(--accent);
  transition: width 0.2s ease;
}
#primary-nav a:hover::after { width: 100%; }

/* JS: Desktop always visible, Mobile conditional */
@media (min-width: 761px) {
  #primary-nav {
    display: flex !important;
  }
  .menu-toggle { display: none; }
}
@media (max-width: 760px) {
  /* JS off: nav always visible */
  #primary-nav {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 1rem;
    width: 100%;
    padding: 1rem 0;
  }
  /* JS on: menu-toggle controls visibility with sibling selector */
  .js .menu-toggle[aria-expanded="true"] + #primary-nav {
    display: flex;
  }
  .js .menu-toggle[aria-expanded="false"] + #primary-nav {
    display: none;
  }
  .js #primary-nav {
    display: none;
  }

}

.nav-cta {
  margin-left: auto;
  padding: 0.65em 1em;
  background: var(--paper);
  border: 2px solid var(--accent);
  color: var(--accent);
  border-radius: var(--radius);
  text-decoration: none;
  font-weight: 600;
  white-space: nowrap;
}
.nav-cta:hover { background: var(--accent); color: #fff; }

/* Hero */
.hero {
  position: relative;
  color: #fff;
  overflow: hidden;
  isolation: isolate;
}
.hero-image {
  position: absolute;
  inset: 0;
  width: 100%; height: 100%;
  object-fit: cover;
  object-position: 35% 60%;
  z-index: 0;
}
.hero-shade {
  position: absolute;
  inset: 0;
  background: linear-gradient(90deg, rgba(16,25,20,.68), rgba(16,25,20,.15)), linear-gradient(180deg,rgba(16,25,20,.65),rgba(16,25,20,.3)55%,transparent 85%);
  z-index: 1;
}
.hero-inner {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 360px;
  min-height: 720px;
  padding-top: 56px;
  padding-bottom: 80px;
  align-items: center;
  gap: clamp(24px, 4vw, 64px);
  position: relative;
  z-index: 2;
}
.hero-copy {
  padding: 0;
}
.hero-copy p.eyebrow {
  margin-top: 0;
  opacity: 0.9;
  color: var(--accent-light);
}
.hero-copy h1 {
  color: #fff;
  margin-top: 0.3em;
  max-width: 17ch;
  font-size: clamp(2.625rem, 4.5vw, 4rem);
}
.hero-intro {
  font-size: clamp(1rem, 1.4vw, 1.2rem);
  max-width: 46ch;
  margin-bottom: 1.4em;
  line-height: 1.6;
}
.hero-action { margin-top: 1em; }
.hero-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 0.6em;
  margin-top: 1.2em;
}
.hero-tags span {
  background: rgba(0,0,0,0.35);
  padding: 0.4em 0.75em;
  border-radius: 999px;
  font-size: 0.85rem;
  font-weight: 500;
}
.hero-footnote {
  position: absolute;
  bottom: 1rem;
  font-size: 0.85rem;
  opacity: 0.7;
  right: var(--wrap-pad);
  text-align: right;
  z-index: 2;
}

/* Desktop: editorial-only hero */
.hero-editorial .hero-inner {
  min-height: 430px;
  grid-template-columns: 1fr;
}
.hero-editorial .hero-copy h1 { font-size: clamp(2rem, 3.5vw, 3.6rem); }

/* Hero: Mobile */
@media (max-width: 760px) {
  .hero-inner {
    grid-template-columns: 1fr;
    min-height: auto;
    gap: 24px;
    padding-bottom: 24px;
  }
  .hero-copy {
    order: 1;
    min-height: 540px;
    padding-top: clamp(24px, 6vh, 64px);
    padding-bottom: 0;
  }
  .quote-form {
    order: 2;
    margin-top: 0;
    background: #fff;
    border-radius: var(--radius);
    box-shadow: var(--shadow);
  }
  .hero-footnote {
    position: static;
    margin-top: 1em;
    text-align: left;
  }
}

/* Quote Form */
.quote-form {
  background: #fff;
  padding: 1.5rem;
  border-radius: var(--radius);
  box-shadow: var(--shadow);
  margin-top: 0;
  color: var(--ink);
  font-size: var(--type-base);
  line-height: var(--lh);
}
.quote-form fieldset {
  border: none;
  padding: 0;
  margin: 0;
}
.quote-form fieldset[hidden] { display: none !important; }
.quote-form fieldset:disabled {
  opacity: 0.6;
}
.quote-form .field {
  margin-bottom: 1rem;
}
.quote-form label {
  display: block;
  font-weight: 600;
  margin-bottom: 0.35em;
  font-size: 0.95rem;
}
.quote-form input, .quote-form select, .quote-form textarea {
  width: 100%;
  padding: 0.75em 0.9em;
  border: 1px solid var(--line);
  border-radius: 6px;
  background: #fff;
  font-size: 1rem;
  color: var(--ink);
  font-family: var(--brand-sans);
  transition: border-color 0.2s, box-shadow 0.2s;
}
.quote-form input:focus, .quote-form select:focus, .quote-form textarea:focus {
  outline: none;
  border-color: var(--accent);
  box-shadow: 0 0 0 3px rgba(154,77,36,0.15);
}
.quote-form input[aria-invalid="true"],
.quote-form select[aria-invalid="true"] {
  border-color: #b91c1c;
  background: #fff8f8;
}
.field-error {
  color: #b91c1c;
  font-size: 0.9rem;
  margin-top: 0.25em;
  min-height: 0;
}
.quote-form .button {
  width: 100%;
}
.step-hint {
  font-size: 0.9rem;
  color: var(--muted);
  margin: 0.5em 0 0;
  font-style: italic;
}
.form-progress {
  font-size: 0.9rem;
  margin-bottom: 1rem;
}
.form-status {
  padding: 0.6em 0;
  margin: 1em 0 0;
  font-weight: 600;
  min-height: 0;
}
.form-status:empty { display: none; }
.form-note {
  font-size: 0.85rem;
  color: var(--muted);
  margin-top: 1.2em;
}
.form-note a {
  color: inherit;
  text-decoration: underline;
}

/* Forms: Reduced motion */
@media (prefers-reduced-motion: reduce) {
  .quote-form input, .quote-form select, .quote-form textarea {
    transition: none;
  }
}

/* On-page Sidebar */
.on-page {
  background: #fff;
  border-radius: var(--radius);
  padding: 1.25rem;
  box-shadow: var(--shadow);
  font-size: 0.95rem;
  align-self: start;
}
.on-page nav {
  display: flex;
  flex-direction: column;
  gap: 0.5em;
}
.on-page nav a {
  text-decoration: none;
  color: var(--ink);
  padding: 0.35em 0;
}
.on-page nav a:hover { color: var(--accent); }

/* Page Layout */
.content-layout {
  display: grid;
  grid-template-columns: 220px minmax(0, 1fr);
  gap: clamp(32px, 6vw, 64px);
  padding-top: 64px;
  padding-bottom: 64px;
}

.page-copy {
  max-width: 65ch;
}

.answer { scroll-margin-top: 24px; }
.section-heading {
  display: flex;
  align-items: center;
  gap: 0.75em;
  margin-bottom: 0.8em;
}
.section-number {
  font-family: var(--brand-serif);
  font-size: 1.75rem;
  color: var(--accent-light);
  font-weight: 700;
  line-height: 1;
}

/* Lists & Steps */
ul.items, ol.items {
  list-style: none;
  padding: 0;
  margin: 0 0 1.2em;
  display: grid;
  gap: 0.75em;
}
.items li {
  padding-left: 1.5em;
  position: relative;
}
ul.items li::before {
  content: "•";
  position: absolute;
  left: 0.2em;
  color: var(--accent);
  font-weight: bold;
  font-size: 1.2em;
}
ol.steps { counter-reset: step; }
ol.steps li {
  counter-increment: step;
}
ol.steps li::before {
  content: counter(step);
  position: absolute;
  left: 0;
  font-weight: 600;
  color: var(--accent);
}

/* Tables */
.table-wrap {
  width: 100%;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  margin: 1.2em 0;
}
.table-wrap table {
  width: 100%;
  min-width: 480px;
  border-collapse: collapse;
  font-size: 0.95rem;
}
.table-wrap th, .table-wrap td {
  padding: 0.75em 1em;
  text-align: left;
  border-bottom: 1px solid var(--line);
}
.table-wrap th {
  background: var(--paper);
  font-weight: 700;
}

/* Body Photo */
.body-photo {
  margin: 2.5em 0;
  text-align: center;
}
.body-photo img {
  max-width: 100%;
  height: auto;
  border-radius: var(--radius);
}
.body-photo figcaption {
  margin-top: 0.6em;
  font-size: 0.9rem;
  color: var(--muted);
}

/* FAQ */
.faq { margin-top: 3em; }
.faq details {
  border-bottom: 1px solid var(--line);
  padding: 0.8em 0;
}
.faq summary {
  cursor: pointer;
  font-weight: 600;
  font-size: 1.05rem;
  padding-left: 1em;
  position: relative;
}
.faq summary::-webkit-details-marker { display: none; }
.faq summary::after {
  content: "+";
  position: absolute;
  left: 0;
  font-size: 1.2em;
}
.faq details[open] summary::after { content: "−"; }

/* Route Grid & Cards */
.route-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: clamp(16px, 3vw, 24px);
  margin-top: 1.8em;
}
@media (min-width: 700px) {
  .route-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (min-width: 1100px) {
  .route-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 699px) {
  .route-grid { grid-template-columns: 1fr; }
}

.route-card {
  display: flex;
  flex-direction: column;
  overflow: hidden;
  border-radius: var(--radius);
  text-decoration: none;
  color: inherit;
  background: #fff;
  box-shadow: var(--shadow);
  transition: transform 0.2s, box-shadow 0.2s;
}
.route-card:hover {
  transform: translateY(-2px);
  box-shadow: 0 6px 18px rgba(0,0,0,0.12);
}
.route-card img {
  height: 220px;
  object-fit: cover;
  width: 100%;
}
.route-card-copy {
  padding: 1em;
  flex-grow: 1;
  display: flex;
  flex-direction: column;
}
.route-card h3 {
  margin-top: 0;
  font-size: 1.15rem;
}
.route-card p {
  margin-top: 0.4em;
  color: var(--muted);
  font-size: 0.95rem;
  line-height: 1.5;
}
.text-link {
  margin-top: auto;
  align-self: flex-start;
}

/* Home-Projects (full-width strip) */
.home-projects {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16px;
  margin: 2em 0 3em;
}
@media (min-width: 1100px) {
  .home-projects {
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 24px;
  }
}
@media (max-width: 1099px) {
  .home-projects { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 599px) {
  .home-projects { grid-template-columns: 1fr; }
}
.home-projects .route-card {
  background: var(--paper);
  box-shadow: none;
}
.home-projects .route-card img {
  height: 180px;
}

/* Map Section */
.map-section {
  margin: 2em 0 3em;
  background: #fff;
  border-radius: var(--radius);
  overflow: hidden;
}
.map-heading {
  display: grid;
  grid-template-columns: 1fr 1fr;
  align-items: flex-end;
  justify-content: space-between;
  padding: 1.5rem var(--wrap-pad);
  background: #e8f2f7;
  border-bottom: 1px solid var(--line);
}
.map-heading h2 { margin: 0; }
.rr-real-map {
  margin: 0;
  display: block;
  width: 100%;
}
.map-placeholder {
  padding: 24px;
  text-align: center;
}
.map-placeholder h3 {
  margin-top: 0.6em;
  font-size: 1.25rem;
}
.map-placeholder button {
  margin-top: 0.8em;
}
.map-privacy {
  margin-top: 0.6em;
  font-size: 0.85rem;
  color: var(--muted);
}
.rr-real-map figcaption {
  padding: 1rem var(--wrap-pad) 1.2rem;
  display: flex;
  flex-wrap: wrap;
  gap: 0.75em 1.5em;
  align-items: center;
  font-size: 0.9rem;
  color: var(--muted);
  border-top: 1px solid var(--line);
}
.rr-real-map figcaption a {
  text-decoration: none;
  font-weight: 600;
}

/* Next Step / Sticky Section */
.next-step {
  background: var(--paper);
  padding: 2rem var(--wrap-pad) 3rem;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 2rem;
  flex-wrap: wrap;
}
.next-step h2 {
  margin-top: 0;
}
.next-step a.button {
  flex-shrink: 0;
}

/* Value Strip (Home) */
.value-strip {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1rem;
  padding: 1.25rem var(--wrap-pad);
  background: #fff;
  border-radius: var(--radius);
  text-align: center;
  margin: 2.5em auto 0;
}
.value-strip div {
  display: flex;
  flex-direction: column;
  align-items: center;
}
.value-strip span {
  font-family: var(--brand-serif);
  font-size: 1.8rem;
  color: var(--accent);
  margin-bottom: 0.4em;
}

/* Context Links */
.context-links {
  margin-top: 1.8em;
  padding-top: 1em;
  border-top: 1px solid var(--line);
}
.context-link {
  display: inline-block;
  margin-right: 1em;
  font-weight: 600;
}

/* Sources */
.sources {
  margin: 2.5em auto 1em;
}
.sources summary {
  font-weight: 600;
  cursor: pointer;
}
.sources ul {
  list-style: none;
  padding-left: 1.2em;
  margin-top: 0.5em;
}
.sources li { margin-bottom: 0.5em; }
.source-note {
  font-size: 0.85rem;
  margin-top: 0.8em;
}

/* Footer */
.site-footer {
  background: #132b42;
  color: #ccc;
  padding: 2.5rem var(--wrap-pad) 1.5rem;
}
.footer-grid {
  display: grid;
  grid-template-columns: 1.2fr repeat(3, 1fr);
  gap: 2rem 2.5rem;
}
.footer-grid h2 {
  color: #fff;
  margin-top: 0;
  font-size: 1rem;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}
.footer-grid a {
  color: #ccc;
  text-decoration: none;
  margin-bottom: 0.35em;
  display: block;
}
.footer-grid a:hover { color: #fff; }
.footer-base {
  margin-top: 2.5rem;
  padding-top: 1.5rem;
  border-top: 1px solid #26425a;
  font-size: 0.85rem;
  text-align: center;
}

/* Mobile Action (Sticky CTA) */
.mobile-action {
  position: fixed;
  left: 0; right: 0;
  bottom: 0;
  padding: 1rem;
  background: var(--accent);
  color: #fff;
  font-weight: 700;
  text-align: center;
  text-decoration: none;
  z-index: 800;
  border-top-left-radius: 12px;
  border-top-right-radius: 12px;
  transform: translateY(0);
  transition: opacity 0.3s ease, transform 0.3s ease;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.75ch;
}
@media (min-width: 761px) {
  .mobile-action { display: none !important; visibility: hidden; }
}

/* 404 Page Style */
.page-404 .page-copy {
  text-align: center;
}
.page-404 h1 {
  font-size: clamp(2rem, 6vw, 4.8rem);
  margin-bottom: 0;
  line-height: 1.1;
}
.page-404 .eyebrow { margin-top: 0; }

/* Legal pages (compact, readable) */
.page-legal .page-copy {
  font-size: 0.95rem;
}
.page-legal h1, .page-legal h2 {
  margin-top: 2em;
}
.page-legal h2 { margin-top: 2.5em; }
.page-legal p { margin: 0 0 1.2em; }

/* 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;
  }
}

/* Focus Visibility */
a:focus, button:focus, input:focus, select:focus, textarea:focus, summary:focus {
  outline: 2px solid var(--ink);
  outline-offset: 2px;
}

/* Responsive adjustments */
@media (max-width: 760px) {
  .content-layout {
    grid-template-columns: 1fr;
    padding-top: 48px;
    padding-bottom: 48px;
  }
  .on-page { display: none; }
  .next-step {
    flex-direction: column;
    text-align: center;
  }
  .next-step a.button {
    width: 100%;
    padding: 1em 0;
  }
  .footer-grid {
    grid-template-columns: 1fr 1fr;
  }
  .footer-grid > div:first-child { grid-column: span 2; }
}
@media (max-width: 390px) {
  .value-strip { grid-template-columns: 1fr; }
}

/* Source-based classes from renderer */
.official-link {
  color: var(--accent);
  font-weight: 600;
  text-decoration: none;
}
.official-link:hover { text-decoration: underline; }

/* Details summary arrow (no icons) */
details summary {
  cursor: pointer;
}
details summary::marker {
  content: "» ";
  color: var(--accent);
}

/* ItemText cards */
.items li strong { font-weight: 700; }
.items li strong + span { display: block; margin-top: 0.25em; color: var(--ink); }

/* Side note */
.side-note { margin-top: 1.25rem; padding-top: 1rem; border-top: 1px solid var(--line); }
.side-note h3 { font-size: 0.95rem; margin-top: 0; }
.side-note .small-mark { display: inline-block; font-size: 1.1em; margin-right: 0.4em; }

/* Form step-back button */
.step-back {
  display: inline-block;
  margin-top: 0.75rem;
  color: var(--muted);
  background: none;
  border: none;
  font-size: 0.9rem;
  cursor: pointer;
  text-decoration: underline;
}
.step-back:focus { outline: 2px solid var(--ink); outline-offset: 2px; }

/* Anchor scrolling */
section.answer { scroll-margin-top: 24px; }

/* Route section */
.route-section { margin-top: 2.5em; }
.route-section .section-title { margin-bottom: 1rem; }

/* Body photo */
.body-photo { margin-top: 3em; margin-bottom: 2em; }

/* Card spacing in home */
.home-projects .route-card { margin-bottom: 0; }

/* Form notes */
.notes { margin-top: 1rem; }
.notes summary { font-weight: 600; cursor: pointer; }
.notes summary::marker { content: "▶ "; color: var(--accent); }
.notes details[open] summary::marker { content: "▼ "; }

/* Map placeholder height for form overlay */
.map-placeholder { min-height: 300px; }

/* Iframe and map container */
.map-section iframe {
  display: block;
  width: 100%;
  height: 420px;
}

@media (max-width: 760px) {
  .map-section iframe { height: 320px; }
}

/* Responsive nav adjustments below 1000px */
@media (max-width: 999px) {
  .header-inner { gap: 0.5rem; }
  #primary-nav { gap: 0.75rem; font-size: 0.95rem; }
}

/* Home answer spacing */
.answer { margin-bottom: 3em; }
.page-home .answer:nth-child(2n) .section-content { background: #e7f0f5; padding: 28px; border-radius: var(--radius); }
.answer:last-child { margin-bottom: 0; }

/* Home layout overrides */
.page-home .content-layout { grid-template-columns: 1fr; }
.page-home .on-page { display: none; }
.page-home .page-copy { max-width: none; }
.page-home .route-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
@media (min-width: 1100px) { .page-home .route-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
@media (max-width: 1099px) { .page-home .route-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 599px) { .page-home .route-grid { grid-template-columns: 1fr; } }


.header-inner>*,.hero-inner>*,.content-layout>*,.footer-grid>*,.map-heading>*,.route-grid>*{min-width:0}
.hero-copy .eyebrow{color:#dbe7f0}.quote-form h2{font-size:28px;line-height:1.15;margin:8px 0 12px}.quote-form .eyebrow{color:var(--accent);font-size:12px}.form-intro{font-size:16px;margin-bottom:16px}.form-progress{color:var(--muted);font-size:13px}.field-error:empty{display:none}.form-note{margin-bottom:0}.form-status{font-size:15px}.quote-form .step-back{min-height:44px}.quote-form fieldset{min-width:0}
.hero-action:hover,.button:hover,.mobile-action:hover{color:#fff}.hero-editorial .hero-copy{max-width:800px}.hero-editorial .hero-copy h1{max-width:24ch}.hero-editorial .hero-tags{display:none}.hero-editorial .hero-footnote{display:none}
.section-heading h2{margin:0}.section-heading{align-items:flex-start;margin-bottom:24px}.section-number{font-size:22px;color:#2f6175;padding-top:5px}.section-content>p{max-width:65ch}.breadcrumbs{padding-top:24px;display:flex;flex-wrap:wrap;gap:10px;font-size:14px}.side-note p{font-size:14px}.side-note h3{line-height:1.4}.source-note{color:var(--muted)}
.items.cards{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.items.cards li{background:#e7f0f5;border:1px solid var(--line);border-radius:8px;padding:22px}.items.cards li:before{content:none}.items.steps li{background:#edf4f8;border-left:3px solid var(--accent);padding:18px 20px 18px 48px}.items.steps li:before{left:20px;top:18px}.page-home .answer{margin-bottom:72px}.page-home .body-photo{max-width:900px;margin-inline:auto}.map-heading{gap:40px}.map-placeholder p{margin-inline:auto}.map-placeholder{display:flex;flex-direction:column;align-items:center;justify-content:center}.map-symbol{font-size:32px;color:var(--accent)}.map-section iframe{max-width:100%;border:0}.official-link{display:block;margin:12px 0}.footer-grid .brand{display:flex;color:#ffffff;margin-bottom:20px}.footer-grid .brand strong{color:#ffffff}.footer-grid p{font-size:15px}.mobile-action.is-concealed{opacity:0;visibility:hidden;pointer-events:none;transform:translateY(100%)}.missing-page{padding-top:80px;padding-bottom:80px}.missing-page h1{max-width:20ch}
@media(min-width:761px) and (max-width:1000px){.hero-inner{grid-template-columns:minmax(0,1fr) 330px;gap:30px}.hero-copy h1{font-size:42px}.header-inner{padding-block:12px}.brand span{font-size:18px}}
@media(max-width:760px){body{font-size:17px;padding-bottom:64px}.hero{background:var(--paper)}.hero-image,.hero-shade{height:660px;bottom:auto}.hero-image{object-position:30% 60%}.hero-inner{padding-top:0;padding-bottom:32px;gap:0}.hero-copy{min-height:620px;padding:32px 4px 70px}.hero-copy h1{font-size:42px;line-height:1.12;max-width:16ch}.hero-intro{font-size:17px;line-height:1.6}.hero-action{margin-top:0}.hero-tags{gap:6px}.hero-tags span{font-size:12px}.quote-form{margin:0;color:var(--ink);padding:24px}.hero-footnote{display:none}.hero-editorial .hero-copy{min-height:440px;padding-bottom:48px}.hero-editorial .hero-inner{min-height:440px;padding-bottom:0}.hero-editorial .hero-image,.hero-editorial .hero-shade{height:100%}.header-inner{gap:8px;padding-block:12px}.menu-toggle{margin-left:auto;font-size:17px}.brand{gap:8px}.brand span{font-size:18px}.brand img{width:42px;height:42px}.nav-cta{margin-left:0}#primary-nav{flex-basis:100%}.map-heading{grid-template-columns:1fr;gap:20px}.items.cards{grid-template-columns:1fr}.page-home .answer{margin-bottom:48px}.value-strip{grid-template-columns:1fr;margin-top:0;border-radius:0;text-align:left}.value-strip div{flex-direction:row;gap:16px;align-items:center}.value-strip span{font-size:22px;margin:0}.footer-grid{gap:28px}.footer-grid a{font-size:15px}.section-number{font-size:18px}.section-heading{gap:12px}.page-home .answer:nth-child(2n) .section-content{padding:20px}.next-step{padding-top:40px}.sources{padding-bottom:24px}.content-layout{padding-top:40px}.table-wrap.cols-2 table{min-width:340px}}
@media(max-width:350px){.hero-copy h1{font-size:36px}.brand span{font-size:16px}.menu-toggle{padding:6px}.hero-copy{min-height:650px}.hero-image,.hero-shade{height:690px}.footer-grid{grid-template-columns:1fr}.footer-grid>div:first-child{grid-column:auto}}

@media(min-width:1000px){.page-home #price .section-content,.page-home #local .section-content{display:grid;grid-template-columns:1fr 1fr;gap:20px 48px}.page-home #price .context-links,.page-home #local .context-links{grid-column:1/-1;margin-top:0}.page-home #steps .items.steps{grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.page-home #steps .items.steps li{padding:24px 22px 24px 48px}}
.table-hint{display:none}@media(max-width:760px){.table-hint{display:block;font-size:12px;color:var(--muted);margin-bottom:8px}}

.planning-diagram{margin:0 0 44px}.planning-diagram img{width:100%;height:auto;border-radius:12px}.planning-diagram figcaption{font-size:14px;color:var(--muted);margin-top:12px;line-height:1.5}@media(max-width:600px){.planning-diagram{overflow-x:auto;padding-bottom:8px}.planning-diagram img{min-width:620px}.planning-diagram figcaption{min-width:0}}


.legal-header{padding-block:56px 32px}.legal-header h1{font-size:clamp(32px,4vw,52px);line-height:1.15;max-width:850px;margin:12px 0 20px}.legal-header>p:last-child{max-width:720px;font-size:18px;line-height:1.7}.page-legal .side-note{display:none}.page-legal .content-layout{padding-top:24px}.diagram-hint{display:none}.planning-diagram:focus-visible{outline:3px solid var(--accent);outline-offset:4px}@media(max-width:600px){.diagram-hint{display:block;font-size:14px;font-weight:700;color:var(--accent);margin:0 0 10px}.legal-header{padding-block:32px 12px}.page-legal{padding-bottom:0}}


:root {
  --ink: #132b42;
  --paper: #f4f8fb;
  --muted: #4d6c8a;
  --line: #dbe7f0;
  --accent: #12677a;
  --accent-light: #8fd0db;
  --brand-serif: Georgia, Cambria, "Times New Roman", Times, serif;
  --brand-sans: -apple-system, BlinkMacSystemFont, "Segoe UI", Arial, sans-serif;
  --radius: 14px;
}

/* Typography overrides */
h1, h2, h3, h4, h5, h6 {
  font-family: var(--brand-sans);
  font-weight: 800;
}

h1 {
  font-size: clamp(2.375rem, 4.5vw, 3.875rem);
  line-height: 1.06;
  margin-bottom: 1rem;
}

@media (min-width: 1000px) and (max-width: 1100px) {
  h1 { font-size: 42px; }
}

@media (max-width: 760px) {
  h1 { font-size: 38px; line-height: 1.12; }
}

h2 { font-size: clamp(1.5rem, 2.2vw, 2.25rem); }
h3 { font-size: clamp(1.25rem, 1.8vw, 1.6rem); }

p { margin: 0 0 1em; }

a { color: var(--accent); }
a:hover { color: #0c4b58; }

/* Primary CTA & Buttons */
.button {
  background: var(--accent);
  color: #fff;
}
.button:hover {
  background: #0c4b58;
}
.button:active { transform: translateY(1px); }

.nav-cta {
  background: #fff;
  border-color: var(--accent);
  color: var(--accent);
}
.nav-cta:hover {
  background: var(--accent);
  color: #fff;
}

.mobile-action {
  background: var(--accent);
}

/* Form */
.quote-form {
  background: #fff;
}
.quote-form label {
  color: var(--ink);
}
.quote-form input:focus,
.quote-form select:focus,
.quote-form textarea:focus {
  border-color: var(--accent);
  box-shadow: 0 0 0 3px rgba(18,103,122,0.15);
}

/* Cards */
.route-card {
  background: #fff;
  border-radius: var(--radius);
}
.route-card:hover {
  box-shadow: 0 6px 20px rgba(18,103,122,0.12);
}
.route-card h3 {
  color: var(--ink);
}
.route-card p {
  color: var(--muted);
}

/* Hero */
.hero-shade {
  background: linear-gradient(90deg, rgba(19,43,66,.72), rgba(19,43,66,.2)), linear-gradient(180deg,rgba(19,43,66,.68),rgba(19,43,66,.35)55%,transparent 85%);
}

.hero-copy .eyebrow { color: #dbe7f0; }

/* Sections */
.section-number {
  color: var(--accent);
}

ul.items li::before { color: var(--accent); }
ol.steps li::before { color: var(--accent); }

/* Home answer strip */
.page-home .answer:nth-child(2n) .section-content {
  background: #e8f2f7;
}

/* Value strip */
.value-strip span {
  color: var(--accent);
}

/* Footer */
.site-footer {
  background: #132b42;
  color: #c7d6e3;
}
.footer-grid h2 {
  color: #fff;
}
.footer-grid a:hover { color: #fff; }
.footer-base {
  border-top-color: #26425a;
}

/* Focus */
a:focus, button:focus, input:focus, select:focus, textarea:focus, summary:focus {
  outline: 2px solid var(--accent);
  outline-offset: 2px;
}

/* Specific overrides */
.header-inner { gap: 0.75rem; }
.brand span { font-size: 1.2rem; }
#primary-nav { gap: 1rem; font-weight: 500; }
.nav-cta { padding: 0.6em 1em; font-size: 0.95rem; }

/* Map */
.map-heading { background: #e8f2f7; }
.rr-real-map figcaption { border-top-color: var(--line); }
.map-placeholder { min-height: 300px; }

/* Responsive hero form on tablet */
@media (min-width: 761px) and (max-width: 1000px) {
  .hero-inner { grid-template-columns: minmax(0,1fr) 330px; }
  .hero-copy h1 { font-size: 42px; }
}

/* 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;
  }
}

/* Image selection */
.hero-image { object-position: 20% 55%; }
@media (max-width: 760px) {
  .hero-image { object-position: 20% 50%; }
}

:root{--brand-serif:var(--brand-sans)}
.brand span{font-family:var(--brand-sans);font-weight:800;letter-spacing:-.4px}.brand strong{font-weight:800}
.hero-copy h1{font-size:clamp(42px,4.5vw,62px);line-height:1.07;letter-spacing:-1.5px}.hero-editorial .hero-copy h1{font-size:clamp(34px,3.5vw,52px)}
.items.cards li{background:#e7f0f5;border-radius:14px}.items.steps li{background:#edf4f8}.quote-form{border-radius:16px;box-shadow:0 10px 35px rgba(19,43,66,.12)}.section-heading h2{letter-spacing:-.6px}.map-heading{padding:24px;border-radius:14px}.hero-image{object-position:30% 65%}
@media(min-width:761px)and(max-width:1100px){.hero-copy h1{font-size:42px;letter-spacing:-1px}.hero-editorial .hero-copy h1{font-size:40px}}
@media(max-width:760px){.hero-copy h1,.hero-editorial .hero-copy h1{font-size:38px;line-height:1.12;letter-spacing:-.8px}.hero-image{object-position:30% 65%}.brand span{font-size:18px}.map-heading{padding:20px}.hero-copy .eyebrow{font-size:12px}}
@media(max-width:350px){.hero-copy h1,.hero-editorial .hero-copy h1{font-size:34px}.brand span{font-size:16px}}

.table-hint[hidden]{display:none!important}

/* Concrete identity: warm stone, terracotta, angular restrained surfaces. */
:root{--ink:#302c27;--accent:#a44b2c;--paper:#fbf8f2;--line:#ddd5c9}body{background:#fbf8f2;color:#403b35;font-family:Arial,Helvetica,sans-serif}h1,h2,h3{font-family:Arial,Helvetica,sans-serif;color:#302c27;letter-spacing:-.035em}.site-header{background:#fbf8f2}.brand{color:#302c27}.brand strong{font-size:.89em}.button,.mobile-action{background:#a44b2c;color:#fff}.button:hover,.mobile-action:hover{background:#843a20}.nav-cta{color:#814026;border-color:#a44b2c}.quote-form{border-radius:8px;color:#403b35}.quote-form h2{color:#302c27}.quote-form .eyebrow,.eyebrow{color:#84402a}.hero-copy h1,.hero-copy .hero-intro{color:#fff}.hero-copy .eyebrow{color:#f2c3a8}.hero-shade{background:linear-gradient(90deg,rgba(35,29,24,.85) 0%,rgba(35,29,24,.53) 50%,rgba(35,29,24,.16) 100%)}.hero-tags span{background:rgba(30,25,20,.75);color:#fff}.hero-footnote{color:#fff}.route-card{border:1px solid #ddd5c9;border-radius:6px;box-shadow:none}.route-card:hover{border-color:#a44b2c}.context-link,.text-link,.context-links a{color:#8b3e25}.value-strip,.on-page,.answer-list .items li,.next-step,.map-section{background:#f0e9de}.on-page a{color:#4b453e}.section-number{color:#a44b2c}.section-heading{border-color:#ddd5c9}.next-step h2{color:#302c27}.site-footer{background:#302c27;color:#eee6da}.site-footer .brand,.site-footer h2,.site-footer a{color:#fff8ee}.side-note{border-top-color:#cbbba7}.field label{color:#403b35}.form-intro{color:#4f4940}.form-progress,.step-hint{color:#6a5b4d}.field input,.field select,.field textarea{border-color:#b7a995;color:#302c27}.field input:focus,.field select:focus,.field textarea:focus{outline-color:#a44b2c}.preview-bar{background:#302c27}.table-wrap th{color:#302c27}.table-wrap thead{background:#eee6d9}.source-note{color:#625447}.sources summary{color:#7c3b25}.form-note{color:#574e44}.form-note a{color:#7c3b25}.planning-diagram{background:#fff}.route-card img{aspect-ratio:3/2}.body-photo figcaption{color:#6a5b4d}.legal-header p{color:#51483f}@media(max-width:700px){.hero-copy{background:linear-gradient(0deg,rgba(35,29,24,.88),rgba(35,29,24,.58)),var(--hero-photo) center/cover}.hero-shade{background:none}}


.nav-cta:hover { background: var(--accent); color: #fff; }
.quote-form label { color: #403b35; font-weight: 700; }
.quote-form input:focus, .quote-form select:focus, .quote-form textarea:focus { border-color: var(--accent); box-shadow: 0 0 0 3px rgba(164,75,44,0.15); outline: 2px solid var(--accent); outline-offset: 2px; }
.route-card p { color: var(--muted); }
.on-page nav a:hover { color: var(--accent); }
.site-footer a:hover { color: #fff; }
.table-wrap th { color: var(--ink); background: #eee6d9; }


:root{--muted:#6a5b4d}.hero-copy p.eyebrow{color:#f3c6a7}.map-heading,.page-home .answer:nth-child(2n) .section-content{background:#eee6d9}.items.steps li,.items.cards li{background:#f3ede3}.route-card p,.rr-real-map figcaption,.map-privacy{color:#625447}.footer-base{border-top-color:#55483d}.preview-bar{line-height:1.5;padding:8px 12px;color:#ded5c9}.step-back{color:#814026}
@media(max-width:760px){.hero .hero-image,.hero .hero-shade{display:none}.hero-inner{width:100%;max-width:none;padding-inline:0}.hero-copy{width:100%;padding:34px 20px 48px;background:linear-gradient(0deg,rgba(35,29,24,.84),rgba(35,29,24,.68)),var(--hero-photo) 35% 60%/cover}.hero-with-form .hero-copy{min-height:560px}.hero-editorial .hero-copy{min-height:420px;padding-bottom:48px}.hero-with-form .quote-form{margin:0 16px}.hero-editorial .hero-inner{min-height:0}.hero-tags{margin-bottom:0}}


.faq summary{list-style:none}.faq summary::marker{content:""}.faq summary::after{top:0}
.planning-diagram{overflow:visible;background:transparent}.diagram-scroll{overflow-x:auto;border-radius:12px}.diagram-scroll:focus-visible{outline:3px solid var(--accent);outline-offset:4px}.planning-diagram figcaption{max-width:100%;overflow-wrap:anywhere}.guide-shortcuts{display:flex;flex-wrap:wrap;gap:12px;margin:24px 0 40px}.guide-shortcuts a{padding:12px 16px;background:#eee6d9;color:#74351e;border-radius:6px;font-weight:700;text-decoration:none}.guide-shortcuts a:hover{background:#e5d8c6}.guide-group{scroll-margin-top:28px;margin:44px 0 56px}.guide-group>h2{font-size:28px;line-height:1.2}.guide-directory .route-grid{margin-top:20px}


:root {
  --ink: #143f4b;
  --paper: #f7f8f3;
  --muted: #5e757e;
  --line: #dce6e9;
  --accent: #b5dca6;
  --accent-light: #7eb99b;
  --brand-serif: Georgia, Cambria, "Times New Roman", Times, serif;
  --brand-sans: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Open Sans", "Helvetica Neue", Arial, sans-serif;
  --max-width: 1240px;
  --wrap-pad: clamp(16px, 3vw, 32px);
  --type-base: 18px;
  --type-base-mobile: 17px;
  --lh: 1.7;
  --radius: 10px;
  --shadow: 0 3px 10px rgba(20,63,75,0.08);
  --focus-ring: 0 0 0 3px rgba(181,220,166,0.65), 0 0 0 5px #fff;
}

* { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body {
  margin: 0;
  font-family: var(--brand-sans);
  font-size: var(--type-base);
  line-height: var(--lh);
  color: var(--ink);
  background: var(--paper);
}

.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] { display: none !important; }
.text-link { color: var(--ink); font-weight: 600; text-decoration: underline; }
.eyebrow {
  display: block;
  font-size: 0.82em;
  font-weight: 600;
  letter-spacing: 0.08em;
  color: var(--muted);
  text-transform: uppercase;
  margin-bottom: 0.5em;
}

.button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.5ch;
  padding: 0.85em 1.2em;
  background: var(--ink);
  color: #fff;
  border-radius: var(--radius);
  text-decoration: none;
  font-weight: 600;
  border: none;
  cursor: pointer;
  font-size: 1em;
  line-height: 1.2;
  transition: background 0.2s ease;
}
.button:hover { background: #10333c; }
.button:active { transform: translateY(1px); }
.button:disabled { opacity: 0.5; cursor: not-allowed; }

.wrap { max-width: var(--max-width); margin: 0 auto; padding: 0 var(--wrap-pad); }

h1, h2, h3, h4, h5, h6 {
  font-family: var(--brand-serif);
  margin: 1.2em 0 0.6em;
  line-height: 1.25;
  font-weight: 600;
  color: var(--ink);
}
h1 { font-size: clamp(2rem, 4.5vw, 4rem); }
h2 { font-size: clamp(1.6rem, 2.4vw, 2.4rem); }
h3 { font-size: clamp(1.25rem, 1.8vw, 1.6rem); }
h4 { font-size: 1.15rem; }

p { margin: 0 0 1em; max-width: 65ch; }

a { color: var(--ink); text-decoration: underline; text-underline-offset: 2px; }
a:hover { color: #0d2d37; }
a:focus { outline: none; box-shadow: var(--focus-ring); border-radius: 4px; }

.skip-link {
  position: absolute;
  top: -40px; left: 0;
  background: var(--ink);
  color: #fff;
  padding: 0.75em 1.2em;
  z-index: 9999;
  text-decoration: none;
  font-weight: 600;
}
.skip-link:focus { top: 0; }

.preview-bar {
  background: #143f4b;
  color: #d4e4e8;
  font-size: 0.85rem;
  text-align: center;
  padding: 0.4em 0;
  position: static;
  top: auto;
}

/* Header & Nav */
.site-header { background: var(--paper); border-bottom: 1px solid var(--line); position: static; top: auto; }
.header-inner {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  min-height: 72px;
}

.brand { display: flex; align-items: center; gap: 0.75rem; text-decoration: none; color: var(--ink); }
.brand img { width: 52px; height: 52px; }
.brand span {
  font-family: var(--brand-serif);
  font-size: 1.25rem;
  font-weight: 700;
  line-height: 1.1;
  letter-spacing: -0.02em;
}
.brand strong { display: block; font-size: 0.95em; line-height: 1; }

.menu-toggle { background: none; border: none; font-size: 1.25rem; color: var(--ink); padding: 0.5rem; cursor: pointer; }
.menu-toggle:focus { outline: none; box-shadow: var(--focus-ring); border-radius: 8px; }

#primary-nav {
  display: flex;
  flex-wrap: wrap;
  gap: 1.25rem;
  align-items: center;
  font-weight: 500;
}
#primary-nav a { text-decoration: none; color: var(--ink); position: relative; }
#primary-nav a::after {
  content: "";
  position: absolute;
  left: 0; bottom: -2px;
  width: 0; height: 2px;
  background: var(--ink);
  transition: width 0.2s ease;
}
#primary-nav a:hover::after { width: 100%; }

/* Desktop: always visible, Mobile: controlled by JS */
@media (min-width: 761px) { #primary-nav { display: flex !important; } .menu-toggle { display: none; } }

@media (max-width: 760px) {
  #primary-nav { display: flex; flex-direction: column; align-items: flex-start; gap: 1rem; width: 100%; padding: 1rem 0; }
  .js .menu-toggle[aria-expanded="true"] + #primary-nav { display: flex; }
  .js .menu-toggle[aria-expanded="false"] + #primary-nav { display: none; }
  .js #primary-nav { display: none; }
}

.nav-cta {
  margin-left: auto;
  padding: 0.65em 1em;
  background: var(--paper);
  border: 2px solid var(--ink);
  color: var(--ink);
  border-radius: var(--radius);
  text-decoration: none;
  font-weight: 600;
  white-space: nowrap;
}
.nav-cta:hover { background: var(--ink); color: #fff; }

/* Hero */
.hero { position: relative; color: #fff; overflow: hidden; isolation: isolate; }
.hero-image { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: 20% 55%; z-index: 0; }
.hero-shade {
  position: absolute;
  inset: 0;
  background: linear-gradient(90deg, rgba(20,63,75,0.70), rgba(20,63,75,0.18)), linear-gradient(180deg,rgba(20,63,75,0.68),rgba(20,63,75,0.38)55%,transparent 85%);
  z-index: 1;
}

.hero-inner {
  display: grid;
  grid-template-columns: minmax(0,1.45fr) minmax(320px,.85fr);
  min-height: 720px;
  padding-top: 56px;
  padding-bottom: 80px;
  align-items: start;
  gap: clamp(24px, 4vw, 64px);
  position: relative;
  z-index: 2;
}

.hero-copy { padding: 0; padding-top: clamp(24px, 6vh, 64px); }
.hero-copy p.eyebrow { margin-top: 0; opacity: 0.95; color: #dbeff6; }
.hero-copy h1 { color: #fff; margin-top: 0.3em; max-width: 18ch; font-size: clamp(2.625rem, 4.5vw, 4rem); line-height: 1.08; letter-spacing: -0.5px; }
.hero-intro { font-size: clamp(1rem, 1.4vw, 1.2rem); max-width: 46ch; margin-bottom: 1.4em; line-height: 1.65; }
.hero-action { margin-top: 1em; }
.hero-tags { display: flex; flex-wrap: wrap; gap: 0.6em; margin-top: 1.2em; }
.hero-tags span { background: rgba(0,0,0,0.35); padding: 0.4em 0.75em; border-radius: 999px; font-size: 0.85rem; font-weight: 500; }
.hero-photo-panel { display: flex; align-items: center; justify-content: center; }
.panel-photo { width: 100%; height: auto; object-fit: contain; max-height: 500px; }
.hero-footnote { position: absolute; bottom: 1rem; font-size: 0.85rem; opacity: 0.7; right: var(--wrap-pad); text-align: right; z-index: 2; }

/* Desktop: editorial-only hero */
.hero-editorial .hero-inner { min-height: 430px; grid-template-columns: 1fr; }
.hero-editorial .hero-copy h1 { font-size: clamp(2rem, 3.5vw, 3.6rem); }
.hero-editorial .hero-tags { display: none; }
.hero-editorial .hero-photo-panel { display: none; }

/* Mobile */
@media (max-width: 760px) {
  .hero-inner { grid-template-columns: 1fr; min-height: auto; gap: 24px; padding-bottom: 24px; }
  .hero-copy { order: 1; min-height: 540px; padding-top: clamp(24px, 6vh, 64px); padding-bottom: 0; }
  .quote-form { order: 2; margin-top: 0; background: #fff; border-radius: var(--radius); box-shadow: var(--shadow); }
  .hero-footnote { position: static; margin-top: 1em; text-align: left; }
  .panel-photo { max-height: 400px; }
}

/* Quote Form */
.quote-form { background: #fff; padding: 1.5rem; border-radius: var(--radius); box-shadow: var(--shadow); margin-top: 0; color: var(--ink); font-size: var(--type-base); line-height: var(--lh); }
.quote-form fieldset { border: none; padding: 0; margin: 0; }
.quote-form fieldset[hidden] { display: none !important; }
.quote-form fieldset:disabled { opacity: 0.6; }
.quote-form .field { margin-bottom: 1rem; }
.quote-form label { display: block; font-weight: 600; margin-bottom: 0.35em; font-size: 0.95rem; }
.quote-form input, .quote-form select, .quote-form textarea { width: 100%; padding: 0.75em 0.9em; border: 1px solid var(--line); border-radius: 6px; background: #fff; font-size: 1rem; color: var(--ink); font-family: var(--brand-sans); transition: border-color 0.2s, box-shadow 0.2s; }
.quote-form input:focus, .quote-form select:focus, .quote-form textarea:focus { outline: none; border-color: var(--ink); box-shadow: 0 0 0 3px rgba(20,63,75,0.18); }
.quote-form input[aria-invalid="true"], .quote-form select[aria-invalid="true"] { border-color: #b91c1c; background: #fff8f8; }
.field-error { color: #b91c1c; font-size: 0.9rem; margin-top: 0.25em; min-height: 0; }
.quote-form .button { width: 100%; }
.step-hint { font-size: 0.9rem; color: var(--muted); margin: 0.5em 0 0; font-style: italic; }
.form-progress { font-size: 0.9rem; margin-bottom: 1rem; }
.form-status { padding: 0.6em 0; margin: 1em 0 0; font-weight: 600; min-height: 0; }
.form-status:empty { display: none; }
.form-note { font-size: 0.85rem; color: var(--muted); margin-top: 1.2em; }
.form-note a { color: inherit; text-decoration: underline; }

/* Reduced motion */
@media (prefers-reduced-motion: reduce) {
  .quote-form input, .quote-form select, .quote-form textarea { transition: none; }
}

/* On-page Sidebar */
.on-page { background: #fff; border-radius: var(--radius); padding: 1.25rem; box-shadow: var(--shadow); font-size: 0.95rem; align-self: start; }
.on-page nav { display: flex; flex-direction: column; gap: 0.5em; }
.on-page nav a { text-decoration: none; color: var(--ink); padding: 0.35em 0; }
.on-page nav a:hover { color: var(--ink); }

/* Page Layout */
.content-layout { display: grid; grid-template-columns: 220px minmax(0, 1fr); gap: clamp(32px, 6vw, 64px); padding-top: 64px; padding-bottom: 64px; }

.page-copy { max-width: 65ch; }

.answer { scroll-margin-top: 24px; }
.section-heading { display: flex; align-items: flex-start; gap: 0.75em; margin-bottom: 0.8em; }
.section-number { font-family: var(--brand-serif); font-size: 1.75rem; color: #8fbcb1; font-weight: 700; line-height: 1; }

/* Lists & Steps */
ul.items, ol.items { list-style: none; padding: 0; margin: 0 0 1.2em; display: grid; gap: 0.75em; }
ul.items li { padding-left: 1.5em; position: relative; }
ul.items li::before { content: "•"; position: absolute; left: 0.2em; color: var(--ink); font-weight: bold; font-size: 1.2em; }
ol.steps { counter-reset: step; }
ol.steps li { counter-increment: step; }
ol.steps li::before { content: counter(step); position: absolute; left: 0; font-weight: 600; color: var(--ink); }

/* Tables */
.table-wrap { width: 100%; overflow-x: auto; -webkit-overflow-scrolling: touch; border: 1px solid var(--line); border-radius: var(--radius); margin: 1.2em 0; }
.table-wrap table { width: 100%; min-width: 480px; border-collapse: collapse; font-size: 0.95rem; }
.table-wrap th, .table-wrap td { padding: 0.75em 1em; text-align: left; border-bottom: 1px solid var(--line); }
.table-wrap th { background: var(--paper); font-weight: 700; }

/* Body Photo */
.body-photo { margin: 2.5em 0; text-align: center; }
.body-photo img { max-width: 100%; height: auto; border-radius: var(--radius); }
.body-photo figcaption { margin-top: 0.6em; font-size: 0.9rem; color: var(--muted); }

/* FAQ */
.faq { margin-top: 3em; }
.faq details { border-bottom: 1px solid var(--line); padding: 0.8em 0; }
.faq summary { cursor: pointer; font-weight: 600; font-size: 1.05rem; padding-left: 1em; position: relative; }
.faq summary::-webkit-details-marker { display: none; }
.faq summary::after { content: "+"; position: absolute; left: 0; font-size: 1.2em; }
.faq details[open] summary::after { content: "−"; }

/* Route Grid & Cards */
.route-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: clamp(16px, 3vw, 24px); margin-top: 1.8em; }
@media (min-width: 700px) { .route-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1100px) { .route-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 699px) { .route-grid { grid-template-columns: 1fr; } }

.route-card { display: flex; flex-direction: column; overflow: hidden; border-radius: var(--radius); text-decoration: none; color: inherit; background: #fff; box-shadow: var(--shadow); transition: transform 0.2s, box-shadow 0.2s; }
.route-card:hover { transform: translateY(-2px); box-shadow: 0 6px 18px rgba(0,0,0,0.12); }
.route-card img { height: 220px; object-fit: cover; width: 100%; }
.route-card-copy { padding: 1em; flex-grow: 1; display: flex; flex-direction: column; }
.route-card h3 { margin-top: 0; font-size: 1.15rem; }
.route-card p { margin-top: 0.4em; color: var(--muted); font-size: 0.95rem; line-height: 1.5; }
.text-link { margin-top: auto; align-self: flex-start; }

/* Home-Projects (full-width strip) */
.home-projects { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; margin: 2em 0 3em; }
@media (min-width: 1100px) { .home-projects { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 24px; } }
@media (max-width: 1099px) { .home-projects { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 599px) { .home-projects { grid-template-columns: 1fr; } }
.home-projects .route-card { background: var(--paper); box-shadow: none; }
.home-projects .route-card img { height: 180px; }

/* Map Section */
.map-section { margin: 2em 0 3em; background: #fff; border-radius: var(--radius); overflow: hidden; }
.map-heading { display: grid; grid-template-columns: 1fr 1fr; align-items: flex-end; justify-content: space-between; padding: 1.5rem var(--wrap-pad); background: #e8f2f7; border-bottom: 1px solid var(--line); }
.map-heading h2 { margin: 0; }
.rr-real-map { margin: 0; display: block; width: 100%; }
.map-placeholder { padding: 24px; text-align: center; }
.map-placeholder h3 { margin-top: 0.6em; font-size: 1.25rem; }
.map-placeholder button { margin-top: 0.8em; }
.map-privacy { margin-top: 0.6em; font-size: 0.85rem; color: var(--muted); }
.rr-real-map figcaption { padding: 1rem var(--wrap-pad) 1.2rem; display: flex; flex-wrap: wrap; gap: 0.75em 1.5em; align-items: center; font-size: 0.9rem; color: var(--muted); border-top: 1px solid var(--line); }
.rr-real-map figcaption a { text-decoration: none; font-weight: 600; }

/* Next Step / Sticky Section */
.next-step { background: var(--paper); padding: 2rem var(--wrap-pad) 3rem; display: flex; align-items: center; justify-content: space-between; gap: 2rem; flex-wrap: wrap; }
.next-step h2 { margin-top: 0; }
.next-step a.button { flex-shrink: 0; }

/* Value Strip (Home) */
.value-strip { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1rem; padding: 1.25rem var(--wrap-pad); background: #fff; border-radius: var(--radius); text-align: center; margin: 2.5em auto 0; }
.value-strip div { display: flex; flex-direction: column; align-items: center; }
.value-strip span { font-family: var(--brand-serif); font-size: 1.8rem; color: var(--ink); margin-bottom: 0.4em; }

/* Context Links */
.context-links { margin-top: 1.8em; padding-top: 1em; border-top: 1px solid var(--line); }
.context-link { display: inline-block; margin-right: 1em; font-weight: 600; }

/* Sources */
.sources { margin: 2.5em auto 1em; }
.sources summary { font-weight: 600; cursor: pointer; }
.sources ul { list-style: none; padding-left: 1.2em; margin-top: 0.5em; }
.sources li { margin-bottom: 0.5em; }
.source-note { font-size: 0.85rem; margin-top: 0.8em; }

/* Footer */
.site-footer { background: #143f4b; color: #d4e4e8; padding: 2.5rem var(--wrap-pad) 1.5rem; }
.footer-grid { display: grid; grid-template-columns: 1.2fr repeat(3, 1fr); gap: 2rem 2.5rem; }
.footer-grid h2 { color: #fff; margin-top: 0; font-size: 1rem; letter-spacing: 0.04em; text-transform: uppercase; }
.footer-grid a { color: #d4e4e8; text-decoration: none; margin-bottom: 0.35em; display: block; }
.footer-grid a:hover { color: #fff; }
.footer-base { margin-top: 2.5rem; padding-top: 1.5rem; border-top: 1px solid #264d5e; font-size: 0.85rem; text-align: center; }

/* Mobile Action (Sticky CTA) */
.mobile-action { position: fixed; left: 0; right: 0; bottom: 0; padding: 1rem; background: var(--ink); color: #fff; font-weight: 700; text-align: center; text-decoration: none; z-index: 800; border-top-left-radius: 12px; border-top-right-radius: 12px; transform: translateY(0); transition: opacity 0.3s ease, transform 0.3s ease; display: flex; align-items: center; justify-content: center; gap: 0.75ch; }
@media (min-width: 761px) { .mobile-action { display: none !important; visibility: hidden; } }

/* Legal pages (compact, readable) */
.page-legal .page-copy { font-size: 0.95rem; }
.page-legal h1, .page-legal h2 { margin-top: 2em; }
.page-legal h2 { margin-top: 2.5em; }
.page-legal p { margin: 0 0 1.2em; }

/* 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; } }

/* Focus Visibility */
a:focus, button:focus, input:focus, select:focus, textarea:focus, summary:focus { outline: 2px solid var(--ink); outline-offset: 2px; }

/* Responsive adjustments */
@media (max-width: 760px) {
  .content-layout { grid-template-columns: 1fr; padding-top: 48px; padding-bottom: 48px; }
  .on-page { display: none; }
  .next-step { flex-direction: column; text-align: center; }
  .next-step a.button { width: 100%; padding: 1em 0; }
  .footer-grid { grid-template-columns: 1fr 1fr; }
  .footer-grid > div:first-child { grid-column: span 2; }
}
@media (max-width: 390px) { .value-strip { grid-template-columns: 1fr; } }

/* Source-based classes */
.official-link { color: var(--ink); font-weight: 600; text-decoration: none; }
.official-link:hover { text-decoration: underline; }

details summary { cursor: pointer; }
details summary::marker { content: "» "; color: var(--ink); }

/* ItemText cards */
.items li strong { font-weight: 700; }
.items li strong + span { display: block; margin-top: 0.25em; color: var(--ink); }

/* Side note */
.side-note { margin-top: 1.25rem; padding-top: 1rem; border-top: 1px solid var(--line); }
.side-note h3 { font-size: 0.95rem; margin-top: 0; }
.side-note .small-mark { display: inline-block; font-size: 1.1em; margin-right: 0.4em; }

/* Form step-back button */
.step-back { display: inline-block; margin-top: 0.75rem; color: var(--muted); background: none; border: none; font-size: 0.9rem; cursor: pointer; text-decoration: underline; }
.step-back:focus { outline: 2px solid var(--ink); outline-offset: 2px; }

/* Anchor scrolling */
section.answer { scroll-margin-top: 24px; }

/* Route section */
.route-section { margin-top: 2.5em; }
.route-section .section-title { margin-bottom: 1rem; }

/* Body photo */
.body-photo { margin-top: 3em; margin-bottom: 2em; }

/* Card spacing in home */
.home-projects .route-card { margin-bottom: 0; }

/* Form notes */
.notes { margin-top: 1rem; }
.notes summary { font-weight: 600; cursor: pointer; }
.notes summary::marker { content: "▶ "; color: var(--ink); }
.notes details[open] summary::marker { content: "▼ "; }

/* Map placeholder height for form overlay */
.map-placeholder { min-height: 300px; }

/* Iframe and map container */
.map-section iframe { display: block; width: 100%; height: 420px; }
@media (max-width: 760px) { .map-section iframe { height: 320px; } }

/* Responsive nav adjustments below 1000px */
@media (max-width: 999px) { .header-inner { gap: 0.5rem; } #primary-nav { gap: 0.75rem; font-size: 0.95rem; } }

/* Home answer spacing */
.answer { margin-bottom: 3em; }
.page-home .answer:nth-child(2n) .section-content { background: #e7f0f5; padding: 28px; border-radius: var(--radius); }
.answer:last-child { margin-bottom: 0; }

/* Home layout overrides */
.page-home .content-layout { grid-template-columns: 1fr; }
.page-home .on-page { display: none; }
.page-home .page-copy { max-width: none; }
.page-home .route-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
@media (min-width: 1100px) { .page-home .route-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
@media (max-width: 1099px) { .page-home .route-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 599px) { .page-home .route-grid { grid-template-columns: 1fr; } }

.header-inner > *, .hero-inner > *, .content-layout > *, .footer-grid > *, .map-heading > *, .route-grid > * { min-width: 0 }
.hero-copy .eyebrow { color: #dbe7f0 }
.quote-form h2 { font-size: 28px; line-height: 1.15; margin: 8px 0 12px }
.quote-form .eyebrow { color: var(--ink); font-size: 12px }
.form-intro { font-size: 16px; margin-bottom: 16px }
.form-progress { color: var(--muted); font-size: 13px }
.field-error:empty { display: none }
.form-note { margin-bottom: 0 }
.form-status { font-size: 15px }
.quote-form .step-back { min-height: 44px }
.quote-form fieldset { min-width: 0 }
.hero-action:hover, .button:hover, .mobile-action:hover { color: #fff }
.hero-editorial .hero-copy { max-width: 800px }
.hero-editorial .hero-copy h1 { max-width: 24ch }
.hero-editorial .hero-tags { display: none }
.hero-editorial .hero-footnote { display: none }
.section-heading h2 { margin: 0 }
.section-heading { align-items: flex-start; margin-bottom: 24px }
.section-number { font-size: 22px; color: #2f6175; padding-top: 5px }
.section-content > p { max-width: 65ch }
.breadcrumbs { padding-top: 24px; display: flex; flex-wrap: wrap; gap: 10px; font-size: 14px }
.side-note p { font-size: 14px }
.side-note h3 { line-height: 1.4 }
.source-note { color: var(--muted) }
.items.cards { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px }
.items.cards li { background: #e7f0f5; border: 1px solid var(--line); border-radius: 8px; padding: 22px }
.items.cards li:before { content: none }
.items.steps li { background: #edf4f8; border-left: 3px solid var(--ink); padding: 18px 20px 18px 48px }
.items.steps li:before { left: 20px; top: 18px }
.page-home .answer { margin-bottom: 72px }
.page-home .body-photo { max-width: 900px; margin-inline: auto }
.map-heading { gap: 40px }
.map-placeholder p { margin-inline: auto }
.map-placeholder { display: flex; flex-direction: column; align-items: center; justify-content: center }
.map-symbol { font-size: 32px; color: var(--ink) }
.map-section iframe { max-width: 100%; border: 0 }
.official-link { display: block; margin: 12px 0 }
.footer-grid .brand { display: flex; color: #ffffff; margin-bottom: 20px }
.footer-grid .brand strong { color: #ffffff }
.footer-grid p { font-size: 15px }
.mobile-action.is-concealed { opacity: 0; visibility: hidden; pointer-events: none; transform: translateY(100%) }
.missing-page { padding-top: 80px; padding-bottom: 80px }
.missing-page h1 { max-width: 20ch }
@media (min-width: 761px) and (max-width: 1000px) { .hero-inner { grid-template-columns: minmax(0,1fr) 330px; gap: 30px } .hero-copy h1 { font-size: 42px } .header-inner { padding-block: 12px } .brand span { font-size: 18px } }
@media (max-width: 760px) { body { font-size: 17px; padding-bottom: 64px } .hero { background: var(--paper) } .hero-image, .hero-shade { height: 660px; bottom: auto } .hero-image { object-position: 20% 55% } .hero-inner { padding-top: 0; padding-bottom: 32px; gap: 0 } .hero-copy { min-height: 620px; padding: 32px 4px 70px } .hero-copy h1 { font-size: 42px; line-height: 1.12; max-width: 16ch } .hero-intro { font-size: 17px; line-height: 1.6 } .hero-action { margin-top: 0 } .hero-tags { gap: 6px } .hero-tags span { font-size: 12px } .quote-form { margin: 0; color: var(--ink); padding: 24px } .hero-footnote { display: none } .hero-editorial .hero-copy { min-height: 440px; padding-bottom: 48px } .hero-editorial .hero-inner { min-height: 440px; padding-bottom: 0 } .hero-editorial .hero-image, .hero-editorial .hero-shade { height: 100% } .header-inner { gap: 8px; padding-block: 12px } .menu-toggle { margin-left: auto; font-size: 17px } .brand { gap: 8px } .brand span { font-size: 18px } .brand img { width: 42px; height: 42px } .nav-cta { margin-left: 0 } #primary-nav { flex-basis: 100% } .map-heading { grid-template-columns: 1fr; gap: 20px } .items.cards { grid-template-columns: 1fr } .page-home .answer { margin-bottom: 48px } .value-strip { grid-template-columns: 1fr; margin-top: 0; border-radius: 0; text-align: left } .value-strip div { flex-direction: row; gap: 16px; align-items: center } .value-strip span { font-size: 22px; margin: 0 } .footer-grid { gap: 28px } .footer-grid a { font-size: 15px } .section-number { font-size: 18px } .section-heading { gap: 12px } .page-home .answer:nth-child(2n) .section-content { padding: 20px } .next-step { padding-top: 40px } .sources { padding-bottom: 24px } .content-layout { padding-top: 40px } .table-wrap.cols-2 table { min-width: 340px } }
@media (max-width: 350px) { .hero-copy h1 { font-size: 36px } .brand span { font-size: 16px } .menu-toggle { padding: 6px } .hero-copy { min-height: 650px } .hero-image, .hero-shade { height: 690px } .footer-grid { grid-template-columns: 1fr } .footer-grid > div:first-child { grid-column: auto } }
@media (min-width: 1000px) { .page-home #price .section-content, .page-home #local .section-content { display: grid; grid-template-columns: 1fr 1fr; gap: 20px 48px } .page-home #price .context-links, .page-home #local .context-links { grid-column: 1/-1; margin-top: 0 } .page-home #steps .items.steps { grid-template-columns: repeat(3, minmax(0,1fr)); gap: 18px } .page-home #steps .items.steps li { padding: 24px 22px 24px 48px } }
.table-hint { display: none }
@media (max-width: 760px) { .table-hint { display: block; font-size: 12px; color: var(--muted); margin-bottom: 8px } }
.planning-diagram { margin: 0 0 44px }
.planning-diagram img { width: 100%; height: auto; border-radius: 12px }
.planning-diagram figcaption { font-size: 14px; color: var(--muted); margin-top: 12px; line-height: 1.5 }
@media (max-width: 600px) { .planning-diagram { overflow-x: auto; padding-bottom: 8px } .planning-diagram img { min-width: 620px } .planning-diagram figcaption { min-width: 0 } }
.legal-header { padding-block: 56px 32px }
.legal-header h1 { font-size: clamp(32px,4vw,52px); line-height: 1.15; max-width: 850px; margin: 12px 0 20px }
.legal-header > p:last-child { max-width: 720px; font-size: 18px; line-height: 1.7 }
.page-legal .side-note { display: none }
.page-legal .content-layout { padding-top: 24px }
.diagram-hint { display: none }
.planning-diagram:focus-visible { outline: 3px solid var(--ink); outline-offset: 4px }
@media (max-width: 600px) { .diagram-hint { display: block; font-size: 14px; font-weight: 700; color: var(--ink); margin: 0 0 10px } .legal-header { padding-block: 32px 12px } .page-legal { padding-bottom: 0 } }


/* PM bounded layout repair: content and equipment photograph have separate space. */
:root{--ink:#143f4b;--paper:#f7f8f3;--accent:#143f4b;--line:#d6e3de;--muted:#4e6469}
body{color:#183d48;background:#f7f8f3;font-family:Arial,Helvetica,sans-serif;font-size:18px;line-height:1.7}
h1,h2,h3,.brand{font-family:Arial,Helvetica,sans-serif}
h1{font-size:clamp(2.3rem,4vw,3.65rem);line-height:1.08;letter-spacing:-.045em}
h2{letter-spacing:-.025em;line-height:1.2}.brand strong{font-size:17px;letter-spacing:.015em}.brand>span{font-size:13px;letter-spacing:.12em}
.button,.nav-cta,.mobile-action{background:#143f4b;color:#fff;border-color:#143f4b}.button:hover,.nav-cta:hover{background:#0e303b;color:#fff}
.hero{color:#143f4b;background:#eaf1ec;overflow:visible}.hero>.hero-image,.hero-shade{display:none}.hero-inner{min-height:0;padding-top:40px;padding-bottom:40px;grid-template-columns:minmax(0,1.45fr) minmax(320px,.85fr);gap:40px;align-items:start}
.hero-copy{padding:0;background:none!important;min-height:0}.hero-copy p.eyebrow{color:#355d61;opacity:1}.hero-copy h1{color:#143f4b;max-width:20ch;font-size:clamp(2.3rem,4vw,3.65rem);margin:.3em 0 .4em}.hero-intro{font-size:18px;line-height:1.65;max-width:55ch;margin-bottom:14px}.hero-action{margin-top:0}.hero-tags{margin-top:14px;margin-bottom:18px}.hero-tags span{color:#234d52;background:#d8e7dd;font-weight:600}
.hero-photo-panel{display:block!important;margin-top:20px;border-radius:16px;overflow:hidden;background:#dde6df}.panel-photo{display:block;width:100%;height:auto;max-height:none;object-fit:contain;aspect-ratio:3/2}.hero-footnote{position:static;color:#446269;padding:0 24px 20px;text-align:center;opacity:1}.quote-form{margin-top:0;box-shadow:0 12px 35px #143f4b12;border:1px solid #d3dfd9;background:#fff}.quote-form h2{color:#143f4b}.quote-form .eyebrow{color:#355d61}.quote-form .form-note{color:#4b6065}
.hero-editorial .hero-inner{min-height:0;grid-template-columns:1fr;padding-block:32px}.hero-editorial .hero-copy{display:grid;grid-template-columns:1.15fr 1fr;column-gap:40px;align-items:start}.hero-editorial .hero-copy>.eyebrow,.hero-editorial .hero-copy>h1,.hero-editorial .hero-copy>.hero-intro,.hero-editorial .hero-copy>.hero-action,.hero-editorial .hero-copy>.hero-tags{grid-column:1}.hero-editorial .hero-photo-panel{grid-column:2;grid-row:1/span 5;margin-top:0}.hero-editorial .hero-action{justify-self:start}.hero-editorial .hero-footnote{display:none}
.page-copy{color:#233e44}.page-copy p{max-width:66ch}.section-number{color:#52776d}.section-heading h2{color:#143f4b}.context-link{color:#235b65}.route-card{border-color:#d6e3de;background:#fff}.route-card h3{color:#143f4b}.route-card-copy p{color:#45616a}.on-page{border-color:#d6e3de}.side-note{background:#eaf1ec;color:#143f4b}.side-note h3{color:#143f4b}.side-note a{color:#174953}.next-step{background:#dcebdc;color:#143f4b}.next-step h2{color:#143f4b}.site-footer{background:#143f4b;color:#e9f3ed}.site-footer a,.site-footer h2,.site-footer .brand{color:#fff}.site-footer p,.footer-base{color:#d7e7e0}.site-footer .brand img{background:#eef5ed;border-radius:13px}.preview-bar{background:#102f38;color:#e3eee9}.form-progress,.step-hint{color:#4e6469}.sources{color:#365760}.sources a{color:#235b65}
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid #447f85;outline-offset:3px}
@media(max-width:1000px) and (min-width:761px){.hero-inner{grid-template-columns:minmax(0,1.2fr) minmax(300px,1fr);gap:24px}.quote-form{padding:24px}.hero-copy h1{font-size:42px}.brand strong{font-size:14px}}
@media(max-width:760px){body{font-size:17px}.brand strong{font-size:15px}.hero-inner{display:flex;flex-direction:column;gap:24px;padding:28px 20px}.hero-copy{width:100%;min-height:0;padding:0!important;background:none!important}.hero-copy h1{font-size:36px;line-height:1.1;max-width:100%;margin-top:10px}.hero-intro{font-size:17px}.hero-photo-panel{margin-top:18px}.quote-form{width:100%;max-width:none;padding:24px;margin:0}.hero-editorial .hero-copy{display:block}.hero-editorial .hero-photo-panel{display:block!important;margin-top:24px}.hero-tags{display:flex!important;gap:6px}.hero-tags span{font-size:12px}.hero-footnote{padding-bottom:20px}.site-header .brand{max-width:245px}.content-layout{gap:20px}.section-heading h2{font-size:27px}.body-photo{margin-block:28px}.next-step h2{font-size:34px}.hero-editorial .hero-inner{padding:28px 20px}.page-guide .hero-copy,.page-support .hero-copy{min-height:0}.hero-photo-panel img{width:100%;height:auto;aspect-ratio:3/2;object-fit:contain}.site-footer{padding-bottom:32px}.on-page{display:none}}

/* Rendered contrast fixes: inherited image-overlay colors must not leak onto paper. */
.hero .hero-copy .hero-intro,.hero .hero-copy>p:not(.eyebrow){color:#284e58}.site-header nav .nav-cta{color:#fff}.site-header .nav-cta:hover,.site-header .nav-cta:focus{color:#fff;background:#0e303b}.brand span,.brand strong{font-family:Arial,Helvetica,sans-serif}.hero .hero-copy .hero-tags span{color:#234d52}
#primary-nav a.nav-cta,#primary-nav a.nav-cta:hover,#primary-nav a.nav-cta:focus{color:#fff;background:#143f4b}

.context-links a.context-link{color:#235e68}.sources>summary{color:#235e68}ul.items.list li{background:#eaf1ec;border-left:2px solid #bfd5cd;padding:12px 14px;margin-bottom:8px}

/* Full-build accessibility refinements */
.menu-toggle{min-height:44px;min-width:44px;padding:8px 10px}


:root {
  --ink: #242d2d;
  --paper: #fbfaf6;
  --muted: #536262;
  --line: #dcd9cf;
  --accent: #f2c661;
  --accent-hover: #e5b64c;
  --surface: #ffffff;
  --dark-bg: #1c2424;
  --dark-surface: #2b3636;
  --border-radius: 4px;
  --font-sans: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
}
body {
  background-color: var(--paper);
  color: var(--ink);
  font-family: var(--font-sans);
}
h1, h2, h3, h4, h5, h6 {
  color: var(--ink);
  font-family: var(--font-sans);
  font-weight: 700;
  letter-spacing: -0.01em;
}
.site-header {
  background-color: var(--paper);
  border-bottom: 1px solid var(--line);
}
.site-header a {
  color: var(--ink);
}
#primary-nav a.nav-cta {
  background-color: var(--accent);
  color: var(--ink);
  font-weight: 700;
  border-radius: 4px;
  border: 1px solid transparent;
}
#primary-nav a.nav-cta:hover,
#primary-nav a.nav-cta:focus {
  background-color: var(--accent-hover);
  color: var(--ink);
}
.hero {
  background-color: var(--dark-bg);
  color: #fbfaf6;
}
.hero-copy h1,
.hero .hero-copy h1 {
  color: #ffffff;
}
.hero-copy p.eyebrow,
.hero .hero-copy p.eyebrow {
  color: var(--accent);
  font-weight: 700;
  letter-spacing: 0.05em;
  text-transform: uppercase;
}
.hero .hero-copy .hero-intro,
.hero .hero-copy > p:not(.eyebrow) {
  color: #e5e8e8;
}
.hero .hero-copy .hero-tags span {
  background-color: var(--dark-surface);
  color: #fbfaf6;
  border: 1px solid #3c4949;
  border-radius: 4px;
}
.button,
.mobile-action,
a.cta-button,
button.cta-button {
  background-color: var(--accent);
  color: var(--ink);
  font-weight: 700;
  border-radius: 4px;
  border: 1px solid transparent;
}
.button:hover,
.mobile-action:hover,
a.cta-button:hover,
button.cta-button:hover,
.button:focus,
.mobile-action:focus,
a.cta-button:focus,
button.cta-button:focus {
  background-color: var(--accent-hover);
  color: var(--ink);
  outline: 2px solid var(--ink);
  outline-offset: 2px;
}
.quote-form,
.form-container {
  background-color: var(--surface);
  border: 1px solid var(--line);
  border-radius: 4px;
}
.quote-form .eyebrow {
  color: var(--ink);
  font-weight: 700;
}
.route-card h3,
.section-heading h2,
.next-step h2 {
  color: var(--ink);
}
.route-card {
  background-color: var(--surface);
  border: 1px solid var(--line);
  border-radius: 4px;
}
.card img,
.hero img,
.route-card img,
figure img {
  border-radius: 4px;
}
.context-links a.context-link {
  color: var(--ink);
  text-decoration-color: var(--accent);
  font-weight: 600;
}
.context-links a.context-link:hover,
.context-links a.context-link:focus {
  color: #111616;
  text-decoration-color: var(--ink);
}
.sources > summary {
  color: var(--ink);
  font-weight: 600;
}
.sources {
  background-color: var(--surface);
  border: 1px solid var(--line);
  border-radius: 4px;
}
ul.items.list li {
  color: var(--ink);
}
ul.items.list li::marker {
  color: var(--accent-hover);
}
.site-footer {
  background-color: var(--dark-bg);
  color: #fbfaf6;
  border-top: 1px solid #323d3d;
}
.site-footer p,
.site-footer span {
  color: #cbd3d3;
}
.site-footer a {
  color: #fbfaf6;
}
.site-footer a:hover,
.site-footer a:focus {
  color: var(--accent);
}
.site-footer .brand strong {
  color: var(--accent);
}
.guide-directory .guide-chip,
.guide-shortcut {
  background-color: var(--surface);
  color: var(--ink);
  border: 1px solid var(--line);
  border-radius: 4px;
}
.guide-directory .guide-chip:hover,
.guide-shortcut:hover {
  border-color: var(--accent);
}
/* PM theme coherence and inherited-selector corrections; layout preserved. */
.hero-footnote{color:#d6dede}.hero-photo-panel{border-radius:4px;background:#313c3c}.quote-form,.quote-form h2,.page-copy,.section-heading h2,.route-card-copy p{color:#242d2d}.section-number{color:#765000}.side-note{background:#eeece5;color:#242d2d}.side-note h3,.side-note a{color:#242d2d}.next-step{background:#f5e7c6;color:#242d2d}.next-step h2{color:#242d2d}.items.cards li,ul.items.list li{background:#f0eee7;color:#242d2d;border-color:#d5c8aa}.site-footer .brand img{background:transparent}.footer-base{color:#d6dede}.guide-shortcuts a{background:#eee6d4;color:#242d2d;border-radius:4px}.site-footer h2{color:#fbfaf6}

.page-home .answer:nth-child(2n) .section-content,.items.steps li{background:#f0eee7}.map-heading{background:#eeeae1}ul.items.list li{padding-left:32px}ul.items.list li::before{left:12px}

/* October27: concrete leveling vector identity, scoped to brand links. */
.brand.brand-v2{display:block;width:264px;max-width:100%;flex:0 0 auto;line-height:0;margin:0;text-decoration:none}
.brand.brand-v2 img{width:100%;height:auto;max-width:100%;border-radius:0;background:transparent}
.brand.brand-v2 .logo-reverse{display:none}
.site-footer .brand.brand-v2{width:270px;margin-bottom:18px}
.site-footer .brand.brand-v2 .logo-primary{display:none}
.site-footer .brand.brand-v2 .logo-reverse{display:block}
@media(max-width:1000px){.site-header .brand.brand-v2{width:228px}}
@media(min-width:761px) and (max-width:900px){.site-header .brand.brand-v2{width:190px}}
@media(max-width:350px){.site-header .brand.brand-v2{width:164px}}
