/* CSS compartido entre las 5 páginas públicas — modal de reserva, botones,
   tarjetas, formularios. Si algo de esto cambia, con tocarlo acá alcanza
   para las 5 páginas a la vez, en vez de repetir el cambio 5 veces.
   Los selectores que cada página personaliza distinto NO están acá —
   se quedaron en el <style> propio de cada archivo, a propósito. */

:root{
  --bg:#0c0a09;--bg2:#0f0d0b;--bg3:#141210;--bg4:#181512;
  --bd:#2a2219;--bds:#1c1712;
  --gold:#c98a4b;--gold-d:rgba(201,138,75,.11);--gold-l:rgba(201,138,75,.22);
  --lav:#9491c4;--lav-d:rgba(148,145,196,.12);
  --stone:#8a8478;--rust:#b8763d;
  --cr:#f0e8dc;--crd:#a8998a;--crf:#8c7c6c;
  --ok:#7a9b6e;--ok-bg:rgba(122,155,110,.1);
}

*{box-sizing:border-box;margin:0;padding:0}
.asignar-box{margin:14px 0 0}
.asignar-divider span{font-size:10px;color:var(--crf);white-space:nowrap;letter-spacing:.06em}
.asignar-divider::before,.asignar-divider::after{content:'';flex:1;height:1px;background:var(--bds)}
.asignar-divider{display:flex;align-items:center;gap:10px;margin-bottom:10px}
.btn-ghost:hover{border-color:var(--gold);color:var(--cr);box-shadow:0 0 0 1px var(--gold-l)}
.btn-ghost{ display:inline-flex;align-items:center;gap:8px; background:none;color:var(--crd);border:1px solid var(--bd); padding:13px 28px;font-family:'Montserrat',sans-serif; font-size:11px;font-weight:600;letter-spacing:.1em;text-transform:uppercase; text-decoration:none;cursor:pointer; transition:border-color .18s,color .18s,box-shadow .18s; }
.btn-primary::after{content:'';position:absolute;inset:0;background:linear-gradient(105deg,transparent 40%,rgba(255,255,255,.15) 50%,transparent 60%);transform:translateX(-100%);transition:transform .42s ease}
.btn-primary:hover::after{transform:translateX(100%)}
.btn-primary:hover{opacity:.88;transform:translateY(-1px);box-shadow:0 6px 24px rgba(201,138,75,.32)}
.cal-dow2{text-align:center;font-size:8px;color:var(--crf);letter-spacing:.04em;padding-bottom:3px;font-weight:700}
.cal-grid2{display:grid;grid-template-columns:repeat(7,1fr);gap:3px}
.cal-mes2{font-family:'Noto Serif Display',serif;font-size:13px;font-style:italic}
.cal-nav2 button{background:none;border:1px solid var(--bd);color:var(--crd);width:24px;height:24px;cursor:pointer;font-size:13px;font-family:'Montserrat',sans-serif}
.cal-nav2{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}
.campo-label{font-size:10px;letter-spacing:.08em;text-transform:uppercase;font-weight:700;color:var(--crd);margin-bottom:7px;display:block}
.cancel-modal-box p{font-size:11.5px;color:var(--crd);line-height:1.6;margin-bottom:10px}
.cancel-modal-check{display:flex;align-items:flex-start;gap:8px;font-size:11.5px;color:var(--cr);cursor:pointer;line-height:1.4}
.cancel-modal-toggle:hover{color:var(--gold)}
.cancel-modal-toggle{background:none;border:none;padding:0;margin-left:2px;color:var(--stone);font-size:11.5px;text-decoration:underline;cursor:pointer;font-family:inherit}
.cday2.a{border-color:var(--bd)}
.cday2.a.baja{border-color:var(--rust);color:var(--rust)}
.cday2.a.baja:hover{background:var(--rust);color:var(--bg)}
.cal-leyenda2{display:flex;align-items:center;gap:6px;margin-top:10px;font-size:10px;color:var(--crf);letter-spacing:.02em;min-height:14px}
.cal-leyenda-dot{width:7px;height:7px;border-radius:50%;background:var(--rust);flex-shrink:0}
.cday2.e,.cday2.d{color:var(--crf);opacity:.22;cursor:not-allowed}
.cday2{aspect-ratio:1;display:flex;align-items:center;justify-content:center;font-size:11px;cursor:pointer;border:1px solid transparent;color:var(--crd);font-family:'Montserrat',sans-serif;transition:all .15s}
.d1{transition-delay:.12s}
.d2{transition-delay:.22s}
.def h2{font-size:clamp(22px,3vw,38px);margin:12px 0 20px;letter-spacing:.02em}
.def p{font-size:15px;color:var(--crd);line-height:1.8;max-width:520px;margin:0 auto}
.dx-cita blockquote{font-family:'Noto Serif Display',serif;font-style:italic;font-size:clamp(17px,2vw,22px);line-height:1.58;color:var(--crd)}
.dx-cita{margin-top:0;padding:28px 32px;border-left:2px solid var(--gold-l);background:rgba(201,138,75,.04)}
.dx-grid{display:grid;grid-template-columns:1fr 1fr;gap:64px;align-items:start}
.dx-lista li::before{content:'—';color:var(--gold);flex-shrink:0;font-weight:700;margin-top:1px}
.dx-lista li{display:flex;align-items:flex-start;gap:12px;font-size:14px;color:var(--crd);line-height:1.7}
.dx-lista{list-style:none;display:flex;flex-direction:column;gap:14px}
.ey{font-size:10px;letter-spacing:.22em;text-transform:uppercase;color:var(--gold);font-weight:700;font-family:'Montserrat',sans-serif}
.frow{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:14px}
.h-col{display:grid;grid-template-columns:repeat(auto-fill,minmax(78px,1fr));gap:8px;max-height:none}
.h-hint{font-size:11px;color:var(--crf);font-style:italic;font-family:'Noto Serif Display',serif;padding:8px 0;text-align:center}
.hslot2{border:1px solid var(--bd);background:var(--bg3);color:var(--crd);padding:12px 8px;font-size:13px;cursor:pointer;text-align:center;transition:all .16s;font-family:'Montserrat',sans-serif;font-weight:600;border-radius:8px;letter-spacing:.02em}
.info-box h3{font-size:21px;margin-bottom:12px}
.info-box p{font-size:13px;color:var(--crd);line-height:1.78;margin-bottom:10px}
.info-box-btns button:last-child:hover{border-color:var(--crd);color:var(--cr)}
.info-box-btns button:last-child{flex:0 0 auto;background:none;border:1px solid var(--bd);color:var(--crf);padding:11px 16px;font-family:'Montserrat',sans-serif;font-size:10px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;cursor:pointer;transition:border-color .18s,color .18s}
.info-box-btns{display:flex;gap:8px;flex-wrap:wrap}
.info-overlay .info-box{background:var(--bg);border:1px solid var(--bd);max-width:420px;width:100%;padding:32px 30px;transform:translateY(12px);transition:transform .3s ease}
.info-overlay.open .info-box{transform:translateY(0)}
.inv-lista li{display:flex;align-items:flex-start;gap:10px;font-size:14px;color:var(--crd);line-height:1.7}
.inv-lista{list-style:none;display:flex;flex-direction:column;gap:12px}
.inv-precio{font-family:'Noto Serif Display',serif;font-size:clamp(54px,8vw,96px);color:var(--gold);line-height:1;margin:28px 0 6px}
.inv-sub{font-size:11px;color:var(--crf);letter-spacing:.06em;text-transform:uppercase;margin-bottom:40px}
.inversion h2{font-size:clamp(22px,2.8vw,34px);margin:12px 0 8px}
.m-badge-wrap{display:inline-flex;align-items:center;gap:7px;margin-bottom:14px}
.m-badge{font-size:9px;letter-spacing:.14em;text-transform:uppercase;font-weight:700;padding:3px 8px}
.m-btn-back:hover{border-color:var(--crd);color:var(--cr)}
.m-btn-back{flex:0 0 auto;background:none;border:1px solid var(--bd);color:var(--crd);padding:12px 16px;font-family:'Montserrat',sans-serif;font-size:10px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;cursor:pointer;transition:border-color .18s,color .18s}
.m-btn-cont:disabled{opacity:.32;cursor:not-allowed}
.m-btn-cont:hover{opacity:.86}
.m-btn-cont{flex:1;background:var(--gold);color:var(--bg);border:none;padding:12px;font-family:'Montserrat',sans-serif;font-size:10px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;cursor:pointer;transition:opacity .18s}
.m-btn-next:hover{opacity:.85}
.m-btn-next{width:100%;background:var(--gold);color:var(--bg);border:none;padding:13px;font-family:'Montserrat',sans-serif;font-size:10px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;cursor:pointer;transition:opacity .18s}
.m-btn-next:disabled{opacity:.35;cursor:not-allowed}
.m-btn-pagar:disabled{opacity:.32;cursor:not-allowed}
.m-btn-pagar:hover{opacity:.86}
.m-btn-reservar:hover{border-color:var(--crd);color:var(--cr)}
.m-confirm h3{font-size:21px;margin-bottom:8px}
.m-confirm p{color:var(--crd);font-size:13px;line-height:1.7;margin-bottom:14px}
.m-confirm-det strong{color:var(--cr)}
.m-confirm-det{border:1px solid var(--bd);padding:14px;text-align:left;font-size:12px;color:var(--crd);display:flex;flex-direction:column;gap:6px;margin-bottom:18px}
.m-confirm{text-align:center;padding:24px 0}
.m-desc{font-size:13px;color:var(--crd);line-height:1.74;margin-bottom:10px}
.m-dias{display:flex;gap:5px;flex-wrap:wrap;margin-bottom:12px}
.m-dia{font-size:9px;letter-spacing:.06em;text-transform:uppercase;font-weight:700;border:1px solid var(--bd);color:var(--crf);padding:3px 7px}
.m-dia-label{margin-bottom:7px}
.m-nombre{font-family:'Noto Serif Display',serif;font-size:24px;margin-bottom:8px}
.m-precio-box{display:flex;justify-content:space-between;align-items:center;background:var(--bg3);border:1px solid var(--bd);padding:14px 16px;margin-bottom:20px}
.m-precio-label{font-size:10px;color:var(--crf);text-transform:uppercase;letter-spacing:.08em;font-weight:700}
.m-precio-val{font-family:'Noto Serif Display',serif;font-size:22px;color:var(--gold)}
.m-sesiones{display:flex;gap:6px;align-items:center;margin-bottom:12px}
.m-sq.time{border-color:var(--bd);color:var(--crf)}
.m-who{font-size:12px;color:var(--crf);font-style:italic;font-family:'Noto Serif Display',serif;line-height:1.6;margin-bottom:14px;padding-left:10px;border-left:1px solid var(--bd)}
.mci{width:48px;height:48px;background:var(--ok-bg);border:1px solid rgba(122,155,110,.25);display:flex;align-items:center;justify-content:center;margin:0 auto 16px;font-size:20px;color:var(--ok)}
.mi .dt{color:var(--gold);font-style:normal;padding:0 5px}
.modal-close{background:none;border:1px solid var(--bd);color:var(--crd);width:26px;height:26px;cursor:pointer;font-size:14px;line-height:1;font-family:'Montserrat',sans-serif;transition:border-color .18s,color .18s;flex-shrink:0;margin:8px 12px}
.modal-overlay.open .modal{transform:translateY(0) scale(1)}
.modal-overlay.open{opacity:1;pointer-events:all}
.modal-slides{display:flex;width:300%;transition:transform .42s cubic-bezier(.4,0,.2,1)}
.modal-slide{width:33.333%;overflow-y:auto;max-height:calc(90vh - 48px);padding:28px 30px 32px}
.modal-step.done{color:var(--crf)}
.modal-topbar{display:flex;align-items:center;border-bottom:1px solid var(--bds)}
.modal.p3-wide{max-width:760px}
.momentos-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.nav-bar.scrolled .nlogo{font-size:10px;transition:font-size .35s ease}
.nav-bar.scrolled{background:rgba(12,10,9,.97);box-shadow:0 4px 20px rgba(0,0,0,.45),0 1px 0 var(--bds)}
.nav-toggle{display:none;background:none;border:1px solid var(--bd);color:var(--crd);width:32px;height:32px;cursor:pointer;font-size:15px;align-items:center;justify-content:center;transition:border-color .18s,color .18s}
.nback:hover{color:var(--gold)}
.nback{font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--crf);text-decoration:none;font-weight:600;transition:color .2s}
.nlinks a:hover{color:var(--gold)}
.nlinks a{color:var(--crd);text-decoration:none;font-size:10px;letter-spacing:.12em;text-transform:uppercase;font-weight:600;transition:color .2s}
.nlinks{display:flex;gap:30px}
.nlogo{font-size:11px;letter-spacing:.22em;font-weight:700;text-decoration:none;color:var(--cr);transition:font-size .35s ease}
.p2-col-label{font-size:10px;letter-spacing:.1em;text-transform:uppercase;font-weight:700;color:var(--crd);margin-bottom:12px}
.p2-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}
.p2-nav{display:flex;gap:8px;margin-top:20px}
.p3-det{font-size:11px;color:var(--crd);margin-top:3px}
.p3-grid::before{content:'';position:absolute;top:2px;bottom:2px;left:50%;transform:translateX(-50%);border-left:1.5px dashed var(--crf)}
.p3-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px;align-items:start;position:relative}
.p3-precio-r{font-size:11px;color:var(--crf)}
.p3-resumen{background:var(--bg3);border:1px solid var(--bd);padding:14px 16px;margin-bottom:20px;display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap}
.p3-svc{font-family:'Noto Serif Display',serif;font-size:16px}
.pago-opciones{display:flex;gap:8px;margin:16px 0}
.pago-opcion{flex:1;display:flex;align-items:center;gap:7px;border:1px solid var(--bd);padding:11px 12px;font-size:12.5px;color:var(--crd);cursor:pointer;transition:border-color .15s}
.precio-final{display:flex;justify-content:space-between;align-items:center;padding:14px 0;border-top:1px solid var(--bd);border-bottom:1px solid var(--bd);margin:14px 0 18px}
.precio-val{font-family:'Noto Serif Display',serif;font-size:26px;color:var(--gold)}
.pupi-img{display:block;width:100%;height:100%;object-fit:cover;object-position:center top;filter:grayscale(15%) contrast(1.05)}
.pupi-tag::after{ content:attr(data-tip); position:absolute;bottom:calc(100% + 8px);left:50%;transform:translateX(-50%); background:var(--bg4);border:1px solid var(--bd);color:var(--crd); font-size:11px;font-weight:400;letter-spacing:.02em;text-transform:none; padding:8px 14px;white-space:normal;line-height:1.6; width:220px;text-align:center; opacity:0;pointer-events:none;transition:opacity .25s ease .1s; z-index:20; }
.pupi-tag::before{ content:'';position:absolute;bottom:calc(100% + 3px);left:50%;transform:translateX(-50%); border:4px solid transparent;border-top-color:var(--bd); opacity:0;pointer-events:none;transition:opacity .25s ease .1s;z-index:21; }
.pupi-tag:hover::after,.pupi-tag:hover::before{opacity:1}
.pupi-tag:hover{color:var(--crd)}

.pupi-tray-label{font-size:12px;color:var(--crd)}
.rev.in{opacity:1;transform:translateY(0)}
.tav{background:var(--ok-bg);border:1px solid rgba(122,155,110,.25);padding:9px 12px;font-size:12px;color:var(--ok);margin-bottom:12px;display:none;line-height:1.5}
.tl-punto-label{font-size:10px;letter-spacing:.05em;text-transform:uppercase;color:var(--crd);font-weight:700;white-space:nowrap}
.tl-punto-num,.tl-punto-min{display:none}
.tl-punto-ring{display:none}
.tl-punto{display:flex;flex-direction:column;align-items:center;flex-shrink:0}
.tl-sub{text-align:center;font-size:11px;color:var(--crf);margin-top:26px;letter-spacing:.03em}
.tl-timeline{display:flex;align-items:flex-start;justify-content:center}
.tl-tramo-label{font-size:9.5px;color:var(--crf);letter-spacing:.03em;white-space:nowrap}
.wa-flotante-icon svg{width:22px;height:22px}
.wa-flotante-icon{width:48px;height:48px;flex-shrink:0;display:flex;align-items:center;justify-content:center}
.wa-flotante-txt{font-family:'Montserrat',sans-serif;font-size:11px;font-weight:600;letter-spacing:.02em;opacity:1}
.wa-flotante.visible{opacity:1;transform:translateY(0);pointer-events:auto}
.w{max-width:1080px;margin:0 auto;padding:0 32px}
/* Botones */ .btn-primary{ display:inline-flex;align-items:center;gap:8px; background:var(--gold);color:var(--bg);border:none; padding:14px 30px;font-family:'Montserrat',sans-serif; font-size:11px;font-weight:700;letter-spacing:.12em;text-transform:uppercase; text-decoration:none;cursor:pointer; transition:opacity .18s,transform .18s,box-shadow .18s; position:relative;overflow:hidden; }
.btn-primary:disabled{opacity:.4;cursor:default;pointer-events:none}
/* Capa de desenfoque sobre el contenido del hero — responde al scroll via JS */ 
/* Contenido del hero — sobre la niebla */ 
/* DEFINICIÓN */ .def{padding:100px 0;text-align:center;border-top:1px solid var(--bds)}
/* DIAGNÓSTICO */ .dx{padding:100px 0;border-top:1px solid var(--bds)}
/* FOOTER */ footer{border-top:1px solid var(--bds);padding:32px 0;display:flex;justify-content:space-between;align-items:center;font-size:11px;color:var(--crf);flex-wrap:wrap;gap:8px}
/* INVERSIÓN + RESERVA */ .inversion{padding:100px 0;border-top:1px solid var(--bds);text-align:center}
/* Modal de info "asignar turno" */ .info-overlay{position:fixed;inset:0;background:rgba(6,4,3,.82);backdrop-filter:blur(4px);z-index:950;display:flex;align-items:center;justify-content:center;padding:20px;opacity:0;pointer-events:none;transition:opacity .25s ease}
.info-overlay.open{opacity:1;pointer-events:auto}
/* NAV */ 
/* NOTA REVISIÓN */ /* NAV */ .nav-bar{position:sticky;top:0;z-index:50;background:transparent;transition:background .3s ease,box-shadow .3s ease}
/* NÚMEROS CLAVE */ .hero-nums-wrap{max-width:1080px;margin:56px auto 0;padding:0 32px;position:relative;z-index:2}
/* REVEAL */ .rev{opacity:0;transform:translateY(22px);transition:opacity .65s ease,transform .65s ease}
/* SOBRE PUPI */ .pupi{padding:100px 0;background:var(--bg3);border-top:1px solid var(--bds)}
/* ══ HERO INMERSIVO ══ */ .hero{ position:relative; min-height:100vh; display:flex;flex-direction:column; overflow:hidden; }
/* ══ WHATSAPP FLOTANTE ══ */ .wa-flotante{ position:fixed;right:16px;bottom:16px;z-index:60; display:inline-flex;align-items:center; height:48px;border-radius:26px;max-width:220px;padding-right:16px; background:var(--bg2);border:1px solid var(--gold);color:var(--gold); text-decoration:none;overflow:hidden;white-space:nowrap; box-shadow:0 6px 20px rgba(0,0,0,.35); opacity:0;transform:translateY(12px);pointer-events:none; transition:opacity .25s,transform .25s,max-width .3s ease,padding-right .3s ease,border-color .18s,color .18s,background .18s; }
/* ════ .modal-overlay/.modal-close: única definición real, la usan las 5
   páginas (alma, vertice, constelaciones, umbral e index) — el resto de las
   piezas del modal (.modal, .modal-progress, .modal-step, etc.) siguen
   duplicadas a propósito en el <style> de cada página. ════ */ .modal-overlay{ position:fixed;inset:0;background:rgba(6,4,3,.75); backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px); z-index:900;display:flex;align-items:center;justify-content:center;padding:20px; opacity:0;pointer-events:none;transition:opacity .28s ease; }
@keyframes sc{from{transform:translateX(0)}to{transform:translateX(-50%)}}
@media(hover:hover) and (pointer:fine){ .wa-flotante{max-width:52px;padding-right:0} .wa-flotante-txt{opacity:0;transition:opacity .2s ease} .wa-flotante:hover{max-width:220px;padding-right:16px;border-color:#25D366;color:#25D366} .wa-flotante:hover .wa-flotante-txt{opacity:1;transition:opacity .2s ease .1s} }
@media(max-width:360px){.h-col{grid-template-columns:repeat(2,1fr)}}
@media(max-width:380px){ .hero-titulo{font-size:clamp(34px,11vw,60px);letter-spacing:0} }
@media(max-width:600px){ .wa-flotante{height:44px;max-width:200px} .wa-flotante-icon{width:44px;height:44px} .wa-flotante-icon svg{width:20px;height:20px} .wa-flotante-txt{font-size:10.5px} }
@media(max-width:760px){ .modal-overlay{align-items:flex-end;padding:0} .modal{max-height:88vh;border-bottom:none} .modal-slide{max-height:calc(88vh - 48px);padding:22px 18px 26px} .cal-grid2{gap:2px} }
@media(max-width:760px){ .nav-bar.scrolled{background:var(--bg);backdrop-filter:none;-webkit-backdrop-filter:none} }
@media(max-width:760px){ .nav-toggle{display:flex} .nlinks{display:none;position:absolute;top:100%;left:0;right:0;flex-direction:column;gap:0;background:var(--bg);border-bottom:1px solid var(--bds);box-shadow:0 8px 24px rgba(0,0,0,.5);padding:4px 32px 8px} .nlinks.open{display:flex} .nlinks a{padding:14px 0;border-bottom:1px solid var(--bds)} .nlinks a:last-child{border-bottom:none} }
@media(max-width:760px){.h-col{grid-template-columns:repeat(3,1fr);gap:7px}}
@media(max-width:760px){.p3-grid{grid-template-columns:1fr}.p3-grid::before{display:none}}
@supports (backdrop-filter: blur(10px)) or (-webkit-backdrop-filter: blur(10px)){ .nav-bar.scrolled{background:rgba(12,10,9,.88);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)} }
body{background:var(--bg);color:var(--cr);font-family:'Montserrat',sans-serif;-webkit-font-smoothing:antialiased;overflow-x:hidden}
footer a:hover{color:var(--gold)}
footer a{color:var(--crf);text-decoration:none;transition:color .2s}
h1,h2,h3,h4,blockquote{font-family:'Noto Serif Display',serif;font-weight:400}
html{scroll-behavior:smooth}
input.campo-error{border-color:var(--err)!important;color:#e08a75}
input::placeholder{color:var(--crf)}
input[type=text],input[type=email],input[type=tel]{width:100%;background:var(--bg3);border:1px solid var(--bd);color:var(--cr);padding:11px 13px;font-size:13px;font-family:'Montserrat',sans-serif;transition:border-color .18s}