:root {
  --hd-tinta: #10232B;
  --hd-gris: #677277;
  --hd-papel: #F2F4F4;
  --hd-blanco: #FFFFFF;
  --hd-linea: #DFE3E1;
  --hd-rosa: #E53281;
  --hd-rosa-texto: #D62A78;
  --hd-dorado: #D7AE75;
  --hd-max: 1180px;
  --hd-shadow: 0 16px 48px rgba(16,35,43,.08);
}
.hd-widget, .hd-widget * { box-sizing: border-box; }
.hd-widget { font-family: Montserrat, Arial, sans-serif; color: var(--hd-tinta); max-width: var(--hd-max); margin-inline: auto; }
.hd-widget a:focus-visible, .hd-widget button:focus-visible, .hd-widget summary:focus-visible { outline: 3px solid currentColor; outline-offset: 3px; }
.hd-editorial-header { display:grid; grid-template-columns:minmax(0,1.1fr) minmax(260px,.9fr); align-items:center; gap:48px; padding:32px; background:var(--hd-blanco); border:1px solid var(--hd-linea); border-radius:28px; }
.hd-editorial-header__microtitle,.hd-dictionary__eyebrow,.hd-cta__microtitle { color:var(--hd-rosa-texto); font-size:13px; line-height:1.4; font-weight:800; letter-spacing:.08em; text-transform:uppercase; margin-bottom:12px; }
.hd-editorial-header__title,.hd-dictionary__title,.hd-cta__title { margin:0 0 16px; color:var(--hd-tinta); font-size:clamp(2rem,5vw,3.5rem); font-weight:800; line-height:1.02; letter-spacing:-.035em; }
.hd-editorial-header__description,.hd-dictionary__description,.hd-cta__text { color:var(--hd-gris); font-size:17px; line-height:1.65; }
.hd-editorial-header__description > :first-child,.hd-cta__text > :first-child { margin-top:0; }
.hd-editorial-header__description > :last-child,.hd-cta__text > :last-child { margin-bottom:0; }
.hd-editorial-header__image { width:100%; height:100%; min-height:260px; object-fit:cover; border-radius:22px; display:block; }
.hd-short-answer { padding:20px 24px; background:var(--hd-papel); border:1px solid var(--hd-linea); border-radius:18px; }
.hd-short-answer__text { margin:0; font-size:16px; line-height:1.65; }
.hd-dictionary { padding:32px 0; }
.hd-dictionary__intro { max-width:760px; margin-bottom:40px; }
.hd-dictionary__layout { --hd-dictionary-sidebar:280px; display:grid; grid-template-columns:var(--hd-dictionary-sidebar) minmax(0,1fr); gap:56px; align-items:start; }
.hd-dictionary__nav { position:sticky; top:96px; padding:20px; border:1px solid var(--hd-linea); border-radius:22px; background:var(--hd-blanco); }
.hd-dictionary__nav-title { font-size:12px; font-weight:800; letter-spacing:.08em; margin-bottom:14px; }
.hd-dictionary__nav ol { list-style:none; padding:0; margin:0; display:grid; gap:6px; }
.hd-dictionary__nav a { display:block; padding:9px 10px; border-left:3px solid transparent; color:var(--hd-gris); text-decoration:none; font-size:14px; line-height:1.35; }
.hd-dictionary__nav a[aria-current="true"] { color:var(--hd-rosa-texto); border-color:var(--hd-rosa-texto); font-weight:700; }
.hd-dictionary__content { min-width:0; }
.hd-dictionary__topic { scroll-margin-top:110px; padding:0 0 48px; margin:0 0 48px; border-bottom:1px solid var(--hd-linea); }
.hd-dictionary__topic:last-child { margin-bottom:0; border-bottom:0; }
.hd-dictionary__topic-kicker,.hd-dictionary__subtopic-kicker { display:flex; gap:10px; align-items:center; color:var(--hd-rosa-texto); text-transform:uppercase; font-weight:800; font-size:12px; letter-spacing:.06em; }
.hd-dictionary__number { color:var(--hd-gris); }
.hd-dictionary__topic-title { margin:10px 0 18px; font-size:clamp(1.7rem,3vw,2.25rem); line-height:1.08; }
.hd-dictionary__topic-copy,.hd-dictionary__subtopic-copy { color:var(--hd-gris); font-size:16px; line-height:1.7; }
.hd-dictionary__subtopic { margin-top:32px; padding-top:24px; border-top:1px dashed var(--hd-linea); }
.hd-dictionary__subtopic-title { margin:8px 0 12px; font-size:clamp(1.25rem,2.4vw,1.55rem); line-height:1.15; }
.hd-quick-facts { padding:24px; background:var(--hd-blanco); border:1px solid var(--hd-linea); border-radius:22px; }
.hd-quick-facts__title,.hd-gallery__title,.hd-documents__title,.hd-faq__title,.hd-map__title,.hd-related__title { margin:0 0 22px; font-size:clamp(1.6rem,3vw,2.25rem); font-weight:800; line-height:1.08; letter-spacing:-.035em; }
.hd-quick-facts__grid,.hd-gallery__grid,.hd-documents__grid,.hd-related__grid { --hd-cols:4; display:grid; grid-template-columns:repeat(var(--hd-cols),minmax(0,1fr)); gap:16px; margin:0; }
.hd-quick-facts__item { padding:16px; border:1px solid var(--hd-linea); border-radius:18px; background:var(--hd-papel); }
.hd-quick-facts__label { font-size:13px; line-height:1.4; color:var(--hd-gris); font-weight:700; margin-bottom:6px; }
.hd-quick-facts__value { margin:0; font-size:16px; line-height:1.5; color:var(--hd-tinta); font-weight:650; }
.hd-gallery { padding:24px 0; }
.hd-gallery__item { margin:0; min-width:0; }
.hd-gallery__image { width:100%; aspect-ratio:4/3; object-fit:cover; border-radius:18px; display:block; }
.hd-documents { padding:24px; background:var(--hd-papel); border-radius:22px; }
.hd-documents__link { display:flex; align-items:center; gap:10px; min-height:48px; padding:12px 16px; background:var(--hd-blanco); border:1px solid var(--hd-linea); border-radius:999px; color:var(--hd-tinta); text-decoration:none; font-weight:700; }
.hd-documents__badge { flex:0 0 auto; font-size:11px; font-weight:800; color:var(--hd-rosa-texto); }
.hd-cta { display:flex; align-items:center; gap:40px; padding:32px; border:1px solid var(--hd-linea); border-radius:28px; background:var(--hd-papel); }
.hd-cta__copy,.hd-cta__media { flex:1 1 0; min-width:0; }
.hd-cta__image { width:100%; aspect-ratio:4/3; object-fit:cover; border-radius:22px; display:block; }
.hd-cta-image-left .hd-cta__media { order:-1; }
.hd-cta-image-right .hd-cta__media { order:2; }
.hd-cta__buttons { display:flex; flex-wrap:wrap; gap:12px; margin-top:22px; }
.hd-cta__button,.hd-map__button { display:inline-flex; min-height:48px; align-items:center; justify-content:center; padding:13px 20px; border-radius:999px; background:var(--hd-tinta); color:var(--hd-blanco); text-decoration:none; font-size:14px; font-weight:800; }
.hd-faq { padding:24px 0; }
.hd-faq__list { display:grid; gap:12px; }
.hd-faq__item { border:1px solid var(--hd-linea); border-radius:18px; background:var(--hd-blanco); overflow:hidden; }
.hd-faq__question { cursor:pointer; padding:18px 20px; font-weight:750; line-height:1.4; }
.hd-faq__answer { padding:0 20px 20px; color:var(--hd-gris); line-height:1.7; }
.hd-map { padding:24px; border:1px solid var(--hd-linea); border-radius:22px; }
.hd-map__text { color:var(--hd-gris); line-height:1.65; }
.hd-map__media { margin:20px 0; }
.hd-map__poster { width:100%; aspect-ratio:16/9; object-fit:cover; border-radius:18px; display:block; }
.hd-related { padding:24px 0; }
.hd-related__card { overflow:hidden; border:1px solid var(--hd-linea); border-radius:22px; background:var(--hd-blanco); }
.hd-related__link { display:block; color:inherit; text-decoration:none; }
.hd-related__image { display:block; width:100%; aspect-ratio:16/9; object-fit:cover; }
.hd-related__card-title { margin:0; padding:16px; font-size:17px; line-height:1.3; }
@media (max-width: 900px) {
  .hd-editorial-header { grid-template-columns:1fr; gap:28px; }
  .hd-dictionary__layout { grid-template-columns:1fr; gap:28px; }
  .hd-dictionary__nav { position:relative; top:auto; }
  .hd-cta { flex-direction:column; align-items:stretch; }
  .hd-cta__media { order:-1 !important; }
}
@media (max-width: 560px) {
  .hd-editorial-header,.hd-cta { padding:22px; border-radius:22px; }
  .hd-quick-facts__grid,.hd-gallery__grid,.hd-documents__grid,.hd-related__grid { --hd-cols:2; }
  .hd-documents__grid { --hd-cols:1; }
}
@media (prefers-reduced-motion: reduce) {
  .hd-widget *, .hd-widget *::before, .hd-widget *::after { scroll-behavior:auto !important; transition-duration:.01ms !important; animation-duration:.01ms !important; animation-iteration-count:1 !important; }
}

.hd-quick-facts__grid > *, .hd-gallery__grid > *, .hd-documents__grid > *, .hd-related__grid > * { break-inside:avoid; }

/* Beta4 3.3.3 — Galería A/B/C y CTA inline, alineados al Laboratorio Visual. */
.hd-gallery__microtitle {
  margin:0 0 10px;
  color:var(--hd-rosa-texto);
  font-size:13px;
  line-height:1.4;
  font-weight:800;
  letter-spacing:.08em;
  text-transform:uppercase;
}
.hd-gallery__description { max-width:64ch; margin:-10px 0 20px; color:var(--hd-gris); font-size:15px; line-height:1.6; }
.hd-gallery__grid { --hd-cols:3; grid-template-columns:repeat(var(--hd-cols),minmax(0,1fr)); }
.hd-gallery__caption { margin:9px 0 0; color:var(--hd-gris); font-size:12px; line-height:1.5; }
.hd-gallery__grid--horizontal {
  display:flex !important;
  overflow-x:auto;
  overflow-y:hidden;
  padding-bottom:10px;
  scroll-snap-type:x proximity;
  overscroll-behavior-inline:contain;
  scrollbar-width:thin;
}
.hd-gallery__grid--horizontal .hd-gallery__item { flex:0 0 min(420px,76vw); scroll-snap-align:start; }
.hd-gallery__more { margin-top:18px; }
.hd-gallery__more > summary {
  min-height:44px;
  width:max-content;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:0 18px;
  border:1px solid var(--hd-linea);
  border-radius:999px;
  background:var(--hd-blanco);
  color:var(--hd-tinta);
  cursor:pointer;
  list-style:none;
  font-size:12px;
  font-weight:800;
}
.hd-gallery__more > summary::-webkit-details-marker { display:none; }
.hd-gallery__more-close { display:none; }
.hd-gallery__more[open] .hd-gallery__more-open { display:none; }
.hd-gallery__more[open] .hd-gallery__more-close { display:inline; }
.hd-gallery__more .hd-gallery__grid { margin-top:18px; }
.hd-gallery-grid-mode-masonry .hd-gallery__grid:not(.hd-gallery__grid--horizontal) {
  display:block !important;
  columns:var(--hd-cols,3);
  column-gap:16px;
}
.hd-gallery-grid-mode-masonry .hd-gallery__grid:not(.hd-gallery__grid--horizontal) .hd-gallery__item { break-inside:avoid; margin:0 0 16px; }

.hd-cta-layout-inline .hd-cta { background:var(--hd-blanco); }
.hd-cta-layout-inline .hd-cta__copy {
  width:100%;
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  align-items:center;
  gap:36px;
}
.hd-cta-layout-inline .hd-cta__title { max-width:18ch; font-size:clamp(1.85rem,4vw,2.6rem); }
.hd-cta-layout-inline .hd-cta__text { max-width:64ch; font-size:15px; }
.hd-cta-layout-inline .hd-cta__buttons { margin-top:0; justify-content:flex-end; }
@media (max-width:900px) {
  .hd-cta-layout-inline .hd-cta__copy { grid-template-columns:1fr; gap:22px; }
  .hd-cta-layout-inline .hd-cta__buttons { justify-content:flex-start; }
}
@media (max-width:560px) {
  .hd-gallery__grid--horizontal .hd-gallery__item { flex-basis:82vw; }
}
.hd-gallery--variant-c { position:relative; }
.hd-gallery--variant-c .hd-gallery__more > summary { position:absolute; top:24px; right:0; }
@media (max-width:560px) {
  .hd-gallery--variant-c .hd-gallery__more > summary { position:static; margin-top:16px; }
}

/* 3.3.6 — accesibilidad/robustez de botones CTA sobre fondo tinta. */
.hd-cta__button,.hd-cta__button:visited,.hd-cta__button:hover,.hd-cta__button:focus { color:#fff !important; }
