/* =====================================================================
   MÉDIUM PILAR RUIZ — Sistema de diseño "Mística Premium"
   Editorial luxury · alternancia claro/oscuro · movimiento cinematográfico
   ===================================================================== */

/* ---------- Reset ---------- */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{font-family:var(--font-body);color:var(--ink);background:var(--ivory);
  line-height:1.6;font-weight:300;overflow-x:hidden;
  -webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
button{font:inherit;cursor:pointer;border:none;background:none;color:inherit}
ul{list-style:none}

/* ---------- Tokens ---------- */
:root{
  /* Paleta */
  --carbon:#16121a;
  --carbon-2:#241d28;
  --ink:#221b22;
  --ivory:#fdfaf9;
  --ivory-2:#f7e8e8;
  --gold-1:#b9923f;
  --gold-2:#e4c37c;
  --emerald:#d9a9ad;
  --emerald-2:#e7c6c8;
  --rose:#f2d7d5;
  --rose-2:#e3b1ae;
  --line:rgba(27,28,32,.14);
  --line-light:rgba(246,241,233,.16);

  /* Tipografía — moderna (acordada): Space Grotesk + Manrope */
  --font-display:"Space Grotesk","Helvetica Neue",Arial,sans-serif;
  --font-eyebrow:"Space Grotesk","Helvetica Neue",Arial,sans-serif;
  --font-body:"Manrope","Helvetica Neue",Arial,sans-serif;

  /* Ritmo */
  --gutter:clamp(1.25rem,5vw,6rem);
  --maxw:1360px;
  --ease:cubic-bezier(.22,1,.36,1);
  --dur:.7s;
}

/* Gradiente dorado reutilizable */
.gold-text{background:linear-gradient(120deg,var(--gold-1),var(--gold-2) 55%,var(--gold-1));
  -webkit-background-clip:text;background-clip:text;color:transparent}

/* ---------- Tipografía base ---------- */
h1,h2,h3,h4{font-family:var(--font-display);font-weight:500;line-height:1.02;
  letter-spacing:-.01em}
.eyebrow{font-family:var(--font-eyebrow);font-size:clamp(.62rem,.9vw,.78rem);
  letter-spacing:.42em;text-transform:uppercase;font-weight:500;
  color:var(--gold-1);display:inline-block}
.display{font-size:clamp(3rem,11vw,10rem);line-height:.92}
.h-xl{font-size:clamp(2.4rem,6.5vw,5.6rem)}
.h-lg{font-size:clamp(2rem,4.5vw,3.6rem)}
.h-md{font-size:clamp(1.6rem,3vw,2.4rem)}
.lead{font-size:clamp(1.05rem,1.5vw,1.35rem);font-weight:300;line-height:1.7;
  max-width:46ch;color:inherit;opacity:.86}
p{font-weight:300}
em,i{font-style:italic}

/* ---------- Layout ---------- */
.section{padding:clamp(5.5rem,12vw,12.5rem) var(--gutter);position:relative}
.wrap{max-width:var(--maxw);margin-inline:auto;width:100%}
.dark{background:#3a2531;color:var(--ivory)}
.dark .eyebrow{color:var(--gold-2)}
.darker{background:#2d1c27;color:var(--ivory)}
.light{background:var(--ivory);color:var(--ink)}
.light-2{background:var(--ivory-2);color:var(--ink)}

/* Grano fino premium */
.grain::after{content:"";position:absolute;inset:0;pointer-events:none;z-index:1;
  opacity:.05;mix-blend-mode:overlay;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='3'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}

/* ---------- Botones ---------- */
.btn{position:relative;display:inline-flex;align-items:center;gap:.7em;
  padding:1.05em 2.1em;border-radius:999px;font-size:.82rem;letter-spacing:.12em;
  text-transform:uppercase;font-weight:400;overflow:hidden;
  transition:transform var(--dur) var(--ease),color .5s var(--ease);z-index:0}
.btn .arrow{transition:transform .5s var(--ease)}
.btn:hover .arrow{transform:translateX(5px)}
.btn-primary{color:var(--carbon);
  background:linear-gradient(120deg,var(--gold-2),var(--gold-1))}
.btn-primary::before{content:"";position:absolute;inset:0;z-index:-1;
  background:linear-gradient(120deg,var(--gold-1),var(--gold-2));
  opacity:0;transition:opacity .5s var(--ease)}
.btn-primary:hover::before{opacity:1}
.btn-primary{font-weight:600;box-shadow:0 14px 32px -14px rgba(185,146,63,.55);animation:ctaGlow 3.4s var(--ease) infinite}
.btn-primary:hover{transform:translateY(-3px);animation-play-state:paused}
@keyframes ctaGlow{0%,100%{box-shadow:0 13px 30px -16px rgba(185,146,63,.5)}50%{box-shadow:0 20px 48px -12px rgba(228,195,124,.8)}}
.btn-ghost{color:currentColor;border:1px solid currentColor;opacity:.9}
.btn-ghost::before{content:"";position:absolute;inset:0;z-index:-1;
  background:currentColor;transform:scaleX(0);transform-origin:left;
  transition:transform .55s var(--ease)}
.btn-ghost:hover{opacity:1}
.btn-ghost:hover{color:var(--carbon)}
.dark .btn-ghost:hover{color:var(--carbon)}
.light .btn-ghost:hover{color:var(--ivory)}
.btn-ghost:hover::before{transform:scaleX(1)}

/* Enlace subrayado editorial */
.ul-link{position:relative;display:inline-flex;align-items:center;gap:.5em;
  font-size:.8rem;letter-spacing:.14em;text-transform:uppercase}
.ul-link::after{content:"";position:absolute;left:0;bottom:-.35em;height:1px;
  width:100%;background:currentColor;transform:scaleX(0);transform-origin:left;
  transition:transform .5s var(--ease)}
.ul-link:hover::after{transform:scaleX(1)}
.ul-link .arrow{transition:transform .5s var(--ease)}
.ul-link:hover .arrow{transform:translateX(5px)}

/* ---------- Navegación ---------- */
.nav{position:fixed;top:0;left:0;width:100%;z-index:100;
  display:flex;align-items:center;justify-content:space-between;
  padding:1.4rem var(--gutter);transition:background .5s var(--ease),
  padding .5s var(--ease),backdrop-filter .5s}
.nav.scrolled{background:rgba(22,18,26,.72);backdrop-filter:blur(14px);
  padding:.9rem var(--gutter)}
.nav.on-light:not(.scrolled) .nav-links a,
.nav.on-light:not(.scrolled) .brand{color:var(--carbon)}
.nav .brand,.nav .nav-links a{color:var(--ivory);transition:color .4s}
.brand{font-family:var(--font-eyebrow);font-size:1.05rem;letter-spacing:.28em;
  display:flex;align-items:center;gap:.7rem}
.brand .mono{display:grid;place-items:center;width:40px;height:40px;
  border:1px solid var(--gold-1);border-radius:50%;font-size:.85rem;
  letter-spacing:.05em;color:var(--gold-2)}
.nav-links{display:flex;align-items:center;gap:clamp(1rem,2vw,2.2rem)}
.nav-links a{font-size:.75rem;letter-spacing:.14em;text-transform:uppercase;
  font-family:var(--font-body);position:relative;font-weight:300}
.nav-links a.link::after{content:"";position:absolute;left:0;bottom:-.4em;
  width:100%;height:1px;background:var(--gold-2);transform:scaleX(0);
  transform-origin:left;transition:transform .45s var(--ease)}
.nav-links a.link:hover::after{transform:scaleX(1)}
.nav-links .btn{padding:.7em 1.4em;font-size:.72rem}
.nav-toggle{display:none;flex-direction:column;gap:5px;width:30px;z-index:110}
.nav-toggle span{height:1.5px;width:100%;background:currentColor;
  transition:transform .4s var(--ease),opacity .3s}
.nav-toggle.open span:nth-child(1){transform:translateY(6.5px) rotate(45deg)}
.nav-toggle.open span:nth-child(2){opacity:0}
.nav-toggle.open span:nth-child(3){transform:translateY(-6.5px) rotate(-45deg)}

/* Menú móvil */
.mobile-menu{position:fixed;inset:0;background:#2d1c27;z-index:105;overflow-y:auto;
  display:flex;flex-direction:column;justify-content:center;gap:1.2rem;
  padding:var(--gutter);transform:translateY(-100%);
  transition:transform .7s var(--ease);color:var(--ivory)}
.mobile-menu.open{transform:translateY(0)}
.mobile-menu a{font-family:var(--font-display);font-size:clamp(2rem,9vw,3.4rem);
  color:var(--ivory);opacity:.85}
.mobile-menu a .idx{font-family:var(--font-eyebrow);font-size:.7rem;
  color:var(--gold-1);letter-spacing:.2em;margin-right:1rem;vertical-align:super}

/* ---------- Flor de la vida ---------- */
.flower{position:absolute;pointer-events:none;opacity:.5;
  animation:spin 90s linear infinite}
.flower path,.flower circle{stroke:var(--gold-1);fill:none;stroke-width:.5}
@keyframes spin{to{transform:rotate(360deg)}}

/* ---------- Hero ---------- */
.hero{min-height:100vh;display:flex;align-items:flex-end;position:relative;
  overflow:hidden;padding-bottom:clamp(3rem,7vw,6rem)}
.hero-bg{position:absolute;inset:0;z-index:0}
.hero-bg .layer{position:absolute;inset:0;background-size:cover;
  background-position:center}
.hero-veil{position:absolute;inset:0;z-index:1;
  background:linear-gradient(180deg,rgba(22,18,26,.42) 0%,rgba(22,18,26,.1) 40%,
  rgba(22,18,26,.82) 100%)}
.hero .wrap{position:relative;z-index:3}
.hero .eyebrow{color:var(--gold-2)}
.hero h1{color:var(--ivory);margin:.3em 0 .1em}
.rotator{height:1.2em;overflow:hidden;position:relative;
  font-family:var(--font-eyebrow);letter-spacing:.4em;text-transform:uppercase;
  font-size:clamp(.7rem,1.4vw,1rem);color:var(--gold-2)}
.rotator span{display:block;transition:transform .8s var(--ease),opacity .8s}
.scroll-cue{position:absolute;bottom:2rem;left:50%;transform:translateX(-50%);
  z-index:3;display:flex;flex-direction:column;align-items:center;gap:.6rem;
  color:var(--ivory);font-size:.62rem;letter-spacing:.3em;text-transform:uppercase}
.scroll-cue .rail{width:1px;height:44px;background:linear-gradient(var(--gold-2),
  transparent);position:relative;overflow:hidden}
.scroll-cue .rail::after{content:"";position:absolute;top:0;left:0;width:100%;
  height:40%;background:var(--gold-2);animation:drop 2.4s var(--ease) infinite}
@keyframes drop{0%{transform:translateY(-100%)}60%,100%{transform:translateY(280%)}}

/* ---------- Franja reserva ---------- */
.ribbon{background:linear-gradient(120deg,var(--gold-1),var(--gold-2));
  color:var(--carbon);padding:clamp(1.6rem,3vw,2.4rem) var(--gutter);
  position:relative;z-index:5}
.ribbon .wrap{display:flex;align-items:center;justify-content:space-between;
  gap:2rem;flex-wrap:wrap}
.ribbon .rb-left{display:flex;align-items:center;gap:1.4rem}
.ribbon .orb{width:52px;height:52px;border-radius:50%;flex:none;
  background:radial-gradient(circle at 32% 30%,#fff,rgba(255,255,255,.2) 40%,
  rgba(227,177,174,.5));box-shadow:0 0 30px rgba(255,255,255,.4) inset}
.ribbon h3{font-size:clamp(1.3rem,2.4vw,2rem);line-height:1.05}
.ribbon p{font-size:.82rem;letter-spacing:.05em;opacity:.8}

/* ---------- Placeholder de imagen ---------- */
.ph{position:relative;overflow:hidden;background:
  linear-gradient(135deg,var(--carbon-2),#2a2230 55%,var(--rose-2));
  border-radius:26px}
.ph.light-ph{background:linear-gradient(135deg,var(--ivory-2),#e4dccb 60%,var(--rose))}
.ph::before{content:attr(data-label);position:absolute;inset:0;display:grid;
  place-items:center;font-family:var(--font-eyebrow);font-size:.62rem;
  letter-spacing:.28em;text-transform:uppercase;color:rgba(246,241,233,.5);
  text-align:center;padding:1rem}
.ph.light-ph::before{color:rgba(27,28,32,.4)}
.ph::after{content:"";position:absolute;inset:0;opacity:.5;
  background:radial-gradient(circle at 30% 25%,rgba(228,195,124,.25),transparent 55%)}
.ph .shine{position:absolute;top:0;left:-120%;width:60%;height:100%;
  background:linear-gradient(105deg,transparent,rgba(255,255,255,.14),transparent);
  transform:skewX(-18deg)}
.ph:hover .shine{animation:shine 1.1s var(--ease)}
@keyframes shine{to{left:150%}}

/* ---------- Beneficios ---------- */
.benefits{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));
  gap:clamp(.9rem,1.6vw,1.3rem);margin-top:4rem}
.benefit{background:var(--ivory-2);padding:clamp(2.1rem,3.6vw,3.4rem) clamp(1.7rem,2.6vw,2.6rem);
  border-radius:24px;transition:transform .55s var(--ease),box-shadow .55s var(--ease)}
.benefit:hover{transform:translateY(-7px);box-shadow:0 30px 55px -34px rgba(22,33,28,.45)}
.benefit .num{font-family:var(--font-eyebrow);font-size:.68rem;letter-spacing:.24em;
  color:var(--gold-1)}
.benefit .ico{margin:0 0 1.5rem;width:76px;height:76px;border-radius:22px;display:grid;
  place-items:center;position:relative;
  background:linear-gradient(145deg,#ffffff 0%,var(--rose) 52%,var(--gold-2) 100%);
  box-shadow:0 20px 34px -16px rgba(189,143,134,.6),inset 0 2px 5px rgba(255,255,255,.95),
  inset 0 -8px 16px rgba(189,143,134,.42);transition:transform .55s var(--ease),box-shadow .55s var(--ease)}
.benefit .ico::after{content:"";position:absolute;top:10px;left:15px;width:30%;height:22%;border-radius:50%;
  background:radial-gradient(circle,rgba(255,255,255,.95),transparent 70%);filter:blur(1px)}
.benefit .ico svg{width:34px;height:34px;color:#7d5049;stroke:#7d5049;position:relative;z-index:1}
.benefit:hover .ico{transform:translateY(-6px) rotate(-4deg);
  box-shadow:0 26px 44px -16px rgba(189,143,134,.7),inset 0 2px 5px rgba(255,255,255,.95),
  inset 0 -8px 16px rgba(189,143,134,.42)}
.benefit h4{font-size:1.5rem;margin-bottom:.5rem}
.benefit p{font-size:.92rem;opacity:.72}

/* ---------- Lista de sesiones (editorial) ---------- */
.svc-list{border-top:1px solid var(--line-light);margin-top:3.5rem}
.light .svc-list{border-top-color:var(--line)}
.svc{display:grid;grid-template-columns:auto 1fr auto;gap:2rem;align-items:baseline;
  padding:clamp(1.6rem,3vw,2.6rem) 0;border-bottom:1px solid var(--line-light);
  position:relative;transition:padding-left .6s var(--ease)}
.light .svc{border-bottom-color:var(--line)}
.svc:hover{padding-left:1.2rem}
.svc .idx{font-family:var(--font-eyebrow);font-size:.72rem;letter-spacing:.2em;
  color:var(--gold-1);padding-top:.6rem}
.svc .body h3{font-size:clamp(1.7rem,3.2vw,2.7rem);line-height:1}
.svc .body .meta{font-size:.8rem;letter-spacing:.14em;text-transform:uppercase;
  opacity:.6;margin-top:.7rem}
.svc .body p{margin-top:.9rem;max-width:52ch;opacity:.78;font-size:.98rem}
.svc .price{text-align:right;white-space:nowrap}
.svc .price .amount{font-family:var(--font-display);font-size:clamp(1.6rem,2.6vw,2.3rem)}
.svc .price .cta{display:block;margin-top:.8rem}
.svc::after{content:"";position:absolute;left:0;bottom:-1px;width:100%;height:1px;
  background:linear-gradient(90deg,var(--gold-1),var(--gold-2));transform:scaleX(0);
  transform-origin:left;transition:transform .6s var(--ease)}
.svc:hover::after{transform:scaleX(1)}

/* ---------- Directos redes ---------- */
.live-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:clamp(1.5rem,3vw,3rem);
  align-items:stretch;margin-top:3.5rem}
.live-video{aspect-ratio:16/10;min-height:320px}
.badge-live{display:inline-flex;align-items:center;gap:.5em;font-family:var(--font-body);
  font-size:.68rem;letter-spacing:.2em;text-transform:uppercase;
  padding:.4em .9em;border:1px solid var(--gold-2);border-radius:999px;color:var(--gold-2)}
.badge-live .dot{width:7px;height:7px;border-radius:50%;background:#e0574f;
  animation:pulse 1.6s var(--ease) infinite}
@keyframes pulse{0%,100%{opacity:1;transform:scale(1)}50%{opacity:.4;transform:scale(.7)}}
.live-links{margin-top:2rem;display:flex;flex-direction:column;gap:1.2rem}

/* ---------- Galería ---------- */
.gallery{display:grid;grid-template-columns:repeat(12,1fr);gap:clamp(.6rem,1.2vw,1rem);
  margin-top:3.5rem}
.gallery .ph{min-height:200px}
.g1{grid-column:span 5;grid-row:span 2;min-height:440px!important}
.g2{grid-column:span 7}
.g3{grid-column:span 4}
.g4{grid-column:span 3}
.g5{grid-column:span 5}

/* ---------- Bloque libro & contadores ---------- */
.book{display:grid;grid-template-columns:.9fr 1.1fr;gap:clamp(2rem,5vw,5rem);
  align-items:center}
.book-cover{aspect-ratio:3/4.2;box-shadow:0 40px 80px -30px rgba(10,11,14,.55)}
.counters{display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem;
  margin-top:3rem;border-top:1px solid var(--line);padding-top:2.5rem}
.counter .n{font-family:var(--font-display);font-size:clamp(2.6rem,5vw,4rem);
  line-height:1}
.counter .l{font-size:.72rem;letter-spacing:.16em;text-transform:uppercase;
  opacity:.6;margin-top:.4rem}

/* ---------- Testimonios ---------- */
.tst-track{display:flex;gap:2rem;overflow-x:auto;scroll-snap-type:x mandatory;
  padding:1rem 0 2rem;margin-top:3rem;scrollbar-width:none}
.tst-track::-webkit-scrollbar{display:none}
.tst{scroll-snap-align:center;flex:0 0 min(88vw,540px);
  padding:clamp(2.2rem,3.6vw,3.6rem);border:1px solid var(--line-light);
  border-radius:26px;background:rgba(255,255,255,.03)}
.light .tst,.light-2 .tst{border-color:var(--line);background:rgba(255,255,255,.4)}
.tst .stars{color:var(--gold-2);letter-spacing:.25em;font-size:.9rem}
.tst blockquote{font-family:var(--font-display);font-size:clamp(1.3rem,2.4vw,1.9rem);
  line-height:1.3;margin:1.4rem 0;font-weight:400;font-style:italic}
.tst .who{font-size:.76rem;letter-spacing:.16em;text-transform:uppercase;opacity:.6}

/* ---------- Calendly ---------- */
.calendly-inline-widget{border-radius:22px;overflow:hidden;
  box-shadow:0 30px 70px -40px rgba(10,11,14,.5)}

/* ---------- Footer ---------- */
.footer{background:#2d1c27;color:var(--ivory);
  padding:clamp(4rem,7vw,7rem) var(--gutter) 2.5rem}
.footer-top{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:2.5rem;
  padding-bottom:3.5rem;border-bottom:1px solid var(--line-light)}
.footer .brand-lg{font-family:var(--font-display);font-size:clamp(2.4rem,5vw,4rem);
  line-height:1;margin-bottom:1.2rem}
.footer h5{font-family:var(--font-eyebrow);font-size:.66rem;letter-spacing:.24em;
  color:var(--gold-2);text-transform:uppercase;margin-bottom:1.2rem}
.footer li{margin-bottom:.7rem;opacity:.75;font-size:.92rem}
.footer li a:hover{color:var(--gold-2)}
.footer-bottom{display:flex;justify-content:space-between;align-items:center;
  padding-top:2rem;gap:1rem;flex-wrap:wrap;font-size:.72rem;letter-spacing:.12em;
  text-transform:uppercase;opacity:.55}

/* ---------- WhatsApp flotante ---------- */
.wa{position:fixed;right:clamp(1rem,2.5vw,2rem);bottom:clamp(1rem,2.5vw,2rem);
  z-index:90;width:58px;height:58px;border-radius:50%;display:grid;place-items:center;
  background:linear-gradient(135deg,#25d366,#128c4b);color:#fff;
  box-shadow:0 14px 34px -10px rgba(18,140,75,.6);
  transition:transform .5s var(--ease)}
.wa:hover{transform:scale(1.08) rotate(-4deg)}
.wa svg{width:28px;height:28px}

/* ---------- Cursor personalizado ---------- */
.cursor{position:fixed;top:0;left:0;width:8px;height:8px;border-radius:50%;
  background:var(--gold-2);pointer-events:none;z-index:9999;
  transform:translate(-50%,-50%);mix-blend-mode:difference}
.cursor-ring{position:fixed;top:0;left:0;width:38px;height:38px;border-radius:50%;
  border:1px solid rgba(228,195,124,.6);pointer-events:none;z-index:9999;
  transform:translate(-50%,-50%);transition:width .4s var(--ease),
  height .4s var(--ease),background .4s}
.cursor-ring.hover{width:64px;height:64px;background:rgba(228,195,124,.08)}

/* ---------- Reveal scroll ---------- */
.reveal{opacity:0;transform:translateY(38px);
  transition:opacity 1s var(--ease),transform 1s var(--ease)}
.reveal.in{opacity:1;transform:none}
.reveal-blur{opacity:0;filter:blur(14px);transform:scale(.985);
  transition:opacity 1.1s var(--ease),filter 1.1s var(--ease),transform 1.1s var(--ease)}
.reveal-blur.in{opacity:1;filter:blur(0);transform:none}
.stagger>*{opacity:0;transform:translateY(30px);
  transition:opacity .9s var(--ease),transform .9s var(--ease)}
.stagger.in>*{opacity:1;transform:none}
.mask-line{overflow:hidden;display:block}
.mask-line>span{display:block;transform:translateY(105%);
  transition:transform 1s var(--ease)}
.in .mask-line>span,.mask-line.in>span{transform:none}

/* ---------- Page intro (páginas internas) ---------- */
.page-hero{min-height:64vh;display:flex;align-items:flex-end;
  padding:12rem var(--gutter) clamp(3rem,6vw,5rem);position:relative;overflow:hidden}
.page-hero .eyebrow{color:var(--gold-2)}
.page-hero h1{color:var(--ivory);margin-top:.3em}
.breadcrumb{font-size:.72rem;letter-spacing:.16em;text-transform:uppercase;
  opacity:.6;margin-bottom:2rem;color:var(--ivory)}

/* Genérico dos-columnas alternable */
.split{display:grid;grid-template-columns:1fr 1fr;gap:clamp(2rem,5vw,5rem);
  align-items:center}
.split.rev .split-media{order:2}
.split-media .ph{aspect-ratio:4/5}

/* FAQ */
.faq{border-top:1px solid var(--line);margin-top:3rem}
.faq-item{border-bottom:1px solid var(--line)}
.faq-q{width:100%;text-align:left;display:flex;justify-content:space-between;
  align-items:center;gap:2rem;padding:1.6rem 0;font-family:var(--font-display);
  font-size:clamp(1.2rem,2.2vw,1.7rem)}
.faq-q .pm{flex:none;width:28px;height:28px;position:relative}
.faq-q .pm::before,.faq-q .pm::after{content:"";position:absolute;background:var(--gold-1);
  top:50%;left:50%;transition:transform .4s var(--ease)}
.faq-q .pm::before{width:16px;height:1.5px;transform:translate(-50%,-50%)}
.faq-q .pm::after{width:1.5px;height:16px;transform:translate(-50%,-50%)}
.faq-item.open .pm::after{transform:translate(-50%,-50%) scaleY(0)}
.faq-a{max-height:0;overflow:hidden;transition:max-height .6s var(--ease)}
.faq-a p{padding-bottom:1.6rem;opacity:.78;max-width:70ch}

/* Formulario */
.field{margin-bottom:1.6rem}
.field label{display:block;font-size:.72rem;letter-spacing:.16em;text-transform:uppercase;
  opacity:.6;margin-bottom:.6rem}
.field input,.field textarea{width:100%;background:transparent;
  border:none;border-bottom:1px solid var(--line);padding:.7rem 0;font:inherit;
  color:inherit;transition:border-color .4s}
.field input:focus,.field textarea:focus{outline:none;border-color:var(--gold-1)}
.dark .field input,.dark .field textarea{border-bottom-color:var(--line-light)}

/* Pills / niveles cursos */
.levels{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));
  gap:clamp(.9rem,1.6vw,1.3rem);margin-top:3.5rem}
.level{background:var(--ivory-2);padding:clamp(2.2rem,3.2vw,3.2rem);border-radius:24px;
  display:flex;flex-direction:column;transition:transform .5s var(--ease),box-shadow .5s var(--ease)}
.dark .levels{background:transparent;border:0}
.dark .level{background:#3a2531}
.level:hover{transform:translateY(-6px);box-shadow:0 30px 55px -34px rgba(22,33,28,.4)}
.dark .level:hover{transform:translateY(-6px)}
.level .tag{font-family:var(--font-eyebrow);font-size:.66rem;letter-spacing:.22em;
  color:var(--gold-1)}
.level h3{font-size:clamp(1.6rem,2.6vw,2.2rem);margin:1rem 0 .4rem}
.level .price{font-family:var(--font-display);font-size:1.8rem;margin:1.5rem 0 .3rem}
.level ul.feats{margin:1.4rem 0;display:flex;flex-direction:column;gap:.7rem}
.level .feats li{font-size:.9rem;opacity:.78;padding-left:1.4rem;position:relative}
.level .feats li::before{content:"—";position:absolute;left:0;color:var(--gold-1)}
.level .btn{margin-top:auto}

/* Tour dates */
.tour{border-top:1px solid var(--line-light);margin-top:3rem}
.dark .tour{border-top-color:var(--line-light)}
.tour-row{display:grid;grid-template-columns:auto 1fr auto auto;gap:2rem;
  align-items:center;padding:1.6rem 0;border-bottom:1px solid var(--line-light);
  transition:padding-left .5s var(--ease)}
.tour-row:hover{padding-left:1rem}
.tour-row .date{font-family:var(--font-display);font-size:1.5rem;white-space:nowrap}
.tour-row .city{font-size:1.1rem;letter-spacing:.02em}
.tour-row .venue{font-size:.82rem;opacity:.6;text-transform:uppercase;letter-spacing:.1em}

/* ---------- Responsive ---------- */
@media(max-width:960px){
  .nav-links{display:none}
  .nav-toggle{display:flex}
  .live-grid,.book,.split{grid-template-columns:1fr}
  .split.rev .split-media{order:0}
  .footer-top{grid-template-columns:1fr 1fr}
  .gallery{grid-template-columns:repeat(6,1fr)}
  .g1,.g2,.g3,.g4,.g5{grid-column:span 6;grid-row:auto;min-height:260px!important}
  .cursor,.cursor-ring{display:none}
}
@media(max-width:560px){
  .svc{grid-template-columns:1fr;gap:.5rem}
  .svc .price{text-align:left;margin-top:1rem}
  .counters{grid-template-columns:1fr;gap:1.8rem}
  .footer-top{grid-template-columns:1fr}
  .ribbon .wrap{flex-direction:column;align-items:flex-start}
  .tour-row{grid-template-columns:1fr;gap:.4rem}
}

/* Accesibilidad: respeta reduce-motion */
@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01ms!important;
    transition-duration:.01ms!important;scroll-behavior:auto!important}
  .reveal,.reveal-blur,.stagger>*,.mask-line>span{opacity:1;transform:none;filter:none}
}
:focus-visible{outline:2px solid var(--gold-2);outline-offset:3px}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}


/* ============ UPGRADE PREMIUM ============ */
/* Vídeo YouTube incrustado */
.yt-embed{position:relative;aspect-ratio:16/9;border-radius:26px;overflow:hidden;
  box-shadow:0 44px 90px -44px rgba(45,28,39,.65);background:#16121a}
.yt-embed iframe{position:absolute;inset:0;width:100%;height:100%;border:0}

/* Iconos de redes sociales */
.socials{display:flex;gap:.7rem;align-items:center;flex-wrap:wrap}
.socials a{width:46px;height:46px;border-radius:50%;display:grid;place-items:center;
  border:1px solid var(--line-light);color:var(--ivory);
  transition:transform .45s var(--ease),background .45s,border-color .45s,color .45s,box-shadow .45s}
.socials a:hover{transform:translateY(-5px);color:var(--carbon);border-color:transparent;
  background:linear-gradient(135deg,var(--gold-2),var(--gold-1));
  box-shadow:0 16px 28px -12px rgba(228,195,124,.6)}
.socials a svg{width:21px;height:21px}
.light .socials a,.light-2 .socials a{border-color:var(--line);color:var(--ink)}

/* Imágenes más vivas: zoom y sombra al pasar (más dinámico, mejor integradas) */
.gallery .ph,.book-cover,.split-media .ph{box-shadow:0 34px 66px -38px rgba(45,28,39,.55)}
.gallery .ph{transition:transform .7s var(--ease),box-shadow .6s var(--ease)}
.gallery .ph:hover{transform:translateY(-8px) scale(1.02);
  box-shadow:0 46px 80px -34px rgba(45,28,39,.6);z-index:2}
.book-cover{transition:transform .7s var(--ease),box-shadow .6s var(--ease)}
.book:hover .book-cover{transform:translateY(-8px) rotate(-1.2deg);
  box-shadow:0 50px 90px -34px rgba(45,28,39,.6)}

/* Botón primario: aún más presencia premium */
.btn-primary{letter-spacing:.14em;box-shadow:0 16px 34px -14px rgba(185,146,63,.6)}
