/* Shared accessibility and responsive corrections. */
html { scroll-padding-top: 24px; }
body { overflow-wrap: break-word; }
h1, h2, h3, h4 { hyphens: auto; overflow-wrap: anywhere; }
.brand, .brand-mark { flex-shrink: 0; }
.nav-links a { white-space: nowrap; }
.shell > *, .contact-card > *, .section-head > *, .sample-grid > *,
.card-grid > *, .process > *, .faq > *, .focus-grid > * { min-width: 0; }
.contact-details a, .legal-copy a { overflow-wrap: anywhere; }
.contact-details .contact-hint { margin: 20px 0 0; font-size: .85rem; line-height: 1.6; }
.footer-row { align-items: flex-start; }
.footer-row > span { flex: 0 0 auto; }
.footer-links { flex: 1; gap: 8px 22px; }
.footer-links a { display: inline-flex; align-items: center; min-height: 36px; }
.skip-link { position: fixed; z-index: 100; top: 12px; left: 12px; padding: 12px 20px; color: #061529; background: #fff; border: 2px solid #1169ad; border-radius: 8px; transform: translateY(-160%); }
.skip-link:focus { transform: translateY(0); }
:focus-visible { outline: 3px solid #1477ba; outline-offset: 4px; }
.site-header :focus-visible, footer :focus-visible, .dark :focus-visible,
.hero :focus-visible, .subhero :focus-visible, .contact :focus-visible { outline-color: #82ccff; }
.standalone-legal { max-width: 850px; padding-block: 60px 90px; }
.standalone-legal .legal-copy h2 { margin-top: 32px; font-family: var(--sans); font-size: 1.3rem; font-weight: 750; line-height: 1.3; }
.standalone-legal .legal-copy a { color: #1169ad; text-decoration: underline; }
.standalone-legal .legal-copy p { color: #40576e; }
.vehicle-request { display: inline-flex; align-items: center; min-height: 44px; margin-top: 22px; color: #0c67aa; font-size: .9rem; font-weight: 750; text-decoration: underline; text-underline-offset: 4px; }
.faq-list p a { color: #0c67aa; text-decoration: underline; text-underline-offset: 3px; }
.info-card .code, .service-number, .audience-card strong { color: #1169ad; }
.white .eyebrow, .services .eyebrow, .focus-realestate .eyebrow, .audiences .eyebrow { color: #1169ad; }
.dark .info-card .code { color: #82ccff; }
.menu-button { cursor: pointer; flex-shrink: 0; }
@media (max-width: 1120px) {
  .site-header:has(.menu-button) .nav { min-height: 74px; }
  .js .menu-button { display: block; }
  .nav-links { position: absolute; inset: 74px 0 auto; display: none; flex-direction: column; align-items: stretch; gap: 0; padding: 20px 28px 28px; border-top: 1px solid rgba(255,255,255,.12); background: #061529; box-shadow: 0 20px 40px rgba(0,0,0,.28); max-height: calc(100dvh - 74px); overflow-y: auto; overscroll-behavior: contain; }
  .nav-links.open { display: flex; }
  .nav-links a { padding: 12px 0; min-height: 44px; white-space: normal; }
  .nav-links .nav-cta { margin-top: 8px; text-align: center; }
  /* Without JavaScript, keep the navigation visible and usable. */
  html:not(.js) .site-header:has(.menu-button) { position: relative; background: #061529; }
  html:not(.js) .site-header:has(.menu-button) .nav { flex-wrap: wrap; padding-top: 16px; }
  html:not(.js) .menu-button { display: none; }
  html:not(.js) .nav-links { position: static; display: flex; flex-basis: 100%; max-height: none; padding: 12px 0 20px; box-shadow: none; }
}
@media (max-width: 600px) {
  .footer-row { flex-direction: column; }
  .sample-card { padding: 28px 22px; }
  .legal-copy { overflow-wrap: anywhere; }
  .standalone-legal { padding-block: 40px 60px; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation: none !important; transition: none !important; }
}

@media (max-width: 520px) { .site-header .nav:has(.back-link) { flex-wrap: wrap; gap: 12px; padding-block: 14px; } }

.review-status { margin-block: 32px; padding: 20px 24px; color: #613b00; background: #fff3d8; border-left: 4px solid #ad6900; font-size: .9rem; line-height: 1.6; }
.legal-open-item { border-color: #ad6900; background: #fff3d8; }
.contact-details .contact-hint a { display: inline; margin: 0; font: inherit; text-decoration: underline; }

/* Historical reference drafts: local presentation, external sources load only on click. */
.reference-section { background: #edf3f8; }
.reference-review { max-width: 900px; margin: 0 0 32px; padding: 22px 26px; border-left: 3px solid #1477ba; color: #405970; background: #fff; }
.reference-review p { margin: 8px 0 0; }
.reference-visual { position: relative; display: flex; min-height: 240px; padding: 30px; align-items: end; overflow: hidden; color: #fff; background: radial-gradient(ellipse at 85% 5%, #17618b 0, transparent 60%), #09263d; }
.reference-visual::before { position: absolute; inset: 26px; border: 1px solid #ffffff25; content: ""; }
.reference-visual > div { position: relative; }
.reference-visual p { margin: 0 0 4px; color: #c8e2f2; font-size: .85rem; letter-spacing: .08em; text-transform: uppercase; }
.reference-visual strong { display: block; font-family: Georgia, serif; font-size: 2rem; font-weight: 500; }
.reference-number { position: absolute; top: 16px; right: 28px; color: #ffffff12; font-family: Georgia, serif; font-size: 8rem; line-height: 1; }
.reference-image-status { display: block; margin-top: 24px; color: #c8e2f2; font-size: .77rem; }
.reference-card .project-location { margin-top: 28px; }
.reference-card .project-card-body { display: block; }
.reference-card .reference-date { color: #1477ba; font-size: .88rem; font-weight: 700; }
.reference-evidence { margin-top: 28px; padding-top: 20px; border-top: 1px solid var(--line); font-size: .88rem; }
.reference-evidence summary { cursor: pointer; color: #234b69; font-weight: 750; }
.reference-evidence p { margin: 14px 0; }
.reference-links { display: grid; gap: 12px; }
.reference-links a { color: #075b91; text-decoration: underline; text-underline-offset: 3px; overflow-wrap: anywhere; }
@media (min-width: 1100px) { .reference-grid { grid-template-columns: repeat(3, minmax(0,1fr)); } .reference-grid .project-card-body { padding: 28px; } }

.contact-form{margin-top:32px;background:#fff;color:#102238;border:1px solid #d8e3ee;border-radius:24px;padding:clamp(20px,4vw,42px);max-width:900px;scroll-margin-top:110px}
.contact-form h3{font-size:clamp(1.4rem,3vw,2rem);margin:0 0 12px}.contact-form p{line-height:1.65}.contact-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin:24px 0}.contact-form label{display:flex;flex-direction:column;gap:8px;font-weight:600}.contact-form label span{font-weight:400}.contact-form-wide{grid-column:1/-1}.contact-form input,.contact-form textarea{box-sizing:border-box;width:100%;min-width:0;border:1px solid #94a9bf;border-radius:10px;padding:12px;font:inherit;color:#102238;background:#fff}.contact-form textarea{resize:vertical}.contact-form input:focus,.contact-form textarea:focus{outline:3px solid #2485d8;outline-offset:2px}.contact-form-privacy,#contact-form-status{font-size:.95rem}.contact-form a{color:#075da4;text-decoration:underline}.contact-form button{border:0;font:inherit;cursor:pointer}.contact-form button:disabled{opacity:.55;cursor:not-allowed}.contact-form-trap{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}@media(max-width:600px){.contact-form-grid{grid-template-columns:1fr}.contact-form{border-radius:16px}}
