/* ============================================================
   Método JC — Programas
   Hoja de estilos compartida por /programas y /programas/[slug].
   Reutiliza la identidad visual de julicesanofit.com (index.html):
   verde, verde oscuro, beige/crema, dorado, Fraunces + Inter,
   bordes redondeados, estética editorial.
   ============================================================ */

:root{
  --verde: #107254;
  --verde-oscuro: #0B4A37;
  --verde-tinta: #0A3226;
  --arena: #F3ECDF;
  --arena-suave: #EDE4D2;
  --oro: #C9962E;
  --oro-oscuro: #93701F;
  --tinta: #1C2620;
  --tinta-suave: #56635B;
  --blanco: #FFFDF8;
  --font-display: 'Fraunces', serif;
  --font-body: 'Inter', sans-serif;
}

*{ margin:0; padding:0; box-sizing:border-box; }
html{ scroll-behavior:smooth; }
body{
  background: var(--arena);
  color: var(--tinta);
  font-family: var(--font-body);
  line-height:1.6;
  overflow-x:hidden;
}
img{ max-width:100%; display:block; }
a{ color:inherit; text-decoration:none; }

.wrap{ max-width:1180px; margin:0 auto; padding:0 32px; }

.eyebrow{
  font-family:var(--font-body);
  font-size:12.5px; font-weight:600; letter-spacing:.14em;
  text-transform:uppercase; color: var(--verde);
}
h1,h2,h3{ font-family: var(--font-display); font-weight:500; color: var(--tinta); letter-spacing:-.01em; }

.btn{
  display:inline-flex; align-items:center; gap:8px;
  padding:15px 28px; border-radius:100px;
  font-family:var(--font-body); font-weight:600; font-size:15px; letter-spacing:.01em;
  transition: transform .18s ease, box-shadow .18s ease, background .18s ease;
  border:1.5px solid transparent; cursor:pointer; white-space:nowrap;
}
.btn:hover{ transform: translateY(-2px); }
.btn-primary{ background: var(--verde); color: var(--blanco); }
.btn-primary:hover{ background: var(--verde-oscuro); box-shadow:0 10px 24px rgba(16,114,84,.28); }
.btn-outline{ background:transparent; border-color: rgba(28,38,32,.22); color: var(--tinta); }
.btn-outline:hover{ border-color: var(--tinta); }
.btn-oro{ background: var(--oro); color: var(--verde-tinta); }
.btn-oro:hover{ background: var(--oro-oscuro); color:var(--blanco); box-shadow:0 10px 24px rgba(201,150,46,.32);}
.btn-block{ width:100%; justify-content:center; }
.btn[disabled], .btn.disabled{ opacity:.5; pointer-events:none; }

/* HEADER (igual a index.html) */
header{
  position:sticky; top:0; z-index:50;
  background: rgba(243,236,223,.86);
  backdrop-filter: blur(10px);
  border-bottom:1px solid rgba(28,38,32,.08);
}
.nav{ display:flex; align-items:center; justify-content:space-between; padding:16px 0; }
.nav-logo img{ height:30px; width:auto; }
.nav-links{ display:flex; align-items:center; gap:34px; font-size:14.5px; font-weight:500; color: var(--tinta-suave); }
.nav-links a:hover{ color: var(--verde); }
.nav-links a.activo{ color: var(--verde); }
.nav-cta{ display:flex; align-items:center; gap:14px; }
.nav-menu-toggle{ display:none; background:none; border:none; font-size:26px; color:var(--tinta); cursor:pointer; }
@media (max-width:900px){
  .nav-links{ display:none; }
  .nav-menu-toggle{ display:block; }
  .nav-cta .btn-outline{ display:none; }
}

section{ padding:88px 0; }
.section-head{ max-width:640px; margin-bottom:52px; }
.section-head h2{ font-size:clamp(28px,3.4vw,40px); margin-top:14px; line-height:1.12; }
.section-head p{ color:var(--tinta-suave); font-size:16.5px; margin-top:14px; max-width:520px; }
.section-head.center{ margin-left:auto; margin-right:auto; text-align:center; }

.reveal{ opacity:0; transform:translateY(16px); transition:opacity .7s ease, transform .7s ease; }
.reveal.in{ opacity:1; transform:translateY(0); }
@media (prefers-reduced-motion: reduce){ .reveal{ opacity:1; transform:none; transition:none; } }

/* PROMO BAR (solo si hay promoción real) */
.promo-bar{
  background: var(--oro); color: var(--verde-tinta);
  text-align:center; padding:10px 16px; font-size:13.5px; font-weight:600;
}

/* HERO /programas */
.hero-prog{ padding:70px 0 54px; }
.hero-prog h1{ font-size:clamp(34px,4.6vw,52px); line-height:1.08; margin:16px 0 20px; max-width:820px; }
.hero-prog p.lead{ font-size:17.5px; color:var(--tinta-suave); max-width:560px; margin-bottom:30px; }
.hero-prog .hero-ctas{ display:flex; gap:14px; flex-wrap:wrap; }

/* SELECTOR POR OBJETIVO */
.selector-band{ background: var(--arena-suave); }
.selector-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:14px; }
.selector-chip{
  display:flex; align-items:center; gap:10px;
  background: var(--blanco); border:1px solid rgba(28,38,32,.08);
  border-radius:14px; padding:18px 20px; font-size:14.5px; font-weight:500;
  transition: border-color .18s ease, transform .18s ease;
  cursor:pointer;
}
.selector-chip:hover{ border-color: var(--verde); transform:translateY(-2px); }
@media (max-width:860px){ .selector-grid{ grid-template-columns:1fr 1fr; } }
@media (max-width:560px){ .selector-grid{ grid-template-columns:1fr; } }

/* CATALOGO */
.catalogo-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:24px; }
.prog-card{
  background: var(--blanco); border-radius:20px; overflow:hidden;
  border:1px solid rgba(28,38,32,.08);
  display:flex; flex-direction:column;
  transition: box-shadow .2s ease, transform .2s ease;
}
.prog-card:hover{ transform:translateY(-4px); box-shadow:0 20px 34px -18px rgba(11,74,55,.22); }
.prog-card-media{
  aspect-ratio:4/3; background: var(--verde-tinta);
  display:flex; align-items:center; justify-content:center;
  position:relative; overflow:hidden;
}
.prog-card-media img{ width:100%; height:100%; object-fit:cover; }
.prog-card-media.placeholder{
  color: rgba(255,253,248,.5); font-size:13px; text-align:center; padding:20px;
  font-family:var(--font-body); font-weight:500;
}
.prog-card-tag{
  position:absolute; top:14px; left:14px;
  background:var(--oro); color:var(--verde-tinta);
  font-size:11px; font-weight:700; letter-spacing:.04em; text-transform:uppercase;
  padding:5px 11px; border-radius:100px;
}
.prog-card-tag.draft{ background: rgba(28,38,32,.75); color:var(--blanco); }
.prog-card-body{ padding:22px 22px 24px; display:flex; flex-direction:column; flex-grow:1; }
.prog-card-body .eyebrow{ font-size:11.5px; }
.prog-card-body h3{ font-size:19.5px; margin:8px 0 10px; line-height:1.22; }
.prog-card-meta{ display:flex; flex-wrap:wrap; gap:8px 14px; font-size:12.5px; color:var(--tinta-suave); margin-bottom:16px; }
.prog-card-meta span{ display:flex; align-items:center; gap:5px; }
.prog-card-price{ margin-top:auto; padding-top:10px; }
.price-old{ font-size:13px; color:var(--tinta-suave); text-decoration:line-through; margin-right:8px; }
.price-now{ font-size:22px; font-family:var(--font-display); color:var(--verde-tinta); font-weight:500; }
.price-currency{ font-size:13px; color:var(--tinta-suave); }
.prog-card-cta{ margin-top:16px; }

@media (max-width:960px){ .catalogo-grid{ grid-template-columns:1fr 1fr; } }
@media (max-width:640px){ .catalogo-grid{ grid-template-columns:1fr; } }

/* QUE INCLUYEN */
.incluyen-band{ background: var(--verde-tinta); }
.incluyen-band .eyebrow{ color: var(--oro); }
.incluyen-band .section-head h2{ color:var(--blanco); }
.incluyen-band .section-head p{ color: rgba(255,253,248,.68); }
.incluyen-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:16px; }
.incluyen-item{
  background: rgba(255,253,248,.06); border:1px solid rgba(255,253,248,.14);
  border-radius:14px; padding:18px 18px; font-size:13.5px; color: rgba(255,253,248,.85);
}
.incluyen-note{
  margin-top:28px; font-size:13.5px; color: rgba(255,253,248,.6);
  border-top:1px solid rgba(255,253,248,.14); padding-top:20px;
}
@media (max-width:860px){ .incluyen-grid{ grid-template-columns:1fr 1fr; } }
@media (max-width:560px){ .incluyen-grid{ grid-template-columns:1fr; } }

/* SOBRE JULI (versión programas) */
.sobre-prog{ display:grid; grid-template-columns:.85fr 1.15fr; gap:56px; align-items:center; }
.sobre-prog-photo{ border-radius:20px; overflow:hidden; box-shadow:0 24px 50px -22px rgba(11,74,55,.35); }
.sobre-prog-body p{ color:var(--tinta-suave); font-size:16px; margin-bottom:16px; max-width:520px; }
.sobre-prog-body a.link-verde{ color:var(--verde); font-weight:600; }
@media (max-width:900px){ .sobre-prog{ grid-template-columns:1fr; gap:30px; } }

/* PRUEBA SOCIAL */
.testi-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:20px; }
.testi-card{ border:1px solid rgba(28,38,32,.08); border-radius:18px; padding:26px 22px; background: var(--blanco); }
.testi-card .ico{ font-size:22px; margin-bottom:12px; display:block; color:var(--oro); font-family:var(--font-display); font-style:italic; }
.testi-card p{ color:var(--tinta-suave); font-size:14.5px; margin-bottom:14px; }
.testi-who{ font-size:13px; font-weight:600; color:var(--tinta); }
.testi-empty{
  border:1.5px dashed rgba(28,38,32,.18); border-radius:18px; padding:40px 24px;
  text-align:center; color:var(--tinta-suave); font-size:14px;
}
@media (max-width:860px){ .testi-grid{ grid-template-columns:1fr; } }

/* PLAN PERSONALIZADO (banda final) */
.personalizado-band{ background: var(--verde); border-radius:28px; padding:56px 48px; text-align:center; max-width:1116px; margin:0 auto; }
.personalizado-band h2{ color:var(--blanco); font-size:clamp(26px,3.6vw,36px); margin-bottom:14px; }
.personalizado-band p{ color: rgba(255,253,248,.85); font-size:16px; margin-bottom:28px; max-width:540px; margin-left:auto; margin-right:auto; }
.personalizado-band .btn-outline{ border-color: rgba(255,253,248,.4); color:var(--blanco); }
.personalizado-band .btn-outline:hover{ border-color:var(--blanco); }

/* PROGRAM PAGE: hero */
.hero-programa{ padding:54px 0 50px; }
.hero-programa-grid{ display:grid; grid-template-columns:1.05fr .85fr; gap:56px; align-items:center; }
.hero-programa h1{ font-size:clamp(32px,4.4vw,48px); line-height:1.08; margin:14px 0 18px; }
.hero-programa p.lead{ font-size:17px; color:var(--tinta-suave); margin-bottom:24px; }
.hero-programa-media{
  border-radius:22px; overflow:hidden; aspect-ratio:4/3;
  background: var(--verde-tinta); display:flex; align-items:center; justify-content:center;
}
.hero-programa-media img{ width:100%; height:100%; object-fit:cover; }
.hero-programa-media.placeholder{ color: rgba(255,253,248,.5); font-size:13px; text-align:center; padding:24px; }
@media (max-width:900px){ .hero-programa-grid{ grid-template-columns:1fr; } }

/* DATOS RAPIDOS */
.datos-rapidos{ background: var(--arena-suave); }
.datos-grid{ display:grid; grid-template-columns:repeat(5,1fr); gap:16px; }
.dato-item{ text-align:center; }
.dato-item .label{ font-size:11.5px; text-transform:uppercase; letter-spacing:.06em; color:var(--tinta-suave); margin-bottom:6px; }
.dato-item .valor{ font-family:var(--font-display); font-size:17px; color:var(--verde-tinta); }
@media (max-width:860px){ .datos-grid{ grid-template-columns:repeat(2,1fr); gap:24px; } }

/* LISTAS CON CHECK / CRUZ */
.check-list{ list-style:none; display:flex; flex-direction:column; gap:12px; }
.check-list li{ display:flex; gap:10px; font-size:15px; color:var(--tinta-suave); align-items:flex-start; }
.check-list li::before{ content:'✓'; color:var(--verde); font-weight:700; flex-shrink:0; }
.problem-list li::before{ content:'✕'; color:var(--oro-oscuro); }

.two-col{ display:grid; grid-template-columns:1fr 1fr; gap:40px; }
@media (max-width:860px){ .two-col{ grid-template-columns:1fr; gap:28px; } }

/* PRECIO Y PAGO */
.precio-band{ background: var(--verde-tinta); border-radius:28px; padding:48px 40px; }
.precio-band .eyebrow{ color:var(--oro); }
.precio-band h2{ color:var(--blanco); margin-top:10px; margin-bottom:22px; font-size:clamp(24px,3vw,32px); }
.precio-box{ display:flex; align-items:baseline; gap:12px; margin-bottom:26px; flex-wrap:wrap; }
.precio-box .price-old{ color: rgba(255,253,248,.5); font-size:16px; }
.precio-box .price-now{ color:var(--blanco); font-size:38px; }
.precio-box .price-currency{ color: rgba(255,253,248,.6); }
.pago-ctas{ display:flex; gap:14px; flex-wrap:wrap; }
.precio-nota{ margin-top:18px; font-size:13px; color: rgba(255,253,248,.55); }

/* MODAL TRANSFERENCIA */
.modal-overlay{
  position:fixed; inset:0; background:rgba(10,50,38,.55);
  display:none; align-items:center; justify-content:center; z-index:200; padding:20px;
}
.modal-overlay.open{ display:flex; }
.modal-box{
  background:var(--blanco); border-radius:20px; padding:34px 30px; max-width:420px; width:100%;
  box-shadow:0 30px 60px -20px rgba(11,74,55,.4);
}
.modal-box h3{ font-size:22px; margin-bottom:16px; }
.modal-row{ display:flex; justify-content:space-between; gap:12px; padding:10px 0; border-bottom:1px solid rgba(28,38,32,.08); font-size:14.5px; }
.modal-row strong{ color:var(--tinta-suave); font-weight:500; }
.modal-row span{ font-weight:600; text-align:right; }
.modal-actions{ display:flex; gap:10px; margin-top:22px; flex-wrap:wrap; }
.modal-close{ position:absolute; top:16px; right:18px; background:none; border:none; font-size:22px; cursor:pointer; color:var(--tinta-suave); }
.modal-box{ position:relative; }

/* FAQ */
.faq-list{ display:flex; flex-direction:column; gap:12px; max-width:760px; }
.faq-item{ border:1px solid rgba(28,38,32,.1); border-radius:14px; background:var(--blanco); overflow:hidden; }
.faq-q{
  width:100%; text-align:left; padding:18px 20px; background:none; border:none; cursor:pointer;
  font-family:var(--font-body); font-weight:600; font-size:15px; color:var(--tinta);
  display:flex; justify-content:space-between; align-items:center; gap:12px;
}
.faq-q .ico{ transition: transform .2s ease; font-size:18px; color:var(--verde); flex-shrink:0; }
.faq-item.open .faq-q .ico{ transform: rotate(45deg); }
.faq-a{ max-height:0; overflow:hidden; transition: max-height .25s ease; }
.faq-item.open .faq-a{ max-height:300px; }
.faq-a p{ padding:0 20px 18px; color:var(--tinta-suave); font-size:14.5px; }

/* DISCLAIMER SALUD */
.disclaimer{
  background: var(--arena-suave); border-radius:16px; padding:22px 24px;
  font-size:12.5px; color:var(--tinta-suave); line-height:1.65; max-width:840px;
}

/* ALTERNATIVA PERSONALIZADA (dentro de página de programa) */
.alt-personalizada{
  border:1.5px dashed rgba(16,114,84,.35); border-radius:20px; padding:32px 28px;
  display:flex; justify-content:space-between; align-items:center; gap:24px; flex-wrap:wrap;
}
.alt-personalizada h3{ font-size:19px; margin-bottom:6px; }
.alt-personalizada p{ color:var(--tinta-suave); font-size:14.5px; max-width:420px; }

/* STICKY CTA MOBILE */
.sticky-cta{
  position:fixed; bottom:0; left:0; right:0; z-index:100;
  background: var(--blanco); border-top:1px solid rgba(28,38,32,.1);
  padding:12px 16px; display:none; align-items:center; justify-content:space-between; gap:12px;
  box-shadow:0 -10px 24px rgba(11,74,55,.08);
}
.sticky-cta .price-now{ font-size:18px; }
@media (max-width:760px){ .sticky-cta.active{ display:flex; } body{ padding-bottom:78px; } }

/* FOOTER (igual a index.html) */
footer{ padding:54px 0 36px; }
.footer-grid{
  display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:20px;
  padding-bottom:26px; border-bottom:1px solid rgba(28,38,32,.1); margin-bottom:20px;
}
.footer-logo img{ height:24px; }
.footer-links{ display:flex; gap:26px; font-size:14px; color:var(--tinta-suave); flex-wrap:wrap; }
.footer-links a:hover{ color:var(--verde); }
.footer-bottom{ display:flex; justify-content:space-between; flex-wrap:wrap; gap:10px; font-size:12.5px; color:var(--tinta-suave); }
