
/* ==========================================================
   Dr. Cristian Quintero · Precision Health & Longevity
   Hoja de estilos única. Para cambiar la paleta o las
   tipografías, edite las variables de :root.
   ========================================================== */
:root{
  --navy:#0B1E28; --teal:#176D6A; --bone:#F5F2EC; --graphite:#30383C; --champ:#B8A47A;
  --teal-l:#8CC5C0; --muted:#566066; --line:#D8D1C4; --ntext:#C6D0D3; --nmuted:#9AA9AF;
  --dline:rgba(245,242,236,.18); --field:#BDB5A5;
  --serif:'Cormorant Garamond','Noto Serif',Georgia,serif;
  --sans:'Manrope','Noto Sans',system-ui,-apple-system,'Segoe UI',sans-serif;
  --pad:clamp(20px,5vw,64px);
}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bone);color:var(--graphite);font-family:var(--sans);font-size:16px;line-height:1.6;-webkit-font-smoothing:antialiased}
img{max-width:100%;display:block;height:auto}
a{color:inherit;text-decoration:none}
button,input,select,textarea{font:inherit;color:inherit}
[hidden]{display:none!important}
:focus-visible{outline:2px solid var(--teal);outline-offset:3px}
.bg-navy :focus-visible,.bg-graphite :focus-visible,.topbar :focus-visible,.site-footer :focus-visible{outline-color:var(--teal-l)}
.skip{position:absolute;left:-9999px;top:8px;background:var(--navy);color:#fff;padding:10px 16px;z-index:100}
.skip:focus{left:8px}
.sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important;animation:none!important}}

/* ---------- layout ---------- */
.wrap{max-width:1240px;margin:0 auto;padding:0 var(--pad)}
.sec{padding:clamp(64px,9vw,120px) 0}
.sec--flush-top{padding-top:0}
.sec--flush-bottom{padding-bottom:0}
.hero{padding:clamp(48px,7vw,96px) 0}
.bg-navy{background:var(--navy);color:var(--ntext)}
.bg-graphite{background:var(--graphite);color:var(--ntext)}
.stack{display:flex;flex-direction:column;gap:var(--g,24px);min-width:0}
.row{display:flex;flex-wrap:wrap;align-items:center;gap:16px}
.row--between{justify-content:space-between;gap:clamp(24px,5vw,64px)}
.center{align-items:center;text-align:center}
.split{display:grid;gap:clamp(32px,7vw,96px);align-items:start}
.split>*{min-width:0}
.split-a{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
.split-b{grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr)}
.split-c{grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr)}
.split-hero{grid-template-columns:minmax(0,1.2fr) minmax(0,.8fr);gap:clamp(32px,6vw,88px);align-items:center}
.split-form{grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr)}
.split-book{grid-template-columns:minmax(0,1.35fr) minmax(0,.65fr);gap:clamp(32px,5vw,72px)}
.split-tight{gap:clamp(32px,6vw,80px)}
.pt-s{padding-top:clamp(0px,3vw,34px)}
@media (max-width:900px){
  .split,.split-a,.split-b,.split-c,.split-hero,.split-form,.split-book{grid-template-columns:minmax(0,1fr)}
  .pt-s{padding-top:0}
}

/* ---------- typography ---------- */
h1,h2,h3,h4{font-family:var(--serif);font-weight:500;margin:0;color:var(--navy);text-wrap:balance;overflow-wrap:break-word}
.bg-navy h1,.bg-navy h2,.bg-navy h3,.bg-graphite h1,.bg-graphite h2,.bg-graphite h3{color:var(--bone)}
.h1{font-size:clamp(44px,7.2vw,92px);line-height:1;letter-spacing:-.015em}
.h1--md{font-size:clamp(42px,6.2vw,84px)}
.h1--sm{font-size:clamp(38px,5.4vw,76px)}
h2,.h2{font-size:clamp(34px,4.4vw,56px);line-height:1.05;letter-spacing:-.01em}
.h2--lg{font-size:clamp(38px,5.4vw,68px)}
.h2--md{font-size:clamp(32px,4.2vw,52px)}
.h2--sm{font-size:clamp(30px,3.6vw,48px)}
h3,.h3{font-weight:600;font-size:clamp(24px,2.4vw,30px);line-height:1.1}
.h3--lg{font-size:clamp(28px,3vw,38px)}
.eyebrow{font-family:var(--sans);font-size:12px;font-weight:700;letter-spacing:.22em;text-transform:uppercase;color:var(--teal);margin:0}
.bg-navy .eyebrow,.bg-graphite .eyebrow{color:var(--teal-l)}
.eyebrow--muted{color:var(--muted)!important}
.rule{width:64px;height:2px;background:var(--champ)}
.p{font-size:18px;line-height:1.7;margin:0;max-width:560px;text-wrap:pretty}
.p--lead{font-size:clamp(17px,1.6vw,20px)}
.p--sm{font-size:15px}
.p--xs{font-size:13px;line-height:1.6}
.p--muted{color:var(--muted)}
.bg-navy .p,.bg-graphite .p{color:var(--ntext)}
.bg-navy .p--muted,.bg-graphite .p--muted{color:var(--nmuted)}
.micro{font-size:14px;letter-spacing:.04em;color:var(--muted);margin:0}
.bg-navy .micro{color:var(--nmuted)}
.serif-i{font-family:var(--serif);font-style:italic;font-weight:500}
.quote{margin:0;font-family:var(--serif);font-style:italic;font-weight:500;font-size:clamp(32px,5.2vw,68px);line-height:1.08;letter-spacing:-.01em;color:var(--bone);max-width:1040px;text-wrap:balance}
.num{font-family:var(--serif);font-weight:500;color:var(--teal);line-height:1;font-size:30px}
.bg-navy .num,.bg-graphite .num{color:var(--champ)}
.num-lg{font-size:44px}

/* ---------- buttons & links ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:12px;min-height:56px;padding:0 32px;border-radius:2px;border:1px solid transparent;font-family:var(--sans);font-size:15px;font-weight:600;letter-spacing:.03em;cursor:pointer;transition:background-color .2s,color .2s,border-color .2s;text-align:center}
.btn svg{flex-shrink:0}
.btn-primary{background:var(--teal);border-color:var(--teal);color:#fff}
.btn-primary:hover{background:#125a57;border-color:#125a57}
.btn-ghost{background:transparent;border-color:var(--navy);color:var(--navy)}
.btn-ghost:hover{background:var(--navy);color:var(--bone)}
.btn-ghost-dark{background:transparent;border-color:rgba(245,242,236,.45);color:var(--bone)}
.btn-ghost-dark:hover{background:var(--bone);color:var(--navy)}
.btn--sm{min-height:48px;padding:0 22px;font-size:14px}
.textlink{display:inline-flex;align-items:center;gap:10px;font-size:15px;font-weight:700;letter-spacing:.02em;color:var(--teal);padding-bottom:6px;border-bottom:1px solid var(--teal)}
.textlink:hover{opacity:.8}
.bg-navy .textlink,.bg-graphite .textlink{color:var(--bone);border-color:var(--champ)}

/* ---------- header ---------- */
.topbar{background:var(--navy);padding:10px 20px;display:flex;align-items:center;justify-content:center;gap:12px;flex-wrap:wrap;text-align:center}
.topbar span{font-size:12px;font-weight:700;letter-spacing:.18em;text-transform:uppercase;color:var(--champ)}
.topbar svg{color:var(--champ)}
.topbar a{font-size:13px;font-weight:600;color:var(--bone);border-bottom:1px solid rgba(184,164,122,.7);padding-bottom:2px}
.nav{position:sticky;top:0;z-index:50;background:var(--bone);border-bottom:1px solid var(--line)}
.nav-in{max-width:1400px;margin:0 auto;padding:0 clamp(20px,3vw,40px);min-height:84px;display:flex;align-items:center;justify-content:space-between;gap:24px}
.brand{display:flex;align-items:center;gap:12px;flex-shrink:0}
.brand img{height:42px;width:auto;flex-shrink:0}
.brand-text{display:flex;flex-direction:column;gap:2px;line-height:1.15;white-space:nowrap}
.brand-text strong{font-family:var(--serif);font-weight:600;font-size:21px;letter-spacing:.01em;color:var(--navy)}
.brand-text small{font-family:var(--sans);font-size:10px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--teal)}
.brand-stack{display:flex;flex-direction:column;align-items:flex-start;gap:18px}
.brand-stack img{height:52px;width:auto}
.brand-text--foot{white-space:normal;gap:4px}
.brand-text--foot strong{color:var(--bone);font-size:26px;letter-spacing:.015em}
.brand-text--foot small{color:var(--teal-l);font-size:11px}
.nav-menu{display:flex;align-items:center;gap:32px}
.nav-links{display:flex;align-items:center;gap:22px;margin:0;padding:0;list-style:none}
.nav-links a{display:block;font-size:13.5px;font-weight:500;letter-spacing:.01em;white-space:nowrap;color:#4A555A;padding:8px 0;border-bottom:2px solid transparent}
.nav-links a:hover{color:var(--navy)}
.nav-links a[aria-current="page"]{color:var(--navy);font-weight:700;border-color:var(--teal)}
.nav-toggle{display:none;width:48px;height:48px;border:1px solid var(--line);background:transparent;border-radius:2px;cursor:pointer;align-items:center;justify-content:center;color:var(--navy)}
@media (max-width:1180px){
  .nav-toggle{display:inline-flex}
  .nav-menu{display:none;position:absolute;left:0;right:0;top:100%;background:var(--bone);border-bottom:1px solid var(--line);padding:12px var(--pad) 28px;flex-direction:column;align-items:stretch;gap:20px;box-shadow:0 18px 30px -24px rgba(11,30,40,.35)}
  .nav[data-open="true"] .nav-menu{display:flex}
  .nav-links{flex-direction:column;align-items:stretch;gap:0}
  .nav-links a{font-family:var(--serif);font-size:26px;font-weight:600;padding:14px 0;border-bottom:1px solid var(--line);color:var(--navy)}
  .nav-links a[aria-current="page"]{border-color:var(--line);color:var(--teal)}
  .nav-menu .btn{width:100%}
}
@media (max-width:520px){.brand img{height:36px}.brand-text strong{font-size:17px}.brand-text small{font-size:9px}.nav-in{min-height:72px}}

/* ---------- media ---------- */
.portrait{width:100%;height:auto;object-fit:cover;outline:1px solid var(--champ);outline-offset:14px}
.portrait--sq{aspect-ratio:1/1;object-position:50% 0}
.portrait--tall{aspect-ratio:4/5;object-position:48% 10%}
.portrait--exec{aspect-ratio:4/5;object-position:50% 12%}
.fig{margin:0;padding:14px}
.fig figcaption{display:flex;flex-direction:column;gap:6px;margin-top:38px}
.fig figcaption strong{font-size:13px;letter-spacing:.18em;text-transform:uppercase;color:var(--bone)}
.fig figcaption em{font-family:var(--serif);font-size:20px;color:var(--champ)}
.big90{display:flex;align-items:baseline;gap:18px}
.big90 b{font-family:var(--serif);font-weight:500;font-size:clamp(120px,16vw,220px);line-height:.8;letter-spacing:-.03em;color:var(--teal)}
.big90 i{font-family:var(--serif);font-size:clamp(28px,3.4vw,42px);color:var(--navy)}
.big90--xl b{font-size:clamp(150px,24vw,320px);color:var(--bone)}
.big90--xl i{color:var(--champ);font-size:clamp(34px,4.4vw,56px)}
.big90--md b{font-size:clamp(110px,14vw,180px);color:var(--bone)}
.big90--md i{color:var(--champ)}

/* ---------- ruled lists ---------- */
.ruled{border-top:1px solid var(--line)}
.bg-navy .ruled,.bg-graphite .ruled{border-color:var(--dline)}
.rrow{display:grid;gap:clamp(12px,3vw,32px);align-items:center;padding:26px 0;border-bottom:1px solid var(--line)}
.bg-navy .rrow,.bg-graphite .rrow{border-color:var(--dline)}
.rrow>*{min-width:0}
.rrow--2{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
.rrow--n1{grid-template-columns:72px minmax(0,1fr);align-items:baseline}
.rrow--n1b{grid-template-columns:88px minmax(0,1fr);align-items:baseline;padding:30px 0}
.rrow--n2{grid-template-columns:72px minmax(0,1fr) minmax(0,1fr);padding:34px 0}
.rrow--svc{grid-template-columns:72px minmax(0,1.1fr) minmax(0,1fr) 120px;padding:32px 0}
.rrow--cred{grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);align-items:start;padding:30px 0}
.rrow--ch{grid-template-columns:150px minmax(0,1fr);padding:18px 0}
.rrow h3{font-size:clamp(26px,3vw,34px)}
.rrow--n2 h3{font-size:clamp(28px,3.2vw,38px)}
.manifest{font-family:var(--serif);font-weight:500;font-size:clamp(30px,5vw,56px);line-height:1.05;letter-spacing:-.01em;color:var(--bone);margin:0}
.chan-k{font-size:12px;font-weight:700;letter-spacing:.2em;text-transform:uppercase;color:var(--teal)}
.cred-list{display:flex;flex-direction:column;gap:18px}
.cred-list strong{display:block;font-size:16px;line-height:1.4;color:var(--navy)}
.cred-list span{display:block;font-size:14px;letter-spacing:.04em;color:var(--muted);margin-top:4px}
@media (max-width:760px){
  .rrow--2,.rrow--n1,.rrow--n1b,.rrow--n2,.rrow--svc,.rrow--cred,.rrow--ch{grid-template-columns:minmax(0,1fr);gap:10px}
}

/* ---------- steps / phases / series ---------- */
.steps{display:grid;gap:clamp(24px,3vw,40px)}
.steps-6{grid-template-columns:repeat(6,minmax(0,1fr));gap:28px}
.steps-3{grid-template-columns:repeat(3,minmax(0,1fr))}
.steps-6 .step p{max-width:200px}
.step{display:flex;flex-direction:column;gap:14px;border-top:2px solid var(--navy);padding-top:8px}
.step h3{font-size:clamp(24px,2.2vw,30px)}
.phase-top{display:flex;align-items:center}
.phase-top b{width:14px;height:14px;border-radius:50%;background:var(--navy);border:2px solid var(--champ);flex-shrink:0}
.phase-top i{flex:1;height:1px;background:var(--teal)}
.phase{display:flex;flex-direction:column;gap:14px}
.phase h3{font-size:clamp(24px,2.2vw,27px)}
.series{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:40px}
.series>div{display:flex;flex-direction:column;gap:12px;border-top:1px solid var(--dline);padding-top:12px}
.series h3{font-size:clamp(24px,2.4vw,28px);color:var(--bone)}
.pillars{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:44px 40px}
.pillars>div{display:flex;flex-direction:column;gap:12px;border-top:1px solid var(--line);padding-top:12px}
.pillars b{font-family:var(--serif);font-style:italic;font-weight:500;font-size:clamp(32px,3.4vw,40px);line-height:1;color:var(--teal)}
.pillars span{font-size:13px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--navy)}
@media (max-width:1100px){.steps-6{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (max-width:860px){.steps-3,.series,.pillars{grid-template-columns:minmax(0,1fr)}}
@media (max-width:640px){.steps-6{grid-template-columns:repeat(2,minmax(0,1fr));gap:24px 20px}}
@media (max-width:420px){.steps-6{grid-template-columns:minmax(0,1fr)}}

/* ---------- panels ---------- */
.panel-navy{background:var(--navy);padding:clamp(32px,6vw,72px)}
.panel-navy .split{align-items:center}
.card{background:#fff;border:1px solid var(--line);padding:clamp(24px,4vw,48px);display:flex;flex-direction:column;gap:22px}
.card--done{padding:clamp(32px,5vw,64px) clamp(24px,4vw,48px);gap:20px}
.side-navy{background:var(--navy);padding:clamp(28px,4vw,48px) clamp(24px,3.4vw,44px);display:flex;flex-direction:column;gap:22px;color:var(--ntext)}
.side-navy h3{color:var(--bone);font-size:clamp(28px,3vw,38px)}
.divider-t{border-top:1px solid var(--line);padding-top:clamp(48px,7vw,96px)}

/* ---------- forms ---------- */
.field{display:flex;flex-direction:column;gap:8px}
.field label,.legend{font-size:13px;font-weight:600;letter-spacing:.02em;color:var(--navy);padding:0}
.field input,.field select,.field textarea{width:100%;background:#fff;border:1px solid var(--field);border-radius:2px;padding:0 16px;height:52px;font-size:16px;color:var(--navy)}
.field textarea{height:auto;padding:14px 16px;line-height:1.5;resize:vertical}
.field input::placeholder,.field textarea::placeholder{color:#7A848A}
.field input:focus,.field select:focus,.field textarea:focus{outline:2px solid var(--teal);outline-offset:1px;border-color:var(--teal)}
.grid-2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}
.grid-2--age{grid-template-columns:minmax(0,1.6fr) minmax(0,.6fr)}
@media (max-width:560px){.grid-2,.grid-2--age{grid-template-columns:minmax(0,1fr)}}
fieldset{border:0;margin:0;padding:0;min-width:0}
.choices{display:flex;flex-wrap:wrap;gap:6px 28px;margin-top:6px}
.choice{display:inline-flex;align-items:center;gap:10px;min-height:44px;font-size:16px;color:var(--graphite);cursor:pointer}
.choice input{width:18px;height:18px;accent-color:var(--teal);margin:0}
.hp{position:absolute;left:-9999px}
.opts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.opt{display:flex;flex-direction:column;gap:6px;padding:22px 24px;min-height:92px;border:1px solid var(--field);background:#fff;border-radius:2px;cursor:pointer;transition:background-color .15s,border-color .15s}
.opt b{font-family:var(--serif);font-weight:600;font-size:26px;line-height:1.1;color:var(--navy)}
.opt span{font-size:14px;line-height:1.5;color:var(--muted)}
.chips{display:flex;flex-wrap:wrap;gap:12px}
.chip{display:inline-flex;align-items:center;min-height:48px;padding:0 24px;border:1px solid var(--field);background:#fff;border-radius:2px;font-size:15px;font-weight:600;color:var(--navy);cursor:pointer;transition:background-color .15s,border-color .15s}
input:checked+.opt,input:checked+.chip{background:var(--navy);border-color:var(--navy)}
input:checked+.opt b,input:checked+.chip{color:var(--bone)}
input:checked+.opt span{color:var(--ntext)}
input:focus-visible+.opt,input:focus-visible+.chip{outline:2px solid var(--teal);outline-offset:3px}
@media (max-width:640px){.opts{grid-template-columns:minmax(0,1fr)}}
.note{font-size:15px;line-height:1.6;color:var(--teal);max-width:560px;margin:0}
.form-error{font-size:15px;line-height:1.6;color:#8A2F2F;background:#fbeeee;border:1px solid #e3bcbc;padding:14px 16px;margin:0}
.form-error a{text-decoration:underline}
.btn-submit{align-self:flex-start}
.news{display:flex;flex-wrap:wrap;gap:12px}
.news .field{flex:1 1 260px}
.news .btn{height:52px;align-self:flex-end}

/* ---------- footer ---------- */
.site-footer{background:var(--navy);color:var(--ntext);padding:clamp(56px,8vw,88px) 0 40px}
.foot-grid{display:grid;grid-template-columns:1.4fr 1fr 1.2fr 1fr;gap:clamp(32px,4vw,56px)}
.foot-grid h2{font-family:var(--sans);font-size:12px;font-weight:700;letter-spacing:.22em;text-transform:uppercase;color:var(--champ);margin:0 0 18px;line-height:1.4}
.foot-col{display:flex;flex-direction:column;gap:12px;min-width:0}
.foot-col a{font-size:15px;color:var(--ntext)}
.foot-col a:hover{color:#fff}
.foot-item{display:flex;flex-direction:column;gap:4px;font-size:15px;color:var(--ntext)}
.foot-item small{font-size:12px;letter-spacing:.08em;color:var(--nmuted)}
.foot-brand img{width:190px;height:auto}
.foot-tag{font-family:var(--serif);font-style:italic;font-size:26px;color:var(--champ);margin:16px 0 8px}
.foot-legal{border-top:1px solid var(--dline);margin-top:56px;padding-top:32px;display:flex;justify-content:space-between;gap:32px;flex-wrap:wrap}
.foot-legal p{margin:0;font-size:13px;line-height:1.6;color:var(--nmuted);max-width:760px}
@media (max-width:1000px){.foot-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:560px){.foot-grid{grid-template-columns:minmax(0,1fr)}}

/* ---------- paneles oscuros dentro de secciones claras ---------- */
.panel-navy h1,.panel-navy h2,.panel-navy h3,.side-navy h2{color:var(--bone)}
.panel-navy .p{color:var(--ntext)}
.panel-navy .eyebrow,.side-navy .eyebrow{color:var(--teal-l)}
.panel-navy .ruled,.side-navy .ruled,.panel-navy .rrow,.side-navy .rrow{border-color:var(--dline)}
.panel-navy .num,.side-navy .num{color:var(--champ)}
.side-navy .p{color:var(--nmuted)}

/* ---------- formulario de historia de salud (wizard) ---------- */
.wiz { display: flex; flex-direction: column; gap: 28px; }
.wiz-progress-wrap { display: flex; flex-direction: column; gap: 10px; }
.wiz-progress-track { height: 4px; background: var(--line); border-radius: 2px; overflow: hidden; }
.wiz-progress-bar { height: 100%; width: 0%; background: var(--teal); transition: width .3s ease; }
.wiz-progress-label { font-family: var(--sans); font-size: 12px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: var(--muted); }
.wiz-step { display: flex; flex-direction: column; gap: 22px; scroll-margin-top: 116px; }
.wiz-nav { display: flex; justify-content: space-between; align-items: center; gap: 16px; margin-top: 8px; }
.wiz-nav .btn { min-width: 140px; }
.wiz-hint { font-family: var(--sans); font-size: 14px; line-height: 1.6; color: var(--muted); }

.check-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px 28px; }
@media (max-width: 640px) { .check-grid { grid-template-columns: minmax(0, 1fr); } }
.check-row { display: flex; align-items: flex-start; gap: 12px; font-family: var(--sans); font-size: 15px; line-height: 1.4; color: var(--graphite); min-height: 26px; cursor: pointer; }
.check-row input { width: 18px; height: 18px; accent-color: var(--teal); margin: 2px 0 0; flex-shrink: 0; }

.consent-block { display: flex; flex-direction: column; gap: 18px; padding: 28px; background: #fff; border: 1px solid var(--line); }
.consent-row { display: flex; gap: 14px; align-items: flex-start; }
.consent-row input { width: 20px; height: 20px; accent-color: var(--teal); margin-top: 2px; flex-shrink: 0; }
.consent-row label { font-family: var(--sans); font-size: 14px; line-height: 1.6; color: var(--graphite); }
.consent-row a { text-decoration: underline; color: var(--teal); }
.consent-row--optional { border-top: 1px solid var(--line); padding-top: 18px; }

.info-chip-row { display: flex; flex-wrap: wrap; gap: 12px 32px; }
.info-chip { display: flex; align-items: center; gap: 10px; font-family: var(--sans); font-size: 14px; color: var(--ntext); }
.info-chip b { color: var(--champ); }

/* ---------- página legal (prosa larga) ---------- */
.legal { max-width: 760px; }
.legal h2 { font-family: var(--serif); font-weight: 600; font-size: clamp(24px, 2.8vw, 30px); color: var(--navy); margin: 0; }
.legal-block { display: flex; flex-direction: column; gap: 14px; padding: 30px 0; border-top: 1px solid var(--line); }
.legal-block:first-child { border-top: 0; padding-top: 0; }
.legal-block p, .legal-block li { font-family: var(--sans); font-size: 16px; line-height: 1.75; color: var(--graphite); margin: 0; }
.legal-block ul, .legal-block ol { display: flex; flex-direction: column; gap: 10px; margin: 0; padding-left: 22px; }
.legal-block strong { color: var(--navy); }
.legal-toc { display: flex; flex-direction: column; gap: 10px; padding: 24px 28px; background: var(--bone); border: 1px solid var(--line); }
.legal-toc a { font-family: var(--sans); font-size: 15px; color: var(--teal); font-weight: 600; }

/* ---------- botón flotante de WhatsApp ---------- */
.fab-wa{position:fixed;right:22px;bottom:22px;width:60px;height:60px;border-radius:50%;background:var(--teal);color:#fff;display:flex;align-items:center;justify-content:center;box-shadow:0 12px 28px -8px rgba(11,30,40,.5);z-index:60;transition:background-color .15s ease,transform .15s ease}
.fab-wa:hover{background:#125a57;transform:scale(1.06)}
.fab-wa svg{display:block}
@media (max-width:520px){.fab-wa{right:16px;bottom:16px;width:52px;height:52px}.fab-wa svg{width:24px;height:24px}}

/* ---------- botones de contacto con ícono ---------- */
.icon-btn-row{display:flex;gap:12px;flex-wrap:wrap;margin-top:20px}
.icon-btn{display:inline-flex;align-items:center;gap:10px;height:48px;padding:0 20px;border-radius:999px;border:1px solid rgba(245,242,236,.28);color:var(--bone);font-family:var(--sans);font-size:14px;font-weight:600;background:rgba(245,242,236,.04);text-decoration:none;transition:background-color .15s,border-color .15s}
.icon-btn:hover{background:rgba(245,242,236,.14);border-color:var(--champ)}
.icon-btn svg{flex-shrink:0}
.icon-btn--light{color:var(--navy);border-color:var(--line);background:#fff}
.icon-btn--light:hover{background:var(--bone);border-color:var(--teal)}

/* ---------- insignia de precio ---------- */
.price-tag{display:inline-flex;align-items:baseline;gap:10px;padding:10px 20px;border:1px solid var(--champ);border-radius:2px;background:rgba(184,164,122,.08);align-self:flex-start;width:fit-content}
.price-tag .amt{font-family:var(--serif);font-weight:600;font-size:22px;color:var(--navy);white-space:nowrap}
.price-tag .per{font-family:var(--sans);font-size:12px;color:var(--muted);white-space:nowrap}
.price-tag--dark{border-color:var(--champ);background:rgba(184,164,122,.1)}
.price-tag--dark .amt{color:var(--bone)}
.price-tag--dark .per{color:var(--teal-l)}
.price-row{display:flex;align-items:center;gap:16px;flex-wrap:wrap}

/* ---------- Precision Health 30 ---------- */
.steps-4{grid-template-columns:repeat(4,minmax(0,1fr));gap:28px}
@media (max-width:860px){.steps-4{grid-template-columns:repeat(2,minmax(0,1fr));gap:24px 20px}}
@media (max-width:480px){.steps-4{grid-template-columns:minmax(0,1fr)}}
.big90--teal b{color:var(--teal)}
.big90--teal i{color:var(--champ)}
