/* =====================================================
   Dra. Idaira Sánchez Santos — Oftalmología
   Diseño "clínico moderno" · v3 (web ES/EN/FR + teleconsulta + panel)
   ===================================================== */

:root{
  --tinta:#0A2A3E;      /* azul marino del logo */
  --azul:#0E63C4;       /* acción principal */
  --azul-osc:#0A4A94;
  --cian:#0E9AA0;       /* verde azulado del logo */
  --hielo:#EFF5FB;
  --hielo-2:#E3EDF8;
  --blanco:#FFFFFF;
  --texto:#24384A;
  --muted:#5B6B7A;
  --linea:rgba(10,42,62,.14);
  --linea-2:rgba(10,42,62,.08);
  --verde:#1F9D66;
  --rojo:#C93C3C;

  /* Alias de compatibilidad (estilos en línea antiguos y panel) */
  --petroleo:var(--azul); --petroleo-2:var(--azul-osc);
  --crema:#FFFFFF; --crema-2:var(--hielo); --arena:var(--hielo-2);
  --coral:var(--azul); --coral-2:var(--azul-osc); --musgo:var(--verde);

  --display:'Sora',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;
  --sans:'Instrument Sans',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;
  --mono:'IBM Plex Mono',ui-monospace,monospace;

  --r-sm:6px; --r-md:10px; --r-lg:14px; --r-xl:22px;
  --sh-1:0 1px 2px rgba(10,42,62,.05);
  --sh-2:0 10px 28px -12px rgba(14,99,196,.22);
  --sh-3:0 28px 60px -24px rgba(10,42,62,.32);
}

*,*::before,*::after{ box-sizing:border-box; }
html{ scroll-behavior:smooth; -webkit-text-size-adjust:100%; }
body{
  margin:0; font-family:var(--sans); font-size:16.5px; line-height:1.65;
  color:var(--tinta); background:var(--blanco);
  -webkit-font-smoothing:antialiased; text-rendering:optimizeLegibility;
}
img{ max-width:100%; display:block; height:auto; }
a{ color:inherit; text-decoration:none; }
h1,h2,h3,h4{ font-family:var(--display); font-weight:600; letter-spacing:-.025em; line-height:1.14; margin:0 0 .45em; color:var(--tinta); }
h1{ font-size:clamp(2.1rem,4.6vw,3.6rem); font-weight:700; }
h2{ font-size:clamp(1.7rem,3.3vw,2.5rem); }
h3{ font-size:clamp(1.18rem,1.8vw,1.42rem); }
h4{ font-size:1.08rem; }
h5{ font-family:var(--sans); }
p{ margin:0 0 1em; }
em.serif,.serif{ font-style:normal; font-family:inherit; color:var(--azul); font-weight:inherit; }
h1 .destacado{ color:var(--azul); }
strong{ font-weight:650; }
.mono{ font-family:var(--mono); }
.muted{ color:var(--muted); }

.wrap{ max-width:1220px; margin:0 auto; padding:0 2rem; }
.wrap-narrow{ max-width:860px; margin:0 auto; padding:0 2rem; }
.skip{ position:absolute; left:-9999px; top:0; background:var(--azul); color:#fff; padding:.6rem 1rem; z-index:999; }
.skip:focus{ left:1rem; }

/* Eyebrow */
.eyebrow{ display:inline-flex; align-items:center; gap:.55rem; font-size:.74rem; letter-spacing:.15em; text-transform:uppercase; color:var(--azul); font-weight:700; margin-bottom:.6rem; }
.eyebrow::before{ content:""; width:9px; height:9px; border:2px solid var(--cian); border-radius:50%; flex:none; }

/* ===== Barra superior ===== */
.topbar{ background:var(--tinta); color:#fff; font-size:.8rem; padding:.45rem 0; }
.topbar .wrap{ display:flex; justify-content:space-between; align-items:center; gap:1rem; flex-wrap:wrap; }
.topbar a{ color:#fff; opacity:.88; }
.topbar a:hover{ opacity:1; text-decoration:underline; }
.topbar .sep{ opacity:.35; margin:0 .5rem; }

/* ===== Cabecera ===== */
.cabecera{ position:sticky; top:0; z-index:100; background:rgba(255,255,255,.95); backdrop-filter:blur(12px); -webkit-backdrop-filter:blur(12px); border-bottom:1px solid var(--linea-2); }
.cabecera .wrap{ display:flex; align-items:center; justify-content:space-between; gap:1rem; padding-top:.85rem; padding-bottom:.85rem; }
.logo{ display:flex; align-items:center; gap:.7rem; font-family:var(--display); font-size:1.08rem; font-weight:700; letter-spacing:-.02em; line-height:1.1; color:var(--tinta); }
.logo img{ width:44px; height:auto; flex:none; }
.logo span{ display:flex; flex-direction:column; }
.logo small{ font-family:var(--sans); font-size:.6rem; font-weight:700; letter-spacing:.2em; text-transform:uppercase; color:var(--cian); margin-top:3px; }
.nav{ display:flex; gap:1.5rem; align-items:center; }
.nav a{ font-size:.9rem; font-weight:600; color:var(--tinta); position:relative; padding:.35rem 0; transition:color .2s; white-space:nowrap; }
.nav a:hover,.nav a.activa{ color:var(--azul); }
.nav a.activa::after{ content:""; position:absolute; left:0; right:0; bottom:-2px; height:2px; background:var(--azul); border-radius:2px; }
.boton-cita{ background:var(--azul); color:#fff !important; padding:.62rem 1.15rem !important; border-radius:var(--r-md); font-weight:700; box-shadow:var(--sh-2); transition:background .2s, transform .2s; }
.boton-cita:hover{ background:var(--azul-osc); transform:translateY(-1px); }
.boton-cita.activa::after{ display:none; }
.cab-derecha{ display:flex; align-items:center; gap:1.1rem; }
.lang-switch{ display:flex; gap:2px; background:var(--hielo); border-radius:999px; padding:3px; }
.lang-switch a{ font-size:.74rem; font-weight:700; letter-spacing:.06em; padding:.3rem .55rem; border-radius:999px; color:var(--muted); }
.lang-switch a:hover{ color:var(--azul); }
.lang-switch a[aria-current="true"]{ background:#fff; color:var(--tinta); box-shadow:var(--sh-1); }
.menu-toggle{ display:none; background:none; border:none; cursor:pointer; width:38px; height:38px; padding:0; }
.menu-toggle span{ display:block; width:24px; height:2px; background:var(--tinta); margin:5px auto; border-radius:2px; transition:transform .2s, opacity .2s; }
.menu-toggle[aria-expanded="true"] span:nth-child(1){ transform:translateY(7px) rotate(45deg); }
.menu-toggle[aria-expanded="true"] span:nth-child(2){ opacity:0; }
.menu-toggle[aria-expanded="true"] span:nth-child(3){ transform:translateY(-7px) rotate(-45deg); }

/* ===== Botones ===== */
.btn{ display:inline-flex; align-items:center; justify-content:center; gap:.55rem; padding:.88rem 1.45rem; border-radius:var(--r-md); font-family:var(--sans); font-weight:700; font-size:.94rem; cursor:pointer; border:none; text-decoration:none; transition:transform .18s, box-shadow .18s, background .18s, color .18s, border-color .18s; line-height:1.3; }
.btn-primario{ background:var(--azul); color:#fff; box-shadow:var(--sh-2); }
.btn-primario:hover{ background:var(--azul-osc); transform:translateY(-2px); }
.btn-oscuro{ background:var(--tinta); color:#fff; }
.btn-oscuro:hover{ background:var(--azul); transform:translateY(-2px); }
.btn-fantasma{ background:transparent; color:var(--tinta); border:1.5px solid var(--linea); }
.btn-fantasma:hover{ border-color:var(--azul); color:var(--azul); }
.btn-whatsapp{ background:#25D366; color:#fff; }
.btn-whatsapp:hover{ background:#1EB856; transform:translateY(-2px); }
.btn-lg{ padding:1.05rem 1.8rem; font-size:1rem; }
.btn-block{ width:100%; display:flex; }
.btn .flecha{ transition:transform .2s; }
.btn:hover .flecha{ transform:translateX(4px); }

/* ===== HERO ===== */
.hero{ position:relative; padding:4.2rem 0 5rem; overflow:hidden; background:linear-gradient(180deg,var(--hielo) 0%,#fff 82%); }
.hero::after{ content:""; position:absolute; right:-140px; top:-160px; width:560px; height:560px; border-radius:50%;
  background:repeating-radial-gradient(circle, transparent 0 30px, rgba(14,154,160,.09) 30px 31px); pointer-events:none; }
.hero-grid{ position:relative; z-index:1; display:grid; grid-template-columns:1.12fr 1fr; gap:4rem; align-items:center; }
.hero p.lead{ font-size:1.13rem; color:var(--muted); max-width:50ch; margin:1.3rem 0 2rem; }
.hero-ctas{ display:flex; gap:.85rem; flex-wrap:wrap; }
.hero-credenciales{ margin-top:2.6rem; padding-top:1.6rem; border-top:1px solid var(--linea-2); display:grid; grid-template-columns:repeat(3,1fr); gap:1.3rem; }
.hero-credenciales div{ font-size:.82rem; color:var(--muted); line-height:1.45; }
.hero-credenciales strong{ display:block; font-family:var(--display); font-size:1.8rem; font-weight:700; color:var(--azul); letter-spacing:-.02em; margin-bottom:.2rem; }
.hero-visual{ position:relative; display:flex; flex-direction:column; gap:1rem; align-items:flex-end; }
.hero-foto-wrap{ position:relative; width:100%; max-width:470px; aspect-ratio:4/5; border-radius:var(--r-xl); overflow:hidden; background:var(--hielo-2); box-shadow:var(--sh-3); }
.hero-foto-wrap picture,.hero-foto{ width:100%; height:100%; object-fit:cover; display:block; }
.hero-foto-badge{ position:absolute; left:16px; right:16px; bottom:16px; padding:.85rem 1.1rem; background:rgba(10,42,62,.9); backdrop-filter:blur(10px); -webkit-backdrop-filter:blur(10px); border-radius:var(--r-md); color:#fff; display:flex; flex-direction:column; gap:2px; }
.hero-foto-badge .badge-eyebrow{ font-size:.86rem; font-weight:700; }
.hero-foto-badge .badge-titulo{ font-size:.68rem; letter-spacing:.12em; text-transform:uppercase; color:#7FD8DC; font-weight:700; }
.hero-tag{ background:#fff; border:1px solid var(--linea-2); border-radius:999px; padding:.6rem 1.05rem; font-size:.83rem; font-weight:600; display:inline-flex; align-items:center; gap:.6rem; box-shadow:var(--sh-1); }
.hero-tag a:hover{ color:var(--azul); }
.hero-tag .punto{ width:8px; height:8px; border-radius:50%; background:var(--verde); box-shadow:0 0 0 4px rgba(31,157,102,.18); animation:pulso 2.4s ease-in-out infinite; }
@keyframes pulso{ 0%,100%{ box-shadow:0 0 0 3px rgba(31,157,102,.2);} 50%{ box-shadow:0 0 0 7px rgba(31,157,102,.06);} }

/* ===== Secciones ===== */
section{ padding:4.8rem 0; }
.banda-clara{ background:#fff; }
.banda-arena{ background:var(--hielo); }
.banda-oscura{ background:var(--tinta); color:#fff; }
.banda-oscura h2,.banda-oscura h3,.banda-oscura h4{ color:#fff; }
.banda-oscura .eyebrow{ color:#7FD8DC; }
.banda-oscura .eyebrow::before{ border-color:#7FD8DC; }
.banda-oscura em.serif{ color:#7FD8DC; }
.intro-seccion{ display:grid; grid-template-columns:1fr 1.35fr; gap:3.2rem; margin-bottom:2.8rem; align-items:end; }
.intro-seccion h2{ margin-bottom:0; }
.intro-seccion p{ font-size:1.02rem; color:var(--muted); max-width:56ch; margin:0; }
.banda-oscura .intro-seccion p{ color:rgba(255,255,255,.75); }
.seccion-padded{ padding:4rem 0; }

/* Áreas destacadas */
.areas-destacadas{ display:grid; grid-template-columns:repeat(5,1fr); gap:1rem; }
.area-destacada{ background:#fff; border:1px solid var(--linea-2); border-radius:var(--r-lg); padding:1.4rem 1.2rem 2.2rem; display:flex; flex-direction:column; gap:.7rem; position:relative; transition:transform .22s, box-shadow .22s, border-color .22s; }
.area-destacada:hover{ transform:translateY(-3px); border-color:rgba(14,99,196,.35); box-shadow:var(--sh-2); }
.area-ico{ width:44px; height:44px; border-radius:var(--r-md); background:var(--hielo); color:var(--azul); display:grid; place-items:center; transition:background .2s,color .2s; }
.area-destacada:hover .area-ico{ background:var(--azul); color:#fff; }
.area-destacada h3{ font-size:1.05rem; margin:0; }
.area-destacada p{ margin:0; color:var(--muted); font-size:.86rem; line-height:1.5; }
.area-destacada::after{ content:"→"; position:absolute; right:1.1rem; bottom:.9rem; color:var(--azul); opacity:0; transform:translateX(-4px); transition:all .22s; }
.area-destacada:hover::after{ opacity:1; transform:none; }

/* Tarjetas de especialidades */
.especialidades-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:1.3rem; }
.especialidad-card{ background:#fff; padding:1.8rem 1.6rem; border-radius:var(--r-lg); border:1px solid var(--linea-2); display:flex; flex-direction:column; transition:transform .22s, box-shadow .22s, border-color .22s; }
.especialidad-card:hover{ transform:translateY(-3px); border-color:rgba(14,99,196,.3); box-shadow:var(--sh-2); }
.especialidad-card .num{ font-family:var(--mono); font-size:.74rem; color:var(--cian); margin-bottom:.9rem; letter-spacing:.03em; }
.especialidad-card h3{ font-size:1.18rem; margin-bottom:.5rem; }
.especialidad-card p{ font-size:.92rem; color:var(--muted); flex:1; margin-bottom:1.1rem; }
.especialidad-card a{ font-size:.86rem; font-weight:700; color:var(--azul); align-self:flex-start; border-bottom:2px solid transparent; }
.especialidad-card a:hover{ border-color:var(--azul); }
.especialidad-card .icono{ width:50px; height:50px; margin-bottom:1.1rem; display:grid; place-items:center; background:var(--hielo); border-radius:var(--r-md); color:var(--azul); }

/* Filosofía */
.filosofia-banda{ background:var(--tinta); color:#fff; padding:5.5rem 0; position:relative; overflow:hidden; }
.filosofia-banda::before{ content:""; position:absolute; left:-120px; bottom:-200px; width:520px; height:520px; border-radius:50%; background:repeating-radial-gradient(circle,transparent 0 28px,rgba(127,216,220,.08) 28px 29px); }
.filosofia-banda .wrap{ position:relative; max-width:860px; }
.filosofia-banda .eyebrow{ color:#7FD8DC; }
.filosofia-banda .eyebrow::before{ border-color:#7FD8DC; }
.filosofia-banda blockquote{ font-family:var(--display); font-weight:500; font-size:clamp(1.35rem,2.6vw,1.9rem); line-height:1.45; letter-spacing:-.015em; margin:0 0 1.6rem; }
.filosofia-banda blockquote em{ font-style:normal; color:#7FD8DC; }
.filosofia-firma{ display:flex; align-items:center; gap:.9rem; font-size:.88rem; }
.filosofia-firma .linea{ width:38px; height:2px; background:var(--cian); }
.filosofia-firma span{ color:rgba(255,255,255,.65); font-size:.76rem; letter-spacing:.08em; text-transform:uppercase; }

/* Sobre la doctora */
.sobre-grid{ display:grid; grid-template-columns:1fr 1.2fr; gap:4rem; align-items:center; }
.sobre-foto{ position:relative; aspect-ratio:1/1; border-radius:var(--r-xl); overflow:hidden; background:var(--hielo-2); box-shadow:var(--sh-3); }
.sobre-foto img,.sobre-foto picture{ width:100%; height:100%; object-fit:cover; }
.sobre-foto .sello{ position:absolute; right:14px; bottom:14px; background:#fff; color:var(--azul); border-radius:var(--r-md); padding:.6rem .95rem; font-weight:700; font-size:.82rem; box-shadow:var(--sh-2); }
.sobre-texto .firma{ font-family:var(--display); font-weight:600; color:var(--azul); margin:1.2rem 0 .3rem; }
.formacion-lista{ list-style:none; padding:0; margin:1.6rem 0; border-top:1px solid var(--linea-2); }
.formacion-lista li{ display:grid; grid-template-columns:88px 1fr; gap:1.2rem; padding:.85rem 0; border-bottom:1px solid var(--linea-2); font-size:.93rem; }
.formacion-lista .anio{ font-family:var(--mono); color:var(--azul); font-size:.86rem; padding-top:2px; }
.formacion-lista .lugar{ color:var(--muted); font-size:.84rem; }

/* Imagen con texto (quirófano, consulta) */
.media-grid{ display:grid; grid-template-columns:1fr 1fr; gap:3.5rem; align-items:center; }
.media-grid.invertido > :first-child{ order:2; }
.media-foto{ border-radius:var(--r-xl); overflow:hidden; box-shadow:var(--sh-3); aspect-ratio:1/1; background:var(--hielo-2); }
.media-foto img{ width:100%; height:100%; object-fit:cover; }
.figcaption{ font-size:.8rem; color:var(--muted); margin-top:.6rem; }

/* Hospitales */
.hospitales{ display:grid; grid-template-columns:repeat(3,1fr); gap:1.3rem; margin-top:2.4rem; }
.hospital-card{ background:rgba(255,255,255,.06); border:1px solid rgba(255,255,255,.14); border-radius:var(--r-lg); padding:1.7rem; display:flex; flex-direction:column; gap:.4rem; }
.banda-clara .hospital-card,.banda-arena .hospital-card{ background:#fff; border-color:var(--linea-2); }
.hospital-card .tipo{ font-size:.68rem; font-weight:700; letter-spacing:.15em; text-transform:uppercase; color:#7FD8DC; }
.banda-clara .hospital-card .tipo,.banda-arena .hospital-card .tipo{ color:var(--cian); }
.hospital-card h4{ font-size:1.15rem; margin:0 0 .15rem; }
.hospital-card p{ font-size:.9rem; opacity:.82; margin:0; }
.hospital-card .direccion{ margin-top:.7rem; padding-top:.7rem; border-top:1px solid rgba(255,255,255,.12); font-size:.82rem; opacity:.8; }
.hospital-logo{ background:#fff; border-radius:var(--r-md); padding:.6rem .8rem; display:inline-flex; align-self:flex-start; margin-bottom:.6rem; }
.hospital-logo img{ height:40px; width:auto; }

/* Aseguradoras */
.aseguradoras{ display:flex; flex-wrap:wrap; gap:.5rem; margin-top:1.4rem; }
.aseguradora-chip{ padding:.5rem 1rem; border-radius:999px; background:var(--hielo); border:1px solid var(--linea-2); font-size:.85rem; font-weight:600; color:var(--tinta); }
.banda-oscura .aseguradora-chip{ background:rgba(255,255,255,.08); border-color:rgba(255,255,255,.18); color:#fff; }

/* Testimonios */
.testimonios-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:1.3rem; }
.testimonio{ background:var(--hielo); padding:1.8rem; border-radius:var(--r-lg); border:1px solid var(--linea-2); display:flex; flex-direction:column; gap:.9rem; }
.estrellas{ color:#E8A317; letter-spacing:.12em; }
.testimonio blockquote{ font-size:1rem; font-weight:500; line-height:1.55; margin:0; }
.testimonio cite{ font-style:normal; font-size:.85rem; color:var(--muted); margin-top:auto; display:flex; align-items:center; gap:.6rem; }
.testimonio cite::before{ content:""; width:22px; height:2px; background:var(--cian); }
.resenas-cta{ margin-top:3rem; padding:2.6rem 2rem; background:var(--hielo); border-radius:var(--r-xl); text-align:center; }
.resenas-cta .estrellas{ font-size:1.6rem; margin-bottom:.6rem; }
.resenas-cta h3{ margin-bottom:.6rem; }
.resenas-cta p{ color:var(--muted); max-width:560px; margin:0 auto 1.4rem; }
.resenas-cta a{ display:inline-block; padding:.85rem 1.6rem; border-radius:var(--r-md); background:var(--azul); color:#fff; font-weight:700; }

/* CTA grande */
.cta-grande{ background:linear-gradient(140deg,var(--azul) 0%,var(--azul-osc) 55%,var(--tinta) 100%); color:#fff; border-radius:var(--r-xl); padding:4rem 3.4rem; display:grid; grid-template-columns:1.2fr 1fr; gap:2.6rem; align-items:center; position:relative; overflow:hidden; }
.cta-grande::before{ content:""; position:absolute; top:-45%; right:-10%; width:55%; aspect-ratio:1; border-radius:50%; background:repeating-radial-gradient(circle,transparent 0 24px,rgba(255,255,255,.1) 24px 25px); }
.cta-grande h2{ color:#fff; margin-bottom:.5rem; }
.cta-grande p{ color:rgba(255,255,255,.85); margin:0; }
.cta-grande .eyebrow{ color:#fff !important; }
.cta-grande .eyebrow::before{ border-color:#fff; }
.cta-grande .ctas{ position:relative; display:flex; flex-direction:column; gap:.8rem; align-items:flex-end; }
.cta-grande .btn-primario{ background:#fff !important; color:var(--azul) !important; }
.cta-grande .btn-primario:hover{ background:var(--hielo) !important; }
.cta-grande .btn-fantasma{ border-color:rgba(255,255,255,.6) !important; color:#fff !important; }
.cta-grande .btn-fantasma:hover{ background:rgba(255,255,255,.1); border-color:#fff !important; }

/* ===== Pie ===== */
.pie{ background:var(--tinta); color:#E6EEF5; padding:3.6rem 0 1.6rem; }
.pie-grid{ display:grid; grid-template-columns:1.4fr 1fr 1fr 1.1fr; gap:2.6rem; padding-bottom:2.4rem; border-bottom:1px solid rgba(255,255,255,.12); }
.pie h5{ font-size:.7rem; font-weight:700; letter-spacing:.18em; text-transform:uppercase; margin:0 0 1rem; color:#7FD8DC; }
.pie ul{ list-style:none; padding:0; margin:0; }
.pie li{ margin-bottom:.5rem; font-size:.9rem; opacity:.88; }
.pie a:hover{ color:#7FD8DC; }
.pie .marca{ display:flex; align-items:center; gap:.6rem; font-family:var(--display); font-size:1.12rem; font-weight:700; margin-bottom:.8rem; color:#fff; }
.pie .marca img{ width:40px; }
.pie p{ font-size:.88rem; opacity:.75; max-width:36ch; }
.pie-bajo{ padding-top:1.4rem; display:flex; justify-content:space-between; gap:1rem; flex-wrap:wrap; font-size:.78rem; opacity:.7; }
.pie-bajo a{ text-decoration:underline; text-underline-offset:2px; }
.redes{ display:flex; gap:.6rem; margin-top:1rem; }
.redes a{ width:36px; height:36px; border-radius:var(--r-md); border:1px solid rgba(255,255,255,.22); display:grid; place-items:center; font-size:.72rem; font-weight:700; transition:background .2s,border-color .2s; }
.redes a:hover{ background:var(--azul); border-color:var(--azul); color:#fff; }

/* WhatsApp flotante */
.wa-flotante{ position:fixed; right:18px; bottom:18px; z-index:90; width:56px; height:56px; border-radius:50%; background:#25D366; color:#fff; display:grid; place-items:center; box-shadow:0 10px 24px -6px rgba(0,0,0,.35); transition:transform .2s; }
.wa-flotante:hover{ transform:scale(1.07); }

/* ===== Páginas interiores ===== */
.pagina-hero{ padding:3.8rem 0 3rem; background:linear-gradient(180deg,var(--hielo) 0%,#fff 100%); }
.pagina-hero h1{ font-size:clamp(2rem,4vw,3.1rem); max-width:24ch; }
.pagina-hero p.lead{ font-size:1.1rem; color:var(--muted); max-width:64ch; margin:1.1rem 0 0; }
.miga{ font-size:.8rem; color:var(--muted); margin-bottom:1.2rem; }
.miga a{ color:var(--azul); font-weight:600; }
.miga a:hover{ text-decoration:underline; }
p.lead{ font-size:1.08rem; color:var(--muted); }

.contenido-editorial{ display:grid; grid-template-columns:260px 1fr; gap:3.4rem; align-items:start; }
.indice-lateral{ position:sticky; top:5.5rem; background:var(--hielo); padding:1.4rem; border-radius:var(--r-lg); border:1px solid var(--linea-2); }
.indice-lateral h5{ font-size:.68rem; font-weight:700; letter-spacing:.18em; text-transform:uppercase; color:var(--azul); margin:0 0 .8rem; }
.indice-lateral ul{ list-style:none; padding:0; margin:0; }
.indice-lateral a{ font-size:.88rem; display:block; padding:.38rem .6rem; border-radius:var(--r-sm); font-weight:500; }
.indice-lateral a:hover{ background:#fff; color:var(--azul); }
.articulo h2{ margin-top:2.3rem; font-size:1.65rem; scroll-margin-top:6rem; }
.articulo h2:first-child{ margin-top:0; }
.articulo h3{ margin-top:1.6rem; font-size:1.2rem; }
.articulo p,.articulo li{ color:var(--texto); }
.articulo ul{ padding-left:1.2rem; }
.articulo ul li{ margin-bottom:.45rem; padding-left:.3rem; }
.articulo blockquote{ border-left:3px solid var(--azul); background:var(--hielo); padding:1.1rem 1.5rem; margin:1.7rem 0; border-radius:0 var(--r-md) var(--r-md) 0; font-size:1.08rem; font-weight:500; color:var(--azul-osc); }
.info-caja{ background:var(--hielo); border-left:4px solid var(--cian); padding:1.2rem 1.5rem; border-radius:var(--r-md); margin:1.5rem 0; font-size:.94rem; }
.info-caja strong{ color:var(--azul-osc); }

.contenido-pagina{ display:grid; grid-template-columns:1fr 320px; gap:3.6rem; align-items:start; }
.contenido-principal h2{ font-size:1.7rem; margin:2.6rem 0 .9rem; scroll-margin-top:6rem; }
.contenido-principal h2:first-child{ margin-top:0; }
.contenido-principal p{ color:var(--texto); }
.lista-feature{ list-style:none; padding:0; margin:1rem 0 1.6rem; }
.lista-feature li{ position:relative; padding:.7rem 0 .7rem 2rem; border-bottom:1px solid var(--linea-2); color:var(--texto); }
.lista-feature li:last-child{ border-bottom:0; }
.lista-feature li::before{ content:""; position:absolute; left:2px; top:1.05rem; width:14px; height:7px; border-left:2px solid var(--cian); border-bottom:2px solid var(--cian); transform:rotate(-45deg); }
.tarjetas-tratamiento{ display:grid; grid-template-columns:repeat(2,1fr); gap:1rem; margin:1.4rem 0 2rem; }
.tarjetas-tratamiento article{ background:#fff; border:1px solid var(--linea-2); border-radius:var(--r-lg); padding:1.4rem 1.3rem; }
.tarjetas-tratamiento .num{ font-family:var(--mono); font-size:.8rem; color:var(--cian); display:block; margin-bottom:.6rem; }
.tarjetas-tratamiento h3{ font-size:1.05rem; margin:0 0 .4rem; }
.tarjetas-tratamiento p{ margin:0; font-size:.9rem; color:var(--muted); }
.faq{ background:#fff; border:1px solid var(--linea-2); border-radius:var(--r-md); padding:1rem 1.2rem; margin-bottom:.6rem; transition:border-color .2s; }
.faq[open]{ border-color:rgba(14,99,196,.35); }
.faq summary{ font-weight:700; cursor:pointer; list-style:none; position:relative; padding-right:1.8rem; }
.faq summary::-webkit-details-marker{ display:none; }
.faq summary::after{ content:"+"; position:absolute; right:0; top:-3px; font-size:1.3rem; color:var(--azul); }
.faq[open] summary::after{ content:"−"; }
.faq p{ margin:.8rem 0 0; color:var(--texto); font-size:.95rem; }
.sidebar-cita{ background:var(--hielo); border:1px solid var(--linea-2); border-radius:var(--r-lg); padding:1.6rem; position:sticky; top:5.5rem; }
.sidebar-cita h3{ font-size:1.25rem; margin:0 0 .6rem; }
.sidebar-cita p{ font-size:.92rem; color:var(--muted); margin:0 0 1rem; }
.sidebar-cita .btn{ margin-bottom:.5rem; }
.aside-extra{ font-size:.82rem; color:var(--muted); background:#fff; padding:.8rem .9rem; border-radius:var(--r-md); margin:1rem 0 0 !important; line-height:1.5; }
.aside-extra strong{ color:var(--tinta); }

/* Tarifas */
.tarifa-grid{ display:grid; grid-template-columns:repeat(auto-fit,minmax(240px,1fr)); gap:1.3rem; margin-top:2rem; }
.tarifa-card{ background:#fff; border:1px solid var(--linea-2); border-radius:var(--r-lg); padding:2.2rem 1.8rem; display:flex; flex-direction:column; gap:.7rem; }
.tarifa-card.destacada{ background:var(--tinta); color:#fff; border-color:transparent; box-shadow:var(--sh-3); }
.tarifa-card.destacada h3{ color:#fff; }
.tarifa-card .precio{ font-family:var(--display); font-size:2.6rem; font-weight:700; color:var(--azul); line-height:1; letter-spacing:-.03em; }
.tarifa-card.destacada .precio{ color:#7FD8DC; }
.tarifa-card .precio small{ font-size:.9rem; opacity:.7; font-weight:500; font-family:var(--sans); letter-spacing:0; }
.tarifa-card ul{ list-style:none; padding:0; margin:.8rem 0; }
.tarifa-card li{ padding:.45rem 0; border-top:1px solid var(--linea-2); font-size:.9rem; }
.tarifa-card.destacada li{ border-color:rgba(255,255,255,.12); }
.tarifa-card .btn{ margin-top:auto; }

/* Contacto */
.contacto-grid{ display:grid; grid-template-columns:1.3fr 1fr; gap:3.2rem; }
.contacto-form{ background:#fff; padding:2rem; border-radius:var(--r-lg); border:1px solid var(--linea-2); box-shadow:var(--sh-1); }
.contacto-info{ display:flex; flex-direction:column; gap:1rem; }
.contacto-info .bloque{ padding:1.2rem; background:#fff; border:1px solid var(--linea-2); border-radius:var(--r-md); display:grid; grid-template-columns:auto 1fr; gap:.9rem; align-items:flex-start; }
.contacto-info .bloque .ico{ width:42px; height:42px; border-radius:var(--r-md); background:var(--hielo); display:grid; place-items:center; color:var(--azul); }
.contacto-info .bloque h4{ margin:0 0 .15rem; font-family:var(--sans); font-size:.7rem; letter-spacing:.14em; text-transform:uppercase; color:var(--muted); }
.contacto-info .bloque p{ margin:0; font-weight:600; }
.contacto-info .bloque a:hover{ color:var(--azul); }

/* Formularios */
.campo{ margin-bottom:1.05rem; }
.campo label{ display:block; font-size:.76rem; font-weight:700; letter-spacing:.05em; text-transform:uppercase; color:var(--muted); margin-bottom:.4rem; }
input,textarea,select{ font:inherit; }
.campo input,.campo textarea,.campo select,.form-grid input,.form-grid textarea,.form-grid select{
  width:100%; padding:.82rem 1rem; background:#fff; border:1.5px solid var(--linea); border-radius:var(--r-md); color:var(--tinta); font-size:.95rem; transition:border-color .2s, box-shadow .2s; }
.campo input:focus,.campo textarea:focus,.campo select:focus,.form-grid input:focus,.form-grid textarea:focus,.form-grid select:focus{ outline:none; border-color:var(--azul); box-shadow:0 0 0 3px rgba(14,99,196,.14); }
.campo textarea,.form-grid textarea{ min-height:120px; resize:vertical; }
.campos-fila{ display:grid; grid-template-columns:1fr 1fr; gap:1rem; }
.checkbox-confirmar{ display:flex; gap:.7rem; align-items:flex-start; margin:1rem 0; cursor:pointer; font-size:.9rem; }
.checkbox-confirmar input{ margin-top:.3rem; width:18px; height:18px; accent-color:var(--azul); flex:none; }
.form-grid{ display:grid; grid-template-columns:1fr 1fr; gap:1rem 1.2rem; margin-top:1.4rem; }
.form-grid label{ display:flex; flex-direction:column; gap:.4rem; font-size:.86rem; font-weight:700; }
.form-grid label.full{ grid-column:1/-1; }
.radio-group{ display:flex; gap:.5rem; flex-wrap:wrap; margin-top:.2rem; }
.radio-group label{ flex-direction:row; align-items:center; gap:.5rem; padding:.6rem .9rem; border-radius:var(--r-md); border:1.5px solid var(--linea); cursor:pointer; font-weight:600; }
.radio-group label:has(input:checked){ background:var(--azul); color:#fff; border-color:var(--azul); }
.form-submit{ margin-top:1.4rem; }
.form-submit button{ padding:1rem 1.8rem; border-radius:var(--r-md); border:0; background:var(--azul); color:#fff; font-weight:700; font-size:1rem; cursor:pointer; }
.form-submit button:hover{ background:var(--azul-osc); }
.legal-form{ font-size:.78rem; color:var(--muted); margin-top:.8rem; line-height:1.5; }

/* Pedir cita */
.cita-principal{ background:linear-gradient(180deg,#fff 0%,var(--hielo) 100%); border-radius:var(--r-xl); padding:2.8rem 2.4rem; border:1px solid var(--linea-2); margin-top:1.6rem; }
.etiqueta{ display:inline-block; font-size:.68rem; letter-spacing:.14em; text-transform:uppercase; font-weight:700; padding:.35rem .75rem; border-radius:999px; background:var(--azul); color:#fff; margin-bottom:1rem; }
.cita-principal h2,.form-alternativo h2{ margin-bottom:.7rem; }
.lead-cita{ color:var(--muted); font-size:1.08rem; margin:0 0 1.8rem; max-width:620px; }
.cita-split{ display:grid; grid-template-columns:1.2fr 1fr; gap:2.8rem; align-items:start; }
.pasos{ list-style:none; padding:0; margin:0; counter-reset:paso; }
.pasos li{ counter-increment:paso; position:relative; padding:.9rem 0 .9rem 3.4rem; border-bottom:1px solid var(--linea-2); }
.pasos li:last-child{ border-bottom:0; }
.pasos li::before{ content:counter(paso); position:absolute; left:0; top:.85rem; width:36px; height:36px; border-radius:50%; background:var(--azul); color:#fff; display:grid; place-items:center; font-weight:700; font-size:.92rem; }
.pasos li strong{ display:block; margin-bottom:.15rem; }
.pasos li small{ color:var(--muted); font-size:.9rem; line-height:1.5; }
.cta-tuotempo{ background:#fff; border:1px solid var(--linea); border-radius:var(--r-lg); padding:1.6rem; display:flex; flex-direction:column; gap:.9rem; position:sticky; top:6rem; }
.badge-online{ align-self:flex-start; font-size:.75rem; font-weight:700; padding:.3rem .7rem; background:#E5F5EC; color:#166A45; border-radius:999px; }
.badge-online::before{ content:"●"; margin-right:.4rem; color:var(--verde); }
.cta-tuotempo h3{ margin:0; }
.cta-tuotempo p{ margin:0; color:var(--muted); font-size:.93rem; }
.btn-tuotempo{ display:block; text-align:center; padding:1rem 1.4rem; border-radius:var(--r-md); background:var(--azul); color:#fff; font-weight:700; }
.btn-tuotempo:hover{ background:var(--azul-osc); }
.cta-tuotempo .nota{ font-size:.8rem; color:var(--muted); text-align:center; }
.canales{ display:grid; grid-template-columns:1fr 1fr; gap:.6rem; padding-top:.9rem; border-top:1px solid var(--linea-2); }
.canales a{ display:flex; align-items:center; justify-content:center; gap:.4rem; padding:.7rem; border-radius:var(--r-md); background:var(--hielo); color:var(--azul); font-weight:700; font-size:.88rem; }
.canales a:hover{ background:var(--hielo-2); }
.form-alternativo{ margin-top:3.4rem; background:#fff; border-radius:var(--r-xl); padding:2.6rem 2.4rem; border:1px solid var(--linea-2); }
.form-alternativo .etiqueta{ background:var(--cian); }
.form-alternativo .intro{ max-width:640px; }
.form-alternativo p{ color:var(--muted); }

/* Legal */
.legal-text h2{ font-size:1.3rem; margin-top:2rem; }
.legal-text p,.legal-text li{ color:var(--texto); font-size:.96rem; }

/* ===== Alertas ===== */
.alerta,.alert{ padding:.95rem 1.2rem; border-radius:var(--r-md); margin:1rem 0; font-size:.92rem; border-left:4px solid; }
.alerta-exito,.alert-ok{ background:#E8F6EE; border-color:var(--verde); color:#155A3A; }
.alerta-error,.alert-error{ background:#FDECEC; border-color:var(--rojo); color:#8C2323; }
.alerta-info,.alert-info{ background:var(--hielo); border-color:var(--azul); color:var(--tinta); }

/* =====================================================
   TELECONSULTA — página informativa con formulario
   ===================================================== */
.tc-hero-grid{ display:grid; grid-template-columns:1.25fr 1fr; gap:3rem; align-items:center; }
.tc-precio-card{ background:#fff; border:1px solid var(--linea-2); border-radius:var(--r-xl); padding:2rem; box-shadow:var(--sh-2); }
.tc-precio-card .precio{ font-family:var(--display); font-size:3rem; font-weight:700; color:var(--azul); letter-spacing:-.03em; line-height:1; }
.tc-precio-card .precio small{ font-size:.95rem; color:var(--muted); font-weight:500; font-family:var(--sans); letter-spacing:0; }
.tc-precio-card ul{ list-style:none; padding:0; margin:1.2rem 0; }
.tc-precio-card li{ padding:.5rem 0 .5rem 1.7rem; border-top:1px solid var(--linea-2); position:relative; font-size:.92rem; }
.tc-precio-card li::before{ content:""; position:absolute; left:2px; top:.95rem; width:12px; height:6px; border-left:2px solid var(--cian); border-bottom:2px solid var(--cian); transform:rotate(-45deg); }
.tc-pasos-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:1rem; counter-reset:p; }
.tc-paso{ background:#fff; border:1px solid var(--linea-2); border-radius:var(--r-lg); padding:1.4rem; counter-increment:p; position:relative; }
.tc-paso::before{ content:counter(p); display:grid; place-items:center; width:36px; height:36px; border-radius:50%; background:var(--azul); color:#fff; font-weight:700; margin-bottom:.9rem; }
.tc-paso h3{ font-size:1.02rem; margin-bottom:.35rem; }
.tc-paso p{ font-size:.88rem; color:var(--muted); margin:0; }
.tc-formulario{ background:#fff; border:1px solid var(--linea-2); border-radius:var(--r-xl); padding:2.4rem; box-shadow:var(--sh-2); scroll-margin-top:6rem; }
.tc-formulario fieldset{ border:0; padding:0; margin:0 0 1.6rem; }
.tc-formulario legend{ font-family:var(--display); font-weight:600; font-size:1.12rem; margin-bottom:1rem; padding:0; display:flex; align-items:center; gap:.6rem; }
.tc-formulario legend span{ display:grid; place-items:center; width:28px; height:28px; border-radius:50%; background:var(--hielo); color:var(--azul); font-size:.85rem; font-family:var(--sans); font-weight:700; }
.tc-formulario .ayuda{ font-size:.8rem; color:var(--muted); margin-top:.35rem; text-transform:none; letter-spacing:0; font-weight:400; }
.tc-drop{ border:2px dashed var(--linea); border-radius:var(--r-lg); padding:1.6rem; text-align:center; background:var(--hielo); cursor:pointer; transition:border-color .2s, background .2s; position:relative; }
.tc-drop:hover,.tc-drop.encima{ border-color:var(--azul); background:#fff; }
.tc-drop input{ position:absolute; inset:0; opacity:0; cursor:pointer; width:100%; }
.tc-drop strong{ color:var(--azul); }
.tc-drop small{ display:block; color:var(--muted); margin-top:.3rem; }
.tc-lista-archivos{ list-style:none; padding:0; margin:.8rem 0 0; font-size:.86rem; }
.tc-lista-archivos li{ padding:.35rem .7rem; background:var(--hielo); border-radius:var(--r-sm); margin-bottom:.3rem; display:flex; justify-content:space-between; gap:.6rem; }
.tc-lista-archivos li.mal{ background:#FDECEC; color:#8C2323; }
.tc-condiciones{ background:var(--hielo); border-radius:var(--r-md); padding:1rem 1.2rem; font-size:.86rem; margin:1rem 0; }
.tc-condiciones summary{ font-weight:700; cursor:pointer; color:var(--azul); }
.tc-condiciones ul{ margin:.7rem 0 0; padding-left:1.1rem; }
.tc-condiciones li{ margin-bottom:.35rem; }
.tc-enviar{ display:flex; align-items:center; gap:1rem; flex-wrap:wrap; margin-top:1.2rem; }
.tc-enviar small{ color:var(--muted); }
.campo-error input,.campo-error textarea,.campo-error select{ border-color:var(--rojo) !important; }
.tc-cerrado{ background:var(--hielo); border-radius:var(--r-lg); padding:1.6rem; text-align:center; }

/* Pacientes internacionales */
.int-paises{ display:grid; grid-template-columns:repeat(4,1fr); gap:1rem; }
.int-pais{ background:#fff; border:1px solid var(--linea-2); border-radius:var(--r-lg); padding:1.3rem; }
.int-pais .bandera{ font-size:1.6rem; line-height:1; display:block; margin-bottom:.6rem; }
.int-pais h3{ font-size:1rem; margin-bottom:.3rem; }
.int-pais p{ font-size:.86rem; color:var(--muted); margin:0; }
.int-viaje{ display:grid; grid-template-columns:repeat(3,1fr); gap:1rem; }
.int-viaje article{ background:rgba(255,255,255,.06); border:1px solid rgba(255,255,255,.14); border-radius:var(--r-lg); padding:1.5rem; }
.int-viaje h3{ font-size:1.05rem; }
.int-viaje p{ font-size:.9rem; opacity:.82; margin:0; }
.int-linea{ list-style:none; padding:0; margin:0; border-left:2px solid var(--hielo-2); }
.int-linea li{ position:relative; padding:0 0 1.5rem 1.6rem; }
.int-linea li::before{ content:""; position:absolute; left:-7px; top:.35rem; width:12px; height:12px; border-radius:50%; background:#fff; border:3px solid var(--azul); }
.int-linea strong{ display:block; font-family:var(--display); font-size:1.02rem; }
.int-linea span{ color:var(--muted); font-size:.92rem; }

/* =====================================================
   TELECONSULTA — páginas del paciente (pago, agenda, cita)
   ===================================================== */
.tc-body{ background:var(--hielo); min-height:100vh; display:flex; flex-direction:column; }
.tc-top{ background:#fff; border-bottom:1px solid var(--linea-2); }
.tc-top-in{ display:flex; justify-content:space-between; align-items:center; padding-top:.8rem; padding-bottom:.8rem; gap:1rem; }
.tc-main{ flex:1; padding:2.4rem 0 3rem; }
.tc-wrap{ max-width:820px; }
.tc-card{ background:#fff; border-radius:var(--r-xl); padding:2.4rem; box-shadow:var(--sh-2); border:1px solid var(--linea-2); }
.tc-card h1{ font-size:clamp(1.6rem,3.2vw,2.2rem); margin:0; }
.tc-card h2{ font-size:1.2rem; margin-top:1.8rem; }
.tc-center{ text-align:center; }
.tc-cab{ display:flex; gap:1rem; align-items:center; margin-bottom:1.4rem; }
.tc-cab .eyebrow{ margin-bottom:.2rem; }
.tc-icono{ width:56px; height:56px; border-radius:50%; background:var(--hielo); color:var(--azul); display:grid; place-items:center; flex:none; font-weight:700; font-size:1.4rem; }
.tc-icono-verde{ background:#E5F5EC; color:var(--verde); }
.tc-icono-gris{ background:#EDF0F3; color:var(--muted); margin:0 auto 1rem; }
.tc-estado{ font-size:.92rem; color:var(--muted); }
.est-pendiente_pago{ color:#A86E00; } .est-pagada,.est-programada{ color:var(--verde); } .est-cancelada,.est-caducada{ color:var(--muted); }
.tc-pasos{ padding-left:1.2rem; margin:1rem 0 1.4rem; }
.tc-pasos li{ margin-bottom:.4rem; }
.tc-banco{ margin:0; background:var(--hielo); border-radius:var(--r-lg); padding:.4rem 1.3rem; }
.tc-banco > div{ display:grid; grid-template-columns:200px 1fr; gap:1rem; padding:.85rem 0; border-bottom:1px solid var(--linea-2); align-items:center; }
.tc-banco > div:last-child{ border-bottom:0; }
.tc-banco dt{ font-size:.72rem; letter-spacing:.08em; text-transform:uppercase; color:var(--muted); font-weight:700; }
.tc-banco dd{ margin:0; font-weight:700; display:flex; align-items:center; gap:.6rem; flex-wrap:wrap; word-break:break-word; }
.tc-banco .tc-importe{ font-family:var(--display); font-size:1.5rem; color:var(--azul); }
.tc-banco .tc-ref dd{ color:var(--azul); font-size:1.1rem; }
.tc-copiar{ font:inherit; font-size:.74rem; font-weight:700; padding:.25rem .6rem; border-radius:999px; border:1.5px solid var(--linea); background:#fff; color:var(--azul); cursor:pointer; }
.tc-copiar:hover{ border-color:var(--azul); }
.tc-nota{ font-size:.86rem; color:var(--muted); margin-top:1rem; }
.tc-subida{ margin-top:1.8rem; padding-top:1.4rem; border-top:1px solid var(--linea-2); }
.tc-form-justif{ display:flex; gap:.8rem; flex-wrap:wrap; align-items:center; }
.tc-form-justif input[type=file]{ flex:1; min-width:220px; padding:.7rem; border:1.5px dashed var(--linea); border-radius:var(--r-md); background:var(--hielo); }
.tc-ok-linea{ color:var(--verde); font-weight:700; }
.tc-urgente{ margin-top:1.6rem; font-size:.9rem; }
.tc-urgente a{ color:#128C4A; font-weight:700; text-decoration:underline; }
.tc-zona{ font-size:.86rem; color:var(--muted); }
.tc-actual{ background:var(--hielo); padding:.8rem 1rem; border-radius:var(--r-md); }
.tc-dias{ display:grid; gap:1rem; margin-top:1.2rem; }
.tc-dia{ border:1px solid var(--linea-2); border-radius:var(--r-lg); padding:1rem 1.2rem 1.2rem; margin:0; }
.tc-dia legend{ font-weight:700; font-family:var(--display); padding:0 .4rem; }
.tc-horas{ display:flex; flex-wrap:wrap; gap:.6rem; }
.tc-hora{ position:relative; cursor:pointer; }
.tc-hora input{ position:absolute; opacity:0; inset:0; }
.tc-hora span{ display:flex; flex-direction:column; align-items:center; min-width:96px; padding:.65rem .9rem; border:1.5px solid var(--linea); border-radius:var(--r-md); transition:all .15s; }
.tc-hora strong{ font-size:1.05rem; }
.tc-hora small{ font-size:.72rem; color:var(--muted); }
.tc-hora:hover span{ border-color:var(--azul); }
.tc-hora input:checked + span{ background:var(--azul); border-color:var(--azul); color:#fff; }
.tc-hora input:checked + span small{ color:rgba(255,255,255,.85); }
.tc-hora input:focus-visible + span{ outline:2px solid var(--azul); outline-offset:2px; }
.tc-confirmar{ position:sticky; bottom:0; background:linear-gradient(transparent,#fff 30%); padding:1.4rem 0 .4rem; margin-top:.6rem; }
.tc-confirmar .btn{ width:100%; }
.tc-confirmar .btn:disabled{ background:var(--linea); color:var(--muted); box-shadow:none; cursor:not-allowed; transform:none; }
.tc-cita{ display:grid; grid-template-columns:1fr auto; gap:1.4rem; align-items:center; background:var(--hielo); border-radius:var(--r-lg); padding:1.5rem; margin:1rem 0; }
.tc-cita-fecha{ display:flex; flex-direction:column; gap:.2rem; }
.tc-cita-dia{ font-family:var(--display); font-weight:600; font-size:1.15rem; }
.tc-cita-hora{ font-family:var(--display); font-size:2.2rem; font-weight:700; color:var(--azul); line-height:1.1; }
.tc-cita-hora small{ font-size:.85rem; color:var(--muted); font-family:var(--sans); font-weight:500; }
.tc-cita-local{ font-size:.86rem; color:var(--muted); }
.tc-cita-acciones{ display:flex; flex-direction:column; gap:.6rem; }
.tc-cal{ display:flex; gap:.5rem; flex-wrap:wrap; }
.tc-cal .btn{ font-size:.82rem; padding:.6rem .9rem; flex:1; }
.tc-tips{ padding-left:1.2rem; }
.tc-tips li{ margin-bottom:.4rem; }
.tc-pie{ padding:1.6rem 0; font-size:.86rem; text-align:center; color:var(--muted); }
.tc-pie p{ margin:.2rem 0; }
.tc-pie a{ color:var(--azul); font-weight:600; }

/* =====================================================
   Consentimientos (clases base, por si alguna página las usa)
   ===================================================== */
.consentimiento-pagina{ min-height:100vh; background:var(--hielo); padding:2rem 0 4rem; }
.consentimiento-caja{ max-width:780px; margin:0 auto; background:#fff; border-radius:var(--r-lg); box-shadow:var(--sh-2); overflow:hidden; }
.consentimiento-encabezado{ background:var(--tinta); color:#fff; padding:1.8rem 2.2rem; }
.consentimiento-cuerpo{ padding:2.2rem; }
.paciente-info{ background:var(--hielo); padding:1.4rem; border-radius:var(--r-md); margin-bottom:1.8rem; display:grid; grid-template-columns:1fr 1fr; gap:1rem; }
.firma-zona{ margin-top:1.8rem; padding:1.6rem; background:var(--hielo); border-radius:var(--r-md); border:2px dashed var(--linea); }
#firma-canvas{ width:100%; height:200px; touch-action:none; border-radius:var(--r-md); cursor:crosshair; background:#fff; }
.btn-firmar{ width:100%; padding:1.1rem; font-size:1rem; background:var(--azul); color:#fff; border:none; border-radius:var(--r-md); cursor:pointer; font-weight:700; }
.btn-firmar:disabled{ background:var(--linea); color:var(--muted); cursor:not-allowed; }
.btn-limpiar{ background:transparent; border:1.5px solid var(--linea); padding:.5rem 1rem; border-radius:var(--r-md); font-size:.85rem; cursor:pointer; color:var(--muted); }

/* =====================================================
   PANEL DE ADMINISTRACIÓN + LOGIN
   ===================================================== */
.page-admin{ background:var(--hielo); display:flex; min-height:100vh; }
.admin-sidebar{ width:252px; flex-shrink:0; background:var(--tinta); color:#fff; display:flex; flex-direction:column; padding:1.3rem .9rem; position:sticky; top:0; height:100vh; overflow-y:auto; }
.admin-brand{ display:flex; align-items:center; gap:.7rem; padding:.3rem .5rem 1.2rem; border-bottom:1px solid rgba(255,255,255,.12); margin-bottom:1rem; }
.brand-mark{ width:40px; height:40px; border-radius:var(--r-md); background:var(--azul); color:#fff; display:grid; place-items:center; font-family:var(--display); font-weight:700; flex-shrink:0; }
.admin-brand strong{ display:block; font-size:.9rem; }
.admin-brand small{ font-size:.72rem; opacity:.65; }
.admin-sidebar nav{ display:flex; flex-direction:column; gap:.2rem; flex:1; }
.admin-sidebar nav a{ padding:.65rem .85rem; border-radius:var(--r-md); font-size:.88rem; font-weight:600; color:rgba(255,255,255,.8); display:flex; align-items:center; gap:.3rem; }
.admin-sidebar nav a:hover{ background:rgba(255,255,255,.08); color:#fff; }
.admin-sidebar nav a.active{ background:var(--azul); color:#fff; }
.nav-badge{ margin-left:auto; background:#F2B33D; color:var(--tinta); border-radius:999px; font-size:.7rem; padding:.05rem .5rem; font-weight:800; }
.admin-user{ padding:.9rem .5rem 0; border-top:1px solid rgba(255,255,255,.12); display:flex; justify-content:space-between; align-items:center; font-size:.85rem; }
.admin-user a{ color:#7FD8DC; font-weight:700; }
.admin-main{ flex:1; padding:2.2rem 2.6rem; max-width:1240px; min-width:0; }
.admin-header{ display:flex; justify-content:space-between; align-items:flex-start; gap:1rem; margin-bottom:1.5rem; flex-wrap:wrap; }
.admin-header h1{ font-size:1.65rem; margin:0 0 .2rem; }
.link-arrow{ color:var(--azul); font-weight:700; font-size:.9rem; }
.btn-primary{ display:inline-flex; align-items:center; justify-content:center; gap:.5rem; background:var(--azul); color:#fff; padding:.72rem 1.25rem; border-radius:var(--r-md); font-weight:700; font-size:.9rem; border:none; cursor:pointer; }
.btn-primary:hover{ background:var(--azul-osc); }
.btn-secondary{ display:inline-flex; align-items:center; justify-content:center; gap:.5rem; background:#fff; color:var(--tinta); border:1.5px solid var(--linea); padding:.68rem 1.15rem; border-radius:var(--r-md); font-weight:600; font-size:.88rem; cursor:pointer; }
.btn-secondary:hover{ border-color:var(--azul); color:var(--azul); }
.btn-link{ background:none; border:none; color:var(--azul); font-weight:600; font-size:.9rem; cursor:pointer; padding:.6rem; display:inline-flex; align-items:center; }
.btn-link:hover{ text-decoration:underline; }
.btn-small{ padding:.4rem .85rem; font-size:.8rem; border-radius:var(--r-sm); background:var(--hielo); border:1px solid var(--linea-2); color:var(--tinta); font-weight:600; cursor:pointer; display:inline-flex; }
.btn-small:hover{ border-color:var(--azul); color:var(--azul); }
.btn-danger{ background:var(--rojo) !important; color:#fff !important; border:none; }
.admin-form{ background:#fff; border:1px solid var(--linea-2); border-radius:var(--r-lg); padding:1.7rem 1.9rem; }
.admin-form fieldset{ border:none; padding:0; margin:0 0 1.6rem; }
.admin-form legend{ font-family:var(--display); font-weight:600; font-size:1.05rem; margin-bottom:.9rem; padding:0; }
.admin-form label{ display:block; font-size:.9rem; }
.admin-form label > span{ display:block; font-size:.74rem; font-weight:700; letter-spacing:.04em; text-transform:uppercase; color:var(--muted); margin-bottom:.35rem; }
.admin-form input:not([type=checkbox]):not([type=radio]):not([type=file]),.admin-form select,.admin-form textarea{ width:100%; padding:.72rem .9rem; font-size:.93rem; border:1.5px solid var(--linea); border-radius:var(--r-md); background:#fff; color:var(--tinta); }
.admin-form input:focus,.admin-form select:focus,.admin-form textarea:focus{ outline:none; border-color:var(--azul); box-shadow:0 0 0 3px rgba(14,99,196,.14); }
.grid-2{ display:grid; grid-template-columns:1fr 1fr; gap:1rem 1.4rem; }
.form-actions{ display:flex; gap:.8rem; align-items:center; margin-top:1.2rem; flex-wrap:wrap; }
.table{ width:100%; border-collapse:collapse; background:#fff; border-radius:var(--r-lg); overflow:hidden; border:1px solid var(--linea-2); }
.table th{ text-align:left; font-size:.7rem; letter-spacing:.1em; text-transform:uppercase; color:var(--muted); padding:.85rem 1rem; background:var(--hielo); border-bottom:1px solid var(--linea-2); }
.table td{ padding:.85rem 1rem; border-bottom:1px solid var(--linea-2); font-size:.9rem; vertical-align:middle; }
.table tbody tr:hover{ background:rgba(14,99,196,.03); }
.badge{ display:inline-block; padding:.26rem .75rem; border-radius:999px; font-size:.74rem; font-weight:700; }
.badge-lg{ font-size:.86rem; padding:.45rem 1rem; }
.badge-pendiente,.badge-tc-pendiente_pago{ background:#FFF4D6; color:#7A5600; }
.badge-firmado,.badge-tc-programada{ background:#E5F5EC; color:#155A3A; }
.badge-tc-pagada{ background:#E3EDF8; color:var(--azul-osc); }
.badge-tc-realizada{ background:#E8E6F7; color:#3E3586; }
.badge-expirado,.badge-tc-caducada{ background:#EDF0F3; color:var(--muted); }
.badge-revocado,.badge-tc-cancelada{ background:#FDECEC; color:#8C2323; }
.card-success-block{ background:#fff; border:1px solid var(--linea-2); border-radius:var(--r-lg); padding:1.8rem 2rem; }
.card-success-block h2{ margin-top:0; font-size:1.35rem; }
.copy-link{ display:flex; gap:.6rem; margin:.8rem 0 1rem; }
.copy-link input{ flex:1; padding:.75rem .9rem; border:1.5px solid var(--linea); border-radius:var(--r-md); font-family:var(--mono); font-size:.8rem; background:var(--hielo); min-width:0; }
.send-actions{ display:flex; gap:.7rem; flex-wrap:wrap; align-items:center; }
.empty{ color:var(--muted); }

/* Teleconsulta en el panel */
.tc-proximas{ margin-bottom:1.6rem; padding:0; }
.tc-proximas h2{ font-size:1.1rem; }
.tc-proximas-grid{ display:grid; grid-template-columns:repeat(auto-fill,minmax(230px,1fr)); gap:.8rem; }
.tc-prox{ background:#fff; border:1px solid var(--linea-2); border-left:4px solid var(--verde); border-radius:var(--r-md); padding:.9rem 1rem; display:flex; flex-direction:column; gap:.15rem; font-size:.86rem; }
.tc-prox:hover{ border-color:var(--azul); }
.tc-prox-fecha{ font-size:.78rem; color:var(--muted); }
.tc-prox-hora{ font-family:var(--display); font-weight:700; font-size:1.4rem; color:var(--azul); }
.tc-prox-nombre{ font-weight:700; }
.tc-ficha{ display:grid; grid-template-columns:1fr 340px; gap:1.4rem; align-items:start; }
.tc-ficha-main,.tc-ficha-side{ display:flex; flex-direction:column; gap:1.2rem; min-width:0; }
.tc-bloque h3{ font-size:1.05rem; margin-bottom:.9rem; }
.tc-etq{ font-size:.72rem; letter-spacing:.08em; text-transform:uppercase; color:var(--muted); font-weight:700; margin:.8rem 0 .3rem; }
.tc-texto{ background:var(--hielo); border-radius:var(--r-md); padding:.9rem 1.1rem; font-size:.94rem; }
.tc-archivos{ list-style:none; padding:0; margin:0 0 1rem; }
.tc-archivos li{ display:flex; align-items:center; gap:.6rem; flex-wrap:wrap; padding:.6rem 0; border-bottom:1px solid var(--linea-2); }
.tc-archivos li a:first-of-type{ font-weight:600; color:var(--azul); word-break:break-all; }
.tc-arch-ico{ font-size:.62rem; font-weight:800; background:var(--hielo-2); color:var(--azul-osc); border-radius:4px; padding:.2rem .35rem; }
.tc-subir-doc{ display:flex; gap:.6rem; flex-wrap:wrap; align-items:center; }
.tc-datos{ margin:0; display:grid; grid-template-columns:100px 1fr; gap:.5rem .8rem; font-size:.88rem; }
.tc-datos dt{ color:var(--muted); font-size:.74rem; text-transform:uppercase; letter-spacing:.05em; font-weight:700; padding-top:2px; }
.tc-datos dd{ margin:0; word-break:break-word; }
.tc-datos a{ color:var(--azul); }
.tc-acciones{ display:flex; flex-direction:column; gap:.6rem; }
.tc-check{ display:flex !important; gap:.5rem; align-items:center; font-size:.85rem; margin:.4rem 0; cursor:pointer; }
.tc-check-grande{ font-size:1rem; font-weight:600; }
.tc-cancelar summary{ cursor:pointer; color:var(--rojo); font-weight:600; font-size:.88rem; padding:.4rem 0; }
.tc-cancelar textarea{ width:100%; margin:.5rem 0; padding:.6rem; border:1.5px solid var(--linea); border-radius:var(--r-md); }
.tc-historial{ list-style:none; padding:0; margin:0; font-size:.84rem; max-height:320px; overflow:auto; }
.tc-historial li{ padding:.5rem 0; border-bottom:1px solid var(--linea-2); }
.tc-dias-check{ display:flex; flex-wrap:wrap; gap:.5rem; }
.tc-dias-check label{ display:inline-flex !important; align-items:center; gap:.4rem; padding:.55rem .9rem; border:1.5px solid var(--linea); border-radius:var(--r-md); cursor:pointer; font-weight:600; }
.tc-dias-check label:has(input:checked){ background:var(--azul); color:#fff; border-color:var(--azul); }
.tc-preview{ display:grid; gap:.5rem; font-size:.9rem; }
.tc-chip{ display:inline-block; background:var(--hielo); border-radius:999px; padding:.15rem .6rem; margin-left:.35rem; font-size:.8rem; font-weight:700; color:var(--azul); }

/* Login */
.page-login{ min-height:100vh; display:flex; align-items:center; justify-content:center; background:linear-gradient(160deg,var(--hielo) 0%,#fff 55%,var(--hielo-2) 100%); padding:2rem; }
.login-box{ width:100%; max-width:400px; background:#fff; border:1px solid var(--linea-2); border-radius:var(--r-xl); padding:2.4rem 2.2rem; box-shadow:var(--sh-2); }
.login-brand{ text-align:center; margin-bottom:1.6rem; }
.login-brand .brand-mark{ margin:0 auto .9rem; width:52px; height:52px; font-size:1.2rem; }
.login-brand h1{ font-size:1.3rem; margin:0 0 .2rem; }
.login-brand p{ color:var(--muted); font-size:.9rem; margin:0; }
.login-form label{ display:block; font-size:.78rem; font-weight:700; text-transform:uppercase; letter-spacing:.05em; color:var(--muted); margin-bottom:1rem; }
.login-form input{ width:100%; margin-top:.35rem; padding:.85rem 1rem; font-size:.95rem; border:1.5px solid var(--linea); border-radius:var(--r-md); }
.login-form input:focus{ outline:none; border-color:var(--azul); box-shadow:0 0 0 3px rgba(14,99,196,.14); }
.login-foot{ text-align:center; margin-top:1.4rem; font-size:.85rem; }
.login-foot a{ color:var(--azul); font-weight:600; }

/* ===== Responsive ===== */
@media (max-width:1140px){
  .nav{ gap:1.05rem; }
  .nav a{ font-size:.86rem; }
  .areas-destacadas{ grid-template-columns:repeat(3,1fr); }
  .tc-pasos-grid{ grid-template-columns:repeat(2,1fr); }
  .int-paises{ grid-template-columns:repeat(2,1fr); }
}
@media (max-width:1020px){
  .nav{ display:none; }
  .nav.abierto{ display:flex; position:absolute; top:100%; left:0; right:0; background:#fff; flex-direction:column; align-items:stretch; gap:0; padding:.8rem 2rem 1.4rem; border-bottom:1px solid var(--linea); box-shadow:var(--sh-2); }
  .nav.abierto a{ padding:.8rem 0; border-bottom:1px solid var(--linea-2); font-size:1rem; }
  .nav.abierto a.activa::after{ display:none; }
  .nav.abierto .boton-cita{ margin-top:.8rem; text-align:center; border-bottom:0; }
  .menu-toggle{ display:block; }
  .hero{ padding:2.6rem 0 3.4rem; }
  .hero-grid,.tc-hero-grid,.sobre-grid,.media-grid,.cita-split,.contacto-grid,.contenido-pagina{ grid-template-columns:1fr; gap:2.4rem; }
  .media-grid.invertido > :first-child{ order:0; }
  .hero-visual{ align-items:center; }
  .hero-foto-wrap{ max-width:400px; }
  .intro-seccion{ grid-template-columns:1fr; gap:1rem; }
  .especialidades-grid,.testimonios-grid,.hospitales,.tarifa-grid,.int-viaje{ grid-template-columns:1fr; }
  .cta-grande{ grid-template-columns:1fr; padding:2.6rem 1.8rem; }
  .cta-grande .ctas{ align-items:stretch; }
  .pie-grid{ grid-template-columns:1fr 1fr; gap:1.8rem; }
  .contenido-editorial{ grid-template-columns:1fr; gap:1.6rem; }
  .indice-lateral,.sidebar-cita,.cta-tuotempo{ position:static; }
  .tc-ficha{ grid-template-columns:1fr; }
  section{ padding:3.4rem 0; }
  .page-admin{ flex-direction:column; }
  .admin-sidebar{ width:100%; height:auto; position:static; flex-direction:row; align-items:center; flex-wrap:wrap; gap:.4rem; }
  .admin-sidebar nav{ flex-direction:row; flex-wrap:wrap; }
  .admin-brand{ border:none; padding-bottom:.3rem; margin:0; }
  .admin-user{ border:none; padding:0; margin-left:auto; }
  .admin-main{ padding:1.4rem 1.1rem; }
}
@media (max-width:640px){
  .wrap,.wrap-narrow{ padding:0 1.1rem; }
  body{ font-size:16px; }
  .topbar .solo-escritorio{ display:none; }
  .logo{ font-size:.95rem; }
  .logo img{ width:36px; }
  .lang-switch a{ padding:.28rem .45rem; font-size:.7rem; }
  .areas-destacadas,.tc-pasos-grid,.int-paises,.tarjetas-tratamiento,.form-grid,.campos-fila,.grid-2,.paciente-info{ grid-template-columns:1fr; }
  .hero-credenciales{ grid-template-columns:1fr 1fr 1fr; gap:.7rem; }
  .hero-credenciales strong{ font-size:1.35rem; }
  .pie-grid{ grid-template-columns:1fr; }
  .tc-card,.tc-formulario,.cita-principal,.form-alternativo{ padding:1.5rem 1.2rem; }
  .tc-banco > div{ grid-template-columns:1fr; gap:.2rem; }
  .tc-cita{ grid-template-columns:1fr; }
  .tc-top-in .logo span{ display:none; }
  .wa-flotante{ width:52px; height:52px; right:14px; bottom:14px; }
  .table{ display:block; overflow-x:auto; }
}

/* ===== Accesibilidad ===== */
@media (prefers-reduced-motion:reduce){ *{ animation:none !important; transition:none !important; scroll-behavior:auto !important; } }
:focus-visible{ outline:2px solid var(--azul); outline-offset:3px; border-radius:var(--r-sm); }
.tc-nota a{ color:var(--azul); font-weight:600; }
@media (max-width:640px){
  .topbar a[href^="mailto:"], .topbar .sep{ display:none; }
  .topbar a{ white-space:nowrap; }
}

/* ---------- Aviso de cookies ---------- */
.oe-cookies{ position:fixed; left:1rem; right:1rem; bottom:1rem; z-index:1000; max-width:640px; margin:0 auto;
  background:#fff; color:var(--tinta); border:1px solid var(--hielo-2); border-radius:14px;
  box-shadow:0 18px 50px rgba(10,42,62,.18); padding:1rem 1.2rem; display:flex; gap:1rem; align-items:center; font-size:.9rem; }
.oe-cookies p{ margin:0; line-height:1.5; }
.oe-cookies a{ color:var(--azul); font-weight:600; }
.oe-cookies-botones{ display:flex; gap:.5rem; flex-shrink:0; }
.oe-cookies button{ font:inherit; font-weight:600; padding:.6rem 1.1rem; border-radius:10px; cursor:pointer;
  border:1px solid var(--azul); background:#fff; color:var(--azul); }
.oe-cookies button[data-v="si"]{ background:var(--azul); color:#fff; }
.oe-cookies button:focus-visible{ outline:3px solid var(--cian); outline-offset:2px; }
@media (max-width:640px){
  .oe-cookies{ flex-direction:column; align-items:stretch; left:.6rem; right:.6rem; bottom:.6rem; }
  .oe-cookies-botones button{ flex:1; }
}
.legal-text table.tabla-legal{ width:100%; border-collapse:collapse; margin:1rem 0 1.4rem; font-size:.9rem; display:block; overflow-x:auto; }
.legal-text .tabla-legal th,.legal-text .tabla-legal td{ text-align:left; vertical-align:top; padding:.6rem .7rem; border-bottom:1px solid var(--hielo-2); }
.legal-text .tabla-legal th{ background:var(--hielo); font-weight:600; color:var(--tinta); }
.legal-text h3{ margin-top:1.4rem; }

/* ---------- Franja de confianza ---------- */
.franja-confianza{ background:#fff; border-bottom:1px solid var(--hielo-2); border-top:1px solid var(--hielo-2); font-size:.86rem; color:var(--tinta); }
.franja-confianza .wrap{ display:flex; flex-wrap:wrap; align-items:center; justify-content:center; gap:.5rem 1.6rem; padding-top:.85rem; padding-bottom:.85rem; }
.franja-confianza a,.franja-confianza span{ color:inherit; text-decoration:none; display:inline-flex; align-items:center; gap:.35rem; white-space:nowrap; }
.franja-confianza a:hover{ color:var(--azul); }
.franja-confianza .fr-estrellas{ color:#F5A623; letter-spacing:1px; font-size:.95rem; }
.franja-confianza strong{ font-weight:700; }
.franja-confianza > .wrap > *:not(:last-child)::after{ content:""; display:inline-block; width:4px; height:4px; border-radius:50%; background:var(--hielo-2); margin-left:1.25rem; }
@media (max-width:640px){
  .franja-confianza .wrap{ justify-content:flex-start; gap:.45rem 1rem; font-size:.82rem; }
  .franja-confianza > .wrap > *::after{ display:none !important; }
  .franja-confianza span:nth-of-type(2){ display:none; }
}

/* ---------- Barra Llamar / WhatsApp ---------- */
.barra-contacto{ position:fixed; right:18px; bottom:18px; z-index:90; display:flex; gap:.5rem; transition:transform .25s, opacity .25s; }
.barra-contacto a{ display:inline-flex; align-items:center; gap:.45rem; padding:.75rem 1.15rem; border-radius:999px; font-weight:600; font-size:.95rem; color:#fff; text-decoration:none; box-shadow:0 10px 24px -6px rgba(10,42,62,.4); }
.barra-contacto .bc-llamar{ background:var(--azul); }
.barra-contacto .bc-wa{ background:#1FA855; }
.barra-contacto a:hover{ filter:brightness(1.07); }
.barra-contacto.oculta{ transform:translateY(140%); opacity:0; pointer-events:none; }
@media (max-width:640px){
  .barra-contacto{ left:0; right:0; bottom:0; gap:0; box-shadow:0 -6px 20px rgba(10,42,62,.15); }
  .barra-contacto a{ flex:1; justify-content:center; border-radius:0; padding:.95rem .5rem; box-shadow:none; font-size:1rem; }
  body{ padding-bottom:56px; }
}
@media print{ .barra-contacto,.oe-cookies{ display:none; } }
.franja-confianza .wrap{ gap:.5rem 1rem; font-size:.84rem; }
.franja-confianza > .wrap > *:not(:last-child)::after{ margin-left:1rem; }
@media (max-width:1180px){ .franja-confianza span:nth-of-type(2){ display:none; } }
@media (max-width:640px){ .franja-confianza a,.franja-confianza span{ white-space:normal; } }
.franja-confianza span:nth-of-type(2){ display:none; }
