﻿@import url(fonts.css);

/* Paleta del Manual Corporativo (azules) + tokens de contraste.
   Texto sobre blanco: --azul (#0073C9) = 4.9:1  |  --navy sobre blanco = 15:1  |  botones: blanco sobre --azul = 4.9:1 */
:root{
  --azul:#0073C9;       /* azul profundo del manual */
  --azul-hover:#005EA6;
  --cian:#00A8E1;       /* azul claro del manual (decorativo / sobre fondo oscuro) */
  --marca:#1295D8;      /* color de marca (solo decorativo, no para texto sobre blanco) */
  --gris:#F5F7FA;
  --navy:#0B2540;
  --navy-2:#12365d;
  --texto:#1d2b3a;
  --suave:#44546a;      /* 7:1 sobre blanco */
  --verde:#0B7A62;      /* WhatsApp accesible: blanco sobre verde = 5.3:1 */
  --verde-h:#096350;
  --ok:#0b6b3a; --err:#b3261e;
  --r:20px; --r-sm:12px;
  --sombra:0 18px 50px -18px rgba(11,37,64,.35);
  /* Manual: Arcon (logo) · ITC Avant Garde Gothic (lema) · Nexa (texto). Jost es la alternativa libre más cercana (geométrica, "a" y "g" de un piso). */
  --f-titulo:'Jost','Avant Garde','ITC Avant Garde Gothic',system-ui,sans-serif;
  --f-texto:'Jost','Nexa',system-ui,sans-serif;
  --pad:clamp(16px,4vw,56px);
}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:auto;-webkit-text-size-adjust:100%}
body{margin:0;font-family:var(--f-texto);color:var(--texto);background:#eaf3fb;line-height:1.6;font-size:1.08rem;font-weight:400;overflow-x:clip}
img,canvas,video{max-width:100%;display:block}
h1,h2,h3,h4{font-family:var(--f-titulo);font-weight:600;color:var(--navy);line-height:1.12;margin:0 0 .5em;letter-spacing:-.01em}
h1{font-size:clamp(2.1rem,5.4vw,4.4rem)}
h2{font-size:clamp(1.7rem,3.8vw,3rem)}
h3{font-size:clamp(1.15rem,1.8vw,1.45rem)}
p{margin:0 0 1em}
a{color:var(--azul)}
a:hover{color:var(--azul-hover)}
ul{padding-left:1.2em}
:focus-visible{outline:3px solid var(--navy);outline-offset:3px;box-shadow:0 0 0 6px #fff}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.skip{position:fixed;left:12px;top:-60px;background:var(--navy);color:#fff;padding:12px 18px;border-radius:10px;z-index:1000;transition:top .2s}
.skip:focus{top:12px;color:#fff}

/* ===== Capas de fondo ===== */
#bg,#veil,#gl{position:fixed;inset:0;width:100%;height:100%}
#bg{z-index:0;object-fit:cover;background:#dcebf8}
#veil{z-index:1;pointer-events:none;background:linear-gradient(180deg,rgba(255,255,255,.10),rgba(255,255,255,.0) 40%,rgba(11,37,64,.10));transition:background .4s}
#gl{z-index:2;pointer-events:none}
main,header.top,footer.pie{position:relative;z-index:10}
main{overflow-x:clip}

/* ===== Header ===== */
header.top{position:fixed;top:0;left:0;right:0;z-index:60;padding:10px var(--pad);display:flex;align-items:center;gap:18px;
  background:rgba(255,255,255,.96);backdrop-filter:blur(14px) saturate(1.4);-webkit-backdrop-filter:blur(14px) saturate(1.4);border-bottom:1px solid rgba(11,37,64,.08);transition:transform .35s}
header.top.oculto{transform:translateY(-100%)}
.logo{display:flex;align-items:center;gap:10px;text-decoration:none;color:var(--navy);font-family:var(--f-titulo);font-weight:600;font-size:1.25rem}
.logo svg{width:34px;height:34px}
.logo b{color:var(--azul)}
nav.menu{margin-left:auto;display:flex;gap:6px;align-items:center}
nav.menu a{color:var(--navy);text-decoration:none;font-weight:600;font-size:.92rem;padding:10px 12px;border-radius:999px}
nav.menu a:hover{background:rgba(0,115,201,.1)}
.tel{font-weight:700;color:var(--navy);text-decoration:none;font-size:.92rem;white-space:nowrap}
.burger{display:none;margin-left:auto;background:none;border:2px solid var(--navy);border-radius:12px;padding:8px 12px;font:600 .9rem var(--f-texto);color:var(--navy);cursor:pointer}

/* ===== Botones ===== */
.btn{--bg:var(--azul);--bgh:var(--azul-hover);display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:48px;padding:12px 26px;border-radius:999px;border:2px solid var(--bg);background:var(--bg);color:#fff;
  font:700 1rem var(--f-texto);text-decoration:none;cursor:pointer;transition:transform .2s,background .2s,box-shadow .2s;will-change:transform}
.btn:hover{background:var(--bgh);border-color:var(--bgh);color:#fff;box-shadow:0 12px 28px -10px rgba(0,115,201,.7)}
.btn.wa{--bg:var(--verde);--bgh:var(--verde-h)}
.btn.sec{background:#fff;color:var(--navy);border-color:var(--navy)}
.btn.sec:hover{background:var(--navy);color:#fff}
.btn[disabled]{opacity:.55;cursor:not-allowed;box-shadow:none}
.btn.peq{min-height:40px;padding:8px 18px;font-size:.9rem}

/* ===== Secciones ===== */
section{position:relative;padding:clamp(72px,11vw,150px) var(--pad)}
.wrap{max-width:1240px;margin:0 auto}
.etiqueta{display:inline-block;font:700 .78rem var(--f-texto);letter-spacing:.18em;text-transform:uppercase;color:var(--azul);background:rgba(255,255,255,.85);padding:8px 14px;border-radius:999px;margin-bottom:18px}
.glass{background:rgba(255,255,255,.80);backdrop-filter:blur(18px) saturate(1.3);-webkit-backdrop-filter:blur(18px) saturate(1.3);border:1px solid rgba(255,255,255,.7);border-radius:var(--r);box-shadow:var(--sombra)}
.glass.oscuro{background:rgba(11,37,64,.84);color:#fff;border-color:rgba(255,255,255,.12)}
.glass.oscuro h2,.glass.oscuro h3{color:#fff}
.glass.oscuro a{color:#9fd8ff}
.head{max-width:760px;padding:clamp(22px,3vw,40px);margin-bottom:36px}

/* ===== Hero ===== */
#inicio{min-height:100svh;display:flex;align-items:center;padding-top:110px}
.hero-grid{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);gap:30px;width:100%}
.hero-card{padding:clamp(24px,4vw,52px)}
.hero-card .lema{font:600 .85rem var(--f-texto);letter-spacing:.22em;text-transform:uppercase;color:var(--azul);margin:0 0 14px}
.hero-card p.sub{font-size:clamp(1rem,1.5vw,1.2rem);color:var(--suave);max-width:48ch}
.ctas{display:flex;flex-wrap:wrap;gap:14px;margin:26px 0 18px}
.checks{display:flex;flex-wrap:wrap;gap:8px 22px;margin:0;padding:0;list-style:none;font-weight:600;font-size:.92rem;color:var(--navy)}
.checks li::before{content:"✓";color:var(--verde);margin-right:8px;font-weight:800}
.scrollhint{position:absolute;left:50%;bottom:22px;transform:translateX(-50%);display:flex;flex-direction:column;align-items:center;gap:8px;font:700 .72rem var(--f-texto);letter-spacing:.2em;text-transform:uppercase;color:var(--navy);background:rgba(255,255,255,.8);padding:8px 14px;border-radius:999px}
.scrollhint i{width:2px;height:22px;background:var(--azul);display:block;animation:hint 1.6s infinite}
@keyframes hint{0%{transform:scaleY(0);transform-origin:top}50%{transform:scaleY(1);transform-origin:top}51%{transform-origin:bottom}100%{transform:scaleY(0);transform-origin:bottom}}

/* ===== Cifras ===== */
.cifras{display:grid;grid-template-columns:repeat(3,1fr);gap:0;padding:clamp(20px,3vw,40px)}
.cifra{text-align:center;padding:10px}
.cifra b{display:block;font:600 clamp(2.4rem,6vw,4.6rem)/1 var(--f-titulo);color:var(--azul)}
.cifra span{font-weight:600;color:var(--navy)}
.cifra+.cifra{border-left:1px solid rgba(11,37,64,.15)}

/* ===== Beneficios ===== */
.grid4{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:18px}
.card{padding:28px}
.card .num{font:600 .85rem var(--f-titulo);color:var(--azul);letter-spacing:.14em}
.card h3{margin-top:10px}
.card p{color:var(--suave);margin:0}

/* ===== Especialidades (scroll horizontal) ===== */
#especialidades{padding:88px 0 28px}
#especialidades .head{margin-left:var(--pad);padding:18px 26px;margin-bottom:20px;max-width:620px}
#especialidades .head h2{font-size:clamp(1.5rem,3vw,2.3rem);margin-bottom:.3em}
#especialidades .head p{font-size:.92rem}
.esp{text-decoration:none;color:var(--texto)}
.esp h3{color:var(--navy)}
.hz{overflow:hidden}
.hz-track{display:flex;gap:22px;padding:0 var(--pad);width:max-content}
.esp{width:min(78vw,360px);flex:none;padding:24px;display:flex;flex-direction:column;min-height:min(380px,48vh);position:relative;overflow:hidden;transition:transform .35s}
.esp::before{content:"";position:absolute;right:-60px;top:-60px;width:200px;height:200px;border-radius:50%;background:radial-gradient(circle,rgba(0,168,225,.35),transparent 70%)}
.esp .n{font:600 3.4rem/1 var(--f-titulo);color:rgba(0,115,201,.22)}
.esp h3{margin:18px 0 8px}
.esp p{color:var(--suave);flex:1}
.esp .mini{display:flex;flex-wrap:wrap;gap:6px;margin:0 0 18px;padding:0;list-style:none}
.esp .mini li{font-size:.76rem;font-weight:600;padding:5px 10px;border-radius:999px;background:rgba(0,115,201,.1);color:var(--navy)}
.progreso{height:4px;background:rgba(11,37,64,.15);border-radius:4px;margin:30px var(--pad) 0;overflow:hidden}
.progreso i{display:block;height:100%;width:100%;background:var(--azul);transform:scaleX(0);transform-origin:left}

/* ===== Tecnología ===== */
.chips{display:flex;flex-wrap:wrap;gap:10px;list-style:none;padding:0;margin:20px 0 0}
.chips li{margin:0}
.split{display:grid;grid-template-columns:1fr 1fr;gap:30px;align-items:center}
.split .glass{padding:clamp(24px,4vw,48px)}
.foto{border-radius:var(--r);overflow:hidden;box-shadow:var(--sombra);aspect-ratio:4/5;background:#fff}
.foto img{width:100%;height:100%;object-fit:cover}

/* ===== Proceso ===== */
.pasos{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:18px;counter-reset:p}
.paso{padding:26px;position:relative}
.paso::before{counter-increment:p;content:counter(p);display:grid;place-items:center;width:46px;height:46px;border-radius:50%;background:var(--azul);color:#fff;font:600 1.1rem var(--f-titulo);margin-bottom:14px}

/* ===== Precios, equipo, testimonios, convenios ===== */
.precio{padding:26px}
.precio .v{font:600 2.2rem var(--f-titulo);color:var(--azul)}
.precio .v small{font-size:.9rem;color:var(--suave);font-family:var(--f-texto);font-weight:600}
.nota{font-size:.85rem;color:var(--suave)}
.persona{padding:0;overflow:hidden}
.persona img{aspect-ratio:4/5;object-fit:cover;width:100%}
.persona div{padding:20px}
.estrellas{color:#8a5a00;letter-spacing:2px;font-size:1.1rem}
blockquote{margin:0}
table.conv{width:100%;border-collapse:collapse;background:rgba(255,255,255,.85);border-radius:var(--r-sm);overflow:hidden}
table.conv th,table.conv td{padding:14px 18px;text-align:left;border-bottom:1px solid rgba(11,37,64,.1)}
table.conv th{background:var(--navy);color:#fff}

/* ===== FAQ ===== */
.faq details{background:rgba(255,255,255,.88);border-radius:var(--r-sm);margin-bottom:10px;border:1px solid rgba(11,37,64,.08)}
.faq summary{cursor:pointer;padding:18px 22px;font:600 1.02rem var(--f-titulo);color:var(--navy);list-style:none;display:flex;justify-content:space-between;gap:16px}
.faq summary::after{content:"+";font-size:1.4rem;line-height:1;color:var(--azul);transition:transform .25s}
.faq details[open] summary::after{transform:rotate(45deg)}
.faq details p{padding:0 22px 20px;margin:0;color:var(--suave)}

/* ===== Reserva ===== */
#reserva .wrap{max-width:980px}
.reserva{padding:clamp(20px,3.4vw,44px)}
.pasosbar{display:flex;gap:6px;margin:0 0 26px;padding:0;list-style:none;flex-wrap:wrap}
.pasosbar li{flex:1;min-width:64px;font:700 .72rem var(--f-texto);letter-spacing:.06em;text-transform:uppercase;color:var(--suave);padding-top:10px;border-top:4px solid rgba(11,37,64,.14)}
.pasosbar li.on{color:var(--navy);border-color:var(--azul)}
.pasosbar li.hecho{border-color:var(--verde);color:var(--verde)}
fieldset{border:0;padding:0;margin:0 0 18px;min-width:0}
legend{font:600 1.3rem var(--f-titulo);color:var(--navy);padding:0;margin-bottom:14px}
.opciones{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:10px}
.op{position:relative}
.op input{position:absolute;opacity:0;inset:0;width:100%;height:100%;cursor:pointer;margin:0}
.op span{display:block;padding:14px 16px;border:2px solid rgba(11,37,64,.2);border-radius:var(--r-sm);background:#fff;font-weight:600;color:var(--navy);height:100%;transition:border-color .2s,background .2s}
.op small{display:block;font-weight:500;color:var(--suave);margin-top:2px}
.op input:checked+span{border-color:var(--azul);background:#e8f3fc;box-shadow:inset 0 0 0 1px var(--azul)}
.op input:focus-visible+span{outline:3px solid var(--navy);outline-offset:2px}
.op input:disabled+span{opacity:.5;cursor:not-allowed}
.cal{width:100%;border-collapse:separate;border-spacing:4px}
.cal th{font:700 .75rem var(--f-texto);color:var(--suave);padding:4px 0}
.cal td{padding:0;text-align:center}
.cal button{width:100%;aspect-ratio:1;min-height:44px;border:2px solid transparent;border-radius:12px;background:#fff;font:600 .95rem var(--f-texto);color:var(--navy);cursor:pointer}
.cal button:hover:not([disabled]){border-color:var(--azul)}
.cal button[aria-pressed=true]{background:var(--azul);color:#fff}
.cal button[disabled]{background:transparent;color:#6b7a8c;cursor:not-allowed;text-decoration:line-through}
.calnav{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}
.calnav strong{font:600 1.1rem var(--f-titulo);text-transform:capitalize;color:var(--navy)}
.horas{display:grid;grid-template-columns:repeat(auto-fill,minmax(110px,1fr));gap:8px}
.campo{display:flex;flex-direction:column;gap:6px;margin-bottom:14px}
.campo label,.campo .lab{font-weight:700;color:var(--navy);font-size:.92rem}
.campo .ayuda{font-size:.82rem;color:var(--suave)}
input[type=text],input[type=tel],input[type=email],textarea,select{font:500 1rem var(--f-texto);padding:13px 14px;border:2px solid #6b7a8c;border-radius:12px;background:#fff;color:var(--texto);width:100%}
input:focus,textarea:focus,select:focus{outline:3px solid var(--navy);outline-offset:1px;border-color:var(--navy)}
.err{color:var(--err);font-weight:600;font-size:.88rem;min-height:1.2em}
input[aria-invalid=true],textarea[aria-invalid=true]{border-color:var(--err)}
.chk{display:flex;gap:12px;align-items:flex-start;margin:10px 0;font-size:.92rem}
.chk input{width:22px;height:22px;flex:none;margin-top:2px;accent-color:var(--azul)}
.nav-res{display:flex;justify-content:space-between;gap:12px;margin-top:22px;flex-wrap:wrap}
.resumen{background:#fff;border-radius:var(--r-sm);padding:16px 20px;border:2px solid rgba(11,37,64,.12);margin-bottom:16px}
.resumen dl{display:grid;grid-template-columns:auto 1fr;gap:6px 18px;margin:0}
.resumen dt{font-weight:700;color:var(--navy)}
.resumen dd{margin:0}
.aviso{background:#fff7e0;border:2px solid #b27a00;color:#4a3300;border-radius:var(--r-sm);padding:12px 16px;font-size:.9rem;margin:12px 0}
.aviso.azul{background:#e8f3fc;border-color:var(--azul);color:var(--navy)}
.live{min-height:1.4em}

/* ===== Quiz ===== */
.quiz{padding:clamp(20px,3vw,40px);text-align:center;max-width:820px;margin:0 auto}
.quiz .opciones{text-align:left;margin:18px 0}

/* ===== Mapa / CTA ===== */
.mapa-box{padding:clamp(20px,3vw,40px)}
.mapa-ph{background:#fff;border-radius:var(--r-sm);padding:30px;text-align:center;border:2px dashed rgba(11,37,64,.25)}
.mapa-box iframe{width:100%;height:380px;border:0;border-radius:var(--r-sm)}
.horarios{list-style:none;padding:0;margin:0 0 16px}
.horarios li{display:flex;justify-content:space-between;gap:12px;padding:8px 0;border-bottom:1px solid rgba(11,37,64,.1)}
#cierre{text-align:center;min-height:90svh;display:flex;align-items:flex-end;justify-content:center}
#cierre .glass{padding:clamp(26px,5vw,60px);max-width:820px}

/* ===== Footer ===== */
footer.pie{background:var(--navy);color:#d7e6f5;padding:60px var(--pad) 110px}
footer.pie a{color:#9fd8ff}
footer.pie h2,footer.pie h3{color:#fff;font-size:1.05rem}
.fgrid{display:grid;grid-template-columns:1.4fr 1fr 1fr 1.2fr;gap:30px;max-width:1240px;margin:0 auto}
.fgrid ul{list-style:none;padding:0;margin:0}
.fgrid li{margin:6px 0}
.legalbar{max-width:1240px;margin:34px auto 0;padding-top:20px;border-top:1px solid rgba(255,255,255,.18);font-size:.82rem;display:flex;flex-wrap:wrap;gap:8px 22px;justify-content:space-between}
.legalbar .aviso-med{flex-basis:100%;color:#b9cde2}

/* ===== Flotantes ===== */
.fab{position:fixed;right:18px;bottom:18px;z-index:70;width:62px;height:62px;border-radius:50%;background:var(--verde);display:grid;place-items:center;box-shadow:0 12px 30px -8px rgba(0,0,0,.5);text-decoration:none;color:#fff}
.fab:hover{background:var(--verde-h);color:#fff}
.fab svg{width:32px;height:32px;fill:#fff}
.barra-movil{display:none}
@media (max-width:900px){
  nav.menu{display:none;position:absolute;top:100%;left:0;right:0;flex-direction:column;align-items:stretch;background:rgba(255,255,255,.97);padding:12px var(--pad) 20px;border-bottom:1px solid rgba(11,37,64,.1)}
  nav.menu.abierto{display:flex}
  .burger{display:block}
  .tel{display:none}
  .hero-grid,.split{grid-template-columns:1fr}
  .hero-card{margin-top:30vh}
  .fgrid{grid-template-columns:1fr 1fr}
  .fab{display:none}
  .barra-movil{display:grid;grid-template-columns:1fr 1fr;position:fixed;left:0;right:0;bottom:0;z-index:70;gap:0;box-shadow:0 -8px 24px rgba(0,0,0,.25)}
  .barra-movil a{display:flex;align-items:center;justify-content:center;gap:8px;min-height:56px;font:700 .95rem var(--f-texto);text-decoration:none;color:#fff}
  .barra-movil .a1{background:var(--verde)} .barra-movil .a2{background:var(--azul)}
  .esp{min-height:0}
  #especialidades .hz-track{flex-direction:column;width:auto}
  .esp{width:auto}
  .progreso{display:none}
  .cifras{grid-template-columns:1fr}.cifra+.cifra{border-left:0;border-top:1px solid rgba(11,37,64,.15)}
}
@media (max-width:560px){.fgrid{grid-template-columns:1fr}.resumen dl{grid-template-columns:1fr}}

/* ===== Cookies ===== */
.ck{position:fixed;left:16px;right:16px;bottom:16px;z-index:200;max-width:760px;margin:0 auto;background:#fff;color:var(--texto);border-radius:var(--r);box-shadow:0 20px 60px -10px rgba(0,0,0,.5);padding:24px;border:2px solid var(--navy)}
.ck h2{font-size:1.2rem;margin-bottom:8px}
.ck p{font-size:.92rem}
.ck .acc{display:flex;flex-wrap:wrap;gap:10px;margin-top:14px}
.ck .acc .btn{flex:1 1 150px}
.ck .conf{margin-top:14px;border-top:1px solid #d5dde6;padding-top:12px}
.sw{display:flex;gap:12px;align-items:flex-start;margin:10px 0}
.sw input{width:22px;height:22px;accent-color:var(--azul);margin-top:3px}
@media (max-width:900px){.ck{bottom:72px}}

/* ===== Páginas legales / especialidad ===== */
.doc{max-width:860px;margin:0 auto;padding:30px clamp(20px,4vw,48px)}
.doc h1{font-size:clamp(1.9rem,4vw,2.8rem)}
.doc h2{font-size:1.35rem;margin-top:1.6em}
.doc table{border-collapse:collapse;width:100%;font-size:.92rem;margin:12px 0}
.doc th,.doc td{border:1px solid #b6c4d3;padding:10px;text-align:left;vertical-align:top}
.doc th{background:#e8f3fc}
.pendiente{background:#fff0b3;color:#3d2a00;padding:0 4px;border-radius:4px}
.espdet{padding-top:130px}
.espdet .grupo{margin-bottom:26px}
.espdet .grupo ul{display:flex;flex-wrap:wrap;gap:8px;list-style:none;padding:0}
.espdet .grupo li{padding:8px 14px;border-radius:999px;background:#fff;border:1px solid rgba(11,37,64,.15);font-weight:600;font-size:.92rem;color:var(--navy)}
.crumbs{font-size:.88rem;margin-bottom:14px}

/* ===== Movimiento reducido ===== */
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}.scrollhint i{display:none}}
body.sin-mov .t3d{transform:none!important}

/* ===== Modo edición ===== */
body.editando [data-edit]{outline:2px dashed rgba(0,115,201,.55);outline-offset:3px;cursor:text;min-width:20px}
body.editando [data-edit]:focus{outline:3px solid var(--azul);background:rgba(255,255,255,.7)}
#ed{position:fixed;top:0;right:0;bottom:0;width:min(440px,100vw);z-index:300;background:#fff;color:var(--texto);box-shadow:-20px 0 60px rgba(0,0,0,.35);display:flex;flex-direction:column;transform:translateX(100%);transition:transform .3s}
#ed.abierto{transform:none}
#ed header{padding:14px 18px;background:var(--navy);color:#fff;display:flex;align-items:center;justify-content:space-between;gap:10px}
#ed header h2{color:#fff;font-size:1.05rem;margin:0}
#ed .tabs{display:flex;flex-wrap:wrap;gap:4px;padding:10px;border-bottom:1px solid #d5dde6;background:var(--gris)}
#ed .tabs button{font:700 .78rem var(--f-texto);padding:8px 10px;border-radius:8px;border:1px solid #b6c4d3;background:#fff;cursor:pointer;color:var(--navy)}
#ed .tabs button[aria-selected=true]{background:var(--azul);color:#fff;border-color:var(--azul)}
#ed .cuerpo{flex:1;overflow:auto;padding:16px}
#ed .pie-ed{padding:12px 16px;border-top:1px solid #d5dde6;display:flex;gap:8px;flex-wrap:wrap;background:var(--gris)}
#ed .fila{border:1px solid #c9d5e2;border-radius:10px;padding:10px;margin:8px 0;background:#fbfdff}
#ed label{display:block;font-weight:700;font-size:.78rem;color:var(--navy);margin:8px 0 3px}
#ed input[type=text],#ed input[type=number],#ed textarea{padding:8px 10px;font-size:.9rem;border-width:1px}
#ed .mini-btn{font:700 .75rem var(--f-texto);padding:6px 10px;border-radius:8px;border:1px solid var(--navy);background:#fff;color:var(--navy);cursor:pointer}
#ed .mini-btn.rojo{border-color:var(--err);color:var(--err)}
#ed-fab{position:fixed;left:16px;bottom:16px;z-index:290}
#ed-msg{font-size:.82rem;color:var(--ok);font-weight:700}

body.legal{background:linear-gradient(160deg,#eaf3fb,#cfe6f8) fixed}


.lectura{position:absolute;left:0;bottom:-1px;height:3px;width:100%;background:linear-gradient(90deg,var(--cian),var(--azul));transform:scaleX(0);transform-origin:left}
nav.menu a[aria-current=true]:not(.btn){background:rgba(0,115,201,.14);color:var(--azul-hover)}


/* ===== Logo de imagen ===== */
.logo img{height:64px;width:auto;mix-blend-mode:multiply}
.logo-pie{display:inline-block;background:#fff;border-radius:14px;padding:6px 14px;margin-bottom:12px}
.logo-pie img{height:50px;width:auto;mix-blend-mode:multiply}
header.top{padding-top:6px;padding-bottom:6px}
@media (max-width:900px){.logo img{height:44px}}

/* ===== Cajas 3D: brillo que sigue al mouse ===== */
.glass{position:relative;will-change:transform}
.t3d::after{content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;opacity:0;transition:opacity .3s;
  background:radial-gradient(circle at var(--gx,50%) var(--gy,50%),rgba(255,255,255,.55),transparent 55%)}
.t3d:hover::after{opacity:1}
.t3d:hover{box-shadow:0 34px 70px -20px rgba(11,37,64,.5)}
.glass.oscuro.t3d::after{background:radial-gradient(circle at var(--gx,50%) var(--gy,50%),rgba(0,168,225,.28),transparent 55%)}

/* ===== Icono sutil en cada tratamiento ===== */
.esp .ico{position:absolute;right:-14px;bottom:10px;width:178px;height:178px;color:var(--azul);opacity:.11;pointer-events:none;transition:opacity .4s,transform .6s}
.esp:hover .ico,.esp:focus-visible .ico{opacity:.2;transform:rotate(-6deg) scale(1.08)}
.esp>*:not(.ico){position:relative}
.espdet .ico-pag{position:absolute;right:28px;top:28px;width:150px;height:150px;color:var(--azul);opacity:.12;pointer-events:none}

/* ===== Tecnología: palabras clicables + equipos 3D ===== */
.chips .chip{font:inherit;font-weight:600;font-size:.95rem;color:#fff;padding:10px 16px;border-radius:999px;background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.35);display:inline-block}
button.chip{cursor:pointer;transition:background .2s,transform .2s,color .2s}
button.chip:hover,button.chip.on{background:#fff;color:var(--navy);transform:translateY(-2px)}
button.chip::before{content:"＋ ";opacity:.8}
button.chip.on::before{content:"− "}
.chip.plano{opacity:.75}
.glass.oscuro :focus-visible{outline-color:#fff;box-shadow:0 0 0 6px var(--navy)}
.popeq{display:flex;gap:16px;align-items:center;margin-top:22px;padding:14px;border-radius:var(--r-sm);background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.25)}
.popeq[hidden]{display:none}
.popeq .rec{flex:none;border-radius:12px;background-color:#fff;box-shadow:0 12px 30px -10px rgba(0,0,0,.6);max-width:55vw}
.eq3d{perspective:1100px;max-width:520px;margin:0 auto;width:100%}
.lienzo{position:relative;aspect-ratio:1024/1156;transform-style:preserve-3d;will-change:transform}
.lienzo .base{position:absolute;inset:0;border-radius:var(--r);overflow:hidden;box-shadow:var(--sombra);background:#dff0fb}
.lienzo .base img{position:absolute;left:0;width:100%;top:-32.88%;height:auto}
.hot{position:absolute;padding:0;border:0;border-radius:10px;cursor:pointer;background-color:#fff;transition:box-shadow .3s,outline-color .3s;outline:2px solid transparent}
.hot:hover,.hot:focus-visible,.hot.vivo{box-shadow:0 26px 40px -10px rgba(0,60,120,.65),0 0 0 3px rgba(255,255,255,.95),0 0 28px 6px rgba(0,168,225,.6);z-index:5}
.hot::after{content:attr(data-nombre);position:absolute;left:50%;bottom:calc(100% + 8px);transform:translateX(-50%) translateY(6px);white-space:nowrap;background:var(--navy);color:#fff;font:600 .8rem var(--f-texto);padding:5px 10px;border-radius:999px;opacity:0;pointer-events:none;transition:opacity .25s,transform .25s}
.hot:hover::after,.hot:focus-visible::after,.hot.vivo::after{opacity:1;transform:translateX(-50%) translateY(0)}

/* ===== Convenios ===== */
.banner-conv{padding:14px;margin-bottom:22px;overflow:hidden}
.banner-conv img{width:100%;height:auto;border-radius:12px}
.conv-grid{margin-bottom:6px}
.conv-grid .card .btn{margin-top:14px}


/* ===== Ajustes responsivos (celular / tablet) ===== */
.split>*,.grid4>*,.hero-grid>*,.fgrid>*{min-width:0}
.popeq{flex-wrap:wrap}
.popeq .rec{max-width:100%}
img,video,canvas,iframe,table{max-width:100%}
.doc table,table.conv{display:block;overflow-x:auto}
@media (max-width:900px){
  section{padding-top:clamp(56px,14vw,96px);padding-bottom:clamp(40px,10vw,80px)}
  #inicio{padding-top:84px}
  .hero-card{margin-top:28svh}
  .head{padding:18px 20px}
  .etiqueta{font-size:.72rem}
  .eq3d{max-width:460px}
  .hot::after{display:none}
  .btn{min-height:50px}
  .ctas .btn{flex:1 1 220px}
  .reserva{padding:18px}
  .horas{grid-template-columns:repeat(auto-fill,minmax(92px,1fr))}
  footer.pie{padding-bottom:96px}
  .banner-conv{padding:8px}
}
@media (max-width:420px){
  h1{font-size:clamp(1.9rem,9vw,2.4rem)}
  .cal button{min-height:40px;font-size:.88rem}
  .pasosbar li{font-size:.6rem;min-width:52px}
  .calnav strong{font-size:1rem}
}
@media (hover:none){.t3d::after{display:none}.btn:hover{transform:none}}

/* ===== Ficha de equipo (se abre al tocar una palabra de Tecnología) ===== */
.ficha{border:0;padding:0;background:transparent;max-width:min(880px,94vw);width:100%;color:var(--texto);overflow:visible}
.ficha::backdrop{background:rgba(11,37,64,.62);backdrop-filter:blur(6px)}
.ficha[open]{display:block;margin:auto}
.ficha-in{position:relative;display:grid;grid-template-columns:minmax(0,300px) minmax(0,1fr);gap:26px;background:#fff;border-radius:var(--r);padding:clamp(20px,3vw,36px);box-shadow:0 40px 90px -20px rgba(0,0,0,.6);max-height:90vh;overflow:auto}
.ficha-x{position:absolute;right:12px;top:12px;width:44px;height:44px;border-radius:50%;border:2px solid var(--navy);background:#fff;color:var(--navy);font-size:1.1rem;font-weight:700;cursor:pointer;z-index:2}
.ficha-x:hover{background:var(--navy);color:#fff}
.ficha-img .rec{width:100%;border-radius:14px;background-color:#eaf3fb;box-shadow:0 14px 34px -14px rgba(0,60,120,.5);border:1px solid rgba(11,37,64,.12)}
.ficha-img .rec-ico{display:grid;place-items:center;aspect-ratio:1/1;color:var(--azul);background:linear-gradient(160deg,#e8f3fc,#cfe6f8)}
.ficha-img .rec-ico svg{width:58%;height:58%}
.ficha-txt h3{font-size:clamp(1.4rem,3vw,1.9rem);margin:0 44px .5em 0}
.ficha-txt dt{font:700 .78rem var(--f-texto);letter-spacing:.14em;text-transform:uppercase;color:var(--azul);margin-top:14px}
.ficha-txt dd{margin:4px 0 0}
.ficha-txt dd ul{margin:0;padding-left:1.2em}
.ficha-txt dd li{margin:3px 0}
@media (max-width:760px){.ficha-in{grid-template-columns:1fr;gap:16px}.ficha-img{max-width:300px;margin:0 auto;width:100%}.ficha-txt h3{margin-right:48px}}

/* ===== Logos de redes sociales ===== */
.red{display:inline-flex;align-items:center;gap:10px}
.red svg{flex:none}
.red-pie{color:#9fd8ff;text-decoration:none;font-weight:600;padding:4px 0}
.red-pie:hover{color:#fff;text-decoration:underline}
footer.pie .fgrid>div:first-child ul li{margin:8px 0}

/* ===== Selector de idioma ===== */
.idioma{font:600 .85rem var(--f-texto);color:var(--navy);background:#fff;border:2px solid var(--navy);border-radius:999px;padding:6px 10px;min-height:40px;cursor:pointer;margin-left:8px;max-width:130px}
.idioma:hover{background:#eaf3fb}
@media (max-width:900px){.idioma{margin-left:auto}.burger{margin-left:8px}}

/* Idiomas con textos más largos o con otros alfabetos */
:lang(de) h1,:lang(ru) h1{font-size:clamp(1.9rem,4.1vw,3.4rem)}
:lang(ru),:lang(ru) h1,:lang(ru) h2,:lang(ru) h3{font-family:'Jost','Segoe UI',system-ui,Arial,sans-serif}
:lang(zh),:lang(zh) h1,:lang(zh) h2,:lang(zh) h3,:lang(zh) button,:lang(zh) input,:lang(zh) select,:lang(zh) textarea{font-family:'Jost','PingFang SC','Microsoft YaHei','Noto Sans SC','Hiragino Sans GB',system-ui,sans-serif}
:lang(zh) .etiqueta,:lang(zh) .ficha-txt dt,:lang(zh) .lema{letter-spacing:.04em;text-transform:none}
:lang(ru) .etiqueta,:lang(ru) .ficha-txt dt{letter-spacing:.08em}
