/* Local service directory: extends EHFID's existing type and colour system. */
.local-hero { padding-top: calc(var(--header-h) + 46px); padding-bottom: 52px; }
.local-breadcrumb { display: flex; flex-wrap: wrap; gap: 8px 14px; margin-bottom: 36px; font-size: .84rem; color: var(--muted); }
.local-breadcrumb a { text-decoration: underline; text-underline-offset: 4px; }
.local-hero h1 { max-width: 980px; font-size: clamp(2.6rem, 5.7vw, 5.7rem); line-height: 1.08; margin-bottom: 26px; overflow-wrap: anywhere; }
.local-hero .lead { max-width: 850px; }
.local-remote { max-width: 780px; color: var(--muted); font-size: .95rem; margin-block: 24px; }
.local-layout { display: grid; grid-template-columns: minmax(0, 2fr) minmax(0, 1fr); gap: clamp(40px, 7vw, 100px); border-top: 1px solid var(--line); padding-top: 48px; }
.local-content { display: grid; gap: 44px; }
.local-content h2, .local-aside h2, .local-related h2, .local-directory h2 { font-size: clamp(1.65rem, 2.6vw, 2.5rem); line-height: 1.16; }
.local-content p { color: var(--ink-soft); }
.local-checklist { padding-left: 22px; }
.local-checklist li { padding-left: 6px; margin-block: 12px; }
.local-source { display: inline-block; color: var(--ink); text-decoration: underline; text-underline-offset: 5px; padding-block: 8px; overflow-wrap: anywhere; }
.local-aside { align-self: start; position: sticky; top: calc(var(--header-h) + 24px); background: var(--paper-warm); padding: clamp(22px, 3vw, 38px); }
.local-aside h2 { font-size: 1.8rem; }
.local-aside p { margin-block: 22px 8px; }
.local-aside .button { margin-block: 22px 10px; }
.local-aside > a { max-width: 100%; }
.local-related { border-top: 1px solid var(--line); margin-top: 64px; padding-block: 40px 64px; }
.local-related ul, .local-canton-nav ul { list-style: none; padding: 0; display: flex; flex-wrap: wrap; gap: 8px 28px; }
.local-related li a, .local-canton-nav a { display: inline-block; min-height: 44px; padding-block: 10px; text-decoration: underline; text-underline-offset: 5px; }
.local-directory { padding-bottom: 80px; }
.local-canton-nav { border-block: 1px solid var(--line); padding-block: 6px; }
.local-canton { scroll-margin-top: calc(var(--header-h) + 20px); padding-top: 56px; }
.local-canton-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 60px; }
.local-canton-grid .local-canton { padding-bottom: 30px; border-bottom: 1px solid var(--line); }
.local-sources { padding-left: 22px; }
.local-city-links { list-style: none; padding: 0; display: flex; flex-wrap: wrap; gap: 4px 24px; }
.local-city-links a { display: inline-block; min-height: 44px; padding-block: 10px; text-decoration: underline; text-underline-offset: 4px; }
.local-services dt { font-weight: 600; margin-top: 24px; }
.local-services dt a { display: inline-block; min-height: 44px; padding-block: 10px; text-decoration: underline; text-underline-offset: 4px; }
.local-services dd { margin: 0; color: var(--ink-soft); }
.local-directory-contact { margin-top: 64px; border-top: 1px solid var(--line); padding-top: 40px; max-width: 780px; }
.local-home { border-top: 1px solid var(--line); }
.local-home .lead { margin-bottom: 28px; }
.local-home-links { display: flex; flex-wrap: wrap; gap: 10px 28px; list-style: none; padding: 0; margin-bottom: 26px; }
.local-home-links a { display: inline-block; padding-block: 10px; text-decoration: underline; text-underline-offset: 5px; }
@media (max-width: 900px) {
  .local-layout { grid-template-columns: minmax(0, 1fr); }
  .local-aside { position: static; max-width: 680px; }

}
@media (max-width: 540px) {
  .local-hero { padding-top: calc(var(--header-h) + 28px); padding-bottom: 36px; }
  .local-breadcrumb { margin-bottom: 28px; }
  .local-canton-grid { grid-template-columns: minmax(0, 1fr); }
  .local-content { gap: 32px; }
  .local-layout { padding-top: 32px; }
  .local-canton { padding-top: 36px; }
  .local-page .button { white-space: normal; text-align: center; }
}
