/* Listado completo: estilos aislados de la página para conservar el resto del sitio. */
body.page-locales-listado {
  margin: 0;
  background: var(--rosado);
  color: var(--negro);
  font-family: 'Owners', sans-serif;
  font-size: 1.125rem;
  line-height: 1.5;
  -webkit-font-smoothing: antialiased;
}

body.page-locales-listado :where(#directory-main) *,
body.page-locales-listado :where(#directory-main) *::before,
body.page-locales-listado :where(#directory-main) *::after { box-sizing: border-box; }
body.page-locales-listado [hidden] { display: none !important; }
body.page-locales-listado :where(#directory-main) :is(h1, h2, h3, h4, p, ul, ol) { margin: 0; }
body.page-locales-listado :where(#directory-main) :is(ul, ol) { padding: 0; list-style: none; }
body.page-locales-listado :where(#directory-main) :is(img, svg) { display: block; max-width: 100%; }
body.page-locales-listado :where(#directory-main) a { color: inherit; text-decoration: none; }
body.page-locales-listado :where(#directory-main) :is(button, input) { font: inherit; }
body.page-locales-listado :where(#directory-main) button { cursor: pointer; }
body.page-locales-listado :focus-visible { outline: .1875rem solid var(--negro); outline-offset: .25rem; }
body.page-locales-listado :where(#directory-main) :is(h1, h2, h3, h4, .directory-display) {
  font-family: 'OwnersXXNarrow-XBlack', sans-serif;
  font-weight: 900;
}
body.page-locales-listado .directory-frame {
  width: calc(100% - 5rem);
  max-width: 84rem;
  margin-inline: auto;
}
body.page-locales-listado .directory-icon { width: 1.375rem; height: 1.375rem; flex: 0 0 1.375rem; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
body.page-locales-listado .directory-symbols { position: absolute; width: 0; height: 0; overflow: hidden; pointer-events: none; }
body.page-locales-listado .directory-skip { position: fixed; z-index: 200; top: 1rem; left: 1rem; padding: .75rem 1rem; border-radius: .5rem; background: var(--negro); color: #fff; transform: translateY(-200%); }
body.page-locales-listado .directory-skip:focus { transform: none; outline: .1875rem solid var(--amarillo); }

/* Entrada breve: el listado sigue siendo el contenido protagonista. */
body.page-locales-listado .directory-hero { padding-top: 15.25rem; background: var(--amarillo); }
body.page-locales-listado .directory-hero-grid { display: grid; grid-template-columns: minmax(0, 1fr); gap: 3rem; align-items: center; padding-bottom: 1.75rem; }
body.page-locales-listado .directory-eyebrow { margin-bottom: .75rem; font-family: 'Owners Narrow', sans-serif; font-weight: 700; font-size: 1.125rem; letter-spacing: .1rem; text-transform: uppercase; }
body.page-locales-listado .directory-title { max-width: 55rem; font-size: 4.75rem; line-height: 1.02; letter-spacing: .025rem; text-transform: uppercase; scroll-margin-top: 10rem; }
body.page-locales-listado .directory-title span { color: var(--rosado); }
body.page-locales-listado .directory-intro { max-width: 52rem; margin-top: 1rem; font-size: 1.125rem; line-height: 1.45; }
body.page-locales-listado .directory-map-cta,
body.page-locales-listado .directory-directions {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .625rem;
  min-height: 3.125rem;
  padding: .625rem 1.5rem;
  border: .125rem solid var(--negro);
  border-radius: 50rem;
  background: var(--negro);
  color: #fff;
  font-family: 'OwnersXXNarrow-XBlack', sans-serif;
  font-weight: 900;
  font-size: 1.625rem;
  line-height: 1.15;
  letter-spacing: .025rem;
  text-align: center;
  text-transform: uppercase;
  transition: background-color .18s ease, color .18s ease;
}
body.page-locales-listado .directory-map-cta { margin-top: 1.875rem; }
body.page-locales-listado .directory-hero .directory-map-cta { min-height: 3rem; margin-top: 1.25rem; padding-block: .5rem; }
body.page-locales-listado :where(#directory-main) :is(.directory-map-cta, .directory-directions):hover { background: var(--rosado); border-color: var(--rosado); color: #fff; }
body.page-locales-listado :where(#directory-main) :is(.directory-map-cta, .directory-directions):focus-visible { outline-color: var(--rosado); }
body.page-locales-listado .directory-wave { display: block; width: 100%; height: auto; max-height: 4.5rem; margin-bottom: -.0625rem; overflow: visible; }

body.page-locales-listado .directory-content { padding-block: 3rem 4.5rem; background: #fff; }
body.page-locales-listado .directory-tools { display: grid; grid-template-columns: minmax(0, 1fr) minmax(18rem, 25rem); gap: 3rem; align-items: end; margin-bottom: 2.5rem; }
body.page-locales-listado .directory-kicker { color: var(--rosado); font-family: 'OwnersXXNarrow-XBlack', sans-serif; font-weight: 900; font-size: 1.5rem; line-height: 1.1; text-transform: uppercase; letter-spacing: .025rem; margin-bottom: .5rem; }
body.page-locales-listado .directory-list-title { font-size: 3.5rem; line-height: 1.05; text-transform: uppercase; scroll-margin-top: 13rem; }
/* El estado de búsqueda se anuncia sin añadir contadores al diseño. */
body.page-locales-listado .directory-search-status {
  position: absolute;
  width: .0625rem;
  height: .0625rem;
  margin: -.0625rem;
  padding: 0;
  border: 0;
  overflow: hidden;
  clip-path: inset(50%);
  white-space: nowrap;
}
body.page-locales-listado .directory-search-field > label { display: block; margin-bottom: .5rem; font-family: 'Owners Narrow', sans-serif; font-weight: 700; font-size: 1.125rem; }
body.page-locales-listado .directory-search-control { display: flex; align-items: center; gap: .625rem; min-height: 3.5rem; padding: .5rem .75rem; border: .125rem solid var(--negro); border-radius: .75rem; background: #fff; }
body.page-locales-listado .directory-search-control:focus-within { outline: .1875rem solid var(--amarillo); outline-offset: .125rem; }
body.page-locales-listado .directory-search-control > svg { width: 1.5rem; height: 1.5rem; flex: 0 0 1.5rem; }
body.page-locales-listado #directory-search { width: 100%; min-width: 0; padding: .375rem 0; border: 0; background: transparent; color: var(--negro); font-size: 1.125rem; line-height: 1.4; }
body.page-locales-listado #directory-search::placeholder { color: #686868; opacity: 1; }
body.page-locales-listado #directory-search:focus-visible { outline: none; }
body.page-locales-listado #directory-search::-webkit-search-cancel-button { -webkit-appearance: none; }
body.page-locales-listado #directory-clear { display: inline-flex; align-items: center; justify-content: center; flex: 0 0 2.5rem; width: 2.5rem; min-height: 2.5rem; padding: .375rem; border: 0; border-radius: 50%; background: var(--negro); color: #fff; line-height: 1; }
body.page-locales-listado #directory-clear svg { width: 1.125rem; height: 1.125rem; }

/* Índice y regiones: todo el contenido queda en el flujo normal del documento. */
body.page-locales-listado .directory-layout { display: grid; grid-template-columns: 14rem minmax(0, 1fr); align-items: start; gap: 3rem; }
body.page-locales-listado .directory-index { position: sticky; top: 8.5rem; min-width: 0; max-height: calc(100dvh - 10rem); overflow-y: auto; scrollbar-width: thin; padding: 1.375rem; border-radius: 1rem; background: var(--negro); color: #fff; }
body.page-locales-listado .directory-index-title { color: var(--amarillo); font-size: 1.875rem; line-height: 1.1; margin-bottom: 1rem; text-transform: uppercase; }
body.page-locales-listado .directory-index ul { display: grid; gap: .125rem; }
body.page-locales-listado .directory-region-link { display: flex; align-items: center; justify-content: space-between; gap: .625rem; min-height: 3.625rem; padding: .75rem 0; border-bottom: .0625rem solid #424242; line-height: 1.3; }
body.page-locales-listado .directory-index li:last-child .directory-region-link { border-bottom: 0; }
body.page-locales-listado .directory-region-name { min-width: 0; font-size: 1.0625rem; }
body.page-locales-listado .directory-region-link:hover .directory-region-name,
body.page-locales-listado .directory-region-link[aria-current="true"] .directory-region-name,
body.page-locales-listado .directory-region-link[aria-current="location"] .directory-region-name { color: var(--amarillo); }
body.page-locales-listado .directory-index :focus-visible { outline-color: var(--amarillo); }
body.page-locales-listado .directory-groups { min-width: 0; }
body.page-locales-listado :where(#directory-main) :is(.directory-region, .directory-commune, #contenido, #listado) { scroll-margin-top: 10rem; }
body.page-locales-listado .directory-region + .directory-region { margin-top: 3.75rem; }
body.page-locales-listado .directory-region-heading { display: flex; justify-content: space-between; align-items: center; gap: 1rem; border-bottom: .1875rem solid var(--rosado); padding-bottom: 1rem; margin-bottom: 1.5rem; font-family: 'OwnersXXNarrow-XBlack', sans-serif; font-weight: 900; font-size: 3.125rem; line-height: 1.08; text-transform: uppercase; }
body.page-locales-listado .directory-region-heading h2 { font: inherit; }
body.page-locales-listado .directory-region-heading > :first-child { min-width: 0; }
body.page-locales-listado .directory-commune + .directory-commune { margin-top: 1.75rem; }
body.page-locales-listado .directory-commune-title { color: var(--rosado); margin-bottom: .75rem; font-family: 'Owners Narrow', sans-serif; font-size: 1.5rem; line-height: 1.2; font-weight: 700; letter-spacing: .025rem; text-transform: uppercase; }
body.page-locales-listado .directory-store-list { display: grid; gap: .875rem; }
body.page-locales-listado .directory-card { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr) 9.5rem; gap: 1.5rem; padding: 1.5rem; border: .0625rem solid #dfdfd7; border-radius: 1rem; background: #fff; box-shadow: 0 .25rem .875rem rgba(13, 13, 13, .035); }
body.page-locales-listado .directory-card-main,
body.page-locales-listado .directory-card-hours { min-width: 0; }
body.page-locales-listado .directory-store-name { margin-bottom: .625rem; font-size: 2.25rem; line-height: 1.08; letter-spacing: .0125rem; text-transform: uppercase; }
body.page-locales-listado .directory-address { display: flex; gap: .5rem; align-items: flex-start; font-size: 1.0625rem; line-height: 1.5; font-style: normal; overflow-wrap: anywhere; }
body.page-locales-listado .directory-address > svg { margin-top: .125rem; flex-shrink: 0; }
body.page-locales-listado .directory-services { display: flex; flex-wrap: wrap; gap: .375rem .5rem; margin-top: .875rem; }
body.page-locales-listado .directory-services li { display: inline-flex; gap: .375rem; align-items: center; padding: .25rem .5rem; border-radius: .375rem; background: #fff8cc; font-size: .9375rem; line-height: 1.35; }
body.page-locales-listado .directory-services li :is(svg, img) { width: 1.125rem; height: 1.125rem; flex: 0 0 1.125rem; object-fit: contain; }
body.page-locales-listado .directory-field-label { margin-bottom: .5rem; font-family: 'OwnersXXNarrow-XBlack', sans-serif; font-weight: 900; font-size: 1.375rem; line-height: 1.15; text-transform: uppercase; }
body.page-locales-listado .directory-hours { display: grid; gap: .375rem; font-size: 1.0625rem; line-height: 1.5; }
body.page-locales-listado .directory-hours li { overflow-wrap: anywhere; }
body.page-locales-listado .directory-card-actions { display: flex; flex-direction: column; align-items: stretch; justify-content: center; gap: .75rem; }
body.page-locales-listado .directory-directions { min-height: 2.875rem; padding: .5rem .75rem; font-size: 1.375rem; }
body.page-locales-listado .directory-directions .directory-icon { width: 1.125rem; height: 1.125rem; flex-basis: 1.125rem; }
body.page-locales-listado .directory-map-link { display: inline-flex; justify-content: center; align-items: center; gap: .375rem; align-self: center; padding: .25rem 0; font-family: 'Owners Narrow', sans-serif; font-size: 1.0625rem; font-weight: 700; text-align: center; text-decoration: underline; text-underline-offset: .1875rem; }
body.page-locales-listado .directory-map-link:hover { color: var(--rosado); }
body.page-locales-listado .directory-empty { padding: 3rem 2rem; border: .125rem dashed var(--rosado); border-radius: 1rem; text-align: center; }
body.page-locales-listado .directory-empty h2 { font-size: 3rem; line-height: 1.1; }
body.page-locales-listado .directory-empty p { margin-top: .75rem; }
body.page-locales-listado .directory-empty button { margin-top: 1.25rem; padding: .625rem 1.375rem; min-height: 3.125rem; border: .125rem solid var(--negro); border-radius: 50rem; background: var(--negro); color: #fff; font-family: 'OwnersXXNarrow-XBlack', sans-serif; font-weight: 900; font-size: 1.625rem; }
body.page-locales-listado .directory-layout:has(.directory-empty:not([hidden])) { grid-template-columns: minmax(0, 1fr); }
body.page-locales-listado .directory-layout:has(.directory-empty:not([hidden])) .directory-index { display: none; }
body.page-locales-listado .directory-bottom-cta { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 2rem; margin-top: 4rem; padding: 2.5rem; border-radius: 1.25rem; background: var(--amarillo); }
body.page-locales-listado .directory-bottom-cta h2 { font-size: 3rem; line-height: 1.1; text-transform: uppercase; }
body.page-locales-listado .directory-bottom-cta p { margin-top: .75rem; }
body.page-locales-listado .directory-bottom-cta .directory-map-cta { margin-top: 0; }


@media (max-width: 75rem) {
  body.page-locales-listado .directory-title { font-size: 4.5rem; }
  body.page-locales-listado .directory-layout { grid-template-columns: 13rem minmax(0, 1fr); gap: 2rem; }
  body.page-locales-listado .directory-card { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 1.25rem; }
  body.page-locales-listado .directory-card-actions { grid-column: 1 / -1; flex-direction: row; justify-content: flex-start; align-items: center; gap: 1.25rem; }
  body.page-locales-listado .directory-region-heading { font-size: 2.75rem; }
}

@media (max-width: 64rem) {
  body.page-locales-listado .directory-frame { width: calc(100% - 3rem); }
  body.page-locales-listado .directory-hero-grid { grid-template-columns: minmax(0, 1fr); gap: 2rem; }
  body.page-locales-listado .directory-tools { grid-template-columns: minmax(0, 1fr) 23rem; gap: 2rem; }
  body.page-locales-listado .directory-layout { grid-template-columns: minmax(0, 1fr); gap: 2rem; }
  body.page-locales-listado .directory-index { position: static; max-height: none; overflow-y: visible; padding: 1.5rem; }
  body.page-locales-listado .directory-index ul { display: flex; flex-wrap: wrap; gap: .5rem .875rem; }
  body.page-locales-listado .directory-index li { flex: 1 1 12rem; }
  body.page-locales-listado .directory-region-link { height: 100%; min-height: 3.75rem; padding: .625rem .75rem; border: .0625rem solid #525252; border-radius: .5rem; }
  body.page-locales-listado .directory-index li:last-child .directory-region-link { border-bottom: .0625rem solid #525252; }
  body.page-locales-listado .directory-card { grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr) 10rem; }
  body.page-locales-listado .directory-card-actions { grid-column: auto; flex-direction: column; align-items: stretch; justify-content: center; gap: .75rem; }
  body.page-locales-listado .directory-bottom-cta { padding: 2rem; }
}

@media (max-width: 48rem) {
  body.page-locales-listado { font-size: 1.333333rem; line-height: 1.5; }
  body.page-locales-listado .directory-frame { width: calc(100% - 2.5rem); }
      body.page-locales-listado .directory-hero { padding-top: 9rem; }
  body.page-locales-listado .directory-hero-grid { grid-template-columns: minmax(0, 1fr); gap: 2rem; padding-bottom: 2.5rem; }
  body.page-locales-listado .directory-eyebrow { font-size: 1.166667rem; }
  body.page-locales-listado .directory-title { font-size: 4.25rem; line-height: 1.05; letter-spacing: .025rem; scroll-margin-top: 9rem; }
  body.page-locales-listado .directory-intro { margin-top: 1.25rem; font-size: 1.333333rem; line-height: 1.5; }
  body.page-locales-listado .directory-map-cta { min-height: 3.75rem; font-size: 1.875rem; margin-top: 1.5rem; padding-inline: 1.5rem; }
  body.page-locales-listado .directory-hero .directory-map-cta { min-height: 3.75rem; margin-top: 1.5rem; padding-block: .625rem; }
  body.page-locales-listado .directory-content { padding-block: 2.5rem 3rem; }
  body.page-locales-listado .directory-tools { grid-template-columns: minmax(0, 1fr); gap: 1.75rem; margin-bottom: 2rem; }
  body.page-locales-listado .directory-kicker { font-size: 1.625rem; }
  body.page-locales-listado .directory-list-title { font-size: 3.25rem; line-height: 1.05; scroll-margin-top: 9rem; }
  body.page-locales-listado .directory-search-field > label { font-size: 1.333333rem; }
  body.page-locales-listado .directory-search-control { min-height: 4rem; gap: .75rem; }
  body.page-locales-listado #directory-search { font-size: 1.333333rem; line-height: 1.5; }
  body.page-locales-listado #directory-clear { width: 3.75rem; min-height: 3.75rem; flex-basis: 3.75rem; }
  body.page-locales-listado .directory-index { padding: 1.25rem; }
  body.page-locales-listado .directory-index-title { font-size: 2.25rem; }
  body.page-locales-listado .directory-index ul { flex-wrap: nowrap; max-width: 100%; overflow-x: auto; overscroll-behavior-x: contain; scrollbar-width: thin; gap: .625rem; padding-bottom: .5rem; }
  body.page-locales-listado .directory-index li { flex: 0 0 auto; }
  body.page-locales-listado .directory-region-link { white-space: nowrap; }
  body.page-locales-listado .directory-region-name { font-size: 1.25rem; line-height: 1.4; }
  body.page-locales-listado :where(#directory-main) :is(.directory-region, .directory-commune, #contenido, #listado) { scroll-margin-top: 9rem; }
  body.page-locales-listado .directory-region + .directory-region { margin-top: 3rem; }
  body.page-locales-listado .directory-region-heading { align-items: flex-start; font-size: 2.75rem; line-height: 1.1; margin-bottom: 1.5rem; }
  body.page-locales-listado .directory-commune-title { font-size: 1.75rem; line-height: 1.2; margin-bottom: .875rem; }
  body.page-locales-listado .directory-store-list { gap: 1rem; }
  body.page-locales-listado .directory-card { grid-template-columns: minmax(0, 1fr); gap: 1.5rem; padding: 1.5rem; border-radius: 1rem; }
  body.page-locales-listado .directory-store-name { font-size: 2.5rem; line-height: 1.1; margin-bottom: .75rem; }
  body.page-locales-listado .directory-address,
  body.page-locales-listado .directory-hours { font-size: 1.333333rem; line-height: 1.5; }
  body.page-locales-listado .directory-address { gap: .625rem; }
  body.page-locales-listado .directory-address > svg { margin-top: .25rem; }
  body.page-locales-listado .directory-services { margin-top: 1rem; gap: .5rem; }
  body.page-locales-listado .directory-services li { font-size: 1.166667rem; padding: .375rem .625rem; }
  body.page-locales-listado .directory-field-label { font-size: 1.75rem; line-height: 1.15; margin-bottom: .5rem; }
  body.page-locales-listado .directory-card-actions { grid-column: auto; flex-direction: row; justify-content: flex-start; align-items: center; flex-wrap: wrap; gap: .875rem 1.5rem; }
  body.page-locales-listado .directory-directions { min-height: 3.75rem; font-size: 1.75rem; padding: .625rem 1.25rem; }
  body.page-locales-listado .directory-map-link { display: inline-flex; align-items: center; align-self: auto; min-height: 3.75rem; font-size: 1.333333rem; line-height: 1.4; }
  body.page-locales-listado .directory-empty { padding: 2rem 1.5rem; }
  body.page-locales-listado .directory-empty h2 { font-size: 2.75rem; }
  body.page-locales-listado .directory-empty button { min-height: 3.75rem; font-size: 1.875rem; }
  body.page-locales-listado .directory-bottom-cta { grid-template-columns: minmax(0, 1fr); gap: 1.5rem; padding: 2rem 1.5rem; margin-top: 3rem; }
  body.page-locales-listado .directory-bottom-cta h2 { font-size: 3rem; }
  body.page-locales-listado .directory-bottom-cta .directory-map-cta { justify-self: start; }
}

@media (max-width: 23rem) {
  body.page-locales-listado .directory-title { font-size: 3.875rem; }
  body.page-locales-listado .directory-region-heading { flex-direction: column; gap: .75rem; }
  body.page-locales-listado .directory-index li { flex-basis: auto; }
  body.page-locales-listado .directory-card { padding: 1.25rem; }
}

@media (prefers-reduced-motion: reduce) {
  body.page-locales-listado :where(#directory-main) *,
  body.page-locales-listado :where(#directory-main) *::before,
  body.page-locales-listado :where(#directory-main) *::after { scroll-behavior: auto !important; transition: none !important; animation: none !important; }
}

body.page-locales-listado .directory-footer-gap { height: 3rem; background: var(--rosado); }
body.page-locales-listado #directory-main:has(> .directory-content:first-child) { padding-top: 15.25rem; background: #fff; }
body.page-locales-listado .directory-store-name { scroll-margin-top: 10rem; }
@media (max-width: 48rem) {
  body.page-locales-listado #directory-main:has(> .directory-content:first-child) { padding-top: 9rem; }
}
