/* Only components specific to the Cartagena data model.
   Shared visual rules live in template.css and consistency.css. */
.cartagena-zone-links{display:flex;flex-wrap:wrap;gap:12px}
.listing{margin-top:28px}.listing-head form{display:flex;flex-wrap:wrap;align-items:center;gap:12px;margin-top:24px}.listing-head select{border:1px solid var(--line);border-radius:12px;background:#fff;padding:10px 14px}.listing-empty{margin-bottom:64px}
.provenance{margin-block:28px;padding-block:18px;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.provenance>div{display:grid;grid-template-columns:145px minmax(0,1fr);gap:18px;padding-block:8px}.provenance dt{font-weight:600}.provenance dd{margin:0;overflow-wrap:anywhere}.provenance a{text-decoration:underline;text-underline-offset:3px}
.legal-page>.prose-panel{margin-block:28px}.legal-page>.prose-panel>p+p{margin-top:16px}.trap{display:none}.notice,.error{padding:18px;border-radius:12px;margin-block:20px}.notice{background:#e6f0df}.error{background:#ffe5df}
.empty-state .text-link{margin:12px 10px 0}.footer-directory{grid-template-columns:minmax(280px,1.45fr) repeat(4,minmax(0,1fr))}
@media(max-width:1100px){.footer-directory{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media(max-width:600px){.footer-directory{grid-template-columns:repeat(2,minmax(0,1fr))}.provenance>div{grid-template-columns:minmax(0,1fr);gap:4px}}

.map-location-source{display:block;margin-top:10px}

.ficha-map>.entry-map-frame{width:100%;height:330px}.ficha-credit a{overflow-wrap:anywhere}.listing-empty{margin-top:28px}

/* Shared location section: retain the template typography and spacing. */
.shop-location iframe{width:100%;height:310px;border:0;border-radius:10px}.ficha-map iframe{width:100%;height:330px;border:0;border-radius:12px;display:block;background:#e9eddf}@media(max-width:700px){.shop-location iframe{height:280px}}@media(max-width:500px){.shop-location iframe{height:260px}}

/* Match the individual map layout in SoyDeTotana. */
.ficha-map{margin-top:38px}.ficha-map h2{font-size:23px;font-weight:600;letter-spacing:-.5px;line-height:1.25;margin-bottom:14px}.ficha-map>.entry-map-frame{width:100%;height:330px;border-radius:12px;display:block;background:#e9eddf}.shop-location{display:grid;grid-template-columns:minmax(0,.65fr) minmax(0,1.35fr);gap:30px;margin-top:36px;padding:24px;border:1px solid var(--line);border-radius:16px;background:#fff;align-items:center;scroll-margin-top:24px}.shop-location h2{font-size:25px;line-height:1.25;letter-spacing:-.6px;font-weight:600;color:var(--ink);margin:8px 0 22px}.shop-location p:not(.eyebrow){font-size:15px;line-height:1.7;color:var(--muted);margin-bottom:20px}.shop-location iframe{width:100%;height:310px;border:0;border-radius:10px}@media(max-width:800px){.shop-location{grid-template-columns:minmax(0,1fr);gap:8px}.shop-location iframe{height:280px}}@media(max-width:500px){.shop-location{padding:20px}.shop-location iframe{height:260px}}

.map-location-note{font-size:13px;line-height:1.5;color:var(--muted);margin-top:10px}.map-location-list{max-height:230px;overflow:auto;padding-left:18px;margin:8px 0}.map-location-list li{margin:6px 0}.portal-pin-count{position:absolute;left:13px;top:-8px;min-width:19px;height:19px;padding:2px;border-radius:50%;background:#fff;color:#3b302b;text-align:center;font:700 11px/15px sans-serif;box-shadow:0 1px 5px #0003}

.ficha-layout--text{grid-template-columns:minmax(0,1fr);max-width:850px}.home-obituaries .results-grid{grid-template-columns:repeat(3,minmax(0,1fr))}@media(max-width:700px){.home-obituaries .results-grid{grid-template-columns:1fr}}

/* Fixed media frame: text length must never resize event photographs. */
.event-slider .event-strip > a > .event-photo{display:block;position:relative;width:100%;aspect-ratio:4/3;flex:none;overflow:hidden;border-radius:16px}
.event-slider .event-strip > a > .event-photo img{display:block;width:100%;height:100%;aspect-ratio:auto;object-fit:cover;object-position:center}
.pharmacy-page .guard-when img{display:block;width:110px;height:78px;object-fit:cover;border-radius:10px;margin-bottom:8px}
.pharmacy-page .guard-hero--no-photo{grid-template-columns:1fr}
.pharmacy-status{color:var(--muted);font-size:13px;line-height:1.6;margin:24px 0}
.pharmacy-official-links{display:flex;gap:20px;align-items:center;flex-wrap:wrap;margin:20px 0 40px}
@media(max-width:600px){.pharmacy-page .guard-row{grid-template-columns:90px minmax(0,1fr)}.pharmacy-page .guard-when{grid-row:1/3}.pharmacy-page .guard-when img{width:76px;height:64px}.pharmacy-page .guard-tel{grid-column:2}.pharmacy-page .guard-who{min-width:0}}
.pharmacy-page .guard-hero-photo{height:380px;min-height:0;overflow:hidden}
.pharmacy-page .guard-hero-photo img{display:block;width:100%;height:100%;object-fit:cover}
@media(max-width:800px){.pharmacy-page .guard-hero-photo{height:300px}}
@media(max-width:600px){.pharmacy-page .guard-hero-photo{height:250px}}

/* Unified festivals guide and restored entry galleries. */
/* GuÃ­a de fiestas: recorrido visual y lectura cÃ³moda. */
.festivals-guide .festivals-heading{max-width:850px;margin:24px 0 32px}
.festivals-guide .festivals-heading h1{margin:8px 0 16px}
.festivals-guide .festivals-heading p{line-height:1.7}
.festivals-guide .festival-index{margin:28px 0 46px;gap:9px}
.festivals-guide .festival-index .button{font-size:13px;min-height:40px;padding:10px 15px}
.festivals-guide .festival-chapter{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,.9fr);align-items:center;gap:clamp(28px,4vw,60px);padding:clamp(40px,5vw,70px) 0;border-top:1px solid #d5e3e6}
.festivals-guide .festival-chapter>div{max-width:70ch;min-width:0}
.festivals-guide .festival-chapter h2{font-size:clamp(27px,3vw,40px);line-height:1.16;letter-spacing:-.035em;margin:12px 0 20px}
.festivals-guide .festival-chapter .festival-chapter-lead{font-size:1.1rem;font-weight:600;color:inherit;line-height:1.65}
.festivals-guide .festival-chapter p{margin:14px 0;line-height:1.75}
.festivals-guide .festival-chapter ul{display:flex;flex-wrap:wrap;gap:8px;list-style:none;padding:0;margin:22px 0 0}
.festivals-guide .festival-chapter li{margin:0;padding:8px 13px;border-radius:999px;background:#f2e9de;color:var(--corten);font-size:13px;font-weight:600;line-height:1.35}
.festivals-guide .festival-chapter figure{margin:0;min-width:0}
.festivals-guide .festival-chapter figure img{display:block;width:100%;aspect-ratio:4/3;height:auto;object-fit:cover;border-radius:20px;background:#f2e9de}
.festivals-guide .festival-chapter figcaption{margin-top:9px;color:#526b73;font-size:12px;line-height:1.4}
.festivals-guide .festival-chapter:nth-of-type(even) figure{order:-1}
@media(max-width:760px){.festivals-guide .festival-index{margin-bottom:26px}.festivals-guide .festival-chapter{grid-template-columns:minmax(0,1fr);gap:22px;padding:36px 0}.festivals-guide .festival-chapter figure{order:-1}.festivals-guide .festival-chapter figure img{aspect-ratio:16/11}.festivals-guide .festival-chapter h2{margin-bottom:16px}}
@media(max-width:600px){.festivals-guide .festival-index{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.festivals-guide .festival-index .button{width:100%;min-height:56px;padding:8px 10px;white-space:normal;text-align:center;justify-content:center;font-size:12px;line-height:1.25}}

.festival-index{display:flex;flex-wrap:wrap;gap:9px}
.festivals-guide .festival-index .button{background:var(--corten);color:white;border-color:var(--corten)}
.entry-gallery{margin:38px 0}.entry-gallery h2{font-size:28px;margin-bottom:20px}
.entry-gallery-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}
.entry-gallery figure{margin:0;min-width:0}.entry-gallery figure>a{display:block;border-radius:14px;overflow:hidden}
.entry-gallery img{display:block;width:100%;height:auto;aspect-ratio:4/3;object-fit:cover;transition:transform .2s}
.entry-gallery a:hover img{transform:scale(1.025)}.entry-gallery figcaption{font-size:12px;line-height:1.4;margin-top:8px;color:var(--muted)}
.entry-gallery--menu img{object-fit:contain;background:#fff;aspect-ratio:3/4}.entry-gallery--menu{margin:20px 0}
@media(max-width:760px){.entry-gallery-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}}
@media(max-width:420px){.entry-gallery-grid{grid-template-columns:1fr}}

.ficha-page .entry-gallery--menu .entry-gallery-grid a{aspect-ratio:3/4;background:#fff}.ficha-page .entry-gallery--menu .entry-gallery-grid img{height:100%;aspect-ratio:auto;object-fit:contain}
