/* ==========================================================================
   cdh-widgets.css — Widgets Elementor · Dra. Clarisa del Hierro
   Portado de html/assets/css/cdh-pages.css (HTML de referencia aprobado).
   Todo vive bajo .cdh-scope; cada widget imprime
   <div class="cdh-scope"><section class="cdh-sec cdh-<nombre>">…, igual que
   el <main class="cdh-scope"> del HTML, así los selectores descendientes
   ".cdh-scope .cdh-<nombre>" funcionan sin cambios.

   Cambios respecto a cdh-pages.css:
   1. Reset y tipografía base de h1/h2/h3/p/ul/ol/dl/dd/figure/address y
      enlaces con prefijo "body .cdh-scope" (especificidad 0,1,2) para ganar
      a ".elementor-kit-6 h1/h2/a" (0,1,1: h1 80px, h2 64px, Poppins 20/30)
      y a ".elementor a { text-decoration: none }" sin usar !important.
      Se añade text-transform: none y subrayado explícito en enlaces.
   2. Check de .cdh-lista: de background-image a mask-image + background-color
      (mismo SVG) para que el color sea editable desde Elementor.
   3. Eliminado el bloque "Superficies del navegador" (html { scrollbar… }):
      afectaba a todo el sitio. No había estilos del header/footer simulado
      en este archivo (vivían en un <style> del HTML).
   4. No se cargan Google Fonts: el kit del sitio ya las carga; las pilas
      de --cdh-font-* conservan fallbacks.
   5. Añadidos al final ("Integración con Elementor"): modificadores que
      exponen controles de los widgets (1 columna, título no sticky, imagen
      del hero a la izquierda, intro/horario por sede, CTA de texto), cierre
      con varios párrafos, anulación del espaciado entre widgets CDH y
      enlace de teléfono del CTA en blanco al pasar el cursor.
   6. v1.2.0: bloques HEADER (cdh_header) y FOOTER (cdh_footer) al final,
      fuera de .cdh-scope, con prefijo "body .cdh-hdr" / "body .cdh-ftr".
   ========================================================================== */

:root {
  /* Color (kit del sitio + tintes del navy, sin grises neutros) */
  --cdh-navy: #00078A;
  --cdh-navy-btn: #01078C;
  --cdh-navy-deep: #020A8D;
  --cdh-orange: #FF7300;
  --cdh-peach: #FFBC7D;
  --cdh-pink: #EEBCEB;
  --cdh-ink: #0B0D2A;
  --cdh-text-2: #3E4270;
  --cdh-navy-050: #F1F2FB;
  --cdh-navy-100: #E1E3F6;
  --cdh-navy-300: #9BA0D6;
  --cdh-white: #FFFFFF;
  --cdh-pink-45: rgba(238, 188, 235, .45);
  --cdh-peach-35: rgba(255, 188, 125, .35);

  /* Tipografía */
  --cdh-font-display: "Figtree", system-ui, sans-serif;
  --cdh-font-body: "Poppins", system-ui, sans-serif;
  --cdh-font-slab: "Roboto Slab", Georgia, serif;
  --cdh-font-ui: "Roboto", system-ui, sans-serif;
  --cdh-h1: clamp(2.4rem, 5.2vw, 4.5rem);
  --cdh-h2: clamp(1.9rem, 3.4vw, 3rem);
  --cdh-h3: 1.375rem;

  /* Forma y ritmo */
  --cdh-radius: 24px;
  --cdh-radius-lg: 50px;
  --cdh-container: 1280px;
  --cdh-gutter: clamp(20px, 5vw, 64px);
  --cdh-sec-pad: clamp(64px, 9vw, 120px);
  --cdh-measure: 66ch;
  --cdh-shadow: 0 18px 40px -20px rgba(0, 7, 138, .28);

  /* Movimiento */
  --cdh-ease: cubic-bezier(.16, 1, .3, 1);
}

/* --------------------------------------------------------------------------
   Base del scope
   -------------------------------------------------------------------------- */
.cdh-scope {
  font-family: var(--cdh-font-body);
  font-size: 18px;
  font-weight: 400;
  line-height: 1.65;
  color: var(--cdh-ink);
  background: var(--cdh-white);
  accent-color: var(--cdh-navy);
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}
.cdh-scope *,
.cdh-scope *::before,
.cdh-scope *::after { box-sizing: border-box; }

.cdh-scope ::selection { background: var(--cdh-navy); color: var(--cdh-white); }

/* Reset con "body .cdh-scope" (0,1,2) para ganar al kit de Elementor
   (.elementor-kit-6 h1/h2/p/a, 0,1,1) y a Hello Elementor sin !important. */
body .cdh-scope h1,
body .cdh-scope h2,
body .cdh-scope h3,
body .cdh-scope p,
body .cdh-scope ul,
body .cdh-scope ol,
body .cdh-scope dl,
body .cdh-scope dd,
body .cdh-scope figure,
body .cdh-scope address { margin: 0; padding: 0; }
body .cdh-scope p,
body .cdh-scope li,
body .cdh-scope dd,
body .cdh-scope address { font-family: var(--cdh-font-body); }
.cdh-scope address { font-style: normal; }
.cdh-scope img { display: block; max-width: 100%; height: auto; }

body .cdh-scope a { color: var(--cdh-navy); text-decoration: underline; text-underline-offset: .18em; text-decoration-thickness: 1px; }
body .cdh-scope a:hover { color: var(--cdh-navy); text-decoration-thickness: 2px; }
.cdh-scope :focus-visible { outline: 2px solid var(--cdh-orange); outline-offset: 3px; border-radius: 4px; }

body .cdh-scope h1,
body .cdh-scope h2,
body .cdh-scope h3 {
  font-family: var(--cdh-font-display);
  font-weight: 600;
  font-style: normal;
  letter-spacing: -0.02em;
  text-transform: none;
  text-wrap: balance;
  color: var(--cdh-navy);
}
body .cdh-scope h2 { font-size: var(--cdh-h2); line-height: 1.1; }
body .cdh-scope h3 { font-size: var(--cdh-h3); line-height: 1.25; letter-spacing: -0.01em; }
.cdh-scope p { text-wrap: pretty; }

/* Contenedor de sección (1280px + gutter) */
.cdh-scope .cdh-sec { padding-top: var(--cdh-sec-pad); padding-bottom: var(--cdh-sec-pad); position: relative; }
.cdh-scope .cdh-wrap {
  width: 100%;
  max-width: calc(var(--cdh-container) + 2 * var(--cdh-gutter));
  margin-left: auto; margin-right: auto;
  padding-left: var(--cdh-gutter); padding-right: var(--cdh-gutter);
}

/* Utilidades compartidas */
.cdh-scope .cdh-sr {
  position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px;
  overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0;
}
.cdh-scope .cdh-num {
  font-family: var(--cdh-font-ui);
  font-weight: 500;
  font-variant-numeric: tabular-nums;
  letter-spacing: .01em;
  white-space: nowrap;
}
.cdh-scope .cdh-ico { width: 20px; height: 20px; flex: none; }

/* Botones: exactamente el kit del sitio (pill 24px, #01078C, hover invertido) */
.cdh-scope .cdh-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  min-height: 52px;
  padding: 12px 26px;
  border: 1px solid var(--cdh-navy-btn);
  border-radius: 999px;
  font-family: var(--cdh-font-ui);
  font-size: 16px;
  font-weight: 500;
  line-height: 1.35;
  letter-spacing: .01em;
  text-decoration: none;
  text-align: center;
  cursor: pointer;
  transition: background-color .25s var(--cdh-ease), color .25s var(--cdh-ease), border-color .25s var(--cdh-ease);
}
.cdh-scope .cdh-btn--primary { background: var(--cdh-navy-btn); color: var(--cdh-white); }
.cdh-scope .cdh-btn--primary:hover,
.cdh-scope .cdh-btn--primary:focus-visible { background: var(--cdh-white); color: var(--cdh-navy-btn); }
.cdh-scope .cdh-btn--secondary { background: transparent; color: var(--cdh-navy-btn); }
.cdh-scope .cdh-btn--secondary:hover,
.cdh-scope .cdh-btn--secondary:focus-visible { background: var(--cdh-navy-btn); color: var(--cdh-white); }
/* Sobre fondo navy */
.cdh-scope .cdh-btn--inverse { background: var(--cdh-white); color: var(--cdh-navy-btn); border-color: var(--cdh-white); }
.cdh-scope .cdh-btn--inverse:hover,
.cdh-scope .cdh-btn--inverse:focus-visible { background: transparent; color: var(--cdh-white); border-color: var(--cdh-white); }
.cdh-scope .cdh-btn:active { transform: translateY(1px); }

/* Placeholder de imagen (cuando no hay foto utilizable) */
.cdh-scope .cdh-ph {
  position: relative;
  display: grid;
  place-items: center;
  width: 100%;
  aspect-ratio: 3 / 4;
  border-radius: var(--cdh-radius);
  background: var(--cdh-navy-050);
  border: 1px dashed var(--cdh-navy-300);
  overflow: hidden;
}
.cdh-scope .cdh-ph::after {
  content: attr(data-label);
  max-width: 26ch;
  padding: 10px 18px;
  border-radius: 999px;
  background: var(--cdh-white);
  color: var(--cdh-text-2);
  font-family: var(--cdh-font-ui);
  font-size: 15px;
  font-weight: 500;
  line-height: 1.35;
  text-align: center;
}

/* Reveal discreto al hacer scroll (solo si el JS lo activa) */
.cdh-js .cdh-scope .cdh-reveal {
  opacity: 0;
  transform: translateY(20px);
  transition: opacity .7s var(--cdh-ease), transform .7s var(--cdh-ease);
  transition-delay: calc(var(--cdh-i, 0) * 70ms);
}
.cdh-js .cdh-scope .cdh-reveal.is-in { opacity: 1; transform: none; }

/* ==========================================================================
   1. HERO — cdh_hero (split 7/5)
   ========================================================================== */
.cdh-scope .cdh-hero { padding-top: clamp(40px, 6vw, 96px); padding-bottom: var(--cdh-sec-pad); overflow: hidden; }
.cdh-scope .cdh-hero__grid {
  display: grid;
  grid-template-columns: minmax(0, 7fr) minmax(0, 5fr);
  gap: clamp(40px, 6vw, 96px);
  align-items: center;
}
.cdh-scope .cdh-hero__title {
  font-size: var(--cdh-h1);
  line-height: 1.04;
  letter-spacing: -0.02em;
  max-width: 14ch;
}
.cdh-scope .cdh-hero__hl { position: relative; display: inline-block; white-space: nowrap; }
.cdh-scope .cdh-hero__hl::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: .02em;
  height: .09em;
  min-height: 4px;
  border-radius: 999px;
  background: var(--cdh-orange);
  transform-origin: left center;
}
.cdh-scope .cdh-hero__sub {
  margin-top: 24px;
  font-family: var(--cdh-font-slab);
  font-size: clamp(1.0625rem, 1.5vw, 1.25rem);
  line-height: 1.45;
  color: var(--cdh-text-2);
}
.cdh-scope .cdh-hero__body { margin-top: 28px; max-width: var(--cdh-measure); }
.cdh-scope .cdh-hero__body p + p { margin-top: 16px; }
.cdh-scope .cdh-hero__sedes {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  margin-top: 24px;
  max-width: var(--cdh-measure);
  font-family: var(--cdh-font-ui);
  font-weight: 500;
  font-size: 16px;
  line-height: 1.5;
  color: var(--cdh-navy);
}
.cdh-scope .cdh-hero__sedes .cdh-ico { margin-top: 1px; color: var(--cdh-orange); }
.cdh-scope .cdh-hero__actions { display: flex; flex-wrap: wrap; gap: 12px 14px; margin-top: 36px; }

.cdh-scope .cdh-hero__media { position: relative; isolation: isolate; }
/* Mancha suave navy-050 detrás de la foto */
.cdh-scope .cdh-hero__media::before {
  content: "";
  position: absolute;
  z-index: -1;
  inset: 10% -14% -6% -10%;
  border-radius: 46% 54% 42% 58% / 52% 44% 56% 48%;
  background: var(--cdh-navy-050);
}
.cdh-scope .cdh-hero__frame { border-radius: var(--cdh-radius); overflow: hidden; aspect-ratio: 3 / 4; }
.cdh-scope .cdh-hero__frame img { width: 100%; height: 100%; object-fit: cover; }
/* La foto del sitio (about.png) ya trae su propio marco redondeado: se respeta su proporción */
.cdh-scope .cdh-hero__frame--nativo { aspect-ratio: auto; border-radius: 0; overflow: visible; }
.cdh-scope .cdh-hero__frame--nativo img { height: auto; object-fit: contain; }
.cdh-scope .cdh-hero__badge {
  position: absolute;
  left: -28px;
  bottom: 9%;
  display: inline-flex;
  align-items: center;
  gap: 10px;
  max-width: calc(100% + 28px);
  padding: 12px 20px;
  border-radius: 999px;
  background: var(--cdh-white);
  box-shadow: var(--cdh-shadow);
  font-family: var(--cdh-font-ui);
  font-size: 15px;
  font-weight: 500;
  line-height: 1.3;
  color: var(--cdh-navy);
}
.cdh-scope .cdh-hero__badge::before {
  content: "";
  flex: none;
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: var(--cdh-orange);
}

/* Momento autoral: entrada del hero */
@keyframes cdh-rise { from { opacity: 0; transform: translateY(28px); } }
@keyframes cdh-draw { from { transform: scaleX(0); } }
@keyframes cdh-fade { from { opacity: 0; transform: scale(.97); } }
.cdh-scope .cdh-hero__title,
.cdh-scope .cdh-hero__sub,
.cdh-scope .cdh-hero__body,
.cdh-scope .cdh-hero__sedes,
.cdh-scope .cdh-hero__actions { animation: cdh-rise 1.1s var(--cdh-ease) both; }
.cdh-scope .cdh-hero__sub { animation-delay: .08s; }
.cdh-scope .cdh-hero__body { animation-delay: .16s; }
.cdh-scope .cdh-hero__sedes { animation-delay: .24s; }
.cdh-scope .cdh-hero__actions { animation-delay: .32s; }
.cdh-scope .cdh-hero__media { animation: cdh-fade 1.4s var(--cdh-ease) .12s both; }
.cdh-scope .cdh-hero__badge { animation: cdh-rise 1s var(--cdh-ease) .7s both; }
.cdh-scope .cdh-hero__hl::after { animation: cdh-draw 1.1s var(--cdh-ease) .55s both; }

@media (max-width: 900px) {
  .cdh-scope .cdh-hero__grid { grid-template-columns: minmax(0, 1fr); }
  .cdh-scope .cdh-hero__title { max-width: 16ch; }
  .cdh-scope .cdh-hero__media { max-width: 460px; width: 100%; justify-self: center; }
  .cdh-scope .cdh-hero__badge { left: 16px; max-width: calc(100% - 32px); }
}
@media (max-width: 480px) {
  .cdh-scope .cdh-hero__actions .cdh-btn { flex: 1 1 100%; }
}

/* ==========================================================================
   2. LISTA — cdh_lista (motivos / síntomas en 2 columnas + nota)
   ========================================================================== */
.cdh-scope .cdh-lista { background: var(--cdh-navy-050); }
.cdh-scope .cdh-lista__head { max-width: 760px; }
.cdh-scope .cdh-lista__intro { margin-top: 20px; color: var(--cdh-text-2); max-width: var(--cdh-measure); }
.cdh-scope .cdh-lista__items {
  list-style: none;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  column-gap: clamp(32px, 5vw, 72px);
  margin-top: clamp(32px, 4vw, 48px);
}
.cdh-scope .cdh-lista__items li {
  position: relative;
  padding: 16px 0 16px 40px;
  border-top: 1px solid var(--cdh-navy-100);
  font-size: 18px;
  line-height: 1.5;
}
.cdh-scope .cdh-lista__items li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 16px;
  width: 26px;
  height: 26px;
  /* Mismo check.svg como máscara: el color sale de background-color
     (control "Color del check" del widget). */
  background-color: var(--cdh-orange);
  -webkit-mask: url("../img/check.svg") center / 26px no-repeat;
  mask: url("../img/check.svg") center / 26px no-repeat;
}
.cdh-scope .cdh-lista__nota {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 20px 32px;
  margin-top: clamp(32px, 4vw, 48px);
  padding: clamp(24px, 3vw, 36px) clamp(24px, 3.5vw, 44px);
  border-radius: var(--cdh-radius);
  background: var(--cdh-pink-45);
}
.cdh-scope .cdh-lista__nota p {
  flex: 1 1 32ch;
  max-width: 60ch;
  font-family: var(--cdh-font-slab);
  font-size: clamp(1.0625rem, 1.4vw, 1.1875rem);
  line-height: 1.55;
  color: var(--cdh-ink);
}
.cdh-scope .cdh-lista__nota .cdh-btn { flex: none; }
/* Variante compacta (síntomas de catarata) */
.cdh-scope .cdh-lista--compacta { padding-top: clamp(56px, 7vw, 96px); padding-bottom: clamp(56px, 7vw, 96px); }
.cdh-scope .cdh-lista--compacta .cdh-lista__items { margin-top: 28px; }
.cdh-scope .cdh-lista--compacta .cdh-lista__items li { padding-top: 14px; padding-bottom: 14px; }
.cdh-scope .cdh-lista--compacta .cdh-lista__items li::before { top: 14px; }

@media (max-width: 700px) {
  .cdh-scope .cdh-lista__items { grid-template-columns: minmax(0, 1fr); }
  .cdh-scope .cdh-lista__nota .cdh-btn { width: 100%; }
}

/* ==========================================================================
   3. PROTOCOLO — cdh_protocolo (fila conectada / pasos numerados)
   ========================================================================== */
.cdh-scope .cdh-protocolo { background: var(--cdh-white); }
.cdh-scope .cdh-protocolo__head { max-width: 780px; }
.cdh-scope .cdh-protocolo__head p { margin-top: 20px; max-width: var(--cdh-measure); }
.cdh-scope .cdh-protocolo__head p + p { margin-top: 14px; }
.cdh-scope .cdh-protocolo__lead { font-family: var(--cdh-font-slab); font-size: clamp(1.125rem, 1.6vw, 1.3125rem); line-height: 1.5; color: var(--cdh-navy); }
.cdh-scope .cdh-protocolo__steps {
  --cdh-cols: 6;
  --cdh-node: 16px;
  position: relative;
  list-style: none;
  display: grid;
  grid-template-columns: repeat(var(--cdh-cols), minmax(0, 1fr));
  gap: 28px;
  margin-top: clamp(40px, 5vw, 64px);
}
/* Línea navy que conecta los nodos */
.cdh-scope .cdh-protocolo__steps::before {
  content: "";
  position: absolute;
  top: calc(var(--cdh-node) / 2 - 1px);
  left: 0;
  right: calc((100% - (var(--cdh-cols) - 1) * 28px) / var(--cdh-cols));
  height: 2px;
  background: var(--cdh-navy);
}
.cdh-scope .cdh-protocolo__step { position: relative; padding-top: calc(var(--cdh-node) + 24px); }
.cdh-scope .cdh-protocolo__step::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: var(--cdh-node);
  height: var(--cdh-node);
  border-radius: 50%;
  border: 2px solid var(--cdh-navy);
  background: var(--cdh-white);
}
.cdh-scope .cdh-protocolo__step:first-child::before { background: var(--cdh-orange); border-color: var(--cdh-orange); }
.cdh-scope .cdh-protocolo__step h3 { font-size: 1.125rem; line-height: 1.3; }
.cdh-scope .cdh-protocolo__step p { margin-top: 8px; font-size: 16px; line-height: 1.55; color: var(--cdh-text-2); }
.cdh-scope .cdh-protocolo__cierre {
  margin-top: clamp(40px, 5vw, 64px);
  padding-top: 28px;
  border-top: 1px solid var(--cdh-navy-100);
  max-width: var(--cdh-measure);
  color: var(--cdh-text-2);
}

/* Variante numerada (catarata: 4 pasos, número grande + línea naranja corta) */
.cdh-scope .cdh-protocolo--numerado .cdh-protocolo__steps { --cdh-cols: 4; gap: clamp(28px, 3.5vw, 48px); }
.cdh-scope .cdh-protocolo--numerado .cdh-protocolo__steps::before { display: none; }
.cdh-scope .cdh-protocolo--numerado .cdh-protocolo__step { padding-top: 0; }
.cdh-scope .cdh-protocolo--numerado .cdh-protocolo__step::before { display: none; }
.cdh-scope .cdh-protocolo__num {
  display: block;
  font-family: var(--cdh-font-display);
  font-weight: 600;
  font-size: clamp(3rem, 5vw, 4.25rem);
  line-height: 1;
  letter-spacing: -0.03em;
  color: var(--cdh-navy);
  font-variant-numeric: tabular-nums;
}
.cdh-scope .cdh-protocolo__num::after {
  content: "";
  display: block;
  width: 40px;
  height: 3px;
  margin-top: 18px;
  border-radius: 999px;
  background: var(--cdh-orange);
}
.cdh-scope .cdh-protocolo--numerado .cdh-protocolo__step h3 { margin-top: 18px; font-size: 1.1875rem; }

@media (max-width: 1100px) {
  .cdh-scope .cdh-protocolo--numerado .cdh-protocolo__steps { --cdh-cols: 2; row-gap: 44px; }
}
/* Móvil: la fila pasa a vertical con la línea a la izquierda */
@media (max-width: 900px) {
  .cdh-scope .cdh-protocolo:not(.cdh-protocolo--numerado) .cdh-protocolo__steps { grid-template-columns: minmax(0, 1fr); gap: 0; }
  .cdh-scope .cdh-protocolo:not(.cdh-protocolo--numerado) .cdh-protocolo__steps::before {
    top: 8px; bottom: 8px; left: calc(var(--cdh-node) / 2 - 1px); right: auto; width: 2px; height: auto;
  }
  .cdh-scope .cdh-protocolo:not(.cdh-protocolo--numerado) .cdh-protocolo__step { padding: 0 0 26px calc(var(--cdh-node) + 22px); }
  .cdh-scope .cdh-protocolo:not(.cdh-protocolo--numerado) .cdh-protocolo__step:last-child { padding-bottom: 0; }
  .cdh-scope .cdh-protocolo:not(.cdh-protocolo--numerado) .cdh-protocolo__step::before { top: 5px; }
}
@media (max-width: 560px) {
  .cdh-scope .cdh-protocolo--numerado .cdh-protocolo__steps { --cdh-cols: 1; row-gap: 36px; }
}

/* ==========================================================================
   4. TRATAMIENTOS — cdh_tratamientos (escalera de 3 niveles)
   ========================================================================== */
.cdh-scope .cdh-trat { background: var(--cdh-white); }
.cdh-scope .cdh-trat__head { max-width: 780px; }
.cdh-scope .cdh-trat__head p { margin-top: 20px; max-width: var(--cdh-measure); }
.cdh-scope .cdh-trat__head p + p { margin-top: 14px; color: var(--cdh-text-2); }
.cdh-scope .cdh-trat__lead { font-family: var(--cdh-font-slab); font-size: clamp(1.125rem, 1.6vw, 1.3125rem); line-height: 1.5; color: var(--cdh-navy); }
.cdh-scope .cdh-trat__niveles { list-style: none; margin-top: clamp(40px, 5vw, 64px); }
.cdh-scope .cdh-trat__nivel {
  display: grid;
  grid-template-columns: clamp(64px, 9vw, 128px) minmax(0, 1fr);
  gap: clamp(16px, 3vw, 40px);
  padding-top: clamp(28px, 3.5vw, 44px); padding-bottom: clamp(28px, 3.5vw, 44px);
  border-top: 1px solid var(--cdh-navy-100);
}
.cdh-scope .cdh-trat__nivel:last-child { border-bottom: 1px solid var(--cdh-navy-100); }
/* Escalera: cada nivel se desplaza un peldaño */
.cdh-scope .cdh-trat__nivel:nth-child(2) { margin-left: clamp(0px, 6vw, 88px); }
.cdh-scope .cdh-trat__nivel:nth-child(3) { margin-left: clamp(0px, 12vw, 176px); }
.cdh-scope .cdh-trat__num {
  font-family: var(--cdh-font-display);
  font-weight: 600;
  font-size: clamp(3rem, 6vw, 5rem);
  line-height: .9;
  letter-spacing: -0.04em;
  color: var(--cdh-navy);
  font-variant-numeric: tabular-nums;
}
.cdh-scope .cdh-trat__body { max-width: 72ch; }
.cdh-scope .cdh-trat__body h3 { font-size: clamp(1.375rem, 2vw, 1.75rem); }
.cdh-scope .cdh-trat__body > p { margin-top: 12px; max-width: var(--cdh-measure); }
.cdh-scope .cdh-trat__body > p + p { margin-top: 14px; }
.cdh-scope .cdh-trat__tecnicas {
  margin-top: 28px;
  padding: 8px clamp(20px, 3vw, 36px);
  border-radius: var(--cdh-radius);
  background: var(--cdh-navy-050);
}
.cdh-scope .cdh-trat__tecnica {
  display: grid;
  grid-template-columns: minmax(0, 2fr) minmax(0, 3fr);
  gap: 8px clamp(20px, 3vw, 40px);
  padding-top: 20px; padding-bottom: 20px;
}
.cdh-scope .cdh-trat__tecnica + .cdh-trat__tecnica { border-top: 1px solid var(--cdh-navy-100); }
.cdh-scope .cdh-trat__tecnica dt {
  font-family: var(--cdh-font-display);
  font-weight: 600;
  font-size: 1.125rem;
  line-height: 1.35;
  color: var(--cdh-navy);
}
.cdh-scope .cdh-trat__tecnica dd { font-size: 16px; line-height: 1.6; color: var(--cdh-text-2); }
.cdh-scope .cdh-trat__cierre {
  margin-top: clamp(32px, 4vw, 48px);
  margin-left: auto;
  max-width: 62ch;
  font-family: var(--cdh-font-slab);
  font-size: clamp(1.0625rem, 1.4vw, 1.1875rem);
  line-height: 1.55;
  color: var(--cdh-navy);
}

@media (max-width: 760px) {
  .cdh-scope .cdh-trat__nivel:nth-child(2),
  .cdh-scope .cdh-trat__nivel:nth-child(3) { margin-left: 0; }
  .cdh-scope .cdh-trat__nivel { grid-template-columns: minmax(0, 1fr); gap: 12px; }
  .cdh-scope .cdh-trat__tecnica { grid-template-columns: minmax(0, 1fr); }
}

/* ==========================================================================
   5. CRUZADO — cdh_cruzado (banda peach, texto + enlace a la otra página)
   ========================================================================== */
.cdh-scope .cdh-cruzado { background: var(--cdh-peach-35); padding-top: clamp(56px, 7vw, 96px); padding-bottom: clamp(56px, 7vw, 96px); }
.cdh-scope .cdh-cruzado__grid {
  display: grid;
  grid-template-columns: minmax(0, 7fr) minmax(0, 5fr);
  gap: 32px clamp(32px, 6vw, 96px);
  align-items: center;
}
.cdh-scope .cdh-cruzado__text p { margin-top: 18px; max-width: var(--cdh-measure); }
.cdh-scope .cdh-cruzado__text h2 + p { margin-top: 22px; }
.cdh-scope .cdh-cruzado__text p + p { margin-top: 12px; }
.cdh-scope .cdh-cruzado__action { justify-self: end; }
.cdh-scope .cdh-cruzado__action .cdh-btn .cdh-ico { transition: transform .3s var(--cdh-ease); }
.cdh-scope .cdh-cruzado__action .cdh-btn:hover .cdh-ico { transform: translateX(4px); }

@media (max-width: 860px) {
  .cdh-scope .cdh-cruzado__grid { grid-template-columns: minmax(0, 1fr); }
  .cdh-scope .cdh-cruzado__action { justify-self: start; }
}

/* ==========================================================================
   6. CREDENCIALES — cdh_credenciales (fondo navy, ficha en 2 columnas)
   ========================================================================== */
.cdh-scope .cdh-cred { background: var(--cdh-navy); color: var(--cdh-white); }
.cdh-scope .cdh-cred__grid {
  display: grid;
  grid-template-columns: minmax(0, 4fr) minmax(0, 8fr);
  gap: 32px clamp(32px, 6vw, 96px);
  align-items: start;
}
.cdh-scope .cdh-cred h2 { color: var(--cdh-white); max-width: 12ch; }
.cdh-scope .cdh-cred__nombre {
  margin-top: 20px;
  font-family: var(--cdh-font-slab);
  font-size: 1.125rem;
  color: var(--cdh-navy-100);
}
.cdh-scope .cdh-cred__lista {
  list-style: none;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  column-gap: clamp(28px, 4vw, 56px);
}
.cdh-scope .cdh-cred__lista li {
  padding-top: 22px; padding-bottom: 22px;
  border-top: 1px solid rgba(155, 160, 214, .45);
}
.cdh-scope .cdh-cred__titulo {
  display: block;
  font-family: var(--cdh-font-display);
  font-weight: 600;
  font-size: 1.1875rem;
  line-height: 1.35;
  letter-spacing: -0.01em;
  color: var(--cdh-white);
}
.cdh-scope .cdh-cred__detalle { display: block; margin-top: 6px; font-size: 16px; line-height: 1.55; color: var(--cdh-navy-100); }

@media (max-width: 900px) {
  .cdh-scope .cdh-cred__grid { grid-template-columns: minmax(0, 1fr); }
  .cdh-scope .cdh-cred h2 { max-width: none; }
}
@media (max-width: 600px) {
  .cdh-scope .cdh-cred__lista { grid-template-columns: minmax(0, 1fr); }
}

/* ==========================================================================
   7. UBICACIONES — cdh_ubicaciones (dos sedes lado a lado)
   ========================================================================== */
.cdh-scope .cdh-ubic { background: var(--cdh-white); }
.cdh-scope .cdh-ubic__head {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-end;
  justify-content: space-between;
  gap: 16px 40px;
}
.cdh-scope .cdh-ubic__head h2 { max-width: 20ch; }
.cdh-scope .cdh-ubic__horario {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  font-family: var(--cdh-font-ui);
  font-weight: 500;
  font-size: 16px;
  color: var(--cdh-navy);
  font-variant-numeric: tabular-nums;
}
.cdh-scope .cdh-ubic__horario .cdh-ico { color: var(--cdh-orange); }
.cdh-scope .cdh-ubic__sedes {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: clamp(20px, 2.5vw, 32px);
  margin-top: clamp(32px, 4vw, 52px);
}
.cdh-scope .cdh-sede {
  display: flex;
  flex-direction: column;
  padding: clamp(24px, 3vw, 40px);
  border: 1px solid var(--cdh-navy-100);
  border-radius: var(--cdh-radius);
  background: var(--cdh-white);
}
.cdh-scope .cdh-sede h3 { font-size: clamp(1.375rem, 2vw, 1.625rem); }
.cdh-scope .cdh-sede address { margin-top: 14px; font-size: 17px; line-height: 1.6; color: var(--cdh-text-2); max-width: 44ch; }
.cdh-scope .cdh-sede__tel {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 4px 14px;
  margin-top: 22px;
  padding-top: 20px;
  border-top: 1px solid var(--cdh-navy-100);
}
.cdh-scope .cdh-sede__tel-label { font-family: var(--cdh-font-ui); font-weight: 500; font-size: 15px; color: var(--cdh-text-2); }
.cdh-scope .cdh-sede__tel a {
  font-family: var(--cdh-font-ui);
  font-weight: 500;
  font-size: clamp(1.375rem, 2.2vw, 1.625rem);
  font-variant-numeric: tabular-nums;
  color: var(--cdh-navy);
  text-decoration: none;
  white-space: nowrap;
}
.cdh-scope .cdh-sede__tel a:hover { text-decoration: underline; text-decoration-thickness: 2px; }
.cdh-scope .cdh-sede__acciones { display: flex; flex-wrap: wrap; gap: 12px; margin-top: auto; padding-top: 24px; }
.cdh-scope .cdh-sede__mapa {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  margin-top: 18px;
  font-family: var(--cdh-font-ui);
  font-weight: 500;
  font-size: 16px;
  align-self: flex-start;
}
.cdh-scope .cdh-sede__mapa .cdh-ico { color: var(--cdh-orange); }

@media (max-width: 860px) {
  .cdh-scope .cdh-ubic__sedes { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 480px) {
  .cdh-scope .cdh-sede__acciones .cdh-btn { flex: 1 1 100%; }
}

/* ==========================================================================
   8. CTA FINAL — cdh_cta (banda navy-deep)
   ========================================================================== */
.cdh-scope .cdh-cta { background: var(--cdh-navy-deep); color: var(--cdh-white); overflow: hidden; }
.cdh-scope .cdh-cta__inner { text-align: center; }
.cdh-scope .cdh-cta h2 { color: var(--cdh-white); max-width: 18ch; margin-left: auto; margin-right: auto; }
.cdh-scope .cdh-cta__texto { margin: 20px auto 0; max-width: 52ch; color: var(--cdh-navy-100); }
.cdh-scope .cdh-cta__sedes {
  list-style: none;
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 28px clamp(24px, 4vw, 56px);
  margin-top: clamp(32px, 4vw, 48px);
}
.cdh-scope .cdh-cta__sedes li { display: flex; flex-direction: column; align-items: center; gap: 12px; }
.cdh-scope .cdh-cta__tel { font-size: 16px; color: var(--cdh-navy-100); }
.cdh-scope .cdh-cta__tel a { color: var(--cdh-white); }

@media (max-width: 480px) {
  .cdh-scope .cdh-cta__sedes li { width: 100%; }
  .cdh-scope .cdh-cta__sedes .cdh-btn { width: 100%; }
}

/* ==========================================================================
   9. TEXTO — cdh_texto (H2 sticky a la izquierda + párrafos; chips opcionales)
   ========================================================================== */
.cdh-scope .cdh-texto { background: var(--cdh-white); }
.cdh-scope .cdh-texto--tinted { background: var(--cdh-navy-050); }
.cdh-scope .cdh-texto__grid {
  display: grid;
  grid-template-columns: minmax(0, 5fr) minmax(0, 7fr);
  gap: 24px clamp(32px, 6vw, 96px);
  align-items: start;
}
.cdh-scope .cdh-texto__title { position: sticky; top: 32px; }
.cdh-scope .cdh-texto__body { max-width: var(--cdh-measure); }
.cdh-scope .cdh-texto__body p + p { margin-top: 18px; }
.cdh-scope .cdh-texto__lead {
  font-family: var(--cdh-font-slab);
  font-size: clamp(1.125rem, 1.6vw, 1.3125rem);
  line-height: 1.5;
  color: var(--cdh-navy);
}
.cdh-scope .cdh-texto__chips-label {
  margin-top: 28px;
  font-family: var(--cdh-font-ui);
  font-weight: 500;
  font-size: 15px;
  color: var(--cdh-text-2);
}
.cdh-scope .cdh-texto__chips { list-style: none; display: flex; flex-wrap: wrap; gap: 10px; margin-top: 12px; }
.cdh-scope .cdh-texto__chips li {
  padding: 8px 16px;
  border-radius: 999px;
  background: var(--cdh-navy-100);
  color: var(--cdh-navy);
  font-family: var(--cdh-font-ui);
  font-weight: 500;
  font-size: 15px;
  line-height: 1.35;
}
.cdh-scope .cdh-texto__body .cdh-texto__chips + p { margin-top: 28px; }

@media (max-width: 860px) {
  .cdh-scope .cdh-texto__grid { grid-template-columns: minmax(0, 1fr); }
  .cdh-scope .cdh-texto__title { position: static; }
}

/* --------------------------------------------------------------------------
   Móvil: cuerpo 17px
   -------------------------------------------------------------------------- */
@media (max-width: 639px) {
  .cdh-scope { font-size: 17px; }
  .cdh-scope .cdh-lista__items li { font-size: 17px; }
}

/* --------------------------------------------------------------------------
   Movimiento reducido: se desactiva todo
   -------------------------------------------------------------------------- */
@media (prefers-reduced-motion: reduce) {
  .cdh-scope *,
  .cdh-scope *::before,
  .cdh-scope *::after {
    animation: none !important;
    transition: none !important;
  }
  .cdh-js .cdh-scope .cdh-reveal { opacity: 1; transform: none; }
}

/* ==========================================================================
   Integración con Elementor (añadido respecto al HTML de referencia)
   ========================================================================== */

/* Secciones a sangre: sin el espaciado entre widgets del kit. */
.elementor .elementor-widget[class*="elementor-widget-cdh_"]:not(:last-child) { margin-bottom: 0; margin-block-end: 0; }

/* Enlace de teléfono sobre navy: se mantiene blanco al pasar el cursor. */
.cdh-scope .cdh-cta .cdh-cta__tel a:hover { color: var(--cdh-white); }

/* cdh_hero · imagen a la izquierda (control "Posición de la imagen"). */
@media (min-width: 901px) {
  .cdh-hero-img-left .cdh-scope .cdh-hero__grid { grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); }
  .cdh-hero-img-left .cdh-scope .cdh-hero__media { order: -1; }
}

/* cdh_lista / cdh_credenciales · variante de 1 columna. */
.cdh-scope .cdh-lista__items--1col { grid-template-columns: minmax(0, 1fr); max-width: 760px; }
.cdh-scope .cdh-cred__lista--1col { grid-template-columns: minmax(0, 1fr); }

/* cdh_texto · título no fijo y botón opcional. */
.cdh-scope .cdh-texto--nosticky .cdh-texto__title { position: static; }
.cdh-scope .cdh-texto__body .cdh-texto__cta { margin-top: 28px; }

/* cdh_protocolo / cdh_tratamientos · cierre con más de un párrafo. */
.cdh-scope .cdh-protocolo__cierre p + p,
.cdh-scope .cdh-trat__cierre p + p { margin-top: 12px; }

/* cdh_ubicaciones · introducción opcional y horario propio por sede. */
.cdh-scope .cdh-ubic__intro { margin-top: 16px; max-width: var(--cdh-measure); color: var(--cdh-text-2); }
.cdh-scope .cdh-sede__horario {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-top: 12px;
  font-family: var(--cdh-font-ui);
  font-weight: 500;
  font-size: 15px;
  color: var(--cdh-navy);
  font-variant-numeric: tabular-nums;
}
.cdh-scope .cdh-sede__horario .cdh-ico { color: var(--cdh-orange); }

/* ===== SHORTCODE [cdh_contacto] (footer) ===== */
/* Vive dentro del footer de Elementor, fuera de .cdh-scope. Los colores
   llegan como variables inline desde el shortcode (color, icono_fondo,
   icono_color). Los selectores con prefijo "body" (0,1,2 o más) ganan a
   ".elementor-kit-6 a/h4" y a ".elementor a" sin !important. */
.cdh-contacto {
  --cdh-ct-color: #FFFFFF;
  --cdh-ct-ico-bg: #FFFFFF;
  --cdh-ct-ico: #00078A;
  color: var(--cdh-ct-color);
  font-family: "Poppins", system-ui, sans-serif;
  font-size: 16px;
  font-weight: 400;
  line-height: 1.5;
  text-align: left;
}
@media (min-width: 1024px) {
  .cdh-contacto { font-size: 17px; }
}

/* Reset: Elementor / Hello ponen márgenes, list-style y cursiva. */
body .cdh-contacto ul,
body .cdh-contacto li,
body .cdh-contacto address,
body .cdh-contacto h2,
body .cdh-contacto h3,
body .cdh-contacto h4,
body .cdh-contacto p {
  margin: 0;
  padding: 0;
  border: 0;
  list-style: none;
  font-style: normal;
  text-transform: none;
  letter-spacing: normal;
  color: inherit;
  background: none;
}
body .cdh-contacto li::before,
body .cdh-contacto li::marker { content: none; }

/* Enlaces: mismo color que el texto, subrayado solo al pasar el cursor. */
body .cdh-contacto a {
  color: inherit;
  font: inherit;
  text-decoration: none;
  text-underline-offset: .18em;
  transition: color .2s ease, background-color .2s ease;
}
body .cdh-contacto a:hover { color: inherit; text-decoration: underline; }
body .cdh-contacto a:focus-visible {
  outline: 2px solid #FF7300;
  outline-offset: 3px;
  border-radius: 2px;
}

/* Nombre de la sede. */
body .cdh-contacto .cdh-contacto__nombre {
  margin: 0 0 10px;
  font-family: "Figtree", system-ui, sans-serif;
  font-weight: 600;
  font-size: 19px;
  line-height: 1.3;
  color: var(--cdh-ct-color);
}

/* Separación entre sedes (apiladas). */
body .cdh-contacto--stack .cdh-contacto__sede + .cdh-contacto__sede { margin-top: 22px; }

/* Rejilla de dos columnas dentro del propio shortcode. */
.cdh-contacto--grid .cdh-contacto__sedes {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
  gap: 24px;
}

/* Líneas con icono. */
body .cdh-contacto .cdh-contacto__lista > li,
body .cdh-contacto .cdh-contacto__email {
  display: flex;
  align-items: flex-start;
  gap: 12px;
}
body .cdh-contacto .cdh-contacto__lista > li + li { margin-top: 8px; }
body .cdh-contacto .cdh-contacto__email { margin-top: 22px; }
.cdh-contacto--grid .cdh-contacto__email { margin-top: 24px; }

.cdh-contacto .cdh-contacto__ico {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  width: 24px;
  height: 24px;
  margin-top: 2px;
  border-radius: 50%;
  background-color: var(--cdh-ct-ico-bg);
  color: var(--cdh-ct-ico);
}
.cdh-contacto .cdh-contacto__ico svg {
  display: block;
  width: 13px;
  height: 13px;
}

/* El email puede ser largo en columnas estrechas. */
.cdh-contacto .cdh-contacto__email a { overflow-wrap: anywhere; }
.cdh-contacto .cdh-contacto__horario { font-variant-numeric: tabular-nums; }

/* Teléfono + pastilla de WhatsApp (salta de línea si no cabe). */
.cdh-contacto .cdh-contacto__tel {
  display: inline-flex;
  flex-wrap: wrap;
  align-items: center;
  row-gap: 4px;
  font-variant-numeric: tabular-nums;
}
body .cdh-contacto a.cdh-contacto__wa {
  display: inline-block;
  margin-left: 8px;
  padding: 1px 10px;
  border: 1px solid currentColor;
  border-radius: 999px;
  font-family: "Roboto", system-ui, sans-serif;
  font-weight: 500;
  font-size: 13px;
  line-height: 1.6;
}
body .cdh-contacto a.cdh-contacto__wa:hover {
  background-color: var(--cdh-ct-color);
  border-color: var(--cdh-ct-color);
  color: var(--cdh-ct-ico);
  text-decoration: none;
}

/* Texto solo para lectores de pantalla. */
.cdh-contacto .cdh-contacto__sr {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

@media (prefers-reduced-motion: reduce) {
  body .cdh-contacto a { transition: none; }
}

/* ===== HEADER ===== */
/* Widget cdh_header (y header.cdh-hdr-host del HTML de referencia).
   Vive fuera de .cdh-scope: selectores con prefijo "body .cdh-hdr" (0,1,1 o
   más) para ganar al kit de Elementor (.elementor-kit-6 a/button, 0,1,1)
   sin !important. El único !important es el sticky del contenedor anfitrión
   (.cdh-hdr-host), que el JS aplica al ancestro de Elementor y que puede
   chocar con estilos inline o del propio contenedor.

   Alto fijo: .cdh-hdr mide siempre 88px (no hay salto de layout). Al hacer
   scroll, la barra se desplaza 20px hacia arriba con transform (quedan 68px
   visibles) y la franja de 20px que queda debajo es transparente y deja
   pasar los clics (pointer-events). */

.cdh-hdr {
  --cdh-hdr-bg: #00078A;
  --cdh-hdr-bg-stuck: rgba(0, 7, 138, .96);
  --cdh-hdr-link: #FFFFFF;
  --cdh-hdr-link-hover: #FFFFFF;
  --cdh-hdr-accent: #FF7300;
  --cdh-hdr-h: 88px;
  --cdh-hdr-h-stuck: 68px;
  --cdh-logo-w: 120px;
  --cdh-logo-w-stuck: 96px;
  --cdh-hdr-dur: .25s;
  --cdh-hdr-dur-panel: .3s;
}

/* Desfase por la barra de administración de WordPress (sticky + panel).
   Por debajo de 600px la admin bar deja de ser fija y se va con el scroll. */
body.admin-bar { --cdh-hdr-top: 32px; }
@media (max-width: 782px) { body.admin-bar { --cdh-hdr-top: 46px; } }
@media (max-width: 600px) { body.admin-bar { --cdh-hdr-top: 0px; } }

/* Contenedor anfitrión del sticky: el header del HTML; en Elementor, el
   .elementor-location-header / .e-con / .elementor-section que marca el JS. */
.cdh-hdr-host {
  position: -webkit-sticky !important;
  position: sticky !important;
  top: var(--cdh-hdr-top, 0px) !important;
  z-index: 999 !important;
}
.cdh-hdr-host.cdh-hdr-host--stuck { pointer-events: none; }

/* Overlay (control "Header sobre el hero"): el anfitrión es fixed, así el
   header queda encima del hero desde el primer pixel (lo que antes hacían
   "Posición: absoluta" + "Sticky" en el contenedor de Elementor) y el hero
   empieza en top:0. Barra transparente hasta que .is-stuck la pinta navy. */
.cdh-hdr-host.cdh-hdr-host--overlay {
  position: fixed !important;
  left: 0 !important;
  right: 0 !important;
  width: 100% !important;
  margin: 0 !important;
}
body .cdh-hdr.cdh-hdr--overlay:not(.is-stuck):not(.is-open) .cdh-hdr__bar {
  background-color: transparent;
  box-shadow: none;
  -webkit-backdrop-filter: none;
  backdrop-filter: none;
}

body .cdh-hdr {
  position: relative;
  z-index: 999;
  height: var(--cdh-hdr-h);
  margin: 0;
  padding: 0;
  pointer-events: none;
  font-family: var(--cdh-font-ui);
  font-size: 15px;
  line-height: 1.4;
  text-align: left;
  -webkit-font-smoothing: antialiased;
}
body .cdh-hdr *,
body .cdh-hdr *::before,
body .cdh-hdr *::after { box-sizing: border-box; }

/* Enlace "Saltar al contenido": oculto hasta recibir el foco. */
body .cdh-hdr .cdh-hdr__skip {
  position: absolute;
  top: 12px;
  left: 16px;
  z-index: 5;
  padding: 10px 18px;
  border-radius: 999px;
  background: var(--cdh-white);
  color: var(--cdh-navy-btn);
  font: 500 15px/1.2 var(--cdh-font-ui);
  text-decoration: none;
  pointer-events: auto;
}
body .cdh-hdr .cdh-hdr__skip:not(:focus) {
  width: 1px; height: 1px; padding: 0; margin: -1px;
  overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0;
}

/* Barra */
body .cdh-hdr .cdh-hdr__bar {
  position: relative;
  z-index: 2;
  height: var(--cdh-hdr-h);
  background-color: var(--cdh-hdr-bg);
  pointer-events: auto;
  transition: transform var(--cdh-hdr-dur) ease-out, background-color var(--cdh-hdr-dur) ease-out, box-shadow var(--cdh-hdr-dur) ease-out;
}
/* Al hacer scroll la barra no cambia de alto: sube 20px (queda visible
   68px) y el contenido baja 10px para seguir centrado. Solo transform. */
body .cdh-hdr.is-stuck .cdh-hdr__bar {
  transform: translateY(calc(var(--cdh-hdr-h-stuck) - var(--cdh-hdr-h)));
  background-color: var(--cdh-hdr-bg-stuck);
  -webkit-backdrop-filter: blur(10px);
  backdrop-filter: blur(10px);
  box-shadow: 0 10px 30px -18px rgba(0, 7, 138, .45);
}
/* Con el menú móvil abierto la barra es opaca y sin sombra (se funde con el panel). */
body .cdh-hdr.is-open .cdh-hdr__bar {
  background-color: var(--cdh-hdr-bg);
  -webkit-backdrop-filter: none;
  backdrop-filter: none;
  box-shadow: none;
}

body .cdh-hdr .cdh-hdr__inner {
  display: flex;
  align-items: center;
  gap: 32px;
  width: 100%;
  max-width: calc(var(--cdh-container) + 2 * var(--cdh-gutter));
  height: 100%;
  margin: 0 auto;
  padding: 0 var(--cdh-gutter);
  transition: transform var(--cdh-hdr-dur) ease-out;
}
body .cdh-hdr.is-stuck .cdh-hdr__inner { transform: translateY(calc((var(--cdh-hdr-h) - var(--cdh-hdr-h-stuck)) / 2)); }
/* Menú abierto: la barra vuelve a su posición completa. */
body .cdh-hdr.is-open .cdh-hdr__bar,
body .cdh-hdr.is-open .cdh-hdr__inner { transform: none; }

/* Logo: el alto nunca supera la barra (el logo es 219×167). */
body .cdh-hdr .cdh-hdr__logo {
  display: inline-flex;
  align-items: center;
  flex: none;
  line-height: 0;
  border-radius: 4px;
}
body .cdh-hdr .cdh-hdr__logo img {
  display: block;
  width: auto;
  height: auto;
  max-width: var(--cdh-logo-w);
  max-height: calc(var(--cdh-hdr-h) - 20px);
  border: 0;
  border-radius: 0;
  box-shadow: none;
  transform-origin: left center;
  transition: transform var(--cdh-hdr-dur) ease-out;
}
body .cdh-hdr.is-stuck .cdh-hdr__logo img {
  /* Escala en vez de animar max-width/max-height (sin recalcular layout). */
  transform: scale(var(--cdh-logo-scale-stuck, .72));
}


/* Menú de escritorio */
body .cdh-hdr .cdh-hdr__nav { margin-left: auto; }
body .cdh-hdr .cdh-hdr__menu {
  display: flex;
  align-items: center;
  gap: 32px;
  margin: 0;
  padding: 0;
  list-style: none;
}
body .cdh-hdr .cdh-hdr__menu > li {
  margin: 0;
  padding: 0;
  list-style: none;
}
body .cdh-hdr .cdh-hdr__menu > li::before,
body .cdh-hdr .cdh-hdr__menu > li::marker { content: none; }

body .cdh-hdr .cdh-hdr__nav .cdh-hdr__menu > li > a {
  position: relative;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 8px 0;
  color: var(--cdh-hdr-link);
  font-family: var(--cdh-font-ui);
  font-weight: 500;
  font-size: 15px;
  line-height: 1.4;
  letter-spacing: .01em;
  text-transform: none;
  text-decoration: none;
  white-space: nowrap;
  transition: color var(--cdh-hdr-dur) ease-out;
}
body .cdh-hdr .cdh-hdr__nav .cdh-hdr__menu > li > a::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: 2px;
  height: 2px;
  border-radius: 2px;
  background-color: var(--cdh-hdr-accent);
  transform: scaleX(0);
  transform-origin: left center;
  transition: transform var(--cdh-hdr-dur) ease-out;
}
body .cdh-hdr .cdh-hdr__nav .cdh-hdr__menu > li > a:hover,
body .cdh-hdr .cdh-hdr__nav .cdh-hdr__menu > li > a:focus-visible,
body .cdh-hdr .cdh-hdr__nav .cdh-hdr__menu > li > a[aria-current="page"],
body .cdh-hdr .cdh-hdr__nav .cdh-hdr__menu > .current-menu-item > a {
  color: var(--cdh-hdr-link-hover);
  text-decoration: none;
}
body .cdh-hdr .cdh-hdr__nav .cdh-hdr__menu > li > a:hover::after,
body .cdh-hdr .cdh-hdr__nav .cdh-hdr__menu > li > a:focus-visible::after,
body .cdh-hdr .cdh-hdr__nav .cdh-hdr__menu > li > a[aria-current="page"]::after,
body .cdh-hdr .cdh-hdr__nav .cdh-hdr__menu > .current-menu-item > a::after { transform: scaleX(1); }

/* Item destacado: punto naranja antes del texto. */
body .cdh-hdr .cdh-hdr__menu > .is-highlight > a::before {
  content: "";
  flex: none;
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background-color: var(--cdh-hdr-accent);
}

/* Acciones: CTA + hamburguesa */
body .cdh-hdr .cdh-hdr__actions {
  display: flex;
  align-items: center;
  gap: 8px;
  flex: none;
}

body .cdh-hdr .cdh-hdr__cta {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  min-height: 44px;
  padding: 10px 20px;
  border: 1px solid var(--cdh-white);
  border-radius: 999px;
  background-color: var(--cdh-white);
  color: var(--cdh-navy-btn);
  font-family: var(--cdh-font-ui);
  font-weight: 500;
  font-size: 15px;
  line-height: 1.2;
  letter-spacing: .01em;
  text-transform: none;
  text-decoration: none;
  white-space: nowrap;
  transition: background-color var(--cdh-hdr-dur) ease-out, color var(--cdh-hdr-dur) ease-out;
}
body .cdh-hdr .cdh-hdr__cta:hover,
body .cdh-hdr .cdh-hdr__cta:focus-visible {
  background-color: transparent;
  border-color: var(--cdh-white);
  color: var(--cdh-white);
  text-decoration: none;
}
body .cdh-hdr .cdh-hdr__cta svg {
  display: block;
  flex: none;
  width: 20px;
  height: 20px;
}

/* Segundo botón: contorno blanco; al hover se rellena (inverso del primero). */
body .cdh-hdr .cdh-hdr__cta--ghost {
  background-color: transparent;
  color: var(--cdh-white);
}
body .cdh-hdr .cdh-hdr__cta--ghost:hover,
body .cdh-hdr .cdh-hdr__cta--ghost:focus-visible {
  background-color: var(--cdh-white);
  color: var(--cdh-navy-btn);
}

/* Texto corto: solo por debajo de 1280 px, donde no caben menú + dos textos completos. */
body .cdh-hdr .cdh-hdr__cta-short { display: none; }
@media (max-width: 1279px) {
  body .cdh-hdr .cdh-hdr__cta.has-short .cdh-hdr__cta-short { display: inline; }
  body .cdh-hdr .cdh-hdr__cta.has-short .cdh-hdr__cta-text {
    position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px;
    overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0;
  }
  body .cdh-hdr .cdh-hdr__inner { gap: 24px; }
  body .cdh-hdr .cdh-hdr__bar .cdh-hdr__cta { padding: 10px 16px; }
}

body .cdh-hdr .cdh-hdr__toggle {
  display: none;
  align-items: center;
  justify-content: center;
  width: 44px;
  height: 44px;
  margin: 0 -10px 0 0;
  padding: 0;
  border: 0;
  border-radius: 8px;
  background: transparent;
  color: var(--cdh-white);
  box-shadow: none;
  cursor: pointer;
  transition: background-color var(--cdh-hdr-dur) ease-out;
}
body .cdh-hdr .cdh-hdr__toggle:hover,
body .cdh-hdr .cdh-hdr__toggle:focus { background-color: rgba(255, 255, 255, .1); color: var(--cdh-white); }
body .cdh-hdr .cdh-hdr__toggle svg { display: block; width: 24px; height: 24px; }
body .cdh-hdr .cdh-hdr__toggle .cdh-hdr__ico-close,
body .cdh-hdr .cdh-hdr__toggle[aria-expanded="true"] .cdh-hdr__ico-open { display: none; }
body .cdh-hdr .cdh-hdr__toggle[aria-expanded="true"] .cdh-hdr__ico-close { display: block; }

/* Foco visible (naranja, como el resto del sitio) */
body .cdh-hdr a:focus-visible,
body .cdh-hdr button:focus-visible {
  outline: 2px solid var(--cdh-orange);
  outline-offset: 3px;
}

/* Panel móvil: solo existe por debajo de 1024px. */
body .cdh-hdr .cdh-hdr__panel { display: none; }

@media (max-width: 1024px) {
  body .cdh-hdr .cdh-hdr__nav { display: none; }
  body .cdh-hdr .cdh-hdr__actions { margin-left: auto; }
  body .cdh-hdr .cdh-hdr__toggle { display: inline-flex; }
  body .cdh-hdr.cdh-hdr--no-cta-mobile .cdh-hdr__bar .cdh-hdr__cta { display: none; }

  body .cdh-hdr .cdh-hdr__panel {
    display: block;
    position: fixed;
    inset: 0;
    z-index: 1;
    width: 100%;
    max-width: 100%;
    padding: calc(var(--cdh-hdr-top, 0px) + var(--cdh-hdr-h) + 24px) var(--cdh-gutter) 48px;
    background-color: var(--cdh-hdr-bg);
    color: var(--cdh-white);
    overflow-x: hidden;
    overflow-y: auto;
    overscroll-behavior: contain;
    -webkit-overflow-scrolling: touch;
    pointer-events: auto;
    visibility: hidden;
    -webkit-clip-path: inset(0 0 100% 0);
    clip-path: inset(0 0 100% 0);
    transition: clip-path var(--cdh-hdr-dur-panel) ease-out, -webkit-clip-path var(--cdh-hdr-dur-panel) ease-out, visibility 0s linear var(--cdh-hdr-dur-panel);
  }
  body .cdh-hdr.is-open .cdh-hdr__panel {
    visibility: visible;
    -webkit-clip-path: inset(0 0 0 0);
    clip-path: inset(0 0 0 0);
    transition: clip-path var(--cdh-hdr-dur-panel) ease-out, -webkit-clip-path var(--cdh-hdr-dur-panel) ease-out, visibility 0s linear 0s;
  }
}

body .cdh-hdr .cdh-hdr__panel-in {
  width: 100%;
  max-width: var(--cdh-container);
  margin: 0 auto;
}
body .cdh-hdr .cdh-hdr__menu--panel {
  flex-direction: column;
  align-items: flex-start;
  gap: 4px;
}
body .cdh-hdr .cdh-hdr__menu--panel > li { max-width: 100%; }
body .cdh-hdr .cdh-hdr__menu--panel > li > a {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  max-width: 100%;
  padding: 8px 0;
  color: var(--cdh-hdr-link);
  font-family: var(--cdh-font-display);
  font-weight: 600;
  font-size: 28px;
  line-height: 1.25;
  letter-spacing: -0.01em;
  text-transform: none;
  text-decoration: none;
  overflow-wrap: anywhere;
}
body .cdh-hdr .cdh-hdr__menu--panel > li > a:hover,
body .cdh-hdr .cdh-hdr__menu--panel > li > a[aria-current="page"],
body .cdh-hdr .cdh-hdr__menu--panel > .current-menu-item > a {
  color: var(--cdh-hdr-link-hover);
  text-decoration: underline;
  text-decoration-color: var(--cdh-hdr-accent);
  text-decoration-thickness: 2px;
  text-underline-offset: .2em;
}
body .cdh-hdr .cdh-hdr__menu--panel > .is-highlight > a::before { width: 8px; height: 8px; }

body .cdh-hdr .cdh-hdr__ctas-panel {
  display: grid;
  gap: 12px;
  margin-top: 32px;
}

body .cdh-hdr .cdh-hdr__phones {
  display: grid;
  gap: 16px;
  margin: 32px 0 0;
  padding: 24px 0 0;
  border-top: 1px solid rgba(255, 255, 255, .18);
  list-style: none;
}
body .cdh-hdr .cdh-hdr__phones li { margin: 0; padding: 0; list-style: none; }
body .cdh-hdr .cdh-hdr__phone-name {
  display: block;
  color: #C9CCF0;
  font-family: var(--cdh-font-body);
  font-size: 14px;
  line-height: 1.4;
}
body .cdh-hdr .cdh-hdr__phone {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  min-height: 44px;
  color: var(--cdh-white);
  font-family: var(--cdh-font-ui);
  font-weight: 500;
  font-size: 18px;
  font-variant-numeric: tabular-nums;
  letter-spacing: .01em;
  text-decoration: none;
}
body .cdh-hdr .cdh-hdr__phone:hover { color: var(--cdh-white); text-decoration: underline; text-underline-offset: .18em; }
body .cdh-hdr .cdh-hdr__phone svg { display: block; flex: none; width: 20px; height: 20px; }

/* Móvil estrecho: los botones de la barra quedan solo con el texto corto
   (sin icono: dos iconos de WhatsApp iguales no distinguen la sede). */
@media (max-width: 480px) {
  body .cdh-hdr .cdh-hdr__inner { gap: 12px; }
  body .cdh-hdr .cdh-hdr__actions { gap: 6px; }
  body .cdh-hdr .cdh-hdr__bar .cdh-hdr__cta { padding: 8px 12px; font-size: 14px; }
  body .cdh-hdr .cdh-hdr__bar .cdh-hdr__cta.has-short svg { display: none; }
}
/* Por debajo de 360 px solo cabe el primer botón; el segundo sigue en el menú. */
@media (max-width: 359px) {
  body .cdh-hdr .cdh-hdr__bar .cdh-hdr__cta ~ .cdh-hdr__cta { display: none; }
}

@media (prefers-reduced-motion: reduce) {
  .cdh-hdr { --cdh-hdr-dur: 0s; --cdh-hdr-dur-panel: 0s; }
}

/* Elementor: los widgets de header y footer van a sangre, sin el espaciado
   ni el padding del contenedor del widget. */
.elementor .elementor-widget-cdh_header,
.elementor .elementor-widget-cdh_footer {
  width: 100%;
  max-width: 100%;
  margin: 0;
  margin-block-end: 0;
}
.elementor .elementor-widget-cdh_header > .elementor-widget-container,
.elementor .elementor-widget-cdh_footer > .elementor-widget-container {
  margin: 0;
  padding: 0;
}

/* ===== FOOTER ===== */
/* Widget cdh_footer. Fuera de .cdh-scope, prefijo "body .cdh-ftr" para ganar
   al kit sin !important. El bloque de consultorios es el shortcode
   [cdh_contacto] (estilos propios arriba) con los colores ligados a
   --cdh-ftr-text / --cdh-ftr-bg. Texto secundario #C9CCF0 sobre #00078A:
   contraste 9.5:1. */

.cdh-ftr {
  --cdh-ftr-bg: #00078A;
  --cdh-ftr-text: #FFFFFF;
  --cdh-ftr-title: #FFFFFF;
  --cdh-ftr-soft: #E1E3F6;
  --cdh-ftr-muted: #C9CCF0;
  --cdh-ftr-logo-w: 140px;
  --cdh-ftr-dur: .2s;
}

body .cdh-ftr {
  margin: 0;
  padding: clamp(56px, 7vw, 88px) 0 0;
  background-color: var(--cdh-ftr-bg);
  color: var(--cdh-ftr-text);
  font-family: var(--cdh-font-body);
  font-size: 16px;
  font-weight: 400;
  line-height: 1.6;
  text-align: left;
  -webkit-font-smoothing: antialiased;
}
body .cdh-ftr *,
body .cdh-ftr *::before,
body .cdh-ftr *::after { box-sizing: border-box; }

body .cdh-ftr .cdh-ftr__inner {
  width: 100%;
  max-width: calc(var(--cdh-container) + 2 * var(--cdh-gutter));
  margin: 0 auto;
  padding: 0 var(--cdh-gutter);
}

body .cdh-ftr .cdh-ftr__grid {
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  gap: 48px 32px;
}
body .cdh-ftr .cdh-ftr__brand { grid-column: span 3; }
body .cdh-ftr .cdh-ftr__contact { grid-column: span 5; }
body .cdh-ftr .cdh-ftr__nav { grid-column: span 2; }
body .cdh-ftr .cdh-ftr__social { grid-column: span 2; }

/* Reset frente al kit (h2, p, ul, a). */
body .cdh-ftr h2,
body .cdh-ftr p,
body .cdh-ftr ul,
body .cdh-ftr li {
  margin: 0;
  padding: 0;
  list-style: none;
  text-transform: none;
}
body .cdh-ftr li::before,
body .cdh-ftr li::marker { content: none; }

body .cdh-ftr .cdh-ftr__title {
  margin: 0 0 20px;
  color: var(--cdh-ftr-title);
  font-family: var(--cdh-font-display);
  font-weight: 600;
  font-size: 19px;
  line-height: 1.3;
  letter-spacing: 0;
}

body .cdh-ftr .cdh-ftr__logo {
  display: inline-block;
  line-height: 0;
  border-radius: 4px;
}
body .cdh-ftr .cdh-ftr__logo img {
  display: block;
  width: var(--cdh-ftr-logo-w);
  max-width: 100%;
  height: auto;
  border: 0;
  border-radius: 0;
  box-shadow: none;
}
body .cdh-ftr .cdh-ftr__tagline {
  max-width: 28ch;
  margin-top: 20px;
  color: var(--cdh-ftr-soft);
  font-family: var(--cdh-font-slab);
  font-size: 16px;
  line-height: 1.55;
  text-wrap: pretty;
}

/* Consultorios: en la columna de 5/12 caben dos sedes de 200px. */
body .cdh-ftr .cdh-contacto--grid .cdh-contacto__sedes { grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); }
body .cdh-ftr .cdh-contacto { font-size: 15px; }
body .cdh-ftr .cdh-contacto .cdh-contacto__nombre { font-size: 17px; }

/* Enlaces (navegación y barra inferior) */
body .cdh-ftr .cdh-ftr__links { display: grid; gap: 6px; }
body .cdh-ftr .cdh-ftr__links a,
body .cdh-ftr .cdh-ftr__legal a {
  display: inline-block;
  padding: 4px 0;
  color: inherit;
  font: inherit;
  text-decoration: none;
  text-underline-offset: .18em;
  transition: color var(--cdh-ftr-dur) ease-out;
}
body .cdh-ftr .cdh-ftr__links a:hover,
body .cdh-ftr .cdh-ftr__legal a:hover {
  color: var(--cdh-ftr-text);
  text-decoration: underline;
  text-decoration-color: var(--cdh-orange);
  text-decoration-thickness: 2px;
}

/* Redes: círculo blanco de 36px con glifo navy (área táctil de 44px). */
body .cdh-ftr .cdh-ftr__social-list { display: flex; flex-wrap: wrap; gap: 12px; }
body .cdh-ftr .cdh-ftr__social-link {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 36px;
  border: 1px solid var(--cdh-ftr-text);
  border-radius: 50%;
  background-color: var(--cdh-ftr-text);
  color: var(--cdh-ftr-bg);
  text-decoration: none;
  transition: background-color var(--cdh-ftr-dur) ease-out, color var(--cdh-ftr-dur) ease-out;
}
body .cdh-ftr .cdh-ftr__social-link::after {
  content: "";
  position: absolute;
  inset: -4px;
}
body .cdh-ftr .cdh-ftr__social-link:hover {
  background-color: transparent;
  color: var(--cdh-ftr-text);
}
body .cdh-ftr .cdh-ftr__social-link svg { display: block; width: 20px; height: 20px; }

/* Barra inferior */
body .cdh-ftr .cdh-ftr__bottom {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 8px 32px;
  margin-top: clamp(48px, 6vw, 72px);
  padding: 20px 0 28px;
  border-top: 1px solid rgba(255, 255, 255, .18);
  color: var(--cdh-ftr-muted);
  font-family: var(--cdh-font-ui);
  font-size: 14px;
  font-weight: 400;
  line-height: 1.5;
}
body .cdh-ftr .cdh-ftr__legal { display: flex; flex-wrap: wrap; gap: 0 24px; }

body .cdh-ftr a:focus-visible {
  outline: 2px solid var(--cdh-orange);
  outline-offset: 3px;
  border-radius: 2px;
}
body .cdh-ftr .cdh-ftr__social-link:focus-visible { border-radius: 50%; }

/* Tablet: 2 columnas. Móvil: 1 columna (logo → consultorios → navegación → sígueme). */
@media (max-width: 1024px) {
  body .cdh-ftr .cdh-ftr__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 48px 40px; }
  body .cdh-ftr .cdh-ftr__brand,
  body .cdh-ftr .cdh-ftr__contact,
  body .cdh-ftr .cdh-ftr__nav,
  body .cdh-ftr .cdh-ftr__social { grid-column: auto; }
}
@media (max-width: 640px) {
  body .cdh-ftr .cdh-ftr__grid { grid-template-columns: minmax(0, 1fr); gap: 40px; }
  body .cdh-ftr .cdh-ftr__bottom { flex-direction: column; align-items: flex-start; }
}

@media (prefers-reduced-motion: reduce) {
  .cdh-ftr { --cdh-ftr-dur: 0s; }
}

/* ==========================================================================
   HERO DE INICIO — cdh_hero_inicio (v1.4.0)
   Banda navy a sangre, texto blanco, 2 botones de cita por sede y foto
   recortada con marco desplazado. Reutiliza .cdh-hero__hl / .cdh-hero__badge
   y las animaciones cdh-rise / cdh-fade / cdh-draw del hero de landing.
   ========================================================================== */
.cdh-scope .cdh-home {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  padding-top: clamp(48px, 7vw, 104px);
  padding-bottom: clamp(64px, 8vw, 120px);
  background-color: var(--cdh-navy);
  color: var(--cdh-white);
}
/* Halos suaves (tintes del kit, sin texto degradado) */
.cdh-home-halos-yes .cdh-scope .cdh-home::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  pointer-events: none;
  background:
    radial-gradient(55% 65% at 88% 18%, rgba(155, 160, 214, .30), transparent 70%),
    radial-gradient(45% 60% at -5% 105%, rgba(238, 188, 235, .18), transparent 70%),
    radial-gradient(28% 34% at 58% 112%, rgba(255, 115, 0, .16), transparent 70%);
}
.cdh-home-round-yes .cdh-scope .cdh-home { border-radius: 0 0 var(--cdh-radius-lg) var(--cdh-radius-lg); }

.cdh-scope .cdh-home__grid {
  display: grid;
  grid-template-columns: minmax(0, 7fr) minmax(0, 5fr);
  gap: clamp(40px, 6vw, 96px);
  align-items: center;
}
body .cdh-scope .cdh-home__title {
  font-size: clamp(2.75rem, 6vw, 5.25rem);
  line-height: 1;
  letter-spacing: -0.03em;
  color: var(--cdh-white);
  max-width: 12ch;
}
body .cdh-scope .cdh-home__sub {
  margin-top: 24px;
  font-family: var(--cdh-font-slab);
  font-size: clamp(1.0625rem, 1.5vw, 1.3125rem);
  line-height: 1.45;
  color: var(--cdh-navy-100);
  max-width: 44ch;
}
.cdh-scope .cdh-home__body { margin-top: 20px; max-width: 54ch; }
body .cdh-scope .cdh-home__body p {
  font-size: 18px;
  line-height: 1.65;
  color: rgba(255, 255, 255, .86);
}
.cdh-scope .cdh-home__body p + p { margin-top: 14px; }

/* Botones de cita por sede: pill de dos líneas (sede + zona/teléfono) */
.cdh-scope .cdh-home__ctas {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, max-content));
  gap: 12px 14px;
  margin-top: 36px;
}
body .cdh-scope .cdh-home__cta {
  display: flex;
  align-items: center;
  gap: 14px;
  min-height: 64px;
  padding: 10px 22px 10px 10px;
  border: 1px solid var(--cdh-white);
  border-radius: 999px;
  font-family: var(--cdh-font-ui);
  text-decoration: none;
  transition: background-color .25s var(--cdh-ease), color .25s var(--cdh-ease), border-color .25s var(--cdh-ease);
}
body .cdh-scope .cdh-home__cta--solid { background: var(--cdh-white); color: var(--cdh-navy-btn); }
body .cdh-scope .cdh-home__cta--solid:hover,
body .cdh-scope .cdh-home__cta--solid:focus-visible { background: transparent; color: var(--cdh-white); }
body .cdh-scope .cdh-home__cta--ghost { background: transparent; color: var(--cdh-white); border-color: rgba(255, 255, 255, .5); }
body .cdh-scope .cdh-home__cta--ghost:hover,
body .cdh-scope .cdh-home__cta--ghost:focus-visible { background: var(--cdh-white); color: var(--cdh-navy-btn); border-color: var(--cdh-white); }
body .cdh-scope .cdh-home__cta:active { transform: translateY(1px); }

.cdh-scope .cdh-home__cta-ico {
  display: grid;
  place-items: center;
  flex: none;
  width: 44px;
  height: 44px;
  border-radius: 50%;
  transition: background-color .25s var(--cdh-ease);
}
.cdh-scope .cdh-home__cta--solid .cdh-home__cta-ico { background: var(--cdh-navy-050); }
.cdh-scope .cdh-home__cta--ghost .cdh-home__cta-ico { background: rgba(255, 255, 255, .12); }
.cdh-scope .cdh-home__cta--solid:hover .cdh-home__cta-ico { background: rgba(255, 255, 255, .12); }
.cdh-scope .cdh-home__cta--ghost:hover .cdh-home__cta-ico { background: var(--cdh-navy-050); }
.cdh-scope .cdh-home__cta-text { display: flex; flex-direction: column; gap: 2px; text-align: left; }
.cdh-scope .cdh-home__cta-label { font-size: 16px; font-weight: 500; line-height: 1.25; letter-spacing: .01em; }
.cdh-scope .cdh-home__cta-meta { font-size: 13.5px; font-weight: 400; line-height: 1.3; opacity: .78; }
.cdh-scope .cdh-home__cta > .cdh-ico { width: 18px; height: 18px; margin-left: auto; transition: transform .3s var(--cdh-ease); }
.cdh-scope .cdh-home__cta:hover > .cdh-ico { transform: translateX(4px); }

.cdh-scope .cdh-home__hours {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-top: 28px;
  font-family: var(--cdh-font-ui);
  font-size: 15px;
  line-height: 1.4;
  color: var(--cdh-navy-100);
}
.cdh-scope .cdh-home__hours .cdh-ico { color: var(--cdh-orange); }
.cdh-scope .cdh-home__hours strong { font-weight: 500; color: var(--cdh-white); }

/* Foto con marco desplazado (línea fina) */
.cdh-scope .cdh-home__media { position: relative; isolation: isolate; width: 100%; max-width: 520px; justify-self: end; }
.cdh-scope .cdh-home__media::before {
  content: "";
  position: absolute;
  z-index: -1;
  inset: 22px -22px -22px 22px;
  border: 1px solid rgba(255, 255, 255, .28);
  border-radius: var(--cdh-radius);
}
.cdh-scope .cdh-home__frame {
  aspect-ratio: 4 / 5;
  border-radius: var(--cdh-radius);
  overflow: hidden;
  background: var(--cdh-navy-deep);
  box-shadow: 0 40px 80px -40px rgba(0, 3, 60, .65);
}
.cdh-scope .cdh-home__frame img { width: 100%; height: 100%; object-fit: cover; object-position: center top; }

/* Entrada */
.cdh-scope .cdh-home__title,
.cdh-scope .cdh-home__sub,
.cdh-scope .cdh-home__body,
.cdh-scope .cdh-home__ctas,
.cdh-scope .cdh-home__hours { animation: cdh-rise 1.1s var(--cdh-ease) both; }
.cdh-scope .cdh-home__sub { animation-delay: .08s; }
.cdh-scope .cdh-home__body { animation-delay: .16s; }
.cdh-scope .cdh-home__ctas { animation-delay: .26s; }
.cdh-scope .cdh-home__hours { animation-delay: .34s; }
.cdh-scope .cdh-home__media { animation: cdh-fade 1.4s var(--cdh-ease) .12s both; }

/* Imagen a la izquierda (control "Posición de la imagen") */
@media (min-width: 901px) {
  .cdh-home-img-left .cdh-scope .cdh-home__grid { grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); }
  .cdh-home-img-left .cdh-scope .cdh-home__media { order: -1; justify-self: start; }
}
@media (max-width: 1100px) {
  .cdh-scope .cdh-home__ctas { grid-template-columns: minmax(0, 1fr); max-width: 420px; }
}
@media (max-width: 900px) {
  .cdh-scope .cdh-home__grid { grid-template-columns: minmax(0, 1fr); }
  .cdh-scope .cdh-home__media { width: calc(100% - 22px); max-width: 420px; justify-self: center; }
  .cdh-scope .cdh-home__media .cdh-hero__badge { left: 16px; max-width: calc(100% - 32px); }
  .cdh-home-round-yes .cdh-scope .cdh-home { border-radius: 0 0 32px 32px; }
}
@media (max-width: 480px) {
  .cdh-scope .cdh-home__ctas { max-width: none; }
  body .cdh-scope .cdh-home__body p { font-size: 17px; }
}
