/* Municipal service content and navigation; keeps the existing brand and mobile dock. */
.local-page { --local-line: #dce7ee; }
.local-page .section { padding-block: 64px; }
.local-page .service-hero .section { padding-block: 42px 46px; }
.local-page .service-hero h1 { max-width: 970px; font-size: clamp(32px, 4.2vw, 54px); line-height: 1.1; overflow-wrap: anywhere; }
.local-page .service-hero .lead { max-width: 810px; }
.service-hero .breadcrumbs { color: #d0deea; }
.service-hero .breadcrumbs a { color: #f9d568; }
.local-hero-link { display: inline-flex; align-items: center; gap: 12px; margin-top: 22px; min-height: 44px; color: #ffda50; font-size: 14px; font-weight: 750; }
.local-section-heading { max-width: 820px; margin-bottom: 28px; }
.local-page h2 { font-size: clamp(26px, 3.2vw, 40px); line-height: 1.12; margin-bottom: 16px; }
.local-page p { color: var(--muted); line-height: 1.7; }
.local-page .lead { font-size: 17px; }
.local-services-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; align-items: start; }
.local-service { min-width: 0; padding: 24px; border: 1px solid var(--local-line); border-radius: 17px; background: #fff; box-shadow: 0 5px 18px #071c2d05; scroll-margin-top: 135px; }
.local-service-heading { display: flex; gap: 12px; align-items: flex-start; margin-bottom: 13px; }
.local-service-number { flex: 0 0 33px; width: 33px; height: 33px; border-radius: 9px; display: grid; place-items: center; background: #fff3c3; color: #6b5210; font-size: 11px; font-weight: 800; }
.local-service h3 { min-width: 0; font-size: 20px; line-height: 1.22; padding-top: 3px; letter-spacing: -.025em; }
.local-service > p { font-size: 15px; margin: 0; }
.local-service-detail { margin-top: 16px; border-top: 1px solid #e7eef3; }
.local-service-detail > summary { cursor: pointer; display: flex; justify-content: space-between; align-items: center; gap: 14px; list-style: none; min-height: 48px; padding-block: 12px; color: #08649e; font-size: 14px; font-weight: 750; line-height: 1.4; }
.local-service-detail > summary::-webkit-details-marker { display: none; }
.local-service-detail > summary::after { content: '+'; flex: 0 0 20px; font-size: 21px; text-align: center; font-weight: 450; }
.local-service-detail[open] > summary::after { content: '−'; }
.local-service-detail p { font-size: 14px; margin: 0 0 13px; }
.local-service-detail strong { color: var(--ink); }
.local-guide-link { display: inline-flex; align-items: center; gap: 12px; min-height: 44px; margin-top: 8px; font-size: 14px; font-weight: 750; color: #08649e; }
.local-process { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 15px; }
.local-process article { padding: 22px; border: 1px solid var(--local-line); border-radius: 16px; background: #fff; }
.local-process article > span { display: block; font-size: 12px; color: #6f5719; font-weight: 800; margin-bottom: 14px; }
.local-process h3 { font-size: 18px; line-height: 1.25; margin-bottom: 10px; }
.local-process p { font-size: 14px; }
.local-safety { margin-top: 25px; padding: 18px 20px; border-radius: 12px; background: #fff7df; color: #59491f; border: 1px solid #eddba4; font-size: 14px; line-height: 1.65; }
.local-faq { max-width: 900px; }
.local-faq details { border-bottom: 1px solid var(--local-line); }
.local-faq summary { cursor: pointer; padding: 19px 4px; font-size: 16px; line-height: 1.5; font-weight: 750; }
.local-faq details p { padding: 0 4px 19px; font-size: 15px; }
.local-contact { background: #0c2a41; color: #fff; }
.local-contact-layout { display: grid; grid-template-columns: .85fr 1.15fr; gap: 50px; align-items: start; }
.local-contact h2 { color: #fff; }
.local-contact p { color: #d1dee8; margin-top: 18px; }
.local-contact .eyebrow { color: #bcd0df; }
.local-contact .field input, .local-contact .field select, .local-contact .field textarea { font-size: 16px; min-height: 46px; }
.local-contact .wa-form { min-width: 0; }
.local-contact .wa-submit { gap: 10px; font-size: 15px; line-height: 1.4; }
.local-contact .form-help { line-height: 1.6; }
.local-directory > p { max-width: 740px; }
.local-other-towns { display: flex; flex-wrap: wrap; gap: 9px; margin-top: 18px; }
.local-other-towns a { display: inline-flex; gap: 12px; align-items: center; min-height: 44px; border: 1px solid var(--local-line); border-radius: 10px; padding: 10px 13px; font-size: 14px; }
.local-other-towns a:hover, .town-chip[href]:hover { background: #fff5cd; border-color: #d9b83f; }
.local-references { margin-top: 28px; padding-top: 18px; border-top: 1px solid var(--local-line); font-size: 13px; }
.local-references summary { cursor: pointer; min-height: 40px; }
.local-references ul { padding-left: 22px; }
.local-references a { text-decoration: underline; text-underline-offset: 3px; }
.town-chip[href] { min-height: 44px; align-items: center; }
nav.alphabet { width: 100%; height: auto; min-height: 0; margin: 24px 0; justify-content: flex-start; gap: 8px; }
nav.alphabet a { min-width: 44px; height: 44px; }
/* Links without a numeric prefix must not inherit the 40px first column. */
.demand > span:first-child { grid-column: 1 / 3; min-width: 0; }
.demand > i:last-child { grid-column: 3; justify-self: end; }
.local-page a:focus-visible, .local-page summary:focus-visible, .town-chip[href]:focus-visible { outline: 3px solid #1679bc; outline-offset: 3px; }
@media (max-width: 950px) {
  .local-services-grid { grid-template-columns: minmax(0, 1fr); }
  .local-process { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 760px) {
  .local-contact-layout { grid-template-columns: minmax(0, 1fr); gap: 24px; }
  .local-contact .form-grid { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 650px) {
  .service-hero .actions { display: none; }
  .service-hero .section, .local-page .service-hero .section { padding-block: 24px 28px; }
  .service-hero .eyebrow { display: none; }
  .service-hero h1, .local-page .service-hero h1 { font-size: clamp(29px, 7.8vw, 35px); line-height: 1.12; }
  .service-hero .lead, .local-page .lead { font-size: 15px; line-height: 1.65; }
  .service-hero .breadcrumbs { margin-bottom: 18px; font-size: 11px; line-height: 1.6; }
  .local-page .section { padding-block: 38px; }
  .local-page h2 { font-size: 27px; }
  .local-services-grid { grid-template-columns: minmax(0, 1fr); gap: 12px; }
  .local-service { padding: 18px; border-radius: 14px; }
  .local-service h3 { font-size: 18px; }
  .local-service > p { font-size: 14px; }
  .local-service-detail > summary { font-size: 13px; }
  .local-process { grid-template-columns: minmax(0, 1fr); gap: 12px; }
  .local-process article { padding: 19px; }
  .local-faq summary { font-size: 15px; }
  .local-other-towns a { width: 100%; justify-content: space-between; }
  .local-hero-link { margin-top: 12px; }
  nav.alphabet { gap: 6px; }
  .demand { min-height: 52px; padding: 12px 14px; grid-template-columns: 28px minmax(0, 1fr) 20px; }
}
/* Compact small-phone spacing without shrinking readable body text. */
@media (max-width: 360px) {
  .local-service { padding: 15px 16px; }
  .local-service-heading { gap: 10px; margin-bottom: 9px; }
  .local-service-detail { margin-top: 10px; }
  .local-service-detail > summary { min-height: 44px; padding-block: 10px; }
}

/* Geography informs the address of the request, never a claimed company location. */
.local-place-section { display:grid; grid-template-columns:1.2fr .8fr; gap:30px; padding-block:38px; border-bottom:1px solid var(--local-line); align-items:start; }
.local-place-section h2 { font-size:clamp(23px,2.6vw,30px); }
.local-place-section p { font-size:15px; max-width:720px; }
.local-place-reference { min-width:0; padding:18px 20px; background:#f4f8fb; border:1px solid #dce7ee; border-radius:14px; }
.local-place-reference dl { display:grid; gap:10px; margin:0 0 14px; }
.local-place-reference dl div { display:grid; grid-template-columns:140px minmax(0,1fr); gap:10px; font-size:13px; line-height:1.5; }
.local-place-reference dt { color:#506a7d; }
.local-place-reference dd { margin:0; font-weight:700; overflow-wrap:anywhere; }
.local-place-reference a { display:inline-flex; align-items:center; gap:8px; min-height:44px; font-size:13px; font-weight:700; color:#08649e; }
.local-place-reference small { display:block; color:#536b7d; font-size:11px; }
.local-prepare-link { display:inline-flex; align-items:center; gap:10px; min-height:44px; font-size:14px; font-weight:700; color:#08649e; }
.local-service > .local-guide-link { margin-top:0; }
.local-place-section a:focus-visible { outline:3px solid #1679bc; outline-offset:3px; }
@media(max-width:850px) { .local-place-section { grid-template-columns:minmax(0,1fr); gap:20px; padding-block:28px; } }
@media(max-width:650px) { .local-place-section p { font-size:14px; } .local-place-reference { padding:15px 17px; } .local-place-reference dl div { grid-template-columns:125px minmax(0,1fr); } }
@media(max-width:360px) { .local-service h3 { font-size:17px; } }

.madrid-local-extra{display:grid;grid-template-columns:1fr .82fr;gap:30px;align-items:center;padding-block:38px;border-bottom:1px solid var(--local-line)}
.madrid-local-extra h2{font-size:clamp(23px,2.6vw,31px);margin-bottom:12px}
.madrid-local-extra p{font-size:15px;max-width:700px}
.madrid-local-extra img{width:100%;height:300px;object-fit:cover;border-radius:16px;border:1px solid #dce7ee}
.madrid-postal{margin-top:14px;padding:12px 14px;background:#fff7d7;border:1px solid #ead27a;border-radius:10px}
@media(max-width:850px){.madrid-local-extra{grid-template-columns:1fr;gap:20px;padding-block:28px}.madrid-local-extra img{height:260px}}

.town-more{margin-top:12px;border-top:1px solid #e6edf2;padding-top:10px}
.town-more summary{cursor:pointer;min-height:42px;display:flex;align-items:center;color:#08649e;font-size:12px;font-weight:800}
.town-chips-more{margin-top:8px}
.coverage-summary{background:#fff}
.coverage-summary .lead{max-width:820px}
.coverage-summary-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:28px}
.coverage-summary-group{border:1px solid #dce7ee;border-radius:14px;background:#f8fafc;padding:0 18px}
.coverage-summary-group summary{cursor:pointer;min-height:58px;display:flex;align-items:center;font-weight:800;color:#10283b}
.coverage-summary-group p{padding:0 0 12px;font-size:13px;line-height:1.75}
.coverage-summary-group a{display:inline-flex;min-height:44px;align-items:center;color:#08649e;font-size:13px;font-weight:800;margin-bottom:12px}
@media(max-width:700px){.coverage-summary-grid{grid-template-columns:1fr}.coverage-summary-group{padding-inline:15px}}
