/* ============================================================
   single-reto.css — Estilos de la ficha individual de Reto
   ------------------------------------------------------------
   Se encola SOLO en los singles del CPT "reto" (is_singular('reto'))
   desde inc/cpt-templates.php. NO es CSS global y NO afecta a páginas
   Elementor: no toca --e-global-color-*, solo tokens propios --base/etc.
   TODO va namespaced bajo .re-page para no pisar nada fuera de la ficha.

   Diseño base verbatim de web/reto-single.html.
   ============================================================ */

/* ── Tokens (idénticos a web/styles.css :root) ── */
:root {
  --base:#9B9A84; --moss:#9C9584; --sage:#8C9C84; --warm:#9C9884;
  --base-dk:#797869; --base-lt:#b8b7a4;
  --base-pale:rgba(155,154,132,.10); --base-line:rgba(155,154,132,.22);
  --white:#faf8f5; --sand:#f2ede4; --sand2:#e8e1d5; --sand3:#d8d0c4;
  --text:#252018; --text-70:rgba(37,32,24,.70); --text-40:rgba(37,32,24,.40); --text-15:rgba(37,32,24,.15);
  --serif:'Cormorant Garamond',Georgia,serif; --sans:'Jost',sans-serif;
  --shadow-sm:0 2px 8px rgba(37,32,24,.08); --shadow-md:0 8px 22px rgba(37,32,24,.16);
  --shadow-lg:0 16px 42px rgba(37,32,24,.22); --shadow-xl:0 30px 70px rgba(37,32,24,.28);
  --radius-sm:4px; --radius-md:12px; --radius-lg:24px; --radius-pill:60px;
}

/* ── Helpers de sección (verbatim del diseño) — namespaced a .re-page ── */
.re-page { font-family:var(--sans); color:var(--text); }
.re-page .s-eye { font-size:.7rem; font-weight:500; letter-spacing:.28em; text-transform:uppercase; color:var(--base-dk); margin-bottom:.9rem; display:inline-flex; align-items:center; gap:.55rem; }
.re-page .s-eye::before { content:''; width:22px; height:1.5px; background:var(--base); }
.re-page .s-h2 { font-family:var(--serif); font-size:clamp(2.4rem,3.8vw,3.8rem); font-weight:400; line-height:1.12; letter-spacing:-.01em; color:var(--text); }
.re-page .s-h2 em { font-style:normal; font-weight:300; color:var(--base); }
.re-page .s-rule { width:40px; height:2px; background:var(--base); margin:1.6rem 0; }
.re-page .s-body { font-size:1.08rem; color:var(--text-70); max-width:580px; line-height:1.78; }
.re-page .btn-base { padding:.9rem 1.75rem; background:var(--text); color:#fff; font-family:var(--sans); font-size:.8rem; font-weight:500; letter-spacing:.08em; text-transform:uppercase; display:inline-block; border-radius:60px; transition:background .3s, transform .2s; text-decoration:none; }
.re-page .btn-base:hover { background:var(--base-dk); transform:translateY(-2px); }
.re-page .btn-with-icon { display:inline-flex !important; align-items:center; gap:.55rem; }
.re-page .btn-with-icon svg { width:15px; height:15px; }
@media (min-width:721px){ .re-page .nowrap-dt { white-space:nowrap; } }

/* ── Reveal: entrada por CSS (NO depende de JS; el contenido SIEMPRE acaba visible).
   La animación va de opacity 0 → 1 con fill-mode "both"; si por lo que sea no se
   ejecuta, el opacity por defecto (1) garantiza que el contenido se vea. ── */
.re-page .reveal { animation: re-reveal .8s ease both; }
@keyframes re-reveal { from { opacity:0; transform:translateY(28px); } to { opacity:1; transform:none; } }
.re-page .reveal.in { opacity:1; transform:none; } /* compat con single-reto.js */
.re-page .d1 { animation-delay:.1s; } .re-page .d2 { animation-delay:.22s; } .re-page .d3 { animation-delay:.34s; }
@media (prefers-reduced-motion: reduce) { .re-page .reveal { animation:none; opacity:1; transform:none; } }

/* ═══ BACK LINK ═══ */
.re-page .re-back { position:relative; z-index:2; max-width:1180px; margin:0 auto; width:100%; padding:0 4.5rem; }
.re-page .re-back a { display:inline-flex; align-items:center; gap:.5rem; font-family:var(--sans); font-size:.72rem; font-weight:500; letter-spacing:.16em; text-transform:uppercase; color:rgba(255,255,255,.7); transition:color .3s, gap .3s; text-decoration:none; }
.re-page .re-back a:hover { color:#fff; gap:.8rem; }
.re-page .re-back svg { width:14px; height:14px; }

/* ═══ HERO ═══ */
.re-page .re-hero { position:relative; min-height:60vh; display:flex; flex-direction:column; justify-content:center; padding:9rem 0 4.5rem; overflow:hidden; background:var(--text); }
.re-page .re-hero-bg { position:absolute; inset:0; background-size:cover; background-position:center 32%; opacity:.32; filter:saturate(.96); transform:scale(1.04); }
.re-page .re-hero-overlay { position:absolute; inset:0; background:linear-gradient(180deg, rgba(37,32,24,.50) 0%, rgba(37,32,24,.55) 42%, rgba(37,32,24,.95) 100%); }
.re-page .re-hero-inner { position:relative; z-index:1; max-width:1180px; margin:2.4rem auto 0; width:100%; padding:0 4.5rem; }

.re-page .re-status { display:inline-flex; align-items:center; gap:.5rem; padding:.4rem .9rem; border-radius:var(--radius-pill); background:rgba(140,156,132,.92); color:#fff; font-family:var(--sans); font-size:.66rem; font-weight:600; letter-spacing:.18em; text-transform:uppercase; margin-bottom:1.4rem; }
.re-page .re-status .dot { width:7px; height:7px; border-radius:50%; background:#fff; animation:re-pulse 2.2s infinite; }
@keyframes re-pulse { 0%{box-shadow:0 0 0 0 rgba(255,255,255,.6);} 70%{box-shadow:0 0 0 7px rgba(255,255,255,0);} 100%{box-shadow:0 0 0 0 rgba(255,255,255,0);} }
.re-page .re-status.few { background:#c0603b; }
.re-page .re-status.sold { background:#c83b3b; }
.re-page .re-status.sold .dot { animation:none; }

.re-page .re-hero .s-eye { color:var(--base-lt); }
.re-page .re-hero .s-eye::before { background:var(--base-lt); }
.re-page .re-hero-h1 { font-family:var(--serif); font-size:72px; font-weight:300; line-height:1.05; letter-spacing:-.02em; color:#fff; margin:1.1rem 0 .9rem; max-width:21ch; }
.re-page .re-hero-sub { font-family:var(--serif); font-style:italic; font-weight:300; font-size:clamp(1.25rem,2.1vw,1.85rem); color:rgba(255,255,255,.82); line-height:1.4; max-width:32ch; margin-bottom:2.2rem; }
.re-page .re-hero-meta { display:flex; flex-wrap:wrap; gap:1rem 2.4rem; padding-top:1.8rem; margin-bottom:2.4rem; border-top:1px solid rgba(255,255,255,.16); }
.re-page .re-meta-item { display:flex; align-items:center; gap:.7rem; }
.re-page .re-meta-item svg { width:19px; height:19px; color:var(--base-lt); flex-shrink:0; }
.re-page .re-meta-item .lbl { display:block; font-size:.58rem; font-weight:500; letter-spacing:.16em; text-transform:uppercase; color:rgba(255,255,255,.5); margin-bottom:.15rem; }
.re-page .re-meta-item .val { display:block; font-family:var(--sans); font-size:.95rem; font-weight:500; color:#fff; line-height:1; }
.re-page .re-hero-actions { display:flex; flex-wrap:wrap; gap:1rem; align-items:center; }
.re-page .re-hero-actions .btn-base { background:var(--base-lt); color:var(--text); }
.re-page .re-hero-actions .btn-base:hover { background:#fff; }
.re-page .btn-ghost-light { display:inline-flex; align-items:center; gap:.55rem; padding:.9rem 1.5rem; background:rgba(255,255,255,.10); color:#fff; border:1px solid rgba(255,255,255,.35); border-radius:var(--radius-pill); font-family:var(--sans); font-size:.76rem; letter-spacing:.12em; text-transform:uppercase; font-weight:500; cursor:pointer; backdrop-filter:blur(8px); transition:background .3s, transform .3s, border-color .3s; text-decoration:none; }
.re-page .btn-ghost-light:hover { background:rgba(255,255,255,.2); border-color:#fff; transform:translateY(-2px); }
.re-page .btn-ghost-light svg { width:16px; height:16px; fill:currentColor; }

/* ═══ MAIN — contenido + tarjeta de inscripción ═══ */
.re-page .re-main { background:var(--white); padding:5.5rem 4.5rem; }
.re-page .re-main-inner { max-width:1180px; margin:0 auto; display:grid; grid-template-columns:minmax(0,1.55fr) 380px; gap:4.5rem; align-items:start; }
.re-page .re-content { min-width:0; }
.re-page .re-lead { font-family:var(--serif); font-weight:300; font-size:clamp(1.4rem,2.2vw,1.85rem); line-height:1.5; color:var(--text); margin-bottom:2.6rem; }
.re-page .re-lead strong { font-weight:500; color:var(--base-dk); }

/* ── Bloque vídeo ── */
.re-page .re-video { position:relative; border-radius:var(--radius-md); overflow:hidden; aspect-ratio:16/9; margin-bottom:3rem; cursor:pointer; background:var(--text); box-shadow:var(--shadow-md); }
.re-page .re-video img { width:100%; height:100%; object-fit:cover; display:block; transition:transform .55s ease, opacity .3s; }
.re-page .re-video:hover img { transform:scale(1.04); opacity:.85; }
.re-page .re-video-play { position:absolute; inset:0; display:flex; align-items:center; justify-content:center; }
.re-page .re-video-play span { width:76px; height:76px; border-radius:50%; background:rgba(255,255,255,.92); color:var(--text); display:flex; align-items:center; justify-content:center; box-shadow:0 10px 30px rgba(0,0,0,.35); transition:transform .3s, background .3s; }
.re-page .re-video:hover .re-video-play span { transform:scale(1.08); background:#fff; }
.re-page .re-video-play svg { width:26px; height:26px; fill:var(--text); margin-left:4px; }
.re-page .re-video-label { position:absolute; left:1.2rem; bottom:1.2rem; font-family:var(--sans); font-size:.68rem; font-weight:600; letter-spacing:.16em; text-transform:uppercase; color:#fff; background:rgba(37,32,24,.55); padding:.4rem .85rem; border-radius:var(--radius-pill); backdrop-filter:blur(6px); }

/* ── the_content() (editor Gutenberg) — "El reto por dentro" ── */
.re-page .re-richtext { margin-bottom:3rem; }
.re-page .re-richtext > *:first-child { margin-top:0; }
.re-page .re-richtext h2 { font-family:var(--serif); font-size:clamp(1.7rem,2.6vw,2.3rem); font-weight:400; line-height:1.18; color:var(--text); margin:2.2rem 0 1.1rem; }
.re-page .re-richtext h2 em { font-style:normal; color:var(--base); font-weight:300; }
.re-page .re-richtext h3 { font-family:var(--serif); font-size:1.5rem; font-weight:500; color:var(--text); margin:1.8rem 0 .9rem; }
.re-page .re-richtext p { font-size:1.04rem; color:var(--text-70); line-height:1.82; margin-bottom:1.1rem; }
.re-page .re-richtext ul, .re-page .re-richtext ol { margin:0 0 1.4rem 1.2rem; }
.re-page .re-richtext li { font-size:1.02rem; color:var(--text-70); line-height:1.7; margin-bottom:.5rem; }
.re-page .re-richtext a { color:var(--base-dk); text-decoration:underline; }
.re-page .re-richtext blockquote { font-family:var(--serif); font-size:1.4rem; line-height:1.45; color:var(--text); border-left:3px solid var(--base); padding:1.2rem 1.6rem; margin:1.6rem 0; background:var(--base-pale); }
.re-page .re-richtext img { max-width:100%; height:auto; border-radius:var(--radius-md); }

/* ── Qué incluye (checklist a 2 columnas) ── */
.re-page .re-block { margin-bottom:3rem; }
.re-page .re-block:last-child { margin-bottom:0; }
.re-page .re-block h2 { font-family:var(--serif); font-size:clamp(1.7rem,2.6vw,2.3rem); font-weight:400; line-height:1.18; color:var(--text); margin-bottom:1.2rem; }
.re-page .re-block h2 em { font-style:normal; color:var(--base); font-weight:300; }
.re-page .re-includes { list-style:none; margin:1.4rem 0 0; padding:0; display:grid; grid-template-columns:1fr 1fr; gap:.2rem 2rem; }
.re-page .re-includes li { font-size:1rem; color:var(--text); padding:.8rem 0; border-bottom:1px solid var(--sand2); display:flex; align-items:flex-start; gap:.8rem; line-height:1.4; }
.re-page .re-includes li svg { width:18px; height:18px; color:var(--sage); flex-shrink:0; margin-top:.15rem; }

/* ═══ TARJETA DE INSCRIPCIÓN (sticky) ═══ */
.re-page .re-aside { position:sticky; top:6rem; }
.re-page .re-book { background:var(--white); border-radius:var(--radius-lg); border-top:4px solid var(--sage); box-shadow:var(--shadow-lg); padding:2.2rem 2rem 2rem; }
.re-page .re-book-status { display:inline-flex; align-items:center; gap:.45rem; font-family:var(--sans); font-size:.64rem; font-weight:600; letter-spacing:.16em; text-transform:uppercase; color:var(--sage); margin-bottom:1.1rem; }
.re-page .re-book-status.sold { color:#c83b3b; }
.re-page .re-book-status.few { color:#c0603b; }
.re-page .re-book-status .dot { width:6px; height:6px; border-radius:50%; background:currentColor; }
.re-page .re-price { display:flex; align-items:baseline; gap:.6rem; flex-wrap:wrap; }
.re-page .re-price .was { font-family:var(--serif); font-size:1.9rem; font-weight:400; color:var(--text-40); text-decoration:line-through; text-decoration-thickness:1.5px; line-height:1; }
.re-page .re-price .amount { font-family:var(--serif); font-size:3rem; font-weight:400; color:var(--text); line-height:1; }
.re-page .re-price-label { font-size:.82rem; color:var(--text-40); margin-top:.5rem; letter-spacing:.02em; }
.re-page .re-facts { list-style:none; margin:1.6rem 0; padding:0; border-top:1px solid var(--sand2); }
.re-page .re-fact { display:flex; align-items:center; gap:.85rem; padding:.85rem 0; border-bottom:1px solid var(--sand2); }
.re-page .re-fact svg { width:18px; height:18px; color:var(--base); flex-shrink:0; }
.re-page .re-fact .lbl { font-size:.62rem; font-weight:500; letter-spacing:.14em; text-transform:uppercase; color:var(--text-40); display:block; margin-bottom:.1rem; }
.re-page .re-fact .val { font-size:.95rem; font-weight:500; color:var(--text); line-height:1.2; }
.re-page .re-avail { margin:1.4rem 0 1.6rem; }
.re-page .re-avail-top { display:flex; justify-content:space-between; align-items:baseline; margin-bottom:.55rem; }
.re-page .re-avail-top .lbl { font-size:.62rem; font-weight:500; letter-spacing:.14em; text-transform:uppercase; color:var(--text-40); }
.re-page .re-avail-top .num { font-family:var(--serif); font-size:1.05rem; color:var(--base-dk); font-weight:500; }
.re-page .re-bar { height:7px; border-radius:var(--radius-pill); background:var(--sand2); overflow:hidden; }
.re-page .re-bar span { display:block; height:100%; border-radius:var(--radius-pill); background:linear-gradient(90deg, var(--sage), var(--base)); }
.re-page .re-avail-msg { margin-top:.6rem; font-size:.8rem; color:#c0603b; font-weight:500; letter-spacing:.02em; }
.re-page .re-book-cta { display:flex; align-items:center; justify-content:center; gap:.55rem; width:100%; padding:1.05rem 1.4rem; border-radius:var(--radius-pill); background:var(--text); color:#fff; font-family:var(--sans); font-size:.8rem; font-weight:500; letter-spacing:.14em; text-transform:uppercase; line-height:1; box-shadow:var(--shadow-md); transition:background .3s, transform .25s, gap .3s; text-decoration:none; }
.re-page .re-book-cta:hover { background:var(--base-dk); transform:translateY(-2px); gap:.75rem; }
.re-page .re-book-cta svg { width:15px; height:15px; }
.re-page .re-book-alt { display:flex; align-items:center; justify-content:center; gap:.55rem; width:100%; padding:.95rem 1.4rem; margin-top:.8rem; border-radius:var(--radius-pill); background:rgba(37,211,102,.10); color:#1c8a44; border:1px solid rgba(37,211,102,.35); font-family:var(--sans); font-size:.78rem; font-weight:500; letter-spacing:.1em; text-transform:uppercase; line-height:1; transition:background .3s, transform .25s; text-decoration:none; }
.re-page .re-book-alt:hover { background:rgba(37,211,102,.18); transform:translateY(-2px); }
.re-page .re-book-alt svg { width:16px; height:16px; fill:currentColor; }
.re-page .re-book-foot { display:flex; align-items:center; justify-content:center; gap:.5rem; margin-top:1.2rem; font-size:.72rem; color:var(--text-40); letter-spacing:.03em; text-align:center; }
.re-page .re-book-foot svg { width:13px; height:13px; color:var(--base); flex-shrink:0; }

/* ═══ CÓMO FUNCIONA — roadmap 4 pasos (estático) ═══ */
.re-page .re-how { padding:5.5rem 4.5rem; background:var(--sand); }
.re-page .re-how-head { max-width:1180px; margin:0 auto 3.4rem; text-align:center; }
.re-page .re-how-grid { max-width:1180px; margin:0 auto; display:grid; grid-template-columns:repeat(4,1fr); gap:2rem; position:relative; }
.re-page .re-how-grid::before { content:''; position:absolute; top:36px; left:12%; right:12%; border-top:2px dashed var(--base-line); z-index:0; }
.re-page .re-step { text-align:center; position:relative; z-index:1; }
.re-page .re-step-num { width:72px; height:72px; border-radius:50%; margin:0 auto 1.4rem; display:flex; align-items:center; justify-content:center; font-family:var(--serif); font-size:2rem; font-weight:400; background:var(--text); color:#fff; box-shadow:0 8px 22px rgba(37,32,24,.18); }
.re-page .re-step:nth-child(even) .re-step-num { background:var(--sand); color:var(--text); border:2px solid var(--text); }
.re-page .re-step h3 { font-family:var(--serif); font-size:1.3rem; font-weight:500; margin-bottom:.55rem; color:var(--text); }
.re-page .re-step p { font-size:.94rem; color:var(--text-70); line-height:1.6; max-width:24ch; margin:0 auto; }

/* ═══ BENEFICIOS (ACF repeater) ═══ */
.re-page .re-benefits { padding:5.5rem 4.5rem; background:var(--white); }
.re-page .re-benefits-head { max-width:640px; margin:0 auto 3rem; text-align:center; }
.re-page .re-benefits-head h2 { font-family:var(--serif); font-size:clamp(2rem,3vw,2.8rem); font-weight:400; line-height:1.15; }
.re-page .re-benefits-head h2 em { font-style:normal; color:var(--base); font-weight:300; }
.re-page .re-benefits-head .s-rule { margin:1.4rem auto; }
.re-page .re-benefits-grid { max-width:1180px; margin:0 auto; display:grid; grid-template-columns:repeat(3,1fr); gap:1.6rem; }
.re-page .re-benefit { background:var(--sand); border-radius:var(--radius-md); padding:2rem 1.8rem; border-top:3px solid var(--sage); transition:transform .3s, box-shadow .3s; }
.re-page .re-benefit:hover { transform:translateY(-4px); box-shadow:var(--shadow-md); }
.re-page .re-benefit-ic { width:46px; height:46px; border-radius:12px; background:var(--base-pale); display:flex; align-items:center; justify-content:center; margin-bottom:1.1rem; }
.re-page .re-benefit-ic svg { width:23px; height:23px; color:var(--base-dk); }
.re-page .re-benefit h3 { font-family:var(--serif); font-size:1.35rem; font-weight:500; margin-bottom:.5rem; color:var(--text); }
.re-page .re-benefit p { font-size:.96rem; color:var(--text-70); line-height:1.62; }

/* ═══ GALERÍA (ACF gallery) ═══ */
.re-page .re-gallery-sec { background:var(--sand); padding:5.5rem 4.5rem; }
.re-page .re-gallery-inner { max-width:1180px; margin:0 auto; }
.re-page .re-gallery-head { max-width:640px; margin:0 auto 3rem; text-align:center; }
.re-page .re-gallery-head h2 { font-family:var(--serif); font-size:clamp(2rem,3vw,2.8rem); font-weight:400; line-height:1.15; }
.re-page .re-gallery-head h2 em { font-style:normal; color:var(--base); font-weight:300; }
.re-page .re-gallery-head .s-rule { margin:1.4rem auto; }
.re-page .re-gallery-grid { display:grid; grid-template-columns:repeat(6,1fr); grid-auto-rows:170px; gap:.8rem; }
.re-page .re-gallery-item { overflow:hidden; border-radius:var(--radius-sm); background:var(--text); cursor:pointer; border:0; padding:0; }
.re-page .re-gallery-item img { width:100%; height:100%; object-fit:cover; transition:transform .55s ease, opacity .3s; display:block; }
.re-page .re-gallery-item:hover img { transform:scale(1.06); opacity:.92; }
.re-page .re-gallery-item.big { grid-column:span 3; grid-row:span 2; }
.re-page .re-gallery-item.tall { grid-column:span 3; grid-row:span 2; }
.re-page .re-gallery-item.wide { grid-column:span 2; }

/* ═══ TESTIMONIOS (ACF repeater) ═══ */
.re-page .re-testi { padding:5.5rem 4.5rem; background:var(--white); }
.re-page .re-testi-head { max-width:900px; margin:0 auto 3rem; text-align:center; }
.re-page .re-testi-head h2 { font-family:var(--serif); font-size:clamp(2rem,3vw,2.8rem); font-weight:400; line-height:1.15; }
.re-page .re-testi-head h2 em { font-style:normal; color:var(--base); font-weight:300; }
.re-page .re-testi-head .s-rule { margin:1.4rem auto; }
.re-page .re-testi-grid { max-width:1180px; margin:0 auto; display:grid; grid-template-columns:repeat(3,1fr); gap:1.6rem; }
.re-page .re-testi-card { background:var(--sand); border:1px solid var(--sand2); border-radius:var(--radius-md); padding:1.8rem; display:flex; flex-direction:column; }
.re-page .re-testi-quote { font-family:var(--serif); font-style:italic; font-size:1.12rem; font-weight:400; color:var(--text-70); line-height:1.7; margin-bottom:1.4rem; flex-grow:1; }
.re-page .re-testi-who { display:flex; align-items:center; gap:.8rem; }
.re-page .re-testi-avatar { width:48px; height:48px; border-radius:50%; overflow:hidden; background:var(--sand2); flex-shrink:0; }
.re-page .re-testi-avatar img { width:100%; height:100%; object-fit:cover; display:block; }
.re-page .re-testi-name { display:block; font-family:var(--sans); font-size:.95rem; font-weight:500; color:var(--text); line-height:1.25; }
/* Card de testimonio en VÍDEO */
.re-page .re-testi-card.is-video { padding:0; overflow:hidden; cursor:pointer; position:relative; background:var(--text); min-height:300px; display:flex; }
.re-page .re-testi-card.is-video img { width:100%; height:100%; object-fit:cover; display:block; opacity:.82; transition:opacity .3s, transform .5s; position:absolute; inset:0; }
.re-page .re-testi-card.is-video:hover img { opacity:.65; transform:scale(1.04); }
.re-page .re-testi-vplay { position:relative; z-index:1; margin:auto; width:64px; height:64px; border-radius:50%; background:rgba(255,255,255,.92); display:flex; align-items:center; justify-content:center; box-shadow:0 10px 30px rgba(0,0,0,.35); transition:transform .3s; }
.re-page .re-testi-card.is-video:hover .re-testi-vplay { transform:scale(1.08); }
.re-page .re-testi-vplay svg { width:22px; height:22px; fill:var(--text); margin-left:3px; }
.re-page .re-testi-vmeta { position:absolute; left:1.2rem; bottom:1.1rem; z-index:1; color:#fff; }
.re-page .re-testi-vmeta .n { font-family:var(--sans); font-size:.92rem; font-weight:500; display:block; }
.re-page .re-testi-vmeta .r { font-size:.74rem; color:rgba(255,255,255,.8); }

/* ═══ FAQ (ACF repeater · acordeón) ═══ */
.re-page .re-faq { padding:5.5rem 4.5rem; background:var(--sand); }
.re-page .re-faq-inner { max-width:820px; margin:0 auto; }
.re-page .re-faq-head { text-align:center; margin-bottom:2.6rem; }
.re-page .re-faq-head h2 { font-family:var(--serif); font-size:clamp(2rem,3vw,2.8rem); font-weight:400; line-height:1.15; }
.re-page .re-faq-head h2 em { font-style:normal; color:var(--base); font-weight:300; }
.re-page .re-faq-head .s-rule { margin:1.4rem auto; }
.re-page .re-faq-item { border-bottom:1px solid var(--sand3); }
.re-page .re-faq-q { width:100%; text-align:left; background:none; border:none; cursor:pointer; padding:1.35rem 0; display:flex; justify-content:space-between; align-items:center; gap:1rem; font-family:var(--sans); font-size:1.05rem; font-weight:500; color:var(--text); }
.re-page .re-faq-q:hover { color:var(--base-dk); }
.re-page .re-faq-q .ic { position:relative; width:18px; height:18px; flex-shrink:0; }
.re-page .re-faq-q .ic::before, .re-page .re-faq-q .ic::after { content:''; position:absolute; background:var(--base); border-radius:2px; transition:transform .3s, opacity .3s; }
.re-page .re-faq-q .ic::before { top:8px; left:0; width:18px; height:2px; }
.re-page .re-faq-q .ic::after { top:0; left:8px; width:2px; height:18px; }
.re-page .re-faq-item.open .re-faq-q .ic::after { transform:rotate(90deg); opacity:0; }
.re-page .re-faq-a { max-height:0; overflow:hidden; transition:max-height .35s ease; }
.re-page .re-faq-a-inner { padding:0 0 1.35rem; color:var(--text-70); line-height:1.78; font-size:1rem; }
.re-page .re-faq-a-inner p { margin-bottom:.8rem; }
.re-page .re-faq-a-inner p:last-child { margin-bottom:0; }
.re-page .re-faq-a-inner a { color:var(--base-dk); text-decoration:underline; }
.re-page .re-faq-item.open .re-faq-a { max-height:600px; }

/* ═══ FORMULARIO GHL ═══ */
.re-page .re-form-sec { background:var(--white); padding:5.5rem 4.5rem; }
.re-page .re-form-inner { max-width:820px; margin:0 auto; text-align:center; }
.re-page .re-form-inner h2 { font-family:var(--serif); font-size:clamp(2rem,3vw,2.8rem); font-weight:400; line-height:1.15; }
.re-page .re-form-inner h2 em { font-style:normal; color:var(--base); font-weight:300; }
.re-page .re-form-inner .s-rule { margin:1.4rem auto; }
.re-page .re-form-inner > p { font-size:1.06rem; color:var(--text-70); line-height:1.78; max-width:600px; margin:0 auto 2.5rem; }
.re-page .re-form-embed iframe { width:100%; min-height:560px; border:0; border-radius:var(--radius-md); background:var(--sand); }
.re-page .re-form-missing { background:var(--sand); border:1px dashed var(--base-line); border-radius:var(--radius-md); padding:3rem 2rem; display:flex; flex-direction:column; align-items:center; gap:1rem; color:var(--text-40); }
.re-page .re-form-missing svg { width:38px; height:38px; color:var(--base); }
.re-page .re-form-missing code { font-family:monospace; font-size:.8rem; background:var(--white); padding:.3rem .6rem; border-radius:4px; color:var(--base-dk); }

/* ═══ CTA FINAL ═══ */
.re-page .re-cta { background:var(--text); padding:5rem 4.5rem; color:#fff; }
.re-page .re-cta-inner { max-width:1120px; margin:0 auto; display:grid; grid-template-columns:1.4fr 1fr; gap:3rem; align-items:center; }
.re-page .re-cta .s-eye { color:var(--base-lt); }
.re-page .re-cta .s-eye::before { background:var(--base-lt); }
.re-page .re-cta h2 { font-family:var(--serif); font-size:clamp(2rem,3.4vw,3rem); font-weight:300; line-height:1.15; color:#fff; margin:1.1rem 0; }
.re-page .re-cta h2 strong { font-weight:400; color:var(--base-lt); }
.re-page .re-cta p { color:rgba(255,255,255,.72); line-height:1.7; max-width:480px; }
.re-page .re-cta-actions { display:flex; flex-direction:column; gap:1rem; align-items:flex-start; }
.re-page .re-cta-actions .btn-base { background:var(--base-lt); color:var(--text); }
.re-page .re-cta-actions .btn-base:hover { background:#fff; }
.re-page .re-cta-note { font-size:.72rem; letter-spacing:.14em; text-transform:uppercase; color:rgba(255,255,255,.55); }

/* ═══ LIGHTBOX (galería + vídeo) ═══ */
.re-page .re-lightbox { position:fixed; inset:0; z-index:99999; background:rgba(20,16,10,.93); backdrop-filter:blur(10px); display:flex; align-items:center; justify-content:center; opacity:0; pointer-events:none; transition:opacity .35s; }
.re-page .re-lightbox.open { opacity:1; pointer-events:all; }
.re-page .re-lb-body { transform:scale(.94); transition:transform .35s; display:flex; }
.re-page .re-lightbox.open .re-lb-body { transform:scale(1); }
.re-page .re-lb-body img, .re-page .re-lb-body video { max-width:90vw; max-height:86vh; border-radius:10px; box-shadow:0 32px 80px rgba(0,0,0,.6); display:block; }
.re-page .re-lb-body iframe { width:min(92vw,960px); aspect-ratio:16/9; max-height:86vh; border:0; border-radius:10px; box-shadow:0 32px 80px rgba(0,0,0,.6); }
.re-page .re-lightbox-close { position:absolute; top:1.6rem; right:1.6rem; background:none; border:1px solid rgba(255,255,255,.3); color:rgba(255,255,255,.85); font-size:.8rem; letter-spacing:.12em; text-transform:uppercase; padding:.45rem 1.1rem; border-radius:var(--radius-pill); cursor:pointer; font-family:var(--sans); transition:border-color .3s, color .3s; z-index:1; }
.re-page .re-lightbox-close:hover { border-color:#fff; color:#fff; }

/* ═══ LIGHTBOX — reproductor de audio ═══ */
.re-page .re-audio-player { width:min(92vw,420px); background:var(--white); border-radius:var(--radius-lg); box-shadow:0 32px 80px rgba(0,0,0,.6); padding:2.6rem 2rem 2.2rem; text-align:center; }
.re-page .re-audio-ic { width:60px; height:60px; margin:0 auto 1.2rem; border-radius:50%; background:var(--base-pale); display:flex; align-items:center; justify-content:center; color:var(--base-dk); }
.re-page .re-audio-ic svg { width:26px; height:26px; }
.re-page .re-audio-title { font-family:var(--serif); font-size:1.5rem; font-weight:400; color:var(--text); margin-bottom:.2rem; }
.re-page .re-audio-sub { font-size:.85rem; color:var(--text-40); margin-bottom:1.6rem; }
.re-page .re-audio-player audio { width:100%; }

/* ═══ RESPONSIVE ═══ */
@media (max-width:1024px) {
  .re-page .re-main-inner { grid-template-columns:1fr; gap:2.5rem; }
  .re-page .re-aside { position:static; order:-1; max-width:480px; margin:0 auto; width:100%; }
  .re-page .re-how-grid { grid-template-columns:repeat(2,1fr); gap:2.4rem 2rem; }
  .re-page .re-how-grid::before { display:none; }
  .re-page .re-benefits-grid { grid-template-columns:repeat(2,1fr); }
  .re-page .re-testi-grid { grid-template-columns:repeat(2,1fr); }
  .re-page .re-cta-inner { grid-template-columns:1fr; gap:2rem; }
  .re-page .re-gallery-grid { grid-template-columns:repeat(4,1fr); }
}
@media (max-width:720px) {
  .re-page .re-back { padding:0 1.4rem; }
  .re-page .re-hero { min-height:520px; padding:7.5rem 0 3rem; }
  .re-page .re-hero-inner { padding:0 1.4rem; }
  .re-page .re-hero-meta { gap:1rem 1.6rem; }
  .re-page .re-main { padding:3.5rem 1.4rem; }
  .re-page .re-includes { grid-template-columns:1fr; }
  .re-page .re-how, .re-page .re-benefits, .re-page .re-gallery-sec, .re-page .re-testi, .re-page .re-faq, .re-page .re-form-sec, .re-page .re-cta { padding:3.5rem 1.4rem; }
  .re-page .re-how-grid { grid-template-columns:1fr; gap:2rem; }
  .re-page .re-benefits-grid { grid-template-columns:1fr; }
  .re-page .re-testi-grid { grid-template-columns:1fr; }
  .re-page .re-gallery-grid { grid-template-columns:repeat(2,1fr); grid-auto-rows:130px; }
  .re-page .re-gallery-item.big, .re-page .re-gallery-item.tall, .re-page .re-gallery-item.wide { grid-column:span 2; grid-row:span 1; }
}
