/*
 * Huamantla Disfruta — fichas y catálogos culturales.
 * Geometría tomada de la plantilla-museo-completa y catálogo general del
 * Laboratorio Visual. La fuente se sirve localmente desde tokens.css.
 */
.hd-cultural-page,
.hd-catalog-page,
.hd-imported-page {
  width: min(calc(100% - 48px), 1180px) !important;
  max-width: 1180px !important;
  margin-inline: auto !important;
  padding: 34px 0 72px !important;
  gap: 0 !important;
  color: var(--ink);
  font-family: "Montserrat", system-ui, sans-serif;
}

.hd-cultural-page > .elementor-element,
.hd-catalog-page > .elementor-element,
.hd-imported-page > .elementor-element { margin: 0; }

.hd-cultural-page .breadcrumb,
.hd-catalog-page .breadcrumb {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  align-items: center;
  color: var(--secondary);
  font-size: .78rem;
}
.hd-cultural-page .breadcrumb a,
.hd-catalog-page .breadcrumb a { color: var(--ink); font-weight: 650; text-decoration: none; }

.hd-cultural-page .page-hero {
  display: grid;
  grid-template-columns: minmax(0, 1.05fr) minmax(360px, .95fr);
  align-items: center;
  gap: 48px;
  margin-top: 32px;
  padding: 48px;
  border: 1px solid var(--line);
  border-radius: 32px;
  background: var(--white);
}
.hd-cultural-page .microtitle,
.hd-catalog-page .microtitle,
.hd-imported-page .microtitle {
  margin: 0;
  color: #d62a78;
  font-size: .75rem;
  font-weight: 800;
  letter-spacing: .11em;
  text-transform: uppercase;
}
.hd-cultural-page h1,
.hd-cultural-page h2,
.hd-cultural-page h3,
.hd-catalog-page h1,
.hd-catalog-page h2,
.hd-catalog-page h3,
.hd-imported-page h1,
.hd-imported-page h2,
.hd-imported-page h3 { font-family: "Montserrat", system-ui, sans-serif; color: var(--ink); text-wrap: balance; }
.hd-cultural-page .page-hero h1 {
  max-width: 14ch;
  margin: 9px 0 0;
  font-size: clamp(2.45rem, 5vw, 3.5rem);
  font-weight: 800;
  line-height: .98;
  letter-spacing: -.052em;
}
.hd-cultural-page .short-answer {
  margin-top: 14px;
  padding: 10px 14px;
  border: 1px solid #e7ebeb;
  border-radius: 10px;
  background: #fafbfb;
}
.hd-cultural-page .short-answer small { display:block; color:var(--secondary); font-size:.75rem; font-weight:750; letter-spacing:.07em; text-transform:uppercase; }
.hd-cultural-page .short-answer p { margin:2px 0 0; color:#3e4b50; font-size:.875rem; line-height:1.5; }
.hd-cultural-page .hero-introduction { max-width:55ch; margin:18px 0 0; color:var(--secondary); font-size:1rem; line-height:1.65; }
.hd-cultural-page .hero-image { margin:0; overflow:hidden; border-radius:28px; background:var(--paper); aspect-ratio:4/3; }
.hd-cultural-page .hero-image img,
.hd-cultural-page .editorial-card img,
.hd-cultural-page .related-grid img,
.hd-catalog-page img { width:100%; height:100%; display:block; object-fit:cover; }
.hd-media-placeholder { display:block; width:100%; height:100%; min-height:190px; background:linear-gradient(135deg,#eef1f1,#dfe3e1); }

.hd-cultural-page .contact-actions { display:flex; flex-wrap:wrap; gap:8px; }
.hd-cultural-page .contact-actions--hero { margin-top:20px; }
.hd-cultural-page .contact-actions a,
.hd-cultural-page .location-section > a,
.hd-catalog-page .catalog-card-button {
  min-height:48px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:0 18px;
  border:1px solid #cbd3d1;
  border-radius:999px;
  background:var(--white);
  color:var(--ink);
  font-size:.72rem;
  font-weight:750;
  text-decoration:none;
}

.hd-cultural-page .quick-section,
.hd-cultural-page .gallery-section,
.hd-cultural-page .related-section { margin-top:48px; }
.hd-cultural-page .section-heading h2,
.hd-cultural-page .editorial-card h2,
.hd-cultural-page .location-section h2,
.hd-catalog-page .section-heading h2 {
  margin:6px 0 0;
  font-size:clamp(1.85rem,4vw,2.6rem);
  font-weight:800;
  line-height:1.04;
  letter-spacing:-.045em;
}
.hd-cultural-page .quick-grid {
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  margin-top:18px;
  overflow:hidden;
  border:1px solid var(--line);
  border-radius:22px;
  background:var(--white);
}
.hd-cultural-page .quick-grid article { min-height:128px; display:flex; flex-direction:column; align-items:center; justify-content:center; padding:16px; border-right:1px solid var(--line); text-align:center; }
.hd-cultural-page .quick-grid article:last-child { border-right:0; }
.hd-cultural-page .quick-grid span { color:var(--secondary); font-size:1.35rem; }
.hd-cultural-page .quick-grid small { margin-top:5px; color:#d62a78; font-size:.65rem; font-weight:800; letter-spacing:.07em; text-transform:uppercase; }
.hd-cultural-page .quick-grid strong { margin-top:5px; color:var(--ink); font-size:.84rem; line-height:1.45; }

.hd-cultural-page .editorial-card {
  display:grid;
  grid-template-columns:minmax(300px,.9fr) minmax(0,1.1fr);
  align-items:center;
  gap:42px;
  margin-top:48px;
  padding:32px;
  border:1px solid var(--line);
  border-radius:32px;
  background:var(--white);
}
.hd-cultural-page .editorial-card--right { grid-template-columns:minmax(0,1.1fr) minmax(300px,.9fr); }
.hd-cultural-page .editorial-card--text-only { grid-template-columns:1fr; }
.hd-cultural-page .editorial-card figure { margin:0; overflow:hidden; border-radius:22px; background:var(--paper); aspect-ratio:4/3; }
.hd-cultural-page .hd-editorial-prose { max-width:64ch; margin-top:15px; color:var(--secondary); font-size:.95rem; line-height:1.65; }
.hd-cultural-page .hd-editorial-prose p { margin:0 0 14px; }
.hd-cultural-page .hd-editorial-prose p:last-child { margin-bottom:0; }
.hd-cultural-page .hd-editorial-prose ul,
.hd-cultural-page .hd-editorial-prose ol { padding-left:1.25em; }

.hd-cultural-page .section-heading--row { display:flex; align-items:end; justify-content:space-between; gap:20px; }
.hd-cultural-page .gallery-grid,
.hd-cultural-page .related-grid { display:grid; gap:18px; margin-top:18px; }
.hd-cultural-page .gallery-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }
.hd-cultural-page .gallery-grid figure { min-width:0; margin:0; }
.hd-cultural-page .gallery-media { overflow:hidden; border-radius:22px; background:var(--line); aspect-ratio:4/3; }
.hd-cultural-page .gallery-grid figcaption { min-height:1.5em; margin:9px 0 0; color:var(--secondary); font-size:.75rem; line-height:1.5; }
.hd-cultural-page .location-section { display:flex; align-items:center; justify-content:space-between; gap:28px; margin-top:48px; padding:32px; border:1px solid var(--line); border-radius:28px; background:var(--white); }
.hd-cultural-page .location-section p:not(.microtitle) { margin:10px 0 0; color:var(--secondary); }
.hd-cultural-page .related-grid { grid-template-columns:repeat(4,minmax(0,1fr)); gap:10px; }
.hd-cultural-page .related-grid > a { position:relative; overflow:hidden; border-radius:18px; background:var(--ink); color:var(--white); text-decoration:none; aspect-ratio:4/3; }
.hd-cultural-page .related-grid > a::after { position:absolute; inset:0; content:""; background:linear-gradient(180deg,rgba(16,35,43,.03) 30%,rgba(16,35,43,.82) 100%); }
.hd-cultural-page .related-grid img { aspect-ratio:4/3; transition:transform 300ms ease; }
.hd-cultural-page .related-grid > a:hover img { transform:scale(1.025); }
.hd-cultural-page .related-grid > a > span:last-child { position:absolute; right:14px; bottom:14px; left:14px; z-index:1; color:var(--white); font-size:.9rem; font-weight:800; line-height:1.15; text-align:center; text-shadow:0 2px 10px rgba(0,0,0,.55); text-wrap:balance; }
.hd-related-placeholder { position:absolute; inset:0; background:linear-gradient(135deg,#344a53,#10232b); }

/* Catálogo general: misma jerarquía editorial, tarjetas consistentes. */
.hd-catalog-page .catalog-hero { display:grid; grid-template-columns:minmax(0,1fr) minmax(320px,.85fr); align-items:center; gap:42px; padding:44px; border:1px solid var(--line); border-radius:32px; background:var(--white); }
.hd-catalog-page .catalog-hero h1,
.hd-imported-page .imported-editorial h1 { max-width:16ch; margin:8px 0 0; font-size:clamp(2.45rem,5vw,3.5rem); font-weight:800; line-height:.99; letter-spacing:-.052em; }
.hd-catalog-page .catalog-intro,
.hd-imported-page .imported-intro { max-width:62ch; margin:18px 0 0; color:var(--secondary); font-size:1rem; line-height:1.65; }
.hd-catalog-page .catalog-hero figure { margin:0; overflow:hidden; border-radius:24px; aspect-ratio:16/9; background:var(--paper); }
.hd-catalog-page .catalog-section { margin-top:48px; }
.hd-catalog-page .catalog-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:16px; margin-top:20px; }
.hd-catalog-page .catalog-card { overflow:hidden; border:1px solid var(--line); border-radius:22px; background:var(--white); }
.hd-catalog-page .catalog-card-image { display:block; aspect-ratio:4/3; overflow:hidden; background:var(--paper); }
.hd-catalog-page .catalog-card > div { padding:18px; }
.hd-catalog-page .catalog-card h3 { margin:0; font-size:1.02rem; font-weight:800; line-height:1.15; }
.hd-catalog-page .catalog-card p { margin:10px 0 16px; color:var(--secondary); font-size:.82rem; line-height:1.55; }
.hd-catalog-page .catalog-card-button { min-height:44px; padding-inline:15px; }

/* Página editorial de respaldo para rutas que todavía no tienen familia propia. */
.hd-imported-page .imported-editorial { padding:44px; border:1px solid var(--line); border-radius:32px; background:var(--white); }
.hd-imported-page .imported-prose { max-width:72ch; margin-top:28px; color:var(--secondary); line-height:1.72; }
.hd-imported-page .imported-prose h2 { margin:38px 0 12px; font-size:clamp(1.65rem,3vw,2.25rem); font-weight:800; line-height:1.08; }
.hd-imported-page .imported-prose h3 { margin:28px 0 10px; font-size:1.3rem; font-weight:750; }
.hd-imported-page .imported-prose p { margin:0 0 16px; }
.hd-imported-page .imported-prose img { width:100%; height:auto; border-radius:22px; margin:14px 0 22px; }

@media (prefers-reduced-motion:reduce) {
  .hd-cultural-page .related-grid img { transition:none; }
}
@media (max-width:900px) {
  .hd-cultural-page .page-hero,
  .hd-cultural-page .editorial-card,
  .hd-cultural-page .editorial-card--right,
  .hd-catalog-page .catalog-hero { grid-template-columns:1fr; }
  .hd-cultural-page .editorial-card--right figure { grid-row:1; }
  .hd-cultural-page .quick-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .hd-cultural-page .quick-grid article:nth-child(2n) { border-right:0; }
  .hd-cultural-page .quick-grid article:nth-child(-n+2) { border-bottom:1px solid var(--line); }
  .hd-cultural-page .gallery-grid,
  .hd-cultural-page .related-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .hd-catalog-page .catalog-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }
}
@media (max-width:620px) {
  .hd-cultural-page,
  .hd-catalog-page,
  .hd-imported-page { width:calc(100% - 32px) !important; padding-top:24px !important; padding-bottom:48px !important; }
  .hd-cultural-page .page-hero { gap:24px; margin-top:24px; padding:24px 18px; border-radius:24px; }
  .hd-cultural-page .page-hero h1,
  .hd-catalog-page .catalog-hero h1,
  .hd-imported-page .imported-editorial h1 { font-size:2.15rem; }
  .hd-cultural-page .hero-image { border-radius:20px; }
  .hd-cultural-page .quick-section,
  .hd-cultural-page .editorial-card,
  .hd-cultural-page .gallery-section,
  .hd-cultural-page .location-section,
  .hd-cultural-page .related-section,
  .hd-catalog-page .catalog-section { margin-top:32px; }
  .hd-cultural-page .quick-grid article { min-height:112px; }
  .hd-cultural-page .contact-actions { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); }
  .hd-cultural-page .editorial-card { gap:22px; padding:18px; border-radius:24px; }
  .hd-cultural-page .section-heading--row,
  .hd-cultural-page .location-section { align-items:flex-start; flex-direction:column; }
  .hd-cultural-page .location-section { padding:24px 18px; border-radius:24px; }
  .hd-cultural-page .location-section > a { width:100%; }
  .hd-catalog-page .catalog-hero,
  .hd-imported-page .imported-editorial { padding:24px 18px; border-radius:24px; }
  .hd-catalog-page .catalog-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; }
  .hd-catalog-page .catalog-card > div { padding:14px; }
}
@media (max-width:390px) {
  .hd-catalog-page .catalog-grid { grid-template-columns:1fr; }
}

/* Páginas editoriales importadas: piezas independientes para Elementor. */
.hd-imported-page .imported-hero {
  display:grid;
  grid-template-columns:1fr;
  gap:36px;
  padding:44px;
  border:1px solid var(--line);
  border-radius:32px;
  background:var(--white);
}
.hd-imported-page .imported-hero--media { grid-template-columns:minmax(0,1fr) minmax(320px,.88fr); align-items:center; }
.hd-imported-page .imported-hero h1 { max-width:16ch; margin:8px 0 0; font-size:clamp(2.45rem,5vw,3.5rem); font-weight:800; line-height:.99; letter-spacing:-.052em; }
.hd-imported-page .imported-hero figure { margin:0; overflow:hidden; border-radius:24px; background:var(--paper); aspect-ratio:16/9; }
.hd-imported-page .imported-hero figure img { width:100%; height:100%; display:block; object-fit:cover; }
.hd-imported-page .imported-section {
  display:grid;
  grid-template-columns:1fr;
  gap:40px;
  align-items:center;
  margin-top:48px;
  padding:32px;
  border:1px solid var(--line);
  border-radius:28px;
  background:var(--white);
}
.hd-imported-page .imported-section--media { grid-template-columns:minmax(0,1.08fr) minmax(300px,.92fr); }
.hd-imported-page .imported-section--left { grid-template-columns:minmax(300px,.92fr) minmax(0,1.08fr); }
.hd-imported-page .imported-section figure { margin:0; overflow:hidden; border-radius:22px; background:var(--paper); aspect-ratio:4/3; }
.hd-imported-page .imported-section figure img { width:100%; height:100%; display:block; object-fit:cover; }
.hd-imported-page .imported-section h2 { margin:6px 0 0; font-size:clamp(1.85rem,4vw,2.6rem); font-weight:800; line-height:1.04; letter-spacing:-.045em; }
.hd-imported-page .imported-section .imported-prose { margin-top:16px; }

@media (max-width:900px) {
  .hd-imported-page .imported-hero--media,
  .hd-imported-page .imported-section--media,
  .hd-imported-page .imported-section--left { grid-template-columns:1fr; }
  .hd-imported-page .imported-section--left figure { grid-row:1; }
}
@media (max-width:620px) {
  .hd-imported-page .imported-hero,
  .hd-imported-page .imported-section { padding:24px 18px; border-radius:24px; }
  .hd-imported-page .imported-section { gap:22px; margin-top:32px; }
  .hd-imported-page .imported-hero h1 { font-size:2.15rem; }
}

.quick-grid > *, .gallery-grid > *, .related-grid > *, .catalog-grid > * { break-inside:avoid; }

/* --------------------------------------------------------------------------
 * Gastronomía — ficha individual (Demo 2.0 + contenido completo de producción)
 * -------------------------------------------------------------------------- */
.hd-cultural-page--gastronomia .page-hero h1 { max-width: 15ch; }
.hd-cultural-page--gastronomia .gastronomy-ingredients { margin-top: 48px; }
.hd-cultural-page--gastronomia .gastronomy-ingredient-grid {
  display: grid;
  grid-template-columns: repeat(var(--hd-grid-columns, 4), minmax(0, 1fr));
  gap: 0;
  margin: 18px 0 0;
  padding: 0;
  overflow: hidden;
  border: 1px solid var(--line);
  border-radius: 22px;
  background: var(--white);
  list-style: none;
}
.hd-cultural-page--gastronomia .gastronomy-ingredient-grid li {
  min-width: 0;
  min-height: 92px;
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 18px;
  border-right: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
}
.hd-cultural-page--gastronomia .gastronomy-ingredient-grid li span {
  flex: 0 0 auto;
  color: #d62a78;
  font-size: .72rem;
  font-weight: 850;
  letter-spacing: .05em;
}
.hd-cultural-page--gastronomia .gastronomy-ingredient-grid li strong {
  min-width: 0;
  color: var(--ink);
  font-size: .9rem;
  font-weight: 750;
  line-height: 1.35;
}
.hd-cultural-page--gastronomia .gastronomy-ingredient-note {
  max-width: 72ch;
  margin-top: 12px;
  color: var(--secondary);
  font-size: .78rem;
  line-height: 1.55;
}
.hd-cultural-page--gastronomia .gastronomy-ingredient-note p { margin: 0; }
.hd-cultural-page--gastronomia .hd-editorial-prose h3 {
  margin: 24px 0 8px;
  color: var(--ink);
  font-size: 1.05rem;
  font-weight: 800;
  line-height: 1.25;
  letter-spacing: -.02em;
}
.hd-cultural-page--gastronomia .hd-editorial-prose h3:first-child { margin-top: 0; }
.hd-cultural-page--gastronomia .hd-editorial-prose blockquote {
  margin: 18px 0 0;
  padding: 20px 22px;
  border-left: 4px solid #d62a78;
  border-radius: 0 18px 18px 0;
  background: var(--paper);
  color: var(--ink);
  font-size: 1rem;
  font-style: italic;
  line-height: 1.7;
}
.hd-cultural-page--gastronomia .hd-editorial-prose blockquote p:last-child { margin-bottom: 0; }
.hd-cultural-page--gastronomia .hd-gastronomy-editorial-link {
  min-height: 44px;
  display: inline-flex;
  align-items: center;
  margin-top: 8px;
  padding: 0 16px;
  border: 1px solid #cbd3d1;
  border-radius: 999px;
  color: var(--ink);
  font-size: .75rem;
  font-weight: 800;
  text-decoration: none;
}
.hd-cultural-page--gastronomia .hd-gastronomy-editorial-link:hover,
.hd-cultural-page--gastronomia .hd-gastronomy-editorial-link:focus-visible { border-color: var(--ink); }

@media (max-width: 620px) {
  .hd-cultural-page--gastronomia .gastronomy-ingredients { margin-top: 32px; }
  .hd-cultural-page--gastronomia .gastronomy-ingredient-grid li { min-height: 72px; padding: 15px; }
}

/* --------------------------------------------------------------------------
 * Beta4 3.3.3 — Gastronomía: paridad con Demo 2.0 y widgets reutilizables.
 * -------------------------------------------------------------------------- */

/* Ingredientes: tabla compacta, no tarjetas altas. Conserva columnas editables. */
.hd-cultural-page--gastronomia .gastronomy-ingredient-grid {
  margin-top: 14px;
  border-radius: 20px;
}
.hd-cultural-page--gastronomia .gastronomy-ingredient-grid li {
  min-height: 0;
  padding: 11px 14px;
  gap: 11px;
  align-items: center;
}
.hd-cultural-page--gastronomia .gastronomy-ingredient-grid li span {
  color: #556269;
  font-size: .68rem;
  font-weight: 850;
  line-height: 1;
}
.hd-cultural-page--gastronomia .gastronomy-ingredient-grid li strong {
  font-size: .82rem;
  line-height: 1.25;
  font-weight: 780;
}

/* Información con imagen: el control Elementor decide izquierda o derecha. */
.hd-cultural-page .editorial-card--left { grid-template-columns:minmax(300px,.9fr) minmax(0,1.1fr); }
.hd-cultural-page .editorial-card--right { grid-template-columns:minmax(0,1.1fr) minmax(300px,.9fr); }
.hd-cultural-page .editorial-card--right > figure { order:2; }
.hd-cultural-page .editorial-card--right > div { order:1; }

/* Cita / poema oscuro aprobado. */
.hd-cultural-page .structured-quote {
  margin-top: 48px;
  padding: 34px 36px;
  border: 1px solid rgba(215,174,117,.22);
  border-radius: 28px;
  background: var(--ink);
  color: var(--white);
}
.hd-cultural-page .structured-quote .microtitle {
  margin: 0 0 16px;
  color: #D7AE75;
}
.hd-cultural-page .structured-quote blockquote {
  max-width: 900px;
  margin: 0;
  padding: 0;
  border: 0;
  background: transparent;
}
.hd-cultural-page .structured-quote blockquote p {
  margin: 0;
  color: var(--white);
  font-size: clamp(1.65rem,3.4vw,2.3rem);
  font-weight: 760;
  line-height: 1.2;
  letter-spacing: -.035em;
}
.hd-cultural-page .structured-quote-author {
  margin: 20px 0 0;
  color: rgba(255,255,255,.82);
  font-size: .78rem;
  line-height: 1.4;
}

/* Galería A/B/C del Laboratorio Visual. */
.hd-cultural-page .gallery-description {
  max-width: 64ch;
  margin: 12px 0 0;
  color: var(--secondary);
  font-size: .9rem;
  line-height: 1.6;
}
.hd-cultural-page .gallery-grid {
  --hd-gallery-columns: 3;
  grid-template-columns: repeat(var(--hd-gallery-columns), minmax(0,1fr));
}
.hd-cultural-page .gallery-media {
  aspect-ratio: 4/3;
  background: var(--line);
}
.hd-cultural-page .gallery-media img {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: cover;
}
.hd-cultural-page .gallery-grid--horizontal {
  display: flex !important;
  gap: 18px;
  overflow-x: auto;
  overflow-y: hidden;
  padding: 0 0 10px;
  scroll-snap-type: x proximity;
  scrollbar-width: thin;
  overscroll-behavior-inline: contain;
}
.hd-cultural-page .gallery-grid--horizontal .gallery-item {
  flex: 0 0 min(420px, 76vw);
  scroll-snap-align: start;
}
.hd-cultural-page .gallery-more {
  margin-top: 18px;
}
.hd-cultural-page .gallery-more > summary {
  width: max-content;
  min-height: 44px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0 18px;
  border: 1px solid #cbd3d1;
  border-radius: 999px;
  background: var(--white);
  color: var(--ink);
  cursor: pointer;
  list-style: none;
  font-size: .72rem;
  font-weight: 800;
}
.hd-cultural-page .gallery-more > summary::-webkit-details-marker { display:none; }
.hd-cultural-page .gallery-more-close { display:none; }
.hd-cultural-page .gallery-more[open] .gallery-more-open { display:none; }
.hd-cultural-page .gallery-more[open] .gallery-more-close { display:inline; }
.hd-cultural-page .gallery-more .gallery-grid { margin-top: 18px; }
.hd-gallery-grid-mode-masonry .gallery-section:not(.gallery-section--variant-b) .gallery-grid {
  display: block !important;
  columns: var(--hd-gallery-columns,3);
  column-gap: 18px;
}
.hd-gallery-grid-mode-masonry .gallery-section:not(.gallery-section--variant-b) .gallery-item {
  break-inside: avoid;
  margin: 0 0 18px;
}

/* Catálogo automático global: también puede vivir dentro de una ficha individual. */
.hd-cultural-page .catalog-section { margin-top: 48px; }
.hd-cultural-page .catalog-grid {
  display:grid;
  grid-template-columns:repeat(var(--hd-grid-columns,4),minmax(0,1fr));
  gap:16px;
  margin-top:20px;
}
.hd-cultural-page .catalog-card {
  overflow:hidden;
  border:1px solid var(--line);
  border-radius:22px;
  background:var(--white);
}
.hd-cultural-page .catalog-card-image {
  display:block;
  aspect-ratio:4/3;
  overflow:hidden;
  background:var(--paper);
}
.hd-cultural-page .catalog-card-image img {
  width:100%;
  height:100%;
  display:block;
  object-fit:cover;
}
.hd-cultural-page .catalog-card > div { padding:18px; }
.hd-cultural-page .catalog-card h3 { margin:0; font-size:1.02rem; font-weight:800; line-height:1.15; }
.hd-cultural-page .catalog-card p { margin:10px 0 16px; color:var(--secondary); font-size:.82rem; line-height:1.55; }
.hd-cultural-page .catalog-card-button {
  min-height:44px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:0 15px;
  border:1px solid #cbd3d1;
  border-radius:999px;
  background:var(--white);
  color:var(--ink);
  font-size:.72rem;
  font-weight:780;
  text-decoration:none;
}

@media (max-width:900px) {
  .hd-cultural-page .editorial-card--right > figure,
  .hd-cultural-page .editorial-card--right > div { order:initial; }
  .hd-cultural-page .editorial-card--right > figure { grid-row:1; }
  .hd-gallery-grid-mode-masonry .gallery-section:not(.gallery-section--variant-b) .gallery-grid { columns: var(--hd-gallery-columns,2); }
}
@media (max-width:620px) {
  .hd-cultural-page--gastronomia .gastronomy-ingredient-grid li { min-height:0; padding:10px 12px; }
  .hd-cultural-page .structured-quote { margin-top:32px; padding:26px 22px; border-radius:24px; }
  .hd-cultural-page .structured-quote blockquote p { font-size:clamp(1.45rem,7vw,1.9rem); }
  .hd-cultural-page .gallery-grid--horizontal .gallery-item { flex-basis:82vw; }
  .hd-cultural-page .catalog-section { margin-top:32px; }
  .hd-cultural-page .catalog-card > div { padding:14px; }
}

/* Botón de la variante C alineado al encabezado en escritorio, como Laboratorio Visual. */
.hd-cultural-page .gallery-section--variant-c { position:relative; }
.hd-cultural-page .gallery-section--variant-c .gallery-more > summary { position:absolute; top:0; right:0; }
@media (max-width:620px) {
  .hd-cultural-page .gallery-section--variant-c .gallery-more > summary { position:static; margin-top:16px; }
}

/* Ajustes finales de paridad visual 3.3.3. */
.hd-cultural-page--gastronomia .gastronomy-ingredients .section-heading { margin-bottom:0; }
.hd-cultural-page--gastronomia .structured-quote { width:100%; }
.hd-cultural-page--gastronomia .gallery-section--variant-c .section-heading--row { padding-right:190px; }
@media (max-width:620px) {
  .hd-cultural-page--gastronomia .gallery-section--variant-c .section-heading--row { padding-right:0; }
}

/* --------------------------------------------------------------------------
 * Beta4 3.3.4 — afinado visual solicitado en Gastronomía.
 * -------------------------------------------------------------------------- */

/* Ingredientes: el contenedor blanco respira alrededor de la tabla, como Demo 2.0. */
.hd-cultural-page--gastronomia .gastronomy-ingredient-card {
  margin-top: 20px;
  padding: 14px 18px 12px;
  overflow: hidden;
  border: 1px solid var(--line);
  border-radius: 20px;
  background: var(--white);
}
.hd-cultural-page--gastronomia .gastronomy-ingredient-card .gastronomy-ingredient-grid {
  margin: 0;
  padding: 0;
  overflow: visible;
  border: 0;
  border-radius: 0;
  background: transparent;
}
.hd-cultural-page--gastronomia .gastronomy-ingredient-card .gastronomy-ingredient-grid li {
  min-height: 44px;
  padding: 13px 10px;
  gap: 12px;
}
.hd-cultural-page--gastronomia .gastronomy-ingredient-card .gastronomy-ingredient-grid li span {
  color: #556269;
  font-size: .7rem;
  line-height: 1;
}
.hd-cultural-page--gastronomia .gastronomy-ingredient-card .gastronomy-ingredient-grid li strong {
  font-size: .85rem;
  line-height: 1.3;
}
.hd-cultural-page--gastronomia .gastronomy-ingredient-card .gastronomy-ingredient-note {
  margin: 12px 0 0;
  padding: 0 2px;
}

/* Poema: misma superficie tinta, pero lectura editorial más serena y contenida. */
.hd-cultural-page .structured-quote {
  position: relative;
  isolation: isolate;
  padding: 40px 44px 36px;
}
.hd-cultural-page .structured-quote::before {
  content: "“";
  position: absolute;
  z-index: -1;
  top: 18px;
  left: 28px;
  color: rgba(215,174,117,.14);
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(5rem,10vw,8rem);
  font-weight: 400;
  line-height: 1;
  pointer-events: none;
}
.hd-cultural-page .structured-quote .microtitle {
  margin-bottom: 18px;
  font-size: .72rem;
  letter-spacing: .12em;
}
.hd-cultural-page .structured-quote blockquote {
  max-width: 66ch;
}
.hd-cultural-page .structured-quote blockquote p {
  color: rgba(255,255,255,.94);
  font-family: Montserrat, Arial, sans-serif;
  font-size: clamp(1.1rem,1.65vw,1.42rem);
  font-style: italic;
  font-weight: 500;
  line-height: 1.72;
  letter-spacing: -.012em;
}
.hd-cultural-page .structured-quote-author {
  width: min(100%,66ch);
  margin-top: 24px;
  padding-top: 15px;
  border-top: 1px solid rgba(215,174,117,.26);
  color: #D7AE75;
  font-size: .78rem;
  font-weight: 650;
}

@media (max-width:620px) {
  .hd-cultural-page--gastronomia .gastronomy-ingredient-card {
    margin-top: 16px;
    padding: 10px 12px 10px;
    border-radius: 18px;
  }
  .hd-cultural-page--gastronomia .gastronomy-ingredient-card .gastronomy-ingredient-grid li {
    min-height: 42px;
    padding: 12px 8px;
  }
  .hd-cultural-page .structured-quote {
    padding: 30px 24px 28px;
  }
  .hd-cultural-page .structured-quote::before {
    top: 12px;
    left: 16px;
  }
  .hd-cultural-page .structured-quote blockquote p {
    font-size: clamp(1.05rem,5vw,1.25rem);
    line-height: 1.68;
  }
}


/* 3.3.5 — Video + poema editorial de Gastronomía. */
.structured-video-quote {
  display:grid;
  grid-template-columns:minmax(0,1.35fr) minmax(280px,.65fr);
  gap:32px;
  align-items:center;
  width:100%;
  padding:28px;
  border-radius:28px;
  background:#10232B;
  color:#fff;
}
.structured-video-quote-media {
  position:relative;
  overflow:hidden;
  min-height:320px;
  border-radius:20px;
  background:#07161c;
  aspect-ratio:16/9;
}
.structured-video-quote-media button,
.structured-video-quote-media iframe,
.structured-video-quote-media img,
.structured-video-quote-placeholder {
  width:100%; height:100%; display:block; border:0;
}
.structured-video-quote-media button { position:relative; padding:0; cursor:pointer; background:transparent; }
.structured-video-quote-media img { object-fit:cover; }
.structured-video-quote-play {
  position:absolute; left:50%; top:50%; transform:translate(-50%,-50%);
  width:64px; height:64px; display:grid; place-items:center;
  border-radius:50%; background:#E53281; color:#fff; font-size:1.35rem;
  box-shadow:0 10px 30px rgba(0,0,0,.24);
}
.structured-video-quote-copy { min-width:0; padding:8px 10px 8px 4px; }
.structured-video-quote .microtitle { margin:0 0 16px; color:#D7AE75; }
.structured-video-quote blockquote { margin:0; max-width:34rem; color:#fff; }
.structured-video-quote blockquote p {
  margin:0; font-size:clamp(1.05rem,1.55vw,1.28rem); line-height:1.62;
  font-style:italic; font-weight:500; letter-spacing:-.01em;
}
.structured-video-quote-author {
  margin:20px 0 0; padding-top:16px; border-top:1px solid rgba(215,174,117,.32);
  color:#D7AE75; font-size:.9rem; font-weight:700;
}
.structured-video-quote small { display:block; margin-top:10px; color:rgba(255,255,255,.68); font-size:.74rem; }
.hd-structured-faq { margin-top:0; }
.hd-structured-faq .hd-faq-theme--single { width:100%; }

@media (max-width: 767px) {
  .structured-video-quote { grid-template-columns:1fr; padding:20px; gap:22px; border-radius:24px; }
  .structured-video-quote-media { min-height:0; border-radius:16px; }
  .structured-video-quote-copy { padding:0 2px 4px; }
  .structured-video-quote blockquote p { font-size:1rem; line-height:1.65; }
  .structured-video-quote-play { width:56px; height:56px; }
}


/* --------------------------------------------------------------------------
 * Beta4 3.3.6 — ritmo vertical, CTA visible, historia ilustrada y poema sereno.
 * -------------------------------------------------------------------------- */
.hd-cultural-page--gastronomia .gastronomy-ingredients,
.hd-cultural-page--gastronomia .editorial-card,
.hd-cultural-page--gastronomia .hd-cta,
.hd-cultural-page--gastronomia .structured-quote,
.hd-cultural-page--gastronomia .structured-video-quote,
.hd-cultural-page--gastronomia .gallery-section,
.hd-cultural-page--gastronomia .hd-structured-faq,
.hd-cultural-page--gastronomia .catalog-section {
  margin-top:48px;
}
.hd-cultural-page--gastronomia .hd-cta__button,
.hd-cultural-page--gastronomia .hd-cta__button:visited,
.hd-cultural-page--gastronomia .hd-cta__button:hover,
.hd-cultural-page--gastronomia .hd-cta__button:focus {
  color:#fff !important;
}
.hd-cultural-page--gastronomia .structured-video-quote blockquote p {
  font-size:clamp(.92rem,1.08vw,1.04rem);
  line-height:1.72;
  font-weight:450;
}
@media (max-width:620px) {
  .hd-cultural-page--gastronomia .gastronomy-ingredients,
  .hd-cultural-page--gastronomia .editorial-card,
  .hd-cultural-page--gastronomia .hd-cta,
  .hd-cultural-page--gastronomia .structured-quote,
  .hd-cultural-page--gastronomia .structured-video-quote,
  .hd-cultural-page--gastronomia .gallery-section,
  .hd-cultural-page--gastronomia .hd-structured-faq,
  .hd-cultural-page--gastronomia .catalog-section { margin-top:32px; }
  .hd-cultural-page--gastronomia .structured-video-quote blockquote p {
    font-size:.92rem;
    line-height:1.7;
  }
}

/* 3.4.0 — Plantilla Museo Completa compartida por Museos, Haciendas y Templos. */
.hd-cultural-page--museum-template > .e-con-inner,
.hd-cultural-page--museum-template {
  --hd-cultural-block-gap: 48px;
}
.hd-cultural-page--museum-template .elementor-widget + .elementor-widget { margin-top: var(--hd-cultural-block-gap); }
.hd-cultural-page--museum-template .editorial-card--text-only > div { max-width: 760px; }
.hd-cultural-page--museum-template .quick-grid { align-items: stretch; }
.hd-cultural-page--museum-template .quick-grid > article { min-height: 118px; }
@media (max-width: 767px) {
  .hd-cultural-page--museum-template { --hd-cultural-block-gap: 32px; }
}

/* Respaldo geométrico 3.4.4 para documentos culturales insertados por Elementor. */
.hd-cultural-page,
.hd-catalog-page,
.hd-imported-page {
  --width: min(calc(100% - 48px), 1180px);
  --max-width: 1180px;
  box-sizing: border-box;
}
@media (max-width: 620px) {
  .hd-cultural-page,
  .hd-catalog-page,
  .hd-imported-page { --width: calc(100% - 32px); width: calc(100% - 32px) !important; padding-bottom:48px !important; }
}

/* Museos — noticias de producción y mapa general. */
.hd-cultural-page--museo .museum-news-section { margin-top:48px; }
.hd-cultural-page--museo .museum-news-grid {
  display:grid;
  grid-template-columns:repeat(var(--hd-grid-columns,4),minmax(0,1fr));
  gap:16px;
  margin-top:18px;
}
.hd-cultural-page--museo .museum-news-card {
  min-width:0;
  overflow:hidden;
  border:1px solid var(--line);
  border-radius:22px;
  background:var(--white);
}
.hd-cultural-page--museo .museum-news-card > a { display:block; height:100%; color:var(--ink); text-decoration:none; }
.hd-cultural-page--museo .museum-news-media { aspect-ratio:16/9; overflow:hidden; background:var(--paper); }
.hd-cultural-page--museo .museum-news-media img { width:100%; height:100%; display:block; object-fit:cover; }
.hd-cultural-page--museo .museum-news-copy { padding:16px; }
.hd-cultural-page--museo .museum-news-copy time { display:block; margin-bottom:8px; color:var(--secondary); font-size:.75rem; line-height:1.4; }
.hd-cultural-page--museo .museum-news-copy h3 { margin:0; font-size:1rem; line-height:1.25; }
.hd-cultural-page--museo .elementor-widget-hd_cta { margin-top:48px; }
.hd-cultural-page--museo .hd-cta { background:var(--white); }

@media (max-width:620px) {
  .hd-cultural-page--museo .museum-news-section,
  .hd-cultural-page--museo .elementor-widget-hd_cta { margin-top:32px; }
  .hd-cultural-page--museo .museum-news-grid { grid-template-columns:repeat(var(--hd-grid-columns,1),minmax(0,1fr)); gap:12px; }
}


/* 3.4.8 — Pulido tipográfico y mapas compartidos de Museos. */
.hd-cultural-page--museo .museum-news-copy h3 {
  font-weight:700;
  letter-spacing:-.012em;
}
.hd-cultural-page--museo .museum-news-copy time { font-weight:400; }
.hd-cultural-page--museo :is(.hd-cta__title,.hd-map__title,.hd-visit-section-heading h2) { font-weight:800; }
.hd-cultural-page--museo :is(.hd-cta__text,.hd-map__text,.hd-visit-section-heading > p:not(.hd-visit-microtitle),.hd-visit-map-copy p:not(.hd-visit-microtitle)) { font-weight:400; }
.hd-cultural-page--museo :is(.hd-cta__microtitle,.hd-visit-microtitle) { font-weight:800; }
.hd-cultural-page--museo .hd-visit-shell { width:100%; max-width:100%; margin-inline:0; }
.hd-cultural-page--museo .hd-visit-section { --pink-accessible:#d62a78; margin-top:48px; }
.hd-cultural-page--museo .hd-visit-map-card { background:var(--white); }
.hd-cultural-page--museo .hd-visit-map-copy h3 { font-weight:800; }
@media (max-width:620px) {
  .hd-cultural-page--museo .hd-visit-shell { width:100%; }
  .hd-cultural-page--museo .hd-visit-section { margin-top:32px; }
}


/* 3.4.9 — Museos: ubicación en encabezado + mapa general sin recorte. */
.hd-cultural-page--museo .contact-actions--hero a {
  font-weight:800;
}
.hd-cultural-page--museo .hd-visit-map-stage {
  height:auto !important;
  aspect-ratio:1082 / 361;
  min-height:0 !important;
  background:#e4e8e7;
}
.hd-cultural-page--museo .hd-visit-map-poster,
.hd-cultural-page--museo .hd-visit-map-poster > img,
.hd-cultural-page--museo .hd-visit-map-stage > iframe {
  width:100%;
  height:100%;
}
.hd-cultural-page--museo .hd-visit-map-poster > img {
  object-fit:cover;
  object-position:center center;
}
.hd-cultural-page--museo .hd-visit-map-copy button.hd-visit-primary-action {
  min-width:150px;
  min-height:48px;
  padding:0 20px;
  border:0 !important;
  border-radius:999px !important;
  background:var(--ink,#10232B) !important;
  color:#fff !important;
  -webkit-text-fill-color:#fff !important;
  opacity:1 !important;
  box-shadow:none !important;
  font-size:.75rem !important;
  font-weight:800 !important;
  line-height:1 !important;
  text-indent:0 !important;
}
.hd-cultural-page--museo .hd-visit-map-copy button.hd-visit-primary-action:hover,
.hd-cultural-page--museo .hd-visit-map-copy button.hd-visit-primary-action:focus-visible {
  background:#1b3440 !important;
  color:#fff !important;
  -webkit-text-fill-color:#fff !important;
}
@media (max-width:620px) {
  .hd-cultural-page--museo .hd-visit-map-stage {
    aspect-ratio:2 / 1;
  }
  .hd-cultural-page--museo .hd-visit-map-poster > img {
    object-fit:contain;
    background:#e4e8e7;
  }
}

/* 3.4.10 — Museos: poster de mapa neutro en hover y cobertura total. */
body.hd-cultural-single .hd-cultural-page--museo .hd-visit-map-stage {
  position: relative;
  isolation: isolate;
  overflow: hidden;
}
body.hd-cultural-single .hd-cultural-page--museo button.hd-visit-map-poster,
body.hd-cultural-single .hd-cultural-page--museo button.hd-visit-map-poster:hover,
body.hd-cultural-single .hd-cultural-page--museo button.hd-visit-map-poster:active {
  position: relative !important;
  width: 100% !important;
  height: 100% !important;
  display: block !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  outline: 0 !important;
  background: #e4e8e7 !important;
  box-shadow: none !important;
  transform: none !important;
  filter: none !important;
  opacity: 1 !important;
  overflow: hidden !important;
  cursor: pointer;
}
body.hd-cultural-single .hd-cultural-page--museo button.hd-visit-map-poster:focus-visible {
  outline: 3px solid var(--ink, #10232B) !important;
  outline-offset: -3px !important;
}
body.hd-cultural-single .hd-cultural-page--museo .hd-visit-map-poster > img {
  position: absolute !important;
  inset: 0 !important;
  width: 100% !important;
  max-width: none !important;
  height: 100% !important;
  min-height: 100% !important;
  display: block !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  object-fit: cover !important;
  object-position: 50% 50% !important;
  transform: none !important;
}
body.hd-cultural-single .hd-cultural-page--museo .hd-visit-map-poster::after {
  z-index: 1;
}
body.hd-cultural-single .hd-cultural-page--museo .hd-visit-map-poster > small {
  z-index: 2;
}
@media (max-width: 620px) {
  body.hd-cultural-single .hd-cultural-page--museo .hd-visit-map-stage {
    aspect-ratio: 16 / 9;
  }
  body.hd-cultural-single .hd-cultural-page--museo .hd-visit-map-poster > img {
    object-fit: cover !important;
    object-position: 50% 50% !important;
  }
}

/* 3.4.11 — Templos: mismo tratamiento de mapa, tipografía y ritmo aprobado en Museos. */
.hd-cultural-page--templo .contact-actions--hero a {
  font-weight:800;
}
.hd-cultural-page--templo :is(.hd-cta__title,.hd-map__title,.hd-visit-section-heading h2) {
  font-weight:800;
}
.hd-cultural-page--templo :is(.hd-cta__text,.hd-map__text,.hd-visit-section-heading > p:not(.hd-visit-microtitle),.hd-visit-map-copy p:not(.hd-visit-microtitle)) {
  font-weight:400;
}
.hd-cultural-page--templo :is(.hd-cta__microtitle,.hd-visit-microtitle) {
  font-weight:800;
}
.hd-cultural-page--templo .hd-visit-shell {
  width:100%;
  max-width:100%;
  margin-inline:0;
}
.hd-cultural-page--templo .hd-visit-section {
  --pink-accessible:#d62a78;
  margin-top:48px;
}
.hd-cultural-page--templo .hd-visit-map-card {
  background:var(--white);
}
.hd-cultural-page--templo .hd-visit-map-copy h3 {
  font-weight:800;
}
.hd-cultural-page--templo .hd-visit-map-stage {
  position:relative;
  isolation:isolate;
  overflow:hidden;
  height:auto !important;
  aspect-ratio:1082 / 361;
  min-height:0 !important;
  background:#e4e8e7;
}
.hd-cultural-page--templo .hd-visit-map-poster,
.hd-cultural-page--templo .hd-visit-map-poster > img,
.hd-cultural-page--templo .hd-visit-map-stage > iframe {
  width:100%;
  height:100%;
}
.hd-cultural-page--templo .hd-visit-map-copy button.hd-visit-primary-action {
  min-width:150px;
  min-height:48px;
  padding:0 20px;
  border:0 !important;
  border-radius:999px !important;
  background:var(--ink,#10232B) !important;
  color:#fff !important;
  -webkit-text-fill-color:#fff !important;
  opacity:1 !important;
  box-shadow:none !important;
  font-size:.75rem !important;
  font-weight:800 !important;
  line-height:1 !important;
  text-indent:0 !important;
}
.hd-cultural-page--templo .hd-visit-map-copy button.hd-visit-primary-action:hover,
.hd-cultural-page--templo .hd-visit-map-copy button.hd-visit-primary-action:focus-visible {
  background:#1b3440 !important;
  color:#fff !important;
  -webkit-text-fill-color:#fff !important;
}
body.hd-cultural-single .hd-cultural-page--templo button.hd-visit-map-poster,
body.hd-cultural-single .hd-cultural-page--templo button.hd-visit-map-poster:hover,
body.hd-cultural-single .hd-cultural-page--templo button.hd-visit-map-poster:active {
  position:relative !important;
  width:100% !important;
  height:100% !important;
  display:block !important;
  margin:0 !important;
  padding:0 !important;
  border:0 !important;
  border-radius:0 !important;
  outline:0 !important;
  background:#e4e8e7 !important;
  box-shadow:none !important;
  transform:none !important;
  filter:none !important;
  opacity:1 !important;
  overflow:hidden !important;
  cursor:pointer;
}
body.hd-cultural-single .hd-cultural-page--templo button.hd-visit-map-poster:focus-visible {
  outline:3px solid var(--ink,#10232B) !important;
  outline-offset:-3px !important;
}
body.hd-cultural-single .hd-cultural-page--templo .hd-visit-map-poster > img {
  position:absolute !important;
  inset:0 !important;
  width:100% !important;
  max-width:none !important;
  height:100% !important;
  min-height:100% !important;
  display:block !important;
  margin:0 !important;
  padding:0 !important;
  border:0 !important;
  border-radius:0 !important;
  object-fit:cover !important;
  object-position:50% 50% !important;
  transform:none !important;
}
body.hd-cultural-single .hd-cultural-page--templo .hd-visit-map-poster::after {
  z-index:1;
}
body.hd-cultural-single .hd-cultural-page--templo .hd-visit-map-poster > small {
  z-index:2;
}

@media (max-width:620px) {
  .hd-cultural-page--templo .hd-visit-shell {
    width:100%;
  }
  .hd-cultural-page--templo .hd-visit-section {
    margin-top:32px;
  }
  .hd-cultural-page--templo .hd-visit-map-stage {
    aspect-ratio:16 / 9;
  }
  body.hd-cultural-single .hd-cultural-page--templo .hd-visit-map-poster > img {
    object-fit:cover !important;
    object-position:50% 50% !important;
  }
}
