/* ==========================================================================
   Consuelo Béjar · Movimientos del Alma®
   Sistema editorial vivo — "Cuerpo como Mapa"
   Paleta tierra (logo 2026) · Cormorant Garamond + Manrope · Motion-first
   --------------------------------------------------------------------------
   ÍNDICE
   01. Tokens (custom properties)            ~ línea 11
   02. Reset y base                          ~ línea 91
   03. Pétalos decorativos                   ~ línea 117
   04. Tipografía editorial                  ~ línea 159
   05. Layout (container, secciones, bg-*)   ~ línea 211
   06. Reveal / motion utilities             ~ línea 272
   07. Marquesina                            ~ línea 294
   08. Botones                               ~ línea 321
   09. Formularios                           ~ línea 347
   10. Header / Nav                          ~ línea 367
   11. Hero cinematográfico (index)          ~ línea 417
   12. Hero clásico (otras)                  ~ línea 492
   13. Pillars                               ~ línea 514
   14. Mega cards                            ~ línea 534
   15. Trayectoria stripe                    ~ línea 563
   16. Quote moment                          ~ línea 591
   17. Stats                                 ~ línea 603
   18. Split / Cards / Banners               ~ línea 617
   19. Banner editorial verde + rosa         ~ línea 671
   20. Tray banner (full-bleed)              ~ línea 922
   21. Testimonial / Newsletter / Footer     ~ línea 1135
   22. Cursor / Cuerpo / Móvil flotante      ~ línea 1252
   23. Page hero genérico                    ~ línea 1263
   24. Checklist / Steps / Timeline          ~ línea 1271
   25. Edu / Acordeón / Módulos              ~ línea 1308
   26. Course detail                         ~ línea 1432
   27. Hooks / Method / Final CTA            ~ línea 1525
   28. Media / Podcast / Recursos            ~ línea 1567
   29. Contacto                              ~ línea 1604
   30. Mobile (¬1024 / ¬900 / ¬768 / ¬560 / ¬380)  ~ línea 1624
   31. Consultas (cs-*)                      ~ línea 1742
   32. Heros por página (sobre/formacion/…)  ~ línea 2024
   33. YT / Podcast cards / MDA              ~ línea 2418
   34. Mobile fixes (legibilidad y desbordes) ~ línea 2468
   35. Resonancias · Fichas portrait         ~ línea 2700
   36. Sobre · Carrusel editorial            ~ línea 2740
   37. Utility classes (Kirby-friendly)      ~ final del archivo
   ========================================================================== */

@import url('https://fonts.googleapis.com/css2?family=Dancing+Script:wght@500;600;700&display=swap');

/* ---------- Tokens ------------------------------------------------------- */
:root{
  /* Pétalo central — la única "vida cromática" del sistema */
  --terra:        #B96546;
  --terra-deep:   #9C4F33;
  --terra-soft:   #E3A48A;

  /* Pétalos del logo */
  --sage:         #8A9B82;
  --sage-deep:    #4F5C49;
  --sage-darker:  #3A4636;
  --sage-soft:    #C5CFBE;
  --sage-tint:    rgba(138,155,130,.08);

  --coral:        #DD8366;
  --coral-deep:   #C46A4E;
  --coral-soft:   #F2C5B2;

  /* ROSA del logo (pétalo inferior derecho) — #C57C79 */
  --rose:         #C57C79;            /* exacto del logo */
  --rose-deep:    #A66061;            /* oscuro · texto, títulos, énfasis */
  --rose-mid:     #B86F6E;            /* intermedio · botones, badges */
  --rose-soft:    #D89D9B;            /* suave · acentos sobre claro */
  --rose-pale:    #EEC9C6;            /* muy suave · tintes, highlights */

  --sand:         #D6C5AA;
  --sand-deep:    #BFA886;

  /* Papel y tinta — papel casi blanco real, tonos crema/rosa para acento */
  --paper:        #FDFCF8;            /* ~blanco con apenas un susurro cálido */
  --paper-cool:   #F4F2EC;            /* piedra suave */
  --paper-warm:   #F7F2E8;            /* crema cálido suave (más neutro, menos coral) */
  --paper-deep:   #E5DAC4;
  --stone:        #F0EDE3;
  --paper-rose:   #F6E0DE;            /* papel teñido rosa (pálido) */
  --paper-rose-d: #EBC6C4;            /* papel teñido rosa (medio) */
  --ink:          #1F1E1C;
  --ink-soft:     #4A4641;
  --ink-mute:     #7A7368;
  --hairline:     rgba(31,30,28,.10);
  --hairline-strong: rgba(31,30,28,.18);

  /* Compat con HTML existente */
  --jade:         var(--sage);
  --jade-deep:    var(--sage-deep);
  --jade-soft:    var(--sage-soft);
  --frambuesa:    var(--rose-deep);
  --frambuesa-soft: var(--rose);
  --marfil:       var(--paper-warm);
  --marfil-deep:  var(--paper-deep);
  --gris:         var(--ink-soft);
  --gris-soft:    var(--ink-mute);
  --gris-line:    var(--hairline);
  --white:        var(--paper);

  /* Movimiento */
  --ease:         cubic-bezier(0.22, 0.61, 0.36, 1);
  --ease-slow:    cubic-bezier(0.16, 0.84, 0.32, 1);
  --ease-out:     cubic-bezier(0.33, 1, 0.68, 1);
  --ease-back:    cubic-bezier(0.34, 1.46, 0.64, 1);

  /* Tipografía */
  --serif:        'Cormorant Garamond', 'Cormorant', 'Noto Serif', Georgia, serif;
  --sans:         'Manrope', 'Inter', system-ui, -apple-system, sans-serif;

  /* Sombras editoriales */
  --shadow-card:  0 22px 60px -32px rgba(58,42,30,.30), 0 6px 18px -10px rgba(58,42,30,.12);
  --shadow-soft:  0 14px 38px -22px rgba(58,42,30,.22);
  --shadow-deep:  0 50px 100px -50px rgba(58,42,30,.55);

  /* Pétalos SVG decorativos */
  --petal-svg:
    url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 120'><path d='M50 4 C26 28 18 60 32 96 C40 110 60 110 68 96 C82 60 74 28 50 4 Z' fill='%238A9B82'/></svg>");
  --petal-svg-coral:
    url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 120'><path d='M50 4 C26 28 18 60 32 96 C40 110 60 110 68 96 C82 60 74 28 50 4 Z' fill='%23DD8366'/></svg>");
  --petal-svg-rose:
    url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 120'><path d='M50 4 C26 28 18 60 32 96 C40 110 60 110 68 96 C82 60 74 28 50 4 Z' fill='%23B97766'/></svg>");
  --petal-svg-sand:
    url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 120'><path d='M50 4 C26 28 18 60 32 96 C40 110 60 110 68 96 C82 60 74 28 50 4 Z' fill='%23D6C5AA'/></svg>");
}

/* ---------- Reset y base ------------------------------------------------- */
*{box-sizing:border-box}
html,body{margin:0;padding:0}
html{scroll-behavior:smooth}
body{
  font-family:var(--sans);
  font-size:17px;
  line-height:1.75;
  color:var(--ink);
  background:var(--paper);
  -webkit-font-smoothing:antialiased;
  font-feature-settings:"kern","liga","ss01","calt";
  position:relative;
  overflow-x:hidden;
}
body::before{
  content:"";
  position:fixed;inset:0;pointer-events:none;z-index:9990;
  opacity:.045;mix-blend-mode:multiply;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='220' height='220'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 0.12  0 0 0 0 0.11  0 0 0 0 0.10  0 0 0 0.9 0'/></filter><rect width='100%25' height='100%25' filter='url(%23n)'/></svg>");
}
main,section,header,footer{position:relative}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
button{font-family:inherit;cursor:pointer;border:none;background:none}
svg{display:block}

/* ---------- Pétalos por sección (no globales, sólo donde tienen sentido) */
.section-petals{
  position:absolute;inset:0;pointer-events:none;
  overflow:hidden;z-index:0;
}
.section-petals .pt{
  position:absolute;
  background-size:contain;background-repeat:no-repeat;
  opacity:.14;
  will-change:transform;
  animation:pt-bob 9s ease-in-out infinite;
  filter:saturate(.85);
}
.section-petals .pt.p-sage{background-image:var(--petal-svg)}
.section-petals .pt.p-coral{background-image:var(--petal-svg-coral)}
.section-petals .pt.p-rose{background-image:var(--petal-svg-rose)}
.section-petals .pt.p-sand{background-image:var(--petal-svg-sand)}
.section-petals .pt.faint{opacity:.08}
.section-petals .pt.strong{opacity:.22}

@keyframes pt-bob{
  0%   {transform:translate(0,0) rotate(var(--r,0deg))}
  25%  {transform:translate(28px,-22px) rotate(calc(var(--r,0deg) + 18deg))}
  50%  {transform:translate(14px,-44px) rotate(calc(var(--r,0deg) + 32deg))}
  75%  {transform:translate(-18px,-26px) rotate(calc(var(--r,0deg) + 18deg))}
  100% {transform:translate(0,0) rotate(var(--r,0deg))}
}
@keyframes pt-bob-rev{
  0%   {transform:translate(0,0) rotate(var(--r,0deg))}
  25%  {transform:translate(-26px,18px) rotate(calc(var(--r,0deg) - 20deg))}
  50%  {transform:translate(-12px,38px) rotate(calc(var(--r,0deg) - 36deg))}
  75%  {transform:translate(22px,22px) rotate(calc(var(--r,0deg) - 14deg))}
  100% {transform:translate(0,0) rotate(var(--r,0deg))}
}

/* Los hijos del data-petals usan z-index relativo — excluye decorativos absolutos */
[data-petals]{position:relative;overflow:hidden}
[data-petals] > *:not(.section-petals):not(.blob):not(.leaf){position:relative;z-index:1}

/* Pétalo field (legacy) — desactivado */
.petal-field{display:none !important}

/* ---------- Tipografía editorial ---------------------------------------- */
.serif{font-family:var(--serif);font-weight:400;letter-spacing:-.005em}
h1,h2,h3,h4,h5{
  font-family:var(--serif);font-weight:400;color:var(--ink);
  letter-spacing:-.012em;margin:0 0 .4em;line-height:1.05;
  text-wrap:balance;
  font-feature-settings:"kern","liga","onum","calt","ss01";
}
h1{font-size:clamp(48px, 7vw, 108px);letter-spacing:-.022em}
h2{font-size:clamp(36px, 4.6vw, 68px);letter-spacing:-.016em}
h3{font-size:clamp(26px, 2.6vw, 40px)}
h4{font-size:clamp(20px, 1.8vw, 26px)}
h5{font-size:clamp(15px, 1.2vw, 17px)}
p{margin:0 0 1.2em;text-wrap:pretty;max-width:64ch}

em{font-style:italic}
.italic-frambuesa,.italic-coral{font-style:italic;font-weight:400;position:relative;display:inline-block;isolation:isolate}
.italic-frambuesa{color:var(--rose-deep)}
.italic-coral{color:var(--terra-deep)}
/* highlight rosa atrás de italic-frambuesa para acento editorial */
.italic-frambuesa::after{
  content:"";position:absolute;left:-0.08em;right:-0.08em;bottom:.05em;height:.3em;
  background:rgba(197,124,121,.28);z-index:-1;border-radius:3px;pointer-events:none;
}

.eyebrow{
  font-family:var(--sans);font-size:11px;letter-spacing:.34em;
  text-transform:uppercase;color:var(--terra-deep);font-weight:500;
  margin-bottom:1.4rem;display:inline-flex;align-items:center;gap:14px;position:relative;
}
.eyebrow::before{content:"";display:inline-block;width:28px;height:1px;background:var(--terra);opacity:.7}
.eyebrow.on-dark{color:var(--coral-soft)}
.eyebrow.on-dark::before{background:var(--coral-soft);opacity:.6}
.eyebrow.rose{color:var(--rose-deep)}
.eyebrow.rose::before{background:var(--rose-deep)}
.eyebrow.sage{color:var(--sage-deep)}
.eyebrow.sage::before{background:var(--sage-deep)}

.kicker{font-family:var(--serif);font-style:italic;color:var(--rose-deep);font-size:1.2rem;line-height:1.4}
.lead{font-size:clamp(17px,1.32vw,21px);max-width:60ch;color:var(--ink-soft);line-height:1.7;font-weight:400}

.section-head{max-width:780px;margin:0 auto 80px;text-align:center}
.section-head.left{margin:0 0 64px;text-align:left}

.text-center{text-align:center}
.text-coral{color:var(--terra)}
.text-frambuesa{color:var(--rose-deep)}

.mt-32{margin-top:32px}
.mt-40{margin-top:40px}
.divider-line{height:1px;background:var(--hairline);width:60px;margin:1.5rem 0}

/* ---------- Layout ------------------------------------------------------- */
.container{max-width:1340px;margin:0 auto;padding:0 36px;position:relative}
.container-narrow{max-width:980px;margin:0 auto;padding:0 36px;position:relative}
.container-wide{max-width:1500px;margin:0 auto;padding:0 36px;position:relative}
section{padding:132px 0;position:relative}
@media (max-width:768px){section{padding:80px 0}}

.bg-white,.bg-paper{background:var(--paper)}
.bg-pure{background:#FFFFFF}
.bg-marfil{background:var(--paper-warm)}
.bg-stone{background:var(--paper-cool)}
.bg-oat{background:var(--stone)}
/* bg-rose: atmósfera verde + rosa sobre papel claro (no rosa dominante) */
.bg-rose{
  background:
    radial-gradient(55% 70% at 96% 92%, rgba(197,124,121,.22), transparent 65%),
    radial-gradient(45% 55% at 4% 12%, rgba(138,155,130,.16), transparent 70%),
    var(--paper);
  position:relative;
  overflow:hidden;
}
.bg-rose::before{
  /* Orb rosa flotante — guiño a los banners cinematográficos */
  content:"";position:absolute;
  width:340px;height:340px;border-radius:50%;
  background:radial-gradient(circle, rgba(197,124,121,.28), rgba(197,124,121,.06) 50%, transparent 75%);
  filter:blur(50px);
  right:-110px;top:25%;
  pointer-events:none;
  z-index:0;
  animation:bg-rose-drift 24s ease-in-out infinite alternate;
}
.bg-rose::after{
  /* Orb sage suave */
  content:"";position:absolute;
  width:280px;height:280px;border-radius:50%;
  background:radial-gradient(circle, rgba(138,155,130,.22), transparent 70%);
  filter:blur(48px);
  left:-90px;bottom:-60px;
  pointer-events:none;
  z-index:0;
  animation:bg-rose-drift-rev 28s ease-in-out infinite alternate;
}
@keyframes bg-rose-drift{
  0%{transform:translate(0,0) scale(1)}
  100%{transform:translate(-40px,30px) scale(1.08)}
}
@keyframes bg-rose-drift-rev{
  0%{transform:translate(0,0) scale(1)}
  100%{transform:translate(30px,-20px) scale(1.06)}
}

.bg-rose-deep{background:var(--paper-rose-d)}
.bg-jade,.bg-sage-deep{
  background:radial-gradient(ellipse at 20% 20%, #5A6753 0%, var(--sage-deep) 45%, var(--sage-darker) 100%);
  color:#E9DDC6;
}
.bg-jade h1,.bg-jade h2,.bg-jade h3,.bg-jade h4,
.bg-sage-deep h1,.bg-sage-deep h2,.bg-sage-deep h3,.bg-sage-deep h4{color:#EFE5D0}
.bg-jade p,.bg-sage-deep p,.bg-jade .lead,.bg-sage-deep .lead{color:rgba(239,229,208,.82)}

/* ---------- Reveal --------------------------------------------------- */
.reveal{opacity:0;transform:translateY(36px);transition:opacity 1.1s var(--ease-slow), transform 1.1s var(--ease-slow)}
.reveal.in{opacity:1;transform:translateY(0)}
.reveal.delay-1{transition-delay:.12s}
.reveal.delay-2{transition-delay:.24s}
.reveal.delay-3{transition-delay:.36s}
.reveal.delay-4{transition-delay:.48s}
.reveal.delay-5{transition-delay:.6s}

.letters .l{display:inline-block;opacity:0;transform:translateY(40%) rotate(2deg);transition:opacity .9s var(--ease-slow), transform .9s var(--ease-slow)}
.letters.in .l{opacity:1;transform:translateY(0) rotate(0)}
.letters .l.space{width:.3em}

.float-y{animation:float-y 6s ease-in-out infinite}
@keyframes float-y{0%,100%{transform:translateY(0)}50%{transform:translateY(-10px)}}

.pulse-soft{animation:pulse-soft 4s var(--ease-slow) infinite}
@keyframes pulse-soft{0%,100%{transform:scale(1);opacity:1}50%{transform:scale(1.04);opacity:.9}}

.draw-line{stroke-dasharray:1000;stroke-dashoffset:1000;transition:stroke-dashoffset 2.2s var(--ease-slow)}
.draw-line.in{stroke-dashoffset:0}

/* ---------- Marquesina ----------------------------------------------- */
.marquee{
  position:relative;overflow:hidden;padding:16px 0;
  border-top:1px solid var(--hairline);border-bottom:1px solid var(--hairline);
  background:var(--paper);
  mask-image:linear-gradient(90deg, transparent 0, #000 8%, #000 92%, transparent 100%);
  -webkit-mask-image:linear-gradient(90deg, transparent 0, #000 8%, #000 92%, transparent 100%);
}
.marquee-track{display:flex;gap:52px;align-items:center;width:max-content;animation:marquee 48s linear infinite}
.marquee:hover .marquee-track{animation-play-state:paused}
.marquee-item{
  font-family:var(--serif);font-size:clamp(20px, 2.3vw, 34px);
  color:var(--sage-deep);line-height:1;letter-spacing:-.01em;
  white-space:nowrap;font-style:italic;
}
.marquee-item:nth-child(3n+2){color:var(--rose-deep)}
.marquee-item .star{display:inline-block;color:var(--terra);font-style:normal;font-size:.5em;vertical-align:middle;margin:0 8px;transform:translateY(-.25em)}
.marquee-item:nth-child(3n+2) .star{color:var(--rose-deep)}
.marquee-item:nth-child(3n) .star{color:var(--sage)}
@keyframes marquee{from{transform:translateX(0)}to{transform:translateX(-50%)}}

.marquee.dark{background:linear-gradient(90deg, var(--sage-darker), var(--sage-deep), var(--sage-darker));border-color:transparent}
.marquee.dark .marquee-item{color:#EFE5D0}
.marquee.dark .marquee-item .star{color:var(--coral)}
.marquee.dark .marquee-item:nth-child(3n+2) .star{color:var(--rose-soft, #E2C0B5)}
.marquee.dark .marquee-item:nth-child(3n) .star{color:var(--sage-soft)}

/* ---------- Botones ------------------------------------------------------ */
.btn{
  display:inline-flex;align-items:center;gap:12px;
  padding:18px 34px;border-radius:999px;
  font-family:var(--sans);font-size:14px;letter-spacing:.06em;font-weight:500;
  transition:transform .5s var(--ease-out), background .35s var(--ease), color .35s var(--ease), box-shadow .5s var(--ease-out), border-color .35s var(--ease);
  white-space:nowrap;position:relative;cursor:pointer;
}
.btn-coral{background:var(--terra);color:#FFF8EE;box-shadow:0 14px 30px -14px rgba(185,101,70,.6), inset 0 1px 0 rgba(255,255,255,.18)}
.btn-coral:hover{background:var(--terra-deep);transform:translateY(-3px);box-shadow:0 22px 38px -14px rgba(185,101,70,.7), inset 0 1px 0 rgba(255,255,255,.22)}
.btn-jade-outline{border:1px solid var(--sage-deep);color:var(--sage-deep);background:transparent}
.btn-jade-outline:hover{background:var(--sage-deep);color:var(--paper);transform:translateY(-3px);box-shadow:0 16px 30px -14px rgba(74,90,72,.55)}
.btn-jade{background:var(--sage-deep);color:var(--paper);box-shadow:0 14px 30px -14px rgba(74,90,72,.5)}
.btn-jade:hover{background:var(--sage-darker);transform:translateY(-3px)}
.btn-ghost{color:var(--sage-deep);padding:12px 0;border-radius:0;letter-spacing:.04em}
.btn-ghost .arrow{transition:transform .45s var(--ease-out);display:inline-block}
.btn-ghost:hover .arrow{transform:translateX(8px)}
.btn-ghost:hover{color:var(--rose-deep)}
.btn-ghost.rose{color:var(--rose-deep)}
.btn-ghost.rose:hover{color:var(--terra-deep)}
.btn-rose{background:var(--rose-deep);color:#FFF8EE;box-shadow:0 14px 30px -14px rgba(166,96,97,.55), inset 0 1px 0 rgba(255,255,255,.18)}
.btn-rose:hover{background:#8E5247;transform:translateY(-3px);box-shadow:0 22px 38px -14px rgba(166,96,97,.7)}
.btn-rose-outline{border:1px solid var(--rose-deep);color:var(--rose-deep);background:transparent}
.btn-rose-outline:hover{background:var(--rose-deep);color:var(--paper);transform:translateY(-3px)}
.btn-block{width:100%;justify-content:center}

/* ---------- Forms -------------------------------------------------------- */
.form-stack{display:flex;flex-direction:column;gap:16px;max-width:580px;margin:0 auto}
.form-stack input,.form-stack select,.form-stack textarea{
  padding:18px 24px;border-radius:10px;border:1px solid var(--hairline-strong);
  background:var(--paper);font-family:var(--sans);font-size:16px;color:var(--ink);
  transition:border-color .3s var(--ease), box-shadow .3s var(--ease);
}
.form-stack input:focus,.form-stack select:focus,.form-stack textarea:focus{
  outline:none;border-color:var(--sage);box-shadow:0 0 0 3px rgba(138,155,130,.18);
}
.form-stack textarea{resize:vertical;min-height:140px;line-height:1.6}
.form-pill input{border-radius:999px}

/* ---------- Decorativos compat ------------------------------------------ */
.blob{position:absolute;pointer-events:none;z-index:0;opacity:.4;border-radius:50%;filter:blur(58px)}
.blob.jade{background:radial-gradient(circle, rgba(138,155,130,.45), transparent 70%)}
.blob.coral{background:radial-gradient(circle, rgba(221,131,102,.42), transparent 70%)}
.blob.frambuesa{background:radial-gradient(circle, rgba(197,124,121,.35), transparent 70%)}
.leaf{position:absolute;pointer-events:none;opacity:.4}

/* ---------- Header ------------------------------------------------------- */
.site-header{
  position:fixed;top:0;left:0;right:0;z-index:50;padding:22px 0;background:transparent;
  transition:background .55s var(--ease), backdrop-filter .55s var(--ease), box-shadow .55s var(--ease), padding .45s var(--ease), border-color .45s var(--ease);
  border-bottom:1px solid transparent;
}
.site-header.scrolled{
  background:rgba(248,245,237,.88);
  backdrop-filter:blur(18px) saturate(1.3);-webkit-backdrop-filter:blur(18px) saturate(1.3);
  box-shadow:0 10px 30px -22px rgba(58,42,30,.28);
  border-bottom-color:rgba(31,30,28,.05);padding:12px 0;
}
.site-header .container{display:flex;align-items:center;justify-content:space-between;gap:32px}
.brand{display:flex;align-items:center;gap:14px;transition:transform .4s var(--ease)}
.brand:hover{transform:translateY(-1px)}
.brand img{width:48px;height:48px;object-fit:contain;transition:transform .55s var(--ease-out)}
.brand:hover img{transform:rotate(-6deg) scale(1.04)}
.brand-name{font-family:var(--serif);font-size:22px;color:var(--ink);letter-spacing:.005em;line-height:1;font-weight:500}
.brand-tag{font-family:var(--serif);font-style:italic;font-size:12.5px;color:var(--sage-deep);letter-spacing:.06em;display:block;margin-top:3px}
/* Link "Movimientos del Alma" — manuscrito destacado en header + footer */
.nav-script{font-family:'Dancing Script',var(--serif);font-weight:600;font-size:22px;color:var(--terra-deep);line-height:1;letter-spacing:.005em;white-space:nowrap;text-decoration:none;padding:6px 14px;border-radius:999px;transition:color .3s var(--ease), transform .3s var(--ease-out), background .3s var(--ease)}
.nav-script:hover{color:var(--rose-deep);transform:translateY(-2px);background:rgba(221,131,102,.08)}
.nav-script.active{color:var(--rose-deep);background:rgba(221,131,102,.1)}
.footer-grid .nav-script.footer-script-link{display:inline-block;font-size:26px;color:var(--coral-soft,#E2C0B5);padding:0;margin-top:14px;background:transparent}
.footer-grid .nav-script.footer-script-link:hover{color:#FFF8EE;background:transparent;transform:translateX(3px)}
nav.main-nav{display:flex;gap:36px;align-items:center}
nav.main-nav a{font-size:14px;color:var(--ink-soft);font-weight:400;position:relative;padding:6px 0;transition:color .3s var(--ease);letter-spacing:.02em}
nav.main-nav a:not(.nav-cta)::after{content:"";position:absolute;left:0;right:0;bottom:-2px;height:1px;background:var(--terra);transform:scaleX(0);transform-origin:left;transition:transform .5s var(--ease-out)}
nav.main-nav a:not(.nav-cta):hover{color:var(--ink)}
nav.main-nav a:not(.nav-cta):hover::after,nav.main-nav a:not(.nav-cta).active::after{transform:scaleX(1)}
nav.main-nav a:not(.nav-cta).active{color:var(--ink)}
.nav-cta{
  position:relative;display:inline-flex;align-items:center;gap:10px;
  background:linear-gradient(180deg, #E3957A 0%, var(--terra) 55%, var(--terra-deep) 100%);
  color:#FFF8EE !important;padding:14px 32px !important;justify-content:center;border-radius:999px;
  font-size:13px;line-height:1;letter-spacing:.07em;font-weight:600;white-space:nowrap;
  text-shadow:0 1px 1px rgba(95,52,33,.35);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.32),inset 0 -1px 0 rgba(95,52,33,.25),0 2px 4px rgba(95,52,33,.12),0 12px 26px -8px rgba(185,101,70,.6);
  transition:transform .35s var(--ease), box-shadow .45s var(--ease), filter .3s var(--ease);
}
.nav-cta::after{display:none !important}
.nav-cta svg{flex-shrink:0;width:14px;height:14px;opacity:.95;transition:transform .4s var(--ease)}
.nav-cta [data-lucide]{flex-shrink:0;width:14px;height:14px;display:inline-block}
/* Placeholder mínimo antes de que Lucide hidrate los <i data-lucide> en cualquier parte */
[data-lucide]{display:inline-flex;width:1em;height:1em;line-height:0;vertical-align:middle}
.nav-cta:hover{transform:translateY(-2px);filter:brightness(1.06);box-shadow:inset 0 1px 0 rgba(255,255,255,.4),inset 0 -1px 0 rgba(95,52,33,.25),0 3px 6px rgba(95,52,33,.16),0 18px 34px -8px rgba(185,101,70,.75)}
.nav-cta:hover svg{transform:rotate(-8deg) scale(1.08)}
.menu-toggle{display:none}

/* ===========================================================================
   HERO CINEMATOGRÁFICO (index)
   =========================================================================== */
.hero-cinema{
  background:var(--paper);
  overflow:hidden;
  position:relative;
  padding:108px 0 56px;
  min-height:100vh;
  min-height:100dvh;
  display:flex;
  align-items:center;
}
.hero-cinema::before{
  content:"";position:absolute;inset:0;pointer-events:none;
  background:radial-gradient(ellipse 55% 45% at 6% 20%, rgba(138,155,130,.08), transparent 70%),radial-gradient(ellipse 45% 40% at 96% 88%, rgba(221,131,102,.05), transparent 70%);
  z-index:0;
}
.hero-cinema > .container{position:relative;z-index:3;width:100%}
.hero-cinema-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:72px;align-items:center;position:relative}
.hero-cinema-side{position:relative}
.hero-cinema .eyebrow{margin-bottom:1.2rem}
.hero-cinema h1{margin:0 0 .2em;font-size:clamp(46px, 5.8vw, 88px);letter-spacing:-.022em;line-height:1}
.hero-cinema h1 em{font-style:italic;color:var(--rose-deep);display:inline-block;position:relative}
.hero-cinema h1 em::after{content:"";position:absolute;left:0;right:0;bottom:.08em;height:.38em;background:rgba(197,124,121,.45);z-index:-1;border-radius:2px}
.hero-cinema .lead{font-size:clamp(16px,1.2vw,19px);color:var(--ink-soft);max-width:48ch;margin:1.2rem 0 1.8rem;line-height:1.6}
.hero-cinema-ctas{display:flex;flex-wrap:wrap;gap:16px}

.hero-portrait{position:relative;aspect-ratio:4/5;border-radius:4px;overflow:hidden;box-shadow:var(--shadow-deep)}
.hero-portrait img{width:100%;height:100%;object-fit:cover;object-position:center 18%;filter:saturate(.9) contrast(1.04);transition:transform 2s var(--ease-slow), filter 1s var(--ease)}
.hero-portrait:hover img{transform:scale(1.04);filter:saturate(1) contrast(1.06)}
.hero-portrait .veil{position:absolute;inset:0;background:var(--sage-deep);transform:translateY(0);animation:reveal-veil 1.8s .35s var(--ease-slow) forwards;z-index:3}
@keyframes reveal-veil{to{transform:translateY(-101%)}}
.hero-portrait::after{
  content:"";position:absolute;bottom:-26px;right:-26px;width:110px;height:110px;border-radius:50%;
  background:radial-gradient(circle at 35% 35%, #D88670 0%, var(--terra) 55%, var(--terra-deep) 100%);
  box-shadow:0 18px 40px -12px rgba(185,101,70,.6);z-index:5;
  animation:dot-breath 4s var(--ease-slow) infinite;
}
@keyframes dot-breath{
  0%,100%{transform:scale(1);box-shadow:0 18px 40px -12px rgba(185,101,70,.6)}
  50%{transform:scale(1.08);box-shadow:0 24px 48px -10px rgba(185,101,70,.78)}
}

.pillar-pills{position:absolute;display:flex;flex-direction:column;gap:12px;top:32px;left:-44px;z-index:6;pointer-events:none}
.pillar-pills .pill{pointer-events:auto}
.pillar-pills .pill{
  background:var(--paper);border:1px solid var(--hairline);
  padding:9px 18px;border-radius:999px;
  font-family:var(--serif);font-size:14.5px;font-style:italic;
  color:var(--ink);letter-spacing:.005em;
  box-shadow:var(--shadow-soft);
  display:flex;align-items:center;gap:10px;white-space:nowrap;
}
.pillar-pills .pill::before{content:"";width:7px;height:7px;border-radius:50%;background:var(--terra);flex-shrink:0;animation:pulse-soft 2.4s var(--ease-slow) infinite}
.pillar-pills .pill:nth-child(2)::before{background:var(--sage);animation-delay:.6s}
.pillar-pills .pill:nth-child(3)::before{background:var(--rose);animation-delay:1.2s}
.pillar-pills .pill:nth-child(4)::before{background:var(--sand-deep);animation-delay:1.8s}
.pillar-pills .pill:nth-child(odd){transform:translateX(-12px)}

.hero-cinema-trust{
  display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:18px;
  font-size:10.5px;letter-spacing:.22em;text-transform:uppercase;color:var(--ink-mute);
  border-top:1px solid var(--hairline);padding-top:18px;margin-top:40px;font-weight:500;
}
.hero-cinema-trust span{display:flex;align-items:center;gap:12px}
.hero-cinema-trust .dot{width:6px;height:6px;border-radius:50%;background:var(--terra);flex-shrink:0;box-shadow:0 0 0 3px rgba(185,101,70,.18)}
@media (max-width:1100px){
  .pillar-pills{position:static;flex-direction:row;flex-wrap:wrap;margin-top:32px;margin-bottom:8px;justify-content:center}
  .pillar-pills .pill:nth-child(odd){transform:none}
}
@media (max-width:900px){
  .hero-cinema-grid{grid-template-columns:1fr;gap:56px}
  .hero-cinema-trust{flex-direction:column;align-items:flex-start;margin-top:56px;gap:14px}
}

/* ===========================================================================
   Hero clásico (otras páginas) — usado por algunos legacy
   =========================================================================== */
.hero{background:var(--paper);overflow:hidden;position:relative;padding:160px 0 100px}
.hero::before{content:"";position:absolute;inset:0;pointer-events:none;background:radial-gradient(ellipse 55% 45% at 8% 22%, rgba(138,155,130,.08), transparent 70%),radial-gradient(ellipse 45% 40% at 96% 88%, rgba(221,131,102,.05), transparent 70%);z-index:0}
.hero > .container{position:relative;z-index:2}
.hero-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:96px;align-items:center}
.hero-text h1{margin-top:14px}
.hero-text .lead{font-size:clamp(17px,1.4vw,21px);color:var(--ink-soft);max-width:52ch;margin:1.8rem 0 2.6rem;line-height:1.7}
.hero-ctas{display:flex;flex-wrap:wrap;gap:16px}
.hero-image{position:relative;aspect-ratio:4/5;border-radius:4px;overflow:hidden;box-shadow:var(--shadow-deep)}
.hero-image img{width:100%;height:100%;object-fit:cover;object-position:center 18%;filter:saturate(.92) contrast(1.02);transition:transform 1.6s var(--ease-slow), filter .8s var(--ease)}
.hero-image:hover img{transform:scale(1.04);filter:saturate(1)}
.hero-image .veil{position:absolute;inset:0;background:var(--sage-deep);transform:translateY(0);animation:reveal-veil 1.8s .35s var(--ease-slow) forwards;z-index:3}
.hero-frame{position:absolute;inset:-20px;border:1px solid var(--sage);border-radius:4px;z-index:-1;opacity:.5}
.hero-frame::after{content:"";position:absolute;inset:8px;border:1px solid var(--rose-deep);border-radius:2px;opacity:.45}
.hero-image::after{content:"";position:absolute;bottom:-22px;right:-22px;width:90px;height:90px;border-radius:50%;background:radial-gradient(circle at 35% 35%, #D88670 0%, var(--terra) 55%, var(--terra-deep) 100%);box-shadow:0 18px 40px -12px rgba(185,101,70,.6);z-index:5;animation:dot-breath 4s var(--ease-slow) infinite}
.hero-trust{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:20px;font-size:11px;letter-spacing:.24em;text-transform:uppercase;color:var(--ink-mute);border-top:1px solid var(--hairline);padding-top:30px;margin-top:80px;font-weight:500}
.hero-trust span{display:flex;align-items:center;gap:12px}
.hero-trust .dot{width:6px;height:6px;border-radius:50%;background:var(--terra);flex-shrink:0;box-shadow:0 0 0 3px rgba(185,101,70,.18)}
@media (max-width:900px){.hero-grid{grid-template-columns:1fr;gap:64px}.hero-trust{flex-direction:column;align-items:flex-start;margin-top:56px;gap:14px}}

/* ===========================================================================
   Pillars (3 columnas del método)
   =========================================================================== */
.pillars{display:grid;grid-template-columns:repeat(3,1fr);gap:32px}
.pillar{position:relative;padding:48px 38px;background:var(--paper);border:1px solid var(--hairline);border-radius:8px;transition:transform .6s var(--ease-out), box-shadow .6s var(--ease-out), border-color .4s var(--ease);overflow:hidden}
.pillar:hover{transform:translateY(-8px);box-shadow:var(--shadow-card);border-color:transparent}
.pillar::before{content:"";position:absolute;top:-30%;right:-25%;width:280px;height:340px;background:var(--petal-svg);background-size:contain;background-repeat:no-repeat;opacity:.06;pointer-events:none;transition:opacity .6s var(--ease), transform .8s var(--ease-out)}
.pillar:hover::before{opacity:.14;transform:rotate(-8deg) scale(1.08)}
.pillar .pillar-icon{width:64px;height:64px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg, rgba(138,155,130,.18), rgba(221,131,102,.18));color:var(--sage-deep);margin-bottom:24px;position:relative;z-index:2}
.pillar .pillar-icon svg{width:32px;height:32px}
.pillar:nth-child(2) .pillar-icon{color:var(--terra-deep);background:linear-gradient(135deg, rgba(221,131,102,.22), rgba(197,124,121,.18))}
.pillar:nth-child(3) .pillar-icon{color:var(--rose-deep);background:linear-gradient(135deg, rgba(197,124,121,.32), rgba(216,157,155,.28))}
.pillar:nth-child(3):hover{border-color:var(--rose-soft)}
.pillar:nth-child(3) h3{position:relative}
.pillar:nth-child(3) h3::after{content:"";position:absolute;left:0;bottom:-6px;width:32px;height:2px;background:var(--rose);border-radius:2px}
.pillar h3{margin:0 0 12px;font-size:clamp(24px,2.2vw,32px);position:relative;z-index:2}
.pillar p{margin:0;font-size:15.5px;color:var(--ink-soft);line-height:1.7;position:relative;z-index:2}
.pillar .pillar-num{position:absolute;top:24px;right:32px;font-family:var(--serif);font-size:14px;color:var(--terra);font-style:italic;letter-spacing:.04em;z-index:2}
@media (max-width:900px){.pillars{grid-template-columns:1fr;gap:22px}}

/* ===========================================================================
   Mega cards (programas insignia)
   =========================================================================== */
.mega-grid{display:grid;grid-template-columns:1fr 1fr;gap:32px;margin-top:8px}
.mega-card{position:relative;border-radius:10px;overflow:hidden;background:var(--paper-warm);min-height:520px;display:flex;flex-direction:column;box-shadow:var(--shadow-card);transition:transform .6s var(--ease-out), box-shadow .6s var(--ease-out)}
.mega-card::before{
  content:"";position:absolute;top:0;left:0;right:0;height:3px;z-index:4;
  background:linear-gradient(90deg, var(--sage), var(--rose), var(--terra));
}
.mega-card:nth-child(2)::before{background:linear-gradient(90deg, var(--rose), var(--terra), var(--sage))}
.mega-card:hover{transform:translateY(-8px);box-shadow:var(--shadow-deep)}
.mega-card .mega-img{position:relative;aspect-ratio:16/10;overflow:hidden}
.mega-card .mega-img img{width:100%;height:100%;object-fit:cover;filter:saturate(.92);transition:transform 1.4s var(--ease-slow)}
.mega-card:hover .mega-img img{transform:scale(1.05)}
.mega-card .mega-img::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg, transparent 50%, rgba(31,30,28,.5) 100%)}
.mega-card .mega-body{padding:42px 40px 44px;flex:1;display:flex;flex-direction:column;position:relative}
.mega-card .mega-meta{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:16px}
.mega-card .mega-meta .pill{font-size:10.5px;letter-spacing:.18em;text-transform:uppercase;padding:6px 14px;border-radius:999px;font-weight:500}
.mega-card .mega-meta .pill.primary{background:var(--sage-deep);color:#EFE5D0}
.mega-card .mega-meta .pill.aval{background:rgba(221,131,102,.16);color:var(--terra-deep)}
.mega-card h3{margin:0 0 14px;font-size:clamp(28px,2.6vw,36px);letter-spacing:-.012em}
.mega-card p{margin:0 0 22px;font-size:15.5px;color:var(--ink-soft);line-height:1.7;max-width:44ch}
.mega-card .mega-foot{margin-top:auto;padding-top:22px;border-top:1px solid var(--hairline);display:flex;justify-content:space-between;align-items:center}
.mega-card .mega-foot .price{font-family:var(--serif);font-size:22px;color:var(--rose-deep)}
.mega-card .mega-foot .go{display:inline-flex;align-items:center;gap:10px;font-size:13px;letter-spacing:.06em;color:var(--sage-deep);font-weight:500}
.mega-card .mega-foot .go .arrow{transition:transform .4s var(--ease-out)}
.mega-card:hover .mega-foot .go .arrow{transform:translateX(6px)}
@media (max-width:900px){.mega-grid{grid-template-columns:1fr}}

/* ===========================================================================
   Trayectoria stripe
   =========================================================================== */
.tray-stripe{padding:88px 0;background:radial-gradient(ellipse at 20% 20%, #5A6753 0%, var(--sage-deep) 45%, var(--sage-darker) 100%);color:#EFE5D0;position:relative;overflow:hidden}
.tray-stripe::before{content:"";position:absolute;top:-40%;right:-15%;width:560px;height:660px;background:var(--petal-svg);background-size:contain;background-repeat:no-repeat;opacity:.08;pointer-events:none;animation:dot-breath 12s ease-in-out infinite}
.tray-stripe .tray-grid{display:grid;grid-template-columns:1.2fr 2fr;gap:80px;align-items:center;position:relative;z-index:2}
.tray-stripe h2{color:#EFE5D0;margin:0 0 16px;font-size:clamp(34px,4vw,52px)}
.tray-stripe p{color:rgba(239,229,208,.78);font-size:16px;margin:0}
.tray-stripe .stat-row{display:grid;grid-template-columns:repeat(3,1fr);gap:0;position:relative}
.tray-stripe .stat-row::before,.tray-stripe .stat-row::after{content:"";position:absolute;top:8px;bottom:8px;width:1px;background:rgba(239,229,208,.18)}
.tray-stripe .stat-row::before{left:33.333%}
.tray-stripe .stat-row::after{left:66.666%}
.tray-stripe .stat-row .s{padding:0 24px}
.tray-stripe .stat-row .s:first-child{padding-left:0}
.tray-stripe .stat-row .s:last-child{padding-right:0}
.tray-stripe .stat-row .num{font-family:var(--serif);font-size:clamp(48px,5vw,76px);color:#EFE5D0;line-height:1;display:block;margin-bottom:14px;letter-spacing:-.018em}
.tray-stripe .stat-row .num .ampersand{color:var(--coral);font-style:italic}
.tray-stripe .stat-row .s:nth-child(2) .num{color:var(--rose-soft)}
.tray-stripe .stat-row .s:nth-child(2) .num [data-counter]{color:var(--rose-soft)}
.tray-stripe .stat-row .label{font-size:12.5px;letter-spacing:.08em;color:rgba(239,229,208,.65);line-height:1.55;max-width:22ch}
@media (max-width:900px){
  .tray-stripe .tray-grid{grid-template-columns:1fr;gap:48px}
  .tray-stripe .stat-row{grid-template-columns:1fr;gap:36px}
  .tray-stripe .stat-row::before,.tray-stripe .stat-row::after{display:none}
  .tray-stripe .stat-row .s{padding:0;border-bottom:1px solid rgba(239,229,208,.14);padding-bottom:28px}
  .tray-stripe .stat-row .s:last-child{border-bottom:none}
}

/* ===========================================================================
   Quote moment
   =========================================================================== */
.quote-moment{display:grid;grid-template-columns:1fr 1.1fr;gap:96px;align-items:center}
.quote-moment .qm-img{position:relative;aspect-ratio:3/4;border-radius:6px;overflow:hidden;box-shadow:var(--shadow-card)}
.quote-moment .qm-img img{width:100%;height:100%;object-fit:cover;filter:saturate(.9);transition:transform 1.6s var(--ease-slow)}
.quote-moment .qm-img:hover img{transform:scale(1.04)}
.quote-moment blockquote{margin:0;font-family:var(--serif);font-size:clamp(28px,3.4vw,52px);line-height:1.15;color:var(--ink);font-weight:400;letter-spacing:-.014em}
.quote-moment blockquote em{color:var(--rose-deep)}
.quote-moment cite{display:block;font-style:normal;font-size:12px;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-mute);margin-top:28px;font-family:var(--sans)}
@media (max-width:900px){.quote-moment{grid-template-columns:1fr;gap:48px}}

/* ===========================================================================
   Stats / counters
   =========================================================================== */
.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:56px;align-items:start;position:relative}
.stats::before,.stats::after{content:"";position:absolute;top:0;bottom:0;width:1px;background:var(--hairline)}
.stats::before{left:33.333%}
.stats::after{left:66.666%}
.stat{padding:0 20px 0 0}
.stat:nth-child(2),.stat:nth-child(3){padding-left:24px}
.stat .num{font-family:var(--serif);font-size:clamp(52px,5.4vw,82px);color:var(--sage-deep);line-height:1;display:block;margin-bottom:14px;font-weight:400;letter-spacing:-.015em}
.stat .num .ampersand{color:var(--terra);font-style:italic}
.stat .label{font-size:13px;letter-spacing:.08em;color:var(--ink-soft);max-width:26ch;line-height:1.6}
@media (max-width:768px){.stats{grid-template-columns:1fr;gap:40px}.stats::before,.stats::after{display:none}.stat{padding:0;border-bottom:1px solid var(--hairline);padding-bottom:32px}.stat:last-child{border-bottom:none}}

/* ---------- Split, Cards, Consult, Banner, Testimonial, etc. ----------- */
.split{display:grid;grid-template-columns:1fr 1fr;gap:96px;align-items:center}
.split.right-img{grid-template-columns:1.1fr .9fr}
.split-img{position:relative;border-radius:6px;overflow:hidden;aspect-ratio:4/5;box-shadow:var(--shadow-card)}
.split-img::after{content:"";position:absolute;inset:14px;border:1px solid rgba(255,245,235,.5);pointer-events:none;border-radius:2px}
.split-img img{width:100%;height:100%;object-fit:cover;filter:saturate(.92);transition:transform 1.6s var(--ease-slow)}
.split:hover .split-img img,.split-img:hover img{transform:scale(1.04)}
@media (max-width:900px){.split,.split.right-img{grid-template-columns:1fr;gap:56px}}

.card-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:32px}
.card-grid.cols-3{grid-template-columns:repeat(3,1fr)}
.card-grid.cols-4{grid-template-columns:repeat(4,1fr)}
@media (max-width:900px){.card-grid,.card-grid.cols-3,.card-grid.cols-4{grid-template-columns:1fr;gap:24px}}

.card{background:var(--paper);border:1px solid var(--hairline);border-radius:6px;padding:38px 34px;transition:transform .65s var(--ease-out), box-shadow .65s var(--ease-out), border-color .5s var(--ease), background .5s var(--ease);display:flex;flex-direction:column;gap:16px;position:relative;overflow:hidden}
.card:hover{transform:translateY(-8px);box-shadow:var(--shadow-card);border-color:transparent}
.card .thumb{aspect-ratio:16/10;border-radius:3px;overflow:hidden;margin:-38px -34px 12px;position:relative}
.card .thumb::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg, transparent 60%, rgba(31,30,28,.22) 100%);pointer-events:none}
.card .thumb img{width:100%;height:100%;object-fit:cover;filter:saturate(.93) contrast(1.02);transition:transform 1.4s var(--ease-slow), filter .6s var(--ease)}
.card:hover .thumb img{transform:scale(1.06);filter:saturate(1)}
.card-meta{font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:var(--terra-deep);font-weight:500}
.card-meta.rose{color:var(--rose-deep)}
.card-meta.sage{color:var(--sage-deep)}
.card h3{margin:0;font-size:clamp(22px,2vw,28px);color:var(--ink)}
.card p{font-size:15.5px;color:var(--ink-soft);margin:0;line-height:1.65;max-width:42ch}
.card-footer{margin-top:auto;padding-top:20px;display:flex;justify-content:space-between;align-items:center;font-size:13px;border-top:1px solid var(--hairline)}
.card-footer .price{font-family:var(--serif);font-size:20px;color:var(--rose-deep);letter-spacing:-.005em}
.card-footer .arrow{color:var(--sage-deep);transition:transform .4s var(--ease-out);font-weight:500;letter-spacing:.02em}
.card:hover .card-footer .arrow{transform:translateX(6px);color:var(--terra-deep)}
.card.card-marfil{background:var(--paper-warm);border-color:transparent}
.card.card-marfil:hover{background:#EBE2D0}
.card.card-jade{background:linear-gradient(160deg, var(--sage-deep), var(--sage-darker));color:#EFE5D0;border:none}
.card.card-jade h3,.card.card-jade h4{color:#EFE5D0}
.card.card-jade p{color:rgba(239,229,208,.82)}
.card.card-jade .card-meta{color:var(--coral-soft)}
.card.card-pad-lg{padding:48px 42px}
.card.card-pad-xl{padding:60px 52px}
.card.card-pad-xl .thumb{margin:-60px -52px 16px}

.back-link{font-size:12px;color:var(--ink-mute);letter-spacing:.16em;text-transform:uppercase;display:inline-block;margin-bottom:28px;transition:color .3s var(--ease)}
.back-link:hover{color:var(--terra-deep)}

.consult-card{display:grid;grid-template-columns:1fr 1fr;gap:0;background:var(--paper-warm);border-radius:6px;overflow:hidden;box-shadow:var(--shadow-card);position:relative}
.consult-card::before{content:"";position:absolute;top:-40px;right:-40px;width:240px;height:280px;background:var(--petal-svg);background-size:contain;background-repeat:no-repeat;opacity:.18;pointer-events:none;z-index:2}
.consult-card .img{height:100%;position:relative;overflow:hidden}
.consult-card .img img{width:100%;height:100%;object-fit:cover;min-height:520px;filter:saturate(.92)}
.consult-card .body{padding:72px 64px;display:flex;flex-direction:column;justify-content:center;position:relative;z-index:3}
.consult-card .body h3{font-size:clamp(28px,2.6vw,38px);line-height:1.15}
@media (max-width:900px){.consult-card{grid-template-columns:1fr}.consult-card .img img{min-height:380px}.consult-card .body{padding:54px 36px}}

/* ============================================================
   Banner — diseño importado de Claude Design (verde + rosa animado)
   Estructura: .banner > [bg-base, bg-wash, orb*4, grain, vignette,
              corner, ticker, .b-content > .left + .b-divider + .b-right]
   ============================================================ */
.banner{
  position:relative;
  width:100%;
  aspect-ratio:1280/600;
  border-radius:18px;
  overflow:hidden;
  isolation:isolate;
  display:block;
  padding:0;
  margin:0;
  background:none;
  color:#f4efe2;
  box-shadow:
    0 30px 60px -20px rgba(0,0,0,.45),
    0 10px 25px -15px rgba(0,0,0,.4),
    inset 0 0 0 1px rgba(255,255,255,.04);
}
.banner .bg-base{
  position:absolute;inset:0;z-index:0;
  background:
    radial-gradient(120% 90% at 12% 18%, #4d5a48 0%, #3a4438 38%, #2c352c 70%, #232a22 100%),
    linear-gradient(135deg,#3a4438 0%,#2c352c 100%);
}
.banner .bg-wash{
  position:absolute;inset:0;z-index:1;
  background:
    radial-gradient(60% 80% at 100% 50%, rgba(201,131,136,.55), transparent 60%),
    radial-gradient(40% 60% at 85% 15%, rgba(227,183,184,.18), transparent 70%);
  mix-blend-mode:screen;
  opacity:.85;
  animation:banner-wash 14s ease-in-out infinite alternate;
}
@keyframes banner-wash{
  0%   {transform:translate3d(0,0,0) scale(1);   opacity:.75}
  100% {transform:translate3d(-3%,2%,0) scale(1.08); opacity:.95}
}

.banner .orb{
  position:absolute;border-radius:50%;
  filter:blur(40px);mix-blend-mode:screen;
  z-index:1;pointer-events:none;
}
.banner .orb.green-1{
  width:520px;height:520px;left:-120px;top:-160px;
  background:radial-gradient(circle at 35% 35%, rgba(176,189,168,.55), rgba(138,154,130,.1) 55%, transparent 75%);
  animation:banner-drift1 18s ease-in-out infinite;
}
.banner .orb.rose-1{
  width:460px;height:460px;right:-100px;bottom:-140px;
  background:radial-gradient(circle at 50% 50%, rgba(227,183,184,.55), rgba(201,131,136,.15) 55%, transparent 75%);
  animation:banner-drift2 22s ease-in-out infinite;
}
.banner .orb.rose-2{
  width:300px;height:300px;left:55%;top:55%;
  background:radial-gradient(circle at 50% 50%, rgba(168,94,98,.45), transparent 70%);
  animation:banner-drift3 26s ease-in-out infinite;
}
.banner .orb.green-2{
  width:240px;height:240px;right:30%;top:-60px;
  background:radial-gradient(circle at 50% 50%, rgba(138,154,130,.35), transparent 70%);
  animation:banner-drift4 20s ease-in-out infinite;
}
@keyframes banner-drift1{0%,100%{transform:translate(0,0) scale(1)}50%{transform:translate(40px,30px) scale(1.08)}}
@keyframes banner-drift2{0%,100%{transform:translate(0,0) scale(1)}50%{transform:translate(-50px,-40px) scale(1.1)}}
@keyframes banner-drift3{0%,100%{transform:translate(0,0) scale(1)}50%{transform:translate(60px,-30px) scale(.95)}}
@keyframes banner-drift4{0%,100%{transform:translate(0,0) scale(1)}50%{transform:translate(-30px,40px) scale(1.1)}}

.banner .grain{
  position:absolute;inset:-50%;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='240' height='240'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 .35 0'/></filter><rect width='100%25' height='100%25' filter='url(%23n)'/></svg>");
  opacity:.32;
  mix-blend-mode:overlay;
  pointer-events:none;
  z-index:2;
}
.banner .vignette{
  position:absolute;inset:0;
  background:radial-gradient(120% 90% at 50% 50%, transparent 55%, rgba(0,0,0,.45) 100%);
  z-index:3;pointer-events:none;
}

.banner .b-content{
  position:relative;z-index:4;height:100%;
  display:grid;grid-template-columns:1.15fr 1px 1fr;
  align-items:center;padding:64px 72px;gap:64px;
}

.banner .b-eyebrow{
  display:flex;align-items:center;gap:14px;
  font-family:var(--sans);
  font-size:11px;letter-spacing:.22em;text-transform:uppercase;
  color:rgba(244,239,226,.78);
  margin:0 0 26px;
  opacity:0;animation:banner-rise .9s .2s ease-out forwards;
}
.banner .b-eyebrow::before{
  content:"";width:34px;height:1px;background:rgba(244,239,226,.55);
}
.banner .b-eyebrow .pulse{
  width:7px;height:7px;border-radius:50%;
  background:#b9684e;
  box-shadow:0 0 0 0 rgba(185,104,78,.6);
  animation:banner-pulse 2.6s ease-out infinite;
  display:inline-block;margin-right:-4px;
}
@keyframes banner-pulse{
  0%{box-shadow:0 0 0 0 rgba(185,104,78,.55)}
  70%{box-shadow:0 0 0 14px rgba(185,104,78,0)}
  100%{box-shadow:0 0 0 0 rgba(185,104,78,0)}
}

.banner h1,.banner h2{
  font-family:var(--serif);
  font-weight:500;
  font-size:clamp(40px,5.4vw,72px);
  line-height:1.02;
  letter-spacing:-.012em;
  color:#efe7d8;
  margin:0 0 28px;
  text-wrap:pretty;
  opacity:0;
  animation:banner-rise 1s .35s ease-out forwards;
}
.banner h1 .accent,.banner h2 .accent{
  font-style:italic;font-weight:400;
  background:linear-gradient(95deg, #e3b7b8 0%, #c98388 55%, #d8a3a6 100%);
  -webkit-background-clip:text;background-clip:text;color:transparent;
}
.banner h1 .b-leaf,.banner h2 .b-leaf{
  display:inline-block;transform-origin:50% 80%;
  animation:banner-sway 7s ease-in-out infinite;
}
@keyframes banner-sway{0%,100%{transform:rotate(-1.2deg)}50%{transform:rotate(1.2deg)}}

.banner .b-lede,.banner .lede{
  font-size:15.5px;line-height:1.65;
  color:rgba(244,239,226,.78);
  max-width:46ch;margin:0;
  opacity:0;animation:banner-rise 1s .5s ease-out forwards;
}
@keyframes banner-rise{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}

.banner .b-divider{
  width:1px;height:78%;
  background:linear-gradient(to bottom, transparent 0%, rgba(244,239,226,.18) 18%, rgba(244,239,226,.18) 82%, transparent 100%);
  position:relative;justify-self:center;
}
.banner .b-divider::after{
  content:"";position:absolute;left:50%;top:50%;
  width:18px;height:18px;border-radius:50%;
  background:radial-gradient(circle at 35% 35%, #d18a72, #b9684e 60%, #7d3c2a 100%);
  box-shadow:0 0 24px rgba(185,104,78,.55), inset 0 -2px 4px rgba(0,0,0,.25);
  transform:translate(-50%,-50%);
  animation:banner-dot 4.8s ease-in-out infinite;
}
@keyframes banner-dot{
  0%,100%{transform:translate(-50%,-50%) scale(1)}
  50%{transform:translate(-50%,-50%) scale(1.18)}
}

.banner .b-right{
  display:flex;flex-direction:column;
  align-items:flex-start;gap:24px;
  opacity:0;animation:banner-rise 1s .65s ease-out forwards;
}
.banner .b-meta{
  display:flex;flex-direction:column;gap:10px;
  color:rgba(244,239,226,.7);
  font-size:13px;letter-spacing:.02em;
}
.banner .b-meta-row{display:flex;align-items:center;gap:10px}
.banner .b-meta-row svg{flex:0 0 auto;opacity:.85}
.banner .b-meta-row b{color:#efe7d8;font-weight:500}

.banner .b-cta{
  position:relative;display:inline-flex;align-items:center;gap:12px;
  padding:18px 30px;border-radius:999px;border:none;cursor:pointer;
  font-family:var(--sans);font-size:15px;font-weight:500;
  color:#fff;letter-spacing:.01em;text-decoration:none;white-space:nowrap;
  background:linear-gradient(135deg, #c47379 0%, #a85e62 55%, #8a4a52 100%);
  box-shadow:
    0 14px 30px -10px rgba(168,94,98,.55),
    0 2px 0 0 rgba(255,255,255,.08) inset,
    0 -2px 0 0 rgba(0,0,0,.1) inset;
  transition:transform .35s cubic-bezier(.2,.7,.2,1), box-shadow .35s;
  overflow:hidden;
}
.banner .b-cta::before{
  content:"";position:absolute;inset:0;
  background:linear-gradient(120deg, transparent 30%, rgba(255,255,255,.22) 50%, transparent 70%);
  transform:translateX(-120%);
  transition:transform .9s ease;
}
.banner .b-cta:hover{
  transform:translateY(-2px);
  box-shadow:0 22px 40px -12px rgba(168,94,98,.65), 0 2px 0 0 rgba(255,255,255,.1) inset;
}
.banner .b-cta:hover::before{transform:translateX(120%)}
.banner .b-cta .arrow{display:inline-block;transition:transform .35s cubic-bezier(.2,.7,.2,1)}
.banner .b-cta:hover .arrow{transform:translateX(4px)}

.banner .b-secondary{
  font-size:13px;color:rgba(244,239,226,.7);
  text-decoration:none;border-bottom:1px solid rgba(244,239,226,.25);
  padding-bottom:2px;
  transition:color .25s, border-color .25s;
}
.banner .b-secondary:hover{color:#efe7d8;border-color:#efe7d8}

.banner .b-corner{
  position:absolute;top:26px;left:30px;z-index:5;
  display:flex;align-items:center;gap:10px;
  color:rgba(244,239,226,.78);
  font-size:11px;letter-spacing:.22em;text-transform:uppercase;
}
.banner .b-corner img{
  width:30px;height:30px;opacity:.95;
  filter:drop-shadow(0 2px 6px rgba(0,0,0,.3));
}

.banner .b-ticker{
  position:absolute;bottom:24px;right:32px;z-index:5;
  display:flex;align-items:center;gap:10px;
  color:rgba(244,239,226,.6);
  font-size:11px;letter-spacing:.18em;text-transform:uppercase;
}
.banner .b-ticker .dot{
  width:6px;height:6px;border-radius:50%;
  background:#a8c29a;
  box-shadow:0 0 0 0 rgba(168,194,154,.5);
  animation:banner-pulseGreen 2.2s ease-out infinite;
}
@keyframes banner-pulseGreen{
  0%{box-shadow:0 0 0 0 rgba(168,194,154,.55)}
  70%{box-shadow:0 0 0 10px rgba(168,194,154,0)}
  100%{box-shadow:0 0 0 0 rgba(168,194,154,0)}
}

@media (max-width:900px){
  .banner{aspect-ratio:auto;min-height:560px;border-radius:14px}
  .banner .b-content{
    grid-template-columns:1fr;grid-template-rows:auto auto;
    padding:80px 32px 48px;gap:32px;
  }
  .banner .b-divider{display:none}
  .banner h1,.banner h2{font-size:clamp(36px,8vw,52px)}
  .banner .b-right{margin-top:8px}
  .banner .b-ticker{display:none}
}

/* ============================================================
   Banner 2 — Trayectoria (importado de Claude Design)
   Mismas animaciones verde+rosa, layout con 3 stats count-up
   y arco giratorio decorativo a la derecha. Container queries.
   ============================================================ */
.tray-banner{
  container-type:inline-size;
  container-name:tray;
  position:relative;
  width:100%;
  height:clamp(280px, 28vh, 340px);
  min-height:0;
  border-radius:18px;
  overflow:hidden;
  isolation:isolate;
  color:#f4efe2;
  box-shadow:
    0 30px 60px -20px rgba(0,0,0,.45),
    0 10px 25px -15px rgba(0,0,0,.4),
    inset 0 0 0 1px rgba(255,255,255,.04);
}
/* Variante full-bleed: el banner abarca el 100% del viewport */
.tray-banner.bleed{
  border-radius:0;
  box-shadow:none;
  margin:0;
}
.tray-banner .bg-base{
  position:absolute;inset:0;z-index:0;
  background:
    radial-gradient(80% 120% at 10% 50%, #4d5a48 0%, #3a4438 45%, #2d362c 100%),
    linear-gradient(135deg,#3a4438 0%,#2c352c 100%);
}
.tray-banner .bg-wash{
  position:absolute;inset:0;z-index:1;
  background:
    radial-gradient(55% 130% at 100% 50%, rgba(201,131,136,.45), transparent 65%),
    radial-gradient(30% 70% at 88% 12%, rgba(227,183,184,.16), transparent 70%);
  mix-blend-mode:screen;
  animation:tray-wash 16s ease-in-out infinite alternate;
}
@keyframes tray-wash{0%{transform:translate3d(0,0,0) scale(1)}100%{transform:translate3d(-2%,2%,0) scale(1.06)}}

.tray-banner .orb{
  position:absolute;border-radius:50%;
  filter:blur(50px);mix-blend-mode:screen;
  z-index:1;pointer-events:none;
}
.tray-banner .orb.g1{width:520px;height:520px;left:-150px;top:-200px;
  background:radial-gradient(circle at 40% 40%, rgba(176,189,168,.45), transparent 70%);
  animation:tray-drift1 22s ease-in-out infinite}
.tray-banner .orb.g2{width:360px;height:360px;left:35%;bottom:-180px;
  background:radial-gradient(circle at 50% 50%, rgba(138,154,130,.35), transparent 70%);
  animation:tray-drift2 26s ease-in-out infinite}
.tray-banner .orb.r1{width:520px;height:520px;right:-150px;top:-100px;
  background:radial-gradient(circle at 50% 50%, rgba(227,183,184,.45), rgba(201,131,136,.12) 50%, transparent 75%);
  animation:tray-drift3 24s ease-in-out infinite}
.tray-banner .orb.r2{width:280px;height:280px;right:6%;bottom:-120px;
  background:radial-gradient(circle at 50% 50%, rgba(168,94,98,.4), transparent 70%);
  animation:tray-drift4 20s ease-in-out infinite}
@keyframes tray-drift1{0%,100%{transform:translate(0,0)}50%{transform:translate(40px,30px)}}
@keyframes tray-drift2{0%,100%{transform:translate(0,0)}50%{transform:translate(-50px,-30px)}}
@keyframes tray-drift3{0%,100%{transform:translate(0,0)}50%{transform:translate(-40px,30px)}}
@keyframes tray-drift4{0%,100%{transform:translate(0,0)}50%{transform:translate(30px,-30px)}}

.tray-banner .arc{
  position:absolute;
  right:-220px;top:50%;transform:translateY(-50%);
  width:780px;height:780px;border-radius:50%;
  border:1px solid rgba(244,239,226,.07);
  z-index:2;
  background:
    radial-gradient(circle at 30% 30%, rgba(176,189,168,.08), transparent 60%),
    radial-gradient(circle at 70% 70%, rgba(201,131,136,.06), transparent 60%);
  animation:tray-rotate 60s linear infinite;
}
.tray-banner .arc::before{content:"";position:absolute;inset:60px;border-radius:50%;border:1px solid rgba(244,239,226,.05)}
.tray-banner .arc::after{content:"";position:absolute;inset:140px;border-radius:50%;border:1px dashed rgba(244,239,226,.06)}
@keyframes tray-rotate{to{transform:translateY(-50%) rotate(360deg)}}

.tray-banner .grain{
  position:absolute;inset:-50%;z-index:3;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='240' height='240'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 .3 0'/></filter><rect width='100%25' height='100%25' filter='url(%23n)'/></svg>");
  opacity:.28;mix-blend-mode:overlay;pointer-events:none;
}
.tray-banner .vignette{
  position:absolute;inset:0;z-index:3;
  background:radial-gradient(120% 90% at 50% 50%, transparent 60%, rgba(0,0,0,.45) 100%);
  pointer-events:none;
}

.tray-banner .t-content{
  position:relative;z-index:4;height:100%;
  display:grid;
  grid-template-columns:1.5fr 1fr 1fr 1fr;
  align-items:center;
  align-content:center;
  padding:18px 60px;gap:32px;
}
.tray-banner .t-left{max-width:560px}
.tray-banner .t-eyebrow{
  display:flex;align-items:center;gap:12px;
  font-family:var(--sans);
  font-size:10.5px;letter-spacing:.26em;text-transform:uppercase;
  color:#c98388;
  margin:0 0 8px;
  opacity:0;animation:tray-rise .9s .15s ease-out forwards;
}
.tray-banner .t-eyebrow::before{content:"";width:24px;height:1px;background:#c98388;opacity:.7}

.tray-banner h1,.tray-banner h2{
  font-family:var(--serif);font-weight:500;
  font-size:clamp(22px,1.7vw,30px);
  line-height:1.1;letter-spacing:-.01em;
  color:#efe7d8;margin:0 0 8px;text-wrap:pretty;max-width:28ch;
  opacity:0;animation:tray-rise 1s .3s ease-out forwards;
}
.tray-banner h1 .ital,.tray-banner h2 .ital{
  font-style:italic;font-weight:400;
  background:linear-gradient(95deg, #e3b7b8 0%, #c98388 60%, #d8a3a6 100%);
  -webkit-background-clip:text;background-clip:text;color:transparent;
}

.tray-banner .t-lede{
  font-size:12px;line-height:1.45;
  color:rgba(244,239,226,.7);
  max-width:46ch;margin:0;
  opacity:0;animation:tray-rise 1s .45s ease-out forwards;
}
@keyframes tray-rise{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}

.tray-banner .t-stat{
  position:relative;padding-left:20px;
  opacity:0;animation:tray-rise 1s ease-out forwards;
}
.tray-banner .t-stat:nth-of-type(1){animation-delay:.55s}
.tray-banner .t-stat:nth-of-type(2){animation-delay:.7s}
.tray-banner .t-stat:nth-of-type(3){animation-delay:.85s}
.tray-banner .t-stat::before{
  content:"";position:absolute;left:0;top:8px;bottom:14px;width:1px;
  background:linear-gradient(to bottom, transparent 0%, rgba(244,239,226,.22) 12%, rgba(244,239,226,.22) 88%, transparent 100%);
}
.tray-banner .t-stat .num{
  font-family:var(--serif);font-weight:500;
  font-feature-settings:"lnum","onum" 0;
  font-size:clamp(34px,2.6vw,46px);line-height:1;letter-spacing:-.015em;
  background:linear-gradient(160deg, #f0c8ca 0%, #c98388 55%, #b2696e 100%);
  -webkit-background-clip:text;background-clip:text;color:transparent;
  display:inline-block;margin-bottom:4px;
}
.tray-banner .t-stat .label{font-size:11.5px;line-height:1.4;color:rgba(244,239,226,.7);letter-spacing:.01em;max-width:22ch}
.tray-banner .t-stat .num .pre{font-style:italic;font-weight:400;margin-right:2px;opacity:.95}
.tray-banner .t-stat .label{
  font-size:13px;line-height:1.5;
  color:rgba(244,239,226,.7);letter-spacing:.01em;max-width:22ch;
}
.tray-banner .t-stat .label b{color:#efe7d8;font-weight:500}

.tray-banner .t-footnote{
  position:absolute;top:24px;right:36px;z-index:5;
  color:rgba(244,239,226,.55);
  font-size:11px;letter-spacing:.18em;text-transform:uppercase;
  display:flex;align-items:center;gap:10px;
}
.tray-banner .t-footnote .pulse{
  width:6px;height:6px;border-radius:50%;background:#a8c29a;
  box-shadow:0 0 0 0 rgba(168,194,154,.55);
  animation:tray-pg 2.2s ease-out infinite;
}
@keyframes tray-pg{
  0%{box-shadow:0 0 0 0 rgba(168,194,154,.55)}
  70%{box-shadow:0 0 0 10px rgba(168,194,154,0)}
  100%{box-shadow:0 0 0 0 rgba(168,194,154,0)}
}

/* Container queries — responsive del banner según su propio ancho */
/* Responsive con @media — alto fijo en desktop, libre en mobile/tablet */
@media (max-width: 1700px){
  .tray-banner .t-content{grid-template-columns:1.25fr 1fr 1fr 1fr;padding:18px 48px;gap:28px}
  .tray-banner .arc{right:-260px;width:480px;height:480px}
  .tray-banner .t-footnote{top:14px;right:22px}
}
@media (max-width: 1280px){
  .tray-banner{height:auto !important;min-height:0 !important}
  .tray-banner .t-content{
    height:auto;
    grid-template-columns:1fr 1fr 1fr;grid-template-rows:auto auto;
    padding:32px 44px;gap:24px 32px;
    align-content:start;align-items:start;
  }
  .tray-banner .t-left{grid-column:1 / -1;max-width:none}
  .tray-banner h1,.tray-banner h2{max-width:none;font-size:clamp(24px,3.2vw,34px)}
  .tray-banner .t-lede{max-width:64ch}
  .tray-banner .arc{right:-340px;width:420px;height:420px;opacity:.6}
}
@media (max-width: 820px){
  .tray-banner{height:auto !important;min-height:0 !important}
  .tray-banner .t-content{grid-template-columns:1fr 1fr;padding:28px;gap:20px 24px;align-content:start;align-items:start}
  .tray-banner .t-stat{padding-left:18px}
  .tray-banner .t-stat .num{font-size:clamp(36px,6vw,52px)}
  .tray-banner .arc{display:none}
  .tray-banner .t-footnote{display:none}
}
@media (max-width: 520px){
  .tray-banner{height:auto !important;min-height:0 !important}
  .tray-banner .t-content{grid-template-columns:1fr;padding:24px 22px;gap:18px;align-content:start;align-items:start}
  .tray-banner h1,.tray-banner h2{font-size:clamp(22px,6vw,28px);margin-bottom:6px}
  .tray-banner .t-lede{font-size:13px}
  .tray-banner .t-stat{padding-left:0;padding-top:14px}
  .tray-banner .t-stat::before{left:0;top:0;bottom:auto;width:42px;height:1px;background:linear-gradient(to right, rgba(244,239,226,.3), transparent)}
  .tray-banner .t-stat .num{font-size:clamp(34px,9vw,46px);margin-bottom:4px}
}

.testimonial{display:grid;grid-template-columns:160px 1fr;gap:48px;align-items:center;background:var(--paper-rose);padding:64px;border-radius:6px;position:relative}
.testimonial::before{content:"\201C";position:absolute;top:18px;left:32px;font-family:var(--serif);font-size:120px;color:var(--terra);opacity:.18;line-height:1;font-style:italic}
.testimonial .ph{width:160px;height:160px;border-radius:50%;background:linear-gradient(135deg, var(--sand) 0%, var(--terra-soft) 50%, var(--rose) 100%);display:flex;align-items:center;justify-content:center;font-family:var(--serif);font-size:48px;color:#FFF8EE;box-shadow:0 14px 28px -10px rgba(185,101,70,.4)}
.testimonial blockquote{margin:0;font-family:var(--serif);font-size:clamp(22px,2.2vw,30px);color:var(--ink);line-height:1.45;font-style:italic;font-weight:400}
.testimonial cite{display:block;font-style:normal;font-size:12px;letter-spacing:.16em;color:var(--ink-mute);margin-top:24px;text-transform:uppercase;font-family:var(--sans);font-weight:500}
.testimonial cite span{color:var(--rose-deep)}
.testimonial-controls{display:flex;justify-content:center;gap:12px;margin-top:36px}
.dot-btn{width:8px;height:8px;border-radius:50%;background:var(--hairline-strong);transition:all .4s var(--ease);cursor:pointer;padding:0}
.dot-btn.active{background:var(--terra);width:36px;border-radius:8px}
.t-slide{display:none}
.t-slide.active{display:grid;animation:fade-up .8s var(--ease-slow)}
@keyframes fade-up{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}
@media (max-width:768px){.testimonial{grid-template-columns:1fr;text-align:center;padding:48px 32px}.testimonial::before{left:20px;top:14px;font-size:80px}.testimonial .ph{margin:0 auto}}

.newsletter{background:radial-gradient(circle at 90% 10%, rgba(197,124,121,.18), transparent 50%),radial-gradient(circle at 5% 95%, rgba(138,155,130,.14), transparent 50%),var(--paper-rose);border-radius:6px;padding:80px 60px;text-align:center;position:relative;overflow:hidden}
.newsletter::before{content:"";position:absolute;inset:18px;border:1px solid rgba(166,96,97,.22);border-radius:3px;pointer-events:none}
.newsletter form{display:flex;gap:14px;max-width:560px;margin:36px auto 0;position:relative;z-index:2}
.newsletter input{flex:1;padding:18px 26px;border:1px solid var(--hairline-strong);background:var(--paper);border-radius:999px;font-family:var(--sans);font-size:15px;color:var(--ink);transition:border-color .3s var(--ease), box-shadow .3s var(--ease)}
.newsletter input:focus{outline:none;border-color:var(--sage);box-shadow:0 0 0 3px rgba(138,155,130,.18)}
@media (max-width:600px){.newsletter form{flex-direction:column}}

/* ---------- Footer (compacto) ------------------------------------------ */
.site-footer{background:linear-gradient(180deg, var(--sage-darker) 0%, #2A332A 100%);color:#EFE5D0;padding:48px 0 20px;position:relative;overflow:hidden}
.site-footer::before{
  content:"";position:absolute;top:-25%;left:-10%;width:340px;height:400px;
  background:var(--petal-svg-rose) center/contain no-repeat;
  opacity:.14;pointer-events:none;
  animation:dot-breath 16s ease-in-out infinite;
  /* difumina los bordes para evitar la "caja" recortada por overflow:hidden */
  -webkit-mask-image:radial-gradient(ellipse at center, #000 35%, transparent 78%);
          mask-image:radial-gradient(ellipse at center, #000 35%, transparent 78%);
}
.site-footer::after{
  content:"";position:absolute;bottom:-30%;right:-8%;width:340px;height:400px;
  background:var(--petal-svg) center/contain no-repeat;
  opacity:.12;pointer-events:none;transform:rotate(180deg);
  -webkit-mask-image:radial-gradient(ellipse at center, #000 35%, transparent 78%);
          mask-image:radial-gradient(ellipse at center, #000 35%, transparent 78%);
}
.footer-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr 1.3fr;gap:32px;margin-bottom:28px;position:relative;z-index:2}
.footer-grid h5{font-family:var(--sans);font-size:10.5px;letter-spacing:.22em;text-transform:uppercase;color:rgba(239,229,208,.5);margin:0 0 10px;font-weight:500}
.footer-grid a{color:rgba(239,229,208,.82);font-size:13px;display:flex;align-items:center;gap:10px;padding:4px 0;line-height:1.5;transition:color .3s var(--ease), transform .3s var(--ease)}
.footer-grid a:hover{color:var(--coral-soft);transform:translateX(3px)}
.footer-grid a svg{width:14px;height:14px;flex-shrink:0;opacity:.75;transition:opacity .3s var(--ease), color .3s var(--ease)}
.footer-grid a:hover svg{opacity:1;color:var(--coral-soft)}
.footer-grid > div > h5 + a:first-of-type{margin-top:4px}
.footer-brand .logo-line{display:flex;align-items:center;gap:12px;margin-bottom:10px}
.footer-brand img{width:40px;height:40px;background:transparent;border-radius:50%;padding:2px;filter:brightness(1.15)}
.footer-brand .name{font-family:var(--serif);font-size:20px;color:#EFE5D0;letter-spacing:.005em;line-height:1}
.footer-brand p{color:rgba(239,229,208,.65);font-size:13px;font-style:italic;font-family:var(--serif);line-height:1.5;max-width:34ch;margin:0}
.footer-newsletter input{width:100%;padding:10px 18px;border-radius:999px;background:rgba(239,229,208,.08);border:1px solid rgba(239,229,208,.18);color:#EFE5D0;font-family:var(--sans);font-size:13px;margin-bottom:8px;transition:border-color .3s var(--ease), background .3s var(--ease)}
.footer-newsletter input::placeholder{color:rgba(239,229,208,.4)}
.footer-newsletter input:focus{outline:none;border-color:var(--coral);background:rgba(239,229,208,.12)}
.footer-newsletter p{color:rgba(239,229,208,.65);font-size:13px;margin:0 0 10px;line-height:1.5}
.footer-newsletter .btn{padding:10px 22px;font-size:12.5px}
.footer-newsletter .btn:disabled{opacity:.7;cursor:wait}

/* Honeypot: invisible para humanos, pero accesible para bots */
.hp-field{
  position:absolute !important;
  left:-9999px !important;
  width:1px !important;height:1px !important;
  opacity:0 !important;pointer-events:none !important;
  margin:0 !important;padding:0 !important;border:0 !important;
}

/* Mensaje de estado de formularios (ok / error) */
.form-status{
  font-size:12.5px;
  margin:8px 0 0;
  line-height:1.4;
  min-height:16px;
  color:rgba(239,229,208,.7);
  transition:color .3s var(--ease);
}
.form-status.ok{color:#B3D3B6}
.form-status.err{color:#E8A793}
/* En fondos claros (form fuera del footer) */
.bg-white .form-status,
.bg-marfil .form-status,
.contact-form-card .form-status{color:var(--gris-soft)}
.bg-white .form-status.ok,
.bg-marfil .form-status.ok,
.contact-form-card .form-status.ok{color:#3F7B5F}
.bg-white .form-status.err,
.bg-marfil .form-status.err,
.contact-form-card .form-status.err{color:#B05540}
.footer-addr{display:flex;align-items:flex-start;gap:10px;margin-top:12px;font-size:12px;color:rgba(239,229,208,.55);line-height:1.55}
.footer-addr svg{width:14px;height:14px;flex-shrink:0;margin-top:2px;opacity:.7}

/* Social row (footer brand column) — override del .footer-grid a base */
.footer-grid .social-row{display:flex;gap:10px;margin-top:18px}
.footer-grid .social-row a{
  width:38px;height:38px;padding:0;border-radius:50%;
  display:inline-flex;align-items:center;justify-content:center;gap:0;
  background:rgba(239,229,208,.06);
  border:1px solid rgba(239,229,208,.16);
  color:rgba(239,229,208,.82);
  transition:transform .35s var(--ease-out), background .3s var(--ease), border-color .3s var(--ease), color .3s var(--ease), box-shadow .35s var(--ease);
}
.footer-grid .social-row a:hover{
  background:var(--terra);
  border-color:var(--terra);
  color:#FFF8EE;
  transform:translateY(-3px);
  box-shadow:0 12px 24px -8px rgba(185,101,70,.6);
}
.footer-grid .social-row a svg{width:17px;height:17px;opacity:1}
.footer-grid .social-row a:hover svg{color:inherit}
.footer-legal{display:flex;gap:22px;flex-wrap:wrap}
.footer-bottom{border-top:1px solid rgba(239,229,208,.1);padding-top:16px;display:flex;justify-content:space-between;flex-wrap:wrap;gap:10px;font-size:11px;color:rgba(239,229,208,.5);position:relative;z-index:2;letter-spacing:.04em}
.footer-bottom a{color:rgba(239,229,208,.55)}
.footer-bottom a:hover{color:var(--coral-soft)}
@media (max-width:900px){.footer-grid{grid-template-columns:1fr 1fr;gap:28px;margin-bottom:24px}}
@media (max-width:600px){.footer-grid{grid-template-columns:1fr;gap:24px}.site-footer{padding:36px 0 18px}}

/* WhatsApp / Cursor */
.wa-float{position:fixed;bottom:30px;right:30px;z-index:60;width:62px;height:62px;border-radius:50%;background:var(--terra);color:#FFF8EE;display:flex;align-items:center;justify-content:center;box-shadow:0 18px 40px -12px rgba(185,101,70,.7), inset 0 1px 0 rgba(255,255,255,.18);transition:transform .4s var(--ease-out), background .35s var(--ease)}
.wa-float:hover{transform:scale(1.1) translateY(-3px);background:var(--terra-deep)}
.wa-float::after{content:"";position:absolute;inset:-7px;border-radius:50%;border:1.5px solid var(--terra);opacity:0;animation:wa-pulse 2.6s var(--ease-slow) infinite}
@keyframes wa-pulse{0%{transform:scale(.96);opacity:.7}100%{transform:scale(1.5);opacity:0}}

.cb-cursor{position:fixed;top:0;left:0;width:14px;height:14px;border-radius:50%;background:var(--terra);pointer-events:none;z-index:9999;transform:translate(-9999px,-9999px);transition:width .3s var(--ease), height .3s var(--ease), background .3s var(--ease), opacity .3s ease;mix-blend-mode:multiply;opacity:0;will-change:transform}
.cb-cursor.show{opacity:.6}
.cb-cursor.hover{width:42px;height:42px;background:var(--sage);opacity:.4}
@media (hover: none),(pointer: coarse){.cb-cursor{display:none}}

/* Page hero (inner) */
.page-hero{background:var(--paper);padding:220px 0 110px;position:relative;overflow:hidden}
.page-hero::before{content:"";position:absolute;inset:0;pointer-events:none;background:radial-gradient(ellipse 55% 45% at 10% 22%, rgba(138,155,130,.07), transparent 70%),radial-gradient(ellipse 45% 40% at 96% 92%, rgba(221,131,102,.05), transparent 70%)}
.page-hero::after{content:"";position:absolute;top:-8%;right:-10%;width:560px;height:660px;background:var(--petal-svg);background-size:contain;background-repeat:no-repeat;opacity:.12;animation:dot-breath 18s ease-in-out infinite}
.page-hero > .container{position:relative;z-index:2}
.page-hero h1{font-size:clamp(48px,5.6vw,92px);margin-bottom:28px}
.page-hero .lead{font-size:clamp(17px,1.32vw,21px);max-width:62ch;color:var(--ink-soft);line-height:1.7}

/* Checklist / Steps / Timeline / Accordion / Modules / Seal */
.checklist{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:20px}
.checklist li{display:grid;grid-template-columns:28px 1fr;gap:20px;align-items:flex-start;padding-bottom:20px;border-bottom:1px solid var(--hairline);font-size:16.5px;line-height:1.65;color:var(--ink-soft)}
.checklist li:last-child{border-bottom:none}
.checklist .ck{width:28px;height:28px;border-radius:50%;background:rgba(221,131,102,.16);display:flex;align-items:center;justify-content:center;color:var(--terra-deep);font-size:13px;font-weight:600;margin-top:1px;transition:transform .4s var(--ease-out), background .3s var(--ease)}
.checklist li:hover .ck{transform:scale(1.08);background:rgba(221,131,102,.24)}

.steps{display:grid;grid-template-columns:repeat(4,1fr);gap:40px;counter-reset:step}
.step{position:relative;padding-top:42px;counter-increment:step}
.step::before{content:counter(step,decimal-leading-zero);font-family:var(--serif);font-size:68px;color:var(--terra);opacity:.5;position:absolute;top:-22px;left:0;line-height:1;letter-spacing:-.02em}
.step h4{margin:0 0 10px;font-size:22px;color:var(--ink)}
.step p{font-size:14.5px;line-height:1.65;color:var(--ink-soft)}
@media (max-width:900px){.steps{grid-template-columns:repeat(2,1fr);gap:32px}}
@media (max-width:560px){.steps{grid-template-columns:1fr;gap:28px}}

.timeline{position:relative;padding:20px 0;max-width:760px;margin:0 auto}
.timeline.reveal{opacity:1;transform:none}
.timeline::before{content:"";position:absolute;left:124px;top:10px;bottom:10px;width:2px;background:linear-gradient(180deg, var(--terra), var(--rose-deep) 55%, var(--sage));border-radius:2px;transform:scaleY(0);transform-origin:top center;transition:transform 1.7s var(--ease-slow)}
.timeline.in::before{transform:scaleY(1)}
.tl-item{display:grid;grid-template-columns:104px 1fr;gap:64px;padding:22px 0;align-items:start;position:relative}
.tl-year{font-family:var(--serif);font-size:32px;color:var(--rose-deep);text-align:right;line-height:1;letter-spacing:-.01em;padding-top:14px;transition:color .4s var(--ease)}
.tl-item::before{content:"";position:absolute;left:124px;top:50px;width:44px;height:2px;background:var(--hairline-strong);transform-origin:left;transform:scaleX(0);transition:transform .6s var(--ease-out) .2s}
.tl-item.in::before{transform:scaleX(1)}
.tl-item::after{content:"";position:absolute;left:124px;top:44px;width:15px;height:15px;border-radius:50%;background:var(--terra);border:3px solid var(--paper-cool);box-shadow:0 0 0 1.5px var(--terra), 0 5px 12px -3px rgba(221,131,102,.6);transform:translateX(-50%) scale(0);transition:transform .55s var(--ease-out) .3s, box-shadow .4s var(--ease)}
.tl-item.in::after{transform:translateX(-50%) scale(1)}
.tl-content{background:var(--paper);border:1px solid var(--hairline);border-radius:12px;padding:22px 26px;transition:transform .5s var(--ease-out), box-shadow .5s var(--ease-out), border-color .4s var(--ease)}
.tl-content h4{margin:0 0 7px;font-size:21px;color:var(--ink);line-height:1.28}
.tl-content p{margin:0;font-size:15px;color:var(--ink-soft);line-height:1.65}
.tl-item:hover .tl-content{transform:translateX(6px);box-shadow:0 18px 34px -20px rgba(58,42,30,.32);border-color:transparent}
.tl-item:hover .tl-year{color:var(--terra-deep)}
.tl-item:hover::after{box-shadow:0 0 0 1.5px var(--terra), 0 0 0 7px rgba(221,131,102,.16), 0 5px 12px -3px rgba(221,131,102,.6)}
@media (prefers-reduced-motion:reduce){
  .timeline::before{transform:scaleY(1);transition:none}
  .tl-item::before{transform:scaleX(1);transition:none}
  .tl-item::after{transform:translateX(-50%) scale(1);transition:none}
}

/* ---------- Formación académica (Sobre Consuelo) ------------------------ */
.edu-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;margin-top:8px}
.edu-group{background:var(--paper);border:1px solid var(--hairline);border-radius:12px;padding:30px 28px;position:relative;overflow:hidden;transition:transform .5s var(--ease-out), box-shadow .5s var(--ease-out)}
.edu-group:hover{transform:translateY(-4px);box-shadow:0 22px 40px -24px rgba(58,42,30,.34)}
.edu-group::before{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:linear-gradient(90deg, var(--sage), var(--terra))}
.edu-group__head{display:flex;align-items:center;gap:13px;margin-bottom:20px;padding-bottom:16px;border-bottom:1px solid var(--hairline)}
.edu-group__index{width:36px;height:36px;flex-shrink:0;border-radius:50%;background:rgba(138,155,130,.13);color:var(--sage-deep);font-family:var(--serif);font-size:16px;font-style:italic;display:flex;align-items:center;justify-content:center}
.edu-group__title{margin:0;font-family:var(--serif);font-size:20px;color:var(--ink);line-height:1.22;font-weight:500;letter-spacing:-.01em}
.edu-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:16px}
.edu-item{position:relative;padding-left:18px}
.edu-item::before{content:"";position:absolute;left:0;top:6px;width:6px;height:6px;border-radius:50%;background:var(--terra)}
.edu-item:nth-child(3n+2)::before{background:var(--rose-deep)}
.edu-item:nth-child(3n)::before{background:var(--sage)}
.edu-item__name{display:block;font-size:14px;color:var(--ink);line-height:1.42;font-weight:500}
.edu-item__meta{display:block;font-size:12px;color:var(--ink-mute);margin-top:3px;line-height:1.5;letter-spacing:.01em}
@media (max-width:1000px){.edu-grid{grid-template-columns:repeat(2,1fr)}}
@media (max-width:640px){.edu-grid{grid-template-columns:1fr}}

.acc-item{border-bottom:1px solid var(--hairline)}
.acc-trigger{width:100%;padding:28px 0;display:flex;justify-content:space-between;align-items:center;gap:24px;font-family:var(--serif);font-size:23px;color:var(--ink);text-align:left;transition:color .3s var(--ease);font-weight:500;line-height:1.3}
.acc-trigger:hover{color:var(--terra-deep)}
.acc-trigger .ico{width:36px;height:36px;border-radius:50%;border:1px solid var(--hairline-strong);display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:transform .5s var(--ease-out), background .3s var(--ease), border-color .3s var(--ease), color .3s var(--ease);font-family:var(--sans);font-size:15px;color:var(--ink-soft)}
.acc-item.open .acc-trigger .ico{transform:rotate(45deg);background:var(--terra);color:#FFF8EE;border-color:var(--terra)}
.acc-content{max-height:0;overflow:hidden;transition:max-height .7s var(--ease-slow)}
.acc-content-inner{padding:0 0 32px;color:var(--ink-soft);font-size:15.5px;line-height:1.75;max-width:72ch}
.acc-item.open .acc-content{max-height:520px}

.modules{display:grid;grid-template-columns:1fr;gap:0}
.module-row{display:grid;grid-template-columns:90px 1fr 220px;gap:28px;align-items:center;padding:30px 12px;border-bottom:1px solid var(--hairline);transition:background .4s var(--ease), padding .4s var(--ease)}
.module-row:hover,.module-row.active{background:var(--paper-warm);padding-left:24px}
[data-modules] .module-row{cursor:pointer}
.module-num{font-family:var(--serif);font-size:38px;color:var(--terra);line-height:1;letter-spacing:-.01em}
.module-title{font-family:var(--serif);font-size:23px;color:var(--ink);font-weight:500}
.module-tag{font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--ink-mute);text-align:right;font-weight:500}
.module-row.calendar-row{grid-template-columns:110px 1fr 240px}
.module-row .date-stack{font-family:var(--serif);font-size:23px;color:var(--rose-deep);line-height:1.1}
.module-row .date-stack small{display:block;font-family:var(--sans);font-size:11px;color:var(--ink-mute);letter-spacing:.14em;text-transform:uppercase;margin-top:5px;font-weight:500}
@media (max-width:768px){.module-row{grid-template-columns:64px 1fr;gap:18px;padding:22px 8px}.module-tag{display:none}.module-num{font-size:28px}.module-title{font-size:18px}}

.rvoe-seal{display:inline-flex;align-items:center;gap:16px;padding:16px 26px;border:1px solid var(--sage);border-radius:999px;background:rgba(138,155,130,.06)}
.rvoe-seal .seal-mark{width:36px;height:36px;border-radius:50%;background:var(--sage-deep);color:#EFE5D0;display:flex;align-items:center;justify-content:center;font-family:var(--serif);font-size:14px;font-weight:500}
.rvoe-seal .seal-text{font-size:13px;color:var(--sage-deep)}
.rvoe-seal .seal-text strong{display:block;letter-spacing:.06em;font-weight:500}
.rvoe-seal .seal-text small{font-size:10.5px;letter-spacing:.18em;color:var(--ink-mute);text-transform:uppercase;font-weight:500}

/* Mobile menu — full-screen overlay with petals & gradient (paleta del logo) */
@media (max-width:1100px){
  nav.main-nav{
    position:fixed;top:0;left:0;right:0;bottom:0;
    width:100%;max-width:none;height:100vh;height:100dvh;
    background:
      radial-gradient(ellipse at 14% 18%, rgba(138,155,130,.55), transparent 55%),
      radial-gradient(ellipse at 88% 78%, rgba(185,109,110,.5), transparent 55%),
      radial-gradient(ellipse at 50% 50%, rgba(221,131,102,.32), transparent 60%),
      linear-gradient(160deg, #F5EFE3 0%, #EFD9CB 50%, #E8C8B8 100%);
    flex-direction:column;align-items:center;justify-content:center;
    padding:96px 28px 72px;gap:14px;
    transform:translateY(-110%);opacity:0;
    transition:transform .6s var(--ease-slow), opacity .35s var(--ease);
    box-shadow:none;overflow-y:auto;z-index:80
  }
  nav.main-nav::before{
    content:"";position:absolute;top:-18%;right:-18%;width:65%;height:65%;
    background:var(--petal-svg);background-size:contain;background-repeat:no-repeat;
    opacity:.22;pointer-events:none;animation:dot-breath 16s ease-in-out infinite
  }
  nav.main-nav::after{
    content:"";position:absolute;bottom:-15%;left:-18%;width:60%;height:60%;
    background:var(--petal-svg);background-size:contain;background-repeat:no-repeat;
    opacity:.15;transform:rotate(180deg);pointer-events:none;
    animation:dot-breath 19s ease-in-out infinite reverse
  }
  nav.main-nav.open{transform:translateY(0);opacity:1}

  /* "Movimientos del Alma" — destacado al inicio */
  nav.main-nav .nav-script{
    font-size:40px;font-weight:700;color:var(--terra-deep);
    padding:14px 32px;background:rgba(255,255,255,.62);
    border-radius:999px;margin-bottom:28px;
    position:relative;z-index:2;text-align:center;
    box-shadow:0 12px 28px -10px rgba(58,42,30,.28)
  }
  nav.main-nav .nav-script:hover,
  nav.main-nav .nav-script.active{
    color:var(--rose-deep);background:rgba(255,255,255,.85);transform:translateY(-2px)
  }

  /* Enlaces regulares — verticales centrados, pildoras suaves */
  nav.main-nav a[data-nav-link]{
    font-size:24px;font-family:var(--serif);color:var(--ink);
    padding:10px 24px;border:none !important;text-align:center;line-height:1.2;
    position:relative;z-index:2;border-radius:999px;
    transition:color .3s var(--ease), background .3s var(--ease), transform .3s var(--ease-out)
  }
  nav.main-nav a[data-nav-link]:hover,
  nav.main-nav a[data-nav-link].active{
    color:var(--terra-deep);background:rgba(255,255,255,.45);transform:translateY(-1px)
  }
  nav.main-nav a[data-nav-link]::after{display:none !important}

  /* CTA "Agenda tu consulta" — al fondo del menú */
  nav.main-nav .nav-cta{
    display:inline-flex !important;margin-top:30px;justify-content:center;
    font-size:15px;padding:18px 44px;position:relative;z-index:2
  }

  /* Hamburger toggle — sigue accesible cuando el menú está abierto */
  .menu-toggle{
    display:flex;flex-direction:column;gap:6px;width:38px;padding:8px;
    z-index:100;position:relative;background:transparent;border:none;cursor:pointer
  }
  .menu-toggle span{
    height:2px;width:100%;background:var(--ink);border-radius:2px;display:block;
    transition:transform .4s var(--ease), opacity .25s ease, background .3s var(--ease)
  }
  .menu-toggle.open{position:fixed;top:18px;right:18px;z-index:200}
  .menu-toggle.open span:nth-child(1){transform:translateY(8px) rotate(45deg)}
  .menu-toggle.open span:nth-child(2){opacity:0}
  .menu-toggle.open span:nth-child(3){transform:translateY(-8px) rotate(-45deg)}

  /* Bloquea scroll de la página cuando el menú está abierto */
  body:has(nav.main-nav.open){overflow:hidden}
}
@keyframes fade-in{from{opacity:0}to{opacity:1}}

/* Course detail */
.course-hero{background:var(--paper);padding:188px 0 100px;position:relative;overflow:hidden}
.course-hero::before{content:"";position:absolute;inset:0;pointer-events:none;background:radial-gradient(ellipse 55% 45% at 12% 22%, rgba(138,155,130,.08), transparent 70%),radial-gradient(ellipse 45% 40% at 96% 92%, rgba(221,131,102,.05), transparent 70%)}
.course-hero::after{content:"";position:absolute;top:-8%;right:-10%;width:540px;height:620px;background:var(--petal-svg);background-size:contain;background-repeat:no-repeat;opacity:.12;animation:dot-breath 16s ease-in-out infinite}
.course-hero > .container{position:relative;z-index:2}
.course-hero .breadcrumb{font-size:12px;color:var(--ink-mute);letter-spacing:.1em;margin-bottom:28px;display:flex;gap:10px;align-items:center;font-weight:500}
.course-hero .breadcrumb a{color:var(--ink-mute);transition:color .3s var(--ease)}
.course-hero .breadcrumb a:hover{color:var(--terra-deep)}
.course-hero .breadcrumb .sep{opacity:.5}
.course-hero .tag-row{display:flex;gap:12px;flex-wrap:wrap;margin-bottom:24px}
.course-hero .pill{display:inline-flex;align-items:center;gap:10px;padding:8px 18px;border-radius:999px;font-size:11px;letter-spacing:.18em;text-transform:uppercase;font-weight:500}
.course-hero .pill.primary{background:var(--sage-deep);color:#EFE5D0}
.course-hero .pill.aval{background:rgba(221,131,102,.16);color:var(--terra-deep)}
.course-hero .pill.aval::before{content:"●";color:var(--terra);font-size:10px}
.course-hero h1{font-size:clamp(40px,4.8vw,68px);max-width:18ch;margin-bottom:22px}
.course-hero .subtitle{font-size:18px;color:var(--ink-soft);max-width:60ch;line-height:1.65;margin:0}
@media (max-width:768px){.course-hero{padding:140px 0 72px}}

.course-layout{display:grid;grid-template-columns:minmax(0,1fr) 380px;gap:80px;padding-top:0;align-items:start}
@media (max-width:1100px){.course-layout{grid-template-columns:1fr;gap:56px}}

.course-content{min-width:0}
.course-content > section{padding:72px 0;border-bottom:1px solid var(--hairline);position:relative}
.course-content > section:first-child{padding-top:8px}
.course-content > section:last-child{border-bottom:none}
.course-content > section::before{content:"";position:absolute;top:72px;left:-40px;width:20px;height:1px;background:var(--terra);opacity:.5}
.course-content > section:first-child::before{top:8px}
@media (max-width:1100px){.course-content > section::before{display:none}}
.course-content h2{font-size:clamp(30px,2.8vw,42px);margin:0 0 28px;letter-spacing:-.01em}
.course-content h3{font-size:clamp(22px,2vw,28px)}
.course-content .eyebrow{margin-bottom:14px}
.course-content p{font-size:17px;line-height:1.8;color:var(--ink-soft)}

.course-sidebar{position:sticky;top:96px;align-self:start}

.sidebar-card{background:var(--paper);border:1px solid var(--hairline);border-radius:14px;padding:28px;box-shadow:var(--shadow-card);position:relative;overflow:hidden}
.sidebar-card::before{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:linear-gradient(90deg, var(--sage) 0%, var(--rose-deep) 50%, var(--terra) 100%)}
.sidebar-card .price-block{margin-bottom:20px;padding-bottom:20px;border-bottom:1px solid var(--hairline)}
.sidebar-card .price{font-family:var(--serif);font-size:36px;color:var(--ink);line-height:1;display:block;letter-spacing:-.015em}
.sidebar-card .price-sub{font-size:12.5px;color:var(--ink-mute);margin-top:8px;line-height:1.55}
.sidebar-card .spec-list{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:1fr 1fr;column-gap:22px}
.sidebar-card .spec-list li{display:grid;grid-template-columns:1fr auto;gap:10px;padding:10px 0;border-bottom:1px solid var(--hairline);font-size:12.5px;align-items:baseline}
.sidebar-card .spec-list li:nth-last-child(-n+2){border-bottom:none;padding-bottom:0}
.sidebar-card .spec-list li:nth-child(-n+2){padding-top:0}
.sidebar-card .spec-list .k{color:var(--ink-mute);letter-spacing:.02em}
.sidebar-card .spec-list .v{color:var(--ink);font-weight:500;text-align:right;font-family:var(--serif);font-size:13.5px}
.sidebar-card .ctas{display:flex;flex-direction:row;gap:10px;margin-top:20px;margin-bottom:16px}
.sidebar-card .ctas .btn{flex:1;justify-content:center;padding:13px 12px;font-size:13px;white-space:nowrap;text-align:center}
.sidebar-card .pdf-download{display:flex;align-items:center;gap:12px;padding:12px 16px;background:rgba(138,155,130,.08);border:1px solid rgba(138,155,130,.22);border-radius:10px;color:var(--sage-deep);font-size:13px;font-weight:500;transition:background .35s var(--ease), transform .35s var(--ease-out), border-color .35s var(--ease);margin-bottom:18px}
.sidebar-card .pdf-download:hover{background:rgba(138,155,130,.16);transform:translateY(-2px);border-color:var(--sage)}
.sidebar-card .pdf-download .pdf-ico{width:34px;height:34px;flex-shrink:0;background:var(--sage-deep);color:#EFE5D0;border-radius:7px;display:flex;align-items:center;justify-content:center;font-size:9.5px;font-weight:600;letter-spacing:.06em}
.sidebar-card .pdf-download .pdf-meta{display:block;font-size:11px;color:var(--ink-mute);margin-top:3px;letter-spacing:.04em;font-weight:400}
.sidebar-card .teacher{display:grid;grid-template-columns:48px 1fr auto;gap:10px 14px;align-items:center;padding-top:18px;border-top:1px solid var(--hairline)}
.sidebar-card .teacher .photo{width:48px;height:48px;border-radius:50%;overflow:hidden;border:2px solid var(--paper-warm);box-shadow:0 4px 12px -4px rgba(58,42,30,.4);flex-shrink:0}
.sidebar-card .teacher .photo img{width:100%;height:100%;object-fit:cover;object-position:center 15%}
.sidebar-card .teacher .info{min-width:0}
.sidebar-card .teacher .name{font-family:var(--serif);font-size:15px;color:var(--ink);margin:0 0 2px;line-height:1.2;font-weight:500}
.sidebar-card .teacher .credentials{font-size:11px;color:var(--ink-soft);line-height:1.45;margin:0;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.sidebar-card .teacher .profile-link{font-size:10.5px;color:var(--ink-mute);letter-spacing:.06em;transition:color .25s var(--ease);text-transform:uppercase;font-weight:500;text-decoration:underline;text-decoration-color:var(--hairline-strong);text-underline-offset:3px;white-space:nowrap}
.sidebar-card .teacher .profile-link:hover{color:var(--sage-deep);text-decoration-color:var(--sage)}
@media (max-width:1100px){.course-sidebar{position:static}.sidebar-card{max-width:520px;margin:0 auto}}

.module-list{display:flex;flex-direction:column;gap:14px;margin-top:12px}
.module-block{display:grid;grid-template-columns:54px 1fr auto;gap:24px;align-items:flex-start;padding:26px 28px;background:var(--paper-warm);border-radius:10px;transition:transform .4s var(--ease-out), box-shadow .4s var(--ease-out), background .4s var(--ease);position:relative}
.module-block:hover{transform:translateX(6px);box-shadow:0 18px 32px -20px rgba(58,42,30,.3);background:var(--paper-rose)}
.module-block .n{width:42px;height:42px;border-radius:50%;background:var(--paper);color:var(--sage-deep);display:flex;align-items:center;justify-content:center;font-family:var(--serif);font-size:17px;font-weight:500;border:1px solid var(--hairline);flex-shrink:0}
.module-block .b h4{margin:0 0 5px;font-size:18px;line-height:1.35;color:var(--ink)}
.module-block .b p{margin:0;font-size:14.5px;color:var(--ink-soft);line-height:1.6}
.module-block .badge{font-size:10px;letter-spacing:.18em;text-transform:uppercase;padding:6px 13px;border-radius:999px;background:rgba(31,30,28,.08);color:var(--ink-mute);white-space:nowrap;align-self:center;font-weight:500}
.module-block.featured{background:rgba(221,131,102,.1);border:1px solid rgba(221,131,102,.28)}
.module-block.featured .badge{background:var(--terra);color:#FFF8EE}
@media (max-width:560px){.module-block{grid-template-columns:42px 1fr;gap:16px;padding:20px 18px}.module-block .badge{grid-column:1 / -1}}

.method-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-top:12px}
@media (max-width:560px){.method-grid{grid-template-columns:1fr}}
.method-item{padding:28px;background:var(--paper-warm);border-radius:10px;transition:transform .4s var(--ease-out), background .35s var(--ease)}
.method-item:hover{transform:translateY(-3px);background:#EBE2D0}
.method-item .ico-c{width:46px;height:46px;border-radius:50%;background:rgba(221,131,102,.18);color:var(--terra-deep);display:flex;align-items:center;justify-content:center;margin-bottom:16px;transition:transform .5s var(--ease-out)}
.method-item:hover .ico-c{transform:rotate(-8deg) scale(1.06)}
.method-item h4{margin:0 0 8px;font-size:18px;color:var(--ink)}
.method-item p{margin:0;font-size:14.5px;color:var(--ink-soft);line-height:1.6}

.course-cta-final{background:linear-gradient(135deg, var(--terra) 0%, var(--rose-deep) 100%);color:#FFF8EE;padding:80px 56px;border-radius:14px;text-align:center;position:relative;overflow:hidden;margin-top:56px}
.course-cta-final::before{content:"";position:absolute;top:-30%;right:-15%;width:480px;height:560px;background:var(--petal-svg);filter:brightness(2.5);background-size:contain;background-repeat:no-repeat;opacity:.16;pointer-events:none}
.course-cta-final h2{color:#FFF8EE;margin-bottom:18px}
.course-cta-final p{color:rgba(255,248,238,.92);max-width:52ch;margin:0 auto 36px;font-size:17px}
.course-cta-final .cta-row{justify-content:center}
.course-cta-final .btn-coral{background:#FFF8EE;color:var(--terra-deep)}
.course-cta-final .btn-coral:hover{background:var(--paper-warm)}
.course-cta-final .btn-jade-outline{border-color:rgba(255,248,238,.65);color:#FFF8EE}
.course-cta-final .btn-jade-outline:hover{background:rgba(255,248,238,.12);color:#FFF8EE;border-color:#FFF8EE}
@media (max-width:768px){.course-cta-final{padding:56px 28px}}

/* ---------- Portada de curso (banner) ---------------------------------- */
.course-hero .course-cover{max-width:none;margin:16px 0 30px;border-radius:16px;overflow:hidden;box-shadow:0 32px 64px -30px rgba(58,42,30,.55);border:1px solid var(--hairline);line-height:0;font-size:0;display:block}
.course-cover img{width:100%;height:auto;display:block;transition:transform 8s var(--ease-slow)}
.course-cover:hover img{transform:scale(1.05)}
@media (max-width:768px){.course-hero .course-cover{border-radius:12px;margin:10px 0 22px}}

.hook-banner{display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:center;background:linear-gradient(135deg, var(--paper-warm) 0%, var(--paper-deep) 100%);border-radius:6px;padding:64px;position:relative;overflow:hidden}
.hook-banner .ico-circle{position:absolute;width:240px;height:240px;border-radius:50%;background:radial-gradient(circle, rgba(221,131,102,.28), transparent 70%);top:-70px;right:-70px;animation:dot-breath 6s var(--ease-slow) infinite}
.hook-banner h3{font-size:clamp(26px,2.6vw,34px);margin:10px 0 16px}
.hook-banner p{font-size:16px;margin:0;color:var(--ink-soft)}
@media (max-width:768px){.hook-banner{grid-template-columns:1fr;padding:48px 32px;gap:28px}}

/* Sub-componentes */
.cta-row{display:flex;gap:16px;flex-wrap:wrap;margin-top:36px}
.theme-card{padding:30px;flex-direction:row;align-items:center;gap:20px}
.theme-card .badge{width:42px;height:42px;border-radius:50%;background:rgba(221,131,102,.16);display:flex;align-items:center;justify-content:center;color:var(--terra-deep);font-family:var(--serif);font-size:15px;flex-shrink:0}
.theme-card .label{font-family:var(--serif);font-size:20px;color:var(--ink);line-height:1.3}
.num-badge{width:44px;height:44px;border-radius:50%;background:rgba(138,155,130,.14);display:flex;align-items:center;justify-content:center;color:var(--sage-deep);font-family:var(--serif);font-size:18px;margin-bottom:10px}
.fact-card{padding:34px}
.fact-card .v{font-family:var(--serif);font-size:clamp(24px,2vw,30px);color:var(--sage-deep);line-height:1.1;margin:8px 0 0}
.price-panel{margin-top:36px;padding:36px;background:var(--paper-warm);border-radius:8px}
.price-panel .row{display:flex;justify-content:space-between;align-items:baseline;padding:14px 0;border-bottom:1px solid var(--hairline);gap:18px;flex-wrap:wrap}
.price-panel .row:last-of-type{border-bottom:none}
.price-panel .label{font-size:15px;color:var(--ink-soft)}
.price-panel .v{font-family:var(--serif);font-size:clamp(24px,2.4vw,32px);color:var(--ink);letter-spacing:-.01em}
.price-panel .note{margin:18px 0 0;font-size:13px;color:var(--ink-mute)}

.contact-card{padding:32px;flex-direction:row;align-items:center;gap:22px}
.contact-card .ico{width:54px;height:54px;border-radius:50%;display:flex;align-items:center;justify-content:center;color:#FFF8EE;flex-shrink:0;font-family:var(--serif);font-size:22px;box-shadow:0 8px 18px -6px rgba(58,42,30,.3)}
.contact-card .ico.coral{background:var(--terra)}
.contact-card .ico.jade{background:var(--sage-deep);color:#EFE5D0}
.contact-card .ico.frambuesa{background:var(--rose-deep)}
.contact-card .label{font-family:var(--serif);font-size:21px;color:var(--ink)}
.contact-card .sub{font-size:14px;color:var(--ink-soft);line-height:1.5}

.map-frame{aspect-ratio:4/3;border-radius:8px;overflow:hidden;margin-top:28px;border:1px solid var(--hairline);filter:saturate(.88) hue-rotate(-5deg)}
.map-frame iframe{width:100%;height:100%;border:0}

.manifest-line{font-family:var(--serif);font-size:clamp(26px,2.6vw,36px);line-height:1.4;color:var(--ink);margin-top:28px;font-weight:400;letter-spacing:-.005em}
.manifest-end{font-family:var(--serif);font-style:italic;color:var(--rose-deep);font-size:24px;line-height:1.4;max-width:46ch}
.quote-callout{font-family:var(--serif);font-style:italic;color:var(--rose-deep);font-size:clamp(24px,2.4vw,32px);margin-top:56px;line-height:1.4;position:relative;display:inline-block}

/* Media cards */
.media-card{padding:0;overflow:hidden}
.media-card .media-thumb{position:relative;aspect-ratio:16/9;background:var(--paper-deep);overflow:hidden;display:flex;align-items:center;justify-content:center}
.media-card .media-thumb img{width:100%;height:100%;object-fit:cover;filter:saturate(.92);transition:transform 1.3s var(--ease-slow), filter .6s var(--ease)}
.media-card:hover .media-thumb img{transform:scale(1.07);filter:saturate(1)}
.media-card .play-ico{position:absolute;width:72px;height:72px;border-radius:50%;background:rgba(255,248,238,.94);color:var(--terra-deep);display:flex;align-items:center;justify-content:center;box-shadow:0 18px 36px -12px rgba(58,42,30,.5);transition:transform .45s var(--ease-out), background .35s var(--ease), color .35s var(--ease)}
.media-card:hover .play-ico{transform:scale(1.1);background:var(--terra);color:#FFF8EE}
.media-card .play-ico::before{content:"";width:0;height:0;margin-left:5px;border-left:15px solid currentColor;border-top:10px solid transparent;border-bottom:10px solid transparent}
.media-card .duration{position:absolute;bottom:14px;right:14px;background:rgba(31,30,28,.82);color:#FFF8EE;font-size:11px;letter-spacing:.12em;padding:6px 12px;border-radius:4px;backdrop-filter:blur(4px);font-weight:500}
.media-card .media-body{padding:28px 30px 32px}
.media-card .media-meta{font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:var(--terra-deep);font-weight:500;display:block;margin-bottom:10px}
.media-card h4{margin:0 0 10px;font-size:21px;line-height:1.25;color:var(--ink)}
.media-card p{margin:0;font-size:14.5px;color:var(--ink-soft);line-height:1.6}
.media-card .media-foot{margin-top:18px;display:flex;align-items:center;justify-content:space-between;font-size:13px;color:var(--sage-deep)}
.media-card .arrow{transition:transform .35s var(--ease-out)}
.media-card:hover .arrow{transform:translateX(5px)}

.media-featured{display:grid;grid-template-columns:1.1fr .9fr;gap:0;background:var(--paper-warm);border-radius:8px;overflow:hidden;box-shadow:var(--shadow-card);transition:transform .6s var(--ease-out), box-shadow .6s var(--ease-out)}
.media-featured:hover{transform:translateY(-6px);box-shadow:0 36px 80px -36px rgba(58,42,30,.45)}
.media-featured .media-thumb{aspect-ratio:auto;height:100%;min-height:380px}
.media-featured .media-body{padding:64px;display:flex;flex-direction:column;justify-content:center}
.media-featured h3{font-size:clamp(28px,2.8vw,38px);margin:10px 0 16px;color:var(--ink)}
.media-featured p{font-size:16.5px;line-height:1.7;margin-bottom:20px}
@media (max-width:900px){.media-featured{grid-template-columns:1fr}.media-featured .media-thumb{min-height:260px}.media-featured .media-body{padding:42px 32px}}

.podcast-list{display:flex;flex-direction:column;gap:16px}
.podcast-row{display:grid;grid-template-columns:88px 1fr auto;gap:24px;align-items:center;padding:18px;border:1px solid var(--hairline);border-radius:10px;transition:background .35s var(--ease), border-color .35s var(--ease), transform .35s var(--ease-out)}
.podcast-row:hover{background:var(--paper-warm);border-color:transparent;transform:translateX(6px)}
.podcast-row .cover{width:88px;height:88px;border-radius:8px;background:var(--paper-deep);overflow:hidden;display:flex;align-items:center;justify-content:center}
.podcast-row .cover img{width:100%;height:100%;object-fit:cover}
.podcast-row .title{font-family:var(--serif);font-size:19px;color:var(--ink);margin:0 0 5px;line-height:1.3;font-weight:500}
.podcast-row .show{font-size:13px;color:var(--ink-mute);letter-spacing:.04em}
.podcast-row .listen{font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--terra-deep);white-space:nowrap;font-weight:500}
@media (max-width:560px){.podcast-row{grid-template-columns:68px 1fr;gap:16px;padding:16px}.podcast-row .cover{width:68px;height:68px}.podcast-row .listen{grid-column:1 / -1;text-align:right}.podcast-row .title{font-size:17px}}

.tag-soon{display:inline-block;font-size:10px;letter-spacing:.22em;text-transform:uppercase;color:var(--terra-deep);background:rgba(221,131,102,.12);padding:5px 12px;border-radius:999px;margin-left:10px;vertical-align:middle;font-weight:500}

/* Contact page */
.contact-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:72px;align-items:start}
@media (max-width:900px){.contact-grid{grid-template-columns:1fr;gap:48px}}
.contact-form-card{background:var(--paper-rose);border-radius:10px;padding:54px 44px;position:relative;overflow:hidden}
.contact-form-card::before{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:linear-gradient(90deg, var(--sage), var(--rose-deep), var(--terra))}
.contact-form-card h3{margin:0 0 10px;font-size:28px;color:var(--ink)}
.contact-form-card .sub{font-size:14px;color:var(--ink-mute);margin:0 0 32px}
@media (max-width:560px){.contact-form-card{padding:36px 28px}}
.contact-channels{display:flex;flex-direction:column;gap:18px}
.contact-channels .contact-card{background:var(--paper);border:1px solid var(--hairline);transition:background .35s var(--ease), border-color .35s var(--ease), transform .35s var(--ease-out)}
.contact-channels .contact-card:hover{background:var(--paper-warm);border-color:transparent;transform:translateX(5px)}
.contact-info{display:grid;grid-template-columns:1fr 1fr;gap:28px;margin-top:10px}
.contact-info .info-item{padding:0}
.contact-info h6{font-family:var(--sans);font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:var(--terra-deep);margin:0 0 10px;font-weight:500}
.contact-info p{margin:0;font-size:14px;color:var(--ink-soft);line-height:1.55}
@media (max-width:560px){.contact-info{grid-template-columns:1fr;gap:20px}}
.map-wide{aspect-ratio:21/8;border-radius:10px;overflow:hidden;border:1px solid var(--hairline);margin-top:28px;filter:saturate(.88)}
.map-wide iframe{width:100%;height:100%;border:0;display:block}
@media (max-width:768px){.map-wide{aspect-ratio:4/3}}

/* Responsive global */
@media (max-width:1024px){
  .container,.container-narrow{padding:0 30px}
  .hero-grid,.hero-cinema-grid{gap:64px}
  section{padding:104px 0}
  .consult-card .body{padding:54px 44px}
}
@media (max-width:900px){
  .site-header{padding:16px 0}
  .site-header.scrolled{padding:11px 0}
  .brand img{width:40px;height:40px}
  .brand-name{font-size:18px}
  .brand-tag{font-size:11.5px}
  .nav-script{font-size:20px}
  .footer-grid .nav-script.footer-script-link{font-size:22px}
  .hero,.hero-cinema{padding-top:130px;padding-bottom:72px;min-height:auto;display:block}
  .hero-image,.hero-portrait{aspect-ratio:4/4.4;max-width:560px;margin:0 auto}
  .hero-text h1,.hero-cinema h1{font-size:clamp(44px,9vw,76px)}
  h2{font-size:clamp(32px,5.4vw,52px)}
  .newsletter{padding:54px 32px}
  section{padding:84px 0}
  .page-hero{padding:172px 0 80px}
  .page-hero h1{font-size:clamp(42px,8vw,72px)}
  .module-row{grid-template-columns:64px 1fr !important;gap:18px}
  .module-tag{display:none}
  .testimonial{padding:44px 32px}
  .footer-grid{gap:44px}
  .stats{gap:36px}
}
@media (max-width:768px){
  body{font-size:16px;line-height:1.7}
  .container,.container-narrow{padding:0 22px}
  section{padding:72px 0}
  .page-hero{padding:148px 0 60px}
  .hero,.hero-cinema{padding-top:116px;padding-bottom:56px}
  .hero-grid,.hero-cinema-grid{gap:48px}
  .hero-text .lead,.hero-cinema .lead{font-size:16px;margin:1.4rem 0 2rem}
  .hero-ctas,.hero-cinema-ctas{flex-direction:column;align-items:stretch;width:100%}
  .hero-ctas .btn,.hero-cinema-ctas .btn{justify-content:center;width:100%}
  .btn{padding:16px 28px;font-size:14px;width:auto}
  h1{font-size:clamp(40px,9.5vw,68px)}
  h2{font-size:clamp(30px,6vw,44px)}
  h3{font-size:clamp(24px,5vw,30px)}
  .eyebrow{font-size:11px;letter-spacing:.24em;margin-bottom:1rem}
  .card{padding:30px 26px}
  .card .thumb{margin:-30px -26px 10px}
  .card-grid{gap:22px}
  .consult-card .body{padding:40px 26px}
  .consult-card .img img{min-height:300px}
  .testimonial{padding:36px 24px;gap:28px}
  .testimonial .ph{width:108px;height:108px;font-size:36px}
  .testimonial blockquote{font-size:19px;line-height:1.5}
  .newsletter{padding:54px 28px}
  .stats{gap:32px}
  .stat .num{font-size:clamp(44px,9vw,62px)}
  .footer-grid{margin-bottom:48px;gap:36px}
  .footer-bottom{font-size:11.5px;flex-direction:column;align-items:flex-start;gap:14px}
  .wa-float{width:56px;height:56px;bottom:20px;right:20px}
  .module-row{padding:22px 6px}
  .module-num{font-size:30px}
  .module-title{font-size:19px}
  .acc-trigger{padding:22px 0;font-size:19px;gap:18px}
  .acc-trigger .ico{width:32px;height:32px;font-size:14px}
  .acc-content-inner{font-size:15px;padding-bottom:26px}
  .checklist li{grid-template-columns:24px 1fr;gap:16px;font-size:15.5px;padding-bottom:16px}
  .checklist .ck{width:24px;height:24px;font-size:11px}
  .step{padding-top:32px}
  .step::before{font-size:54px}
  .step h4{font-size:19px}
  .timeline{max-width:none;margin:0}
  .timeline::before{left:9px}
  .tl-item{grid-template-columns:1fr;gap:0;padding:14px 0 14px 46px}
  .tl-year{font-size:25px;text-align:left;padding-top:0;margin-bottom:11px}
  .tl-item::before{display:none}
  .tl-item::after{left:9px;top:14px}
  .tl-content{padding:18px 20px}
  .tl-item:hover .tl-content{transform:none}
  .pillars{gap:18px}
  .pillar{padding:36px 28px}
  .marquee-item{font-size:19px}
}
@media (max-width:560px){
  .container,.container-narrow{padding:0 18px}
  h1{font-size:clamp(38px,10vw,56px) !important}
  nav.main-nav{padding:80px 24px 56px;gap:12px}
  nav.main-nav .nav-script{font-size:34px;padding:12px 28px;margin-bottom:22px}
  nav.main-nav a[data-nav-link]{font-size:22px;padding:9px 22px}
  nav.main-nav .nav-cta{margin-top:24px;font-size:14px;padding:16px 38px}
  .footer-grid{grid-template-columns:1fr;gap:36px}
  .testimonial{grid-template-columns:1fr;text-align:center}
  .testimonial .ph{margin:0 auto}
  .newsletter form{flex-direction:column;gap:12px}
  .newsletter input,.newsletter form .btn{width:100%;justify-content:center}
  section{padding:64px 0}
  .page-hero{padding:132px 0 52px}
  h1 br,h2 br,h3 br{display:none}
  .pillar-pills{gap:8px}
  .pillar-pills .pill{font-size:13px;padding:7px 14px}
}
@media (max-width:380px){
  .container,.container-narrow{padding:0 14px}
  .brand-name{font-size:16px}
  .brand-tag{display:none}
  .brand img{width:36px;height:36px}
  nav.main-nav{padding:72px 20px 48px;gap:10px}
  nav.main-nav .nav-script{font-size:28px;padding:10px 22px;margin-bottom:18px}
  nav.main-nav a[data-nav-link]{font-size:20px;padding:8px 20px}
  nav.main-nav .nav-cta{margin-top:20px;font-size:13px;padding:14px 32px}
  h1{font-size:34px !important}
  .btn{padding:14px 22px;font-size:13px}
}
@media (hover:none){.cb-cursor{display:none !important}}

@media (prefers-reduced-motion: reduce){
  *,*::before,*::after{animation-duration:.001ms !important;animation-iteration-count:1 !important;transition-duration:.001ms !important;scroll-behavior:auto !important}
  .petal-field{display:none !important}
}

/* ============================================================
   CONSULTAS — diseño importado de Claude Design (Consuelo.html)
   Scopeado bajo body[data-page="consultas"] con prefijo .cs-
   ============================================================ */

/* Header opaco desde el inicio en consultas (sin tocar global) */
body[data-page="consultas"] .site-header{
  background:rgba(248,245,237,.92);
  backdrop-filter:blur(18px) saturate(1.3);
  -webkit-backdrop-filter:blur(18px) saturate(1.3);
  box-shadow:0 10px 30px -22px rgba(58,42,30,.28);
  border-bottom-color:rgba(31,30,28,.05);
}

body[data-page="consultas"]{
  --cs-green-deep:   #2e3a2d;
  --cs-green-mid:    #3e4a3d;
  --cs-green-warm:   #4d5a48;
  --cs-green-sage:   #8a9a82;
  --cs-green-soft:   #b0bda8;
  --cs-rose-deep:    #7d4747;
  --cs-rose-mid:     #a85e62;
  --cs-rose-dusty:   #c98388;
  --cs-rose-soft:    #e3b7b8;
  --cs-rose-blush:   #f1d6d8;
  --cs-terracotta:   #b9684e;
  --cs-cream:        #F7F7F2;
  --cs-cream-warm:   #efe7d8;
  --cs-cream-deep:   #e6dcc7;
  --cs-white-warm:   #ffffff;
  --cs-white-soft:   #fdfbf6;
  --cs-ink:          #2a2a26;
  --cs-ink-soft:     #5b5b54;
  --cs-ink-mute:     #8a8a82;
  background:var(--cs-white-warm);
}

/* La página y sus contenedores */
.cs-page{font-family:'Inter','Manrope',system-ui,sans-serif;color:var(--cs-ink);-webkit-font-smoothing:antialiased;overflow-x:hidden}
.cs-page img{display:block;max-width:100%}
.cs-page a{color:inherit}
.cs-page *{box-sizing:border-box}
.cs-container{max-width:1280px;margin:0 auto}
.cs-section-pad{padding:120px 40px}

/* ============ HERO ============ */
.cs-hero{
  position:relative;min-height:760px;padding:140px 40px 100px;
  background:linear-gradient(180deg, var(--cs-green-deep) 0%, var(--cs-green-mid) 100%);
  color:var(--cs-cream);overflow:hidden;isolation:isolate;
}
.cs-hero-bg{position:absolute;inset:0;z-index:0;pointer-events:none}
.cs-wash{position:absolute;inset:0;background:radial-gradient(60% 80% at 100% 50%, rgba(201,131,136,.4), transparent 60%),radial-gradient(40% 60% at 85% 15%, rgba(227,183,184,.16), transparent 70%);mix-blend-mode:screen;animation:cs-wash 18s ease-in-out infinite alternate}
.cs-orb{position:absolute;border-radius:50%;filter:blur(50px);mix-blend-mode:screen}
.cs-orb.cs-g1{width:560px;height:560px;left:-140px;top:-160px;background:radial-gradient(circle at 40% 40%, rgba(176,189,168,.5), transparent 70%);animation:cs-drift1 22s ease-in-out infinite}
.cs-orb.cs-r1{width:460px;height:460px;right:8%;bottom:-180px;background:radial-gradient(circle at 50% 50%, rgba(227,183,184,.5), transparent 70%);animation:cs-drift2 26s ease-in-out infinite}
.cs-orb.cs-r2{width:300px;height:300px;left:45%;top:-100px;background:radial-gradient(circle at 50% 50%, rgba(168,94,98,.32), transparent 70%);animation:cs-drift3 24s ease-in-out infinite}
.cs-grain{position:absolute;inset:-50%;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='240' height='240'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 .3 0'/></filter><rect width='100%25' height='100%25' filter='url(%23n)'/></svg>");opacity:.32;mix-blend-mode:overlay;pointer-events:none}
@keyframes cs-wash{0%,100%{transform:translate3d(0,0,0) scale(1)}50%{transform:translate3d(-2%,2%,0) scale(1.06)}}
@keyframes cs-drift1{0%,100%{transform:translate(0,0)}50%{transform:translate(40px,30px)}}
@keyframes cs-drift2{0%,100%{transform:translate(0,0)}50%{transform:translate(-50px,-30px)}}
@keyframes cs-drift3{0%,100%{transform:translate(0,0)}50%{transform:translate(30px,40px)}}

.cs-hero-inner{position:relative;z-index:1;max-width:1320px;margin:0 auto;display:grid;grid-template-columns:1.05fr .95fr;gap:80px;align-items:center}

.cs-hero-eyebrow{display:flex;align-items:center;gap:14px;font-size:11.5px;letter-spacing:.26em;text-transform:uppercase;color:var(--cs-rose-soft);margin-bottom:30px;opacity:0;animation:cs-rise .9s .2s ease-out forwards}
.cs-hero-eyebrow::before{content:"";width:36px;height:1px;background:var(--cs-rose-soft);opacity:.7}
.cs-hero-eyebrow .cs-pulse{width:7px;height:7px;border-radius:50%;background:var(--cs-terracotta);box-shadow:0 0 0 0 rgba(185,104,78,.6);animation:cs-pulse 2.6s ease-out infinite}
@keyframes cs-pulse{0%{box-shadow:0 0 0 0 rgba(185,104,78,.55)}70%{box-shadow:0 0 0 14px rgba(185,104,78,0)}100%{box-shadow:0 0 0 0 rgba(185,104,78,0)}}

.cs-h1{font-family:'Cormorant Garamond',serif;font-weight:500;font-size:clamp(48px,5.4vw,82px);line-height:1;letter-spacing:-.018em;color:var(--cs-cream);margin:0 0 28px;opacity:0;animation:cs-rise 1s .35s ease-out forwards}
.cs-ital{font-style:italic;font-weight:400;background:linear-gradient(95deg, var(--cs-rose-soft) 0%, var(--cs-rose-dusty) 55%, #d8a3a6 100%);-webkit-background-clip:text;background-clip:text;color:transparent;display:inline-block}
.cs-hero-lede{font-size:17px;line-height:1.6;color:rgba(244,239,226,.82);max-width:46ch;margin:0 0 38px;opacity:0;animation:cs-rise 1s .5s ease-out forwards}
.cs-hero-cta-row{display:flex;align-items:center;gap:18px;flex-wrap:wrap;opacity:0;animation:cs-rise 1s .65s ease-out forwards}

.cs-btn-primary{
  position:relative;overflow:hidden;display:inline-flex;align-items:center;gap:12px;
  padding:18px 32px;border:none;border-radius:999px;cursor:pointer;
  font:500 15px/1 'Inter','Manrope',sans-serif;color:#fff !important;
  background:linear-gradient(135deg, #c47379 0%, #a85e62 55%, #8a4a52 100%);
  box-shadow:0 14px 30px -10px rgba(168,94,98,.55), inset 0 2px 0 rgba(255,255,255,.08);
  text-decoration:none;transition:transform .35s cubic-bezier(.2,.7,.2,1),box-shadow .35s;
}
.cs-btn-primary svg{fill:#fff;color:#fff}
.cs-btn-primary::before{content:"";position:absolute;inset:0;background:linear-gradient(120deg, transparent 30%, rgba(255,255,255,.22) 50%, transparent 70%);transform:translateX(-120%);transition:transform .9s ease}
.cs-btn-primary:hover{transform:translateY(-2px);box-shadow:0 22px 40px -12px rgba(168,94,98,.65)}
.cs-btn-primary:hover::before{transform:translateX(120%)}
.cs-arrow{transition:transform .35s cubic-bezier(.2,.7,.2,1);display:inline-block}
.cs-btn-primary:hover .cs-arrow{transform:translateX(4px)}

.cs-btn-ghost{display:inline-flex;align-items:center;gap:10px;padding:17px 28px;border-radius:999px;background:rgba(246,239,225,.06);border:1px solid rgba(246,239,225,.22);color:var(--cs-cream);font:500 14.5px/1 'Inter','Manrope',sans-serif;text-decoration:none;transition:background .25s,border-color .25s}
.cs-btn-ghost:hover{background:rgba(246,239,225,.12);border-color:rgba(246,239,225,.4)}

.cs-hero-meta{display:flex;align-items:center;gap:18px;margin-top:42px;font-size:12.5px;color:rgba(246,239,225,.62);opacity:0;animation:cs-rise 1s .8s ease-out forwards}
.cs-hero-meta-dot{width:5px;height:5px;border-radius:50%;background:var(--cs-green-soft);box-shadow:0 0 0 0 rgba(176,189,168,.55);animation:cs-pulseGreen 2.4s ease-out infinite}
@keyframes cs-pulseGreen{0%{box-shadow:0 0 0 0 rgba(176,189,168,.55)}70%{box-shadow:0 0 0 10px rgba(176,189,168,0)}100%{box-shadow:0 0 0 0 rgba(176,189,168,0)}}

.cs-portrait{position:relative;aspect-ratio:4/5;opacity:0;animation:cs-rise 1.2s .5s ease-out forwards}
.cs-portrait-mask{position:absolute;inset:0;border-radius:999px 999px 22px 22px;overflow:hidden;box-shadow:0 40px 80px -20px rgba(0,0,0,.5), 0 12px 30px -10px rgba(0,0,0,.35);background:#2a2a26}
.cs-portrait-mask img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 15%;filter:saturate(.92) contrast(1.02)}
.cs-portrait-mask::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg, transparent 55%, rgba(46,58,45,.45) 100%);pointer-events:none}
.cs-portrait-caption{position:absolute;left:24px;right:24px;bottom:24px;color:rgba(246,239,225,.92);font-family:'Cormorant Garamond',serif;z-index:2}
.cs-portrait-caption .cs-name{font-size:22px;letter-spacing:-.01em}
.cs-portrait-caption .cs-role{font-style:italic;font-size:14px;color:rgba(246,239,225,.75);margin-top:4px}
.cs-portrait-frame{position:absolute;inset:-20px;border:1px solid rgba(246,239,225,.14);border-radius:999px 999px 36px 36px;pointer-events:none}
.cs-portrait-badge{position:absolute;bottom:18px;right:18px;z-index:4;background:rgba(46,58,45,.82);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border:1px solid rgba(246,239,225,.22);border-radius:999px;padding:9px 16px;font-size:10.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--cs-rose-soft);display:flex;align-items:center;gap:8px;white-space:nowrap;box-shadow:0 6px 18px -6px rgba(0,0,0,.5)}
.cs-portrait-badge .cs-dot{width:6px;height:6px;border-radius:50%;background:var(--cs-green-soft);animation:cs-pulseGreen 2.4s ease-out infinite}

@keyframes cs-rise{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:translateY(0)}}

.cs-scroll-cue{position:absolute;left:50%;bottom:24px;transform:translateX(-50%);z-index:2;color:rgba(246,239,225,.55);font-family:'JetBrains Mono',monospace;font-size:10px;letter-spacing:.3em;text-transform:uppercase;display:flex;flex-direction:column;align-items:center;gap:10px;animation:cs-rise 1s 1s ease-out backwards}
.cs-scroll-cue::after{content:"";width:1px;height:38px;background:linear-gradient(to bottom, var(--cs-rose-soft), transparent);animation:cs-cue 2.2s ease-in-out infinite}
@keyframes cs-cue{0%,100%{opacity:.3;transform:scaleY(.6)}50%{opacity:1;transform:scaleY(1)}}

/* ============ SHARED ============ */
.cs-eyebrow{display:flex;align-items:center;gap:14px;font-size:11.5px;letter-spacing:.26em;text-transform:uppercase;color:var(--cs-rose-mid);margin-bottom:24px}
.cs-eyebrow::before{content:"";width:34px;height:1px;background:var(--cs-rose-mid);opacity:.6}
.cs-eyebrow.cs-eyebrow-rose{color:var(--cs-rose-soft)}
.cs-eyebrow.cs-eyebrow-rose::before{background:var(--cs-rose-soft);opacity:.7}
.cs-eyebrow.cs-eyebrow-deep{color:var(--cs-rose-deep)}
.cs-eyebrow.cs-eyebrow-deep::before{background:var(--cs-rose-deep);opacity:.6}
.cs-eyebrow.cs-eyebrow-center{justify-content:center}
.cs-section-title{font-family:'Cormorant Garamond',serif;font-weight:500;font-size:clamp(36px,4vw,60px);line-height:1.05;letter-spacing:-.012em;color:var(--cs-ink);text-wrap:pretty;margin:0}
.cs-section-title .cs-ital{background:linear-gradient(95deg, var(--cs-rose-dusty), var(--cs-terracotta));-webkit-background-clip:text;background-clip:text;color:transparent}
.cs-section-lede{font-size:16px;line-height:1.65;color:var(--cs-ink-soft);max-width:52ch;margin-top:18px}

.cs-reveal{opacity:0;transform:translateY(20px);transition:opacity .9s ease, transform .9s ease}
.cs-reveal.cs-in{opacity:1;transform:translateY(0)}
.cs-reveal.cs-d1{transition-delay:.1s}
.cs-reveal.cs-d2{transition-delay:.2s}
.cs-reveal.cs-d3{transition-delay:.3s}
.cs-reveal.cs-d4{transition-delay:.4s}

/* ============ PARA QUIÉN ============ */
.cs-for-who{background:var(--cs-white-warm)}
.cs-for-who .cs-grid{display:grid;grid-template-columns:1.1fr 1fr;gap:80px;align-items:center}
.cs-check-list{list-style:none;display:flex;flex-direction:column;gap:14px;padding:0;margin:0}
.cs-check-list li{display:flex;gap:16px;align-items:flex-start;padding:18px 22px;background:var(--cs-cream);border:1px solid rgba(42,42,38,.06);border-radius:14px;font-size:15px;line-height:1.5;color:var(--cs-ink);transition:transform .3s, box-shadow .3s, border-color .3s}
.cs-check-list li:hover{transform:translateX(4px);border-color:var(--cs-rose-dusty);box-shadow:0 6px 20px -8px rgba(168,94,98,.25)}
.cs-check-icon{flex:0 0 auto;width:26px;height:26px;border-radius:50%;background:linear-gradient(135deg, var(--cs-rose-soft), var(--cs-rose-dusty));display:grid;place-items:center;color:#fff;margin-top:1px;box-shadow:0 4px 10px -3px rgba(168,94,98,.35)}
.cs-check-icon svg{width:12px;height:12px;stroke-width:3}

/* ============ MARQUEE ============ */
.cs-marquee{background:var(--cs-cream);border-top:1px solid rgba(42,42,38,.07);border-bottom:1px solid rgba(42,42,38,.07);padding:32px 0;overflow:hidden;position:relative}
.cs-marquee-track{display:flex;gap:60px;animation:cs-scroll 38s linear infinite;width:max-content}
.cs-marquee-item{display:flex;align-items:center;gap:60px;font-family:'Cormorant Garamond',serif;font-size:36px;font-style:italic;font-weight:400;color:var(--cs-green-warm);white-space:nowrap}
.cs-marquee-item .cs-sep{color:var(--cs-terracotta);font-style:normal;font-size:18px}
@keyframes cs-scroll{from{transform:translateX(0)}to{transform:translateX(-50%)}}

/* ============ MOMENTOS ============ */
.cs-moments{background:var(--cs-white-warm);position:relative}
.cs-moments::before, .cs-moments::after{content:"";position:absolute;pointer-events:none;border-radius:50%;filter:blur(80px);z-index:0}
.cs-moments::before{width:400px;height:400px;left:-150px;top:30%;background:rgba(176,189,168,.25)}
.cs-moments::after{width:380px;height:380px;right:-150px;bottom:10%;background:rgba(227,183,184,.32)}
.cs-moments .cs-container{position:relative;z-index:1}
.cs-moments-header{display:grid;grid-template-columns:1.1fr 1fr;gap:80px;align-items:end;margin-bottom:70px}
.cs-moments-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:32px;position:relative}
.cs-moments-grid::before{content:"";position:absolute;left:0;right:0;top:55px;height:1px;background:linear-gradient(to right, transparent, rgba(168,94,98,.35) 15%, rgba(168,94,98,.35) 85%, transparent);z-index:0}
.cs-moment{position:relative;z-index:1;padding:0 8px}
.cs-moment-num{font-family:'Cormorant Garamond',serif;font-style:italic;font-weight:400;font-size:48px;line-height:1;color:var(--cs-terracotta);background:var(--cs-white-warm);padding-right:18px;display:inline-block;position:relative;margin-bottom:30px}
.cs-moment-num::before{content:"";position:absolute;left:-8px;top:50%;transform:translateY(-50%);width:10px;height:10px;border-radius:50%;background:var(--cs-terracotta)}
.cs-moment-h3{font-family:'Cormorant Garamond',serif;font-weight:500;font-size:24px;line-height:1.2;margin:0 0 14px;color:var(--cs-ink);letter-spacing:-.005em}
.cs-moment p{font-size:14.5px;line-height:1.55;color:var(--cs-ink-soft);margin:0}

/* ============ SOBRE CONSUELO ============ */
.cs-about{background:linear-gradient(180deg, var(--cs-green-deep) 0%, var(--cs-green-mid) 100%);color:var(--cs-cream);overflow:hidden;isolation:isolate;position:relative}
.cs-about-bg{position:absolute;inset:0;z-index:0;pointer-events:none}
.cs-about-bg .cs-orb{position:absolute;border-radius:50%;filter:blur(60px);mix-blend-mode:screen}
.cs-about-bg .cs-orb.cs-r1{width:520px;height:520px;right:-100px;top:-100px;background:radial-gradient(circle,rgba(227,183,184,.4),transparent 70%);animation:cs-drift1 24s ease-in-out infinite}
.cs-about-bg .cs-orb.cs-g1{width:460px;height:460px;left:-120px;bottom:-100px;background:radial-gradient(circle,rgba(176,189,168,.35),transparent 70%);animation:cs-drift2 22s ease-in-out infinite}
.cs-about .cs-container{position:relative;z-index:1}
.cs-about-solo{max-width:920px;margin:0 auto;text-align:center}
.cs-about-solo .cs-eyebrow{justify-content:center}
.cs-about-h2{font-family:'Cormorant Garamond',serif;font-weight:500;font-size:clamp(36px,4.2vw,58px);line-height:1.05;letter-spacing:-.012em;color:var(--cs-cream);margin:0 0 30px;text-wrap:pretty}
.cs-about-h2 .cs-ital{background:linear-gradient(95deg, var(--cs-rose-soft), var(--cs-rose-dusty));-webkit-background-clip:text;background-clip:text;color:transparent}
.cs-about-body{font-size:16px;line-height:1.75;color:rgba(246,239,225,.78);max-width:62ch;margin:0 auto}
.cs-about-body p{margin:0}
.cs-about-body p + p{margin-top:14px}
.cs-about-stats{display:flex;justify-content:center;gap:60px;flex-wrap:wrap;margin:48px auto 0;padding-top:36px;border-top:1px solid rgba(246,239,225,.14);max-width:760px}
.cs-about-stat{text-align:center}
.cs-about-stat .cs-num{font-family:'Cormorant Garamond',serif;font-weight:500;font-size:48px;line-height:1;background:linear-gradient(160deg, #f0c8ca, var(--cs-rose-dusty));-webkit-background-clip:text;background-clip:text;color:transparent}
.cs-about-stat .cs-num .cs-pre{font-style:italic;font-weight:400}
.cs-about-stat .cs-label{font-size:11.5px;color:rgba(246,239,225,.6);margin-top:8px;letter-spacing:.14em}
.cs-about-creds{display:flex;flex-wrap:wrap;gap:10px;margin-top:36px;justify-content:center}
.cs-cred{font-size:11.5px;letter-spacing:.12em;text-transform:uppercase;padding:8px 14px;border:1px solid rgba(246,239,225,.2);border-radius:999px;color:rgba(246,239,225,.78);background:rgba(246,239,225,.04)}

/* ============ MODALIDADES ============ */
.cs-modes{background:radial-gradient(80% 70% at 100% 100%, rgba(201,131,136,.16), transparent 60%),radial-gradient(60% 70% at 0% 0%, rgba(176,189,168,.12), transparent 65%),var(--cs-cream);position:relative;overflow:hidden}
.cs-modes::before{content:"";position:absolute;right:-200px;top:-200px;width:520px;height:520px;border-radius:50%;background:radial-gradient(circle, rgba(227,183,184,.22), transparent 70%);filter:blur(40px);pointer-events:none}
.cs-modes .cs-container{position:relative;z-index:1}
.cs-modes-header{margin-bottom:60px;max-width:680px}
.cs-modes-grid{display:grid;grid-template-columns:1fr 1fr;gap:28px}
.cs-mode-card{position:relative;background:var(--cs-white-warm);border-radius:24px;padding:42px 38px;overflow:hidden;transition:transform .4s cubic-bezier(.2,.7,.2,1), box-shadow .4s}
.cs-mode-card:hover{transform:translateY(-4px);box-shadow:0 28px 50px -20px rgba(125,71,71,.3)}
.cs-mode-icon{width:56px;height:56px;border-radius:50%;background:linear-gradient(135deg, var(--cs-green-sage), var(--cs-green-warm));display:grid;place-items:center;color:var(--cs-cream);margin-bottom:28px;box-shadow:0 10px 22px -8px rgba(78,90,72,.4)}
.cs-mode-card.cs-online .cs-mode-icon{background:linear-gradient(135deg, var(--cs-rose-dusty), var(--cs-rose-mid));box-shadow:0 10px 22px -8px rgba(168,94,98,.4)}
.cs-mode-eye{font-size:11px;letter-spacing:.22em;text-transform:uppercase;color:var(--cs-rose-mid);margin-bottom:10px}
.cs-mode-h3{font-family:'Cormorant Garamond',serif;font-weight:500;font-size:32px;line-height:1;margin:0 0 14px;color:var(--cs-ink);letter-spacing:-.01em}
.cs-mode-card p{font-size:15px;line-height:1.6;color:var(--cs-ink-soft);max-width:42ch;margin:0 0 24px}
.cs-mode-meta{display:flex;flex-direction:column;gap:10px;padding-top:20px;border-top:1px solid rgba(42,42,38,.1);font-size:13.5px;color:var(--cs-ink-soft)}
.cs-mode-meta-row{display:flex;align-items:center;gap:10px}
.cs-mode-meta svg{flex:0 0 auto;opacity:.7}
.cs-mode-meta b{color:var(--cs-ink);font-weight:500}
.cs-mode-cta{margin-top:24px;display:inline-flex;align-items:center;gap:10px;padding:14px 22px;border-radius:999px;text-decoration:none;cursor:pointer;border:none;font:500 13.5px/1 'Inter','Manrope',sans-serif;color:#fff !important;background:linear-gradient(135deg, var(--cs-green-sage), var(--cs-green-warm));box-shadow:0 10px 22px -8px rgba(78,90,72,.4), inset 0 1px 0 rgba(255,255,255,.1);transition:transform .3s cubic-bezier(.2,.7,.2,1), box-shadow .3s;position:relative;overflow:hidden}
.cs-mode-cta svg{stroke:#fff;color:#fff}
.cs-mode-cta::before{content:"";position:absolute;inset:0;background:linear-gradient(120deg, transparent 30%, rgba(255,255,255,.22) 50%, transparent 70%);transform:translateX(-120%);transition:transform .9s ease}
.cs-mode-cta:hover{transform:translateY(-2px);box-shadow:0 16px 28px -10px rgba(78,90,72,.5)}
.cs-mode-cta:hover::before{transform:translateX(120%)}
.cs-mode-cta:hover .cs-arrow{transform:translateX(3px)}
.cs-mode-card.cs-online .cs-mode-cta{background:linear-gradient(135deg, var(--cs-rose-dusty), var(--cs-rose-mid));box-shadow:0 10px 22px -8px rgba(168,94,98,.45), inset 0 1px 0 rgba(255,255,255,.1)}
.cs-mode-card.cs-online .cs-mode-cta:hover{box-shadow:0 16px 28px -10px rgba(168,94,98,.55)}
.cs-mode-deco{position:absolute;right:-40px;bottom:-40px;width:200px;height:200px;border-radius:50%;background:radial-gradient(circle at 30% 30%, rgba(176,189,168,.3), transparent 70%);opacity:.6;pointer-events:none}
.cs-mode-card.cs-online .cs-mode-deco{background:radial-gradient(circle at 30% 30%, rgba(227,183,184,.45), transparent 70%)}

/* ============ TESTIMONIOS ============ */
.cs-testim{background:var(--cs-white-warm);position:relative}
.cs-testim-header{display:grid;grid-template-columns:1.1fr 1fr;gap:60px;align-items:end;margin-bottom:60px}
.cs-testim-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.cs-testim-card{background:var(--cs-cream);border:1px solid rgba(42,42,38,.06);border-radius:20px;padding:36px 32px;display:flex;flex-direction:column;gap:24px;transition:transform .35s, box-shadow .35s, border-color .35s}
.cs-testim-card:hover{transform:translateY(-4px);border-color:rgba(168,94,98,.3);box-shadow:0 22px 40px -18px rgba(168,94,98,.2)}
.cs-quote-mark{font-family:'Cormorant Garamond',serif;font-size:54px;line-height:.4;color:var(--cs-rose-dusty);height:18px}
.cs-testim-card blockquote{font-family:'Cormorant Garamond',serif;font-size:21px;line-height:1.35;color:var(--cs-ink);flex:1;text-wrap:pretty;margin:0}
.cs-testim-author{display:flex;align-items:center;gap:12px;padding-top:18px;border-top:1px solid rgba(42,42,38,.08)}
.cs-testim-author .cs-av{width:38px;height:38px;border-radius:50%;background:linear-gradient(135deg, var(--cs-green-sage), var(--cs-rose-dusty));display:grid;place-items:center;color:var(--cs-cream);font-family:'Cormorant Garamond',serif;font-size:15px;font-weight:500;flex:0 0 auto}
.cs-testim-author .cs-meta{font-size:13px;line-height:1.35}
.cs-testim-author .cs-name-small{color:var(--cs-ink);font-weight:500}
.cs-testim-author .cs-where{color:var(--cs-ink-mute);font-size:12px}

/* ============ FAQ ============ */
.cs-faq{background:var(--cs-cream)}
.cs-faq-wrap{display:grid;grid-template-columns:.85fr 1.15fr;gap:80px;align-items:start}
.cs-faq-list{display:flex;flex-direction:column;gap:8px}
.cs-faq-item{background:var(--cs-white-warm);border:1px solid rgba(42,42,38,.06);border-radius:14px;overflow:hidden;transition:border-color .25s}
.cs-faq-item[open]{border-color:rgba(168,94,98,.3)}
.cs-faq-item summary{list-style:none;cursor:pointer;padding:22px 26px;display:flex;align-items:center;justify-content:space-between;gap:24px;font-size:15.5px;font-weight:500;color:var(--cs-ink)}
.cs-faq-item summary::-webkit-details-marker{display:none}
.cs-plus{width:30px;height:30px;border-radius:50%;background:var(--cs-cream);display:grid;place-items:center;color:var(--cs-rose-mid);flex:0 0 auto;transition:transform .3s, background .3s, color .3s}
.cs-faq-item[open] .cs-plus{background:var(--cs-rose-dusty);color:#fff;transform:rotate(45deg)}
.cs-faq-body{padding:0 26px 24px;font-size:14.5px;line-height:1.65;color:var(--cs-ink-soft)}
.cs-faq-aside-card{background:var(--cs-green-deep);color:var(--cs-cream);border-radius:20px;padding:36px;position:sticky;top:100px;margin-top:36px}
.cs-eye{font-size:11px;letter-spacing:.22em;text-transform:uppercase;color:var(--cs-rose-soft);margin-bottom:14px}
.cs-faq-aside-h3{font-family:'Cormorant Garamond',serif;font-weight:500;font-size:30px;line-height:1.05;letter-spacing:-.01em;margin:0 0 16px;color:var(--cs-cream)}
.cs-faq-aside-card p{font-size:14.5px;line-height:1.6;color:rgba(246,239,226,.78);margin:0 0 24px}
.cs-faq-aside-card .cs-btn-primary{padding:14px 24px;font-size:14px}

/* ============ CTA FINAL ============ */
.cs-final-cta{background:linear-gradient(160deg, var(--cs-green-deep) 0%, var(--cs-green-mid) 60%, #5a3a3a 100%);color:var(--cs-cream);text-align:center;overflow:hidden;isolation:isolate;position:relative}
.cs-final-cta::before{content:"";position:absolute;inset:0;z-index:0;background:radial-gradient(60% 80% at 50% 50%, rgba(201,131,136,.35), transparent 60%),radial-gradient(50% 80% at 50% 100%, rgba(176,189,168,.18), transparent 60%);pointer-events:none;animation:cs-wash 16s ease-in-out infinite alternate}
.cs-final-cta .cs-container{position:relative;z-index:1;max-width:780px}
.cs-final-h2{font-family:'Cormorant Garamond',serif;font-weight:500;font-size:clamp(40px,5vw,68px);line-height:1.05;letter-spacing:-.012em;margin:0 0 20px;color:var(--cs-cream)}
.cs-final-h2 .cs-ital{background:linear-gradient(95deg, var(--cs-rose-soft), var(--cs-rose-dusty));-webkit-background-clip:text;background-clip:text;color:transparent}
.cs-final-p{font-size:17px;line-height:1.6;color:rgba(246,239,226,.8);max-width:46ch;margin:0 auto 38px}
.cs-final-cta-row{display:flex;align-items:center;justify-content:center;gap:14px;flex-wrap:wrap}

/* ============ RESPONSIVE ============ */
@media (max-width: 1080px){
  body[data-page="consultas"] .cs-hero-inner{grid-template-columns:1fr;gap:60px}
  body[data-page="consultas"] .cs-portrait{max-width:480px;margin:0 auto}
  body[data-page="consultas"] .cs-for-who .cs-grid,
  body[data-page="consultas"] .cs-testim-header,
  body[data-page="consultas"] .cs-moments-header,
  body[data-page="consultas"] .cs-faq-wrap{grid-template-columns:1fr;gap:50px}
  body[data-page="consultas"] .cs-faq-aside-card{position:static}
  body[data-page="consultas"] .cs-moments-grid{grid-template-columns:repeat(2,1fr);gap:48px 32px}
  body[data-page="consultas"] .cs-moments-grid::before{display:none}
  body[data-page="consultas"] .cs-testim-grid{grid-template-columns:1fr 1fr}
}
@media (max-width: 768px){
  body[data-page="consultas"] .cs-hero{padding:120px 22px 80px;min-height:auto}
  body[data-page="consultas"] .cs-section-pad{padding:90px 22px}
  body[data-page="consultas"] .cs-modes-grid,
  body[data-page="consultas"] .cs-moments-grid{grid-template-columns:1fr}
  body[data-page="consultas"] .cs-testim-grid{grid-template-columns:1fr}
  body[data-page="consultas"] .cs-marquee-item{font-size:26px;gap:34px}
  body[data-page="consultas"] .cs-marquee-track{gap:34px}
  body[data-page="consultas"] .cs-about-stats{gap:22px}
  body[data-page="consultas"] .cs-about-stat .cs-num{font-size:32px}
  body[data-page="consultas"] .cs-check-list li{font-size:14px}
  body[data-page="consultas"] .cs-portrait-mask{border-radius:200px 200px 18px 18px}
}

/* ============================================================
   HEROS PROPIOS POR PÁGINA — sobre / formación / recursos / contacto
   Cada uno con su propio concepto editorial, distintos del index.
   ============================================================ */

/* shared: full-viewport hero on these pages */
body[data-page="sobre"] .page-hero,
body[data-page="formacion"] .page-hero,
body[data-page="recursos"] .page-hero,
body[data-page="contacto"] .page-hero{
  min-height:100vh;
  min-height:100dvh;
  display:flex;align-items:center;
  padding:104px 0 56px;
}
body[data-page="sobre"] .page-hero::after,
body[data-page="formacion"] .page-hero::after,
body[data-page="recursos"] .page-hero::after,
body[data-page="contacto"] .page-hero::after{display:none}

/* ============================================================
   1) SOBRE — "Portada editorial de monografía"
   ============================================================ */
body[data-page="sobre"] .page-hero{
  background:var(--paper);
  position:relative;overflow:hidden;
}
body[data-page="sobre"] .page-hero::before{
  background:
    radial-gradient(50% 60% at 88% 80%, rgba(197,124,121,.12), transparent 65%),
    radial-gradient(45% 55% at 8% 18%, rgba(138,155,130,.10), transparent 70%);
}
.sobre-hero-grid{
  display:grid;grid-template-columns:80px 1fr;
  gap:72px;align-items:center;position:relative;z-index:2;width:100%;
}
.sobre-chapter{
  display:flex;flex-direction:column;align-items:center;gap:22px;
  align-self:center;
}
.sobre-chapter .vt{
  writing-mode:vertical-rl;
  transform:rotate(180deg);
  font-family:var(--sans);
  font-size:10.5px;letter-spacing:.42em;text-transform:uppercase;
  color:var(--ink-mute);font-weight:500;
}
.sobre-chapter .vt-line{
  width:1px;height:90px;
  background:linear-gradient(180deg, transparent 0%, var(--terra) 50%, transparent 100%);
}
.sobre-hero-text h1{
  font-family:var(--serif);font-weight:400;
  font-size:clamp(44px, 5.8vw, 92px);
  line-height:1.02;letter-spacing:-.022em;
  margin:0 0 .28em;text-wrap:balance;
}
.sobre-hero-text h1 em{
  font-style:italic;color:var(--rose-deep);
  position:relative;display:inline-block;
}
.sobre-hero-text h1 em::after{
  content:"";position:absolute;left:-0.05em;right:-0.05em;bottom:.08em;
  height:.34em;background:rgba(197,124,121,.22);
  z-index:-1;border-radius:2px;
}
.sobre-hero-text .lead{margin-top:1.6rem;max-width:54ch}

.sobre-hero-deco{
  position:absolute;
  right:-180px;top:50%;transform:translateY(-50%);
  width:560px;height:560px;
  pointer-events:none;z-index:1;
}
.sobre-hero-deco .ring{
  position:absolute;inset:0;
  border:1px solid rgba(138,155,130,.22);
  border-radius:50%;
  animation:sobre-rotate 90s linear infinite;
}
.sobre-hero-deco .ring::before{
  content:"";position:absolute;inset:60px;
  border:1px dashed rgba(185,101,70,.18);border-radius:50%;
}
.sobre-hero-deco .ring::after{
  content:"";position:absolute;inset:140px;
  border:1px solid rgba(166,96,97,.16);border-radius:50%;
}
.sobre-hero-deco .terra-dot{
  position:absolute;left:50%;top:0;
  transform:translate(-50%,-50%);
  width:18px;height:18px;border-radius:50%;
  background:radial-gradient(circle at 35% 35%, #d88670, var(--terra) 60%, var(--terra-deep) 100%);
  box-shadow:0 0 0 8px rgba(185,101,70,.14), 0 14px 28px -8px rgba(185,101,70,.5);
  animation:pulse-soft 3.6s ease-in-out infinite;
}
@keyframes sobre-rotate{from{transform:rotate(0)}to{transform:rotate(360deg)}}

/* ============================================================
   2) FORMACIÓN — "Mosaico de programas con sello flotante"
   ============================================================ */
body[data-page="formacion"] .page-hero{
  background:
    radial-gradient(60% 70% at 95% 95%, rgba(197,124,121,.10), transparent 65%),
    radial-gradient(50% 60% at 5% 5%, rgba(138,155,130,.10), transparent 70%),
    var(--paper);
  position:relative;overflow:hidden;
}
body[data-page="formacion"] .page-hero::before{display:none}
.form-hero-grid{
  display:grid;grid-template-columns:1.05fr 1fr;
  gap:72px;align-items:center;position:relative;z-index:2;width:100%;
}
.form-hero-text h1{
  font-family:var(--serif);font-weight:400;
  font-size:clamp(40px, 5.2vw, 80px);
  line-height:1.02;letter-spacing:-.018em;
  margin:14px 0 .28em;text-wrap:balance;
}
.form-hero-text h1 em{
  font-style:italic;color:var(--rose-deep);
}
.form-hero-text .lead{margin-top:1.4rem;max-width:50ch}

.form-hero-stack{
  position:relative;height:380px;
  perspective:1400px;
}
.form-hero-stack .prog-card{
  position:absolute;
  /* Aspect-ratio 16:9 = la misma proporción del banner, así la imagen
     entra sin recortes laterales y el título del banner se ve completo.
     Ancho 64% para que cada card tenga buen tamaño sin que el conjunto
     se salga demasiado del contenedor. */
  width:64%;aspect-ratio:16/9;
  border-radius:14px;overflow:hidden;
  box-shadow:0 28px 60px -22px rgba(58,42,30,.4), 0 8px 24px -10px rgba(58,42,30,.15);
  /* Transición suave para hover: posición y sombra reaccionan de forma natural. */
  transition:transform .45s var(--ease-out), box-shadow .45s var(--ease-out);
  cursor:pointer;
  will-change:transform;
  /* Visible por defecto. La keyframe form-card-rise hace el fade-in
     desde opacity:0; si la animación no se dispara, las cards
     quedan igualmente visibles en lugar de dejar hueco.
     fill-mode: NONE — antes era 'forwards' pero eso atrapaba el transform
     en el estado final del keyframe y rompía el hover. Como el estado
     estático ya coincide con el último frame, no se necesita forwards. */
  opacity:1;
  animation:form-card-rise 1.1s var(--ease-out);
}
.form-hero-stack .prog-card img{width:100%;height:100%;object-fit:cover;object-position:left center;filter:saturate(.92)}
/* Cada card conserva su rotación vía var(--r), así el hover puede reutilizarla
   sumando solo el translate y el scale del "lift", sin romper la rotación. */
.form-hero-stack .prog-card.p1{top:8px;left:-2%;transform:rotate(var(--r));animation-delay:.2s}
.form-hero-stack .prog-card.p2{top:46px;left:16%;transform:rotate(var(--r));animation-delay:.35s;z-index:2}
.form-hero-stack .prog-card.p3{top:82px;left:34%;transform:rotate(var(--r));animation-delay:.5s;z-index:3}
.form-hero-stack .prog-card.p4{top:118px;left:52%;transform:rotate(var(--r));animation-delay:.65s;z-index:4}
/* Hover: la card "seleccionada" se eleva un poco con sombra más marcada y
   pasa al frente. Mantiene su rotación original — solo añade translate y
   un leve scale para que se sienta como un objeto flotando sobre el resto.
   Selectores p1/p2/p3/p4 para que la especificidad supere a las reglas
   estáticas (mismo nivel) — así el transform del hover sí se aplica. */
.form-hero-stack .prog-card.p1:hover,
.form-hero-stack .prog-card.p2:hover,
.form-hero-stack .prog-card.p3:hover,
.form-hero-stack .prog-card.p4:hover{
  transform:rotate(var(--r)) translateY(-14px) scale(1.025);
  box-shadow:0 42px 80px -26px rgba(58,42,30,.55), 0 18px 36px -14px rgba(58,42,30,.22);
  z-index:10;
}
@keyframes form-card-rise{
  from{transform:translateY(28px) rotate(var(--r,0))}
  to{transform:rotate(var(--r,0))}
}
.form-hero-stack .prog-card.p1{--r:-7deg}
.form-hero-stack .prog-card.p2{--r:-2deg}
.form-hero-stack .prog-card.p3{--r:3deg}
.form-hero-stack .prog-card.p4{--r:8deg}

.form-hero-seal{
  position:absolute;left:-30px;bottom:-12px;z-index:6;
  background:var(--paper);
  border:1px solid var(--sage);
  border-radius:999px;
  padding:14px 22px 14px 14px;
  display:inline-flex;align-items:center;gap:14px;
  box-shadow:0 22px 48px -14px rgba(58,42,30,.32);
  animation:form-seal-float 6s ease-in-out infinite;
}
.form-hero-seal .seal-mark{
  width:36px;height:36px;border-radius:50%;
  background:var(--sage-deep);color:#EFE5D0;
  display:flex;align-items:center;justify-content:center;
  font-family:var(--serif);font-size:14px;font-weight:500;
}
.form-hero-seal .seal-text{font-size:13px;color:var(--sage-deep);line-height:1.3;text-align:left}
.form-hero-seal .seal-text small{display:block;font-size:10.5px;letter-spacing:.16em;color:var(--ink-mute);text-transform:uppercase;font-weight:500}
.form-hero-seal .seal-text strong{display:block;letter-spacing:.04em;font-weight:500;font-size:13px}
@keyframes form-seal-float{0%,100%{transform:translateY(0) rotate(-1deg)}50%{transform:translateY(-8px) rotate(1deg)}}

/* ============================================================
   3) RECURSOS — "Repertorio interactivo con tags"
   ============================================================ */
body[data-page="recursos"] .page-hero{
  background:
    radial-gradient(50% 60% at 90% 90%, rgba(197,124,121,.10), transparent 65%),
    radial-gradient(50% 60% at 10% 10%, rgba(138,155,130,.10), transparent 70%),
    var(--paper);
  position:relative;overflow:hidden;
  text-align:center;
}
body[data-page="recursos"] .page-hero::before{display:none}
.recursos-hero-content{
  max-width:1020px;margin:0 auto;width:100%;
  position:relative;z-index:2;
}
.recursos-hero-content .eyebrow{justify-content:center;margin-bottom:1.4rem}
.recursos-hero-content h1{
  font-family:var(--serif);font-weight:400;
  font-size:clamp(48px, 6.4vw, 104px);
  line-height:1.0;letter-spacing:-.024em;
  margin:0 0 .25em;text-wrap:balance;
}
.recursos-hero-content h1 em{
  font-style:italic;color:var(--rose-deep);
  position:relative;display:inline-block;
}
.recursos-hero-content h1 em::after{
  content:"";position:absolute;left:-0.05em;right:-0.05em;bottom:.08em;
  height:.34em;background:rgba(197,124,121,.20);
  z-index:-1;border-radius:2px;
}
.recursos-hero-content .lead{margin:0 auto;max-width:58ch}

.recursos-tags{
  display:flex;flex-wrap:wrap;justify-content:center;gap:12px;
  margin-top:40px;
}
.recursos-tags .tag{
  display:inline-flex;align-items:center;gap:10px;
  padding:12px 22px;border-radius:999px;
  background:var(--paper);
  border:1px solid var(--hairline-strong);
  font-family:var(--sans);font-size:13px;
  letter-spacing:.04em;color:var(--ink);font-weight:500;
  cursor:default;
  transition:transform .4s var(--ease-out), border-color .3s var(--ease), background .3s;
  opacity:0;animation:rise-tag .8s ease-out forwards;
}
.recursos-tags .tag:nth-child(1){animation-delay:.4s}
.recursos-tags .tag:nth-child(2){animation-delay:.5s}
.recursos-tags .tag:nth-child(3){animation-delay:.6s}
.recursos-tags .tag:nth-child(4){animation-delay:.7s}
.recursos-tags .tag::before{
  content:"";width:8px;height:8px;border-radius:50%;
  flex-shrink:0;
  animation:pulse-soft 2.8s ease-in-out infinite;
}
.recursos-tags .tag:nth-child(1)::before{background:var(--terra);animation-delay:0s}
.recursos-tags .tag:nth-child(2)::before{background:var(--sage);animation-delay:.6s}
.recursos-tags .tag:nth-child(3)::before{background:var(--rose-deep);animation-delay:1.2s}
.recursos-tags .tag:nth-child(4)::before{background:var(--sand-deep);animation-delay:1.8s}
.recursos-tags .tag:hover{transform:translateY(-4px);border-color:var(--terra);background:#FCFBF7}
@keyframes rise-tag{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}

.recursos-play-cue{
  margin-top:48px;
  display:inline-flex;align-items:center;gap:16px;
  font-family:var(--sans);font-size:12px;
  letter-spacing:.18em;text-transform:uppercase;
  color:var(--ink-mute);text-decoration:none;
  opacity:0;animation:rise-tag 1s .9s ease-out forwards;
  transition:color .3s var(--ease);
}
.recursos-play-cue:hover{color:var(--terra-deep)}
.recursos-play-cue .play-mark{
  width:56px;height:56px;border-radius:50%;
  background:radial-gradient(circle at 35% 35%, #D88670 0%, var(--terra) 55%, var(--terra-deep) 100%);
  color:#FFF8EE;
  display:flex;align-items:center;justify-content:center;
  box-shadow:0 16px 36px -10px rgba(185,101,70,.55);
  position:relative;
}
.recursos-play-cue .play-mark::before{
  content:"";width:0;height:0;margin-left:5px;
  border-left:14px solid currentColor;
  border-top:9px solid transparent;border-bottom:9px solid transparent;
}
.recursos-play-cue .play-mark::after{
  content:"";position:absolute;inset:-6px;border-radius:50%;
  border:1.5px solid var(--terra);opacity:0;
  animation:wa-pulse 2.6s var(--ease-slow) infinite;
}

/* ============================================================
   4) CONTACTO — "Hablemos. minimalista íntimo"
   ============================================================ */
body[data-page="contacto"] .site-header{
  background:rgba(248,245,237,.92);
  backdrop-filter:blur(18px) saturate(1.3);
  -webkit-backdrop-filter:blur(18px) saturate(1.3);
  box-shadow:0 10px 30px -22px rgba(58,42,30,.28);
  border-bottom-color:rgba(31,30,28,.05);
}
body[data-page="contacto"] .page-hero{
  background:
    radial-gradient(50% 60% at 90% 80%, rgba(201,131,136,.28), transparent 65%),
    radial-gradient(45% 55% at 8% 18%, rgba(176,189,168,.20), transparent 70%),
    linear-gradient(180deg, var(--sage-deep) 0%, var(--sage-darker) 100%);
  color:#EFE5D0;
  position:relative;overflow:hidden;
  text-align:center;
}
body[data-page="contacto"] .page-hero::before{
  background:
    radial-gradient(60% 70% at 100% 50%, rgba(201,131,136,.30), transparent 60%),
    radial-gradient(40% 60% at 5% 50%, rgba(176,189,168,.20), transparent 70%);
  mix-blend-mode:screen;
  animation:contacto-wash 18s ease-in-out infinite alternate;
}
@keyframes contacto-wash{
  0%{transform:translate3d(0,0,0) scale(1)}
  100%{transform:translate3d(-3%,2%,0) scale(1.08)}
}
/* Grain on dark hero */
body[data-page="contacto"] .page-hero::after{
  content:"";display:block;position:absolute;inset:-50%;z-index:1;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='240' height='240'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 .3 0'/></filter><rect width='100%25' height='100%25' filter='url(%23n)'/></svg>");
  opacity:.18;mix-blend-mode:overlay;pointer-events:none;
}
.contacto-hero-content{
  max-width:980px;margin:0 auto;width:100%;
  position:relative;z-index:3;
}
.contacto-hero-content .eyebrow{
  justify-content:center;color:var(--coral-soft);margin-bottom:2rem;
}
.contacto-hero-content .eyebrow::before{background:var(--coral-soft);opacity:.65}
.contacto-hero-content .eyebrow .live-dot{
  width:8px;height:8px;border-radius:50%;
  background:#a8c29a;
  box-shadow:0 0 0 0 rgba(168,194,154,.55);
  animation:contacto-pulse-green 2.4s ease-out infinite;
  margin-right:-2px;
}
@keyframes contacto-pulse-green{
  0%{box-shadow:0 0 0 0 rgba(168,194,154,.6)}
  70%{box-shadow:0 0 0 12px rgba(168,194,154,0)}
  100%{box-shadow:0 0 0 0 rgba(168,194,154,0)}
}
.contacto-hero-content h1{
  font-family:var(--serif);font-weight:400;
  font-size:clamp(82px, 13vw, 200px);
  line-height:.94;letter-spacing:-.045em;
  color:#F1E6D2;margin:0 0 .12em;
}
.contacto-hero-content h1 em{
  font-style:italic;font-weight:400;
  background:linear-gradient(95deg, #e6b3b4 0%, var(--cs-rose-dusty, #c98388) 60%, #b06b6f 100%);
  -webkit-background-clip:text;background-clip:text;color:transparent;
}
.contacto-hero-content .lead{
  color:rgba(241,230,210,.82);
  font-size:clamp(15px,1.2vw,18px);
  margin:0 auto 44px;max-width:54ch;
}
.contacto-channels-row{
  display:flex;justify-content:center;gap:14px;flex-wrap:wrap;
}
.contacto-channels-row a{
  display:inline-flex;align-items:center;gap:10px;
  padding:14px 26px;border-radius:999px;
  background:rgba(241,230,210,.06);
  border:1px solid rgba(241,230,210,.22);
  color:#F1E6D2;text-decoration:none;
  font-family:var(--sans);font-size:13.5px;letter-spacing:.04em;font-weight:500;
  transition:background .35s var(--ease), transform .35s var(--ease-out), border-color .35s var(--ease);
}
.contacto-channels-row a:hover{
  background:rgba(241,230,210,.16);
  border-color:rgba(241,230,210,.42);
  transform:translateY(-2px);
}
.contacto-channels-row a.primary{
  background:linear-gradient(135deg, #c47379 0%, #a85e62 55%, #8a4a52 100%);
  border-color:transparent;color:#fff;
  box-shadow:0 14px 30px -10px rgba(168,94,98,.55), inset 0 1px 0 rgba(255,255,255,.08);
}
.contacto-channels-row a.primary:hover{
  transform:translateY(-3px);
  box-shadow:0 22px 40px -12px rgba(168,94,98,.7);
}
.contacto-channels-row a svg{flex-shrink:0;opacity:.95}

/* ============================================================
   Responsive — todos los heros se relajan en mobile
   ============================================================ */
@media (max-width:900px){
  body[data-page="sobre"] .page-hero,
  body[data-page="formacion"] .page-hero,
  body[data-page="recursos"] .page-hero,
  body[data-page="contacto"] .page-hero{
    min-height:auto;display:block;padding:130px 0 80px;
  }
  .sobre-hero-grid{grid-template-columns:1fr;gap:28px}
  .sobre-chapter{flex-direction:row;justify-content:flex-start;gap:14px;margin-bottom:6px}
  .sobre-chapter .vt{writing-mode:horizontal-tb;transform:none}
  .sobre-chapter .vt-line{width:60px;height:1px;background:linear-gradient(90deg,transparent,var(--terra),transparent)}
  .sobre-hero-deco{display:none}
  .form-hero-grid{grid-template-columns:1fr;gap:56px}
  .form-hero-stack{height:300px;max-width:440px;margin:0 auto}
  .form-hero-seal{left:-8px;bottom:-20px;padding:10px 18px 10px 10px}
  .form-hero-seal .seal-mark{width:30px;height:30px;font-size:12px}
  .form-hero-seal .seal-text strong{font-size:11.5px}
  .contacto-hero-content h1{font-size:clamp(72px, 18vw, 140px)}
  .contacto-channels-row{flex-direction:column;align-items:stretch;max-width:340px;margin:0 auto}
  .contacto-channels-row a{justify-content:center}
}

/* ---------- YouTube embed cards (Recursos) ------------------------------ */
.yt-grid{display:grid;grid-template-columns:1fr 1fr;gap:28px;margin-top:8px}
.yt-card{display:flex;flex-direction:column;background:var(--paper);border:1px solid var(--hairline);border-radius:14px;overflow:hidden;transition:transform .55s var(--ease-out), box-shadow .55s var(--ease-out), border-color .4s var(--ease)}
.yt-card:hover{transform:translateY(-5px);box-shadow:0 28px 52px -24px rgba(58,42,30,.34);border-color:transparent}
.yt-frame{position:relative;aspect-ratio:16/9;background:#000;overflow:hidden}
.yt-frame iframe{position:absolute;inset:0;width:100%;height:100%;border:0;display:block}
.yt-card-body{padding:24px 26px 26px;display:flex;flex-direction:column;gap:10px}
.yt-card-body .yt-meta{font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:var(--terra-deep);font-weight:500}
.yt-card-body h4{margin:0;font-family:var(--serif);font-size:21px;line-height:1.28;color:var(--ink);font-weight:500}
.yt-card-body p{margin:0;font-size:14.5px;color:var(--ink-soft);line-height:1.6}
.yt-card-body .yt-foot{margin-top:6px;display:flex;align-items:center;justify-content:space-between;font-size:13px;color:var(--sage-deep)}
.yt-card-body .yt-foot a{color:var(--sage-deep);transition:color .3s var(--ease)}
.yt-card-body .yt-foot a:hover{color:var(--terra-deep)}
@media (max-width:768px){.yt-grid{grid-template-columns:1fr;gap:22px}}

/* ---------- Badge "Ejemplo · Beta" -------------------------------------- */
.beta-badge{display:inline-flex;align-items:center;gap:9px;padding:7px 16px;border-radius:999px;background:rgba(221,131,102,.1);border:1px dashed var(--terra);color:var(--terra-deep);font-size:10.5px;letter-spacing:.22em;text-transform:uppercase;font-weight:500;margin-bottom:14px}
.beta-badge::before{content:"";width:7px;height:7px;border-radius:50%;background:var(--terra);animation:pulse-soft 2s var(--ease-slow) infinite}
.beta-inline{display:inline-block;margin-left:10px;font-family:var(--sans);font-size:12px;color:var(--terra-deep);letter-spacing:.18em;text-transform:uppercase;font-weight:500;background:rgba(221,131,102,.12);padding:4px 10px;border-radius:999px;vertical-align:middle}

/* ---------- Masterclass featured — animación extra ---------------------- */
.media-featured.is-ejemplo{position:relative}
.media-featured.is-ejemplo::after{content:"Vista previa · contenido de ejemplo";position:absolute;top:18px;left:18px;background:rgba(31,30,28,.82);color:#FFF8EE;font-size:10.5px;letter-spacing:.18em;text-transform:uppercase;padding:7px 14px;border-radius:999px;z-index:3;backdrop-filter:blur(8px);font-weight:500;pointer-events:none}
.media-featured.is-ejemplo .play-ico{animation:breath-ring 3.4s var(--ease-slow) infinite}
@keyframes breath-ring{0%,100%{box-shadow:0 18px 36px -12px rgba(58,42,30,.5), 0 0 0 0 rgba(221,131,102,.5)}50%{box-shadow:0 18px 36px -12px rgba(58,42,30,.5), 0 0 0 22px rgba(221,131,102,0)}}
.media-featured.is-ejemplo .media-thumb img{animation:slow-zoom 14s var(--ease-slow) infinite alternate}
@keyframes slow-zoom{from{transform:scale(1)}to{transform:scale(1.06)}}

/* ---------- Podcast cards (YouTube) ------------------------------------ */
.podcast-grid{display:grid;grid-template-columns:1fr 1fr;gap:32px;margin-top:8px}
.podcast-card{background:var(--paper);border:1px solid var(--hairline);border-radius:16px;overflow:hidden;display:flex;flex-direction:column;transition:transform .55s var(--ease-out), box-shadow .55s var(--ease-out)}
.podcast-card:hover{transform:translateY(-6px);box-shadow:0 32px 60px -28px rgba(58,42,30,.36)}
.podcast-card .pc-frame{position:relative;aspect-ratio:16/9;background:#000}
.podcast-card .pc-frame iframe{position:absolute;inset:0;width:100%;height:100%;border:0;display:block}
.podcast-card .pc-body{padding:28px 30px 30px;display:flex;flex-direction:column;gap:11px}
.podcast-card .pc-meta{font-size:11px;letter-spacing:.22em;text-transform:uppercase;color:var(--rose-deep);font-weight:500;display:inline-flex;align-items:center;gap:9px}
.podcast-card .pc-meta::before{content:"";width:9px;height:9px;border-radius:50%;background:var(--rose-deep);animation:pulse-soft 2.4s var(--ease-slow) infinite}
.podcast-card h4{margin:0;font-family:var(--serif);font-size:23px;line-height:1.25;color:var(--ink);font-weight:500;letter-spacing:-.005em}
.podcast-card p{margin:0;font-size:14.5px;color:var(--ink-soft);line-height:1.65}
.podcast-card .pc-foot{margin-top:6px;display:flex;align-items:center;justify-content:space-between;font-size:12.5px;color:var(--sage-deep);letter-spacing:.04em}
.podcast-card .pc-foot .arrow{transition:transform .35s var(--ease-out);font-size:16px}
.podcast-card:hover .pc-foot .arrow{transform:translate(4px,-4px)}
@media (max-width:900px){.podcast-grid{grid-template-columns:1fr;gap:24px}}

/* ---------- Overrides para la página Movimientos del Alma ---------------- */
/* El header del sitio es position:fixed; aseguramos que el hero del handoff
   tenga suficiente padding superior para no quedar tapado. */
.mda .hero{padding-top:clamp(160px, 18vh, 210px)}
@media (max-width:768px){.mda .hero{padding-top:clamp(140px, 22vh, 180px)}}

/* ===========================================================================
   AJUSTES MÓVIL (fix de legibilidad y desbordes)
   - Evitar palabras que se juntan o cortan al final de línea
   - Tipografías delgadas/chicas: más tamaño y peso para mejor contraste
   - Bullets/listas: que quepan uniformes en una línea cuando sea posible
   =========================================================================== */
@media (max-width:768px){
  /* Anti-cortes: permitir que palabras largas rompan sin desbordar.
     OJO: nada de hyphens:auto en titulares — generaba cortes feos
     tipo "Formación co-" / "n respaldo oficial". Solo wrap normal. */
  body{overflow-wrap:break-word;word-wrap:break-word}
  h1,h2,h3,h4,h5,.hero-cinema h1,.sobre-hero-text h1,.form-hero-text h1,
  .recursos-hero-content h1,.contacto-hero-content h1,.cs-h1,.cs-section-title,
  .cs-about-h2,.cs-final-h2,.banner h1,.banner h2,.tray-banner h1,.tray-banner h2{
    overflow-wrap:break-word;word-wrap:break-word;
    hyphens:manual;-webkit-hyphens:manual;
    text-wrap:balance;
  }
  p,li,blockquote,span,figcaption{overflow-wrap:break-word;word-wrap:break-word}

  /* Tipografía base: cuerpo un punto más, peso medio para mejor contraste */
  body{font-size:16.5px;line-height:1.68}
  p{font-weight:400}
  .lead,.hero-cinema .lead,.hero-text .lead,.cs-section-lede,
  .cs-hero-lede,.cs-about-body,.cs-mode-card p,.cs-moment p,.cs-faq-body{
    font-size:16px;line-height:1.6;font-weight:450;
  }
  /* Manrope no tiene 450 — caemos a 500 que es lo siguiente disponible */
  @supports not (font-weight:450){
    .lead,.hero-cinema .lead,.hero-text .lead,.cs-section-lede,
    .cs-hero-lede,.cs-about-body,.cs-mode-card p,.cs-moment p,.cs-faq-body{
      font-weight:500;
    }
  }
  /* Color un grado más oscuro para texto secundario claro en cremas */
  .lead,.hero-cinema .lead,.hero-text .lead,.cs-section-lede,
  .cs-moment p,.cs-mode-card p,.cs-faq-body,
  .card p,.pillar p,.mega-card p,.media-card p,.podcast-card p,
  .yt-card-body p,.tl-content p,.contact-card .sub,.module-block .b p,
  .step p,.method-item p{
    color:#3D3936;
  }

  /* Eyebrow: reducir letter-spacing para que no se "abra" la palabra */
  .eyebrow,.cs-eyebrow,.cs-hero-eyebrow,.cs-mode-eye,.beta-badge,
  .card-meta,.banner .b-eyebrow,.tray-banner .t-eyebrow{
    letter-spacing:.16em;
    font-weight:600;
  }
  .eyebrow{font-size:11.5px}
  .cs-eyebrow,.cs-hero-eyebrow{font-size:12px}

  /* Trust bar (home) — chips horizontales legibles */
  .hero-cinema-trust,.hero-trust{
    font-size:12px;letter-spacing:.12em;color:var(--ink-soft);font-weight:500;
  }
  .hero-cinema-trust span,.hero-trust span{line-height:1.4}

  /* Marquesina más pequeña y menos cortes */
  .marquee-item{font-size:18px;letter-spacing:0}
  .cs-marquee-item{font-size:22px;gap:28px}

  /* Sidebar spec-list (cursos): 2 columnas son muy estrechas en móvil */
  .sidebar-card .spec-list{grid-template-columns:1fr;column-gap:0}
  .sidebar-card .spec-list li{
    grid-template-columns:1fr auto;padding:11px 0;font-size:13.5px;
  }
  .sidebar-card .spec-list li:nth-last-child(-n+2){border-bottom:1px solid var(--hairline)}
  .sidebar-card .spec-list li:last-child{border-bottom:none}
  .sidebar-card .spec-list .v{font-size:13.5px}
  .sidebar-card{padding:24px 22px}
  .sidebar-card .ctas{flex-direction:column;gap:10px}
  .sidebar-card .ctas .btn{width:100%}

  /* Check list (consultas) — compacto, una línea cuando sea posible */
  .cs-check-list{gap:10px}
  .cs-check-list li{
    padding:13px 16px;gap:12px;font-size:14.5px;line-height:1.45;
    color:var(--cs-ink);font-weight:450;
  }
  @supports not (font-weight:450){
    .cs-check-list li{font-weight:500}
  }
  .cs-check-icon{width:22px;height:22px;margin-top:0}
  .cs-check-icon svg{width:10px;height:10px}

  /* Checklist genérica (sobrepeso, talleres) — uniforme y compacto */
  .checklist{gap:14px}
  .checklist li{
    grid-template-columns:22px 1fr;gap:12px;font-size:15px;
    line-height:1.5;padding-bottom:14px;color:#3D3936;font-weight:450;
  }
  @supports not (font-weight:450){
    .checklist li{font-weight:500}
  }
  .checklist .ck{width:22px;height:22px;font-size:11px}
  /* Cualquier <span> inline con font-size 14.5 dentro de checklist queda en 14.5 — lo normalizamos */
  .checklist li span[style*="14.5"]{font-size:15px !important}

  /* Footer: más legible */
  .footer-grid h5{font-size:11px;color:rgba(239,229,208,.7)}
  .footer-grid a{font-size:14px;color:rgba(239,229,208,.92)}
  .footer-bottom{font-size:12px;color:rgba(239,229,208,.65);letter-spacing:.02em}
  .footer-brand p{font-size:14px;color:rgba(239,229,208,.78)}
  .footer-newsletter p{font-size:14px;color:rgba(239,229,208,.78)}

  /* Educación / edu-list (sobre) */
  .edu-item__name{font-size:14.5px;font-weight:500;line-height:1.4}
  .edu-item__meta{font-size:12.5px;color:var(--ink-soft);font-weight:450;line-height:1.5}
  @supports not (font-weight:450){
    .edu-item__meta{font-weight:500}
  }
  .edu-group{padding:24px 22px}
  .edu-group__title{font-size:18px}

  /* Card-meta y pill: peso/tamaño un poco mayor */
  .card-meta,.podcast-card .pc-meta,.yt-card-body .yt-meta,
  .media-card .media-meta{font-size:11.5px;letter-spacing:.16em;font-weight:600}

  /* Stats labels */
  .stat .label{font-size:14px;color:var(--ink-soft);font-weight:500}
  .tray-stripe .stat-row .label{font-size:13.5px;color:rgba(239,229,208,.82);letter-spacing:.04em}
  .cs-about-stat .cs-label{font-size:12.5px;letter-spacing:.1em;color:rgba(246,239,225,.78)}

  /* Modes (consultas) — meta legible y CTA cómodo */
  .cs-mode-meta{font-size:14px;color:var(--cs-ink-soft);gap:10px}
  .cs-mode-cta{padding:13px 20px;font-size:13.5px;width:100%;justify-content:center}

  /* Acordeón */
  .acc-trigger{font-size:18px;line-height:1.32;gap:14px;padding:20px 0}

  /* Module / spec rows: evita cortes feos */
  .module-title{line-height:1.28;letter-spacing:-.005em}
  .module-row .date-stack{font-size:19px}

  /* "Movimientos del Alma" en hero/nav: previene corte raro */
  .nav-script,.brand-name{overflow-wrap:normal;word-wrap:normal}

  /* Pillar pills en hero (chips bajo retrato) — aire respecto a la imagen */
  .pillar-pills{margin-top:32px;gap:10px}
  .pillar-pills .pill{font-size:13.5px;font-weight:500}

  /* Más respiro entre imagen y tags/meta dentro de las cards */
  .card{padding:32px 26px}
  .card .thumb{margin:-32px -26px 22px}
  .card.card-pad-lg .thumb{margin:-42px -32px 24px}
  .card.card-pad-xl{padding:44px 32px}
  .card.card-pad-xl .thumb{margin:-44px -32px 24px}

  /* Mega-cards (Formación · "Dos viajes principales") — aire bajo la imagen */
  .mega-card .mega-body{padding:36px 30px 38px}
  .mega-card .mega-meta{margin-top:6px;margin-bottom:18px}

  /* Media / Podcast / YT cards — separar pills del thumbnail */
  .media-card .media-body{padding:30px 28px 32px}
  .media-card .media-meta{margin-bottom:12px}
  .yt-card-body{padding:26px 26px 28px;gap:12px}
  .podcast-card .pc-body{padding:28px 26px 30px;gap:12px}

  /* RVOE seal — texto a veces se sale */
  .rvoe-seal{padding:14px 20px;gap:12px}
  .rvoe-seal .seal-text strong{font-size:12.5px;letter-spacing:.04em}
  .rvoe-seal .seal-text small{font-size:10.5px;letter-spacing:.12em}

  /* Banner editorial (verde/rosa) — h1 que no se corte */
  .banner h1,.banner h2{font-size:clamp(30px,7.4vw,46px);letter-spacing:-.008em}
  .banner .b-lede,.banner .lede{font-size:15px;line-height:1.6;color:rgba(244,239,226,.88)}

  /* Contacto: lead más legible sobre verde oscuro */
  .contacto-hero-content .lead{color:rgba(241,230,210,.92);font-size:16px;font-weight:500}
  .contacto-channels-row a{font-size:14.5px;padding:14px 22px}
}

/* Móvil pequeño */
@media (max-width:560px){
  /* Headings: bajar letter-spacing extremo para evitar palabras pegadas */
  h1,h2{letter-spacing:-.018em}
  .eyebrow,.cs-eyebrow,.cs-hero-eyebrow{letter-spacing:.14em;font-size:11.5px}

  /* Hero trust: una sola línea por chip, sin uppercase apretado */
  .hero-cinema-trust,.hero-trust{
    font-size:12px;letter-spacing:.08em;
    text-transform:none;font-variant:all-small-caps;
  }
  .hero-cinema-trust span,.hero-trust span{gap:10px}

  /* Sidebar */
  .sidebar-card .spec-list li{font-size:13px}
  .sidebar-card .price{font-size:30px}

  /* Check list compacta y uniforme */
  .cs-check-list li{padding:12px 14px;font-size:14px;border-radius:12px}
  .checklist li{font-size:14.5px;gap:10px;grid-template-columns:20px 1fr}
  .checklist .ck{width:20px;height:20px;font-size:10px}

  /* Edu list */
  .edu-group{padding:20px 18px}
  .edu-item__name{font-size:14px}
  .edu-item__meta{font-size:12px}

  /* Marquesina */
  .marquee-item{font-size:17px}
  .cs-marquee-item{font-size:20px;gap:24px}

  /* Tray banner / banner */
  .banner h1,.banner h2{font-size:clamp(28px,8vw,40px)}
  .tray-banner h1,.tray-banner h2{font-size:clamp(22px,6.5vw,30px)}

  /* Footer */
  .footer-grid h5{font-size:10.5px}
  .footer-grid a{font-size:13.5px}
}

/* Móvil muy pequeño (≤380): evitar overflow horizontal por palabras largas */
@media (max-width:380px){
  h1,h2,h3{hyphens:manual;-webkit-hyphens:manual;overflow-wrap:anywhere}
  .hero-cinema h1,.sobre-hero-text h1,.form-hero-text h1,
  .recursos-hero-content h1,.cs-h1{font-size:clamp(34px,9.5vw,46px)}
  .contacto-hero-content h1{font-size:clamp(54px,16vw,82px)}
  .marquee-item{font-size:16px}
  .cs-check-list li{font-size:13.5px;padding:11px 12px}
  .sidebar-card .spec-list li{font-size:12.5px}
  .sidebar-card .spec-list .v{font-size:12.5px}
  .hero-cinema-trust,.hero-trust{font-size:11.5px;letter-spacing:.06em}
}

/* ===========================================================================
   RESONANCIAS · Portada de fichas (insert visual entre secciones)
   =========================================================================== */
.fichas-portrait{
  margin:28px 0 56px;
  display:grid;grid-template-columns:1.05fr .95fr;gap:48px;align-items:center;
  position:relative;
}
.fichas-portrait__img{
  position:relative;aspect-ratio:4/5;border-radius:8px;overflow:hidden;
  box-shadow:0 28px 60px -22px rgba(58,42,30,.45), 0 10px 26px -14px rgba(58,42,30,.2);
  isolation:isolate;
}
.fichas-portrait__img::before{
  /* marco interno suave */
  content:"";position:absolute;inset:12px;border:1px solid rgba(255,248,238,.5);
  border-radius:4px;pointer-events:none;z-index:2;
}
.fichas-portrait__img::after{
  /* halo rosa al fondo del bloque */
  content:"";position:absolute;inset:auto -22px -22px auto;width:96px;height:96px;
  border-radius:50%;
  background:radial-gradient(circle at 35% 35%, #D88670 0%, var(--rose) 55%, var(--rose-deep) 100%);
  box-shadow:0 18px 40px -12px rgba(166,96,97,.55);
  z-index:3;
  animation:dot-breath 5s var(--ease-slow) infinite;
}
.fichas-portrait__img img{
  width:100%;height:100%;object-fit:cover;object-position:center 30%;
  filter:saturate(.95) contrast(1.02);
  transition:transform 2.4s var(--ease-slow), filter .8s var(--ease);
}
.fichas-portrait:hover .fichas-portrait__img img{transform:scale(1.06);filter:saturate(1.05) contrast(1.04)}
.fichas-portrait figcaption{
  padding:0 8px;
}
.fichas-portrait figcaption p{
  font-family:var(--serif);font-size:clamp(20px,2vw,26px);line-height:1.4;
  color:var(--ink);font-style:italic;margin-top:14px;max-width:36ch;
}
@media (max-width:900px){
  .fichas-portrait{grid-template-columns:1fr;gap:24px;margin:18px 0 36px}
  .fichas-portrait__img{max-width:520px;margin:0 auto}
}

/* ===========================================================================
   SOBRE · Carrusel editorial — tres tiempos
   - Cross-fade entre slides + Ken Burns en cada imagen
   - Letras de la palabra clave entran una por una
   - Tint cambia por slide (terra / rose / sage)
   - Barra de progreso en los dots indica autoplay
   =========================================================================== */
.sobre-carousel-section{position:relative}

.sobre-carousel{
  --sc-h: clamp(520px, 72vh, 720px);
  --sc-tint: var(--terra);
  --sc-tint-deep: var(--terra-deep);
  position:relative;border-radius:14px;overflow:hidden;
  background:#1F1E1C;
  isolation:isolate;
  box-shadow:0 40px 80px -32px rgba(31,30,28,.55), 0 12px 32px -14px rgba(31,30,28,.32);
  transition:--sc-tint .9s var(--ease), --sc-tint-deep .9s var(--ease);
}

/* Variantes de tint por slide activo */
.sobre-carousel[data-active-tint="terra"]{--sc-tint:var(--terra);--sc-tint-deep:var(--terra-deep)}
.sobre-carousel[data-active-tint="rose"] {--sc-tint:var(--rose);--sc-tint-deep:var(--rose-deep)}
.sobre-carousel[data-active-tint="sage"] {--sc-tint:var(--sage);--sc-tint-deep:var(--sage-deep)}

.sc-stage{
  position:relative;height:var(--sc-h);width:100%;overflow:hidden;
}

.sc-slide{
  position:absolute;inset:0;
  display:grid;grid-template-columns:1fr;
  opacity:0;visibility:hidden;
  transition:opacity 1.1s var(--ease-slow), visibility 0s linear 1.1s;
  pointer-events:none;
}
.sc-slide.is-active{
  opacity:1;visibility:visible;pointer-events:auto;
  transition:opacity 1.1s var(--ease-slow), visibility 0s linear 0s;
}

/* Imagen — Ken Burns lento mientras el slide está activo */
.sc-img{
  position:absolute;inset:0;overflow:hidden;z-index:0;
}
.sc-img img{
  width:100%;height:100%;object-fit:cover;object-position:center 22%;
  filter:saturate(.92) contrast(1.04) brightness(.96);
  transform:scale(1.08);
  transition:transform 1.4s var(--ease-slow);
}
.sc-slide.is-active .sc-img img{
  animation:sc-ken-burns 12s var(--ease-slow) forwards;
}
@keyframes sc-ken-burns{
  0%   {transform:scale(1.05) translate(0,0)}
  50%  {transform:scale(1.14) translate(-1.2%,-1.6%)}
  100% {transform:scale(1.22) translate(1.4%,1.2%)}
}

/* Veil oscuro inferior para legibilidad de copy */
.sc-veil{
  position:absolute;inset:0;z-index:1;pointer-events:none;
  background:
    linear-gradient(180deg, rgba(31,30,28,0) 30%, rgba(31,30,28,.25) 55%, rgba(31,30,28,.78) 100%),
    linear-gradient(90deg, rgba(31,30,28,.45) 0%, rgba(31,30,28,0) 55%);
}
/* Glow del tint en una esquina, vivo */
.sc-glow{
  position:absolute;inset:auto -10% -25% -10%;height:75%;z-index:1;
  pointer-events:none;
  background:
    radial-gradient(60% 70% at 18% 90%, var(--sc-tint-deep) 0%, transparent 60%),
    radial-gradient(45% 65% at 92% 95%, var(--sc-tint) 0%, transparent 70%);
  opacity:.55;mix-blend-mode:soft-light;
  filter:blur(40px);
  animation:sc-glow-drift 14s ease-in-out infinite alternate;
}
@keyframes sc-glow-drift{
  0%   {transform:translate3d(0,0,0)}
  100% {transform:translate3d(-4%, -3%, 0)}
}
.sc-grain{
  position:absolute;inset:0;z-index:2;pointer-events:none;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='240' height='240'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 .35 0'/></filter><rect width='100%25' height='100%25' filter='url(%23n)'/></svg>");
  opacity:.18;mix-blend-mode:overlay;
}

/* Copy del slide — palabra grande, eyebrow lateral, caption */
.sc-copy{
  position:absolute;left:0;right:0;bottom:0;z-index:5;
  padding:clamp(28px, 5vw, 64px) clamp(28px, 6vw, 80px) clamp(36px, 5vw, 68px);
  color:#FFF8EE;
  display:grid;gap:14px;
  pointer-events:none;
}
.sc-eyebrow{
  font-family:var(--serif);font-style:italic;font-size:clamp(14px,1.4vw,18px);
  letter-spacing:.04em;color:var(--sc-tint);opacity:0;
  transform:translateY(14px);
  transition:opacity .8s var(--ease), transform .8s var(--ease-out);
}
.sc-slide.is-active .sc-eyebrow{opacity:1;transform:translateY(0);transition-delay:.15s}

.sc-word{
  margin:0;font-family:var(--serif);font-weight:400;font-style:italic;
  font-size:clamp(64px, 12vw, 168px);line-height:.92;letter-spacing:-.02em;
  color:#FFF8EE;
  text-shadow:0 14px 40px rgba(31,30,28,.45);
  display:flex;flex-wrap:wrap;gap:0;
}
.sc-word .l{
  display:inline-block;
  opacity:0;transform:translateY(60%) rotate(6deg);
  transition:opacity .9s var(--ease-slow), transform 1s var(--ease-back);
}
.sc-slide.is-active .sc-word .l{opacity:1;transform:translateY(0) rotate(0)}
.sc-slide.is-active .sc-word .l:nth-child(1){transition-delay:.25s}
.sc-slide.is-active .sc-word .l:nth-child(2){transition-delay:.32s}
.sc-slide.is-active .sc-word .l:nth-child(3){transition-delay:.39s}
.sc-slide.is-active .sc-word .l:nth-child(4){transition-delay:.46s}
.sc-slide.is-active .sc-word .l:nth-child(5){transition-delay:.53s}
.sc-slide.is-active .sc-word .l:nth-child(6){transition-delay:.6s}
.sc-slide.is-active .sc-word .l:nth-child(7){transition-delay:.67s}

.sc-cap{
  font-family:var(--sans);font-size:clamp(14.5px,1.1vw,17px);line-height:1.55;
  color:rgba(255,248,238,.86);max-width:46ch;margin:8px 0 0;
  opacity:0;transform:translateY(14px);
  transition:opacity .9s var(--ease), transform .9s var(--ease-out);
}
.sc-slide.is-active .sc-cap{opacity:1;transform:translateY(0);transition-delay:.85s}

/* Controles */
.sc-controls{
  position:absolute;left:0;right:0;bottom:0;z-index:8;
  display:flex;align-items:center;justify-content:space-between;gap:18px;
  padding:18px clamp(20px, 4vw, 36px) 22px;
  pointer-events:none;
}
.sc-controls > *{pointer-events:auto}

.sc-arrow{
  width:46px;height:46px;border-radius:50%;
  background:rgba(255,248,238,.12);
  border:1px solid rgba(255,248,238,.32);
  color:#FFF8EE;
  backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);
  display:inline-flex;align-items:center;justify-content:center;
  transition:transform .4s var(--ease-out), background .3s var(--ease), border-color .3s var(--ease);
  cursor:pointer;
}
.sc-arrow svg{width:20px;height:20px}
.sc-arrow:hover{
  background:var(--sc-tint);border-color:var(--sc-tint);
  transform:translateY(-2px) scale(1.06);
}

.sc-dots{
  flex:1;display:flex;align-items:center;justify-content:center;
  gap:clamp(14px, 2vw, 28px);
}
.sc-dot{
  display:flex;flex-direction:column;align-items:flex-start;gap:8px;
  background:transparent;border:none;padding:6px 0;cursor:pointer;
  color:rgba(255,248,238,.55);
  font-family:var(--sans);font-size:10.5px;letter-spacing:.18em;
  text-transform:uppercase;font-weight:600;
  transition:color .3s var(--ease);
  min-width:90px;
}
.sc-dot.is-active{color:#FFF8EE}
.sc-dot:hover{color:rgba(255,248,238,.92)}
.sc-dot-bar{
  position:relative;display:block;width:100%;height:2px;
  background:rgba(255,248,238,.22);overflow:hidden;border-radius:2px;
}
.sc-dot-fill{
  position:absolute;left:0;top:0;bottom:0;width:0;
  background:var(--sc-tint);
  border-radius:2px;
  transition:background .3s var(--ease);
}
/* Cuando el slide está activo, la barra se va llenando 6s — controlado por JS via clase */
.sc-dot.is-active .sc-dot-fill{
  animation:sc-progress 6.2s linear forwards;
}
@keyframes sc-progress{from{width:0}to{width:100%}}

/* Borde decorativo al pasar el ratón */
.sobre-carousel::before{
  content:"";position:absolute;inset:0;z-index:3;pointer-events:none;
  border-radius:14px;
  box-shadow:inset 0 0 0 1px rgba(255,248,238,.06);
}

/* Responsive */
@media (max-width:900px){
  .sobre-carousel{--sc-h: clamp(440px, 80vh, 560px)}
  .sc-copy{padding:24px 22px 28px}
  .sc-cap{font-size:14.5px}
  .sc-dot{min-width:70px;font-size:9.5px;letter-spacing:.14em}
  .sc-arrow{width:42px;height:42px}
}
@media (max-width:560px){
  .sobre-carousel{--sc-h: clamp(440px, 75vh, 520px)}
  .sc-word{font-size:clamp(58px, 18vw, 90px)}
  .sc-controls{padding:14px 16px 18px}
  .sc-dot-lbl{display:none}
  .sc-dot{min-width:0;flex:1}
  .sc-dots{gap:10px}
}

@media (prefers-reduced-motion: reduce){
  .sc-slide.is-active .sc-img img{animation:none;transform:scale(1.04)}
  .sc-slide .sc-word .l{transition:none;opacity:1;transform:none}
  .sc-eyebrow,.sc-cap{transition:none;opacity:1;transform:none}
  .sc-glow{animation:none}
  .sc-dot.is-active .sc-dot-fill{animation:none;width:100%}
}

/* ===========================================================================
   Variante INLINE — carrusel insertado en la columna izquierda del Manifiesto
   En lugar de ser full-bleed, vive dentro de .quote-moment como reemplazo
   del retrato .qm-img. Conserva todas las animaciones, pero con escala menor.
   =========================================================================== */
.sobre-carousel.sobre-carousel--inline{
  --sc-h: auto;
  border-radius:6px;
  box-shadow:var(--shadow-card);
  aspect-ratio:3/4;
}
.sobre-carousel--inline .sc-stage{
  height:100%;
}
.sobre-carousel--inline .sc-img img{object-position:center 18%}

/* Tipografía escalada para columna */
.sobre-carousel--inline .sc-copy{
  padding:clamp(22px, 3vw, 36px) clamp(22px, 3vw, 38px) clamp(64px, 8vw, 88px);
}
.sobre-carousel--inline .sc-eyebrow{
  font-size:clamp(12px, 1.2vw, 15px);
}
.sobre-carousel--inline .sc-word{
  font-size:clamp(54px, 6.6vw, 96px);
  line-height:.94;
}
.sobre-carousel--inline .sc-cap{
  font-family:var(--serif);font-style:italic;
  font-size:clamp(15px, 1.2vw, 19px);
  color:rgba(255,248,238,.92);max-width:none;
  margin-top:4px;
}

/* Controles más compactos en versión inline */
.sobre-carousel--inline .sc-controls{
  padding:14px 18px 18px;
  gap:12px;
}
.sobre-carousel--inline .sc-arrow{
  width:38px;height:38px;
}
.sobre-carousel--inline .sc-arrow svg{width:16px;height:16px}
.sobre-carousel--inline .sc-dots{
  gap:12px;
}
.sobre-carousel--inline .sc-dot{
  min-width:0;flex:1;
  font-size:0;letter-spacing:0;
  gap:0;padding:8px 0;
}
.sobre-carousel--inline .sc-dot-lbl{display:none}
.sobre-carousel--inline .sc-dot-bar{height:2px}

@media (max-width:900px){
  .sobre-carousel.sobre-carousel--inline{
    aspect-ratio:4/5;max-width:520px;margin:0 auto;
  }
  .sobre-carousel--inline .sc-word{font-size:clamp(56px, 13vw, 92px)}
  .sobre-carousel--inline .sc-cap{font-size:16px}
}
@media (max-width:560px){
  .sobre-carousel.sobre-carousel--inline{aspect-ratio:3/4}
  .sobre-carousel--inline .sc-word{font-size:clamp(52px, 16vw, 78px)}
  .sobre-carousel--inline .sc-controls{padding:12px 14px 14px}
}

/* ===========================================================================
   37 · UTILITY CLASSES — Kirby-friendly
   Las usamos para sacar inline styles repetidos del HTML, de modo que cuando
   el contenido se mueva al panel de Kirby, el markup quede plano y las
   clases sigan vivas. Convención: prefijo semántico (u-, lede-, kicker-)
   o token de utilidad corto (mt-N, mb-N, maxw-N).
   =========================================================================== */

/* --- Texto: leads, intros, kickers, notas ----------------------------- */
/* Párrafo de introducción debajo de un h2 (60ch, 17px). */
.lede{font-size:17px;line-height:1.7;color:var(--ink-soft);max-width:60ch;margin-top:12px}
.lede--narrow{max-width:50ch}
.lede--wide{max-width:62ch}

/* Frase serif itálica de acento (tono frambuesa) — uso editorial. */
.note-italic{
  font-family:var(--serif);font-style:italic;color:var(--rose-deep);
  font-size:20px;line-height:1.5;margin-top:24px;
}
.note-italic--sm{font-size:18px;margin-top:20px;line-height:1.55}
.note-italic--jade{color:var(--jade-deep);font-size:18px;margin-top:20px}

/* Kicker de subtítulo bajo h1 (clamp grande). */
.kicker-line{
  font-family:var(--serif);font-style:italic;
  font-size:clamp(20px,2vw,24px);color:var(--rose-deep);
  max-width:36ch;margin-bottom:14px;
}

/* Fecha bajo módulos de Diplomado: 13px, frambuesa, itálica.
   NO añade font-family — hereda la del body (Manrope) para preservar
   el render original sin tocar nada visual. */
.module-date{
  font-size:13px;color:var(--rose-deep);font-style:italic;
  margin:4px 0 8px;
}
/* Variante con serif explícito + más aire abajo (Formación cards). */
.module-date--serif{
  font-family:var(--serif);margin:0 0 22px;
}

/* CTA-row con margen estándar arriba. */
.cta-row--gap-md{margin-top:24px}

/* --- Spacing utilities (margin top / bottom) ------------------------- */
.mt-10{margin-top:10px}
.mt-12{margin-top:12px}
.mt-14{margin-top:14px}
.mt-16{margin-top:16px}
.mt-18{margin-top:18px}
.mt-20{margin-top:20px}
.mt-24{margin-top:24px}
.mt-28{margin-top:28px}
.mt-36{margin-top:36px}
.mt-48{margin-top:48px}
.mt-56{margin-top:56px}
.mt-64{margin-top:64px}
.mt-72{margin-top:72px}
.mt-96{margin-top:96px}

.mb-8 {margin-bottom:8px}
.mb-14{margin-bottom:14px}
.mb-24{margin-bottom:24px}
.mb-32{margin-bottom:32px}
.mb-40{margin-bottom:40px}
.mb-48{margin-bottom:48px}
.mb-56{margin-bottom:56px}
.mb-64{margin-bottom:64px}

/* --- Max-width helpers (en ch para legibilidad editorial) ------------ */
.maxw-22ch{max-width:22ch}
.maxw-36ch{max-width:36ch}
.maxw-44ch{max-width:44ch}
.maxw-46ch{max-width:46ch}
.maxw-48ch{max-width:48ch}
.maxw-50ch{max-width:50ch}
.maxw-54ch{max-width:54ch}
.maxw-58ch{max-width:58ch}
.maxw-60ch{max-width:60ch}
.maxw-62ch{max-width:62ch}

/* --- Layout / z-index quick helpers ---------------------------------- */
.z-front{position:relative;z-index:2}
.text-end{text-align:end}
.muted{color:var(--ink-mute)}

/* --- Section pad slim (cursos con course-hero) ----------------------- */
.section-slim{padding:64px 0}

/* --- Bloque imagen aspecto 16/9 con bordes redondeados (usado en sobrepeso) */
.media-frame{margin-top:32px;border-radius:10px;overflow:hidden;aspect-ratio:16/9}
.media-frame img{width:100%;height:100%;object-fit:cover;display:block}
.media-caption{
  font-size:13px;color:var(--ink-mute);margin-top:12px;text-align:center;
}
