:root{
  /* ── Paleta ──────────────────────────────────────────────────
     Navy + blush + coral. El navy sustituye al vino como superficie
     oscura: pesa menos en pantalla y no arrastra la lectura hacia
     lo romántico. El coral es el único color saturado y entra sólo
     como acento, nunca como fondo.                                */

  /* Superficies oscuras */
  --noche-900:#16203A;   /* footer, la más profunda */
  --noche:#22304E;       /* fondo de las secciones oscuras */
  --noche-600:#33456B;   /* bordes y foco sobre claro */

  /* Acento coral, en dos intensidades:
     --coral      texto pequeño sobre claro  → 5.51 blush-claro / 4.81 blush (AA)
     --coral-vivo títulos y piezas grandes   → 3.53 (AA texto grande)
     Un solo coral no cubre ambos: el vivo no llega a 4.5 en cuerpo pequeño. */
  --coral:#A83D1F;
  --coral-vivo:#D2593A;
  --coral-300:#F4A88F;   /* acentos sobre navy → 6.77 */
  --coral-200:#FBCBBB;   /* acentos suaves sobre navy → 8.97 */
  --coral-100:#FBE3DC;   /* superficies muy suaves */
  --salmon:#F2A28E;      /* comillas y estrellas sobre la foto de testimonios */

  /* Azul de énfasis, heredado del sitio original (#6d9cdc).
     Se conserva para el énfasis alternado dentro del texto corrido. */
  --azul:#2D5E96;
  --azul-claro:#6D9CDC;

  /* Fondos claros */
  --blush:#F9DBD6;
  --blush-claro:#FDEDE9;
  --blanco:#FFFFFF;

  /* Texto */
  --tinta:#1E2A45;
  --tinta-70:#1E2A45B3;
  --tinta-50:#1E2A4580;
  --gris-linea:#EFD6CF;

  /* Tipografía */
  --display:"Playfair Display",Georgia,"Times New Roman",serif;
  --sans:"Jost",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;

  /* Ritmo */
  --borde-r:16px;
  --borde-r-lg:26px;
  --seccion-y:clamp(72px,9vw,140px);
  --gutter:clamp(20px,5vw,64px);
  --max-w:1240px;

  /* Movimiento */
  --ease:cubic-bezier(.25,.6,.3,1);
  --lift:.15s;
}


/* ── Reset ────────────────────────────────────────────── */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:88px}
body{
  margin:0;
  font-family:var(--sans);
  font-weight:400;
  font-size:17px;
  line-height:1.65;
  color:var(--tinta);
  background:var(--blush-claro);
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
  overflow-x:hidden;
}
img{max-width:100%;height:auto;display:block}
h1,h2,h3,h4{margin:0;font-family:var(--display);font-weight:500;line-height:1.12;letter-spacing:-.01em}
p{margin:0 0 1em}
a{color:inherit;text-decoration:none}
ul,ol{margin:0;padding:0;list-style:none}
button{font:inherit;color:inherit;background:none;border:0;cursor:pointer}
iframe{border:0;display:block}
:focus-visible{outline:2.5px solid var(--noche-600);outline-offset:3px;border-radius:4px}
/* Sobre fondo oscuro el vino-600 cae a 1.25-2.39 : el minimo de WCAG 2.4.11 es 3.
   El azul claro rinde 4.6+ sobre todos los fondos vino del sitio. */
.hero :focus-visible,
.menu-movil :focus-visible,
.site-header:not(.compacto) :focus-visible,
.site-header.sobre-menu :focus-visible,
.pareja :focus-visible,
.tarjeta-cita :focus-visible,
.libro :focus-visible,
.agenda :focus-visible,
.site-footer :focus-visible,
.skip-link:focus-visible{outline-color:var(--azul-claro)}
.wa-flotante:focus-visible{outline-color:var(--noche-900);outline-offset:-5px}

.contenedor{width:100%;max-width:var(--max-w);margin-inline:auto;padding-inline:var(--gutter)}

.skip-link{
  position:absolute;left:-9999px;top:0;z-index:999;
  background:var(--noche);color:var(--blush);padding:14px 22px;border-radius:0 0 10px 0;font-weight:500;
}
.skip-link:focus{left:0}

/* ── Reveal on scroll ─────────────────────────────────── */
.reveal{opacity:0;transform:translateY(28px);transition:opacity .85s var(--ease),transform .85s var(--ease)}
.reveal.visible{opacity:1;transform:none}
.reveal[data-delay="1"]{transition-delay:.09s}
.reveal[data-delay="2"]{transition-delay:.18s}
.reveal[data-delay="3"]{transition-delay:.27s}

@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .reveal{opacity:1;transform:none;transition:none}
  *,*::before,*::after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}
}

/* ═══════════════════════════════════════════════════════
   MOVIMIENTO
   Cuatro recursos, todos sobre transform y opacity para que
   el compositor los resuelva sin repintar:
     · revelado tipográfico por líneas tras una máscara
     · entrada de imágenes con barrido de clip-path
     · parallax de las fotografías de fondo
     · escalonado de las rejillas
   Todo se apaga bajo prefers-reduced-motion.
   ═══════════════════════════════════════════════════════ */

/* ── Titulares: cada línea sube desde detrás de su propia máscara ── */
.ln{
  display:block;overflow:hidden;
  /* Aire para los descendentes (g, j, p) sin que la máscara los recorte
     ni aumente el interlineado real. */
  padding-bottom:.12em;margin-bottom:-.12em;
}
.ln-i{
  display:block;
  transform:translateY(105%) rotate(2.2deg);
  opacity:0;
  transform-origin:left bottom;
  transition:transform 1.05s cubic-bezier(.19,1,.22,1),opacity .8s ease-out;
  transition-delay:calc(var(--ln) * 90ms);
  will-change:transform;
}
.revelado .ln-i{transform:none;opacity:1}

/* ── Imágenes: barrido que descubre la foto mientras se acerca ── */
.velar{
  clip-path:inset(0 0 100% 0);
  transform:scale(1.12);
  transition:clip-path 1.25s cubic-bezier(.19,1,.22,1),transform 1.6s cubic-bezier(.19,1,.22,1);
  will-change:clip-path,transform;
}
.velar.descubierta{clip-path:inset(0 0 0 0);transform:scale(1)}

/* ── Parallax: la foto se desplaza más lento que la página ── */
.parallax{will-change:transform}

/* ── Escalonado de rejillas ── */
.escalonar > *{
  opacity:0;transform:translateY(26px);
  transition:opacity .75s var(--ease),transform .75s var(--ease);
  transition-delay:calc(var(--i,0) * 95ms);
}
.escalonar.visible > *{opacity:1;transform:none}

/* ── Progreso de lectura ── */
.progreso{
  position:fixed;top:0;left:0;height:2px;z-index:101;
  width:100%;transform:scaleX(var(--avance,0));transform-origin:0 50%;
  background:linear-gradient(90deg,var(--coral-vivo),var(--coral-300));
  opacity:0;transition:opacity .4s var(--ease);
  pointer-events:none;
}
.progreso.activa{opacity:1}

@media (prefers-reduced-motion:reduce){
  .ln-i{transform:none;opacity:1;transition:none}
  .velar{clip-path:none;transform:none;transition:none}
  .escalonar > *{opacity:1;transform:none;transition:none}
  .progreso{display:none}
}

/* ═══════════ MARCA / LOGO ═══════════ */
.marca{display:flex;align-items:center;gap:13px;flex-shrink:0}
/* Logotipo real: circular, con su nombre y «Psicoterapeuta» rotulados dentro.
   A tamaño de cabecera ese rotulo no se lee, por eso se conserva el nombre
   en texto al lado: el logo identifica, el texto informa. */
.marca-glifo{width:52px;height:52px;flex-shrink:0;object-fit:contain;transition:transform .4s var(--ease)}
.marca:hover .marca-glifo{transform:rotate(-6deg) scale(1.05)}
.marca-glifo.grande{width:76px;height:76px}
.marca-texto{display:flex;flex-direction:column;line-height:1.1}
.marca-texto strong{font-family:var(--display);font-size:19px;font-weight:500;letter-spacing:.005em}
.marca-texto em{
  font-style:normal;font-size:9.5px;font-weight:400;letter-spacing:.19em;
  text-transform:uppercase;opacity:.72;margin-top:4px;
}

/* ═══════════ HEADER ═══════════ */
.site-header{
  position:fixed;top:0;left:0;right:0;z-index:100;
  color:var(--blush);
  transition:background .45s var(--ease),box-shadow .45s var(--ease),color .45s var(--ease),backdrop-filter .45s var(--ease);
}
.header-inner{
  max-width:var(--max-w);margin-inline:auto;
  padding:20px var(--gutter);
  display:flex;align-items:center;gap:28px;
  transition:padding .45s var(--ease);
}
.site-header.compacto{
  background:rgba(253,237,233,.9);
  -webkit-backdrop-filter:saturate(180%) blur(18px);
  backdrop-filter:saturate(180%) blur(18px);
  color:var(--tinta);
  box-shadow:0 1px 0 rgba(34,48,78,.10),0 10px 34px -18px rgba(22,32,58,.34);
}
.site-header.compacto .header-inner{padding-block:12px}

.nav-principal{margin-left:auto}
.nav-principal ul{display:flex;gap:30px}
.nav-principal a{
  position:relative;font-size:14.5px;font-weight:400;letter-spacing:.015em;
  padding-block:6px;opacity:.9;transition:opacity .25s var(--ease);
}
.nav-principal a::after{
  content:"";position:absolute;left:0;bottom:0;height:1.5px;width:100%;
  background:currentColor;transform:scaleX(0);transform-origin:right;
  transition:transform .4s var(--ease);
}
.nav-principal a:hover{opacity:1}
.nav-principal a:hover::after{transform:scaleX(1);transform-origin:left}

.btn-header{
  flex-shrink:0;font-size:13.5px;font-weight:500;letter-spacing:.03em;
  padding:11px 22px;border-radius:100px;
  border:1px solid currentColor;
  transition:background var(--lift) var(--ease),color var(--lift) var(--ease),transform var(--lift) var(--ease),box-shadow var(--lift) var(--ease);
}
.btn-header:hover{
  background:var(--blush);color:var(--noche);border-color:var(--blush);
  transform:translateY(-2px);box-shadow:0 8px 22px rgba(0,0,0,.18);
}
.site-header.compacto .btn-header{background:var(--noche);color:var(--blush);border-color:var(--noche)}
.site-header.compacto .btn-header:hover{background:var(--noche-900);border-color:var(--noche-900);box-shadow:0 8px 22px rgba(22,32,58,.30)}

/* Con el menú abierto, el header se funde con él */
.site-header.sobre-menu{
  background:transparent;box-shadow:none;color:var(--blush-claro);
  -webkit-backdrop-filter:none;backdrop-filter:none;
}

/* Hamburguesa */
.menu-toggle{display:none;width:42px;height:42px;position:relative;margin-left:auto;flex-shrink:0}
.menu-toggle span{
  position:absolute;left:9px;width:24px;height:1.8px;background:currentColor;border-radius:2px;
  transition:transform .35s var(--ease),opacity .25s var(--ease),top .35s var(--ease);
}
.menu-toggle span:nth-child(1){top:14px}
.menu-toggle span:nth-child(2){top:20px}
.menu-toggle span:nth-child(3){top:26px}
.menu-toggle[aria-expanded="true"] span:nth-child(1){top:20px;transform:rotate(45deg)}
.menu-toggle[aria-expanded="true"] span:nth-child(2){opacity:0}
.menu-toggle[aria-expanded="true"] span:nth-child(3){top:20px;transform:rotate(-45deg)}

.menu-movil{
  position:fixed;inset:0;z-index:99;
  background:linear-gradient(160deg,var(--noche) 0%,var(--noche-900) 100%);
  color:var(--blush);
  display:flex;flex-direction:column;justify-content:center;align-items:flex-start;
  gap:34px;padding:100px var(--gutter) 60px;
  animation:menuEntra .4s var(--ease) both;
}
.menu-movil[hidden]{display:none}
@keyframes menuEntra{from{opacity:0;transform:translateY(-12px)}to{opacity:1;transform:none}}
.menu-movil ul{display:flex;flex-direction:column;gap:6px}
.menu-movil a{font-family:var(--display);font-size:clamp(28px,7.5vw,38px);line-height:1.35;opacity:.92}
.menu-movil a:hover{opacity:1}
.menu-movil-cta{margin-top:8px}

/* ═══════════════════════════════════════════════════════
   HERO
   ═══════════════════════════════════════════════════════ */
.hero{
  display:flex;
  align-items:center;
  position:relative;
  overflow:hidden;
  min-height:100vh;
  min-height:100dvh;
  background:linear-gradient(118deg,var(--noche-900) 0%,var(--noche) 42%,var(--noche-600) 130%);
}

.hero-foto{
  position:absolute;inset:0;
  width:100%;height:100%;
  object-fit:cover;
  object-position:68% 46%;
}

/* Velo: horizontal para el texto + vertical para el menú */
.hero-velo{
  position:absolute;inset:0;
  background:
    linear-gradient(90deg,
      rgba(22,32,58,.80) 0%,
      rgba(22,32,58,.72) 30%,
      rgba(22,32,58,.56) 46%,
      rgba(22,32,58,.20) 58%,
      rgba(22,32,58,0) 70%),
    linear-gradient(180deg,
      rgba(14,20,38,.46) 0%,
      rgba(14,20,38,0) 22%),
    linear-gradient(0deg,
      rgba(14,20,38,.30) 0%,
      rgba(14,20,38,0) 18%);
}

/* Grano sutil: rompe el banding del degradado */
.hero-grano{
  position:absolute;inset:0;opacity:.05;mix-blend-mode:overlay;pointer-events:none;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='200' height='200'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3'/%3E%3C/filter%3E%3Crect width='200' height='200' filter='url(%23n)'/%3E%3C/svg%3E");
}

.hero-contenido{
  position:relative;z-index:2;
  width:100%;max-width:var(--max-w);
  margin-inline:auto;
  padding:150px 44px 110px clamp(24px,5.8vw,64px);
  color:var(--blush-claro);
  animation:heroEntrada .9s var(--ease) .1s both;
}
@keyframes heroEntrada{
  from{opacity:0;transform:translateY(26px)}
  to{opacity:1;transform:none}
}

.hero-eyebrow{
  display:flex;align-items:center;gap:14px;
  font-size:clamp(10.5px,1.05vw,12.5px);
  font-weight:400;letter-spacing:.24em;text-transform:uppercase;
  color:var(--coral-200);
  margin:0 0 clamp(18px,2.4vw,26px);
}
.eyebrow-linea{display:block;width:clamp(28px,4vw,52px);height:1px;background:currentColor;opacity:.6;flex-shrink:0}

.hero-titulo{
  font-size:clamp(44px,6.1vw,88px);
  font-weight:400;
  line-height:1.02;
  letter-spacing:-.022em;
  max-width:13ch;
  margin:0 0 clamp(20px,2.6vw,30px);
  text-shadow:0 2px 40px rgba(14,20,38,.28);
}
.hero-titulo em{font-style:italic;font-weight:400;color:var(--coral-200)}

.hero-bajada{
  font-size:clamp(16.5px,1.35vw,20px);
  line-height:1.62;
  font-weight:300;
  max-width:44ch;
  color:rgba(253,237,233,.9);
  margin:0 0 clamp(32px,4vw,44px);
}

.hero-acciones{display:flex;flex-wrap:wrap;gap:14px;align-items:center;margin-bottom:clamp(40px,6vw,72px)}

.btn-hero{
  display:inline-flex;align-items:center;gap:12px;
  background:var(--blush-claro);color:var(--noche);
  padding:17px 32px;border-radius:100px;
  font-size:14px;font-weight:500;letter-spacing:.09em;text-transform:uppercase;
  box-shadow:0 10px 30px -10px rgba(10,16,30,.5);
  transition:transform var(--lift) var(--ease),box-shadow var(--lift) var(--ease),background var(--lift) var(--ease);
}
.btn-hero svg{width:17px;height:17px;transition:transform .3s var(--ease)}
.btn-hero:hover{transform:translateY(-3px);box-shadow:0 16px 38px -12px rgba(10,16,30,.62);background:var(--blanco)}
.btn-hero:hover svg{transform:translateX(4px)}
.btn-hero:active{transform:translateY(-1px)}

.btn-hero-fantasma{
  display:inline-flex;align-items:center;
  padding:17px 28px;border-radius:100px;
  border:1px solid rgba(253,237,233,.42);
  color:var(--blush-claro);
  font-size:14px;font-weight:400;letter-spacing:.05em;
  transition:background var(--lift) var(--ease),border-color var(--lift) var(--ease),transform var(--lift) var(--ease);
}
.btn-hero-fantasma:hover{background:rgba(253,237,233,.13);border-color:rgba(253,237,233,.72);transform:translateY(-2px)}

.hero-pie{
  display:flex;align-items:center;gap:14px;
  font-size:clamp(10px,1vw,11.5px);letter-spacing:.22em;text-transform:uppercase;
  color:rgba(251,203,187,.82);margin:0;
}
.hero-pie-linea{display:block;width:clamp(34px,5vw,64px);height:1px;background:currentColor;opacity:.5;flex-shrink:0}

.hero-scroll{
  position:absolute;bottom:34px;left:50%;transform:translateX(-50%);z-index:3;
  display:grid;place-items:center;
}
.hero-scroll-riel{
  display:block;width:24px;height:38px;border:1px solid rgba(253,237,233,.45);border-radius:100px;position:relative;
}
.hero-scroll-punto{
  position:absolute;top:7px;left:50%;margin-left:-2px;
  width:4px;height:7px;border-radius:4px;background:var(--coral-200);
  animation:scrollPunto 2s var(--ease) infinite;
}
@keyframes scrollPunto{0%{opacity:0;transform:translateY(0)}25%{opacity:1}75%{opacity:1;transform:translateY(14px)}100%{opacity:0;transform:translateY(16px)}}

/* Pantallas medianas y móvil: el texto manda sobre la imagen */
@media (max-width:900px){
  .hero-foto{opacity:.32;object-position:72% 40%}
  .hero-velo{
    background:linear-gradient(180deg,
      rgba(12,18,34,.88) 0%,
      rgba(20,30,52,.80) 45%,
      rgba(20,30,52,.92) 100%);
  }
  .hero-contenido{padding:132px 22px 96px;text-align:left}
  .hero-titulo{max-width:100%}
  .hero-acciones{gap:11px}
  .btn-hero,.btn-hero-fantasma{flex:1 1 100%;justify-content:center}
  .hero-scroll{display:none}
}

/* ═══════════ TIPOGRAFÍA DE SECCIÓN ═══════════ */
.seccion-etiqueta{
  display:inline-flex;align-items:center;gap:11px;
  font-size:11px;letter-spacing:.24em;text-transform:uppercase;font-weight:500;
  color:var(--coral);margin:0 0 20px;
}
.seccion-etiqueta::before{content:"";width:26px;height:1px;background:currentColor;opacity:.55}
.seccion-etiqueta.clara{color:var(--coral-200)}
.libro .seccion-etiqueta.clara,
.agenda .seccion-etiqueta.clara{color:var(--coral)}

.seccion-titulo{
  font-size:clamp(32px,4.1vw,54px);
  font-weight:400;line-height:1.1;letter-spacing:-.018em;
  margin:0 0 20px;
}
.seccion-titulo em{font-style:italic;color:var(--coral-vivo)}
.seccion-bajada{font-size:clamp(16px,1.3vw,18.5px);font-weight:300;color:var(--tinta-70);max-width:52ch;line-height:1.68}
.seccion-cabecera{max-width:640px;margin-bottom:clamp(44px,5vw,64px)}

/* Enfasis alternado dentro del texto corrido: el mismo recurso que usaba
   la web original, donde una idea iba en rosa y la siguiente en azul. */
.e-vino,.e-azul{font-weight:500}
.e-vino{color:var(--coral)}
.e-azul{color:var(--azul)}
.pareja .e-vino{color:var(--coral-200)}
.pareja .e-azul{color:var(--azul-claro)}

/* ═══════════ BARRA DE CONFIANZA ═══════════ */
.confianza{
  background:var(--blush);
  border-bottom:1px solid var(--gris-linea);
  padding-block:clamp(38px,4.5vw,58px);
}
.confianza-lista{
  display:grid;grid-template-columns:repeat(4,1fr);
  gap:clamp(16px,3vw,40px);
}
.confianza-lista li{
  display:flex;flex-direction:column;gap:8px;
  padding-left:clamp(14px,2vw,24px);
  border-left:1px solid var(--gris-linea);
}
.confianza-lista li:first-child{border-left:0;padding-left:0}
.cifra{
  font-family:var(--display);font-size:clamp(34px,4.2vw,54px);
  line-height:1;color:var(--coral-vivo);font-weight:400;letter-spacing:-.02em;
}
.cifra sup{font-size:.45em;vertical-align:super;margin-left:1px}
.cifra-chica{font-size:clamp(19px,2.1vw,26px);line-height:1.15}
.cifra-nota{font-size:13px;line-height:1.5;color:var(--tinta-70);font-weight:300;max-width:20ch}

@media (max-width:820px){
  .confianza-lista{grid-template-columns:repeat(2,1fr);gap:26px 18px}
  .confianza-lista li:nth-child(3){border-left:0;padding-left:0}
}
@media (max-width:420px){
  .confianza-lista{grid-template-columns:1fr 1fr}
}

/* ═══════════ PLANTEAMIENTO ═══════════ */
.planteamiento{padding-block:var(--seccion-y);background:var(--blush-claro)}
.planteamiento-grid{
  display:grid;grid-template-columns:minmax(0,1.42fr) minmax(0,1fr);
  gap:clamp(36px,5vw,80px);align-items:start;
}
.planteamiento-destacado{
  font-family:var(--display);
  font-size:clamp(22px,2.75vw,35px);
  line-height:1.35;font-weight:400;letter-spacing:-.012em;
  color:var(--tinta);margin-bottom:26px;
}
.planteamiento-destacado em{font-style:italic;color:var(--coral-vivo)}
.planteamiento-cuerpo{font-size:clamp(16px,1.25vw,17.5px);color:var(--tinta-70);font-weight:300;max-width:54ch;line-height:1.72;margin-bottom:28px}

.enlace-flecha{
  display:inline-flex;align-items:center;gap:10px;
  font-size:14.5px;font-weight:500;letter-spacing:.03em;color:var(--coral);
  padding-bottom:5px;border-bottom:1.5px solid rgba(168,61,31,.34);
  transition:border-color .3s var(--ease),gap .3s var(--ease);
}
.enlace-flecha svg{width:18px;height:18px;transition:transform .3s var(--ease)}
.enlace-flecha:hover{border-color:var(--coral)}
.enlace-flecha:hover svg{transform:translateX(5px)}

/* Tarjeta de precio */
.tarjeta-cita{
  background:linear-gradient(158deg,var(--noche) 0%,var(--noche-900) 100%);
  color:var(--blush-claro);
  border-radius:var(--borde-r-lg);
  padding:clamp(28px,3.2vw,40px);
  box-shadow:0 26px 60px -30px rgba(22,32,58,.72);
  position:relative;overflow:hidden;
}
.tarjeta-cita::before{
  content:"";position:absolute;top:-56%;right:-24%;width:70%;aspect-ratio:1;border-radius:50%;
  background:radial-gradient(circle,rgba(251,203,187,.24) 0%,rgba(251,203,187,0) 68%);
  pointer-events:none;
}
.tarjeta-cita-etiqueta{font-size:10.5px;letter-spacing:.23em;text-transform:uppercase;color:var(--coral-200);margin-bottom:12px}
.tarjeta-cita-precio{
  font-family:var(--display);font-size:clamp(44px,5vw,60px);line-height:1;
  font-weight:400;letter-spacing:-.03em;margin:0 0 10px;
}
.tarjeta-cita-precio .moneda{font-size:.5em;vertical-align:super;margin-right:2px;opacity:.75}
.tarjeta-cita-precio .centavos{font-size:.44em;vertical-align:super;opacity:.65}
.tarjeta-cita-nota{font-size:13.5px;font-weight:300;color:rgba(253,237,233,.76);margin-bottom:0}
.tarjeta-cita hr{border:0;border-top:1px solid rgba(253,237,233,.18);margin:24px 0}
.tarjeta-cita-asistente{font-size:14.5px;font-weight:300;color:rgba(253,237,233,.84);margin-bottom:22px}
.tarjeta-cita-asistente strong{font-weight:500;color:var(--blush-claro)}
.tarjeta-cita-acciones{display:flex;flex-direction:column;gap:10px}

.btn-solido{
  display:inline-flex;align-items:center;justify-content:center;gap:10px;
  background:var(--blush-claro);color:var(--noche);
  padding:15px 24px;border-radius:100px;
  font-size:14px;font-weight:500;letter-spacing:.04em;
  transition:transform var(--lift) var(--ease),box-shadow var(--lift) var(--ease),background var(--lift) var(--ease);
}
.btn-solido svg{width:18px;height:18px}
.btn-solido:hover{transform:translateY(-2px);box-shadow:0 10px 26px rgba(8,12,24,.34);background:var(--blanco)}

.btn-contorno{
  display:inline-flex;align-items:center;justify-content:center;
  padding:14px 24px;border-radius:100px;
  border:1px solid rgba(253,237,233,.4);color:var(--blush-claro);
  font-size:14.5px;font-weight:400;letter-spacing:.05em;
  transition:background var(--lift) var(--ease),border-color var(--lift) var(--ease),transform var(--lift) var(--ease);
}
.btn-contorno:hover{background:rgba(253,237,233,.13);border-color:rgba(253,237,233,.7);transform:translateY(-2px)}

@media (max-width:900px){
  .planteamiento-grid{grid-template-columns:1fr}
}

/* ═══════════ TERAPIA DE PAREJA ═══════════ */
.pareja{
  position:relative;
  padding-block:var(--seccion-y);
  background:var(--noche-900);
  color:var(--blush-claro);
  overflow:hidden;
}
.pareja-fondo{
  position:absolute;inset:0;
  background:
    radial-gradient(120% 90% at 12% 0%,rgba(51,69,107,.62) 0%,rgba(51,69,107,0) 58%),
    radial-gradient(90% 80% at 92% 100%,rgba(232,121,92,.34) 0%,rgba(232,121,92,0) 62%);
  pointer-events:none;
}
.pareja .contenedor{position:relative;z-index:1}
.pareja-cabecera{margin-bottom:clamp(38px,4.6vw,58px);max-width:760px}
.pareja-titulo{
  font-size:clamp(34px,5.2vw,68px);font-weight:400;line-height:1.06;letter-spacing:-.022em;margin:0;
}
.pareja-titulo em{font-style:italic;color:var(--coral-300)}
.pareja-cuerpo{
  display:grid;grid-template-columns:1fr 1fr;gap:clamp(28px,4vw,64px);
}
.pareja-columna p{
  font-size:clamp(15.5px,1.2vw,17px);font-weight:300;line-height:1.78;
  color:rgba(253,237,233,.8);margin-bottom:1.15em;
}
.pareja-cita{
  margin:26px 0 0;padding:26px 0 0;
  border-top:1px solid rgba(251,203,187,.28);
  font-family:var(--display);font-size:clamp(19px,2vw,25px);
  line-height:1.44;font-weight:400;color:var(--blush-claro);
}
.pareja-cita em{font-style:italic;color:var(--coral-200)}

.pareja-pie{
  margin-top:clamp(38px,4.6vw,58px);
  display:flex;align-items:center;gap:clamp(18px,3vw,32px);flex-wrap:wrap;
}
.btn-claro{
  display:inline-flex;align-items:center;
  background:var(--blush-claro);color:var(--noche);
  padding:16px 32px;border-radius:100px;
  font-size:13.5px;font-weight:500;letter-spacing:.09em;text-transform:uppercase;
  transition:transform var(--lift) var(--ease),box-shadow var(--lift) var(--ease),background var(--lift) var(--ease);
}
.btn-claro:hover{transform:translateY(-3px);box-shadow:0 14px 34px -12px rgba(0,0,0,.5);background:var(--blanco)}
.pareja-pie-nota{
  margin:0;font-size:11.5px;letter-spacing:.2em;text-transform:uppercase;color:var(--coral-300);
}

@media (max-width:820px){.pareja-cuerpo{grid-template-columns:1fr}}

/* ═══════════ SERVICIOS ═══════════ */
.servicios{padding-block:var(--seccion-y);background:var(--blush-claro)}
.rejilla-servicios{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:clamp(16px,1.9vw,26px);
}

/* ── Tarjetas con profundidad 3D ──────────────────────
   La rejilla aporta la perspectiva compartida; cada tarjeta
   se inclina siguiendo el cursor y sus capas internas flotan
   a distintas alturas (translateZ). El brillo especular se
   desplaza con el puntero como si reflejara una luz real.   */
.rejilla-servicios{perspective:1500px;perspective-origin:50% 40%}

.tarjeta{
  --rx:0deg; --ry:0deg; --tz:0px;
  --mx:50%; --my:50%; --brillo:0;
  display:flex;flex-direction:column;
  position:relative;
  background:var(--blanco);
  border:1px solid var(--gris-linea);
  border-radius:var(--borde-r-lg);
  transform-style:preserve-3d;
  transform:rotateX(var(--rx)) rotateY(var(--ry)) translateZ(var(--tz));
  transition:transform .55s var(--ease),box-shadow .55s var(--ease),border-color .35s var(--ease);
  box-shadow:0 1px 2px rgba(22,32,58,.05);
}
/* Mientras el cursor está encima, la respuesta debe ser inmediata */
.tarjeta.siguiendo{
  transition:transform .1s linear,box-shadow .35s var(--ease),border-color .35s var(--ease);
}
.tarjeta:hover{
  --tz:22px;
  border-color:rgba(232,121,92,.55);
  box-shadow:
    0 30px 56px -20px rgba(22,32,58,.34),
    0 10px 20px -10px rgba(22,32,58,.18),
    0 2px 4px rgba(22,32,58,.06);
}
.tarjeta:active{--tz:8px}

/* Brillo especular que sigue al cursor */
.tarjeta::after{
  content:"";position:absolute;inset:0;z-index:5;
  border-radius:inherit;pointer-events:none;
  background:radial-gradient(42% 60% at var(--mx) var(--my),
    rgba(255,255,255,.62) 0%,
    rgba(255,255,255,.20) 34%,
    rgba(255,255,255,0) 70%);
  opacity:var(--brillo);
  transition:opacity .4s var(--ease);
}

/* Capas a distinta altura: el parallax nace de aquí */
.tarjeta-insignia{transform:translateZ(58px)}
.tarjeta-cuerpo{transform:translateZ(30px)}

.tarjeta-media{
  display:block;overflow:hidden;position:relative;
  background:var(--coral-100);aspect-ratio:16/10;
  border-radius:25px 25px 0 0;
  /* Sin translateZ: la capa de la foto queda plana. El relieve lo dan la
     insignia y el cuerpo; una capa 3D extra con clip-path dentro provocaba
     fallos de pintado en gráficas integradas antiguas. */
}
.tarjeta-media img{
  width:100%;height:100%;object-fit:cover;object-position:center 38%;
  transform:scale(1.04);
  transition:transform .7s var(--ease);
}
.tarjeta:hover .tarjeta-media img{transform:scale(1.11)}

.tarjeta-cuerpo{display:flex;flex-direction:column;flex:1;padding:clamp(22px,2.4vw,30px)}
.tarjeta-titulo{
  font-family:var(--display);font-size:clamp(20px,1.85vw,25px);
  font-weight:500;line-height:1.2;letter-spacing:-.012em;margin-bottom:11px;
}
.tarjeta-texto{font-size:14.5px;font-weight:300;line-height:1.65;color:var(--tinta-70);margin-bottom:20px}
.tarjeta-titulo:last-of-type{margin-bottom:22px}
.tarjeta-mas{
  margin-top:auto;display:inline-flex;align-items:center;gap:8px;
  font-size:12.5px;font-weight:500;letter-spacing:.11em;text-transform:uppercase;color:var(--coral);
}
.tarjeta-mas svg{width:16px;height:16px;transition:transform .3s var(--ease)}
.tarjeta:hover .tarjeta-mas svg{transform:translateX(5px)}

/* Tarjeta destacada — el nicho */
.tarjeta-destacada{
  grid-column:span 3;
  flex-direction:row;
  background:linear-gradient(150deg,var(--blanco) 0%,var(--coral-100) 130%);
  border-color:rgba(232,121,92,.42);
}
.tarjeta-destacada .tarjeta-media{position:relative;aspect-ratio:auto;flex:0 0 44%;min-height:360px;align-self:stretch;border-radius:25px 0 0 25px}
.tarjeta-destacada .tarjeta-media img{position:absolute;inset:0;width:100%;height:100%}
.tarjeta-destacada .tarjeta-cuerpo{justify-content:center;padding:clamp(30px,3.6vw,54px)}
.tarjeta-destacada .tarjeta-titulo{font-size:clamp(28px,3.4vw,42px);font-weight:400;margin-bottom:15px}
.tarjeta-destacada .tarjeta-texto{font-size:clamp(15.5px,1.25vw,17.5px);max-width:44ch;margin-bottom:26px}
.tarjeta-insignia{
  position:absolute;top:20px;left:20px;z-index:2;
  background:var(--noche);color:var(--blush);
  font-size:10.5px;letter-spacing:.17em;text-transform:uppercase;font-weight:500;
  padding:7px 14px;border-radius:100px;
  box-shadow:0 6px 18px -6px rgba(22,32,58,.6);
}

@media (max-width:1000px){
  .rejilla-servicios{grid-template-columns:repeat(2,1fr)}
  .tarjeta-destacada{grid-column:span 2}
}
@media (max-width:760px){
  .rejilla-servicios{grid-template-columns:1fr}
  .tarjeta-destacada{grid-column:span 1;flex-direction:column}
  .tarjeta-destacada .tarjeta-media{position:relative;flex:none;min-height:0;aspect-ratio:16/10;border-radius:25px 25px 0 0}
  .tarjeta-destacada .tarjeta-media img{position:static}
}

/* ═══════════ SOBRE MÍ ═══════════
   Según boceto: fondo casi blanco con círculo blush arriba a la
   derecha (colores muestreados del fondo entregado: #FCFBF9 y
   #F8F0ED), retrato vertical enmarcado en blanco a la izquierda
   (~34% del ancho) y a la derecha nombre, lema y credenciales en
   dos columnas separadas por un filete.                          */
.sobre-mi{
  position:relative;
  padding-block:var(--seccion-y);
  background:#FCFBF9;
  overflow:hidden;
}
.sobre-mi::after{
  content:"";position:absolute;top:0;right:0;
  width:clamp(300px,32vw,540px);aspect-ratio:1;border-radius:50%;
  background:#F8F0ED;
  transform:translate(34%,-44%);
  pointer-events:none;
}
.sobre-grid{
  position:relative;z-index:1;
  display:grid;grid-template-columns:minmax(0,.75fr) minmax(0,1.25fr);
  gap:clamp(40px,4.8vw,72px);align-items:start;
}

/* Retrato con paspartú blanco */
.sobre-foto{margin:0}
/* En escritorio la figura se estira a la altura exacta de la columna de
   texto: el retrato rellena el marco con object-fit y el borde inferior
   de la sección queda recto en cualquier ancho, como en el boceto. */
@media (min-width:901px){
  .sobre-grid{align-items:stretch}
  .sobre-foto{display:flex;flex-direction:column}
  .sobre-foto-marco{flex:1;min-height:0;display:flex}
  .sobre-foto-marco img{height:100%;object-fit:cover;object-position:50% 20%}
}
.sobre-foto-marco{
  background:var(--blanco);
  padding:clamp(8px,0.9vw,12px);border-radius:26px;
  box-shadow:0 30px 60px -30px rgba(30,42,69,.32),0 6px 18px -8px rgba(30,42,69,.12);
}
.sobre-foto-marco img{width:100%;height:auto;border-radius:17px;display:block}
.sobre-foto-pie{
  margin-top:16px;display:flex;flex-direction:column;gap:8px;
  font-size:11.5px;letter-spacing:.16em;text-transform:uppercase;line-height:1.5;
}
.sobre-foto-nombre{color:var(--tinta-50);font-weight:400}
.sobre-foto-rol{color:var(--coral);font-weight:600}

/* Cabecera del texto */
.sobre-kicker{
  display:inline-block;
  font-size:clamp(24px,2.3vw,33px);font-weight:600;line-height:1.15;color:var(--tinta);
  margin:0 0 clamp(16px,1.8vw,22px);
}
.sobre-kicker::after{
  content:"";display:block;height:5px;width:100%;margin-top:10px;
  border-radius:3px;background:#EF83A5;   /* rosa del logotipo */
}
.sobre-nombre{
  font-size:clamp(38px,4.2vw,60px);font-weight:700;
  line-height:1.05;letter-spacing:-.015em;margin:0 0 14px;
}
.sobre-lead{
  font-size:clamp(14.5px,1.15vw,16.5px);font-weight:600;line-height:1.5;
  color:var(--coral);max-width:48ch;
  margin:0 0 clamp(14px,1.6vw,18px);
}
.sobre-claim{
  font-family:var(--display);font-weight:600;
  font-size:clamp(22px,2.1vw,28px);line-height:1.24;letter-spacing:-.01em;
  color:var(--tinta);
  margin:0 0 clamp(14px,1.6vw,18px);
  padding-top:clamp(14px,1.6vw,18px);
  border-top:1px solid var(--gris-linea);
}
.sobre-claim em{display:block;font-style:italic;font-weight:500;color:var(--coral-vivo)}

/* Credenciales en dos columnas con filete central */
.sobre-cols{
  display:grid;grid-template-columns:1fr 1.12fr;
  gap:clamp(20px,2.2vw,34px);
  border-top:1px solid var(--gris-linea);
  padding-top:clamp(14px,1.6vw,18px);
}
.sobre-col-b{
  border-left:1px solid var(--gris-linea);
  padding-left:clamp(20px,2.2vw,34px);
}
.sobre-col-titulo{
  font-family:var(--sans);font-size:11px;letter-spacing:.2em;text-transform:uppercase;
  font-weight:600;color:var(--coral);margin:0 0 9px;
}
.sobre-col-titulo.con-margen{
  margin-top:clamp(10px,1.2vw,14px);padding-top:clamp(10px,1.2vw,14px);
  border-top:1px solid var(--gris-linea);
}

.grado{padding-block:7px}
.grado + .grado{border-top:1px solid var(--gris-linea)}
.grado:first-of-type{padding-top:0}
.grado-nivel{
  display:block;font-size:10px;letter-spacing:.18em;text-transform:uppercase;
  font-weight:600;color:var(--coral);margin-bottom:3px;
}
.grado-titulo{
  font-size:clamp(14.5px,1.1vw,16px);font-weight:600;line-height:1.3;
  color:var(--tinta);margin:0 0 2px;
}
.grado-inst{font-size:12.5px;font-weight:300;color:var(--tinta-50);line-height:1.4;margin:0}

.lista-num{display:flex;flex-direction:column}
.lista-num li{display:flex;gap:12px;padding-block:5px}
.lista-num .num{
  flex-shrink:0;font-size:10px;font-weight:600;letter-spacing:.08em;
  color:var(--coral);padding-top:4px;
}
.lista-num .grado-titulo{font-size:clamp(14px,1.05vw,15.5px);margin-bottom:2px}

/* ── Instituciones: rejilla fija, logos a color ─────────
   Fichas uniformes y grandes (4+3 en escritorio, 2 por fila en
   móvil). Entrada premium: cada ficha se levanta en perspectiva,
   pasa de desenfocada a nítida y, al aterrizar, un destello la
   recorre. El fill backwards deja el estado final en manos de los
   estilos normales, así el hover responde sin pelear con la
   animación. Logos a color pleno: sin filtros.                   */
.instituciones{
  margin-top:clamp(38px,4.4vw,60px);
  padding-top:clamp(30px,3.6vw,44px);
  border-top:1px solid var(--gris-linea);
}
.instituciones-titulo{
  text-align:center;font-size:10.5px;letter-spacing:.26em;text-transform:uppercase;
  color:var(--tinta-50);margin-bottom:clamp(24px,2.8vw,34px);
}
.instituciones-rejilla{
  display:flex;flex-wrap:wrap;justify-content:center;
  gap:clamp(12px,1.6vw,20px);
  perspective:900px;
  /* cintura: fuerza 4+3 en escritorio en vez de 5+2 */
  max-width:1150px;margin-inline:auto;padding-inline:20px;
}
.instituciones-rejilla li{
  width:clamp(160px,21vw,255px);
  min-height:clamp(88px,9.6vw,132px);
  display:flex;align-items:center;justify-content:center;
  position:relative;overflow:hidden;
  background:var(--blanco);
  border:1px solid var(--gris-linea);
  border-radius:20px;
  padding:clamp(16px,2vw,26px);
  box-shadow:0 1px 2px rgba(30,42,69,.05);
  transition:transform var(--lift) var(--ease),box-shadow var(--lift) var(--ease),border-color var(--lift) var(--ease);
}
.instituciones-rejilla img{
  height:clamp(44px,4.8vw,64px);width:auto;
  max-width:clamp(140px,17vw,212px);object-fit:contain;
  transition:transform .35s var(--ease);
}

/* Entrada: perspectiva + enfoque progresivo, en cascada */
.instituciones.visible .instituciones-rejilla li{
  animation:logoEntra .95s cubic-bezier(.16,1,.3,1) backwards;
  animation-delay:calc(var(--i,0) * 110ms);
}
@keyframes logoEntra{
  0%{opacity:0;transform:translateY(36px) rotateX(-26deg) scale(.9);filter:blur(9px)}
  55%{filter:blur(0)}
  100%{opacity:1;transform:none;filter:none}
}

/* Destello que recorre la ficha justo después de aterrizar */
.instituciones-rejilla li::after{
  content:"";position:absolute;top:0;left:-160%;width:55%;height:100%;
  transform:skewX(-20deg);pointer-events:none;
  background:linear-gradient(105deg,rgba(255,255,255,0) 0%,rgba(255,255,255,.85) 50%,rgba(255,255,255,0) 100%);
}
.instituciones.visible .instituciones-rejilla li::after{
  animation:logoBrillo 1s ease-out backwards;
  animation-delay:calc(var(--i,0) * 110ms + 600ms);
}
@keyframes logoBrillo{from{left:-160%}to{left:170%}}

.instituciones-rejilla li:hover{
  transform:translateY(-5px) scale(1.02);
  border-color:rgba(30,42,69,.18);
  box-shadow:0 18px 34px -16px rgba(30,42,69,.26);
}
.instituciones-rejilla li:hover img{transform:scale(1.07)}

/* Los logotipos cuadrados (IHPG, Tanatología, BUAP, Anáhuac) necesitan más
   altura para pesar lo mismo que los rectangulares; la ficha no cambia:
   se compensa reduciendo su padding. */
.instituciones-rejilla li.cuadrado{padding:clamp(10px,1.2vw,18px)}
.instituciones-rejilla li.cuadrado img{height:clamp(60px,6.8vw,94px);max-width:none}

@media (max-width:600px){
  .instituciones-rejilla{gap:10px}
  .instituciones-rejilla li{width:calc(50% - 5px);min-height:78px;border-radius:15px}
  .instituciones-rejilla img{height:38px;max-width:132px}
  .instituciones-rejilla li.cuadrado img{height:56px}
}

@media (max-width:1080px){
  .sobre-cols{grid-template-columns:1fr}
  .sobre-col-b{
    border-left:0;padding-left:0;
    border-top:1px solid var(--gris-linea);
    padding-top:clamp(22px,3vw,30px);margin-top:6px;
  }
}
@media (max-width:900px){
  .sobre-grid{grid-template-columns:1fr}
  .sobre-foto{max-width:430px}
  .sobre-mi::after{width:min(60vw,340px);transform:translate(38%,-48%)}
}

/* ═══════════ LIBRO ═══════════ */
.libro{
  position:relative;padding-block:var(--seccion-y);
  background:var(--blush-claro);color:var(--tinta);overflow:hidden;
}
/* Antes iba sobre fondo oscuro. En claro los lavados se vuelven muy tenues:
   dan profundidad sin ensuciar el blanco de la pagina. */
.libro-fondo{
  position:absolute;inset:0;pointer-events:none;
  background:
    radial-gradient(78% 66% at 20% 44%,rgba(249,219,214,.72) 0%,rgba(249,219,214,0) 62%),
    radial-gradient(66% 56% at 88% 10%,rgba(244,168,143,.24) 0%,rgba(244,168,143,0) 62%);
}
.libro-grid{
  position:relative;z-index:1;
  display:grid;grid-template-columns:minmax(0,.78fr) minmax(0,1.22fr);
  gap:clamp(40px,6vw,96px);align-items:center;
}

.libro-portada{display:flex;flex-direction:column;align-items:center;perspective:1600px}
.libro-3d{
  position:relative;width:min(340px,72vw);
  transform-style:preserve-3d;
  transform:rotateY(-17deg) rotateX(4deg);
  transition:transform .7s var(--ease);
  border-radius:3px 8px 8px 3px;
  box-shadow:
    0 2px 4px rgba(0,0,0,.28),
    28px 34px 60px -20px rgba(0,0,0,.62),
    50px 60px 100px -40px rgba(0,0,0,.5);
}
.libro-3d:hover{transform:rotateY(-6deg) rotateX(2deg) translateY(-8px)}
.libro-3d img{width:100%;height:auto;border-radius:3px 8px 8px 3px;display:block}
.libro-canto{
  position:absolute;left:0;top:0;bottom:0;width:15px;
  background:linear-gradient(90deg,rgba(0,0,0,.5) 0%,rgba(255,255,255,.16) 42%,rgba(0,0,0,.34) 100%);
  border-radius:3px 0 0 3px;z-index:2;
}
.libro-brillo{
  position:absolute;inset:0;border-radius:3px 8px 8px 3px;pointer-events:none;
  background:linear-gradient(104deg,rgba(255,255,255,0) 38%,rgba(255,255,255,.22) 49%,rgba(255,255,255,0) 60%);
  opacity:0;transition:opacity .6s var(--ease);
}
.libro-3d:hover .libro-brillo{opacity:1}
.libro-sombra{
  width:min(300px,64vw);height:26px;margin-top:22px;
  background:radial-gradient(ellipse,rgba(0,0,0,.46) 0%,rgba(0,0,0,0) 72%);
  filter:blur(7px);
}

.libro-titulo{
  font-size:clamp(40px,5.6vw,74px);font-weight:400;line-height:1;letter-spacing:-.028em;margin:0 0 12px;
}
.libro-titulo em{font-style:italic;color:var(--coral-vivo)}
.libro-subtitulo{
  font-size:clamp(15.5px,1.35vw,19px);font-weight:300;
  color:var(--tinta-70);max-width:38ch;margin-bottom:20px;
}

.libro-valoracion{display:flex;align-items:center;gap:12px;margin-bottom:clamp(24px,3vw,32px);flex-wrap:wrap}
.estrellas{position:relative;display:inline-block;font-size:18px;letter-spacing:3px;line-height:1}
.estrellas-base{color:rgba(30,42,69,.22)}
.estrellas-lleno{
  position:absolute;left:0;top:0;overflow:hidden;white-space:nowrap;
  width:var(--puntuacion);color:#B0730A;
}
.libro-valoracion-texto{font-size:13.5px;font-weight:300;color:var(--tinta-70)}
.libro-valoracion-texto strong{font-weight:500;color:var(--tinta)}

.libro-sinopsis p{
  font-size:clamp(15px,1.2vw,16.5px);font-weight:300;line-height:1.78;
  color:var(--tinta-70);max-width:56ch;margin-bottom:1.05em;
}
.libro-sinopsis em{font-style:italic;color:var(--coral)}

.libro-datos{
  display:flex;flex-wrap:wrap;gap:0;
  margin:clamp(24px,3vw,32px) 0;
  border-top:1px solid var(--gris-linea);
  border-bottom:1px solid var(--gris-linea);
  padding-block:18px;
}
.libro-datos li{
  display:flex;flex-direction:column;gap:4px;
  padding-inline:clamp(16px,2.4vw,30px);
  border-left:1px solid var(--gris-linea);
}
.libro-datos li:first-child{border-left:0;padding-left:0}
.libro-datos span{font-size:10.5px;letter-spacing:.2em;text-transform:uppercase;color:var(--coral)}
.libro-datos strong{font-size:14px;font-weight:400;color:var(--tinta)}

/* ── Botón Amazon ── */
.btn-amazon{
  --amz1:#FFB94A;
  --amz2:#F79B1F;
  position:relative;overflow:hidden;
  display:inline-flex;align-items:center;gap:16px;
  padding:16px 28px 16px 22px;
  border-radius:100px;
  background:linear-gradient(140deg,var(--amz1) 0%,var(--amz2) 100%);
  color:#3A2005;
  box-shadow:
    0 1px 0 rgba(255,255,255,.5) inset,
    0 12px 30px -12px rgba(247,155,31,.68),
    0 3px 8px -3px rgba(0,0,0,.4);
  transition:transform var(--lift) var(--ease),box-shadow var(--lift) var(--ease);
  isolation:isolate;
}
.btn-amazon:hover{
  transform:translateY(-3px);
  box-shadow:
    0 1px 0 rgba(255,255,255,.6) inset,
    0 20px 42px -14px rgba(247,155,31,.82),
    0 5px 12px -4px rgba(0,0,0,.44);
}
.btn-amazon:active{transform:translateY(-1px)}
.btn-amazon-destello{
  position:absolute;top:0;left:-130%;width:60%;height:100%;z-index:-1;
  background:linear-gradient(102deg,rgba(255,255,255,0) 0%,rgba(255,255,255,.62) 50%,rgba(255,255,255,0) 100%);
  transform:skewX(-18deg);
}
.btn-amazon:hover .btn-amazon-destello{animation:destello .85s var(--ease)}
@keyframes destello{to{left:135%}}

.btn-amazon-icono{
  display:grid;place-items:center;flex-shrink:0;
  width:44px;height:44px;border-radius:50%;
  background:rgba(58,32,5,.1);
  box-shadow:0 0 0 1px rgba(58,32,5,.09) inset;
}
.btn-amazon-icono svg{width:26px;height:auto;color:#3A2005;margin-top:3px}
.btn-amazon-texto{display:flex;flex-direction:column;gap:2px;text-align:left}
.btn-amazon-linea1{font-size:15.5px;font-weight:600;letter-spacing:.01em;line-height:1.2}
.btn-amazon-linea2{font-size:12px;font-weight:400;opacity:.76;letter-spacing:.02em;line-height:1.2}
.btn-amazon-flecha{display:grid;place-items:center;flex-shrink:0;margin-left:2px}
.btn-amazon-flecha svg{width:19px;height:19px;transition:transform .3s var(--ease)}
.btn-amazon:hover .btn-amazon-flecha svg{transform:translateX(5px)}

.libro-compra-nota{
  margin:16px 0 0;font-size:12.5px;font-weight:300;color:rgba(253,237,233,.55);
}

@media (max-width:900px){
  .libro-grid{grid-template-columns:1fr;gap:44px}
  .libro-portada{order:-1}
  .libro-datos li{padding-inline:0;border-left:0;flex:1 1 45%;margin-bottom:10px}
}

/* ═══════════ TESTIMONIOS ═══════════
   Sección a sangre completa: fotografía de fondo, velo azul y el
   testimonio centrado encima. Las diapositivas se cruzan en fundido
   apiladas en la misma celda de grid, así la altura la fija el
   testimonio más largo y no hay saltos al cambiar.               */
.testimonios{
  position:relative;
  display:flex;align-items:center;justify-content:center;
  overflow:hidden;
  padding-block:clamp(72px,8vw,120px);
  min-height:clamp(560px,58vw,720px);
  background:linear-gradient(120deg,#1B2E4F 0%,#2B4570 55%,#4A5A7E 100%);
  color:var(--blanco);
}
.t-foto{
  position:absolute;inset:0;width:100%;height:100%;
  object-fit:cover;object-position:50% 42%;
}
.t-velo{
  position:absolute;inset:0;
  background:
    linear-gradient(180deg,rgba(20,34,58,.62) 0%,rgba(20,34,58,.34) 34%,rgba(20,34,58,.70) 100%),
    linear-gradient(96deg,rgba(24,42,72,.74) 0%,rgba(30,52,88,.52) 46%,rgba(58,64,92,.42) 100%);
}

.t-contenido{
  position:relative;z-index:2;
  width:100%;max-width:760px;
  margin-inline:auto;
  padding-inline:clamp(56px,9vw,96px);
  text-align:center;
  display:flex;flex-direction:column;align-items:center;
}

.t-eyebrow{
  font-size:clamp(10.5px,1vw,12px);letter-spacing:.34em;text-transform:uppercase;
  font-weight:400;color:rgba(255,255,255,.92);margin:0;
}
.t-regla{display:block;width:54px;height:1px;background:rgba(255,255,255,.55);margin:18px 0 22px}

.t-titulo{
  font-size:clamp(30px,3.9vw,52px);
  font-weight:400;line-height:1.14;letter-spacing:-.015em;
  color:var(--blanco);margin:0;
  text-shadow:0 2px 30px rgba(12,22,40,.34);
}
.t-titulo em{font-style:italic;color:var(--blanco)}

.t-comillas{
  font-family:var(--display);font-size:clamp(52px,5.4vw,72px);
  line-height:.6;color:var(--salmon);
  margin:clamp(26px,3.2vw,38px) 0 clamp(16px,2vw,22px);
}
.t-estrellas{
  font-size:clamp(17px,1.6vw,21px);letter-spacing:7px;
  color:var(--salmon);margin-bottom:clamp(22px,2.6vw,30px);
  text-indent:7px;
}

/* Visor: todas las diapositivas en la misma celda */
.t-visor{display:grid;width:100%}
.t-slide{
  grid-area:1/1;margin:0;
  display:flex;flex-direction:column;align-items:center;
  opacity:0;visibility:hidden;transform:translateY(10px);
  transition:opacity .6s var(--ease),transform .6s var(--ease),visibility .6s;
  pointer-events:none;
}
.t-slide.activo{opacity:1;visibility:visible;transform:none;pointer-events:auto}
.t-slide blockquote{
  margin:0;
  font-size:clamp(16px,1.45vw,20px);font-weight:300;line-height:1.72;
  color:rgba(255,255,255,.96);
  text-shadow:0 1px 18px rgba(12,22,40,.42);
  max-width:52ch;
}
.t-sep{display:block;width:150px;height:1px;background:rgba(255,255,255,.42);margin:clamp(24px,3vw,32px) 0}
.t-slide figcaption{
  font-size:clamp(15px,1.3vw,17.5px);font-weight:500;letter-spacing:.02em;
  color:var(--blanco);
}

/* Puntos */
.t-puntos{display:flex;gap:9px;margin-top:clamp(28px,3.4vw,40px)}
.t-punto{
  width:7px;height:7px;border-radius:50%;padding:0;
  background:rgba(255,255,255,.38);
  transition:background .3s var(--ease),transform .3s var(--ease);
}
.t-punto:hover{background:rgba(255,255,255,.66)}
.t-punto.activo{background:var(--salmon);transform:scale(1.34)}

/* Flechas */
.t-nav{
  position:absolute;top:50%;z-index:3;
  transform:translateY(-50%);
  display:grid;place-items:center;
  width:clamp(42px,3.6vw,54px);aspect-ratio:1;
  border-radius:50%;
  border:1px solid rgba(255,255,255,.55);
  color:var(--blanco);
  background:rgba(255,255,255,.04);
  -webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);
  transition:background .3s var(--ease),border-color .3s var(--ease),transform .3s var(--ease);
}
.t-nav svg{width:44%;height:44%}
.t-nav:hover{background:rgba(255,255,255,.18);border-color:rgba(255,255,255,.9);transform:translateY(-50%) scale(1.07)}
.t-nav.ant{left:clamp(12px,3.4vw,58px)}
.t-nav.sig{right:clamp(12px,3.4vw,58px)}

@media (max-width:760px){
  .testimonios{min-height:0;padding-block:clamp(64px,13vw,88px)}
  .t-foto{object-position:42% 40%}
  .t-velo{background:linear-gradient(180deg,rgba(18,32,56,.82) 0%,rgba(22,40,68,.72) 45%,rgba(18,32,56,.88) 100%)}
  .t-contenido{padding-inline:clamp(52px,14vw,64px)}
  .t-nav{width:38px;top:auto;bottom:clamp(18px,5vw,26px);transform:none}
  .t-nav:hover{transform:scale(1.07)}
  .t-nav.ant{left:calc(50% - 52px)}
  .t-nav.sig{right:calc(50% - 52px)}
  .t-puntos{margin-bottom:44px}
}

/* ═══════════ AGENDA ═══════════ */
.agenda{
  padding-block:var(--seccion-y);
  /* En claro: Testimonios (oscuro) → Agenda (claro) → pie (oscuro).
     Antes las tres iban oscuras y se leían como una sola mancha. */
  background:var(--blush);
  color:var(--tinta);
  position:relative;overflow:hidden;
}
.agenda::before{
  content:"";position:absolute;top:-30%;left:-10%;width:56%;aspect-ratio:1;border-radius:50%;
  background:radial-gradient(circle,rgba(253,237,233,.85) 0%,rgba(253,237,233,0) 66%);pointer-events:none;
}
.agenda-grid{
  position:relative;z-index:1;
  display:grid;grid-template-columns:minmax(0,1.06fr) minmax(0,.94fr);
  gap:clamp(36px,5vw,72px);align-items:start;
}
.agenda-titulo{
  font-size:clamp(34px,4.6vw,60px);font-weight:400;line-height:1.06;letter-spacing:-.022em;margin:0 0 20px;
}
.agenda-titulo em{font-style:italic;color:var(--coral-vivo)}
.agenda-bajada{
  font-size:clamp(16px,1.3vw,18px);font-weight:300;line-height:1.7;
  color:var(--tinta-70);max-width:46ch;margin-bottom:clamp(26px,3vw,34px);
}
.agenda-bajada strong{font-weight:500;color:var(--tinta)}

.agenda-acciones{display:flex;flex-wrap:wrap;gap:12px;margin-bottom:clamp(32px,4vw,44px)}
.btn-whatsapp{
  display:inline-flex;align-items:center;gap:11px;
  background:#25D366;color:#04331A;
  padding:16px 28px;border-radius:100px;
  font-size:14.5px;font-weight:600;letter-spacing:.02em;
  box-shadow:0 12px 30px -12px rgba(37,211,102,.7);
  transition:transform var(--lift) var(--ease),box-shadow var(--lift) var(--ease),background var(--lift) var(--ease);
}
.btn-whatsapp svg{width:21px;height:21px}
.btn-whatsapp:hover{transform:translateY(-3px);background:#2EE476;box-shadow:0 20px 40px -14px rgba(37,211,102,.85)}

.btn-claro-contorno{
  display:inline-flex;align-items:center;gap:10px;
  padding:16px 28px;border-radius:100px;
  border:1px solid rgba(30,42,69,.28);color:var(--tinta);
  font-size:15px;font-weight:400;letter-spacing:.03em;
  transition:background var(--lift) var(--ease),border-color var(--lift) var(--ease),transform var(--lift) var(--ease);
}
.btn-claro-contorno svg{width:19px;height:19px}
.btn-claro-contorno:hover{background:rgba(30,42,69,.06);border-color:var(--tinta);transform:translateY(-2px)}

.agenda-datos{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:26px 30px;margin:0}
.agenda-datos dt{
  font-size:10.5px;letter-spacing:.22em;text-transform:uppercase;
  color:var(--coral);margin-bottom:8px;
}
.agenda-datos dd{
  margin:0;font-size:14.5px;font-weight:300;line-height:1.6;color:var(--tinta-70);
}

.agenda-mapa{
  border-radius:var(--borde-r-lg);overflow:hidden;
  border:1px solid var(--gris-linea);
  box-shadow:0 26px 56px -30px rgba(30,42,69,.42);
  background:var(--blush-claro);
}
.agenda-mapa iframe{width:100%;height:clamp(300px,42vw,430px);filter:grayscale(.34) contrast(1.04)}
.agenda-mapa-enlace{
  display:flex;align-items:center;justify-content:space-between;gap:12px;
  padding:17px 24px;background:var(--blush-claro);color:var(--tinta);
  font-size:13.5px;font-weight:500;letter-spacing:.04em;
  transition:background var(--lift) var(--ease);
}
.agenda-mapa-enlace svg{width:18px;height:18px;transition:transform .3s var(--ease)}
.agenda-mapa-enlace:hover{background:var(--coral-100)}
.agenda-mapa-enlace:hover svg{transform:translateX(5px)}

@media (max-width:900px){.agenda-grid{grid-template-columns:1fr}}

/* ═══════════ FOOTER ═══════════ */
.site-footer{background:#16203A;color:rgba(253,237,233,.62);padding-block:clamp(52px,6vw,76px) 0;font-size:14.5px}
.footer-grid{
  display:grid;grid-template-columns:1.5fr 1fr 1fr 1.35fr;
  gap:clamp(28px,4vw,52px);
  padding-bottom:clamp(38px,4.5vw,54px);
}
.footer-marca{color:var(--blush-claro)}
.footer-marca .marca-glifo{margin-bottom:18px}
.footer-nombre{font-family:var(--display);font-size:21px;font-weight:500;margin:0 0 6px;color:var(--blush-claro)}
.footer-rol{font-size:12.5px;font-weight:300;letter-spacing:.05em;color:rgba(253,237,233,.55);margin:0}
.site-footer h3{
  font-family:var(--sans);font-size:10.5px;letter-spacing:.24em;text-transform:uppercase;
  font-weight:500;color:var(--coral-300);margin-bottom:18px;
}
.footer-nav li{margin-bottom:11px}
.footer-nav a,.footer-contacto a{
  font-size:14.5px;font-weight:300;
  transition:color .25s var(--ease);
}
.footer-nav a:hover,.footer-contacto a:hover{color:var(--blush-claro)}
.footer-contacto p{margin-bottom:14px;font-weight:300;line-height:1.6}
.footer-contacto a{font-size:19px;font-family:var(--display);color:var(--blush-claro)}
.footer-horario{font-size:13.5px;color:rgba(253,237,233,.48)}

.footer-legal{
  display:flex;flex-wrap:wrap;gap:10px 28px;justify-content:space-between;align-items:center;
  padding-block:24px;border-top:1px solid rgba(253,237,233,.11);
  font-size:12.5px;font-weight:300;color:rgba(253,237,233,.45);
}
.footer-legal p{margin:0}

/* Redes: los logotipos originales, con su color de marca */
.footer-redes{display:flex;align-items:center;gap:10px}
.footer-redes a,.footer-redes .red-inactiva{
  display:grid;place-items:center;
  width:34px;height:34px;
  transition:transform .25s var(--ease),opacity .25s var(--ease),filter .25s var(--ease);
}
.footer-redes img{width:100%;height:100%;object-fit:contain}
/* Sobre el footer oscuro conviene bajarles un punto la intensidad;
   al pasar el cursor recuperan su color pleno y suben. */
.footer-redes a{opacity:.82}
.footer-redes a:hover{opacity:1;transform:translateY(-3px) scale(1.06)}
/* Instagram todavía sin cuenta enlazada: se ve, no se pulsa */
.footer-redes .red-inactiva{opacity:.42;cursor:default}

@media (max-width:560px){
  .footer-legal{justify-content:center;text-align:center}
  .footer-redes{order:-1;margin-bottom:6px}
}
.footer-aviso{font-style:italic}

@media (max-width:900px){.footer-grid{grid-template-columns:1fr 1fr}}
@media (max-width:560px){.footer-grid{grid-template-columns:1fr;gap:32px}}

/* ═══════════ WHATSAPP FLOTANTE ═══════════ */
.wa-flotante{
  position:fixed;right:22px;bottom:22px;z-index:90;
  display:grid;place-items:center;
  width:58px;height:58px;border-radius:50%;
  background:#25D366;color:#04331A;
  box-shadow:0 10px 28px -8px rgba(37,211,102,.72),0 3px 8px rgba(0,0,0,.22);
  opacity:0;visibility:hidden;transform:translateY(16px) scale(.85);
  transition:opacity .4s var(--ease),transform .4s var(--ease),visibility .4s,box-shadow var(--lift) var(--ease);
}
.wa-flotante.visible{opacity:1;visibility:visible;transform:none}
.wa-flotante:hover{transform:translateY(-3px);box-shadow:0 16px 36px -10px rgba(37,211,102,.85),0 4px 10px rgba(0,0,0,.26)}
.wa-flotante svg{width:29px;height:29px}
@media (max-width:640px){.wa-flotante{right:16px;bottom:16px;width:54px;height:54px}}

/* ═══════════ RESPONSIVE HEADER ═══════════ */
@media (max-width:1080px){
  .nav-principal ul{gap:22px}
  .nav-principal a{font-size:13.5px}
}
@media (max-width:980px){
  .nav-principal,.btn-header{display:none}
  .menu-toggle{display:block}
  .marca-texto em{display:none}
}
