/* FEPREMI: directorio, mapa y contactos. */
.fepremi-directorio{margin:3rem auto;max-width:1400px;padding:1rem}
.fepremi-directorio [hidden]{display:none!important}
.fepremi-directorio button{border:1px solid #004b51;background:#004b51;color:#fff;border-radius:99px;padding:.7rem 1.1rem;font:inherit;cursor:pointer}
.fepremi-directorio button:disabled{opacity:.55;cursor:not-allowed}
.fepremi-directorio :focus-visible{outline:2px solid #004b51;outline-offset:4px}

/* Filtros y columnas. */
.fd-filtros{display:flex;gap:1rem;flex-wrap:wrap}
.fd-filtros label{flex:1;min-width:180px}
.fd-filtros input,.fd-filtros select{display:block;width:100%;padding:.8rem;border:1px solid #cbd9d8;border-radius:6px;font:inherit}
.fd-layout{display:grid;grid-template-columns:1fr 1fr;gap:2rem}
/* Contiene los textos accesibles absolutos: evita scroll después del footer. */
.fepremi-directorio .fd-list{position:relative}
.fd-list{max-height:680px;overflow:auto;padding-right:1rem;scrollbar-width:thin;scrollbar-color:#9ab1a8 transparent}

/* Tarjetas. */
.fd-card{padding:1.4rem;margin:0 0 .85rem;border:1px solid #dce5e4;border-radius:14px;background:#ffffff70;transition:background .2s,border-color .2s,box-shadow .2s}
.fd-card.is-selected{background:#edf3e6;border-color:#004b51;box-shadow:inset 4px 0 #004b51}
.fd-card>p:first-child{font-size:.8rem;letter-spacing:.04em;text-transform:uppercase;color:#526d69}
.fd-card h3{margin:.4rem 0;font-size:1.45rem;line-height:1.25}
.fd-text{white-space:pre-line}
.fd-card a{display:inline-block;margin-top:1rem}
.fd-card button{margin-top:1rem}
.fd-card details{margin-top:.75rem}
.fd-card summary{cursor:pointer}
.fd-actions{display:flex;align-items:center;gap:.65rem;flex-wrap:wrap;margin:1.1rem 0}
.fd-card .fd-actions button,.fd-card .fd-actions a{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;margin:0;min-height:44px;padding:.7rem 1rem;line-height:1.2;text-decoration:none;border-radius:99px;font-size:.9rem}
.fd-directions{color:#004b51;border:1px solid #b8ccc5;background:transparent}
.fd-directions:hover{background:#e3e9dd;border-color:#004b51}
.fd-icon{width:19px;height:19px;flex:none}
.fd-pending,.fd-location-note,.fd-info-note{font-size:.8rem;color:#526d69;line-height:1.5}
.fd-info-note{margin:.7rem 0 0}
.fd-details{border-top:1px solid #dce5e4}
.fd-card .fd-details summary{display:flex;align-items:center;justify-content:space-between;gap:1rem;min-height:48px;padding:.7rem 0;font-size:.95rem;font-weight:500;list-style:none}
.fd-details summary::-webkit-details-marker{display:none}
.fd-card .fd-details summary::after{content:none}
.fd-chevron{font-size:1.3rem;transition:transform .2s}
.fd-details[open] .fd-chevron{transform:rotate(180deg)}
.fd-info-grid{display:grid;gap:1rem;padding:1rem;background:#f0f3eb;border-radius:10px}
.fd-info-grid h4{font-size:.75rem;letter-spacing:.06em;text-transform:uppercase;margin:0 0 .6rem;color:#526d69}
.fd-info-grid p{margin:.4rem 0;font-size:.9rem;overflow-wrap:anywhere}
.fd-card .fd-phone,.fd-popup .fd-phone{margin:0;font-weight:600;text-decoration:underline;text-underline-offset:3px}
.fd-card .screen-reader-text,.fd-popup .screen-reader-text{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}

/* Mapa sin margen interior. Se conserva la especificidad de las últimas reglas. */
.fd-map{align-self:start;position:sticky;top:110px;background:#e3e9dd;border-radius:3px}
body .fd-map{padding:0;overflow:hidden}
.fd-map [data-fd-map]{height:500px;width:100%}
body .fd-map [data-fd-map]{margin:0}
.fd-map iframe{width:100%;height:500px;border:0;border-radius:12px}
.fd-map h3{font-size:2rem;margin:.5rem 0 1rem}
.fd-map button,.fd-card button{font:inherit;cursor:pointer}
.fd-popup{color:#004b51;font:14px/1.45 sans-serif;padding:.35rem;max-width:260px}
.fd-popup strong{display:block;font-size:16px}
.fd-popup p{margin:.5rem 0}
.fd-popup .fd-directions{display:inline-flex;align-items:center;gap:.4rem;min-height:44px;padding:.45rem .7rem;border-radius:99px;text-decoration:none}
.fd-map .maplibregl-popup-close-button{padding:0 .45rem;min-width:28px;min-height:28px;border:0;background:transparent;color:#004b51;border-radius:4px}
.fd-map .maplibregl-ctrl button{padding:0;border-radius:0;background:#fff;color:#004b51}

/* Reglas existentes de la página; el tema conserva sus ajustes posteriores. */
.page-id-9 .interior-hero{min-height:0}
.page-id-9 .interior-hero-copy{padding-top:1.5rem;padding-bottom:1.5rem}
.page-id-9 .interior-hero h1{font-size:clamp(2rem,4vw,3.5rem);margin:.5rem 0}
.page-id-9 .interior-body{display:flex;flex-direction:column;padding-top:1rem}
.page-id-9 .interior-body>.fepremi-directorio{order:-1;width:100%;box-sizing:border-box;margin:0 auto 1.5rem}

@media(max-width:760px){
  .fd-layout{grid-template-columns:1fr}
  .fd-list{max-height:480px;padding-right:.4rem}
  .fd-map{position:static;order:-1}
  .fd-map iframe,.fd-map [data-fd-map]{height:350px}
  .fd-card{padding:1.1rem}
  .fd-actions{gap:.5rem}
  .fd-card .fd-actions button,.fd-card .fd-actions a{font-size:.85rem}
}
@media(prefers-reduced-motion:reduce){.fd-card,.fd-chevron{transition:none}}
body .fd-map {
  border: 1px solid #b8ccc5;
  border-radius: 14px;
  box-sizing: border-box;
}