/* Centro Mindfulness & Medicina · Diplomado — manual de marca campañas V2
   Paleta madre: verde bosque #2D5C46 · turquesa #2E6F75 · azul profundo #2A5B7F
   marfil #F7F2E6 · coral #C65B48 · naranja #EF9241. Texto: azul-verde muy oscuro.
   Tipografía: serif editorial (Georgia) para titulares + sans humanista para cuerpo. */

:root{
  --bosque:#2D5C46;
  --turquesa:#2E6F75;
  --azul:#2A5B7F;
  --marfil:#F7F2E6;
  --papel:#EFE8D8;
  --coral:#C65B48;
  --coral-dk:#A94634;
  --naranja:#EF9241;
  --ink:#173A3F;
  --ink-2:#3E5A5E;
  --line:rgba(23,58,63,.14);
  --white:#FFFDF8;
  --serif:Georgia,"Times New Roman",serif;
  --sans:"Source Sans 3","Segoe UI",system-ui,-apple-system,sans-serif;
  --r:16px;
  --gut:20px;
}

*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{
  margin:0;background:var(--marfil);color:var(--ink);
  font:400 18px/1.65 var(--sans);
  -webkit-font-smoothing:antialiased;
  padding-bottom:84px; /* espacio barra fija móvil */
}
img{max-width:100%;height:auto;display:block}
a{color:var(--turquesa)}
h1,h2,h3{font-family:var(--serif);font-weight:400;line-height:1.15;margin:0 0 .5em;color:var(--ink)}
h1{font-size:clamp(2.15rem,7.4vw,3.6rem);letter-spacing:-.01em}
h2{font-size:clamp(1.6rem,5.2vw,2.35rem)}
h3{font-size:1.25rem}
p{margin:0 0 1em}

.wrap{width:100%;max-width:1120px;margin:0 auto;padding:0 var(--gut)}
.wrap--narrow{max-width:760px}
.center{text-align:center}

/* ---------- Botones ---------- */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:.5em;
  min-height:52px;padding:.8em 1.7em;border-radius:999px;
  background:var(--coral);color:#fff;text-decoration:none;
  font:700 1.05rem/1 var(--sans);letter-spacing:.01em;
  box-shadow:0 6px 18px -8px rgba(198,91,72,.7);
  transition:background .2s,transform .2s;border:0;cursor:pointer;
}
.btn:hover{background:var(--coral-dk)}
.btn:active{transform:scale(.98)}
.btn:focus-visible{outline:3px solid var(--naranja);outline-offset:3px}
.btn--sm{min-height:42px;padding:.55em 1.2em;font-size:.95rem}
.btn--lg{min-height:58px;font-size:1.15rem;padding:.9em 2.2em}
.btn--block{width:100%}
.btn--ghost{background:transparent;color:var(--ink);border:1.5px solid var(--ink);box-shadow:none}
.btn--ghost:hover{background:var(--ink);color:#fff}

/* ---------- Topbar ---------- */
.topbar{
  position:sticky;top:0;z-index:40;
  background:rgba(247,242,230,.92);backdrop-filter:saturate(1.4) blur(8px);
  border-bottom:1px solid var(--line);
}
.topbar__in{display:flex;align-items:center;justify-content:space-between;height:64px}
.topbar__logo img{height:40px;width:auto}

/* ---------- Placeholders de foto ---------- */
.ph{
  position:relative;margin:0;border-radius:var(--r);overflow:hidden;
  background:#fff;border:1px dashed rgba(23,58,63,.22);
  display:flex;align-items:center;justify-content:center;
}
.ph img{width:100%;height:100%;object-fit:cover}
.ph__label{font:600 .8rem/1 var(--sans);letter-spacing:.14em;text-transform:uppercase;color:rgba(23,58,63,.35)}
.ph--dark{background:rgba(255,255,255,.06);border-color:rgba(255,255,255,.25)}
.ph--dark .ph__label{color:rgba(255,255,255,.4)}
.ph--hero{aspect-ratio:4/5}
.ph--tall{aspect-ratio:4/5}
.ph--avatar{width:88px;height:88px;border-radius:50%;flex:0 0 auto}
.ph--avatar .ph__label{font-size:.6rem}

/* ---------- Hero ---------- */
.hero{padding:22px 0 44px}
.hero__grid{display:grid;gap:28px}
.eyebrow{
  display:inline-flex;align-items:center;gap:.55em;margin:0 0 14px;
  padding:.45em .95em;border-radius:999px;background:var(--white);border:1px solid var(--line);
  font:700 .82rem/1.2 var(--sans);letter-spacing:.06em;text-transform:uppercase;color:var(--coral);
}
.dot{width:8px;height:8px;border-radius:50%;background:var(--coral);box-shadow:0 0 0 0 rgba(198,91,72,.5);animation:pulse 2s infinite}
@keyframes pulse{70%{box-shadow:0 0 0 8px rgba(198,91,72,0)}100%{box-shadow:0 0 0 0 rgba(198,91,72,0)}}
.hero__sub{font:italic 400 clamp(1.15rem,4.2vw,1.45rem)/1.4 var(--serif);color:var(--turquesa);margin-bottom:20px}
.facts{list-style:none;margin:0 0 24px;padding:4px 16px;display:grid;background:var(--white);border:1px solid var(--line);border-radius:14px}
.facts li{
  display:flex;gap:12px;align-items:flex-start;padding:11px 0;
  font-size:.95rem;line-height:1.4;
}
.facts li+li{border-top:1px solid var(--line)}
.facts svg{width:22px;height:22px;flex:0 0 22px;margin-top:1px;fill:none;stroke:var(--bosque);stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.hero__cta .btn{width:100%}

/* ---------- Secciones ---------- */
.sec{padding:64px 0}
.sec--paper{background:var(--papel)}
.sec--deep{background:var(--ink);color:rgba(255,255,255,.86)}
.kicker{
  font:700 .8rem/1.2 var(--sans);letter-spacing:.16em;text-transform:uppercase;
  color:var(--bosque);margin:0 0 14px;display:flex;align-items:center;gap:10px;
}
.kicker::before{content:"";width:26px;height:2px;background:var(--naranja);flex:0 0 auto}
.kicker--light{color:#9FD0C4}
.h2--light{color:#fff}
.lead{font:400 clamp(1.2rem,4.4vw,1.45rem)/1.5 var(--serif);color:var(--ink)}
.lead--light{color:#fff}
.muted{color:var(--ink-2)}
.intro{max-width:720px;color:var(--ink-2);margin-bottom:28px}
.note{
  margin:22px 0 0;padding:14px 16px;border-left:3px solid var(--naranja);
  background:rgba(255,255,255,.55);border-radius:0 10px 10px 0;font-weight:600;
}
.highlight{
  margin-top:18px;padding:18px 18px;border-radius:12px;
  background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.14);color:#fff;
}
.highlight--light{background:var(--white);border:1px solid var(--line);color:var(--ink);font-weight:600}

.two{display:grid;gap:28px}
.card{background:var(--white);border:1px solid var(--line);border-radius:var(--r);padding:24px 22px}
.card--tint{background:#E7EFEA;border-color:rgba(45,92,70,.2)}
.card__h{font-family:var(--serif);font-size:1.4rem;margin-bottom:14px}

/* Pasos metodología */
.steps{list-style:none;margin:10px 0 0;padding:0;display:grid;gap:12px}
.steps li{
  display:flex;gap:16px;align-items:center;background:var(--white);
  border:1px solid var(--line);border-radius:14px;padding:16px 18px;font-size:1.05rem;
}
.steps__n{
  flex:0 0 40px;height:40px;border-radius:50%;display:grid;place-items:center;
  font:400 1.25rem/1 var(--serif);color:#fff;background:var(--turquesa);
}
.steps li:nth-child(2) .steps__n{background:var(--azul)}
.steps li:nth-child(3) .steps__n{background:var(--bosque)}

/* Módulos */
.modules{display:grid;gap:14px;margin-bottom:34px}
.mod{background:var(--white);border:1px solid var(--line);border-radius:var(--r);overflow:hidden}
.mod summary{
  list-style:none;cursor:pointer;display:flex;align-items:center;gap:14px;
  padding:18px 18px;min-height:64px;
}
.mod summary::-webkit-details-marker{display:none}
.mod__n{
  flex:0 0 46px;height:46px;border-radius:50%;display:grid;place-items:center;
  font:400 1.1rem/1 var(--serif);color:#fff;background:var(--bosque);
}
.mod--2 .mod__n{background:var(--azul)}
.mod--3 .mod__n{background:var(--naranja)}
.mod__t{flex:1;font:400 1.15rem/1.3 var(--serif)}
.mod__i{flex:0 0 22px;height:22px;position:relative}
.mod__i::before,.mod__i::after{content:"";position:absolute;left:50%;top:50%;width:14px;height:2px;background:var(--ink);transform:translate(-50%,-50%);transition:transform .25s}
.mod__i::after{transform:translate(-50%,-50%) rotate(90deg)}
.mod[open] .mod__i::after{transform:translate(-50%,-50%) rotate(0)}
.mod ul{margin:0;padding:4px 20px 20px 78px;display:grid;gap:8px}
.mod li{font-size:1rem;line-height:1.45;padding-left:4px}
.mod li::marker{color:var(--naranja)}

/* Checks */
.ticks{list-style:none;margin:0;padding:0;display:grid;gap:12px}
.ticks li{position:relative;padding-left:30px;font-size:1rem;line-height:1.5}
.ticks li::before{
  content:"";position:absolute;left:0;top:.3em;width:18px;height:18px;border-radius:50%;
  background:var(--bosque) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12l5 5L20 7'/%3E%3C/svg%3E") center/12px no-repeat;
}

/* Equipo */
.team{display:grid;gap:14px}
.team--main{margin-bottom:14px}
.person{
  display:flex;gap:16px;align-items:flex-start;background:var(--white);
  border:1px solid var(--line);border-radius:var(--r);padding:18px;
}
.team--main .person{border-color:rgba(45,92,70,.35);box-shadow:0 10px 30px -22px rgba(23,58,63,.6)}
.person h3{font-size:1.2rem;margin-bottom:2px}
.person p{margin:0 0 4px;font-size:.96rem;line-height:1.45;color:var(--ink-2)}
.person .role{font:700 .78rem/1.3 var(--sans);letter-spacing:.08em;text-transform:uppercase;color:var(--coral);margin-bottom:8px}
.web{display:inline-block;margin-top:6px;font-weight:700;font-size:.9rem;text-decoration:none;border-bottom:1.5px solid currentColor}

/* Oferta */
.offer{
  display:grid;border-radius:22px;overflow:hidden;border:1px solid var(--line);
  box-shadow:0 24px 50px -34px rgba(23,58,63,.7);background:var(--white);
}
.offer__price{background:var(--azul);color:#fff;padding:30px 24px}
.offer__price .kicker{color:#CFE3EE}
.offer__price .kicker::before{background:var(--naranja)}
.price{font:400 clamp(2.4rem,11vw,3.4rem)/1 var(--serif);margin:0 0 12px;color:#fff}
.price span{display:block;font:600 1rem/1.4 var(--sans);margin-top:8px;color:rgba(255,255,255,.85)}
.price__cond{font-size:1.02rem;color:#fff;margin-bottom:6px}
.price__fx{font-size:.95rem;color:rgba(255,255,255,.75);margin:0}
.offer__req{padding:28px 24px}
.offer__req .ticks{margin-bottom:24px}

/* Prose */
.prose p{color:var(--ink-2)}
.prose .lead{color:var(--ink)}

/* FAQ */
.faq{display:grid;gap:12px}
.faq details{background:var(--white);border:1px solid var(--line);border-radius:14px}
.faq summary{
  list-style:none;cursor:pointer;padding:18px 52px 18px 18px;position:relative;
  font:400 1.12rem/1.35 var(--serif);min-height:60px;
}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{
  content:"";position:absolute;right:20px;top:50%;width:10px;height:10px;
  border-right:2px solid var(--ink);border-bottom:2px solid var(--ink);
  transform:translateY(-70%) rotate(45deg);transition:transform .25s;
}
.faq details[open] summary::after{transform:translateY(-30%) rotate(-135deg)}
.faq details p{padding:0 18px 18px;margin:0;color:var(--ink-2);font-size:1rem}

/* Contacto */
.contact__intro{font:400 1.2rem/1.45 var(--serif);text-align:center;margin-bottom:24px}
.form{display:grid;gap:16px}
.form__row{display:grid;gap:16px}
.form label{display:grid;gap:6px;font-weight:600;font-size:.95rem}
.form small{font-weight:400;color:var(--ink-2)}
.form input,.form textarea{
  width:100%;font:400 1rem/1.4 var(--sans);color:var(--ink);
  padding:14px 14px;border-radius:12px;border:1px solid rgba(23,58,63,.25);background:var(--white);
}
.form input:focus,.form textarea:focus{outline:2px solid var(--turquesa);outline-offset:1px;border-color:transparent}
.form .btn{justify-self:start}
.hp{position:absolute;left:-9999px;width:1px;height:1px;opacity:0}

/* Footer */
.foot{background:var(--ink);padding:36px 0 40px;border-top:1px solid rgba(255,255,255,.1)}
.foot__in img{height:52px;width:auto;margin:0 auto}

/* Barra fija móvil */
.stickycta{
  position:fixed;left:0;right:0;bottom:0;z-index:50;
  display:flex;align-items:center;justify-content:space-between;gap:12px;
  padding:12px var(--gut) calc(12px + env(safe-area-inset-bottom));
  background:rgba(23,58,63,.97);color:#fff;
  transform:translateY(110%);transition:transform .3s ease;
  box-shadow:0 -10px 30px -12px rgba(0,0,0,.35);
}
.stickycta.is-on{transform:none}
.stickycta__txt{display:grid;line-height:1.2}
.stickycta__txt strong{font:400 1.05rem/1.2 var(--serif)}
.stickycta__txt span{font-size:.85rem;color:#F4C7A0}
.stickycta .btn{min-height:48px;padding:.7em 1.6em}

/* ---------- Tablet / Desktop ---------- */
@media (min-width:720px){
  :root{--gut:32px}
  .two{grid-template-columns:1fr 1fr;gap:36px;align-items:start}
  .form__row{grid-template-columns:1fr 1fr}
  .team--guest{grid-template-columns:1fr 1fr}
  .offer{grid-template-columns:.9fr 1.1fr}
  .offer__price{padding:44px 36px;display:flex;flex-direction:column;justify-content:center}
  .offer__req{padding:40px 36px}
  .hero__cta .btn{width:auto}
}
@media (min-width:960px){
  body{padding-bottom:0}
  .stickycta{display:none}
  .sec{padding:96px 0}
  .hero{padding:56px 0 80px}
  .hero__grid{grid-template-columns:1.15fr .85fr;gap:56px;align-items:center}
  .ph--hero{aspect-ratio:4/5}
  .facts li{font-size:1.02rem}
  .two--media{grid-template-columns:.85fr 1.15fr;gap:56px;align-items:center}
  .two--rev{grid-template-columns:1.15fr .85fr}
  .team--main{grid-template-columns:repeat(3,1fr)}
  .team--main .person{flex-direction:column;align-items:center;text-align:center;padding:28px 22px}
  .team--main .ph--avatar{width:132px;height:132px}
  .team--guest{grid-template-columns:repeat(3,1fr)}
  .modules{grid-template-columns:repeat(3,1fr);align-items:start}
  .topbar__logo img{height:46px}
}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
.form__msg{margin:0;padding:12px 16px;border-radius:10px;background:#E7EFEA;color:var(--bosque);font-weight:700}
.form__msg--err{background:#F6E1DC;color:var(--coral-dk)}
