/* Location pages extend the existing visual system. */
.location-page .page-header p { opacity: 1; }
.location-actions { display: flex; flex-wrap: wrap; justify-content: center; gap: 16px; margin-top: 26px; }
.breadcrumbs { padding-top: 24px; }
.breadcrumbs ol { display: flex; flex-wrap: wrap; list-style: none; gap: 10px; font-size: .9rem; }
.breadcrumbs li + li::before { content: '›'; margin-right: 10px; color: var(--gray); }
.breadcrumbs a, .location-lead a, .location-text-link, .location-source a, .location-planning a { color: var(--green-darkest); text-decoration: underline; text-underline-offset: 3px; }
.location-page .section__title { margin-bottom: 24px; }
.location-lead { max-width: 78ch; margin-bottom: 24px; color: var(--gray-dark); }
.locations-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; }
.location-card { display: flex; flex-direction: column; }
.location-card__link { display: block; margin-top: 22px; color: var(--green-darkest); font-weight: 600; }
.location-card .location-card__link { margin-top: auto; padding-top: 22px; }
.location-planning { background: var(--off-white); border-left: 4px solid var(--green-dark); border-radius: var(--radius-sm); padding: 28px; max-width: 80ch; margin: 24px 0; }
.location-planning h3 { margin-bottom: 12px; }
.location-section--tint { background: var(--off-white); }
.location-source { margin: 20px 0; font-size: .9rem; overflow-wrap: anywhere; }
.location-steps { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 36px; padding-left: 24px; }
.location-steps li { padding-left: 8px; }
.location-steps h3 { margin-bottom: 12px; }
.location-list { padding-left: 24px; }
.location-faq { max-width: 80ch; }
.location-faq details { padding: 20px 0; border-bottom: 1px solid var(--gray-border); }
.location-faq summary { font-weight: 600; cursor: pointer; }
.location-faq details p { padding-top: 16px; color: var(--gray-dark); }
.location-page .cta-banner__text a { color: inherit; text-decoration: underline; overflow-wrap: anywhere; }
.skip-link { position: fixed; top: -100px; left: 16px; background: white; color: var(--green-darkest); padding: 12px 20px; z-index: 2000; }
.skip-link:focus { top: 10px; }
.location-page a:focus-visible, .location-page summary:focus-visible { outline: 3px solid var(--green-mid); outline-offset: 5px; }
@media (max-width: 900px) { .locations-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 600px) {
  .locations-grid, .location-steps { grid-template-columns: minmax(0, 1fr); }
  .location-actions { flex-direction: column; align-items: stretch; }
  .location-actions .btn { white-space: normal; text-align: center; }
  .location-planning { padding: 20px; }
  .location-page h1 { overflow-wrap: anywhere; }
}
@media (prefers-reduced-motion: reduce) { .location-page *, .location-page *::before { transition: none !important; animation: none !important; scroll-behavior: auto !important; } }
