/* ---------- Outfit (autoalojada) ---------- */
@font-face{font-family:'Outfit';src:url('/fonts/outfit-300.woff2') format('woff2');font-weight:300;font-style:normal;font-display:swap;unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'Outfit';src:url('/fonts/outfit-400.woff2') format('woff2');font-weight:400;font-style:normal;font-display:swap;unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'Outfit';src:url('/fonts/outfit-500.woff2') format('woff2');font-weight:500;font-style:normal;font-display:swap;unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'Outfit';src:url('/fonts/outfit-600.woff2') format('woff2');font-weight:600;font-style:normal;font-display:swap;unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}

/* ============ TIPOGRAFÍA DE MARCA · Gazpacho autoalojada ============ */
@font-face{font-family:'Gazpacho';src:url('/fonts/gazpacho-bold.woff2') format('woff2');
  font-weight:700;font-style:normal;font-display:swap}
@font-face{font-family:'Gazpacho';src:url('/fonts/gazpacho-thin.woff2') format('woff2');
  font-weight:200;font-style:normal;font-display:swap}
@font-face{font-family:'Gazpacho';src:url('/fonts/gazpacho-italic-light.woff2') format('woff2');
  font-weight:300;font-style:italic;font-display:swap}

:root{
  --bosque:#0F2827; --esmeralda:#1C4342; --bosque-2:#1A3330;
  --paper:#FDF9F3; --marfil:#FBF0E2; --champan:#F3E4D2; --champan-d:#E6CFBD;
  --coral:#F5897E; --coral-d:#E67868; --coral-soft:#FBDDD6;
  --dorado:#977643; --dorado-c:#C89781; --verde-soft:#E3EFE9;
  --texto-2:#4A5C59; --texto-3:#6B7B78;
  --display:'Gazpacho',Georgia,'Times New Roman',serif;
  --body:'Outfit',-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif;
  --sombra:0 2px 14px rgba(15,40,39,.07);
  --sombra-m:0 6px 22px rgba(15,40,39,.10);
  --sombra-f:0 14px 42px rgba(15,40,39,.16);
  --r-btn:10px; --r-card:14px; --r-cont:20px;
  --max:1180px;
  --ease:cubic-bezier(.22,.61,.36,1);
}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--paper);color:var(--bosque);
  font-family:var(--body);font-size:16px;font-weight:400;line-height:1.68;
  -webkit-font-smoothing:antialiased;overflow-x:hidden}
img{max-width:100%;height:auto;display:block}
a{color:inherit}
h1,h2,h3,h4{font-family:var(--display);font-weight:700;line-height:1.13;margin:0;
  letter-spacing:-.015em}
p{margin:0 0 1.1em}
.wrap{max-width:var(--max);margin:0 auto;padding:0 26px}
em{font-family:var(--display);font-weight:300;font-style:italic;color:var(--esmeralda)}
.oculto{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;
  clip:rect(0,0,0,0);white-space:nowrap;border:0}
:focus-visible{outline:3px solid var(--esmeralda);outline-offset:3px;border-radius:4px}

/* etiqueta de sección con línea que crece */
.lbl{font-family:var(--body);font-weight:600;font-size:11.5px;letter-spacing:.2em;
  text-transform:uppercase;color:var(--dorado);margin:0 0 14px;display:flex;
  align-items:center;gap:13px}
.lbl::before{content:"";width:0;height:1px;background:var(--dorado-c);
  transition:width .9s var(--ease) .15s}
.visible .lbl::before,.lbl.visible::before{width:38px}
.cabecera-centro .lbl{justify-content:center}

/* ============ REVELADO AL SCROLL ============ */
.rev{opacity:0;transform:translateY(26px);
  transition:opacity .75s var(--ease),transform .75s var(--ease)}
.rev.visible{opacity:1;transform:none}
.rev-d1{transition-delay:.09s}.rev-d2{transition-delay:.18s}
.rev-d3{transition-delay:.27s}.rev-d4{transition-delay:.36s}

/* ============ BOTONES ============ */
.btn{position:relative;display:inline-flex;align-items:center;justify-content:center;gap:10px;
  font-family:var(--body);font-weight:600;font-size:15px;text-decoration:none;
  padding:16px 30px;border-radius:var(--r-btn);border:1.5px solid transparent;
  cursor:pointer;overflow:hidden;isolation:isolate;
  transition:transform .3s var(--ease),box-shadow .3s var(--ease),background .3s var(--ease)}
/* barrido de luz al pasar el ratón */
.btn::before{content:"";position:absolute;inset:0;z-index:-1;
  background:linear-gradient(115deg,transparent 30%,rgba(255,255,255,.42) 50%,transparent 70%);
  transform:translateX(-130%);transition:transform .75s var(--ease)}
.btn:hover::before{transform:translateX(130%)}
.btn:hover{transform:translateY(-3px)}
.btn:active{transform:translateY(-1px)}
.btn .fl{transition:transform .35s var(--ease)}
.btn:hover .fl{transform:translateX(5px)}
.btn-1{background:var(--coral);color:var(--bosque);box-shadow:0 4px 16px rgba(245,137,126,.34)}
.btn-1:hover{background:var(--coral-d);box-shadow:0 12px 30px rgba(230,120,104,.46)}
.btn-2{background:var(--esmeralda);color:#fff;box-shadow:var(--sombra)}
.btn-2:hover{background:var(--bosque);box-shadow:var(--sombra-f)}
.btn-g{background:transparent;color:var(--esmeralda);border-color:var(--champan-d)}
.btn-g:hover{background:var(--marfil);border-color:var(--esmeralda)}
.btn-claro{background:var(--paper);color:var(--bosque)}
.btn-claro:hover{background:#fff}
.btn-lg{padding:19px 38px;font-size:16.5px}

/* ============ HEADER ============ */
.top{background:var(--bosque);color:var(--dorado-c);font-size:12.5px;
  letter-spacing:.05em;padding:8px 0}
.top .wrap{display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap}
.top a{color:var(--dorado-c);text-decoration:none;transition:color .25s}
.top a:hover{color:#fff;text-decoration:underline}
header{position:sticky;top:0;z-index:60;background:rgba(253,249,243,.9);
  backdrop-filter:blur(14px);border-bottom:1px solid var(--champan);
  transition:box-shadow .35s var(--ease),background .35s var(--ease)}
header.fijo{box-shadow:0 4px 24px rgba(15,40,39,.09);background:rgba(253,249,243,.98)}
header .wrap{display:flex;align-items:center;justify-content:space-between;gap:20px;
  padding-top:12px;padding-bottom:12px}
.marca{display:flex;align-items:center;gap:12px;text-decoration:none;flex-shrink:0}
.marca img{width:34px;height:auto;transition:transform .45s var(--ease)}
.marca:hover img{transform:scale(1.09) rotate(-3deg)}
.marca b{font-family:var(--display);font-size:16px;font-weight:700;display:block;
  line-height:1.15;letter-spacing:.01em}
.marca .sub{font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;
  color:var(--dorado);font-weight:600}
nav ul{display:flex;gap:26px;list-style:none;margin:0;padding:0}
nav a{position:relative;text-decoration:none;font-size:14.5px;font-weight:500;
  color:var(--esmeralda);padding:6px 0}
nav a::after{content:"";position:absolute;left:0;bottom:0;width:0;height:2px;
  background:var(--coral);transition:width .35s var(--ease)}
nav a:hover::after{width:100%}
.head-cta{display:flex;gap:10px;align-items:center}
.head-cta .btn{padding:12px 21px;font-size:14px}
.burger{display:none;background:none;border:1.5px solid var(--champan-d);border-radius:8px;
  padding:9px 11px;cursor:pointer;line-height:0}
.burger span{display:block;width:19px;height:2px;background:var(--esmeralda);border-radius:2px;
  transition:transform .3s var(--ease),opacity .25s}
.burger span+span{margin-top:4px}
.burger[aria-expanded="true"] span:nth-child(1){transform:translateY(6px) rotate(45deg)}
.burger[aria-expanded="true"] span:nth-child(2){opacity:0}
.burger[aria-expanded="true"] span:nth-child(3){transform:translateY(-6px) rotate(-45deg)}

/* ============ HERO ============ */
.hero{background:linear-gradient(165deg,var(--bosque) 0%,var(--esmeralda) 62%,#22514F 100%);
  color:var(--paper);position:relative;overflow:hidden}
.hero::after{content:"";position:absolute;inset:0;pointer-events:none;
  background:repeating-linear-gradient(135deg,transparent 0 92px,rgba(201,151,129,.07) 92px 93px)}
.hero::before{content:"";position:absolute;width:640px;height:640px;right:-190px;top:-230px;
  border-radius:50%;background:radial-gradient(circle,rgba(201,151,129,.15),transparent 68%);
  pointer-events:none}
.hero .wrap{position:relative;z-index:1;display:grid;grid-template-columns:1.08fr .92fr;
  gap:56px;align-items:center;padding-top:78px;padding-bottom:78px}
.hero .lbl{color:var(--dorado-c)}
.hero .lbl::before{background:var(--dorado-c)}
.hero h1{font-size:clamp(34px,4.7vw,57px);color:#fff;margin-bottom:.34em;max-width:15ch}
.hero h1 i{font-family:var(--display);font-weight:300;font-style:italic;color:var(--dorado-c)}
.hero .sub{font-size:17.5px;color:#E4D7C7;font-weight:300;max-width:46ch;margin-bottom:1.7em}
.hero-cta{display:flex;gap:13px;flex-wrap:wrap}
.hero-nota{margin:24px 0 0;font-size:13px;color:var(--dorado-c);display:flex;
  align-items:center;gap:8px}
.hero-img{position:relative}
.hero-marco{border-radius:var(--r-cont);overflow:hidden;box-shadow:0 26px 62px rgba(0,0,0,.36)}
.hero-marco img{transition:transform 12s var(--ease)}
.hero-marco:hover img{transform:scale(1.06)}
.hero-badge{position:absolute;left:-24px;bottom:28px;background:var(--paper);
  color:var(--bosque);border-radius:var(--r-card);padding:16px 20px;box-shadow:var(--sombra-f);
  display:flex;align-items:center;gap:13px;max-width:252px;
  animation:flota 5.5s ease-in-out infinite}
@keyframes flota{0%,100%{transform:translateY(0)}50%{transform:translateY(-9px)}}
.hero-badge .est{font-family:var(--display);font-weight:200;font-size:38px;
  color:var(--esmeralda);line-height:1}
.hero-badge small{display:block;font-size:12px;color:var(--texto-2);line-height:1.4}

/* ============ BARRA DE AUTORIDAD ============ */
.autoridad{background:var(--marfil);border-bottom:1px solid var(--champan)}
.autoridad .wrap{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;
  padding-top:38px;padding-bottom:38px}
.dato{text-align:center;padding:0 10px;position:relative}
.dato+.dato::before{content:"";position:absolute;left:0;top:12%;height:76%;width:1px;
  background:var(--champan-d)}
.dato b{display:block;font-family:var(--display);font-weight:200;font-size:44px;
  color:var(--esmeralda);line-height:1;letter-spacing:-.02em}
.dato .sirf{font-weight:700;font-size:31px}
.dato span{display:block;font-size:13px;color:var(--texto-2);margin-top:9px;line-height:1.45}

/* ============ SECCIONES ============ */
section{padding:86px 0}
section.alt{background:var(--marfil)}
section.dark{background:var(--bosque);color:var(--paper)}
section.dark h2,section.dark h3{color:#fff}
section.dark p{color:#D8CCBD}
section.dark .lbl{color:var(--dorado-c)}
section.dark .lbl::before{background:var(--dorado-c)}
section.dark em{color:var(--dorado-c)}
h2{font-size:clamp(28px,3.6vw,41px);margin-bottom:.42em;max-width:19ch}
.intro{font-size:16.5px;color:var(--texto-2);max-width:64ch;margin-bottom:2.4em}
.cabecera-centro{text-align:center;max-width:680px;margin:0 auto 50px}
.cabecera-centro h2{margin-left:auto;margin-right:auto}
.cabecera-centro .intro{margin-left:auto;margin-right:auto;margin-bottom:0}

/* ============ RESPUESTA DIRECTA (AEO) ============ */
.respuesta{background:#fff;border:1px solid var(--champan);border-left:4px solid var(--coral);
  border-radius:var(--r-card);padding:36px 38px;box-shadow:var(--sombra);max-width:850px;
  transition:box-shadow .4s var(--ease),transform .4s var(--ease)}
.respuesta:hover{box-shadow:var(--sombra-f);transform:translateY(-3px)}
.respuesta h2{font-size:27px;margin-bottom:.5em;max-width:none}
.respuesta p:last-child{margin-bottom:0}
.respuesta p:first-of-type{font-size:17px;color:var(--bosque)}

/* ============ TRATAMIENTOS ============ */
.grid-trat{display:grid;grid-template-columns:repeat(auto-fill,minmax(268px,1fr));gap:24px}
.trat{position:relative;background:#fff;border:1px solid var(--champan);
  border-radius:var(--r-card);overflow:hidden;text-decoration:none;color:inherit;
  display:flex;flex-direction:column;box-shadow:var(--sombra);
  transition:transform .42s var(--ease),box-shadow .42s var(--ease),border-color .42s}
.trat:hover{transform:translateY(-8px);box-shadow:var(--sombra-f);border-color:var(--champan-d)}
.trat .foto{position:relative;aspect-ratio:4/3;overflow:hidden;background:var(--champan)}
.trat .foto img{width:100%;height:100%;object-fit:cover;
  transition:transform .85s var(--ease),filter .55s var(--ease)}
.trat:hover .foto img{transform:scale(1.09);filter:saturate(1.08)}
/* velo que se levanta al pasar el ratón */
.trat .foto::after{content:"";position:absolute;inset:0;
  background:linear-gradient(to top,rgba(15,40,39,.42),transparent 55%);
  opacity:0;transition:opacity .45s var(--ease)}
.trat:hover .foto::after{opacity:1}
.trat .cuerpo{position:relative;padding:24px 24px 26px;flex:1;display:flex;
  flex-direction:column}
/* línea de acento que crece */
.trat .cuerpo::before{content:"";position:absolute;top:0;left:0;height:3px;width:34%;
  background:var(--coral);transition:width .5s var(--ease)}
.trat:hover .cuerpo::before{width:100%}
.trat h3{font-size:20px;margin-bottom:9px;transition:color .3s}
.trat:hover h3{color:var(--esmeralda)}
.trat p{font-size:14.5px;color:var(--texto-2);margin-bottom:17px;flex:1}
.trat .mas{font-size:13.5px;font-weight:600;color:var(--esmeralda);
  display:inline-flex;align-items:center;gap:8px;transition:color .3s}
.trat .mas .fl{transition:transform .35s var(--ease)}
.trat:hover .mas{color:var(--coral-d)}
.trat:hover .mas .fl{transform:translateX(6px)}
.tag{position:absolute;top:13px;left:13px;z-index:2;background:var(--paper);
  color:var(--bosque);font-size:10.5px;font-weight:600;letter-spacing:.12em;
  text-transform:uppercase;padding:7px 12px;border-radius:20px;box-shadow:var(--sombra-m)}

/* ============ DOCTORA ============ */
.dra{display:grid;grid-template-columns:.85fr 1.15fr;gap:60px;align-items:center}
.dra-foto{background:linear-gradient(160deg,var(--champan),var(--champan-d));
  border-radius:var(--r-cont);aspect-ratio:4/5;display:flex;align-items:center;
  justify-content:center;text-align:center;padding:30px;box-shadow:var(--sombra-m);
  position:relative;overflow:hidden}
.dra-foto::before{content:"";position:absolute;inset:0;
  background:repeating-linear-gradient(135deg,transparent 0 62px,rgba(151,118,67,.06) 62px 63px)}
.dra-foto div{position:relative;color:var(--esmeralda)}
.dra-foto img{width:74px;margin:0 auto 16px;opacity:.45}
.dra-foto b{font-family:var(--display);font-weight:700;font-size:17px;display:block;
  margin-bottom:6px}
.dra-foto small{font-size:12.5px;color:#6E5A48;line-height:1.5;display:block;max-width:26ch;
  margin:0 auto}
.credenciales{list-style:none;padding:0;margin:28px 0 0}
.credenciales li{padding:15px 0 15px 36px;position:relative;border-bottom:1px solid var(--champan);
  font-size:15px;transition:padding-left .35s var(--ease)}
.credenciales li:last-child{border-bottom:none}
.credenciales li:hover{padding-left:44px}
.credenciales li::before{content:"";position:absolute;left:5px;top:23px;width:9px;height:9px;
  border-radius:50%;background:var(--coral);transition:transform .35s var(--ease)}
.credenciales li:hover::before{transform:scale(1.5)}

/* ============ RESULTADOS ============ */
.grid-res{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:22px}
.res{border-radius:var(--r-card);overflow:hidden;background:#fff;
  box-shadow:0 6px 22px rgba(0,0,0,.24);
  transition:transform .42s var(--ease),box-shadow .42s var(--ease)}
.res:hover{transform:translateY(-7px) scale(1.012);box-shadow:0 20px 46px rgba(0,0,0,.36)}
.res .marco{overflow:hidden}
.res img{width:100%;aspect-ratio:1/1;object-fit:cover;transition:transform .9s var(--ease)}
.res:hover img{transform:scale(1.07)}
.res figcaption{padding:15px 18px;font-size:13.5px;color:var(--texto-2);background:#fff}
.res figcaption b{display:block;font-family:var(--display);font-weight:700;font-size:16.5px;
  color:var(--bosque);margin-bottom:3px}
.aviso{margin-top:28px;font-size:13px;color:#B7A897;max-width:70ch}

/* ============ PROCESO ============ */
.pasos{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:28px;
  counter-reset:p}
.paso{counter-increment:p;position:relative;padding-top:58px}
.paso::before{content:counter(p,decimal-leading-zero);position:absolute;top:0;left:0;
  font-family:var(--display);font-weight:200;font-size:44px;color:var(--champan-d);
  line-height:1;transition:color .4s var(--ease),transform .4s var(--ease)}
.paso:hover::before{color:var(--coral);transform:translateY(-4px)}
.paso h3{font-size:19px;margin-bottom:9px}
.paso p{font-size:14.5px;color:var(--texto-2);margin:0}

/* ============ RESEÑAS ============ */
.google{display:grid;grid-template-columns:auto 1fr;gap:44px;align-items:center;
  background:#fff;border:1px solid var(--champan);border-radius:var(--r-cont);
  padding:40px 44px;box-shadow:var(--sombra-m)}
.google .nota{text-align:center;padding-right:44px;border-right:1px solid var(--champan)}
.google .nota b{display:block;font-family:var(--display);font-weight:200;font-size:66px;
  color:var(--esmeralda);line-height:1;letter-spacing:-.03em}
.estrellas{color:var(--coral);font-size:19px;letter-spacing:3px;margin:8px 0 4px}
.google .nota small{font-size:13px;color:var(--texto-2)}
.temas{display:flex;flex-wrap:wrap;gap:9px;margin-top:16px}
.tema{background:var(--verde-soft);color:var(--esmeralda);font-size:13px;font-weight:600;
  padding:8px 16px;border-radius:20px;transition:transform .3s var(--ease),background .3s}
.tema:hover{transform:translateY(-3px);background:var(--champan)}

/* ============ RESERVA ============ */
.reserva{background:linear-gradient(170deg,var(--bosque) 0%,var(--esmeralda) 100%);
  color:var(--paper);position:relative;overflow:hidden}
.reserva::after{content:"";position:absolute;inset:0;pointer-events:none;
  background:repeating-linear-gradient(135deg,transparent 0 92px,rgba(201,151,129,.06) 92px 93px)}
.reserva .wrap{position:relative;z-index:1}
.reserva h2,.reserva h3{color:#fff}
.reserva .intro{color:#D8CCBD}

/* la tarjeta de valor: 60 min + $100.000 abonables */
.valor{display:grid;grid-template-columns:repeat(auto-fit,minmax(215px,1fr));gap:2px;
  background:rgba(201,151,129,.26);border-radius:var(--r-cont);overflow:hidden;
  margin-bottom:44px;box-shadow:0 14px 40px rgba(0,0,0,.26)}
.valor > div{background:var(--bosque-2);padding:30px 26px;text-align:center;
  transition:background .4s var(--ease)}
.valor > div:hover{background:#20403D}
.valor .ico{font-size:23px;margin-bottom:11px;display:block}
.valor b{display:block;font-family:var(--display);font-weight:700;font-size:22px;
  color:#fff;margin-bottom:7px;line-height:1.2}
.valor .big{font-weight:200;font-size:36px;letter-spacing:-.02em}
.valor small{font-size:13.5px;color:#C3B5A6;line-height:1.5;display:block}
.valor .destaca{background:linear-gradient(160deg,var(--coral),var(--coral-d))}
.valor .destaca:hover{background:linear-gradient(160deg,var(--coral-d),#D96A5C)}
.valor .destaca b,.valor .destaca .big{color:var(--bosque)}
.valor .destaca small{color:#5E2F28;font-weight:500}

.reserva-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:44px;align-items:start}

/* calendario */
.cal{background:var(--paper);border-radius:var(--r-cont);padding:22px;
  box-shadow:0 14px 40px rgba(0,0,0,.26)}
.cal h3{color:var(--bosque);font-size:19px;margin-bottom:6px}
.cal p{color:var(--texto-2);font-size:13.5px;margin-bottom:16px}
.cal-marco{position:relative;width:100%;padding-top:118%;border-radius:12px;overflow:hidden;
  border:1px solid var(--champan-d);background:#fff}
.cal-marco iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.cal-nota{margin:14px 0 0;font-size:13px;color:var(--texto-3);text-align:center;line-height:1.55}
.cal-nota a{color:var(--esmeralda);font-weight:600}

/* formulario */
.form-caja{background:var(--paper);color:var(--bosque);border-radius:var(--r-cont);
  padding:34px 34px 30px;box-shadow:0 14px 40px rgba(0,0,0,.26)}
.form-caja h3{color:var(--bosque);font-size:22px;margin-bottom:6px}
.form-caja .ayuda{font-size:14px;color:var(--texto-2);margin-bottom:24px}
.campos{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.campo{display:flex;flex-direction:column;gap:6px}
.campo.ancho{grid-column:1/-1}
.campo label{font-size:12.5px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;
  color:var(--esmeralda)}
.campo .req{color:var(--coral-d)}
.campo input,.campo select,.campo textarea{font-family:var(--body);font-size:15px;
  color:var(--bosque);background:#fff;border:1.5px solid var(--champan-d);
  border-radius:var(--r-btn);padding:13px 15px;width:100%;
  transition:border-color .3s var(--ease),box-shadow .3s var(--ease),background .3s}
.campo textarea{resize:vertical;min-height:92px}
.campo input:hover,.campo select:hover,.campo textarea:hover{border-color:var(--dorado-c)}
.campo input:focus,.campo select:focus,.campo textarea:focus{outline:none;
  border-color:var(--esmeralda);box-shadow:0 0 0 4px rgba(28,67,66,.13)}
.campo input::placeholder,.campo textarea::placeholder{color:#9DA9A6}
.consiente{grid-column:1/-1;display:flex;gap:11px;align-items:flex-start;
  font-size:13px;color:var(--texto-2);line-height:1.55;margin-top:4px}
.consiente input{width:19px;height:19px;flex-shrink:0;margin-top:2px;accent-color:var(--esmeralda)}
.form-caja .btn{width:100%;margin-top:22px}
.nota-pago{margin-top:16px;font-size:12.5px;color:var(--texto-3);text-align:center;line-height:1.55}
.hp{position:absolute;left:-9999px;opacity:0;height:0;width:0}

/* estados del formulario */
.estado{display:none;text-align:center;padding:14px 0 0}
.estado.ver{display:block}
.estado-ok{background:var(--verde-soft);border:1px solid #A8CFC2;border-radius:var(--r-card);
  padding:26px 24px;margin-top:20px;text-align:left}
.estado-ok h4{font-family:var(--display);font-weight:700;font-size:20px;margin:0 0 9px;
  color:var(--esmeralda)}
.estado-ok p{font-size:14.5px;color:var(--texto-2);margin-bottom:14px}
.estado-ok .btn{margin-top:6px}
.estado-err{background:var(--coral-soft);border:1px solid var(--coral);
  border-radius:var(--r-card);padding:18px 20px;margin-top:18px;font-size:14px;
  color:#6B3A33;text-align:left}
.cargando{opacity:.6;pointer-events:none}

/* ============ CTA FINAL ============ */
.cierre{text-align:center;position:relative;overflow:hidden}
.cierre::after{content:"";position:absolute;inset:0;pointer-events:none;
  background:repeating-linear-gradient(135deg,transparent 0 92px,rgba(201,151,129,.07) 92px 93px)}
.cierre .wrap{position:relative;z-index:1;max-width:740px}
.cierre img{width:66px;margin:0 auto 28px;animation:flota 6.5s ease-in-out infinite}
.cierre .lbl{justify-content:center}
.cierre h2{margin:0 auto .5em;max-width:16ch}
.cierre p{font-size:17px;margin-bottom:2em}
.cierre .hero-cta{justify-content:center}

/* ============ FAQ ============ */
.faq{max-width:850px}
.faq details{background:#fff;border:1px solid var(--champan);border-radius:var(--r-card);
  margin-bottom:12px;overflow:hidden;
  transition:box-shadow .35s var(--ease),border-color .35s}
.faq details:hover{border-color:var(--champan-d)}
.faq details[open]{box-shadow:var(--sombra-m)}
.faq summary{cursor:pointer;list-style:none;padding:22px 58px 22px 26px;position:relative;
  font-family:var(--display);font-weight:700;font-size:18px;color:var(--bosque);
  transition:color .3s}
.faq summary:hover{color:var(--esmeralda)}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";position:absolute;right:26px;top:50%;
  transform:translateY(-50%);font-family:var(--body);font-size:26px;font-weight:300;
  color:var(--coral);line-height:1;transition:transform .3s var(--ease)}
.faq details[open] summary::after{content:"–";transform:translateY(-50%) rotate(180deg)}
.faq .resp{padding:0 26px 24px;color:var(--texto-2);font-size:15.5px}
.faq .resp p:last-child{margin-bottom:0}

/* ============ FOOTER ============ */
footer{background:var(--bosque-2);color:#C6BAAB;padding:64px 0 0;font-size:14.5px}
.f-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr 1.2fr;gap:42px;padding-bottom:46px}
footer h3{font-size:12px;letter-spacing:.18em;text-transform:uppercase;color:var(--dorado-c);
  margin-bottom:18px;font-family:var(--body);font-weight:600}
footer ul{list-style:none;padding:0;margin:0}
footer li{margin-bottom:10px}
footer a{color:#C6BAAB;text-decoration:none;transition:color .28s,padding-left .28s var(--ease)}
footer ul a:hover{color:#fff;padding-left:5px}
footer address a:hover{color:#fff;text-decoration:underline}
footer .logo-f{width:134px;margin-bottom:18px}
footer address{font-style:normal;line-height:1.75}
.f-legal{border-top:1px solid rgba(255,255,255,.1);padding:20px 0;font-size:12.5px;
  display:flex;justify-content:space-between;gap:18px;flex-wrap:wrap;color:#9C8F81}

/* ============ WHATSAPP ============ */
.wa{position:fixed;right:20px;bottom:20px;z-index:70;background:#25D366;color:#fff;
  width:58px;height:58px;border-radius:50%;display:flex;align-items:center;
  justify-content:center;box-shadow:0 6px 20px rgba(37,211,102,.44);text-decoration:none;
  transition:transform .35s var(--ease),box-shadow .35s var(--ease)}
.wa::before{content:"";position:absolute;inset:0;border-radius:50%;background:#25D366;
  opacity:.55;animation:pulso 2.6s ease-out infinite;z-index:-1}
@keyframes pulso{0%{transform:scale(1);opacity:.5}70%{transform:scale(1.65);opacity:0}
  100%{transform:scale(1.65);opacity:0}}
.wa:hover{transform:scale(1.1) rotate(6deg);box-shadow:0 10px 28px rgba(37,211,102,.58)}
.wa svg{width:31px;height:31px;fill:#fff}

/* ============ RESPONSIVE ============ */
@media(max-width:1000px){
  .hero .wrap{grid-template-columns:1fr;gap:44px}
  .hero-img{order:-1;max-width:470px}
  .hero-badge{left:auto;right:-10px}
  .dra{grid-template-columns:1fr;gap:38px}
  .dra-foto{max-width:380px}
  .reserva-grid{grid-template-columns:1fr;gap:32px}
  .cal-marco{padding-top:88%}
  .f-grid{grid-template-columns:1fr 1fr;gap:34px}
}
@media(max-width:820px){
  nav{display:none}
  .burger{display:block}
  nav.abierto{display:block;position:absolute;top:100%;left:0;right:0;background:var(--paper);
    border-bottom:1px solid var(--champan);box-shadow:var(--sombra-f);padding:14px 26px 20px}
  nav.abierto ul{flex-direction:column;gap:0}
  nav.abierto li{border-bottom:1px solid var(--champan)}
  nav.abierto li:last-child{border-bottom:none}
  nav.abierto a{display:block;padding:14px 0;font-size:16px}
  .head-cta .btn-2{display:none}
  .autoridad .wrap{grid-template-columns:1fr 1fr;gap:28px}
  .dato:nth-child(3)::before{display:none}
  .google{grid-template-columns:1fr;gap:26px;padding:32px 26px}
  .google .nota{padding-right:0;padding-bottom:24px;border-right:none;
    border-bottom:1px solid var(--champan)}
  section{padding:62px 0}
  .respuesta{padding:28px 24px}
  .form-caja{padding:26px 22px 24px}
}
@media(max-width:560px){
  .f-grid{grid-template-columns:1fr}
  .hero-cta .btn{width:100%}
  .hero-badge{position:static;margin-top:16px;max-width:none;animation:none}
  .campos{grid-template-columns:1fr}
  .dato+.dato::before{display:none}
}
@media(prefers-reduced-motion:reduce){
  *{animation:none!important;transition:none!important;scroll-behavior:auto!important}
  .rev{opacity:1;transform:none}
  .lbl::before{width:38px}
}

/* ==========================================================================
   COMPONENTES DE PÁGINA INTERIOR
   ========================================================================== */

/* ---------- Miga de pan ---------- */
.ruta{background:var(--marfil);border-bottom:1px solid var(--champan);padding:13px 0;
  font-size:13px}
.ruta ol{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:9px;
  align-items:center;color:var(--texto-3)}
.ruta a{color:var(--esmeralda);text-decoration:none;font-weight:500}
.ruta a:hover{text-decoration:underline}
.ruta li+li::before{content:"›";margin-right:9px;color:var(--champan-d)}

/* ---------- Hero de página interior ---------- */
.p-hero{background:linear-gradient(165deg,var(--bosque) 0%,var(--esmeralda) 70%,#22514F 100%);
  color:var(--paper);position:relative;overflow:hidden}
.p-hero::after{content:"";position:absolute;inset:0;pointer-events:none;
  background:repeating-linear-gradient(135deg,transparent 0 92px,rgba(201,151,129,.07) 92px 93px)}
.p-hero::before{content:"";position:absolute;width:560px;height:560px;right:-170px;top:-200px;
  border-radius:50%;background:radial-gradient(circle,rgba(201,151,129,.15),transparent 68%)}
.p-hero .wrap{position:relative;z-index:1;display:grid;grid-template-columns:1.1fr .9fr;
  gap:52px;align-items:center;padding-top:66px;padding-bottom:66px}
.p-hero .lbl{color:var(--dorado-c)}
.p-hero .lbl::before{background:var(--dorado-c)}
.p-hero h1{font-size:clamp(31px,4.1vw,49px);color:#fff;margin-bottom:.36em;max-width:17ch}
.p-hero h1 i{font-family:var(--display);font-weight:300;font-style:italic;color:var(--dorado-c)}
.p-hero .entradilla{font-size:17.5px;color:#E4D7C7;font-weight:300;max-width:52ch;
  margin-bottom:1.5em}
.p-hero-img{border-radius:var(--r-cont);overflow:hidden;box-shadow:0 24px 58px rgba(0,0,0,.34)}
.p-hero-img img{transition:transform 11s var(--ease)}
.p-hero-img:hover img{transform:scale(1.06)}
.ficha{display:flex;flex-wrap:wrap;gap:10px;margin-top:26px}
.ficha span{background:rgba(253,249,243,.1);border:1px solid rgba(201,151,129,.34);
  color:#E9DCCB;font-size:13px;padding:9px 15px;border-radius:20px;
  transition:background .3s var(--ease),transform .3s var(--ease)}
.ficha span:hover{background:rgba(253,249,243,.17);transform:translateY(-2px)}
.ficha b{color:#fff;font-weight:600}

/* ---------- Cuerpo del artículo ---------- */
.articulo{display:grid;grid-template-columns:1fr 292px;gap:56px;align-items:start}
.cuerpo-txt h2{font-size:clamp(25px,2.9vw,33px);margin:0 0 .5em;max-width:22ch}
.cuerpo-txt h2:not(:first-child){margin-top:1.5em}
.cuerpo-txt h3{font-size:20.5px;margin:1.9em 0 .5em}
.cuerpo-txt p{color:var(--texto-2);margin-bottom:1.15em}
.cuerpo-txt strong{color:var(--bosque);font-weight:600}
.cuerpo-txt ul{padding-left:0;list-style:none;margin:0 0 1.5em}
.cuerpo-txt ul li{position:relative;padding:9px 0 9px 30px;color:var(--texto-2)}
.cuerpo-txt ul li::before{content:"";position:absolute;left:4px;top:19px;width:8px;height:8px;
  border-radius:50%;background:var(--coral)}
.cuerpo-txt ol{padding-left:22px;margin:0 0 1.5em;color:var(--texto-2)}
.cuerpo-txt ol li{padding:7px 0 7px 6px}
.cuerpo-txt ol li::marker{font-family:var(--display);font-weight:700;color:var(--esmeralda)}

/* ---------- Bloque de respuesta destacada ---------- */
.destacado{background:var(--verde-soft);border-left:4px solid var(--esmeralda);
  border-radius:var(--r-card);padding:26px 28px;margin:0 0 1.8em}
.destacado p{margin:0;color:var(--esmeralda);font-size:16.5px}
.destacado p+p{margin-top:.9em}
.aviso-med{background:var(--coral-soft);border:1px solid var(--coral);
  border-radius:var(--r-card);padding:20px 24px;margin:1.8em 0;font-size:14.5px;color:#6B3A33}
.aviso-med strong{color:#5A2F28}

/* ---------- Tabla de precios ---------- */
.tabla-precios{width:100%;border-collapse:collapse;margin:1.2em 0 1.8em;font-size:15px;
  background:#fff;border-radius:var(--r-card);overflow:hidden;box-shadow:var(--sombra)}
.tabla-precios thead th{background:var(--esmeralda);color:#fff;font-family:var(--body);
  font-weight:600;font-size:11.5px;letter-spacing:.14em;text-transform:uppercase;
  text-align:left;padding:15px 18px}
.tabla-precios th.der,.tabla-precios td.der{text-align:right}
.tabla-precios td{padding:15px 18px;border-bottom:1px solid var(--champan);
  color:var(--texto-2);vertical-align:top}
.tabla-precios tbody tr:last-child td{border-bottom:none}
.tabla-precios tbody tr{transition:background .25s}
.tabla-precios tbody tr:hover{background:var(--marfil)}
.tabla-precios .nom{color:var(--bosque);font-weight:600}
.tabla-precios .nom small{display:block;font-weight:400;color:var(--texto-3);font-size:13px;
  margin-top:2px}
.tabla-precios .val{font-family:var(--display);font-weight:700;font-size:17px;
  color:var(--esmeralda);white-space:nowrap}
.scroll-x{overflow-x:auto;-webkit-overflow-scrolling:touch;margin:0 0 1.8em}
.scroll-x .tabla-precios{margin:0;min-width:520px}

/* ---------- Columna lateral ---------- */
.lateral{position:sticky;top:96px;display:flex;flex-direction:column;gap:18px}
.tarjeta-lat{background:#fff;border:1px solid var(--champan);border-radius:var(--r-card);
  padding:24px;box-shadow:var(--sombra)}
.tarjeta-lat h3{font-size:17.5px;margin:0 0 12px}
.tarjeta-lat p{font-size:14px;color:var(--texto-2);margin-bottom:14px}
.tarjeta-lat .btn{width:100%}
.tarjeta-lat.destaca{background:linear-gradient(160deg,var(--bosque),var(--esmeralda));
  border-color:transparent}
.tarjeta-lat.destaca h3{color:#fff}
.tarjeta-lat.destaca p{color:#D8CCBD}
.precio-lat{font-family:var(--display);font-weight:200;font-size:38px;color:#fff;
  line-height:1;margin:4px 0 6px}
.precio-lat small{font-family:var(--body);font-size:13px;font-weight:500;color:var(--dorado-c);
  display:block;margin-top:8px;line-height:1.5}
.indice{list-style:none;padding:0;margin:0}
.indice li{border-bottom:1px solid var(--champan)}
.indice li:last-child{border-bottom:none}
.indice a{display:block;padding:11px 0;font-size:14px;color:var(--texto-2);
  text-decoration:none;transition:color .25s,padding-left .25s var(--ease)}
.indice a:hover{color:var(--esmeralda);padding-left:6px}

/* ---------- Rejilla de datos ---------- */
.datos-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(158px,1fr));gap:16px;
  margin:1.4em 0 2em}
.dato-c{background:#fff;border:1px solid var(--champan);border-radius:var(--r-card);
  padding:22px 20px;text-align:center;transition:transform .35s var(--ease),
  box-shadow .35s var(--ease)}
.dato-c:hover{transform:translateY(-4px);box-shadow:var(--sombra-m)}
.dato-c b{display:block;font-family:var(--display);font-weight:200;font-size:33px;
  color:var(--esmeralda);line-height:1;margin-bottom:8px}
.dato-c span{font-size:13px;color:var(--texto-2);line-height:1.45;display:block}

/* ---------- Comparativa ---------- */
.comparativa{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin:1.4em 0 2em}
.comp-col{background:#fff;border:1px solid var(--champan);border-radius:var(--r-card);
  padding:26px 24px}
.comp-col h3{font-family:var(--display);font-weight:700;font-size:18px;margin:0 0 12px;
  color:var(--bosque)}
.comp-col ul{margin:0}
.comp-col.acento{border-top:3px solid var(--coral)}

/* ---------- CTA intermedio ---------- */
.cta-medio{background:linear-gradient(160deg,var(--bosque),var(--esmeralda));
  border-radius:var(--r-cont);padding:40px 42px;color:var(--paper);margin:2.2em 0;
  position:relative;overflow:hidden}
.cta-medio::after{content:"";position:absolute;inset:0;pointer-events:none;
  background:repeating-linear-gradient(135deg,transparent 0 78px,rgba(201,151,129,.07) 78px 79px)}
.cta-medio > *{position:relative;z-index:1}
.cta-medio h3{color:#fff;font-size:25px;margin:0 0 10px;max-width:20ch}
.cta-medio p{color:#D8CCBD;margin-bottom:20px;max-width:56ch;font-size:15.5px}
.cta-medio .btn{margin-right:10px}

/* ---------- Relacionados ---------- */
.relacionados{display:grid;grid-template-columns:repeat(auto-fill,minmax(238px,1fr));gap:18px}
.rel-card{background:#fff;border:1px solid var(--champan);border-radius:var(--r-card);
  padding:22px;text-decoration:none;color:inherit;display:block;box-shadow:var(--sombra);
  transition:transform .38s var(--ease),box-shadow .38s var(--ease),border-color .38s}
.rel-card:hover{transform:translateY(-5px);box-shadow:var(--sombra-f);
  border-color:var(--champan-d)}
.rel-card h3{font-size:17.5px;margin:0 0 7px;transition:color .3s}
.rel-card:hover h3{color:var(--esmeralda)}
.rel-card p{font-size:13.5px;color:var(--texto-2);margin:0 0 12px}
.rel-card .mas{font-size:13px;font-weight:600;color:var(--esmeralda);
  display:inline-flex;gap:7px;align-items:center}
.rel-card .mas .fl{transition:transform .35s var(--ease)}
.rel-card:hover .mas .fl{transform:translateX(5px)}

/* ---------- Galería de resultados en interior ---------- */
.gal{display:grid;grid-template-columns:repeat(auto-fill,minmax(258px,1fr));gap:18px;
  margin:1.4em 0 1.6em}
.gal figure{margin:0;border-radius:var(--r-card);overflow:hidden;background:#fff;
  border:1px solid var(--champan);box-shadow:var(--sombra);
  transition:transform .4s var(--ease),box-shadow .4s var(--ease)}
.gal figure:hover{transform:translateY(-5px);box-shadow:var(--sombra-f)}
.gal .m{overflow:hidden}
.gal img{width:100%;aspect-ratio:1/1;object-fit:cover;transition:transform .85s var(--ease)}
.gal figure:hover img{transform:scale(1.07)}
.gal figcaption{padding:13px 16px;font-size:13px;color:var(--texto-2)}

/* ---------- Contenido legal ---------- */
.legal{max-width:800px}
.legal h2{font-size:25px;margin:1.8em 0 .5em}
.legal h2:first-child{margin-top:0}
.legal h3{font-size:18px;margin:1.4em 0 .4em}
.legal p,.legal li{color:var(--texto-2);font-size:15.5px}
.legal ul{list-style:none;padding:0;margin:0 0 1.4em}
.legal ul li{position:relative;padding:7px 0 7px 26px}
.legal ul li::before{content:"";position:absolute;left:3px;top:17px;width:7px;height:7px;
  border-radius:50%;background:var(--champan-d)}
.legal .fecha{font-size:13.5px;color:var(--texto-3);margin-bottom:2em}

/* ---------- Responsive de interiores ---------- */
@media(max-width:980px){
  .p-hero .wrap{grid-template-columns:1fr;gap:38px}
  .p-hero-img{order:-1;max-width:470px}
  .articulo{grid-template-columns:1fr;gap:40px}
  .lateral{position:static;flex-direction:row;flex-wrap:wrap}
  .lateral > *{flex:1 1 262px}
  .comparativa{grid-template-columns:1fr}
}
@media(max-width:560px){
  .cta-medio{padding:28px 24px}
  .cta-medio .btn{width:100%;margin:0 0 10px}
  .lateral{flex-direction:column}
}

/* ---------- Mapa de contacto con capa de respaldo ---------- */
.mapa-caja{position:relative;width:100%;padding-top:100%;border-radius:var(--r-cont);
  overflow:hidden;box-shadow:0 24px 58px rgba(0,0,0,.34);
  background:linear-gradient(160deg,var(--champan),var(--champan-d))}
.mapa-caja iframe{position:absolute;inset:0;width:100%;height:100%;border:0;z-index:2}
.mapa-fallback{position:absolute;inset:0;z-index:1;display:flex;flex-direction:column;
  align-items:center;justify-content:center;text-align:center;padding:30px;gap:8px}
.mapa-fallback img{width:66px;opacity:.45;margin-bottom:8px}
.mapa-fallback b{font-family:var(--display);font-weight:700;font-size:18px;color:var(--esmeralda)}
.mapa-fallback span{font-size:14px;color:#6E5A48;margin-bottom:14px}
.mapa-caja{padding-top:62%;margin:1.2em 0 0}

/* ---------- Tarjeta NAP del hero de contacto ---------- */
.tarjeta-nap{background:linear-gradient(160deg,var(--paper),var(--marfil));
  border-radius:var(--r-cont);padding:44px 34px;text-align:center;
  box-shadow:0 24px 58px rgba(0,0,0,.32);position:relative;overflow:hidden}
.tarjeta-nap::before{content:"";position:absolute;inset:0;pointer-events:none;
  background:repeating-linear-gradient(135deg,transparent 0 66px,rgba(151,118,67,.05) 66px 67px)}
.tarjeta-nap > *{position:relative}
.tarjeta-nap img{width:60px;margin:0 auto 18px;opacity:.5}
.tarjeta-nap b{display:block;font-family:var(--display);font-weight:700;font-size:25px;
  color:var(--bosque);line-height:1.25;margin-bottom:10px}
.tarjeta-nap > span{display:block;font-size:15px;color:var(--texto-2);line-height:1.6;
  margin-bottom:22px}
.nap-datos{border-top:1px solid var(--champan-d);border-bottom:1px solid var(--champan-d);
  padding:18px 0;margin-bottom:24px;display:flex;flex-direction:column;gap:8px}
.nap-datos a{color:var(--esmeralda);font-weight:600;font-size:15px;text-decoration:none;
  word-break:break-word;transition:color .25s}
.nap-datos a:hover{color:var(--coral-d);text-decoration:underline}

/* ---------- Tira de portadas circulares ---------- */
.tira-portadas{display:grid;grid-template-columns:repeat(6,1fr);
  gap:22px;max-width:940px;margin:0 auto}
@media(max-width:860px){.tira-portadas{grid-template-columns:repeat(3,1fr)}}
@media(max-width:460px){.tira-portadas{grid-template-columns:repeat(2,1fr);gap:16px}}
.portada{text-decoration:none;color:inherit;text-align:center;display:block}
.portada img{width:100%;max-width:170px;aspect-ratio:1/1;object-fit:cover;border-radius:50%;
  margin:0 auto 14px;box-shadow:var(--sombra-m);
  transition:transform .42s var(--ease),box-shadow .42s var(--ease)}
.portada:hover img{transform:translateY(-6px) scale(1.04);box-shadow:var(--sombra-f)}
.portada span{display:block;font-family:var(--display);font-weight:700;font-size:15.5px;
  color:var(--bosque);transition:color .3s}
.portada:hover span{color:var(--coral-d)}

/* la foto de la Dra. en el home ya no es un marcador */
.dra-foto img[src*="/img/dra/"]{width:100%;height:100%;object-fit:cover;
  border-radius:var(--r-cont);opacity:1}

/* ---------- Opiniones de pacientes ---------- */
.opiniones{columns:3 300px;column-gap:22px}
.opinion{margin:0 0 22px;break-inside:avoid;background:#fff;border:1px solid var(--champan);
  border-radius:var(--r-card);padding:26px 26px 22px;box-shadow:var(--sombra);
  transition:transform .38s var(--ease),box-shadow .38s var(--ease)}
.opinion:hover{transform:translateY(-4px);box-shadow:var(--sombra-f)}
.op-estrellas{color:var(--coral);font-size:16px;letter-spacing:3px;margin-bottom:12px}
.opinion blockquote{margin:0}
.opinion blockquote p{font-size:15px;color:var(--texto-2);line-height:1.68;margin:0 0 .9em}
.opinion blockquote p:last-child{margin-bottom:0}
.opinion figcaption{margin-top:16px;padding-top:14px;border-top:1px solid var(--champan);
  display:flex;flex-wrap:wrap;align-items:baseline;gap:10px}
.opinion figcaption b{font-family:var(--display);font-weight:700;font-size:15.5px;
  color:var(--bosque)}
.op-fecha{font-size:12.5px;color:var(--texto-3)}
.op-ctx{font-size:12px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;
  color:var(--dorado);background:var(--marfil);padding:4px 10px;border-radius:20px}
.opiniones-destacada{max-width:830px;margin:0 auto}
.opinion.destacada{border-left:4px solid var(--coral);padding:34px 36px 28px}
.opinion.destacada blockquote p{font-size:16.5px}
@media(max-width:900px){.opiniones{columns:2 280px}}
@media(max-width:600px){.opiniones{columns:1}}

/* ---------- Mini-opiniones del home ---------- */
.op-mini{display:grid;gap:16px;margin-top:18px}
.op-mini figure{margin:0;padding:16px 18px;background:var(--marfil);
  border-left:3px solid var(--coral);border-radius:0 var(--r-card) var(--r-card) 0;
  transition:transform .3s var(--ease)}
.op-mini figure:hover{transform:translateX(4px)}
.op-mini blockquote{margin:0;font-size:14.5px;color:var(--texto-2);line-height:1.62;
  font-style:italic}
.op-mini figcaption{margin-top:9px;font-size:12.5px;color:var(--texto-3)}
.op-mini figcaption b{font-family:var(--display);font-weight:700;font-size:14px;
  color:var(--bosque);font-style:normal}

/* ---------- Firma de autoría (E-E-A-T) ---------- */
.autor-linea{display:flex;align-items:center;gap:14px;margin-top:24px;padding-top:22px;
  border-top:1px solid rgba(201,151,129,.32)}
.autor-linea img{width:52px;height:52px;border-radius:50%;object-fit:cover;
  object-position:center 18%;flex-shrink:0;border:2px solid rgba(201,151,129,.44)}
.autor-linea span{font-size:13.5px;color:#D8CCBD;line-height:1.5}
.autor-linea b{color:#fff;font-weight:600}
.autor-linea a{color:#fff;text-decoration:none}
.autor-linea a:hover{text-decoration:underline}

/* ---------- Índice del blog ---------- */
.posts{display:grid;grid-template-columns:repeat(auto-fill,minmax(310px,1fr));gap:24px}
.post{background:#fff;border:1px solid var(--champan);border-radius:var(--r-card);
  overflow:hidden;text-decoration:none;color:inherit;display:flex;flex-direction:column;
  box-shadow:var(--sombra);
  transition:transform .42s var(--ease),box-shadow .42s var(--ease),border-color .42s}
.post:hover{transform:translateY(-7px);box-shadow:var(--sombra-f);border-color:var(--champan-d)}
.post-foto{aspect-ratio:16/10;overflow:hidden;background:var(--champan)}
.post-foto img{width:100%;height:100%;object-fit:cover;transition:transform .85s var(--ease)}
.post:hover .post-foto img{transform:scale(1.07)}
.post-cuerpo{padding:22px 24px 24px;flex:1;display:flex;flex-direction:column}
.post-cat{font-size:11px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;
  color:var(--dorado);margin-bottom:10px}
.post h2{font-size:20px;margin:0 0 10px;max-width:none;transition:color .3s}
.post:hover h2{color:var(--esmeralda)}
.post p{font-size:14.5px;color:var(--texto-2);margin:0 0 14px;flex:1}
.post-fecha{font-size:12.5px;color:var(--texto-3)}

/* el articulo del blog usa listas mas compactas */
article .cuerpo-txt ul{margin-bottom:1.2em}
article .cuerpo-txt h3{font-size:19px;margin:1.6em 0 .4em}

/* ---------- Redes sociales en el pie ---------- */
.redes{display:flex;gap:12px;margin-top:18px}
.redes a{width:38px;height:38px;border-radius:50%;display:flex;align-items:center;
  justify-content:center;background:rgba(253,249,243,.08);
  border:1px solid rgba(201,151,129,.28);
  transition:background .3s var(--ease),transform .3s var(--ease),border-color .3s}
.redes a:hover{background:var(--coral);border-color:var(--coral);transform:translateY(-3px)}
.redes svg{width:17px;height:17px;fill:#C6BAAB;transition:fill .3s}
.redes a:hover svg{fill:var(--bosque)}

/* ---------- Selector de idioma ---------- */
.idioma{display:inline-flex;align-items:center;justify-content:center;min-width:38px;height:38px;
  border:1.5px solid var(--champan-d);border-radius:var(--r-btn);font-family:var(--body);
  font-size:12.5px;font-weight:600;letter-spacing:.08em;color:var(--esmeralda);
  text-decoration:none;transition:all .3s var(--ease)}
.idioma:hover{background:var(--esmeralda);border-color:var(--esmeralda);color:#fff;
  transform:translateY(-2px)}
@media(max-width:820px){.idioma{min-width:34px;height:34px;font-size:11.5px}}

/* ---------- Créditos de autoría ---------- */
.creditos{border-top:1px solid rgba(255,255,255,.07);padding:16px 0 22px;
  display:flex;align-items:center;justify-content:center;gap:10px;flex-wrap:wrap;
  font-size:12px;color:#7E7263;letter-spacing:.02em}
.creditos span{color:#7E7263}
.creditos a{color:#9C8F81;text-decoration:none;font-weight:600;
  transition:color .28s var(--ease)}
.creditos a:hover{color:var(--dorado-c)}
.creditos .cred-li{display:inline-flex;align-items:center;justify-content:center;
  width:22px;height:22px;border-radius:4px;transition:transform .28s var(--ease)}
.creditos .cred-li:hover{transform:translateY(-2px)}
.creditos .cred-li svg{width:13px;height:13px;fill:#7E7263;transition:fill .28s}
.creditos .cred-li:hover svg{fill:var(--dorado-c)}
@media(max-width:560px){.creditos{gap:7px;font-size:11.5px;text-align:center}}

/* ==========================================================
   CORRECCIONES MÓVIL · 29-jul-2026
   Van al final para ganar en especificidad a las reglas previas.
   ========================================================== */

/* --- Ningún elemento puede ensanchar la página --- */
html,body{max-width:100%;overflow-x:clip}
img,video,iframe,table,pre{max-width:100%}

/* El hero medía 470px fijos: en una pantalla de 390px se salía. */
.hero-img,.p-hero-img,.dra-foto{max-width:100%!important}

@media(max-width:1000px){
  .hero-img{max-width:min(470px,100%)}
  .p-hero-img{max-width:min(470px,100%)}
}

/* La chapa de reseñas sobresalía 10px por la derecha. */
@media(max-width:1000px){ .hero-badge{right:0;left:auto} }

/* --- Tablas anchas: scroll DENTRO de su caja, no de la página --- */
.scroll-x{overflow-x:auto;-webkit-overflow-scrolling:touch;max-width:100%}

@media(max-width:820px){

  /* ---- Barra superior: una sola línea, compacta ---- */
  .top{font-size:11px;padding:6px 0;letter-spacing:.03em}
  .top .wrap{flex-wrap:nowrap;justify-content:center;gap:0;padding:0 16px}
  /* La dirección se repite en el pie y en /contacto/: en móvil estorba. */
  .top .wrap>*:first-child{display:none}
  .top .wrap>*+*{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

  /* ---- Cabecera: todo dentro del mismo margen de 16px ---- */
  header .wrap{padding:0 16px;gap:12px}
  .head-cta{gap:8px;flex:0 0 auto}

  /* La hamburguesa deja de ir pegada al borde y gana área de toque
     de 44px, el mínimo recomendado para el pulgar. */
  .burger{width:44px;height:44px;display:inline-flex!important;
    align-items:center;justify-content:center;flex-direction:column;
    margin:0;padding:0;flex:0 0 auto}

  /* El botón de reservar estaba oculto en móvil: era el CTA principal.
     Vuelve, en versión compacta, junto a la hamburguesa. */
  .head-cta .btn-2{display:inline-flex!important;padding:10px 14px;
    font-size:13px;white-space:nowrap}

  .marca img{width:34px;height:auto}
  .marca b{font-size:15px}
  .marca .sub{font-size:9.5px;letter-spacing:.13em}
}

@media(max-width:560px){
  .top{font-size:10.2px}
  .head-cta .btn-2{padding:9px 12px;font-size:12.2px}
  .marca .sub{display:none}          /* deja respirar al logo y al botón */

  /* Pista visible de que la tabla se desliza */
  .scroll-x{position:relative}
  .scroll-x table{min-width:480px}
  .scroll-x::after{content:"→ desliza para ver la tabla completa";
    display:block;font-size:11px;color:var(--champan-d);
    padding:8px 0 0;text-align:right}
}

@media(max-width:400px){
  .head-cta .btn-2{display:none!important}   /* aquí ya no cabe: manda la hamburguesa */
  .burger{margin-left:auto}
}



/* ==========================================================
   AJUSTES MÓVIL (2ª ronda) · 29-jul-2026
   ========================================================== */

/* --- EL CORTE POR LA DERECHA ---
   Los hijos de un grid/flex tienen min-width:auto. Con .scroll-x dentro,
   la tabla (min-width:520px) no hacía scroll: estiraba la columna entera
   y sacaba la página de la pantalla. min-width:0 devuelve el scroll a su
   caja, que es donde debe estar. */
.articulo,
.articulo > *,
.cuerpo-txt,
.lateral,
.lateral > *{min-width:0}

/* Nada de palabras larguísimas rompiendo la caja (URLs, nombres técnicos) */
.cuerpo-txt{overflow-wrap:break-word}

/* Evita que Chrome en Android agrande el texto por su cuenta */
html{-webkit-text-size-adjust:100%;text-size-adjust:100%}

@media(max-width:820px){
  /* --- El botón de reservar sale de la cabecera en TODO el móvil ---
     Ocupaba el sitio de la hamburguesa y aparecía cortado. La reserva
     sigue a un toque: dentro del menú, y en el botón flotante. */
  .head-cta .btn-2{display:none!important}
  .burger{margin-left:auto}

  /* La tabla cabe mejor y sigue siendo legible */
  .scroll-x .tabla-precios{min-width:440px}
}

/* ---------- La tabla de precios deja de ser tabla en móvil ----------
   Con scroll horizontal el precio quedaba FUERA de pantalla: había que
   deslizar para ver lo único que se viene a buscar. Cada fila pasa a ser
   una ficha apilada: nombre arriba, precio debajo. Sin scroll. */
@media(max-width:620px){
  .scroll-x{overflow-x:visible;margin:0}
  .scroll-x::after{display:none}
  .scroll-x .tabla-precios,
  .tabla-precios{min-width:0;width:100%;display:block;border-collapse:separate}
  .tabla-precios thead{position:absolute;width:1px;height:1px;overflow:hidden;
    clip:rect(0 0 0 0);white-space:nowrap}   /* sigue existiendo para lectores de pantalla */
  .tabla-precios tbody,
  .tabla-precios tr,
  .tabla-precios td{display:block;width:auto}
  .tabla-precios tr{padding:15px 0;border-bottom:1px solid var(--champan)}
  .tabla-precios tr:last-child{border-bottom:none}
  .tabla-precios td{border:none;padding:0}
  .tabla-precios td.nom{font-weight:600;color:var(--bosque);line-height:1.35}
  .tabla-precios td.nom small{display:block;font-weight:400;font-size:12.5px;
    color:var(--texto-2);margin-top:3px}
  .tabla-precios td.val{margin-top:9px;text-align:left;
    font-size:19px;font-weight:600;color:var(--esmeralda)}
  .tabla-precios td.val .desde{display:inline-block;margin:0 7px 0 0;
    vertical-align:middle;position:relative;top:-1px}
}

/* --- La palabra «Desde» delante del precio --- */
.desde{display:block;font-family:var(--body);font-size:10.5px;font-weight:600;
  letter-spacing:.14em;text-transform:uppercase;color:var(--champan-d);
  line-height:1;margin-bottom:3px}
.tabla-precios .val{white-space:nowrap}

/* Las cifras de las tarjetas se partían: «$100.0 / 00». Nunca deben cortarse. */
.dato-c b{white-space:nowrap}
@media(max-width:560px){
  .dato-c b{font-size:27px}
}
