/* TheraVet — estilos del sitio (rediseño v3, oct-2026)
   Línea: Happy Tails llevada a TheraVet. Franjas de color de lado a lado (no paneles flotando),
   héroe con foto dominante y titular enorme, palabra fantasma, lista de servicios en franja crema,
   tarjetas con foto, equipo con nombre sobre la foto, pie oscuro.
   Colores: azul marino suave + turquesa del logo + acento turquesa del logo (13-oct, pedido de Angélica).
   Tipografía: DM Serif Display (títulos, desde 13-oct) + Manrope (texto). Celular primero. Sin librerías. */
:root{
  /* ===== ACENTO: para cambiar el color de acento de TODO el sitio edita SOLO estas 2 líneas ===== */
  --acento:#00799C;        /* turquesa del logo (un poco más oscuro para que el texto blanco se lea) */
  --acento-osc:#005F7C;    /* turquesa oscuro */
  /* ===== derivados del acento (no hace falta tocarlos) ===== */
  --acento-sobre:#FFFFFF;  /* color del texto que va ENCIMA del acento (blanco: contraste 5:1 sobre turquesa) */
  --acento-texto:#00546E;  /* acento como texto pequeño sobre blanco (se recalcula abajo con color-mix) */
  --acento-suave:#E2F1F6;  /* tinte muy claro del acento */
  --crema:#EEF6F9;         /* franja crema */
  /* ===== marca ===== */
  --marino:#163A72;
  --marino-osc:#0E2A5A;
  --azul:#17417F;
  --turquesa:#1B8DB3;
  --turquesa-osc:#126A8A;
  --turquesa-claro:#E3F3F8;
  --hielo:#A9DCEC;
  --bruma:#F2F6FA;
  --tinta:#15213A;
  --gris:#54607A;
  --linea:#E1E6EC;
  --blanco:#fff;
  --wa:#128A43; --wa-hover:#0E7337;
  /* tipografía y forma */
  --titulo:"DM Serif Display",Georgia,"Times New Roman",serif;
  --texto:"Manrope",system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
  --ancho:76rem;
  --r-xl:32px; --r-lg:24px; --r-md:16px; --r-campo:14px;
  --sombra:0 24px 50px -24px rgba(22,58,114,.35);
  --sombra-suave:0 10px 30px -16px rgba(22,58,114,.22);
  --curva:cubic-bezier(.22,.8,.2,1);
}
@supports (color:color-mix(in srgb,red,blue)){
  :root{
    --acento-texto:color-mix(in srgb,var(--acento-osc) 66%,#000);
    --acento-suave:color-mix(in srgb,var(--acento) 13%,#fff);
    --crema:color-mix(in srgb,var(--acento) 9%,#FBF9F5);
  }
}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:5.5rem}
body{margin:0;background:var(--blanco);color:var(--tinta);font-family:var(--texto);font-size:1.0625rem;line-height:1.6;-webkit-font-smoothing:antialiased;overflow-x:hidden}
@media (min-width:60em){body{font-size:1.125rem}}
img{max-width:100%;height:auto;display:block}
a{color:var(--azul);text-underline-offset:.2em;text-decoration-thickness:1px}
a:hover{color:var(--acento-texto)}
:focus-visible{outline:3px solid var(--turquesa);outline-offset:3px;border-radius:8px}
h1,h2,h3,h4{font-family:var(--titulo);color:var(--marino);margin:0 0 .5em;letter-spacing:-.025em}
h1{font-weight:400;font-size:clamp(2.8rem,9.5vw,5.6rem);line-height:.98;letter-spacing:-.04em}
h2{font-weight:400;font-size:clamp(2rem,5vw,3.3rem);line-height:1.04;letter-spacing:-.03em}
h3{font-weight:600;font-size:1.3rem;line-height:1.25;margin-bottom:.35em;letter-spacing:-.015em}
h4{font-weight:600;font-size:1.05rem}
p{margin:0 0 1em}
ul,ol{margin:0;padding:0;list-style:none}
strong{font-weight:700}
table{font-size:inherit}
.saltar{position:absolute;left:-999px;top:0;background:var(--marino);color:#fff;padding:.6rem 1rem;z-index:100;border-radius:0 0 10px 0}
.saltar:focus{left:8px;top:8px;color:#fff}
.envoltura{max-width:var(--ancho);margin:0 auto;padding:0 1rem}
@media (min-width:40em){.envoltura{padding:0 2rem}}
.estrecha{max-width:48rem}
.seccion{padding:4.5rem 0}
@media (min-width:56em){.seccion{padding:6.5rem 0}}
.seccion--corta{padding-top:0}
.seccion--niebla{background:var(--bruma)}
.seccion--alerta{background:#fff}
.lead{font-size:1.15rem;color:var(--gris);max-width:40rem;line-height:1.55}
.nota{font-size:.95rem;color:var(--gris)}
.centrado{text-align:center;margin-left:auto;margin-right:auto}
.titular{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:.75rem 2rem;margin-bottom:2.5rem}
.titular h2{margin:0;max-width:22ch}
.titular .lead{margin:.6rem 0 0}
.titular--centro{flex-direction:column;align-items:center;text-align:center}
.titular--centro h2{max-width:24ch}
.titular--centro .lead{margin-left:auto;margin-right:auto}
.etiqueta{display:inline-flex;align-items:center;gap:.4rem;font-size:.85rem;font-weight:700;color:var(--acento-texto);background:var(--acento-suave);border:1px solid color-mix(in srgb,var(--acento) 45%,#fff);border-radius:999px;padding:.3rem .9rem;margin-bottom:1rem;letter-spacing:.01em}
.etiqueta::before{content:"";width:.5rem;height:.5rem;border-radius:50%;background:var(--acento)}
.pend{background:#FFF1A8;color:#4A3B00;border:1px dashed #B89200;border-radius:6px;padding:0 .3em;font-size:.88em;font-weight:700}
.dos-col{display:grid;gap:2.5rem}
@media (min-width:56em){.dos-col{grid-template-columns:1fr 1fr;gap:5rem}.dos-col--centro{align-items:center}}

/* ---------- franjas de color de lado a lado ---------- */
.banda{position:relative;overflow:hidden}
.banda--crema{background:var(--crema)}
.banda--bruma{background:var(--bruma)}
.banda--marino{background:var(--marino);color:#E8EEF7}
.banda--marino h2,.banda--marino h3{color:#fff}
.banda--marino p{color:rgba(255,255,255,.86)}
.banda--marino a:not(.btn){color:var(--hielo)}
.banda--turquesa{background:var(--turquesa);color:#fff}
.banda--turquesa h2,.banda--turquesa h3{color:#fff}
.banda--acento{background:var(--acento);color:var(--acento-sobre)}
.banda--acento h2,.banda--acento h3{color:var(--acento-sobre)}
/* palabra gigante decorativa */
.fantasma{position:absolute;z-index:0;font-family:var(--titulo);font-weight:400;font-size:clamp(5rem,22vw,20rem);line-height:1;letter-spacing:-.05em;color:rgba(255,255,255,.1);pointer-events:none;user-select:none;white-space:nowrap}
.fantasma--tinta{color:rgba(22,58,114,.06)}

/* ---------- botones ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.55rem;min-height:50px;padding:.8rem 1.5rem;border-radius:999px;border:1.5px solid transparent;font:700 1rem/1.2 var(--texto);text-decoration:none;cursor:pointer;transition:background-color .2s,color .2s,border-color .2s,transform .25s var(--curva),box-shadow .25s}
.btn:hover{transform:translateY(-2px)}
.btn .ico{width:1.25em;height:1.25em;flex:none}
.btn--wa,.btn--acento{background:var(--acento);color:var(--acento-sobre);box-shadow:0 12px 24px -12px color-mix(in srgb,var(--acento) 70%,transparent)}
.btn--wa:hover,.btn--acento:hover{background:color-mix(in srgb,var(--acento) 86%,#000);color:var(--acento-sobre)}
.btn--marino{background:var(--marino);color:#fff}
.btn--marino:hover{background:var(--azul);color:#fff}
.btn--claro,.btn--blanco{background:#fff;color:var(--marino)}
.btn--claro:hover,.btn--blanco:hover{background:var(--turquesa-claro);color:var(--marino)}
.btn--linea{background:transparent;color:var(--marino);border-color:rgba(22,58,114,.35)}
.btn--linea:hover{background:var(--marino);border-color:var(--marino);color:#fff}
.btn--linea-clara{background:transparent;color:#fff;border-color:rgba(255,255,255,.55)}
.btn--linea-clara:hover{background:#fff;color:var(--marino)}
.btn--sm{min-height:44px;padding:.55rem 1.1rem;font-size:.95rem}
.btn--grande,.btn--xl{min-height:58px;padding:1rem 1.8rem;font-size:1.06rem}
.banda--acento .btn--wa{background:var(--marino);color:#fff;box-shadow:0 14px 30px -14px rgba(0,0,0,.45)}
.banda--acento .btn--wa:hover{background:var(--marino-osc);color:#fff}
.enlace{font-weight:700;color:var(--azul);text-decoration:none;display:inline-flex;align-items:center;gap:.45rem;border-bottom:2px solid rgba(23,65,127,.22);padding-bottom:.1rem;transition:border-color .2s,color .2s,gap .2s}
.enlace:hover{color:var(--acento-texto);border-bottom-color:var(--acento);gap:.7rem}
.enlace .icono{width:1.1em;height:1.1em}
.enlace--claro{color:#fff;border-bottom-color:rgba(255,255,255,.35)}
.enlace--claro:hover{color:#fff;border-bottom-color:#fff}
.enlace--grande{font-size:1.3rem}
.botones-linea{display:flex;flex-wrap:wrap;gap:.75rem 1.25rem;align-items:center}
.icono{width:1.4rem;height:1.4rem;display:block}
.ir{width:3rem;height:3rem;border-radius:50%;display:grid;place-items:center;flex:none;transition:background-color .25s,color .25s,transform .3s var(--curva)}
.ir .icono{width:1.3rem;height:1.3rem}
.pastilla{display:inline-block;border:1px solid color-mix(in srgb,var(--acento) 55%,#fff);color:var(--acento-texto);background:var(--acento-suave);border-radius:999px;padding:.2rem .75rem;font-size:.85rem;font-weight:700;line-height:1.5}

/* ---------- encabezado: cápsula blanca flotante sobre el héroe ---------- */
.top{position:sticky;top:0;z-index:40;padding:.65rem .65rem 0;pointer-events:none}
.top__in{pointer-events:auto;max-width:var(--ancho);margin:0 auto;display:flex;align-items:center;gap:.5rem;padding:.4rem .45rem .4rem 1rem;background:rgba(255,255,255,.96);-webkit-backdrop-filter:blur(12px) saturate(1.3);backdrop-filter:blur(12px) saturate(1.3);border-radius:999px;box-shadow:var(--sombra-suave);transition:box-shadow .3s}
.top--baja .top__in{box-shadow:0 16px 36px -16px rgba(22,58,114,.4)}
.top__logo{display:block;flex:none}
.top__logo img{height:34px;width:auto}
.nav-escritorio{display:none}
.top__wa{margin-left:auto}
.menu{order:3;position:relative}
.menu summary{list-style:none;display:flex;align-items:center;gap:.45rem;min-height:44px;padding:0 .8rem;border-radius:999px;cursor:pointer;font-weight:700;color:var(--marino)}
.menu summary::-webkit-details-marker{display:none}
.menu summary:hover{background:var(--bruma)}
.menu__bars,.menu__bars::before,.menu__bars::after{display:block;width:18px;height:2px;background:var(--marino);border-radius:2px;position:relative;transition:transform .2s,background-color .2s}
.menu__bars::before,.menu__bars::after{content:"";position:absolute;left:0}
.menu__bars::before{top:-6px}.menu__bars::after{top:6px}
.menu[open] .menu__bars{background:transparent}
.menu[open] .menu__bars::before{top:0;transform:rotate(45deg)}
.menu[open] .menu__bars::after{top:0;transform:rotate(-45deg)}
.menu nav{position:absolute;right:0;top:calc(100% + .6rem);min-width:16rem;background:#fff;border-radius:var(--r-lg);box-shadow:var(--sombra);padding:.6rem 1.1rem}
.menu nav a{display:block;padding:.75rem .2rem;font-family:var(--titulo);font-weight:400;font-size:1.15rem;color:var(--marino);text-decoration:none}
.menu nav li+li a{border-top:1px solid var(--linea)}
.menu nav a[aria-current="page"]{color:var(--acento-texto)}
@media (max-width:30em){.menu__lbl{display:none}.top__wa span{display:none}.top__wa{padding:.5rem .8rem}.menu summary{padding:0 .6rem}}
@media (max-width:23em){.top__logo img{height:30px}}
@media (min-width:72em){
  .top{padding:1.2rem 1.5rem 0}
  .top__in{padding:.5rem .55rem .5rem 1.4rem}
  .top__logo img{height:40px}
  .menu{display:none}
  .nav-escritorio{display:block;margin-left:auto}
  .nav-escritorio ul{display:flex;gap:.1rem}
  .nav-escritorio a{display:block;padding:.55rem .8rem;border-radius:999px;font-weight:600;font-size:.95rem;color:var(--marino);text-decoration:none;transition:background-color .2s,color .2s;white-space:nowrap}
  .nav-escritorio a:hover{background:var(--bruma);color:var(--marino)}
  .nav-escritorio a[aria-current="page"]{background:var(--acento-suave);color:var(--acento-texto)}
  .top__wa{margin-left:.4rem}
}

/* ---------- héroe de portada: franja marina de lado a lado con la foto dominante ---------- */
.heroe{position:relative;overflow:hidden;background:var(--marino);color:#fff;margin-top:-4.3rem;padding-bottom:4.5rem}
.heroe__foto{position:relative;aspect-ratio:4/5;max-height:78svh}
.heroe__foto img{width:100%;height:100%;object-fit:cover;object-position:55% 38%}
.heroe__foto::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(14,42,90,.5) 0%,rgba(14,42,90,0) 32%,rgba(22,58,114,0) 70%,var(--marino) 100%)}
.heroe__txt{position:relative;z-index:2;padding:0 1rem 2.5rem}
.heroe h1{color:#fff;margin:0 0 .4em;max-width:11ch}
.heroe h1 em{font-style:normal;color:var(--acento)}
.heroe__sub{font-size:1.15rem;line-height:1.5;color:rgba(255,255,255,.86);max-width:36ch;margin-bottom:1.6rem}
.heroe__btns{display:flex;flex-wrap:wrap;gap:.7rem;margin-bottom:2rem}
.datos{display:grid;gap:.6rem;padding-top:1.3rem;border-top:1px solid rgba(255,255,255,.18)}
.datos li{display:flex;align-items:center;gap:.65rem;font-size:.98rem;color:rgba(255,255,255,.88)}
.datos li::before{content:"";width:8px;height:8px;border-radius:50%;background:var(--acento);flex:none}
.datos strong{color:#fff}
.mini{position:relative;z-index:3;display:grid;grid-template-columns:auto 1fr;gap:.2rem 1rem;align-items:center;margin:0 1rem;padding:1rem 1.1rem;background:rgba(255,255,255,.12);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border:1px solid rgba(255,255,255,.22);border-radius:var(--r-md);color:#fff;text-decoration:none;transition:background-color .25s,transform .3s var(--curva)}
.mini:hover{background:rgba(255,255,255,.2);color:#fff;transform:translateY(-3px)}
.mini .ir{background:#fff;color:var(--marino);grid-row:1/3}
.mini:hover .ir{background:var(--acento);color:var(--acento-sobre);transform:rotate(-45deg)}
.mini strong{display:block;font-size:1.05rem;line-height:1.2}
.mini span{font-size:.92rem;color:rgba(255,255,255,.8)}
.heroe .fantasma{right:-.1em;bottom:-.18em;font-size:clamp(6rem,30vw,24rem)}
@media (min-width:56em){
  .heroe{margin-top:-5.4rem;min-height:min(96svh,60rem);display:flex;align-items:center;padding-bottom:0}
  .heroe__foto{position:absolute;inset:0 0 0 auto;width:60%;aspect-ratio:auto;max-height:none;height:100%}
  .heroe__foto img{object-position:55% 30%}
  .heroe__foto::after{background:linear-gradient(90deg,var(--marino) 0%,rgba(22,58,114,.6) 12%,rgba(22,58,114,0) 40%),linear-gradient(0deg,rgba(22,58,114,.85) 0%,rgba(22,58,114,0) 35%)}
  .heroe__txt{width:52%;padding:7rem 2rem 7.5rem max(2rem,calc((100vw - var(--ancho)) / 2 + 2rem))}
  .heroe h1{max-width:10ch;font-size:clamp(3.4rem,6.4vw,6rem)}
  .heroe__sub{font-size:1.2rem}
  .mini{position:absolute;right:max(12rem,calc((100vw - var(--ancho)) / 2 + 12rem));bottom:3rem;margin:0;width:20rem}
  .heroe .fantasma{right:max(1rem,calc((100vw - var(--ancho)) / 2));bottom:-.22em;font-size:clamp(9rem,15vw,16rem);color:rgba(255,255,255,.12)}
}
@media (min-width:56em) and (max-width:72em){.heroe{margin-top:-4.5rem}}

/* ---------- franja de datos rápidos ---------- */
.hechos{background:#fff}
.hechos ul{display:grid}
.hechos li{padding:1.25rem 0;border-top:1px solid var(--linea);display:flex;gap:.9rem;align-items:flex-start;color:var(--gris);font-size:.98rem;line-height:1.45}
.hechos li:first-child{border-top:0}
.hechos li strong{display:block;font-family:var(--titulo);color:var(--marino);font-size:1.15rem;letter-spacing:-.01em}
.hechos .icono{color:var(--turquesa-osc);flex:none;margin-top:.15rem}
@media (min-width:48em){.hechos ul{grid-template-columns:repeat(2,1fr);gap:0 2rem}.hechos li:nth-child(2){border-top:0}}
@media (min-width:62em){.hechos ul{grid-template-columns:repeat(4,1fr);gap:0 2.5rem}.hechos li{padding:2rem 0;border-top:0}}

/* ---------- tarjetas con foto (3 pilares) ---------- */
.pilares{display:grid;gap:1.25rem}
.pilar{position:relative;display:flex;flex-direction:column;background:#fff;border:1px solid var(--linea);border-radius:var(--r-lg);overflow:hidden;text-decoration:none;color:var(--tinta);transition:transform .35s var(--curva),box-shadow .35s,border-color .35s}
.pilar:hover{transform:translateY(-6px);box-shadow:var(--sombra);border-color:transparent;color:var(--tinta)}
.pilar__foto{position:relative;aspect-ratio:4/3;overflow:hidden;background:var(--bruma)}
.pilar__foto img{width:100%;height:100%;object-fit:cover;transition:transform .8s var(--curva)}
.pilar:hover .pilar__foto img{transform:scale(1.04)}
.pilar__foto .pastilla{position:absolute;left:1rem;top:1rem;background:rgba(255,255,255,.92);border-color:transparent}
.pilar__cuerpo{display:flex;flex-direction:column;flex:1;padding:1.5rem 1.5rem 1.5rem}
.pilar h3{font-size:1.5rem;font-weight:600;letter-spacing:-.025em;margin-bottom:.5rem}
.pilar p{color:var(--gris);margin:0 0 1.25rem;font-size:1rem}
.pilar .ir{margin-top:auto;background:var(--bruma);color:var(--marino);width:2.75rem;height:2.75rem}
.pilar:hover .ir{background:var(--acento);color:var(--acento-sobre);transform:rotate(-45deg)}
@media (min-width:48em){.pilares{grid-template-columns:repeat(3,1fr);gap:1.5rem}}

/* ---------- lista de servicios (franja crema con palabra fantasma y etiquetas flotantes) ---------- */
.servicios-franja .envoltura{position:relative;z-index:1}
.servicios-franja .fantasma{left:50%;top:1.5rem;transform:translateX(-50%);font-size:clamp(4.5rem,16vw,15rem);color:rgba(22,58,114,.07)}
.servicios-franja .titular--centro{position:relative;padding-top:clamp(3rem,10vw,8rem);margin-bottom:2rem}
.flotantes{position:absolute;left:0;right:0;top:0;height:clamp(3rem,10vw,8rem);pointer-events:none}
.flotantes span{position:absolute;background:#fff;color:var(--marino);font-weight:700;font-size:.85rem;padding:.4rem .9rem;border-radius:999px;box-shadow:var(--sombra-suave);white-space:nowrap}
.flotantes span:nth-child(1){left:3%;top:20%;transform:rotate(-10deg)}
.flotantes span:nth-child(2){right:4%;top:10%;transform:rotate(8deg)}
.flotantes span:nth-child(3){left:17%;top:72%;transform:rotate(5deg)}
.flotantes span:nth-child(4){right:15%;top:66%;transform:rotate(-7deg)}
@media (max-width:48em){.flotantes span:nth-child(3),.flotantes span:nth-child(4){display:none}}
.lista-serv{border-top:1px solid rgba(22,58,114,.18)}
.lista-serv li{border-bottom:1px solid rgba(22,58,114,.18)}
.lista-serv a{display:grid;grid-template-columns:2.5rem 1fr auto;grid-template-areas:"ic n ir" "ic f ir" "ic p ir";column-gap:1rem;row-gap:.2rem;align-items:center;padding:1.4rem .5rem;text-decoration:none;color:var(--tinta);border-radius:var(--r-lg);transition:background-color .3s,padding .3s var(--curva)}
.lista-serv__ic{grid-area:ic;align-self:start;margin-top:.5rem;color:var(--acento-texto)}
.lista-serv__ic .icono{width:1.5rem;height:1.5rem}
.lista-serv__n{grid-area:n;font-family:var(--titulo);font-weight:400;font-size:clamp(1.5rem,4.6vw,2.3rem);line-height:1.08;letter-spacing:-.03em;color:var(--marino);transition:color .3s}
.lista-serv__f{grid-area:f;color:var(--gris);font-size:1rem;max-width:48ch}
.lista-serv__p{grid-area:p;font-weight:700;color:var(--acento-texto);font-size:1rem}
.lista-serv__ir{grid-area:ir;display:inline-flex;align-items:center;gap:.4rem;background:#fff;color:var(--marino);font-weight:700;font-size:.9rem;padding:.6rem 1rem;border-radius:999px;box-shadow:var(--sombra-suave);transition:background-color .3s,color .3s;white-space:nowrap}
.lista-serv__ir .icono{width:1rem;height:1rem}
.lista-serv a:hover{background:#fff}
.lista-serv a:hover .lista-serv__ir{background:var(--marino);color:#fff}
.lista-serv a:hover .lista-serv__n{color:var(--acento-texto)}
@media (min-width:64em){
  .lista-serv a{grid-template-columns:3rem 22rem 1fr 13rem auto;grid-template-areas:"ic n f p ir";column-gap:2rem;padding:1.6rem 1.25rem}
  .lista-serv__n{font-size:clamp(1.5rem,2.6vw,2.1rem)}
  .lista-serv a:hover{padding-left:1.75rem}
  .lista-serv__ic{align-self:center;margin:0}
  .lista-serv__p{text-align:right;white-space:nowrap}
}
.banda--bruma .lista-serv a:hover,.seccion .lista-serv a:hover{background:var(--crema)}

/* ---------- rejilla de servicios: tarjetas de color sólido ---------- */
.cartas{display:grid;gap:1rem}
.carta{position:relative;display:flex;flex-direction:column;min-height:15.5rem;padding:1.75rem 1.6rem;border-radius:var(--r-lg);text-decoration:none;color:#fff;background:var(--marino);transition:transform .35s var(--curva),box-shadow .35s}
.carta:hover{transform:translateY(-6px);box-shadow:var(--sombra);color:#fff}
.carta--turquesa{background:var(--turquesa)}
.carta--turquesa-osc{background:var(--turquesa-osc)}
.carta--marino-osc{background:var(--marino-osc)}
.carta--blanca{background:#fff;color:var(--tinta);border:1px solid var(--linea)}
.carta--blanca:hover{color:var(--tinta)}
.carta--acento{background:var(--acento);color:var(--acento-sobre)}
.carta--acento:hover{color:var(--acento-sobre)}
.carta .n{font-family:var(--titulo);font-weight:400;font-size:1.5rem;line-height:1.1;letter-spacing:-.025em;margin-bottom:.6rem;max-width:12ch}
.carta .f{font-size:1rem;line-height:1.5;opacity:.88;max-width:28ch}
.carta .p{margin-top:auto;padding-top:1.5rem;font-weight:700;font-size:1.05rem;padding-right:3.5rem}
.carta .ir{position:absolute;right:1.25rem;bottom:1.25rem;background:rgba(255,255,255,.18);color:#fff}
.carta--blanca .ir{background:var(--marino);color:#fff}
.carta--acento .ir{background:rgba(14,42,90,.14);color:var(--acento-sobre)}
.carta:hover .ir{background:#fff;color:var(--marino);transform:rotate(-45deg)}
.carta--blanca:hover .ir{background:var(--acento);color:var(--acento-sobre)}
.carta--acento:hover .ir{background:var(--marino);color:#fff}
@media (min-width:40em){.cartas{grid-template-columns:repeat(2,1fr);gap:1.25rem}}
@media (min-width:62em){.cartas{grid-template-columns:repeat(3,1fr)}}

/* ---------- franja marina: diagnóstico por imagen ---------- */
.diag .envoltura{display:grid;gap:2.5rem;position:relative;z-index:1}
.diag h2{max-width:16ch}
.diag p{max-width:48ch}
.lista-precios{margin:1.75rem 0 2rem;max-width:30rem}
.lista-precios li{display:flex;justify-content:space-between;gap:1rem;align-items:baseline;padding:.8rem 0;border-top:1px solid rgba(255,255,255,.18)}
.lista-precios li:last-child{border-bottom:1px solid rgba(255,255,255,.18)}
.lista-precios strong{font-family:var(--titulo);font-weight:400;font-size:1.2rem;white-space:nowrap;color:var(--acento)}
.banda--marino .btn--claro{color:var(--marino)}
.diag__foto{margin:0;border-radius:var(--r-lg);overflow:hidden;aspect-ratio:1;align-self:stretch}
.diag__foto img{width:100%;height:100%;object-fit:cover}
.diag .fantasma{right:-.05em;bottom:-.2em;font-size:clamp(5rem,18vw,15rem);color:rgba(255,255,255,.06)}
@media (min-width:56em){.diag .envoltura{grid-template-columns:1.05fr .95fr;gap:5rem;align-items:center}.diag__foto{aspect-ratio:4/5;max-height:36rem}}

/* ---------- dos tarjetas grandes con foto (medicina preventiva / viajes) ---------- */
.duo{display:grid;gap:1.25rem}
.duo__tarjeta{position:relative;display:flex;flex-direction:column;justify-content:flex-end;min-height:24rem;border-radius:var(--r-xl);overflow:hidden;color:#fff;text-decoration:none;background:var(--marino);isolation:isolate}
.duo__tarjeta img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2;transition:transform .9s var(--curva)}
.duo__tarjeta:hover img{transform:scale(1.04)}
.duo__tarjeta::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,rgba(14,42,90,0) 35%,rgba(14,42,90,.9) 100%)}
.duo__tarjeta--turquesa{background:linear-gradient(160deg,var(--turquesa) 0%,var(--turquesa-osc) 100%)}
.duo__tarjeta--turquesa::after{background:linear-gradient(180deg,rgba(18,106,138,0) 40%,rgba(14,42,90,.55) 100%)}
.duo__tarjeta .fantasma{left:.2em;top:-.15em;font-size:clamp(5rem,16vw,12rem);color:rgba(255,255,255,.1)}
.duo__cuerpo{position:relative;padding:1.75rem 1.5rem}
.duo__cuerpo .pastilla{background:rgba(255,255,255,.14);border-color:rgba(255,255,255,.35);color:#fff;margin-bottom:.8rem}
.duo__tarjeta h3{color:#fff;font-size:clamp(1.6rem,4vw,2.2rem);font-weight:500;letter-spacing:-.03em;max-width:16ch;margin-bottom:.4rem}
.duo__tarjeta p{color:rgba(255,255,255,.85);margin:0 0 1.2rem;max-width:40ch;font-size:1rem}
.duo__mas{display:inline-flex;align-items:center;gap:.5rem;font-weight:700;color:#fff}
.duo__mas .icono{width:1.1rem;height:1.1rem;transition:transform .3s var(--curva)}
.duo__tarjeta:hover .duo__mas .icono{transform:translateX(5px)}
.duo__ic{position:absolute;right:1.5rem;top:1.5rem;width:4rem;height:4rem;border-radius:50%;background:rgba(255,255,255,.14);display:grid;place-items:center}
.duo__ic .icono{width:2rem;height:2rem}
@media (min-width:48em){.duo{grid-template-columns:1fr 1fr;gap:1.5rem}.duo__tarjeta{min-height:30rem}.duo__cuerpo{padding:2.5rem 2.25rem}}

/* ---------- franja turquesa: viajes ---------- */
.viaje .envoltura{display:grid;gap:1.25rem;align-items:center;padding-top:2rem;padding-bottom:2rem}
.viaje__ic{width:3.25rem;height:3.25rem;border-radius:50%;background:#fff;color:var(--turquesa-osc);display:grid;place-items:center;flex:none}
.viaje h2{font-size:1.5rem;font-weight:600;margin:0 0 .25em;letter-spacing:-.02em}
.viaje p{margin:0;color:rgba(255,255,255,.9);font-size:1rem;max-width:54ch}
.viaje__btns{display:flex;flex-wrap:wrap;gap:.6rem}
@media (min-width:62em){.viaje .envoltura{grid-template-columns:auto 1fr auto;gap:1.75rem;padding-top:2.25rem;padding-bottom:2.25rem}}

/* ---------- razones ---------- */
.razones{display:grid;gap:2rem}
.razon{padding-top:1.5rem;border-top:2px solid var(--marino)}
.razon__ic{width:3.25rem;height:3.25rem;border-radius:50%;color:#fff;display:grid;place-items:center;margin-bottom:1.1rem;background:var(--marino)}
.razon:nth-child(2) .razon__ic{background:var(--turquesa)}
.razon:nth-child(3) .razon__ic{background:var(--acento);color:var(--acento-sobre)}
.razon:nth-child(4) .razon__ic{background:var(--turquesa-osc)}
.razon h3{font-size:1.2rem}
.razon p{color:var(--gris);margin:0;font-size:1rem}
@media (min-width:48em){.razones{grid-template-columns:repeat(2,1fr);gap:3rem 2.5rem}}
@media (min-width:62em){.razones{grid-template-columns:repeat(4,1fr)}}

/* ---------- carrusel de fotos ---------- */
.galeria{overflow:hidden;padding:0 0 4.5rem}
.galeria__pista{display:flex;width:max-content;gap:1rem}
.galeria__fila{display:flex;gap:1rem}
.galeria__fila li{width:min(70vw,22rem);flex:none;border-radius:var(--r-lg);overflow:hidden;background:var(--linea)}
.galeria__fila li:nth-child(even){width:min(80vw,26rem)}
.galeria__fila img{width:100%;height:100%;object-fit:cover;aspect-ratio:4/5}
.galeria__fila li:nth-child(even) img{aspect-ratio:1;object-position:50% 30%}
@media (min-width:56em){.galeria{padding-bottom:7rem}}

/* ---------- equipo: tarjetas con el nombre sobre la foto ---------- */
.equipo{display:grid;gap:1.25rem;max-width:52rem;margin:0 auto}
.persona-tarjeta{position:relative;display:block;border-radius:var(--r-lg);overflow:hidden;aspect-ratio:4/5;background:var(--bruma);text-decoration:none;color:#fff;isolation:isolate}
.persona-tarjeta img{width:100%;height:100%;object-fit:cover;object-position:50% 15%;transition:transform .9s var(--curva)}
.persona-tarjeta:hover img{transform:scale(1.04)}
.persona-tarjeta::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(14,42,90,0) 50%,rgba(14,42,90,.88) 100%)}
.persona-tarjeta figcaption{position:absolute;left:0;right:0;bottom:0;z-index:1;padding:1.5rem}
.persona-tarjeta strong{display:block;font-family:var(--titulo);font-weight:400;font-size:1.4rem;letter-spacing:-.02em;line-height:1.1}
.persona-tarjeta span{display:block;font-size:.9rem;color:rgba(255,255,255,.85);margin-top:.3rem}
@media (min-width:40em){.equipo{grid-template-columns:1fr 1fr;gap:1.5rem}}
.equipo-cta{text-align:center;margin-top:2rem}

/* ---------- reseñas ---------- */
.resenas{display:grid;gap:1rem;margin-bottom:2rem;position:relative;z-index:1}
.resena{margin:0;background:#fff;border-radius:var(--r-lg);padding:1.75rem 1.5rem;border:1px solid rgba(22,58,114,.1);font-size:1.05rem;line-height:1.55;position:relative}
.resena::before{content:"\201C";position:absolute;top:.4rem;left:1.2rem;font:400 3.5rem/1 var(--titulo);color:var(--acento);opacity:.7}
.resena p{margin:1.4rem 0 0}
.resena > .pend{display:inline-block;margin-top:1.4rem}
@media (min-width:48em){.resenas{grid-template-columns:repeat(3,1fr);gap:1.25rem}.resenas--una{grid-template-columns:1fr}}
.opiniones .fantasma{left:50%;bottom:-.2em;transform:translateX(-50%);font-size:clamp(4.5rem,16vw,14rem);color:rgba(22,58,114,.06)}
.opiniones .botones-linea{position:relative;z-index:1}

/* ---------- cómo funciona ---------- */
.pasos{display:grid;gap:2rem;counter-reset:paso;margin:0 0 2rem}
.pasos li{position:relative;padding-left:4rem;counter-increment:paso}
.pasos li::before{content:counter(paso);position:absolute;left:0;top:0;width:3rem;height:3rem;border-radius:50%;background:var(--marino);color:#fff;font-family:var(--titulo);font-weight:400;display:grid;place-items:center;font-size:1.1rem}
.pasos li:nth-child(2)::before{background:var(--turquesa)}
.pasos li:nth-child(3)::before{background:var(--acento);color:var(--acento-sobre)}
.pasos li:nth-child(4)::before{background:var(--turquesa-osc)}
.pasos li:nth-child(5)::before{background:var(--marino-osc)}
.pasos li:nth-child(6)::before{background:var(--turquesa)}
.pasos p{margin:0;color:var(--gris);font-size:1rem}
@media (min-width:56em){
  .pasos:not(.pasos--compactos):not(.pasos--largos){grid-template-columns:repeat(3,1fr);gap:3rem}
  .pasos:not(.pasos--compactos):not(.pasos--largos) li{padding-left:0;padding-top:4.25rem}
  .pasos--largos{grid-template-columns:1fr 1fr;gap:2.25rem 3.5rem}
}

/* ---------- zonas y horario ---------- */
.zonas li{display:flex;flex-wrap:wrap;justify-content:space-between;gap:.3rem 1rem;padding:1rem 0;border-top:1px solid rgba(22,58,114,.15)}
.zonas li:last-child{border-bottom:1px solid rgba(22,58,114,.15)}
.zonas strong{font-family:var(--titulo);color:var(--marino);font-size:1.15rem;letter-spacing:-.01em}
.zonas span{color:var(--acento-texto);font-weight:700}
.horario{background:var(--marino);color:#fff;border-radius:var(--r-lg);padding:2.25rem 2rem}
.horario h3{display:flex;align-items:center;gap:.6rem;color:#fff}
.horario__h{display:block;font-family:var(--titulo);font-size:1.8rem;font-weight:400;letter-spacing:-.02em;margin:.2rem 0 .6rem;color:var(--acento)}
.horario p{color:rgba(255,255,255,.88)}
.horario p:last-child{margin:0;font-size:1rem}

/* ---------- preguntas ---------- */
.faq{border-top:1px solid var(--linea)}
.faq:last-of-type{border-bottom:1px solid var(--linea);margin-bottom:1.75rem}
.faq summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;align-items:center;gap:1rem;padding:1.15rem .25rem;font-weight:700;font-size:1.08rem;color:var(--marino);min-height:44px}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"";width:.7rem;height:.7rem;border-right:2px solid var(--acento-osc);border-bottom:2px solid var(--acento-osc);transform:rotate(45deg);flex:none;transition:transform .3s var(--curva);margin-right:.3rem}
.faq[open] summary::after{transform:rotate(225deg)}
.faq p{margin:0 0 1.2rem;padding:0 .25rem;color:var(--gris)}
.faq + .enlace{margin-top:.5rem}

/* ---------- cierre: franja de acento ---------- */
.cierre .envoltura{position:relative;text-align:center;padding-top:4.5rem;padding-bottom:5rem}
.cierre h2{max-width:16ch;margin:0 auto .3em;position:relative;z-index:1}
.cierre p{max-width:36rem;margin:0 auto 1.6rem;position:relative;z-index:1;color:var(--acento-sobre)}
.cierre .btn{position:relative;z-index:1}
.cierre__tel{margin:1.25rem auto 0!important;font-size:1rem}
.cierre__tel a{color:var(--acento-sobre);font-weight:700}
.cierre .fantasma{left:50%;transform:translateX(-50%);bottom:-.2em;font-size:clamp(5rem,20vw,16rem);color:rgba(255,255,255,.22)}
@media (min-width:56em){.cierre .envoltura{padding-top:6.5rem;padding-bottom:7.5rem}}

/* ---------- pie ---------- */
.pie{background:var(--marino-osc);color:rgba(255,255,255,.78);padding:3.5rem 0 1.5rem;font-size:.98rem}
.pie__in{max-width:var(--ancho);margin:0 auto;padding:0 1rem;display:grid;gap:2.5rem}
.pie__cab{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;max-width:var(--ancho);margin:0 auto 2.5rem;padding:0 1rem 2rem;border-bottom:1px solid rgba(255,255,255,.12)}
.pie__cab img{height:40px;width:auto}
.pie__lema{font-family:var(--titulo);font-weight:400;font-size:1.35rem;color:#fff;letter-spacing:-.02em;margin:0}
.pie__marca p{max-width:22rem}
.pie__h{color:#fff;font-size:1rem;font-weight:800;margin:0 0 .75rem;letter-spacing:0;font-family:var(--texto)}
.pie__h:not(:first-child){margin-top:1.5rem}
.pie__lista li{padding:.3rem 0}
.pie a{color:#fff;text-decoration:none}
.pie a:hover{color:var(--hielo)}
.pie__lista--cols{columns:2;column-gap:2rem}
.pie .pend{font-size:.85em}
.pie__base{max-width:var(--ancho);margin:2.5rem auto 0;padding:1.25rem 1rem 0;border-top:1px solid rgba(255,255,255,.12);display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.5rem 1rem;font-size:.9rem}
.pie__base p{margin:0}
.pie__cookies{background:none;border:0;color:#fff;text-decoration:underline;font:inherit;cursor:pointer;padding:.5rem 0;min-height:44px}
@media (min-width:40em){.pie__in,.pie__base,.pie__cab{padding-left:2rem;padding-right:2rem}}
@media (min-width:56em){.pie__in{grid-template-columns:1.1fr .9fr 1.5fr;gap:3rem}}

/* ---------- WhatsApp flotante ---------- */
.wa-flotante{position:fixed;right:1rem;bottom:1rem;z-index:50;display:inline-flex;align-items:center;gap:.5rem;min-height:56px;padding:.8rem 1.1rem;border-radius:999px;background:var(--wa);color:#fff;font-weight:700;text-decoration:none;box-shadow:0 14px 30px -10px rgba(18,138,67,.6);transition:transform .25s var(--curva),box-shadow .25s,bottom .2s}
.wa-flotante:hover{transform:translateY(-3px);color:#fff;background:var(--wa-hover);box-shadow:0 18px 34px -10px rgba(18,138,67,.7)}
.wa-flotante .ico{width:1.6rem;height:1.6rem}
.wa-flotante__txt{display:none}
@media (min-width:40em){.wa-flotante__txt{display:inline}.wa-flotante{right:1.5rem;bottom:1.5rem}}
body.con-aviso .wa-flotante{bottom:var(--alto-aviso,140px)}

/* ---------- aviso de cookies ---------- */
.cookies{position:fixed;left:.6rem;right:.6rem;bottom:.6rem;z-index:60;background:#fff;border:1px solid var(--linea);border-radius:var(--r-lg);box-shadow:0 20px 50px -20px rgba(10,32,73,.45);padding:1.1rem 1.25rem;display:flex;flex-wrap:wrap;gap:.75rem 1.5rem;align-items:center;justify-content:center}
@media (min-width:62em){.cookies{left:50%;right:auto;transform:translateX(-50%);width:min(60rem,calc(100% - 3rem));bottom:1rem}}
.cookies[hidden]{display:none}
.cookies p{margin:0;max-width:44rem;font-size:1rem}
.cookies__btns{display:flex;gap:.6rem}

/* ============================================================
   PÁGINAS INTERNAS
   ============================================================ */
/* cabecera: franja de lado a lado, texto + foto */
.cab{background:var(--crema);padding:1.5rem 0 3rem}
.cab__in{display:grid;gap:2.5rem;align-items:center}
.cab__txt{position:relative;z-index:1}
.cab h1{font-size:clamp(2.4rem,7vw,4.2rem);max-width:14ch}
.cab__intro{font-size:1.15rem;max-width:38rem;color:var(--gris);line-height:1.55}
.cab .datos{border-top-color:rgba(22,58,114,.15);margin-bottom:1.75rem}
.cab .datos li{color:var(--gris)}
.cab .datos strong{color:var(--marino)}
.cab .heroe__btns{margin-bottom:0}
.migas{font-size:.95rem;color:var(--gris);margin-bottom:1.25rem}
.migas a{color:var(--gris)}
.chip-precio{display:inline-block;background:#fff;border-radius:var(--r-md);padding:.7rem 1.1rem;margin:0 0 1.4rem;box-shadow:var(--sombra-suave);border-left:4px solid var(--acento)}
.chip-precio strong{color:var(--acento-texto)}
.cab .btn{margin-top:.25rem}
.cab--simple{padding-bottom:3rem}
.cab--simple .envoltura > *{max-width:46rem}
.cab--oscura{background:var(--marino);color:#E8EEF7}
.cab--oscura h1{color:#fff}
.cab--oscura .cab__intro{color:rgba(255,255,255,.86)}
.cab--oscura .migas,.cab--oscura .migas a{color:#B9C7DB}
.cab--oscura .lista-precios{margin-top:1rem}
.cab--suave{background:var(--acento-suave)}
.cab--viaje{background:var(--turquesa-claro)}
.cab--viaje .cab__intro{color:var(--tinta)}
@media (min-width:56em){
  .cab{padding:2rem 0 4.5rem}
  .cab__in{grid-template-columns:1.1fr .9fr;gap:4rem}
  .cab--simple{padding:3rem 0 4rem}
}

/* fotos y espacios reservados (sin arcos ni anillos) */
.ph{position:relative;margin:0;display:flex;align-items:center;justify-content:center;text-align:center;padding:1.5rem;aspect-ratio:4/5;width:100%;max-width:28rem;justify-self:center;
  background:repeating-linear-gradient(135deg,var(--turquesa-claro) 0 12px,#fff 12px 24px);border:2px dashed var(--turquesa);border-radius:var(--r-lg);color:var(--marino);overflow:hidden}
.ph__txt{position:relative;z-index:2;background:#fff;border-radius:12px;padding:.6rem .8rem;font-weight:700;font-size:.95rem;line-height:1.35;max-width:18rem;box-shadow:var(--sombra-suave)}
.ph--oscuro{background:repeating-linear-gradient(135deg,#1C3B70 0 12px,#14315F 12px 24px);border-color:#5FB6D6}
.ph--ancho{aspect-ratio:16/9;max-width:none;margin:2rem 0}
.ph--foto{padding:0;border:0;background:var(--bruma)}
.ph--foto img{width:100%;height:100%;object-fit:cover}
.cab .ph{max-width:24rem}
@media (min-width:56em){.cab .ph{max-width:26rem;justify-self:end}}

/* listas, tablas, texto */
.lista-check{margin:0 0 1.25rem}
.lista-check li{position:relative;padding:.4rem 0 .4rem 2.1rem}
.lista-check li::before{content:"";position:absolute;left:0;top:.62em;width:1.35rem;height:1.35rem;border-radius:50%;background:var(--turquesa-claro) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23126A8A' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 12.5 4 4 8-9'/%3E%3C/svg%3E") center/.8rem no-repeat}
.tabla{width:100%;border-collapse:collapse;margin:0 0 1.75rem}
.tabla th,.tabla td{padding:.95rem .25rem;border-bottom:1px solid var(--linea);text-align:left;vertical-align:top}
.tabla tr:first-child th,.tabla tr:first-child td{border-top:1px solid var(--linea)}
.tabla th{font-weight:400}
.tabla th a{font-weight:600}
.tabla td{text-align:right;font-weight:700;color:var(--acento-texto);white-space:nowrap;padding-left:1rem}
@media (max-width:30em){.tabla td{white-space:normal}}
.estrecha h2{margin-top:1.75em;font-size:clamp(1.7rem,4.4vw,2.3rem)}
.estrecha h2:first-child{margin-top:0}
.texto-legal h2{font-size:1.7rem}

/* viajes */
.tiempos{display:grid;gap:1rem;margin:2rem 0}
@media (min-width:56em){.tiempos{grid-template-columns:repeat(2,1fr);gap:1.25rem}}
@media (min-width:72em){.tiempos{grid-template-columns:repeat(4,1fr)}}
.tiempo{position:relative;background:#fff;border:1px solid var(--linea);border-radius:var(--r-lg);padding:1.75rem 1.5rem;transition:transform .3s var(--curva),box-shadow .3s}
.tiempo:hover{transform:translateY(-4px);box-shadow:var(--sombra)}
.tiempo__cuando{display:block;font-family:var(--titulo);font-weight:400;font-size:clamp(1.6rem,4.5vw,2rem);letter-spacing:-.03em;color:var(--turquesa-osc);line-height:1.05;margin-bottom:.6rem}
.tiempo p{margin:0;color:var(--gris);font-size:1rem}
.tiempo--fuerte{background:var(--marino);border-color:transparent;color:#E8EEF7}
.tiempo--fuerte h3{color:#fff}
.tiempo--fuerte .tiempo__cuando{color:var(--acento)}
.tiempo--fuerte p{color:rgba(255,255,255,.85)}
.aviso-dic{display:inline-block;font-size:1.1rem;font-weight:700;color:var(--acento-sobre);background:var(--acento);border-radius:999px;padding:.6rem 1.3rem}
.dos-tarjetas{display:grid;gap:1.25rem}
@media (min-width:48em){.dos-tarjetas{grid-template-columns:1fr 1fr}}
.tarjeta-viaje{background:var(--crema);border-radius:var(--r-xl);padding:2rem 1.75rem}
.tarjeta-viaje:last-child{background:var(--marino);color:#E8EEF7}
.tarjeta-viaje:last-child h3,.tarjeta-viaje:last-child .tarjeta-viaje__precio{color:#fff}
.tarjeta-viaje:last-child .lista-check li::before{background-color:rgba(255,255,255,.12);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23A9DCEC' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 12.5 4 4 8-9'/%3E%3C/svg%3E")}
.tarjeta-viaje h3{font-size:1.8rem;font-weight:600;letter-spacing:-.03em}
.tarjeta-viaje__precio{font-weight:700;margin:0;padding-top:1rem;border-top:1px solid rgba(22,58,114,.18);color:var(--acento-texto)}
.tarjeta-viaje:last-child .tarjeta-viaje__precio{border-color:rgba(255,255,255,.25);color:var(--acento)}
.destinos{display:grid;gap:1rem;margin-top:2rem}
@media (min-width:48em){.destinos{grid-template-columns:1fr 1fr}}
@media (min-width:68em){.destinos{grid-template-columns:repeat(3,1fr)}}
.destinos article{background:#fff;border:1px solid var(--linea);border-radius:var(--r-lg);padding:1.5rem;transition:transform .3s var(--curva),box-shadow .3s,border-color .3s}
.destinos article:hover{transform:translateY(-4px);box-shadow:var(--sombra);border-color:transparent}
.destinos article:last-child{background:var(--acento-suave);border-color:transparent}
.destinos h3{font-size:1.4rem;font-weight:600;letter-spacing:-.02em}
.destinos p{color:var(--tinta);margin:0;font-size:1rem}

/* formularios */
.form{display:grid;gap:1.1rem;background:#fff;border-radius:var(--r-xl);padding:1.75rem 1.25rem;box-shadow:var(--sombra);border:1px solid var(--linea)}
@media (min-width:40em){.form{padding:2.25rem 2rem}}
.form label{display:grid;gap:.35rem;font-weight:600;color:var(--marino)}
.form input,.form select{font:400 1rem var(--texto);min-height:52px;padding:.65rem 1rem;border:1.5px solid #9AA8BC;border-radius:var(--r-campo);background:var(--bruma);color:var(--tinta);width:100%;transition:border-color .2s,background-color .2s}
.form input:focus,.form select:focus{border-color:var(--turquesa);background:#fff;outline:2px solid var(--turquesa);outline-offset:1px}
.form fieldset{border:0;padding:0;margin:0;display:flex;flex-wrap:wrap;gap:.5rem}
.form legend{font-weight:600;color:var(--marino);margin-bottom:.45rem;width:100%}
.form .radio{display:flex;align-items:center;gap:.5rem;font-weight:400;color:var(--tinta);min-height:44px;padding:.35rem 1rem .35rem .75rem;border:1.5px solid var(--linea);border-radius:999px;cursor:pointer;transition:border-color .2s,background-color .2s}
.form .radio:has(input:checked){border-color:var(--marino);background:var(--bruma)}
.form .radio input{width:1.2rem;height:1.2rem;min-height:0;padding:0;accent-color:var(--acento-osc)}
.form .btn{justify-self:start;margin-top:.5rem}

/* medicina preventiva: planes */
.planes{display:grid;gap:1.25rem}
@media (min-width:48em){.planes{grid-template-columns:1fr 1fr}}
@media (min-width:72em){.planes{grid-template-columns:repeat(4,1fr)}}
.plan{position:relative;border-radius:var(--r-xl);padding:1.75rem 1.5rem;display:flex;flex-direction:column;background:#fff;border:1px solid var(--linea);overflow:hidden;transition:transform .3s var(--curva),box-shadow .3s}
/* foto de la etapa de vida: arriba de la tarjeta, fundida con el fondo blanco */
.plan__foto{display:block;margin:-1.75rem -1.5rem .25rem;aspect-ratio:3/2;overflow:hidden;position:relative}
.plan__foto img{width:100%;height:100%;object-fit:cover;-webkit-mask-image:linear-gradient(180deg,#000 55%,rgba(0,0,0,.55) 80%,transparent 100%);mask-image:linear-gradient(180deg,#000 55%,rgba(0,0,0,.55) 80%,transparent 100%);transition:transform .9s var(--curva)}
.plan:hover .plan__foto img,.plan-mini:hover .plan__foto img{transform:scale(1.04)}
.plan header{position:relative;margin-top:-1.5rem}
.plan-mini{overflow:hidden}
.plan-mini .plan__foto{margin:-1.6rem -1.5rem 0;aspect-ratio:4/3}
.plan-mini .pastilla{position:relative;margin-top:-1.4rem;background:#fff}
.plan-mini .ir{background:rgba(255,255,255,.9)}
.plan:hover{transform:translateY(-6px);box-shadow:var(--sombra)}
.plan header{padding-bottom:1rem;margin-bottom:1rem;border-bottom:1px solid var(--linea)}
.plan h3{font-size:1.6rem;font-weight:600;letter-spacing:-.03em;margin:.6rem 0 .25rem}
.plan__edad{margin:0;color:var(--gris);font-size:.95rem}
.plan__precio{font-family:var(--titulo);font-weight:400;font-size:2.4rem;letter-spacing:-.03em;color:var(--marino);line-height:1;margin:0 0 .35rem}
.plan__antes{font-size:.9rem;color:var(--gris)}
.plan h4{margin:.5rem 0 .3rem;color:var(--marino)}
.plan .btn{margin-top:auto;align-self:flex-start}
.plan:target{outline:3px solid var(--turquesa);outline-offset:4px}
/* en portada */
.planes-mini{display:grid;gap:1rem}
.plan-mini{display:grid;gap:.4rem;background:#fff;border-radius:var(--r-lg);padding:1.6rem 1.5rem;text-decoration:none;color:var(--tinta);position:relative;transition:transform .3s var(--curva),box-shadow .3s}
.plan-mini:hover{transform:translateY(-6px);box-shadow:var(--sombra);color:var(--tinta)}
.plan-mini .pastilla{justify-self:start}
.plan-mini strong{font-family:var(--titulo);font-size:1.3rem;font-weight:400;color:var(--marino);letter-spacing:-.02em;line-height:1.15;margin-top:.5rem}
.plan-mini em{font-style:normal;font-family:var(--titulo);font-weight:400;font-size:1.7rem;color:var(--marino);letter-spacing:-.02em}
.plan-mini .ir{position:absolute;right:1.25rem;top:1.25rem;width:2.6rem;height:2.6rem;background:var(--bruma);color:var(--marino)}
.plan-mini:hover .ir{background:var(--acento);color:var(--acento-sobre);transform:rotate(-45deg)}
@media (min-width:40em){.planes-mini{grid-template-columns:repeat(2,1fr);gap:1.25rem}}
@media (min-width:62em){.planes-mini{grid-template-columns:repeat(4,1fr)}}
.manada{margin:1.25rem 0 1.75rem;display:grid;gap:1rem}
.manada li{display:flex;align-items:center;gap:1.1rem;background:#fff;border-radius:var(--r-lg);padding:1rem 1.25rem;border:1px solid var(--linea)}
.manada strong{font-family:var(--titulo);font-weight:400;font-size:2.4rem;letter-spacing:-.03em;color:var(--acento-texto);line-height:1;min-width:5.5rem}

/* quiénes somos */
.personas{display:grid;gap:3rem}
@media (min-width:56em){.personas{grid-template-columns:1fr 1fr;gap:5rem}}
.persona .ph{margin:0 0 1.75rem;max-width:22rem;justify-self:start}
.persona h2{font-size:clamp(1.8rem,4vw,2.4rem);margin-bottom:.25em}
.persona__cargo{color:var(--acento-texto);font-weight:700}

/* contacto */
.contacto{margin:0 0 2.25rem}
.contacto li{display:grid;gap:.15rem;padding:.95rem 0;border-bottom:1px solid var(--linea)}
.contacto li>span:first-child{font-size:.9rem;color:var(--gris)}
.contacto .enlace .ico{width:1.1em;height:1.1em;margin-right:.1em}
.contacto a.enlace{justify-self:start}

/* ============================================================
   BLOG
   ============================================================ */
.borrador{background:#FFF1A8;color:#4A3B00;border-bottom:2px dashed #B89200;padding:.7rem 1rem;text-align:center;font-size:.95rem;position:relative;z-index:1}
.borrador code{font-family:ui-monospace,Consolas,monospace;font-size:.9em}
.blog-grid{display:grid;gap:1.25rem}
@media (min-width:40em){.blog-grid{grid-template-columns:repeat(2,1fr);gap:1.5rem}}
@media (min-width:62em){.blog-grid{grid-template-columns:repeat(3,1fr)}}
.art-tarjeta{position:relative;display:flex;flex-direction:column;background:#fff;border:1px solid var(--linea);border-radius:var(--r-lg);overflow:hidden;text-decoration:none;color:var(--tinta);transition:transform .35s var(--curva),box-shadow .35s,border-color .35s}
.art-tarjeta:hover{transform:translateY(-6px);box-shadow:var(--sombra);border-color:transparent;color:var(--tinta)}
.art-tarjeta__foto{position:relative;display:block;aspect-ratio:3/2;overflow:hidden;background:var(--bruma)}
.art-tarjeta__foto .art-portada{margin:0;width:100%;height:100%;max-width:none;aspect-ratio:auto;border-radius:0}
.art-tarjeta__foto img{width:100%;height:100%;object-fit:cover;transition:transform .8s var(--curva)}
.art-tarjeta:hover .art-tarjeta__foto img{transform:scale(1.04)}
.art-tarjeta__foto .pastilla{position:absolute;left:1rem;top:1rem;background:rgba(255,255,255,.94);border-color:transparent}
.art-borrador-mini{position:absolute;right:1rem;top:1rem;background:#FFF1A8;color:#4A3B00;border:1px dashed #B89200;border-radius:999px;padding:.2rem .7rem;font-size:.8rem;font-weight:700}
.art-tarjeta__cuerpo{display:flex;flex-direction:column;flex:1;padding:1.4rem 1.5rem 1.5rem}
.art-tarjeta h3{font-size:1.3rem;font-weight:600;letter-spacing:-.025em;margin-bottom:.5rem;line-height:1.2}
.art-tarjeta p{color:var(--gris);font-size:.98rem;margin:0 0 1.25rem;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.art-meta{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem 1rem;color:var(--gris);font-size:.9rem;margin-top:auto}
.art-meta .ir{margin-left:auto;background:var(--bruma);color:var(--marino);width:2.6rem;height:2.6rem}
.art-tarjeta:hover .ir{background:var(--acento);color:var(--acento-sobre);transform:rotate(-45deg)}
.art-meta--cab{margin:.5rem 0 0;font-size:.95rem}
.art-meta--cab span+span::before{content:"·";margin-right:1rem;color:var(--acento-osc)}
.cab--articulo{padding-bottom:2.5rem}
.cab--articulo h1{font-size:clamp(2.1rem,5.2vw,3.6rem);max-width:22ch;letter-spacing:-.035em}
.cab--articulo .cab__intro{max-width:46rem}
.art-portada{margin:0;border-radius:var(--r-lg);overflow:hidden;background:var(--bruma)}
.art-portada img{width:100%;height:100%;object-fit:cover}
.art-portada--grande{margin:-1.5rem auto 0;max-width:var(--ancho);aspect-ratio:16/9;max-height:34rem;width:100%;box-shadow:var(--sombra)}
.art-portada--grande.ph{aspect-ratio:16/9;max-width:none}
@media (min-width:56em){.art-portada--grande{margin-top:-2.5rem;aspect-ratio:21/9}}
.articulo{max-width:46rem;font-size:1.125rem;line-height:1.75;padding-top:2.5rem}
@media (min-width:60em){.articulo{font-size:1.2rem}}
.articulo h2{font-size:clamp(1.6rem,4vw,2.1rem);margin:2em 0 .6em;letter-spacing:-.03em}
.articulo h3{font-size:1.25rem;margin:1.6em 0 .5em}
.articulo p{margin:0 0 1.25em}
.articulo ul,.articulo ol{margin:0 0 1.5em;padding-left:1.4em}
.articulo ul{list-style:disc}.articulo ol{list-style:decimal}
.articulo li{margin:.4em 0;padding-left:.2em}
.articulo li::marker{color:var(--acento-osc);font-weight:700}
.articulo a{color:var(--azul);font-weight:600}
.articulo blockquote{margin:2em 0;padding:.4em 0 .4em 1.4em;border-left:4px solid var(--acento);font-family:var(--titulo);font-weight:400;font-size:clamp(1.3rem,3vw,1.7rem);line-height:1.35;letter-spacing:-.02em;color:var(--marino)}
.art-fig{margin:2.25em 0}
.art-fig img{width:100%;height:auto;border-radius:var(--r-lg);aspect-ratio:3/2;object-fit:cover}
.art-fig .ph{max-width:none;aspect-ratio:3/2;margin:0}
.art-fig figcaption{font-size:.92rem;color:var(--gris);margin-top:.7rem;padding-left:1rem;border-left:2px solid var(--linea)}
.art-fig video{display:block;width:100%;height:auto;border-radius:var(--r-lg);background:#000;aspect-ratio:680/534}
.art-fig--video{max-width:34rem}
.estrecha .art-fig{margin:1.5rem 0 2rem}
.art-portada--grande img{object-position:50% 30%}
.autor{display:grid;grid-template-columns:5rem 1fr;gap:1.25rem;align-items:start;margin:3.5em 0 1.5em;padding:1.5rem;background:var(--crema);border-radius:var(--r-lg)}
.autor img{width:5rem;height:5rem;border-radius:50%;object-fit:cover;object-position:50% 15%}
.autor strong{display:block;font-family:var(--titulo);font-size:1.15rem;color:var(--marino);margin-bottom:.3rem}
.autor p{font-size:1rem;color:var(--gris);margin:0 0 .6rem;line-height:1.55}
@media (max-width:30em){.autor{grid-template-columns:1fr}}
.articulo .nota{font-size:.9rem}

/* ============================================================
   MOVIMIENTO — solo con JS (html.js-anim) y si la persona no pidió reducirlo.
   ============================================================ */
@media (prefers-reduced-motion:no-preference){
  .js-anim .revela{opacity:0;transform:translateY(22px);transition:opacity .7s var(--curva),transform .7s var(--curva);transition-delay:var(--retraso,0s)}
  .js-anim .revela.visto{opacity:1;transform:none}
  .js-anim .heroe__txt>*{opacity:0;transform:translateY(18px);animation:subir .9s var(--curva) forwards}
  .js-anim .heroe__txt>:nth-child(2){animation-delay:.1s}
  .js-anim .heroe__txt>:nth-child(3){animation-delay:.2s}
  .js-anim .heroe__txt>:nth-child(4){animation-delay:.3s}
  .js-anim .mini{opacity:0;animation:subir .9s .5s var(--curva) forwards}
  .js-anim .heroe__foto{animation:abrir 1.2s var(--curva) both}
  .js-anim .cab__txt>*{opacity:0;transform:translateY(14px);animation:subir .8s var(--curva) forwards}
  .js-anim .cab__txt>:nth-child(2){animation-delay:.08s}
  .js-anim .cab__txt>:nth-child(3){animation-delay:.16s}
  .js-anim .cab__txt>:nth-child(4){animation-delay:.24s}
  .js-anim .cab__txt>:nth-child(5){animation-delay:.3s}
  .js-anim .cab .ph{animation:abrir 1s .1s var(--curva) both}
  .flotantes span{animation:mecer 7s ease-in-out infinite}
  .flotantes span:nth-child(2){animation-duration:9s;animation-delay:-3s}
  .flotantes span:nth-child(3){animation-duration:8s;animation-delay:-5s}
  .flotantes span:nth-child(4){animation-duration:10s;animation-delay:-2s}
  .viaje__ic .icono{animation:volar 6s ease-in-out infinite}
  .galeria__pista{animation:desfile 50s linear infinite}
  .galeria:hover .galeria__pista,.galeria:focus-within .galeria__pista{animation-play-state:paused}
}
@keyframes subir{to{opacity:1;transform:none}}
@keyframes abrir{from{opacity:0;transform:scale(1.03)}to{opacity:1;transform:none}}
@keyframes mecer{0%,100%{translate:0 0}50%{translate:0 -8px}}
@keyframes volar{0%,100%{translate:0 0}50%{translate:3px -3px}}
@keyframes desfile{to{transform:translateX(calc(-50% - .5rem))}}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation:none!important;transition:none!important}
  .galeria{overflow-x:auto}
  .galeria__pista{width:auto}
  .galeria__fila[aria-hidden]{display:none}
}
@media print{.top,.wa-flotante,.cookies,.galeria{display:none}.banda,.heroe,.pie,.cab{background:#fff!important;color:#000}}

/* turquesa sobre marino no se lee: en franjas oscuras el acento como texto va en azul hielo (13-oct) */
.heroe h1 em,.diag .lista-precios strong,.tarjeta-viaje:last-child .tarjeta-viaje__precio{color:var(--hielo)}

.horario__h,.tiempo--fuerte .tiempo__cuando{color:var(--hielo)}

h3,h4{font-weight:400}
h1,h2,h3,h4{letter-spacing:-.01em!important}
/* ---------- tarjetas (aprobado 13-oct): de servicios en dos tonos del logo ---------- */
.cartas .carta,.cartas .carta:nth-child(odd){background:var(--marino);color:#fff;border:0}
.cartas .carta:nth-child(even){background:var(--acento);color:#fff}
.cartas .carta .ir{background:rgba(255,255,255,.18);color:#fff}
.cartas .carta:hover .ir{background:#fff;color:var(--marino)}
.carta .n{max-width:none;font-size:1.4rem}
.carta .f{max-width:none}
@media (min-width:75em){.cartas:has(> :nth-child(8)){grid-template-columns:repeat(4,1fr)}}
#aviso-cookies{display:none!important}


/* etiquetas sobre los títulos: texto pequeño en mayúsculas, sin punto ni marco (Jefferson 13-oct) */
.etiqueta{background:none;border:0;padding:0;border-radius:0;text-transform:uppercase;letter-spacing:.14em;font-size:.76rem;font-weight:700;color:var(--acento-texto)}
.etiqueta::before{display:none}
.diag .etiqueta,.cab--oscura .etiqueta,.heroe .etiqueta,.cierre .etiqueta,.banda--marino .etiqueta{color:var(--hielo)}
.lista-serv__p:empty{display:none}
.cartas .carta .p{visibility:hidden}
.carta{min-height:12rem}

/* pastillas sin marco (Jefferson 13-oct): texto pequeño en mayúsculas; sobre fotos, blanco con sombra suave arriba */
.pastilla{background:none!important;border:0!important;border-radius:0;padding:0;text-transform:uppercase;letter-spacing:.12em;font-size:.72rem;font-weight:700;color:var(--acento-texto)}
.pilar__foto::before,.art-tarjeta__foto::before{content:"";position:absolute;inset:0 0 auto 0;height:50%;z-index:1;pointer-events:none;background:linear-gradient(180deg,rgba(14,42,90,.6) 0%,rgba(14,42,90,0) 100%)}
.art-tarjeta__foto{position:relative}
.pilar__foto .pastilla,.art-tarjeta__foto .pastilla{z-index:2;left:1.1rem;top:1rem;color:#fff;text-shadow:0 1px 6px rgba(0,0,0,.35)}
.plan-mini .pastilla{margin-top:.4rem}
.duo__cuerpo .pastilla{color:#fff}
.resena footer{margin-top:1rem;font-size:.9rem;font-weight:700;color:var(--marino)}
.plan__antes s{opacity:.75}
.plan__det{display:inline;font-size:.85rem}
.plan__det summary{display:inline;cursor:pointer;color:var(--acento-texto);text-decoration:underline;font-weight:600;margin-left:.3rem}
.plan__det p{margin:.4rem 0 0}
/* héroe en celular y tableta / ventana angosta: la foto ocupa todo el ancho (13-oct) */
@media (max-width:55.99em){
  .heroe__foto{width:100%;aspect-ratio:auto;height:min(78svh,125vw);max-height:none}
  .heroe__txt{padding:0 max(1rem,5vw) 2.5rem}
  .mini{margin:0 max(1rem,5vw)}
}
.duo__tarjeta--turquesa::after{background:linear-gradient(180deg,rgba(0,95,124,.05) 25%,rgba(0,84,110,.92) 100%)}
/* medios de pago con íconos pequeños (13-oct) */
.pagos{display:inline-flex;flex-wrap:wrap;gap:.35rem .9rem;vertical-align:middle}
.pagos>span{display:inline-flex;align-items:center;gap:.3rem;font-weight:600;white-space:nowrap}
.pagos .icono{width:1.1em;height:1.1em;color:var(--acento)}
/* carrusel: avanza solo, se detiene al pasar el mouse y tiene flechas (13-oct) */
.galeria-caja{position:relative}
.galeria-caja .galeria{scrollbar-width:none}
.galeria-caja .galeria::-webkit-scrollbar{display:none}
.galeria-caja.con-js .galeria{overflow-x:auto}
.galeria-caja.con-js .galeria__pista{animation:none!important}
.galeria__btn{position:absolute;top:calc(50% - 2.25rem - 1.5rem);z-index:2;width:3rem;height:3rem;border-radius:50%;border:0;background:rgba(255,255,255,.95);color:var(--marino);box-shadow:var(--sombra);display:none;align-items:center;justify-content:center;cursor:pointer;transition:background .2s,color .2s}
.galeria__btn:hover{background:var(--acento);color:#fff}
.galeria__btn .icono{width:1.3rem;height:1.3rem}
.galeria__btn--ant{left:max(.75rem,2vw)}
.galeria__btn--ant .icono{transform:rotate(180deg)}
.galeria__btn--sig{right:max(.75rem,2vw)}
.galeria-caja.con-js .galeria__btn{display:inline-flex}
@media (min-width:56em){.galeria__btn{top:calc(50% - 3.5rem - 1.5rem)}}
.art-fig img{object-position:50% 20%}
.ph--foto img{object-position:50% 18%}
/* Nuestra manada (Quiénes somos) */
.manada{display:grid;grid-template-columns:repeat(2,1fr);gap:1rem;margin-top:1.5rem}
@media (min-width:56em){.manada{grid-template-columns:repeat(4,1fr)}}
.manada figure{margin:0}
.manada .ph{aspect-ratio:1;min-height:0;border-radius:var(--r-lg)}
.manada figcaption{margin-top:.6rem;font-family:var(--titulo);font-size:1.2rem;color:var(--marino);text-align:center}
.manada figcaption span{display:block;font-family:var(--texto);font-size:.92rem;color:var(--gris);line-height:1.4;margin-top:.25rem}
