/* ============================================================
   HERNÁNDEZ & COMPANY — CHROME (topbar · header · footer)
   ------------------------------------------------------------
   Estilos del marco del sitio. Solo consume tokens de brand.css.

   Convivencia con el theme base:
   · El marcado propio usa el prefijo .hdz-* → no choca con nada.
   · Los <li>/<a> del menú los genera MegaMenuWalker con las clases
     del base (.nav-list, .nav-link--top, .dropdown-menu…), así que
     el base ya resuelve la mecánica (dropdown, acordeón móvil) y
     aquí solo se repinta, siempre bajo .hdz-nav para ganar en
     especificidad sin !important.
   · #site-header, #site-nav, .js-menu-toggle y .site-nav los usa el
     JS del base (sticky, drawer móvil, foco). No renombrar.
   ============================================================ */

/* ════════════════════════════════════════════════════════════
   BARRA DE ANUNCIO (KuiraWeb → Header y menús)
════════════════════════════════════════════════════════════ */
.hdz-announce {
  background: var(--hdz-wine);
  color: #fff;
  font-size: 13px;
  text-align: center;
}

.hdz-announce .hdz-container {
  padding-block: 8px;
}

.hdz-announce a { color: #fff; text-decoration: underline; }

/* ════════════════════════════════════════════════════════════
   TOPBAR — datos de contacto e idioma
════════════════════════════════════════════════════════════ */
/* El topbar cuelga de #site-header con la clase .header-topbar del base, que le
   da overflow + transición de max-height. Aquí se empata clase (0,2,0) para
   ganarle al alto fijo y al gris del base, que se imprimen después. */
.hdz-topbar {
  color: var(--hdz-on-dark);
  font-size: 13px;
}

.hdz-topbar.header-topbar {
  height: auto;
  max-height: 160px;      /* holgura para que envuelva en móvil sin recortarse */
  background: var(--hdz-ink);
  border-bottom: none;
}

/* Al hacer scroll el JS del base marca .is-sticky → el topbar se pliega y
   queda solo la barra principal, como en el diseño. */
.hdz-header.is-sticky .hdz-topbar {
  max-height: 0;
  opacity: 0;
}

.hdz-topbar__inner {
  display: flex;
  align-items: center;
  gap: 10px 28px;
  flex-wrap: wrap;
  padding-block: 9px;
}

.hdz-topbar__phone {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  color: var(--hdz-on-dark-82);
  transition: color var(--hdz-t-fast);
}

.hdz-topbar__phone:hover { color: #fff; }

.hdz-topbar__dot {
  width: 5px;
  height: 5px;
  background: var(--hdz-gold);
  border-radius: 50%;
  display: block;
  flex: none;
}

.hdz-topbar__right {
  margin-left: auto;
  display: flex;
  align-items: center;
  gap: 14px;
}

.hdz-topbar__addr {
  letter-spacing: .08em;
  text-transform: uppercase;
  font-size: 11px;
}

.hdz-topbar__search {
  display: inline-flex;
  align-items: center;
  color: var(--hdz-on-dark-82);
  transition: color var(--hdz-t-fast);
}

.hdz-topbar__search:hover { color: #fff; }

/* Selector de idioma (solo si hay WPML/Polylang con >1 idioma) */
.hdz-lang {
  display: flex;
  border: 1px solid var(--hdz-on-dark-22);
  border-radius: 3px;
  overflow: hidden;
  font-size: 11px;
  letter-spacing: .06em;
}

.hdz-lang__item {
  padding: 3px 8px;
  color: rgba(255, 255, 255, .7);
  text-transform: uppercase;
  transition: color var(--hdz-t-fast);
}

.hdz-lang__item:hover { color: #fff; }

.hdz-lang__item--active {
  background: var(--hdz-gold);
  color: var(--hdz-ink);
  font-weight: 600;
}

.hdz-lang__item--active:hover { color: var(--hdz-ink); }

/* ════════════════════════════════════════════════════════════
   HEADER
════════════════════════════════════════════════════════════ */
.hdz-header {
  position: sticky;
  top: 0;
  z-index: 1001;
  background: var(--hdz-cream);
  border-bottom: 1px solid var(--hdz-ink-10);
}

.hdz-header--static { position: static; }

.hdz-header.is-sticky { box-shadow: 0 2px 12px rgba(26, 22, 20, .08); }

.hdz-header__inner {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 20px 28px;
  padding-block: 14px;
}

/* ── Logo ─────────────────────────────────────────────────── */
.hdz-logo {
  display: flex;
  align-items: center;
  flex: none;
}

.hdz-logo a,
.hdz-logo__link { display: block; line-height: 0; }

.hdz-logo img {
  height: 42px;
  width: auto;
  display: block;
  /* El logo viene con fondo blanco: multiply lo funde con el crema */
  mix-blend-mode: multiply;
}

.hdz-logo .site-name-text {
  font-family: var(--hdz-font-display);
  font-size: 22px;
  font-weight: 700;
  color: var(--hdz-wine);
  line-height: 1.1;
}

/* ── Navegación ───────────────────────────────────────────── */
.hdz-nav {
  display: flex;
  align-items: center;
  margin-left: auto;
}

.hdz-nav .nav-list {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: clamp(13px, 1.7vw, 26px);
}

.hdz-nav .nav-link--top {
  padding: 6px 0;
  font-family: var(--hdz-font-body);
  font-size: clamp(12.5px, 1.05vw, 14.5px);
  font-weight: 500;
  letter-spacing: 0;
  text-transform: none;
  color: var(--hdz-ink-78);
  border-bottom: 2px solid transparent;
  transition: color var(--hdz-t-fast), border-color var(--hdz-t-fast);
}

/* El subrayado del base es un ::after escalado; aquí se usa el
   border-bottom del propio enlace (como el diseño), así que se apaga. */
.hdz-nav .nav-link--top::after { display: none; }

.hdz-nav .nav-item--top:hover > .nav-link--top,
.hdz-nav .nav-item--top:focus-within > .nav-link--top {
  color: var(--hdz-wine);
}

.hdz-nav .nav-item--top.is-active > .nav-link--top {
  color: var(--hdz-wine);
  border-bottom-color: var(--hdz-gold);
}

/* Dropdowns — superficie clara, acento vino */
.hdz-nav .dropdown-menu,
.hdz-nav .submenu {
  background: #fff;
  border-top: 3px solid var(--hdz-wine);
  box-shadow: 0 12px 32px rgba(26, 22, 20, .14);
  min-width: 232px;
  padding-block: 4px;
}

.hdz-nav .nav-item--child { border-bottom: 1px solid var(--hdz-line); }
.hdz-nav .nav-item--child:last-child { border-bottom: none; }

.hdz-nav .nav-link--child {
  padding: 11px 18px;
  font-size: 13.5px;
  font-weight: 500;
  letter-spacing: 0;
  text-transform: none;
  color: var(--hdz-ink-78);
}

.hdz-nav .nav-link--child:hover {
  background: var(--hdz-sand);
  color: var(--hdz-wine);
}

/* Ítem del menú marcado con la clase "menu-btn" en Apariencia → Menús */
.hdz-nav .nav-item--top.menu-btn > .nav-link--top {
  background: var(--hdz-wine);
  color: #fff;
  padding: 11px 20px;
  border-radius: var(--hdz-radius);
  border-bottom: none;
  font-weight: 600;
}

.hdz-nav .nav-item--top.menu-btn > .nav-link--top:hover {
  background: var(--hdz-wine-dark);
  color: #fff;
}

/* ── CTA del header ───────────────────────────────────────── */
.hdz-header__cta {
  background: var(--hdz-wine);
  color: #fff;
  padding: 11px 20px;
  border-radius: var(--hdz-radius);
  font-weight: 600;
  font-size: clamp(12.5px, 1.05vw, 14.5px);
  letter-spacing: .01em;
  white-space: nowrap;
  flex: none;
  transition: background var(--hdz-t-fast);
}

.hdz-header__cta:hover { background: var(--hdz-wine-dark); color: #fff; }

/* ── Hamburguesa (el base la muestra ≤1024px) ─────────────── */
.hdz-header .hamburger-bar { background: var(--hdz-wine); }

.hdz-header__mobile-actions {
  display: none;
  align-items: center;
  margin-left: auto;
}

.hdz-header__search {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  color: var(--hdz-wine);
  border-right: 1px solid var(--hdz-ink-10);
  transition: color var(--hdz-t-fast), background var(--hdz-t-fast);
}

.hdz-header__search:hover,
.hdz-header__search:focus-visible {
  background: var(--hdz-sand);
  color: var(--hdz-wine-dark);
}

/* ════════════════════════════════════════════════════════════
   RESPONSIVE — ≤1024px
   El drawer y el acordeón los aporta el base vía .site-nav /
   .nav-*; aquí se reponen los valores que el bloque de arriba
   sobreescribió y se repinta con la paleta.
════════════════════════════════════════════════════════════ */
@media (max-width: 1024px) {
  .hdz-topbar.header-topbar { display: none; }

  .hdz-header__inner {
    flex-wrap: nowrap;
    gap: 16px;
    min-height: 68px;
    padding-block: 12px;
  }

  .hdz-header__mobile-actions {
    display: flex;
    gap: 13px;
  }

  .hdz-header__mobile-actions .hamburger {
    flex: none;
    width: 28px;
  }

  /* .site-nav.hdz-nav: el base pinta el drawer con `.site-nav` (0,1,0) y
     se imprime después que este archivo, así que hace falta empatar clase. */
  .site-nav.hdz-nav {
    background: var(--hdz-cream);
    border-top: 2px solid var(--hdz-line);
  }

  .hdz-nav .nav-list {
    flex-direction: column;
    align-items: stretch;
    justify-content: flex-start;
    gap: 0;
    padding: 8px 0;
  }

  .hdz-nav .nav-link--top {
    padding: 15px var(--hdz-gutter-sm);
    font-size: 15px;
    justify-content: space-between;
    border-bottom: 1px solid var(--hdz-line);
  }

  .hdz-nav .nav-item--top.is-active > .nav-link--top {
    border-bottom-color: var(--hdz-line);
    box-shadow: inset 3px 0 0 var(--hdz-gold);
  }

  .hdz-nav .dropdown-menu,
  .hdz-nav .submenu {
    background: var(--hdz-sand);
    border-top: none;
    box-shadow: none;
    min-width: 0;
    padding-block: 0;
  }

  .hdz-nav .nav-link--child {
    padding-left: calc(var(--hdz-gutter-sm) + 16px);
    padding-right: var(--hdz-gutter-sm);
  }

  .hdz-nav .nav-item--top.menu-btn > .nav-link--top {
    margin: 10px var(--hdz-gutter-sm);
    justify-content: center;
  }

  /* En móvil el CTA vive dentro del drawer, no en la barra */
  .hdz-header__cta--desktop { display: none; }

  .hdz-nav__cta {
    display: block;
    margin: 14px var(--hdz-gutter-sm);
    text-align: center;
  }

  .hdz-logo img { height: 36px; }
}

@media (min-width: 1025px) {
  .hdz-nav__cta { display: none; }
}

@media (max-width: 720px) {
  .hdz-header__inner { min-height: 64px; }
}

/* ════════════════════════════════════════════════════════════
   BUSCADOR DEL SITIO
   Reemplaza visualmente el modal genérico del base con la misma
   gramática editorial del sitio: tinta, vino, oro y esquina viva.
════════════════════════════════════════════════════════════ */
html body .hdz-search-modal {
  align-items: center;
  padding: 32px;
}

html body .hdz-search-modal .sm-backdrop {
  background: linear-gradient(135deg, rgba(26, 22, 20, .93), rgba(58, 9, 18, .82));
  backdrop-filter: blur(8px);
}

html body .hdz-search-panel {
  width: min(1080px, 100%);
  max-width: 1080px;
  max-height: calc(100dvh - 64px);
  margin: 0;
  background: var(--hdz-cream);
  border: 0;
  border-top: 4px solid var(--hdz-gold);
  border-radius: 0;
  box-shadow: 0 32px 90px rgba(0, 0, 0, .44);
  overflow: hidden;
}

.hdz-search-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 28px;
  padding: 32px 36px 26px;
  background: var(--hdz-ink);
  color: #fff;
}

.hdz-search-head__eyebrow {
  margin: 0 0 8px;
  color: var(--hdz-gold-soft);
  font-size: 10.5px;
  font-weight: 500;
  letter-spacing: .18em;
  text-transform: uppercase;
}

.hdz-search-head__title {
  margin: 0;
  color: #fff;
  font-family: var(--hdz-font-display);
  font-size: clamp(27px, 3vw, 38px);
  font-weight: 600;
  line-height: 1.08;
}

html body .hdz-search-head .sm-close {
  width: 42px;
  height: 42px;
  margin: -4px -7px 0 0;
  border: 1px solid rgba(255, 255, 255, .24);
  border-radius: 0;
  color: rgba(255, 255, 255, .76);
}

html body .hdz-search-head .sm-close:hover {
  background: rgba(255, 255, 255, .1);
  color: #fff;
}

html body .hdz-search-form {
  display: flex;
  flex: none;
  align-items: center;
  gap: 16px;
  margin: 28px 36px 22px;
  padding: 0 0 0 20px;
  background: #fff;
  border: 1px solid rgba(26, 22, 20, .18);
  border-left: 4px solid var(--hdz-wine);
  transition: border-color var(--hdz-t-fast), box-shadow var(--hdz-t-fast);
}

html body .hdz-search-form:focus-within {
  border-color: var(--hdz-wine);
  box-shadow: 0 0 0 3px rgba(122, 15, 27, .1);
}

html body .hdz-search-form .sm-icon {
  flex: none;
  color: var(--hdz-wine);
}

html body .hdz-search-form .sm-input {
  min-width: 0;
  padding: 20px 0;
  color: var(--hdz-ink);
  font-family: var(--hdz-font-body);
  font-size: clamp(16px, 1.8vw, 20px);
  font-weight: 400;
}

html body .hdz-search-form .sm-input::placeholder {
  color: rgba(26, 22, 20, .42);
}

/* Chromium/Safari agregan su propia X a type=search; el modal ya tiene un
   botón accesible de limpiar, así que se evita el control duplicado. */
html body .hdz-search-form input[type="search"]::-webkit-search-cancel-button {
  display: none;
  -webkit-appearance: none;
}

html body .hdz-search-form .sm-clear {
  flex: none;
  border-radius: 0;
  color: rgba(26, 22, 20, .48);
}

html body .hdz-search-form .sm-clear:hover {
  background: var(--hdz-sand);
  color: var(--hdz-wine);
}

.hdz-search-submit {
  align-self: stretch;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 9px;
  min-width: 126px;
  padding-inline: 24px;
  background: var(--hdz-wine);
  color: #fff;
  font-size: 14px;
  font-weight: 600;
  transition: background var(--hdz-t-fast);
}

.hdz-search-submit:hover { background: var(--hdz-wine-dark); }

html body .hdz-search-body {
  min-height: 230px;
  background: var(--hdz-cream);
  scrollbar-color: var(--hdz-gold) var(--hdz-sand);
}

html body .hdz-search-start.sm-hint {
  display: block;
  padding: 8px 36px 34px;
  color: var(--hdz-ink);
  text-align: left;
}

.hdz-search-start__label {
  margin: 0 0 14px;
  color: rgba(26, 22, 20, .54);
  font-size: 10.5px;
  font-weight: 600;
  letter-spacing: .16em;
  text-transform: uppercase;
}

.hdz-search-start__links {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1px;
  background: rgba(26, 22, 20, .14);
  border: 1px solid rgba(26, 22, 20, .14);
}

.hdz-search-start__links a {
  position: relative;
  display: grid;
  grid-template-columns: 34px minmax(0, 1fr);
  gap: 2px 14px;
  padding: 22px 24px;
  background: #fff;
  color: var(--hdz-ink);
  transition: background var(--hdz-t-fast), color var(--hdz-t-fast);
}

.hdz-search-start__links a:hover,
.hdz-search-start__links a:focus-visible {
  background: var(--hdz-sand);
  color: var(--hdz-wine);
}

.hdz-search-start__links a > span {
  grid-row: 1 / span 2;
  padding-top: 4px;
  color: var(--hdz-gold);
  font-family: ui-monospace, Menlo, Consolas, monospace;
  font-size: 11px;
}

.hdz-search-start__links strong {
  font-family: var(--hdz-font-display);
  font-size: 19px;
  font-weight: 600;
  line-height: 1.25;
}

.hdz-search-start__links small {
  color: rgba(26, 22, 20, .6);
  font-size: 12.5px;
  line-height: 1.45;
}

html body .hdz-search-state.sm-state {
  min-height: 230px;
  color: rgba(26, 22, 20, .62);
}

html body .hdz-search-state .sm-spinner {
  border-color: rgba(26, 22, 20, .16);
  border-top-color: var(--hdz-wine);
}

html body .hdz-search-group.sm-group {
  padding: 8px 36px 22px;
}

html body .hdz-search-group .sm-group-title {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin: 0;
  padding: 15px 0 10px;
  border-bottom: 1px solid rgba(26, 22, 20, .14);
  color: var(--hdz-wine);
  font-size: 10.5px;
  font-weight: 600;
  letter-spacing: .16em;
}

.hdz-search-group .sm-group-title span:last-child {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 24px;
  height: 24px;
  background: var(--hdz-sand);
  color: var(--hdz-ink-60);
  letter-spacing: 0;
}

.hdz-search-result-list {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.hdz-search-result {
  display: grid;
  grid-template-columns: 28px minmax(0, 1fr) 22px;
  gap: 14px;
  align-items: start;
  min-height: 92px;
  padding: 18px 18px 18px 0;
  border-bottom: 1px solid rgba(26, 22, 20, .11);
  color: var(--hdz-ink);
}

.hdz-search-result:nth-child(odd) {
  padding-right: 24px;
  border-right: 1px solid rgba(26, 22, 20, .11);
}

.hdz-search-result:nth-child(even) { padding-left: 24px; }

.hdz-search-result:hover .hdz-search-result__copy strong,
.hdz-search-result:focus-visible .hdz-search-result__copy strong {
  color: var(--hdz-wine);
}

.hdz-search-result__num {
  padding-top: 3px;
  color: var(--hdz-gold);
  font-family: ui-monospace, Menlo, Consolas, monospace;
  font-size: 10.5px;
}

.hdz-search-result__copy {
  display: grid;
  gap: 5px;
  min-width: 0;
}

.hdz-search-result__copy strong {
  font-family: var(--hdz-font-display);
  font-size: 17px;
  font-weight: 600;
  line-height: 1.25;
  transition: color var(--hdz-t-fast);
}

.hdz-search-result__copy small {
  display: -webkit-box;
  overflow: hidden;
  color: rgba(26, 22, 20, .58);
  font-size: 12px;
  line-height: 1.45;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
}

.hdz-search-result__arrow {
  color: var(--hdz-wine);
  font-size: 18px;
  transition: transform var(--hdz-t-fast);
}

.hdz-search-result:hover .hdz-search-result__arrow { transform: translateX(4px); }

.hdz-search-empty {
  display: grid;
  grid-template-columns: 56px minmax(0, 1fr);
  gap: 24px;
  align-items: start;
  max-width: 620px;
  padding: 38px 36px 46px;
}

.hdz-search-empty__mark {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 56px;
  height: 56px;
  background: var(--hdz-wine);
  color: #fff;
  font-family: var(--hdz-font-display);
  font-size: 28px;
}

.hdz-search-empty__eyebrow {
  margin: 0 0 5px;
  color: var(--hdz-wine);
  font-size: 10.5px;
  letter-spacing: .15em;
  text-transform: uppercase;
}

.hdz-search-empty h3 {
  margin: 0 0 8px;
  font-family: var(--hdz-font-display);
  font-size: 24px;
  font-weight: 600;
}

.hdz-search-empty p:last-child {
  margin: 0;
  color: rgba(26, 22, 20, .66);
  font-size: 14px;
  line-height: 1.6;
}

html body .hdz-search-panel .sm-footer {
  padding: 0;
  background: var(--hdz-sand);
  border-top: 1px solid rgba(26, 22, 20, .14);
}

html body .hdz-search-panel .sm-viewall {
  justify-content: space-between;
  padding: 18px 36px;
  border-radius: 0;
  color: var(--hdz-wine);
  font-size: 11.5px;
  letter-spacing: .14em;
}

html body .hdz-search-panel .sm-viewall:hover {
  background: color-mix(in srgb, var(--hdz-sand) 76%, var(--hdz-gold));
}

@media (max-width: 720px) {
  html body .hdz-search-modal {
    align-items: stretch;
    padding: 0;
  }

  html body .hdz-search-panel {
    width: 100%;
    max-width: none;
    max-height: 100dvh;
    min-height: 100dvh;
    margin: 0;
    border-radius: 0;
  }

  .hdz-search-head { padding: 22px 20px 18px; }
  .hdz-search-head__title { font-size: 27px; }

  html body .hdz-search-head .sm-close {
    width: 38px;
    height: 38px;
  }

  html body .hdz-search-form {
    gap: 10px;
    margin: 18px 20px 14px;
    padding-left: 14px;
  }

  html body .hdz-search-form .sm-input {
    padding-block: 17px;
    font-size: 16px;
  }

  .hdz-search-submit {
    min-width: 52px;
    padding-inline: 16px;
    font-size: 0;
  }

  .hdz-search-submit svg { width: 18px; height: 18px; }

  html body .hdz-search-start.sm-hint { padding: 6px 20px 28px; }
  .hdz-search-start__links { grid-template-columns: 1fr; }
  .hdz-search-start__links a { padding: 17px 18px; }
  .hdz-search-start__links small { display: none; }

  html body .hdz-search-group.sm-group { padding: 6px 20px 18px; }
  .hdz-search-result-list { grid-template-columns: 1fr; }

  .hdz-search-result,
  .hdz-search-result:nth-child(odd),
  .hdz-search-result:nth-child(even) {
    min-height: 0;
    padding: 16px 0;
    border-right: 0;
  }

  .hdz-search-empty {
    grid-template-columns: 42px minmax(0, 1fr);
    gap: 16px;
    padding: 28px 20px 38px;
  }

  .hdz-search-empty__mark { width: 42px; height: 42px; font-size: 22px; }
  .hdz-search-empty h3 { font-size: 21px; }

  html body .hdz-search-panel .sm-viewall { padding: 16px 20px; }
}

@media (prefers-reduced-motion: reduce) {
  html body .hdz-search-modal .sm-backdrop,
  html body .hdz-search-panel { animation: none; }
}

/* ════════════════════════════════════════════════════════════
   FRANJA DE CONSULTA (antes del pie, en todas las páginas)
════════════════════════════════════════════════════════════ */
.hdz-consult {
  background: var(--hdz-sand);
  border-top: 1px solid rgba(26, 22, 20, .09);
}

.hdz-consult__inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 40px;
  flex-wrap: wrap;
  padding-block: 64px;
}

.hdz-consult__title {
  margin: 0;
  font-family: var(--hdz-font-display);
  font-size: clamp(26px, 2.8vw, 32px);
  font-weight: 600;
  line-height: 1.2;
  max-width: 26ch;
  text-wrap: pretty;
}

.hdz-consult__actions {
  display: flex;
  gap: 14px;
  flex-wrap: wrap;
}

@media (max-width: 640px) {
  .hdz-consult__inner { padding-block: 48px; gap: 28px; }
}

/* ════════════════════════════════════════════════════════════
   FOOTER
════════════════════════════════════════════════════════════ */
.hdz-footer {
  background: var(--hdz-ink);
  color: var(--hdz-on-dark);
  margin-top: auto;
  position: relative;
  overflow: hidden;
  border-top: 4px solid var(--hdz-wine);
}

.hdz-footer::before {
  content: "";
  position: absolute;
  top: 0;
  right: clamp(24px, 6vw, 96px);
  width: clamp(72px, 9vw, 150px);
  height: 4px;
  background: var(--hdz-gold-soft);
}

.hdz-footer a {
  color: var(--hdz-on-dark);
  transition: color var(--hdz-t-fast);
}

.hdz-footer a:hover { color: var(--hdz-gold-soft); }

.hdz-footer__masthead {
  display: grid;
  grid-template-columns: minmax(0, 1.55fr) minmax(280px, .7fr);
  align-items: end;
  gap: 48px;
  padding-block: clamp(54px, 6vw, 84px) clamp(44px, 5vw, 64px);
}

.hdz-footer__eyebrow {
  margin: 0 0 18px;
  color: var(--hdz-gold-soft);
  font-size: 11px;
  font-weight: 600;
  letter-spacing: .18em;
  line-height: 1.4;
  text-transform: uppercase;
}

.hdz-footer__statement {
  max-width: 900px;
  margin: 0;
  color: #fff;
  font-family: var(--hdz-font-display);
  font-size: clamp(30px, 4vw, 54px);
  font-weight: 500;
  letter-spacing: -.025em;
  line-height: 1.08;
  text-wrap: balance;
}

.hdz-footer__disciplines {
  border-top: 1px solid var(--hdz-on-dark-14);
}

.hdz-footer__disciplines span {
  display: flex;
  align-items: center;
  min-height: 46px;
  border-bottom: 1px solid var(--hdz-on-dark-14);
  color: var(--hdz-on-dark);
  font-size: 12px;
  font-weight: 500;
  letter-spacing: .11em;
  text-transform: uppercase;
}

.hdz-footer__disciplines span::before {
  content: "";
  width: 5px;
  height: 5px;
  margin-right: 12px;
  background: var(--hdz-gold-soft);
}

.hdz-footer__grid {
  display: grid;
  grid-template-columns: 1.2fr .9fr .9fr 1.35fr;
  gap: 0;
  /* padding-block, no el atajo: comparte elemento con .hdz-container y el
     atajo borraría su padding-inline. */
  padding-block: 0;
  align-items: start;
  border-top: 1px solid var(--hdz-on-dark-14);
  border-bottom: 1px solid var(--hdz-on-dark-14);
}

.hdz-footer__col {
  align-self: stretch;
  min-width: 0;
  padding: clamp(32px, 3.4vw, 52px) clamp(22px, 2.9vw, 44px);
  border-right: 1px solid var(--hdz-on-dark-14);
}

.hdz-footer__col:first-child { padding-left: 0; }

.hdz-footer__col:last-child {
  padding-right: 0;
  border-right: 0;
}

.hdz-footer__col-head {
  display: flex;
  align-items: baseline;
  gap: 12px;
  min-height: 18px;
  margin-bottom: 24px;
}

.hdz-footer__col-index {
  color: var(--hdz-gold-soft);
  font-family: var(--hdz-font-display);
  font-size: 12px;
  font-variant-numeric: tabular-nums;
  line-height: 1;
}

.hdz-footer__title {
  font-size: 11.5px;
  font-family: var(--hdz-font-body);
  font-weight: 600;
  letter-spacing: .16em;
  text-transform: uppercase;
  color: #fff;
  margin: 0;
}

.hdz-footer__logo {
  background: #fff;
  padding: 10px 12px;
  display: inline-block;
  margin-bottom: 22px;
  line-height: 0;
  box-shadow: 8px 8px 0 rgba(255, 255, 255, .055);
}

.hdz-footer__logo img {
  height: 40px;
  width: auto;
  display: block;
}

.hdz-footer__logo .footer-site-name {
  font-family: var(--hdz-font-display);
  font-size: 20px;
  font-weight: 700;
  color: var(--hdz-wine);
  line-height: 1.2;
}

.hdz-footer__text {
  margin: 0 0 24px;
  font-size: 14.5px;
  line-height: 1.75;
  max-width: 31ch;
  color: var(--hdz-on-dark);
}

.hdz-footer__text p:last-child { margin-bottom: 0; }

/* Listas de enlaces (menús del footer) */
.hdz-footer__links,
.hdz-footer .footer-nav-list {
  display: block;
  font-size: 14.5px;
  list-style: none;
  margin: 0;
  padding: 0;
}

.hdz-footer__links li,
.hdz-footer .footer-nav-list li {
  border-bottom: 1px solid rgba(255, 255, 255, .08);
}

.hdz-footer__links li:first-child,
.hdz-footer .footer-nav-list li:first-child {
  border-top: 1px solid rgba(255, 255, 255, .08);
}

.hdz-footer__links a,
.hdz-footer .footer-nav-list a {
  display: flex;
  justify-content: space-between;
  gap: 14px;
  padding: 11px 0;
}

.hdz-footer__links a::after,
.hdz-footer .footer-nav-list a::after {
  content: "↗";
  color: rgba(255, 255, 255, .35);
  font-size: 12px;
  transition: color var(--hdz-t-fast), transform var(--hdz-t-fast);
}

.hdz-footer__links a:hover::after,
.hdz-footer .footer-nav-list a:hover::after {
  color: var(--hdz-gold-soft);
  transform: translate(2px, -2px);
}

/* Datos de contacto */
.hdz-footer__contact {
  display: block;
  font-size: 14.5px;
  list-style: none;
  margin: 0;
  padding: 0;
}

.hdz-footer__contact li {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  padding: 8px 0;
  border-bottom: 1px solid rgba(255, 255, 255, .08);
}

.hdz-footer__contact svg { flex: none; margin-top: 3px; color: var(--hdz-gold-soft); }

.hdz-footer__contact strong { font-weight: 600; color: #fff; }

.hdz-footer__cta {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 100%;
  min-height: 48px;
  padding: 0 16px;
  border: 1px solid var(--hdz-gold-soft);
  color: #fff;
  font-weight: 600;
  letter-spacing: .01em;
}

.hdz-footer__contact li.hdz-footer__contact-cta {
  padding-top: 18px;
  border-bottom: 0;
}

.hdz-footer__cta:hover {
  background: var(--hdz-wine);
  border-color: var(--hdz-wine);
  color: #fff;
}

/* Redes sociales */
.hdz-footer__social {
  display: flex;
  gap: 16px;
  align-items: center;
  list-style: none;
  margin: 0;
  padding: 0;
  font-size: 14px;
}

.hdz-footer__social a {
  color: var(--hdz-gold-soft);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 36px;
  border: 1px solid var(--hdz-on-dark-14);
}

.hdz-footer__social a:hover {
  border-color: var(--hdz-gold-soft);
  color: var(--hdz-gold-hover);
}

.hdz-footer__social svg { width: 18px; height: 18px; }

/* ── Barra inferior ───────────────────────────────────────── */
.hdz-footer__bottom .hdz-container {
  padding-block: 24px 32px;
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: center;
  gap: 16px 28px;
  font-size: 12.5px;
  color: var(--hdz-on-dark-55);
}

.hdz-footer__bottom p { margin: 0; }

.hdz-footer__bottom a { color: var(--hdz-on-dark-55); }
.hdz-footer__bottom a:hover { color: var(--hdz-gold-soft); }

.hdz-footer__legal .footer-legal-list {
  display: flex;
  gap: 8px 18px;
  flex-wrap: wrap;
  list-style: none;
  margin: 0;
  padding: 0;
}

.hdz-footer__dev {
  justify-self: end;
  text-align: right;
}

@media (max-width: 980px) {
  .hdz-footer__masthead {
    grid-template-columns: minmax(0, 1.25fr) minmax(230px, .75fr);
    gap: 32px;
  }

  .hdz-footer__grid { grid-template-columns: 1fr 1fr; }

  .hdz-footer__col {
    padding: 36px;
    border-bottom: 1px solid var(--hdz-on-dark-14);
  }

  .hdz-footer__col:nth-child(2n) { border-right: 0; }
  .hdz-footer__col:nth-last-child(-n + 2) { border-bottom: 0; }
  .hdz-footer__col:first-child { padding-left: 0; }
  .hdz-footer__col:nth-child(2) { padding-right: 0; }
  .hdz-footer__col:nth-child(3) { padding-left: 0; }
  .hdz-footer__col:last-child { padding-right: 0; }
}

@media (max-width: 700px) {
  .hdz-footer__masthead {
    grid-template-columns: 1fr;
    align-items: start;
  }

  .hdz-footer__disciplines { max-width: none; }

  .hdz-footer__grid { grid-template-columns: 1fr; }

  .hdz-footer__col,
  .hdz-footer__col:first-child,
  .hdz-footer__col:nth-child(2),
  .hdz-footer__col:nth-child(3),
  .hdz-footer__col:last-child {
    padding: 32px 0;
    border-right: 0;
    border-bottom: 1px solid var(--hdz-on-dark-14);
  }

  .hdz-footer__col:last-child { border-bottom: 0; }

  .hdz-footer__bottom .hdz-container {
    grid-template-columns: 1fr;
    align-items: start;
  }

  .hdz-footer__dev {
    justify-self: start;
    text-align: left;
  }
}

/* ════════════════════════════════════════════════════════════
   Utilidades del base repintadas con la paleta
════════════════════════════════════════════════════════════ */
body .back-to-top {
  background: var(--hdz-wine);
  border-radius: var(--hdz-radius);
}

body .back-to-top:hover { background: var(--hdz-wine-dark); }


/* ─────────────────────────────────────────────────────────────
   Chat del botón flotante
   El base pinta cada burbuja con `textContent`, así que los saltos
   de línea que manda el asistente se colapsan y la respuesta sale
   toda de corrido. `pre-wrap` los respeta: es lo único que hace
   falta para que las listas se lean como listas.

   El CSS del base va en un <style> en línea al final del body, así
   que gana por orden a igual especificidad; por eso todo cuelga de
   `body`. Nunca !important.
   ───────────────────────────────────────────────────────────── */

body .kwfc__chatlog {
  gap: 10px;
  padding: 4px 2px;
}

body .kwfc__chatmsg {
  white-space: pre-wrap;         /* respeta los saltos del asistente */
  max-width: 88%;
  padding: 11px 14px;
  font-size: 13.5px;
  line-height: 1.55;
  border-radius: 14px;
}

/* La respuesta del asistente suele traer listas: necesita más ancho
   y una tipografía algo más cómoda que el mensaje del visitante. */
body .kwfc__chatmsg--bot {
  max-width: 94%;
  background: var(--hdz-cream, #f6f1ea);
  color: var(--hdz-ink, #1a1614);
  border: 1px solid rgba(26, 22, 20, .08);
}

body .kwfc__chatmsg--user {
  background: var(--hdz-wine, #7a0f1b);
  color: #fff;
}

/* Un poco más de alto útil: con las listas separadas, 320px se queda
   corto y obliga a hacer scroll en cada respuesta. */
body .kwfc__chatlog { max-height: 380px; }

@media (max-height: 700px) {
  body .kwfc__chatlog { max-height: 300px; }
}
