/* normadurepsicologa.com — estilos de la web pública */

@font-face { font-family: 'Sora'; font-style: normal; font-weight: 300 800; font-display: swap; src: url(../fuentes/sora.woff2) format('woff2'); }
@font-face { font-family: 'Figtree'; font-style: normal; font-weight: 300 900; font-display: swap; src: url(../fuentes/figtree.woff2) format('woff2'); }

:root {
  --fondo: #f6faf9;
  --papel: #ffffff;
  --tinta: #16323a;
  --texto: #3a5158;
  --suave: #586d73;
  --linea: #dde9e7;
  --teal: #2f7d86;
  --teal-osc: #1d5d66;
  --teal-claro: #e3f2f0;
  --violeta: #6f55b3;
  --rosa: #b5508f;
  --verde: #7fb653;
  --oro: #e8bb55;
  --degradado: linear-gradient(100deg, #2f8f9b 0%, #6a5bb8 55%, #b5508f 100%);
  --sombra: 0 1px 2px rgba(22, 50, 58, .05), 0 12px 32px -12px rgba(22, 50, 58, .18);
  --sombra-alta: 0 2px 4px rgba(22, 50, 58, .06), 0 30px 60px -20px rgba(22, 50, 58, .28);
  --radio: 22px;
  --radio-peq: 14px;
  --ancho: 1200px;
  --cab: 88px;
  --suave-curva: cubic-bezier(.2, .7, .2, 1);
  --rebote: cubic-bezier(.34, 1.56, .64, 1);
}

*, *::before, *::after { box-sizing: border-box; }
[hidden] { display: none !important; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; scroll-padding-top: calc(var(--cab) + 16px); }
body {
  margin: 0; background: var(--fondo); color: var(--texto);
  font: 400 17px/1.65 'Figtree', system-ui, -apple-system, 'Segoe UI', sans-serif;
  -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility; overflow-x: hidden;
}
body.modal-abierto, body.menu-abierto { overflow: hidden; }
img { max-width: 100%; height: auto; display: block; }
a { color: var(--teal); text-decoration-thickness: 1px; text-underline-offset: 3px; }
a:hover { color: var(--teal-osc); }
button { font: inherit; color: inherit; cursor: pointer; }
h1, h2, h3, h4 { font-family: 'Sora', 'Figtree', sans-serif; color: var(--tinta); line-height: 1.15; letter-spacing: -.02em; margin: 0 0 .5em; font-weight: 600; }
p { margin: 0 0 1em; }
::selection { background: #cfe7e4; color: var(--tinta); }
:focus-visible { outline: 3px solid #7cc3bb; outline-offset: 3px; border-radius: 6px; }
.ico { flex: none; }

.saltar { position: absolute; left: -9999px; top: 8px; z-index: 100; background: var(--tinta); color: #fff; padding: 10px 16px; border-radius: 10px; }
.saltar:focus { left: 16px; }

.envoltorio { width: 100%; max-width: var(--ancho); margin: 0 auto; padding: 0 24px; }
.envoltorio--estrecho { max-width: 820px; }
.seccion { padding: 96px 0; position: relative; }
.seccion + .seccion:not(.banda):not(.resenas):not(.servicios):not(.ayuda):not(.cita):not(.guias-portada) { padding-top: 24px; }
@media (max-width: 700px) { .seccion { padding: 64px 0; } .envoltorio { padding-left: 18px; padding-right: 18px; } }

.antetitulo { font: 600 14px/1.3 'Figtree', sans-serif; color: var(--teal-osc); margin: 0 0 12px; }
.titulo-pagina { font-size: clamp(36px, 5.6vw, 64px); font-weight: 650; letter-spacing: -.035em; }
.titulo-seccion { font-size: clamp(28px, 3.6vw, 44px); letter-spacing: -.03em; }
.titulo-seccion--peq { font-size: clamp(22px, 2.4vw, 28px); }
.degradado { background: var(--degradado); -webkit-background-clip: text; background-clip: text; color: transparent; background-size: 200% 100%; animation: brillo-texto 8s ease-in-out infinite alternate; }
@keyframes brillo-texto { to { background-position: 100% 0; } }
.cab-seccion { max-width: 760px; margin: 0 0 44px; }
.cab-seccion--fila { max-width: none; display: flex; justify-content: space-between; align-items: flex-end; gap: 24px 48px; flex-wrap: wrap; }
.cab-seccion__texto { max-width: 460px; margin: 0; color: var(--suave); }

/* ---------------------------------------------------------------- botones */
.boton {
  --bg: var(--tinta); --fg: #fff;
  display: inline-flex; align-items: center; justify-content: center; gap: 10px;
  padding: 14px 24px; border-radius: 999px; border: 1.5px solid transparent;
  background: var(--bg); color: var(--fg); font: 600 16px/1.2 'Figtree', sans-serif; text-decoration: none;
  transition: transform .35s var(--suave-curva), box-shadow .35s, background .3s, color .3s, border-color .3s;
  position: relative; isolation: isolate; overflow: hidden; white-space: nowrap;
}
.boton:hover { color: var(--fg); transform: translateY(-2px); }
.boton--principal { --bg: var(--teal); box-shadow: 0 10px 24px -10px rgba(47, 125, 134, .7); }
.boton--principal::before { content: ''; position: absolute; inset: 0; background: var(--degradado); opacity: 0; transition: opacity .4s; z-index: -1; }
.boton--principal:hover::before { opacity: 1; }
.boton--principal:hover { box-shadow: 0 16px 34px -12px rgba(106, 91, 184, .7); }
.boton--borde { --bg: transparent; --fg: var(--tinta); border-color: #c5d8d5; }
.boton--borde:hover { --fg: var(--tinta); border-color: var(--teal); background: #fff; }
.boton--claro { --bg: #fff; --fg: var(--tinta); }
.boton--borde-claro { --bg: transparent; --fg: #fff; border-color: rgba(255, 255, 255, .45); }
.boton--borde-claro:hover { background: rgba(255, 255, 255, .12); border-color: #fff; }
.boton--grande { padding: 17px 30px; font-size: 17px; }
.boton--peq { padding: 10px 18px; font-size: 15px; }
.boton--ancho { width: 100%; }
.enlace { background: none; border: 0; padding: 0; color: inherit; text-decoration: underline; text-underline-offset: 3px; }
.enlace-flecha { display: inline-flex; align-items: center; gap: 8px; font-weight: 600; text-decoration: none; color: var(--teal-osc); }
.enlace-flecha .ico { transition: transform .3s var(--suave-curva); }
.enlace-flecha:hover .ico { transform: translateX(5px); }

/* --------------------------------------------------------------- cabecera */
.cab { position: fixed; inset: 0 0 auto; z-index: 40; height: var(--cab); transition: transform .45s var(--suave-curva), background .3s, box-shadow .3s; }
.cab.con-fondo { background: rgba(246, 250, 249, .82); -webkit-backdrop-filter: saturate(1.6) blur(16px); backdrop-filter: saturate(1.6) blur(16px); box-shadow: 0 1px 0 rgba(22, 50, 58, .07); }
.cab.oculta { transform: translateY(-100%); }
.cab__in { height: 100%; display: flex; align-items: center; gap: 24px; max-width: 1320px; }
.cab__logo { flex: none; }
.cab__logo img { width: 250px; height: auto; }
.menu { margin-left: auto; }
.menu__lista { list-style: none; margin: 0; padding: 0; display: flex; align-items: center; gap: 2px; }
.menu__lista > li > a, .menu__boton {
  display: inline-flex; align-items: center; gap: 6px; padding: 9px 12px; border-radius: 999px; border: 0; background: none;
  color: var(--tinta); font: 500 15.5px/1 'Figtree', sans-serif; text-decoration: none; transition: background .25s; white-space: nowrap;
}
.menu__lista > li > a:hover, .menu__boton:hover, .menu__desp.abierto .menu__boton { background: rgba(47, 125, 134, .09); color: var(--tinta); }
.menu__lista a[aria-current] { color: var(--teal); }
.menu__boton svg { transition: transform .3s; }
.menu__desp { position: relative; }
.menu__desp.abierto .menu__boton svg { transform: rotate(180deg); }
.sub {
  position: absolute; top: calc(100% + 10px); left: 50%; width: 360px; list-style: none; margin: 0; padding: 10px;
  background: #fff; border-radius: 20px; box-shadow: var(--sombra-alta); border: 1px solid var(--linea);
  opacity: 0; visibility: hidden; transform: translate(-50%, 8px) scale(.98); transform-origin: top center;
  transition: opacity .25s, transform .3s var(--suave-curva), visibility 0s .3s;
}
.sub::before { content: ''; position: absolute; inset: -12px 0 auto; height: 12px; }
.menu__desp.abierto .sub { opacity: 1; visibility: visible; transform: translate(-50%, 0) scale(1); transition-delay: 0s; }
.sub a { display: flex; gap: 14px; align-items: center; padding: 10px 12px; border-radius: 14px; text-decoration: none; color: var(--texto); transition: background .2s; }
.sub a:hover { background: var(--fondo); }
.sub__ico { width: 44px; height: 44px; border-radius: 12px; background: var(--teal-claro); display: grid; place-items: center; flex: none; }
.sub__ico img { width: 30px; height: 30px; object-fit: contain; }
.sub strong { display: block; color: var(--tinta); font-weight: 600; font-size: 15.5px; }
.sub small { display: block; color: var(--suave); font-size: 13.5px; line-height: 1.35; }
.cab__acciones { display: flex; align-items: center; gap: 10px; }
.cab__tel { display: inline-flex; align-items: center; gap: 8px; color: var(--tinta); font-weight: 600; text-decoration: none; padding: 8px 10px; }
.cab__hamburguesa { display: none; width: 46px; height: 46px; border-radius: 50%; border: 1px solid var(--linea); background: #fff; position: relative; }
.cab__hamburguesa span { position: absolute; left: 13px; right: 13px; height: 2px; border-radius: 2px; background: var(--tinta); transition: transform .35s var(--suave-curva), top .35s; }
.cab__hamburguesa span:first-child { top: 18px; }
.cab__hamburguesa span:last-child { top: 26px; }
.menu-abierto .cab__hamburguesa span:first-child { top: 22px; transform: rotate(45deg); }
.menu-abierto .cab__hamburguesa span:last-child { top: 22px; transform: rotate(-45deg); }
@media (max-width: 1400px) { .cab__tel span { display: none; } }
.cab__tel { white-space: nowrap; }
@media (max-width: 1220px) {
  .menu { display: none; }
  .cab__acciones { margin-left: auto; }
  .cab__hamburguesa { display: block; }
  .cab__logo img { width: 240px; }
}
@media (max-width: 520px) { .cab__cita span { display: none; } .cab__cita { padding: 11px; } :root { --cab: 74px; } .cab__logo img { width: 200px; } .cab__tel { display: none; } }

.movil { position: fixed; inset: 0; z-index: 39; background: var(--fondo); padding: calc(var(--cab) + 12px) 0 40px; overflow-y: auto; opacity: 0; transition: opacity .35s; }
.menu-abierto .movil { opacity: 1; }
.menu-abierto .cab { background: var(--fondo); }
.movil__in { max-width: 560px; margin: 0 auto; padding: 0 22px; }
.movil__titulo { font-size: 13px; font-weight: 600; color: var(--suave); margin: 22px 0 6px; }
.movil__lista { list-style: none; margin: 0; padding: 0; }
.movil__lista a { display: flex; justify-content: space-between; align-items: center; padding: 13px 0; border-bottom: 1px solid var(--linea); color: var(--tinta); font: 500 20px/1.2 'Sora', sans-serif; text-decoration: none; transform: translateY(12px); opacity: 0; transition: transform .5s var(--suave-curva), opacity .5s; }
.menu-abierto .movil__lista a { transform: none; opacity: 1; }
.movil__lista li:nth-child(2) a { transition-delay: .04s; } .movil__lista li:nth-child(3) a { transition-delay: .08s; } .movil__lista li:nth-child(4) a { transition-delay: .12s; } .movil__lista li:nth-child(5) a { transition-delay: .16s; }
.movil__pie { display: grid; gap: 10px; margin-top: 28px; }

/* ----------------------------------------------------------- aurora / hero */
.hero__aurora { position: absolute; inset: 0; overflow: hidden; z-index: -1; pointer-events: none; }
.hero__aurora span { position: absolute; border-radius: 50%; filter: blur(70px); opacity: .55; animation: deriva 22s ease-in-out infinite alternate; }
.hero__aurora span:nth-child(1) { width: 52vw; height: 52vw; max-width: 720px; max-height: 720px; background: #9bd3cc; top: -18%; right: -8%; }
.hero__aurora span:nth-child(2) { width: 38vw; height: 38vw; max-width: 520px; max-height: 520px; background: #c6b6ec; top: 30%; right: 22%; animation-duration: 28s; animation-delay: -6s; }
.hero__aurora span:nth-child(3) { width: 30vw; height: 30vw; max-width: 420px; max-height: 420px; background: #f4dc9b; bottom: -20%; left: -6%; animation-duration: 26s; animation-delay: -12s; }
.hero__aurora--suave span { opacity: .32; }
@keyframes deriva {
  0% { transform: translate3d(0, 0, 0) scale(1); }
  50% { transform: translate3d(-6%, 8%, 0) scale(1.12); }
  100% { transform: translate3d(5%, -4%, 0) scale(.94); }
}

.hero { position: relative; isolation: isolate; min-height: min(100svh, 900px); display: flex; align-items: center; padding: calc(var(--cab) + 40px) 0 80px; overflow: hidden; }
.hero__in { display: grid; grid-template-columns: 1.08fr .92fr; gap: 40px; align-items: center; }
.hero__titulo { font-size: clamp(34px, 5.4vw, 76px); font-weight: 650; letter-spacing: -.045em; line-height: 1.02; margin-bottom: 22px; }
.hero__titulo .linea { display: block; white-space: nowrap; }
.hero__titulo .degradado { display: inline-block; padding-bottom: .08em; }
/* Las dos líneas del título con el color en movimiento continuo */
.hero__titulo .linea { background: linear-gradient(90deg, #1d5d66, #2f8f9b, #6a5bb8, #b5508f, #2f8f9b, #1d5d66); background-size: 300% 100%; -webkit-background-clip: text; background-clip: text; color: transparent; animation: fluir 4s linear infinite; padding-bottom: .08em; }
.hero__titulo .linea + .linea { animation-delay: -1.2s; }
@keyframes fluir { from { background-position: 0% 50%; } to { background-position: 150% 50%; } }
@media (max-width: 900px) { .hero__titulo { font-size: clamp(34px, 10.5vw, 64px); } }
.hero__sub { font-size: clamp(18px, 1.6vw, 21px); line-height: 1.55; max-width: 560px; color: var(--texto); }
.hero__acciones { display: flex; flex-wrap: wrap; gap: 12px; margin: 30px 0 34px; }
.hero__sellos { list-style: none; padding: 0; margin: 0; display: flex; flex-wrap: wrap; gap: 10px 22px; font-size: 15px; color: var(--suave); }
.hero__sellos li { display: inline-flex; align-items: center; gap: 8px; }
.hero__sellos strong { color: var(--tinta); }
.hero__sellos .ico { color: var(--teal); }
.estrellas { display: inline-flex; gap: 1px; color: var(--oro); vertical-align: -2px; }
.hero__visual { position: relative; aspect-ratio: 1; max-width: 560px; justify-self: center; width: 100%; --mx: 0; --my: 0; }
.hero__mancha {
  position: absolute; inset: 8%; background: linear-gradient(140deg, #bfe4df, #d9cdf3 55%, #f6e3b5);
  border-radius: 42% 58% 63% 37% / 41% 44% 56% 59%; animation: morfo 16s ease-in-out infinite;
  transform: translate(calc(var(--mx) * -18px), calc(var(--my) * -18px));
  box-shadow: inset 0 0 80px rgba(255, 255, 255, .6);
}
@keyframes morfo {
  0%, 100% { border-radius: 42% 58% 63% 37% / 41% 44% 56% 59%; }
  33% { border-radius: 63% 37% 41% 59% / 55% 62% 38% 45%; }
  66% { border-radius: 38% 62% 52% 48% / 37% 48% 52% 63%; }
}
.hero__foto { position: relative; width: 100%; height: auto; transform: translate(calc(var(--mx) * 14px), calc(var(--my) * 14px)); transition: transform .4s var(--suave-curva); filter: drop-shadow(0 30px 40px rgba(22, 50, 58, .18)); }
.hero__ficha {
  position: absolute; display: flex; flex-direction: column; gap: 2px; padding: 12px 16px; border-radius: 16px;
  background: rgba(255, 255, 255, .86); -webkit-backdrop-filter: blur(12px); backdrop-filter: blur(12px);
  box-shadow: var(--sombra); font-size: 14px; color: var(--tinta); animation: flotar 6s ease-in-out infinite;
}
.hero__ficha strong { font-family: 'Sora', sans-serif; font-weight: 600; }
.hero__ficha small { color: var(--suave); font-size: 13px; }
.hero__ficha--a { top: 16%; left: -4%; }
.hero__ficha--b { bottom: 18%; right: -2%; animation-delay: -2s; }
.hero__ficha--c { bottom: 4%; left: 12%; flex-direction: row; align-items: center; gap: 6px; animation-delay: -4s; color: var(--teal); }
@keyframes flotar { 0%, 100% { translate: 0 0; } 50% { translate: 0 -10px; } }
.hero__baja { position: absolute; bottom: 26px; left: 50%; width: 26px; height: 42px; border: 1.5px solid #9fb8b4; border-radius: 20px; translate: -50% 0; }
.hero__baja span { position: absolute; top: 8px; left: 50%; width: 4px; height: 8px; border-radius: 2px; background: var(--teal); translate: -50% 0; animation: rueda 1.8s ease-in-out infinite; }
@keyframes rueda { 0% { opacity: 0; transform: translateY(0); } 30% { opacity: 1; } 100% { opacity: 0; transform: translateY(14px); } }
@media (max-width: 900px) {
  .hero { min-height: 0; padding-top: calc(var(--cab) + 24px); }
  .hero__in { grid-template-columns: 1fr; }
  .hero__visual { max-width: 400px; order: -1; margin-bottom: -10px; }
  .hero__ficha--a { left: 0; } .hero__ficha--b { right: 0; }
  .hero__baja { display: none; }
}
@media (max-width: 520px) { .hero__visual { max-width: 300px; } .hero__ficha { padding: 8px 12px; font-size: 13px; } .hero__acciones .boton { flex: 1 1 100%; } }

/* entrada de las cabeceras (solo CSS: el texto nunca depende de que cargue el JavaScript) */
[data-entrada] { animation: entrar .9s var(--suave-curva) both; }
@keyframes entrar { from { opacity: 0; transform: translateY(22px); } }
[data-entrada]:nth-child(2) { animation-delay: .07s; } [data-entrada]:nth-child(3) { animation-delay: .14s; } [data-entrada]:nth-child(4) { animation-delay: .21s; } [data-entrada]:nth-child(5) { animation-delay: .28s; } [data-entrada]:nth-child(6) { animation-delay: .35s; }
.editando [data-entrada] { animation: none; }

/* aparición al hacer scroll */
.animar [data-revelar] { opacity: 0; transform: translateY(34px); transition: opacity .9s var(--suave-curva), transform .9s var(--suave-curva); transition-delay: calc(var(--i, 0) * 90ms); }
.animar [data-revelar].visible { opacity: 1; transform: none; }

/* ---------------------------------------------------------------- intro */
.intro__titulo { margin-bottom: 32px; }
@media (min-width: 701px) { .intro__titulo { white-space: nowrap; font-size: clamp(28px, 3.6vw, 44px); } }
.intro__rejilla { display: grid; grid-template-columns: 1fr 1fr; gap: 64px; align-items: center; }
.intro__galeria { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.intro__foto { width: 100%; aspect-ratio: 4/3; object-fit: cover; border-radius: var(--radio); box-shadow: var(--sombra); transition: transform .6s var(--suave-curva); }
.intro__foto:hover { transform: scale(1.03) rotate(-.5deg); }
.intro__foto--1, .intro__foto--3 { transform: translateY(28px); }
.intro__foto--1:hover, .intro__foto--3:hover { transform: translateY(28px) scale(1.03); }
@media (max-width: 900px) { .intro__rejilla { grid-template-columns: 1fr; gap: 36px; } }

/* --------------------------------------------------------------- prosa */
.prosa { font-size: 17.5px; }
.prosa--grande { font-size: 18.5px; line-height: 1.72; }
.prosa h2 { font-size: clamp(24px, 2.6vw, 32px); margin: 1.6em 0 .55em; }
.prosa h3 { font-size: 22px; margin: 1.4em 0 .5em; }
.prosa > :first-child { margin-top: 0; }
.prosa ul, .prosa ol { padding-left: 1.2em; margin: 0 0 1.1em; }
.prosa li { margin: .35em 0; }
.prosa ul li::marker { color: var(--teal); }
.prosa blockquote { margin: 1.4em 0; padding: 18px 24px; border-radius: var(--radio-peq); background: var(--teal-claro); color: var(--tinta); font-size: 1.05em; border-left: 4px solid var(--teal); }
.prosa blockquote p:last-child { margin: 0; }
.prosa img { border-radius: var(--radio-peq); margin: 1.4em 0; }
.prosa a { font-weight: 500; }
.prosa table { width: 100%; border-collapse: collapse; margin: 1.2em 0; font-size: .95em; }
.prosa th, .prosa td { padding: 10px 12px; border-bottom: 1px solid var(--linea); text-align: left; }

/* --------------------------------------------------------------- Norma */
.norma { background: #fff; }
.norma__rejilla { display: grid; grid-template-columns: .85fr 1.15fr; gap: 72px; align-items: center; }
.norma__foto { position: relative; }
.norma__foto::before { content: ''; position: absolute; inset: 6%; border-radius: 50%; background: var(--degradado); opacity: .16; filter: blur(30px); }
.norma__foto img { position: relative; }
.norma__lead { font-size: 20px; color: var(--tinta); }
.norma__cita { margin: 26px 0; padding: 0 0 0 22px; border-left: 3px solid; border-image: var(--degradado) 1; font: 500 19px/1.55 'Sora', sans-serif; color: var(--tinta); letter-spacing: -.01em; }
.norma__registro { max-width: 340px; margin: 0 0 28px; mix-blend-mode: multiply; }
.norma__acciones { display: flex; flex-wrap: wrap; gap: 12px; }
@media (max-width: 900px) { .norma__rejilla { grid-template-columns: 1fr; gap: 24px; } .norma__foto { max-width: 380px; margin: 0 auto; } }

/* --------------------------------------------------------------- ayuda */
.ayuda { background: linear-gradient(180deg, var(--fondo), #eef6f5); }
.ayuda__rejilla { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(4, 1fr); gap: 18px; }
.ayuda__tarjeta a, .servicio-tarjeta a, .precio {
  --px: 50%; --py: 0%;
  position: relative; display: flex; flex-direction: column; height: 100%; background: #fff; border-radius: var(--radio);
  border: 1px solid var(--linea); text-decoration: none; color: var(--texto); overflow: hidden; isolation: isolate;
  transition: transform .5s var(--suave-curva), box-shadow .5s, border-color .3s;
}
.ayuda__tarjeta a::before, .servicio-tarjeta a::before, .precio::before {
  content: ''; position: absolute; inset: 0; z-index: -1; opacity: 0; transition: opacity .4s;
  background: radial-gradient(420px circle at var(--px) var(--py), rgba(124, 196, 188, .22), transparent 60%);
}
.ayuda__tarjeta a:hover, .servicio-tarjeta a:hover, .precio:hover { transform: translateY(-6px); box-shadow: var(--sombra-alta); border-color: #c6dedb; color: var(--texto); }
.ayuda__tarjeta a:hover::before, .servicio-tarjeta a:hover::before, .precio:hover::before { opacity: 1; }
.ayuda__tarjeta a { padding: 26px 24px 22px; }
.ayuda__ico { width: 64px; height: 64px; border-radius: 18px; background: var(--teal-claro); display: grid; place-items: center; margin-bottom: 18px; transition: transform .5s var(--rebote); }
.ayuda__ico img { width: 48px; height: 48px; object-fit: contain; }
.ayuda__tarjeta a:hover .ayuda__ico { transform: rotate(-8deg) scale(1.08); }
.ayuda__tarjeta h3 { font-size: 21px; margin-bottom: 6px; }
.ayuda__sintomas { font-size: 13.5px; color: var(--teal-osc); margin-bottom: 10px; line-height: 1.45; }
.ayuda__texto { font-size: 15.5px; flex: 1; }
.ayuda__mas { display: inline-flex; align-items: center; gap: 6px; font-weight: 600; color: var(--teal-osc); font-size: 15px; }
.ayuda__mas .ico { transition: transform .3s; }
.ayuda__tarjeta a:hover .ayuda__mas .ico { transform: translateX(5px); }
@media (max-width: 1080px) { .ayuda__rejilla { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 560px) { .ayuda__rejilla { grid-template-columns: 1fr; } }

/* ------------------------------------------------------------ servicios */
.servicios__rejilla { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, 1fr); gap: 22px; }
.servicio-tarjeta__img { display: block; aspect-ratio: 3/2; overflow: hidden; }
.servicio-tarjeta__img img { width: 100%; height: 100%; object-fit: cover; transition: transform 1s var(--suave-curva); }
.servicio-tarjeta a:hover img { transform: scale(1.07); }
.servicio-tarjeta__cuerpo { padding: 22px 24px 26px; display: flex; flex-direction: column; gap: 6px; flex: 1; }
.servicio-tarjeta h3 { font-size: 22px; margin: 0; }
.servicio-tarjeta__precio { margin-top: auto; padding-top: 10px; font-weight: 600; color: var(--teal-osc); font-size: 15px; }
.servicio-tarjeta__ir { position: absolute; top: 16px; right: 16px; width: 44px; height: 44px; border-radius: 50%; background: #fff; display: grid; place-items: center; color: var(--tinta); box-shadow: var(--sombra); transform: rotate(-45deg) scale(.8); opacity: 0; transition: transform .45s var(--rebote), opacity .3s; }
.servicio-tarjeta a:hover .servicio-tarjeta__ir { transform: rotate(-45deg) scale(1); opacity: 1; }
@media (max-width: 960px) { .servicios__rejilla { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 600px) { .servicios__rejilla { grid-template-columns: 1fr; } }

/* --------------------------------------------------------------- equipo */
.equipo-portada { background: #fff; }
.equipo__rejilla { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(4, 1fr); gap: 22px; }
.persona a { display: block; text-decoration: none; color: var(--texto); }
.persona__foto { display: block; aspect-ratio: 4/5; border-radius: var(--radio); overflow: hidden; position: relative; isolation: isolate; background: radial-gradient(120% 90% at 50% 100%, #bfe4df 0%, #e4f3f1 45%, #f1edfb 100%); }
.persona__foto::before { content: ''; position: absolute; left: 12%; right: 12%; bottom: 8%; aspect-ratio: 1; border-radius: 42% 58% 63% 37% / 41% 44% 56% 59%; background: linear-gradient(140deg, #a9dcd5, #cdbff0 60%, #f4dfaa); opacity: .7; z-index: -1; animation: morfo 16s ease-in-out infinite; }
.persona__foto img { width: 100%; height: 100%; object-fit: contain; object-position: center bottom; transform-origin: center bottom; transition: transform 1s var(--suave-curva); padding-top: 8%; }
.persona__foto::after { content: ''; position: absolute; inset: 0; background: linear-gradient(180deg, transparent 55%, rgba(22, 50, 58, .45)); opacity: 0; transition: opacity .4s; }
.persona a:hover .persona__foto img { transform: scale(1.05); }
.persona a:hover .persona__foto::after { opacity: 1; }
.persona__datos { display: block; padding: 16px 4px 4px; }
.persona__datos strong { display: block; font: 600 19px/1.25 'Sora', sans-serif; color: var(--tinta); }
.persona__datos small { display: block; font-size: 14.5px; color: var(--suave); line-height: 1.4; margin-top: 4px; }
.persona__col { color: var(--teal-osc) !important; }
.persona__reservar { display: inline-flex; align-items: center; gap: 6px; margin: 10px 4px 0; font-weight: 600; color: var(--teal); font-size: 15px; }
@media (max-width: 960px) { .equipo__rejilla { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 480px) { .equipo__rejilla { gap: 14px; } .persona__datos strong { font-size: 16px; } }

/* --------------------------------------------------------------- calidad */
.calidad__rejilla { display: grid; grid-template-columns: .9fr 1.1fr; gap: 56px; align-items: center; }
.calidad__logos { list-style: none; padding: 0; margin: 28px 0 0; display: flex; flex-wrap: wrap; justify-content: center; gap: 16px; max-width: 520px; }
.calidad__logos li { flex: 0 0 calc((100% - 32px) / 3); aspect-ratio: 1; border-radius: 24px; background: #fff; border: 1px solid var(--linea); display: grid; place-items: center; padding: 16px; transition: transform .4s var(--rebote); }
.calidad__logos li:hover { transform: translateY(-4px) rotate(-3deg); }
.calidad__logos img { width: 100%; height: 100%; object-fit: contain; }
.calidad__certs { overflow: hidden; padding: 16px 0 26px; mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent); -webkit-mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent); }
.calidad__pista { display: flex; gap: 16px; width: max-content; animation: cinta 40s linear infinite; }
.calidad__certs:hover .calidad__pista { animation-play-state: paused; }
.calidad__cert { width: 180px; flex: none; border-radius: 12px; box-shadow: var(--sombra); transition: transform .5s var(--suave-curva); }
.calidad__cert:nth-child(odd) { transform: rotate(-2deg); } .calidad__cert:nth-child(even) { transform: rotate(2deg) translateY(10px); }
.calidad__cert:hover { transform: rotate(0) scale(1.05); }
@media (max-width: 900px) { .calidad__rejilla { grid-template-columns: 1fr; } }

/* --------------------------------------------------------------- reseñas */
.resenas { overflow: hidden; background: var(--tinta); color: #cfe0dd; }
.resenas .titulo-seccion { color: #fff; }
.resenas__cab { display: flex; justify-content: space-between; align-items: flex-end; gap: 16px 40px; flex-wrap: wrap; margin-bottom: 40px; }
.resenas__nota { margin: 0; display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.resenas__nota strong { color: #fff; }
/* Difuminado solo en el borde izquierdo y de ancho fijo: la cinta mide lo que todas las opiniones juntas, así que un porcentaje tapaba casi toda la pantalla del móvil. */
.cinta { display: flex; width: max-content; mask-image: linear-gradient(90deg, transparent, #000 40px); -webkit-mask-image: linear-gradient(90deg, transparent, #000 40px); }
.cinta__pista { list-style: none; margin: 0; padding: 0 9px; display: flex; gap: 18px; animation: cinta 80s linear infinite; }
.cinta:hover .cinta__pista, .cinta.parada .cinta__pista { animation-play-state: paused; }
@keyframes cinta { to { transform: translateX(-100%); } }
.resena { width: 360px; flex: none; padding: 24px 26px; border-radius: var(--radio); background: rgba(255, 255, 255, .06); border: 1px solid rgba(255, 255, 255, .1); display: flex; flex-direction: column; gap: 12px; }
.resena blockquote { margin: 0; flex: 1; }
.resena p { margin: 0; color: #e6efed; font-size: 16px; line-height: 1.55; }
.resena .resena__autor { font-weight: 600; color: #fff; font-size: 15px; display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.resena__origen { display: inline-flex; align-items: center; gap: 6px; font-weight: 500; font-size: 13px; color: #a9c9c3; }
.marca-doctoralia { display: inline-flex; align-items: center; gap: 6px; color: #fff; font-weight: 600; }
.resena__autor small { font-weight: 400; color: #9fbab5; }
@media (max-width: 600px) { .resena { width: 290px; } }

/* --------------------------------------------------------------- blog */
.tarjetas-blog { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(4, 1fr); gap: 22px; }
.tarjetas-blog--lista { grid-template-columns: repeat(3, 1fr); }
.tarjeta-blog a { display: flex; flex-direction: column; gap: 8px; text-decoration: none; color: var(--texto); }
.tarjeta-blog__img { display: block; aspect-ratio: 4/3; border-radius: var(--radio); overflow: hidden; background: linear-gradient(140deg, #cde9e5, #ddd2f3); }
.tarjeta-blog__img img { width: 100%; height: 100%; object-fit: cover; transition: transform 1s var(--suave-curva); }
.tarjeta-blog a:hover img { transform: scale(1.06); }
.tarjeta-blog time, .tarjeta-blog__meta { font-size: 13.5px; color: var(--suave); margin-top: 6px; }
.tarjeta-blog h2, .tarjeta-blog h3 { font-size: 19px; margin: 0; transition: color .25s; }
.tarjeta-blog a:hover h2, .tarjeta-blog a:hover h3 { color: var(--teal); }
.tarjeta-blog p { font-size: 15.5px; margin: 0; }
@media (max-width: 1000px) { .tarjetas-blog, .tarjetas-blog--lista { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 560px) { .tarjetas-blog, .tarjetas-blog--lista { grid-template-columns: 1fr; } }

/* --------------------------------------------------------------- FAQ */
.faq__lista { display: grid; gap: 12px; }
@media (min-width: 701px) { .faq .titulo-seccion { white-space: nowrap; font-size: clamp(24px, 3vw, 34px); } }
.faq__item, .cursos { background: #fff; border: 1px solid var(--linea); border-radius: var(--radio-peq); transition: box-shadow .3s, border-color .3s; }
.faq__item[open], .cursos[open] { box-shadow: var(--sombra); border-color: #c8dfdb; }
.faq__item summary, .cursos summary { list-style: none; cursor: pointer; padding: 20px 22px; display: flex; align-items: center; gap: 16px; justify-content: space-between; font: 600 17.5px/1.35 'Sora', sans-serif; color: var(--tinta); }
.faq__item summary::-webkit-details-marker, .cursos summary::-webkit-details-marker { display: none; }
.faq__mas { width: 34px; height: 34px; flex: none; border-radius: 50%; background: var(--teal-claro); color: var(--teal-osc); display: grid; place-items: center; transition: transform .35s var(--suave-curva), background .3s; }
details[open] > summary .faq__mas { transform: rotate(45deg); background: var(--teal); color: #fff; }
.faq__resp { padding: 0 22px 20px; }
.cursos summary small { margin-left: auto; font: 400 14px 'Figtree', sans-serif; color: var(--suave); }
.cursos .cv__lista { padding: 0 22px 22px; }

/* ------------------------------------------------------------ cita (CTA) */
.seccion.cita { padding-top: 96px; padding-bottom: 96px; }
@media (max-width: 700px) { .seccion.cita { padding-top: 64px; padding-bottom: 64px; } }
/* El bloque «Da el primer paso» queda con el mismo aire arriba que abajo, hasta el pie. */
.seccion:not(.banda):not(.resenas):not(.bloque--noche) + .cita { padding-top: 0; }
.cita__caja { position: relative; overflow: hidden; isolation: isolate; border-radius: 32px; padding: clamp(36px, 6vw, 72px); background: var(--tinta); color: #d6e6e3; display: grid; grid-template-columns: 1.2fr .8fr; gap: 32px; align-items: center; }
.cita__brillo { position: absolute; inset: -40%; z-index: -1; background: conic-gradient(from 0deg, rgba(47, 143, 155, .55), rgba(106, 91, 184, .5), rgba(181, 80, 143, .45), rgba(47, 143, 155, .55)); filter: blur(80px); opacity: .55; animation: girar 24s linear infinite; }
@keyframes girar { to { transform: rotate(1turn); } }
.cita__titulo { color: #fff; font-size: clamp(30px, 4vw, 48px); }
.cita__sub { font-size: 18px; }
.cita__sub p:last-child { margin: 0; }
.cita__acciones { display: flex; flex-direction: column; gap: 12px; align-items: stretch; }
.cita__online { color: #cfe0dd; display: inline-flex; gap: 8px; align-items: center; justify-content: center; font-size: 15px; }
.cita__online:hover { color: #fff; }
@media (max-width: 860px) { .cita__caja { grid-template-columns: 1fr; } }

/* --------------------------------------------------------- páginas internas */
.cab-simple, .cab-servicio, .perfil, .articulo__cab, .gracias { position: relative; isolation: isolate; overflow: hidden; padding: calc(var(--cab) + 30px) 0 56px; }
.cab-simple__sub { font-size: 20px; max-width: 680px; color: var(--texto); }
.migas ol { list-style: none; margin: 0 0 26px; padding: 0; display: flex; flex-wrap: wrap; gap: 4px; font-size: 14px; color: var(--suave); }
.migas li + li::before { content: '/'; margin: 0 6px; color: #b4c6c3; }
.migas a { color: var(--suave); text-decoration: none; }
.migas a:hover { color: var(--teal); }
.aviso-oculto { background: #fff5d9; border: 1px solid #f0d58a; color: #6e5410; padding: 10px 14px; border-radius: 12px; font-size: 15px; }

.cab-servicio__rejilla { display: grid; grid-template-columns: 1.05fr .95fr; gap: 56px; align-items: center; }
.cab-servicio__titulo { font-size: clamp(40px, 6vw, 72px); letter-spacing: -.04em; line-height: 1.02; }
.cab-servicio__lema { font-size: 21px; color: var(--texto); max-width: 520px; }
.cab-servicio__acciones { display: flex; flex-wrap: wrap; gap: 12px; align-items: center; margin-top: 28px; }
.precio-chip { display: inline-flex; gap: 6px; align-items: baseline; padding: 10px 16px; border-radius: 999px; background: #fff; border: 1px dashed #b9d4d0; color: var(--suave); text-decoration: none; font-size: 15px; }
.precio-chip strong { color: var(--tinta); font: 600 18px 'Sora', sans-serif; }
.cab-servicio__img img { width: 100%; aspect-ratio: 5/4; object-fit: cover; border-radius: 40% 60% 46% 54% / 48% 40% 60% 52%; box-shadow: var(--sombra-alta); animation: morfo 18s ease-in-out infinite; }
.servicio-intro__rejilla { display: grid; grid-template-columns: 1.15fr .85fr; gap: 60px; align-items: center; }
.servicio-intro__img img { border-radius: var(--radio); box-shadow: var(--sombra); width: 100%; aspect-ratio: 4/5; object-fit: cover; }
@media (max-width: 900px) { .cab-servicio__rejilla, .servicio-intro__rejilla { grid-template-columns: 1fr; gap: 32px; } .cab-servicio__img { order: -1; max-width: 460px; } }

.banda { background: #fff; }
.ventajas { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, 1fr); gap: 22px; }
.ventaja { background: #fff; border: 1px solid var(--linea); border-radius: var(--radio); padding: 30px 28px; transition: transform .5s var(--suave-curva), box-shadow .5s; }
.ventaja:hover { transform: translateY(-5px); box-shadow: var(--sombra-alta); }
.ventaja__ico { width: 68px; height: 68px; border-radius: 20px; background: var(--teal-claro); display: grid; place-items: center; margin-bottom: 20px; }
.ventaja__ico img { width: 48px; height: 48px; object-fit: contain; }
.ventaja h3 { font-size: 21px; }
.ventaja p { margin: 0; }
@media (max-width: 900px) { .ventajas { grid-template-columns: 1fr; } }
.extra { margin-top: 10px; }
.dos-listas { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; }
.dos-listas > div { background: #fff; border: 1px solid var(--linea); border-radius: var(--radio); padding: 28px 30px; }
@media (max-width: 800px) { .dos-listas { grid-template-columns: 1fr; } }
.firma-revision { display: flex; gap: 8px; align-items: flex-start; font-size: 14px; color: var(--suave); margin-top: 28px; padding-top: 18px; border-top: 1px solid var(--linea); }
.firma-revision .ico { color: var(--teal); margin-top: 2px; }

.chips { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 10px; }
.chips a { display: inline-flex; align-items: center; gap: 8px; padding: 10px 18px 10px 12px; border-radius: 999px; background: #fff; border: 1px solid var(--linea); text-decoration: none; color: var(--tinta); font-weight: 500; transition: border-color .25s, transform .3s var(--suave-curva); }
.chips a:hover { border-color: var(--teal); transform: translateY(-2px); color: var(--tinta); }
.chips img { width: 28px; height: 28px; object-fit: contain; }

/* perfil (sobre mí) */
.perfil__rejilla { display: grid; grid-template-columns: .8fr 1.2fr; gap: 56px; align-items: center; }
.perfil__foto { position: relative; }
.perfil__foto img { position: relative; }
.etiquetas { list-style: none; padding: 0; margin: 0 0 16px; display: flex; flex-wrap: wrap; gap: 8px; }
.etiquetas li { padding: 7px 14px; border-radius: 999px; background: #fff; border: 1px solid var(--linea); font-size: 14.5px; color: var(--tinta); }
.perfil__col { color: var(--suave); font-size: 15px; }
.perfil__cita { margin: 22px 0; font: 500 21px/1.5 'Sora', sans-serif; color: var(--tinta); }
.perfil__redes { list-style: none; padding: 0; margin: 0; display: flex; flex-wrap: wrap; gap: 8px 18px; font-size: 15px; }
@media (max-width: 900px) { .perfil__rejilla { grid-template-columns: 1fr; gap: 20px; } .perfil__foto { max-width: 340px; } }
.cv { display: grid; grid-template-columns: 1fr 1fr; gap: 48px; }
.cv__lista { list-style: none; padding: 0; margin: 0; display: grid; gap: 10px; }
.cv__lista li { position: relative; padding-left: 26px; font-size: 16px; line-height: 1.55; }
.cv__lista li::before { content: ''; position: absolute; left: 4px; top: .6em; width: 9px; height: 9px; border-radius: 50%; background: var(--degradado); }
.cv__registro { max-width: 320px; margin-top: 26px; mix-blend-mode: multiply; }
@media (max-width: 860px) { .cv { grid-template-columns: 1fr; } }

/* agenda de Doctoralia */
.reserva-norma__rejilla { display: grid; grid-template-columns: .8fr 1.2fr; gap: 48px; align-items: start; }
@media (max-width: 900px) { .reserva-norma__rejilla { grid-template-columns: 1fr; } }
.doctoralia { background: #fff; border: 1px solid var(--linea); border-radius: var(--radio); padding: 14px; min-height: 120px; position: relative; box-shadow: var(--sombra); }
.doctoralia .zl-url { display: inline-flex; padding: 10px 4px; font-weight: 600; }
.doctoralia__carga { margin: 0; font-size: 14px; color: var(--suave); }
.doctoralia.cargada .doctoralia__carga, .doctoralia iframe ~ .doctoralia__carga { display: none; }
.doctoralia iframe { width: 100% !important; border: 0; border-radius: 12px; }

/* equipo */
.fichas { list-style: none; margin: 0; padding: 0; display: grid; gap: 28px; }
.ficha { display: grid; grid-template-columns: 240px 1fr 380px; gap: 36px; padding: 30px; background: #fff; border: 1px solid var(--linea); border-radius: 28px; align-items: start; }
.ficha__foto { aspect-ratio: 4/5; border-radius: var(--radio); overflow: hidden; background: radial-gradient(120% 90% at 50% 100%, #bfe4df 0%, #e4f3f1 45%, #f1edfb 100%); }
.ficha__foto img { width: 100%; height: 100%; object-fit: contain; object-position: center bottom; padding-top: 8%; }
.ficha__nombre { font-size: 28px; margin-bottom: 4px; }
.ficha__cargo { color: var(--teal-osc); font-weight: 600; margin-bottom: 10px; }
.ficha__datos { display: flex; flex-wrap: wrap; gap: 6px 18px; font-size: 14.5px; color: var(--suave); }
.ficha__datos > span { display: inline-flex; align-items: center; gap: 6px; }
.ficha__enfoques { font-size: 15.5px; }
.ficha__agenda-titulo { display: flex; align-items: center; gap: 8px; font-weight: 600; color: var(--tinta); margin-bottom: 10px; }
.ficha__agenda .doctoralia { box-shadow: none; }
@media (max-width: 1100px) { .ficha { grid-template-columns: 200px 1fr; } .ficha__agenda { grid-column: 1 / -1; } }
@media (max-width: 640px) { .ficha { grid-template-columns: 1fr; padding: 20px; } .ficha__foto { max-width: 220px; } }

/* tarifas */
.precios { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, 1fr); gap: 22px; }
.precio { padding: 32px 30px; }
.precio__nombre { font-size: 22px; }
.precio__cifra { font: 650 64px/1 'Sora', sans-serif; color: var(--tinta); letter-spacing: -.04em; display: flex; align-items: baseline; gap: 8px; margin: 12px 0 18px; }
.precio__cifra small { font: 500 16px 'Figtree', sans-serif; color: var(--suave); letter-spacing: 0; }
.precio__nota { font-size: 15px; color: var(--suave); }
.precio__acciones { margin-top: auto; display: grid; gap: 14px; justify-items: center; }
.nota-centro { display: flex; align-items: center; gap: 10px; justify-content: center; margin-top: 30px; color: var(--suave); font-size: 15px; text-align: center; }
.nota-centro .ico { color: var(--teal); }
@media (max-width: 900px) { .precios { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 560px) { .precios { grid-template-columns: 1fr; } }
.datos-contacto { list-style: none; padding: 0; margin: 20px 0 0; display: grid; gap: 12px; }
.datos-contacto li { display: flex; gap: 10px; align-items: center; }
.datos-contacto .ico { color: var(--teal); }

/* contacta */
.tarjeta { background: #fff; border: 1px solid var(--linea); border-radius: 28px; padding: clamp(24px, 4vw, 40px); box-shadow: var(--sombra); }
.contacta__rejilla { display: grid; grid-template-columns: 1.15fr .85fr; gap: 26px; align-items: start; }
.contacta__lado { display: grid; gap: 26px; }
.vias { list-style: none; padding: 0; margin: 0; display: grid; gap: 10px; }
.via { width: 100%; display: flex; align-items: center; gap: 14px; padding: 14px; border-radius: 16px; border: 1px solid var(--linea); background: var(--fondo); text-decoration: none; color: var(--texto); text-align: left; transition: border-color .25s, transform .3s var(--suave-curva); }
.via:hover { border-color: var(--teal); transform: translateX(4px); color: var(--texto); }
.via__ico { width: 44px; height: 44px; border-radius: 50%; background: var(--teal); color: #fff; display: grid; place-items: center; flex: none; }
.via--wa .via__ico { background: #25d366; }
.via strong { display: block; color: var(--tinta); }
.via small { color: var(--suave); }
.lista-precios { list-style: none; padding: 0; margin: 0; }
.lista-precios li { display: flex; justify-content: space-between; padding: 10px 0; border-bottom: 1px dashed var(--linea); }
.lista-precios strong { color: var(--tinta); }
@media (max-width: 900px) { .contacta__rejilla { grid-template-columns: 1fr; } }
.sedes { display: grid; gap: 22px; }
.sede { display: grid; grid-template-columns: .9fr 1.1fr; gap: 0; background: #fff; border: 1px solid var(--linea); border-radius: 28px; overflow: hidden; }
.sede__texto { padding: 32px; }
.sede__texto p { display: flex; gap: 8px; align-items: flex-start; }
.sede__texto .ico { color: var(--teal); margin-top: 3px; }
.sede__llegar { color: var(--suave); font-size: 15.5px; }
.mapa { min-height: 320px; background: linear-gradient(140deg, #d6ece9, #e3dcf3); display: grid; place-items: center; }
.mapa iframe { width: 100%; height: 100%; min-height: 320px; border: 0; }
.mapa iframe { display: block; }
.mapa__boton { display: flex; flex-direction: column; align-items: center; gap: 6px; background: #fff; border: 0; border-radius: 20px; padding: 18px 26px; box-shadow: var(--sombra); color: var(--tinta); font-weight: 600; }
.mapa__boton small { font-weight: 400; color: var(--suave); }
button.mapa__boton { cursor: pointer; font: inherit; font-weight: 600; transition: transform .2s, box-shadow .2s; }
button.mapa__boton:hover { transform: translateY(-2px); }
button.mapa__boton:focus-visible { outline: 3px solid var(--teal); outline-offset: 3px; }
@media (max-width: 800px) { .sede { grid-template-columns: 1fr; } }

/* artículo */
.articulo__cab { padding-bottom: 30px; }
.articulo__meta { display: flex; align-items: center; gap: 12px; color: var(--suave); font-size: 15px; }
.articulo__meta img { width: 40px; height: 40px; border-radius: 50%; object-fit: cover; }
.articulo__img img { width: 100%; border-radius: 26px; box-shadow: var(--sombra); max-height: 520px; object-fit: cover; }
.articulo__cuerpo { padding-top: 40px; padding-bottom: 60px; }
.indice-art { background: #fff; border: 1px solid var(--linea); border-radius: var(--radio-peq); padding: 16px 20px; margin-bottom: 32px; }
.indice-art summary { font-weight: 600; cursor: pointer; color: var(--tinta); }
.indice-art ol { margin: 10px 0 0; padding-left: 1.2em; }
.autora { display: flex; gap: 20px; align-items: center; margin-top: 48px; padding: 24px; background: #fff; border: 1px solid var(--linea); border-radius: var(--radio); }
.autora img { width: 84px; height: 84px; border-radius: 50%; object-fit: cover; flex: none; }
.autora__nombre { font: 600 18px 'Sora', sans-serif; color: var(--tinta); margin-bottom: 4px; }
.autora p { margin-bottom: 6px; font-size: 15.5px; }
.articulo__cta { margin-top: 24px; padding: 26px; border-radius: var(--radio); background: var(--teal-claro); display: flex; flex-wrap: wrap; gap: 14px 22px; align-items: center; }
.articulo__cta p { margin: 0; flex: 1 1 280px; }
.compartir { display: flex; gap: 16px; align-items: center; flex-wrap: wrap; margin-top: 26px; font-size: 15px; color: var(--suave); }
.lectura { position: fixed; top: 0; left: 0; right: 0; height: 3px; z-index: 45; }
.lectura span { display: block; height: 100%; background: var(--degradado); transform-origin: left; transform: scaleX(0); }

/* legal y gracias */
.legal { padding: calc(var(--cab) + 30px) 0 80px; }
.legal__fecha { color: var(--suave); font-size: 15px; }
.gracias { text-align: center; min-height: 70vh; display: flex; align-items: center; }
.gracias .envoltorio { display: flex; flex-direction: column; align-items: center; }
.gracias__icono { color: var(--teal); margin-bottom: 20px; animation: aparecer-check .8s var(--rebote) both; }
@keyframes aparecer-check { from { transform: scale(.4); opacity: 0; } }
.gracias__botones { display: flex; flex-wrap: wrap; justify-content: center; gap: 12px; margin-top: 18px; }
.pag-404 .chips { justify-content: center; margin-top: 10px; }

/* --------------------------------------------------------------- tests */
.tests-rejilla { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; }
.tests-rejilla__titulo { font-size: 21px; margin-bottom: 6px; }
@media (max-width: 960px) { .tests-rejilla { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 560px) { .tests-rejilla { grid-template-columns: 1fr; } }
.seccion--test { padding-top: 0; }
.titulo-pagina--test { font-size: clamp(32px, 4.6vw, 52px); }
.test { padding: clamp(26px, 5vw, 48px); }
.test__datos { list-style: none; padding: 0; margin: 0 0 26px; display: grid; gap: 10px; font-size: 17px; }
.test__datos li { display: flex; gap: 10px; align-items: center; }
.test__datos .ico { color: var(--teal); }
.test__barra { height: 8px; border-radius: 999px; background: var(--teal-claro); overflow: hidden; margin-bottom: 18px; }
.test__barra span { display: block; height: 100%; background: var(--degradado); transform-origin: left; transform: scaleX(0); transition: transform .5s var(--suave-curva); }
.test__cuenta { font-size: 14px; color: var(--suave); margin: 0 0 6px; }
.test__enunciado { color: var(--teal-osc); font-weight: 600; margin: 0 0 8px; }
.test__pregunta { font-size: clamp(22px, 2.6vw, 28px); line-height: 1.3; margin: 0 0 24px; outline: none; }
.test__preguntas.entra .test__pregunta, .test__preguntas.entra .test__opciones { animation: entrar .45s var(--suave-curva) both; }
.test__preguntas.entra .test__opciones { animation-delay: .06s; }
.test__opciones { display: grid; gap: 10px; }
.test__op { text-align: left; padding: 16px 20px; border-radius: 16px; border: 1.5px solid #d3e2df; background: #fbfdfd; font: 500 17px/1.3 'Figtree', sans-serif; color: var(--tinta); transition: border-color .2s, background .2s, transform .25s var(--suave-curva); }
.test__op:hover { border-color: var(--teal); transform: translateX(4px); }
.test__op.elegida { background: var(--teal); border-color: var(--teal); color: #fff; }
.boton-volver { margin-top: 18px; background: none; border: 0; color: var(--suave); font-weight: 500; padding: 6px 0; }
.boton-volver:hover { color: var(--tinta); }
.test__alerta { background: #fdecee; border: 1px solid #f3c2cb; color: #7a1f2f; border-radius: 16px; padding: 18px 20px; margin-bottom: 24px; }
.test__alerta p { margin: 6px 0 0; }
.test__alerta a { color: #7a1f2f; font-weight: 700; }
.test__nivel { font-size: clamp(28px, 3.4vw, 38px); outline: none; margin-bottom: 14px; }
.test__nivel--bien { color: #2f7d5a; } .test__nivel--medio { color: #a5761b; } .test__nivel--alto { color: #a8434f; }
.test__escala { position: relative; height: 10px; border-radius: 999px; background: linear-gradient(90deg, #7cc39a, #e8c25c, #d4707c); margin: 6px 0 12px; }
.test__escala.inversa { background: linear-gradient(90deg, #d4707c, #e8c25c, #7cc39a); }
.test__escala span { position: absolute; top: 50%; width: 22px; height: 22px; border-radius: 50%; background: #fff; border: 4px solid var(--tinta); transform: translate(-50%, -50%); transition: left 1s var(--suave-curva); left: 0; }
.test__puntos { color: var(--suave); font-size: 15px; }
.test__texto { font-size: 18px; color: var(--tinta); }
.test__aviso { font-size: 14px; color: var(--suave); border-left: 3px solid var(--linea); padding-left: 12px; }
.test__acciones { display: flex; flex-wrap: wrap; gap: 14px 22px; align-items: center; margin: 20px 0 32px; }
.test__contacto { border-top: 1px solid var(--linea); padding-top: 28px; }
.test__contacto-titulo { font: 600 21px/1.3 'Sora', sans-serif; color: var(--tinta); margin-bottom: 6px; }
.test__fuente { font-size: 13px; color: var(--suave); margin-top: 18px; }

/* --------------------------------------------------------------- formulario */
.form { display: grid; gap: 16px; }
.form__titulo { font: 600 22px 'Sora', sans-serif; color: var(--tinta); margin: 0; }
.form__texto { margin: 0; color: var(--suave); }
.form__fila { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
@media (max-width: 560px) { .form__fila { grid-template-columns: 1fr; } }
.campo { display: grid; gap: 6px; margin: 0; padding: 0; border: 0; min-width: 0; }
.campo > span, .campo legend { font-size: 14.5px; font-weight: 600; color: var(--tinta); padding: 0; }
.campo em { font-style: normal; font-weight: 400; color: var(--suave); }
.campo input, .campo select, .campo textarea {
  width: 100%; padding: 13px 15px; border-radius: 14px; border: 1.5px solid #d3e2df; background: #fbfdfd; color: var(--tinta);
  font: 400 16px/1.4 'Figtree', sans-serif; transition: border-color .2s, box-shadow .2s, background .2s;
}
.campo textarea { resize: vertical; min-height: 92px; }
.campo input:focus, .campo select:focus, .campo textarea:focus { outline: none; border-color: var(--teal); background: #fff; box-shadow: 0 0 0 4px rgba(47, 125, 134, .14); }
.campo.mal input, .campo.mal select, .check.mal { border-color: #c2475b; }
.campo--franja { display: block; }
.campo--franja legend { margin-bottom: 8px; }
.campo--franja label { display: inline-block; margin: 0 6px 6px 0; }
.campo--franja input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.campo--franja span { display: inline-block; padding: 8px 16px; border-radius: 999px; border: 1.5px solid #d3e2df; font-size: 15px; cursor: pointer; transition: all .2s; }
.campo--franja input:checked + span { background: var(--teal); border-color: var(--teal); color: #fff; }
.campo--franja input:focus-visible + span { box-shadow: 0 0 0 4px rgba(47, 125, 134, .25); }
.check { display: flex; gap: 10px; align-items: flex-start; font-size: 14.5px; line-height: 1.45; border: 1.5px solid transparent; border-radius: 10px; }
.check input { width: 18px; height: 18px; margin-top: 2px; accent-color: var(--teal); flex: none; }
.form__trampa { position: absolute; left: -9999px; }
.form__nota { display: flex; gap: 8px; align-items: center; justify-content: center; margin: 0; font-size: 14px; color: var(--suave); }
.form__nota .ico { color: var(--teal); }
.form__error { margin: 0; padding: 10px 14px; border-radius: 12px; background: #fdecee; color: #8f2335; font-size: 15px; }
.form.enviando { opacity: .7; pointer-events: none; }

/* --------------------------------------------------- botón flotante */
.flot { position: fixed; right: max(20px, env(safe-area-inset-right)); bottom: max(20px, env(safe-area-inset-bottom)); z-index: 50; display: flex; flex-direction: column; align-items: flex-end; gap: 12px; opacity: 0; transform: translateY(20px) scale(.9); pointer-events: none; transition: opacity .4s, transform .5s var(--rebote); }
.flot.visible { opacity: 1; transform: none; pointer-events: auto; }
/* El aviso de cookies va abajo a la izquierda; solo en móvil ocupa todo el ancho y hay que subir el botón. */
@media (max-width: 520px) { .con-cookies .flot { bottom: 150px; } }
.flot__boton { position: relative; width: 64px; height: 64px; border-radius: 50%; border: 0; background: var(--degradado); color: #fff; display: grid; place-items: center; box-shadow: 0 14px 30px -8px rgba(106, 91, 184, .6); transition: transform .3s var(--suave-curva); }
.flot__boton > span:not(.flot__pulso) { grid-area: 1 / 1; display: grid; place-items: center; transition: transform .4s var(--rebote), opacity .3s; }
.flot__cerrar { opacity: 0; transform: rotate(-90deg) scale(.6); }
.flot.abierto .flot__abrir { opacity: 0; transform: rotate(90deg) scale(.6); }
.flot.abierto .flot__cerrar { opacity: 1; transform: none; }
.flot__pulso { position: absolute; inset: 0; border-radius: 50%; background: var(--teal); z-index: -1; animation: pulso 2.6s ease-out infinite; }
.flot.abierto .flot__pulso { animation: none; opacity: 0; }
@keyframes pulso { 0% { transform: scale(1); opacity: .5; } 100% { transform: scale(1.7); opacity: 0; } }
.flot__menu { display: grid; gap: 8px; width: 270px; padding: 10px; border-radius: 24px; background: rgba(255, 255, 255, .95); -webkit-backdrop-filter: blur(16px); backdrop-filter: blur(16px); box-shadow: var(--sombra-alta); border: 1px solid var(--linea); transform-origin: bottom right; opacity: 0; transform: translateY(10px) scale(.92); transition: opacity .25s, transform .35s var(--suave-curva); }
.flot.abierto .flot__menu { opacity: 1; transform: none; }
.flot__op { display: flex; align-items: center; gap: 12px; padding: 10px 12px; border-radius: 16px; border: 0; background: none; color: var(--tinta); text-decoration: none; text-align: left; transition: background .2s, transform .3s var(--suave-curva); }
.flot__op:hover { background: var(--fondo); transform: translateX(-3px); color: var(--tinta); }
.flot__op strong { display: block; font-size: 15.5px; }
.flot__op small { display: block; color: var(--suave); font-size: 13px; }
.flot__ico { width: 40px; height: 40px; border-radius: 50%; display: grid; place-items: center; background: var(--teal-claro); color: var(--teal-osc); flex: none; }
.flot__op--wa .flot__ico { background: #25d366; color: #fff; }
.flot.abierto .flot__op { animation: entra-op .4s var(--suave-curva) both; }
.flot.abierto .flot__op:nth-child(2) { animation-delay: .04s; } .flot.abierto .flot__op:nth-child(3) { animation-delay: .08s; } .flot.abierto .flot__op:nth-child(4) { animation-delay: .12s; } .flot.abierto .flot__op:nth-child(5) { animation-delay: .16s; }
@keyframes entra-op { from { opacity: 0; transform: translateY(8px); } }
@media (max-width: 520px) { .flot__boton { width: 58px; height: 58px; } }

/* ventana de contacto */
.modal { border: 0; padding: 0; background: transparent; max-width: min(560px, calc(100vw - 24px)); width: 100%; max-height: calc(100dvh - 24px); overflow: visible; color: var(--texto); }
.modal::backdrop { background: rgba(16, 36, 42, .5); -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px); animation: fundido .3s; }
.modal[open] .modal__caja { animation: sube .45s var(--suave-curva); }
.modal.cerrando .modal__caja { animation: baja .2s ease-in forwards; }
@keyframes fundido { from { opacity: 0; } }
@keyframes sube { from { opacity: 0; transform: translateY(30px) scale(.97); } }
@keyframes baja { to { opacity: 0; transform: translateY(16px) scale(.98); } }
.modal__caja { position: relative; background: #fff; border-radius: 28px; padding: 30px; max-height: calc(100dvh - 24px); overflow-y: auto; box-shadow: var(--sombra-alta); }
.modal__cerrar { position: absolute; top: 14px; right: 14px; width: 40px; height: 40px; border-radius: 50%; border: 0; background: var(--fondo); display: grid; place-items: center; }
.modal__titulo { font: 650 28px 'Sora', sans-serif; color: var(--tinta); margin: 0 0 14px; }
.modal__pestanas { display: inline-flex; padding: 4px; background: var(--fondo); border-radius: 999px; margin-bottom: 20px; }
.modal__pestanas button { border: 0; background: none; padding: 9px 18px; border-radius: 999px; font-weight: 600; color: var(--suave); transition: background .25s, color .25s; }
.modal__pestanas [aria-selected="true"] { background: #fff; color: var(--tinta); box-shadow: 0 2px 8px rgba(22, 50, 58, .1); }
.modal--agenda { max-width: min(620px, calc(100vw - 24px)); }
.modal__persona { display: flex; gap: 14px; align-items: center; margin: 0 40px 16px 0; }
.modal__persona img { width: 56px; height: 56px; border-radius: 50%; object-fit: cover; object-position: top; flex: none; background: linear-gradient(140deg, #cfeae6, #ddd2f3); }
.modal__persona .modal__titulo { margin: 0; font-size: 24px; }
.modal__sub { margin: 0; color: var(--suave); font-size: 15px; }
.modal--agenda .doctoralia { box-shadow: none; padding: 0; border: 0; min-height: 420px; }
.elegir { list-style: none; padding: 0; margin: 18px 0 0; display: grid; gap: 10px; }
.elegir__op { width: 100%; display: flex; align-items: center; gap: 14px; padding: 10px 14px 10px 10px; border-radius: 18px; border: 1px solid var(--linea); background: var(--fondo); text-align: left; transition: border-color .25s, transform .3s var(--suave-curva), background .25s; }
.elegir__op:hover { border-color: var(--teal); background: #fff; transform: translateX(4px); }
.elegir__op > span:nth-child(2) { flex: 1; }
.elegir__op strong { display: block; color: var(--tinta); font: 600 17px 'Sora', sans-serif; }
.elegir__op small { display: block; color: var(--suave); font-size: 14px; }
.elegir__op .ico { color: var(--teal); }
.elegir__foto { width: 64px; height: 64px; border-radius: 50%; overflow: hidden; flex: none; background: linear-gradient(140deg, #cfeae6, #ddd2f3); display: flex; align-items: flex-end; justify-content: center; }
.elegir__foto img { width: 100%; height: 100%; object-fit: cover; object-position: top; }
.modal__pie { margin: 14px 0 0; font-size: 15px; color: var(--suave); text-align: center; }
@media (max-width: 520px) { .modal__caja { padding: 24px 18px; border-radius: 22px; } }

/* --------------------------------------------------------------- pie */
.pie { background: var(--tinta); color: #b9cdc9; position: relative; overflow: hidden; margin-top: 0; }
.pie a { color: #dce9e6; text-decoration: none; }
.pie a:hover { color: #fff; text-decoration: underline; }
.pie__cta { display: flex; justify-content: space-between; align-items: center; gap: 24px; flex-wrap: wrap; padding-top: 64px; padding-bottom: 54px; border-bottom: 1px solid rgba(255, 255, 255, .1); }
.pie__cta-titulo { font: 600 clamp(24px, 3vw, 34px)/1.2 'Sora', sans-serif; color: #fff; margin: 0 0 6px; letter-spacing: -.02em; }
.pie__cta-sub { margin: 0; max-width: 560px; }
.pie__cta-acciones { display: flex; gap: 12px; flex-wrap: wrap; }
.pie__rejilla { display: grid; grid-template-columns: 1.5fr 1fr 1fr 1fr 1.3fr; gap: 36px; padding-top: 54px; padding-bottom: 40px; }
.pie__marca img { width: 200px; margin-bottom: 16px; }
.pie__marca p { font-size: 15px; }
.pie__redes { list-style: none; padding: 0; margin: 16px 0 0; display: flex; gap: 10px; }
.pie__redes a { width: 40px; height: 40px; border-radius: 50%; display: grid; place-items: center; border: 1px solid rgba(255, 255, 255, .2); transition: background .25s, transform .3s var(--rebote); }
.pie__redes a:hover { background: rgba(255, 255, 255, .1); transform: translateY(-3px); }
.pie__titulo { font: 600 15px 'Sora', sans-serif; color: #fff; margin: 0 0 14px; }
.pie__lista { list-style: none; padding: 0; margin: 0; display: grid; gap: 8px; font-size: 15px; }
.pie__lista li { position: relative; padding-left: 16px; }
.pie__lista li::before { content: ''; position: absolute; left: 0; top: .62em; width: 6px; height: 6px; border-radius: 50%; background: #7fd1c4; }
.sello-salud { display: flex; align-items: center; gap: 14px; margin-top: 18px; padding: 12px 16px 12px 12px; background: #fff; border-radius: 16px; max-width: 320px; }
.sello-salud img { width: 84px; height: auto; flex: none; }
.sello-salud p { margin: 0; display: grid; gap: 2px; line-height: 1.3; }
.sello-salud strong { color: var(--tinta); font: 600 14.5px 'Sora', sans-serif; }
.sello-salud span { color: var(--suave); font-size: 13px; }
.sello-salud small { color: var(--suave); font-size: 12px; }
.pie address { font-style: normal; font-size: 15px; line-height: 1.7; }
.pie__sello { display: flex; gap: 8px; align-items: flex-start; font-size: 14px; margin-top: 14px; }
.pie__legal { border-top: 1px solid rgba(255, 255, 255, .1); font-size: 14px; }
.pie__legal-in { display: flex; justify-content: space-between; gap: 12px; flex-wrap: wrap; padding-top: 18px; padding-bottom: 22px; }
.pie__legal p { margin: 0; }
.pie__legal ul { list-style: none; padding: 0; margin: 0; display: flex; gap: 18px; flex-wrap: wrap; }
.pie__legal .enlace { color: #dce9e6; text-decoration: none; }
@media (max-width: 1000px) { .pie__rejilla { grid-template-columns: 1fr 1fr; } .pie__marca { grid-column: 1 / -1; } }
@media (max-width: 520px) { .pie__rejilla { grid-template-columns: 1fr; } }

/* --------------------------------------------------------------- cookies */
.cookies { position: fixed; left: 16px; bottom: 16px; z-index: 60; max-width: 440px; }
.cookies__caja { background: #fff; border-radius: 22px; padding: 22px; box-shadow: var(--sombra-alta); border: 1px solid var(--linea); font-size: 15px; animation: sube .5s var(--suave-curva); }
.cookies__titulo { font: 600 18px 'Sora', sans-serif; color: var(--tinta); margin: 0 0 6px; }
.cookies__opciones { display: grid; gap: 10px; margin: 12px 0; }
.cookies__op { display: flex; gap: 10px; align-items: flex-start; font-size: 14px; }
.cookies__op strong { display: block; color: var(--tinta); }
.cookies__botones { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; justify-content: flex-end; margin-top: 8px; }
.cookies__config { margin-right: auto; }
@media (max-width: 520px) { .cookies { left: 10px; right: 10px; bottom: 10px; max-width: none; } }

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; scroll-behavior: auto !important; }
  .cinta { width: auto; overflow-x: auto; }
}
@media print { .cab, .flot, .cookies, .pie__cta, .hero__aurora, .ed-barra { display: none !important; } }

/* --------------------------------------------------------------- móvil: nada se sale de la pantalla */
.norma__rejilla > *, .cv > *, .contacta__rejilla > *, .contacta__lado > *, .form__fila > *, .cita__caja > *, .sede > * { min-width: 0; }
.prosa, .articulo__cuerpo { overflow-wrap: break-word; }
.prosa a { overflow-wrap: break-word; }
.prosa img, .prosa iframe, .prosa video { max-width: 100%; height: auto; }
.prosa table { display: block; max-width: 100%; overflow-x: auto; }
input, select, textarea { max-width: 100%; min-width: 0; }
@media (max-width: 560px) {
  h1, h2, .titulo-pagina, .titulo-seccion { overflow-wrap: break-word; hyphens: auto; -webkit-hyphens: auto; }
}
.norma__registro, .cv__registro { max-width: min(340px, 100%); }
.via > span:last-child { min-width: 0; overflow-wrap: anywhere; }

/* --------------------------------------------------------------- móvil: portada más ágil */
@media (max-width: 560px) {
  /* «¿Cómo puedo ayudarte?» y artículos: carrusel que se desliza con el dedo */
  .ayuda__rejilla, .blog-portada .tarjetas-blog {
    display: flex; gap: 14px; overflow-x: auto; scroll-snap-type: x mandatory; overscroll-behavior-x: contain;
    margin: 0 -18px; padding: 6px 18px 20px; scroll-padding: 0 18px; scrollbar-width: none;
  }
  .ayuda__rejilla::-webkit-scrollbar, .blog-portada .tarjetas-blog::-webkit-scrollbar { display: none; }
  .ayuda__tarjeta, .blog-portada .tarjetas-blog > li { flex: 0 0 82%; scroll-snap-align: start; }
  .ayuda__tarjeta a { padding: 22px 20px 20px; }

  /* Servicios: foto a la izquierda y texto a la derecha */
  .servicios__rejilla { gap: 14px; }
  .servicio-tarjeta a { flex-direction: row; }
  .servicio-tarjeta__img { flex: 0 0 34%; aspect-ratio: auto; }
  .servicio-tarjeta__cuerpo { padding: 16px 16px 16px; font-size: 14.5px; line-height: 1.45; }
  .servicio-tarjeta h3 { font-size: 18px; }
  .servicio-tarjeta__precio { padding-top: 6px; font-size: 14px; }
  .servicio-tarjeta__ir { display: none; }
}
@media (max-width: 520px) {
  .pie__rejilla { grid-template-columns: 1fr 1fr; gap: 30px 18px; }
  .pie__marca, .pie__contacto, .pie__col[aria-label="El centro"] { grid-column: 1 / -1; }
  .pie__col[aria-label="El centro"] .pie__lista { grid-template-columns: 1fr 1fr; column-gap: 18px; }
  .pie__lista { font-size: 14.5px; }
  .pie__legal-in { padding-bottom: 96px; }
}
@media (max-width: 560px) {
  /* Ventajas de cada servicio: icono junto al título, tarjeta más compacta */
  .ventajas { gap: 14px; }
  .ventaja { display: grid; grid-template-columns: 52px 1fr; column-gap: 14px; align-items: center; padding: 20px 18px; }
  .ventaja__ico { width: 52px; height: 52px; border-radius: 16px; margin: 0; }
  .ventaja__ico img { width: 38px; height: 38px; }
  .ventaja h3 { font-size: 18px; margin: 0; }
  .ventaja p { grid-column: 1 / -1; margin-top: 10px; font-size: 15.5px; }
  .ventaja:not(:has(.ventaja__ico)) h3 { grid-column: 1 / -1; }
}

/* Fotos recortadas del equipo: la base se funde con el fondo (en la de Norma oculta el borde del círculo original) */
.persona__foto img, .ficha__foto img {
  -webkit-mask-image: linear-gradient(180deg, #000 70%, transparent 98%); mask-image: linear-gradient(180deg, #000 70%, transparent 98%);
}
@media (max-width: 560px) {
  /* Tarifas: tarjetas más bajas, nombre y precio en la misma línea */
  .precios { gap: 14px; }
  .precio { padding: 22px 20px; display: grid; grid-template-columns: 1fr auto; align-items: center; column-gap: 12px; }
  .precio__nombre { font-size: 19px; margin: 0; }
  .precio__cifra { font-size: 40px; margin: 0; }
  .precio__cifra small { font-size: 14px; }
  .precio > :not(.precio__nombre):not(.precio__cifra) { grid-column: 1 / -1; }
  .precio__nota { margin: 10px 0 0; }
  .precio__acciones { margin-top: 16px; display: flex; flex-wrap: wrap; align-items: center; gap: 12px 18px; }
  .precio__acciones .boton { padding: 12px 18px; }
}
@media (max-width: 430px) { .via[href^="mailto"] strong { font-size: 14.5px; letter-spacing: -.01em; } .via { gap: 12px; padding: 12px; } }
.test { scroll-margin-top: calc(var(--cab) + 14px); }
@media (max-width: 560px) { .tarjeta-blog__img { aspect-ratio: 16/10; } }
@media (max-width: 520px) {
  /* Portada en móvil: foto más pequeña para que el título se vea en la primera pantalla */
  .hero { padding-top: calc(var(--cab) + 12px); padding-bottom: 56px; }
  .hero__in { gap: 24px; }
  .hero__visual { max-width: min(250px, 66vw); margin-inline: auto; }
  .hero__ficha { font-size: 12px; padding: 7px 10px; }
}
@media (max-width: 520px) {
  .hero__ficha--a { top: 4%; left: -16%; }
  .hero__ficha--b { bottom: 8%; right: -16%; }
  .hero__ficha--c { display: none; }
  .hero__ficha small { font-size: 12px; }
}

/* --------------------------------------------------------------- guías descargables */
.recursos-rejilla { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, 1fr); gap: 28px 24px; }
.recurso-tarjeta a { display: flex; flex-direction: column; height: 100%; text-decoration: none; color: var(--texto); }
.recurso-tarjeta__portada { display: block; position: relative; padding: 26px 26px 0; border-radius: var(--radio); background: linear-gradient(160deg, #e3f1ef, #ece6fa); overflow: hidden; }
.recurso-tarjeta__portada img { display: block; width: 100%; height: auto; border-radius: 10px 10px 0 0; box-shadow: 0 -2px 30px rgba(22, 50, 58, .18); transform: translateY(14px); transition: transform .6s var(--suave-curva); }
.recurso-tarjeta a:hover .recurso-tarjeta__portada img { transform: translateY(2px) rotate(-1.2deg); }
.recurso-tarjeta__cuerpo { display: flex; flex-direction: column; gap: 6px; padding: 18px 4px 0; flex: 1; }
.recurso-tarjeta__tipo { font-size: 13.5px; font-weight: 600; color: var(--teal-osc); }
.recurso-tarjeta__titulo { font-size: 21px; line-height: 1.25; margin: 0; color: var(--tinta); }
.recurso-tarjeta__sub { font-size: 15.5px; color: var(--suave); margin-bottom: 6px; }
.recurso-tarjeta .ayuda__mas { margin-top: auto; }
.recursos-rejilla--mini .recurso-tarjeta__portada { padding: 20px 34px 0; }
.recursos-rejilla--mini .recurso-tarjeta__titulo { font-size: 18px; }
@media (max-width: 960px) { .recursos-rejilla { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 560px) {
  .recursos-rejilla { grid-template-columns: 1fr; gap: 26px; }
  .recursos-rejilla--mini { display: flex; overflow-x: auto; scroll-snap-type: x mandatory; margin: 0 -18px; padding: 4px 18px 16px; gap: 14px; scrollbar-width: none; }
  .recursos-rejilla--mini::-webkit-scrollbar { display: none; }
  .recursos-rejilla--mini > li { flex: 0 0 72%; scroll-snap-align: start; }
}

.cab-recurso { position: relative; isolation: isolate; overflow: hidden; padding: calc(var(--cab) + 30px) 0 40px; }
.cab-recurso__rejilla { display: grid; grid-template-columns: 1.2fr .8fr; gap: 56px; align-items: center; }
.titulo-pagina--recurso { font-size: clamp(32px, 4.2vw, 54px); line-height: 1.08; }
.recurso-datos { list-style: none; padding: 0; margin: 22px 0 0; display: flex; flex-wrap: wrap; gap: 10px; }
.recurso-datos li { display: inline-flex; align-items: center; gap: 8px; padding: 9px 15px; border-radius: 999px; background: #fff; border: 1px solid var(--linea); font-size: 15px; font-weight: 500; color: var(--tinta); }
.recurso-datos .ico { color: var(--teal); }
.libro { position: relative; max-width: 360px; margin: 0 auto; transform: rotate(3deg); transition: transform .8s var(--suave-curva); }
.libro:hover { transform: rotate(0); }
.libro img { position: relative; z-index: 2; display: block; width: 100%; height: auto; border-radius: 6px 14px 14px 6px; box-shadow: -6px 0 0 rgba(0, 0, 0, .06) inset, 0 40px 70px -20px rgba(22, 50, 58, .45), 0 10px 20px -8px rgba(22, 50, 58, .25); }
.libro__hoja { position: absolute; z-index: 1; inset: 8px -10px -8px 10px; background: #fff; border-radius: 6px 14px 14px 6px; box-shadow: 0 10px 30px -10px rgba(22, 50, 58, .25); }
.libro__hoja--2 { z-index: 0; inset: 16px -20px -16px 20px; background: #f3f6f6; }
@media (max-width: 860px) {
  .cab-recurso__rejilla { grid-template-columns: 1fr; gap: 36px; }
  .cab-recurso__libro { order: -1; }
  .libro { max-width: 220px; }
}

.seccion--recurso { padding-top: 40px; }
.recurso-rejilla { display: grid; grid-template-columns: 1fr 440px; gap: 56px; align-items: start; }
.recurso-rejilla > * { min-width: 0; }
.recurso-info .titulo-seccion { margin: 0 0 18px; }
.recurso-incluye { list-style: none; padding: 0; margin: 0 0 40px; display: grid; gap: 12px; }
.recurso-incluye li { display: flex; gap: 12px; align-items: flex-start; font-size: 17px; color: var(--tinta); }
.recurso-incluye .ico { flex: none; margin-top: 3px; width: 26px; height: 26px; padding: 4px; border-radius: 50%; background: var(--teal-claro); color: var(--teal-osc); }
.recurso-indice { list-style: none; padding: 0; margin: 0 0 40px; counter-reset: i; border-top: 1px solid var(--linea); }
.recurso-indice li { counter-increment: i; display: flex; gap: 16px; padding: 13px 0; border-bottom: 1px solid var(--linea); font: 500 16.5px 'Sora', sans-serif; color: var(--tinta); }
.recurso-indice li::before { content: counter(i, decimal-leading-zero); color: var(--teal); font-weight: 700; min-width: 26px; }
.recurso-autora { display: flex; gap: 20px; align-items: center; background: #fff; border: 1px solid var(--linea); border-radius: var(--radio); padding: 20px 22px; }
.recurso-autora img { flex: none; width: 96px; height: 120px; object-fit: contain; object-position: bottom; border-radius: 16px; background: radial-gradient(120% 90% at 50% 100%, #bfe4df 0%, #e4f3f1 45%, #f1edfb 100%); padding-top: 8px; }
.recurso-autora p { margin: 0 0 10px; font-size: 15.5px; }
.recurso-autora__t { font: 600 17px 'Sora', sans-serif; color: var(--tinta); margin-bottom: 4px !important; }
.recurso-form { position: sticky; top: calc(var(--cab) + 20px); padding: 30px; scroll-margin-top: calc(var(--cab) + 16px); }
.recurso-form__titulo { font: 650 26px/1.2 'Sora', sans-serif; color: var(--tinta); margin: 0 0 6px; letter-spacing: -.02em; }
.recurso-form__texto { color: var(--suave); margin-bottom: 18px; }
.recurso-listo { text-align: center; }
.recurso-listo__ico { display: inline-grid; place-items: center; width: 64px; height: 64px; border-radius: 50%; background: var(--teal-claro); color: var(--teal-osc); margin-bottom: 14px; animation: sube .6s var(--rebote); }
.recurso-listo p { color: var(--texto); }
.recurso-listo .boton { margin: 10px 0 18px; }
.recurso-listo__mas { font-size: 15px; color: var(--suave) !important; }
@media (max-width: 960px) { .recurso-rejilla { grid-template-columns: 1fr; } .recurso-form { position: static; order: -1; } }
@media (max-width: 560px) { .recurso-form { padding: 22px 18px; } .recurso-autora { flex-direction: column; align-items: flex-start; } .recurso-incluye li { font-size: 16px; } }
/* .seccion anulaba el margen lateral de .envoltorio cuando van juntos */
.seccion.envoltorio { padding-left: 24px; padding-right: 24px; }
@media (max-width: 700px) { .seccion.envoltorio { padding-left: 18px; padding-right: 18px; } }
/* Migas en móvil: una sola línea; la página actual se recorta con puntos suspensivos */
@media (max-width: 560px) {
  .migas ol { flex-wrap: nowrap; white-space: nowrap; }
  .migas li[aria-current] { min-width: 0; overflow: hidden; text-overflow: ellipsis; }
}
.cab-recurso__accion { margin-top: 24px; }
@media (min-width: 961px) { .cab-recurso__accion { display: none; } }
.seccion--guia { padding-top: 24px; padding-bottom: 24px; }
.guia-banda { display: grid; grid-template-columns: 170px 1fr; gap: 34px; align-items: center; padding: 30px 36px; border-radius: 28px; background: linear-gradient(135deg, #e5f3f1, #efe9fb); text-decoration: none; color: var(--texto); overflow: hidden; transition: transform .5s var(--suave-curva), box-shadow .5s; }
.guia-banda:hover { transform: translateY(-4px); box-shadow: var(--sombra-alta); color: var(--texto); }
.guia-banda__portada img { display: block; width: 100%; height: auto; border-radius: 8px; box-shadow: 0 24px 40px -16px rgba(22, 50, 58, .45); transform: rotate(-3deg); transition: transform .6s var(--suave-curva); }
.guia-banda:hover .guia-banda__portada img { transform: rotate(0); }
.guia-banda__texto { display: flex; flex-direction: column; align-items: flex-start; gap: 8px; }
.guia-banda .antetitulo { margin: 0; }
.guia-banda__titulo { font: 650 clamp(21px, 2.4vw, 27px)/1.2 'Sora', sans-serif; color: var(--tinta); letter-spacing: -.02em; }
.guia-banda__sub { color: var(--suave); margin-bottom: 8px; }
@media (max-width: 560px) { .guia-banda { grid-template-columns: 96px 1fr; gap: 18px; padding: 20px 18px; align-items: start; } .guia-banda__titulo { font-size: 18px; } .guia-banda__sub { display: none; } .guia-banda .boton { padding: 11px 16px; font-size: 15px; } }
.guias-portada { background: #fff; }
.recursos-rejilla--portada { grid-template-columns: repeat(4, 1fr); }
@media (max-width: 860px) { .recursos-rejilla--portada { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 560px) { .recursos-rejilla--portada { display: flex; } }

/* portada nueva (Alcobendas y Tres Cantos) y landing de consulta */
.hero__titulo--doble { font-size: clamp(34px, 4.6vw, 64px); }
.hero__titulo--doble .linea { white-space: normal; }
@media (max-width: 900px) { .hero__titulo--doble { font-size: clamp(32px, 8.6vw, 54px); } }
.dos-sedes__rejilla { list-style: none; margin: 34px 0 0; padding: 0; display: grid; grid-template-columns: 1fr 1fr; gap: 22px; }
.tarjeta-sede { min-width: 0; display: grid; grid-template-columns: 42% 1fr; background: #fff; border: 1px solid var(--linea); border-radius: 28px; overflow: hidden; transition: transform .35s var(--suave-curva), box-shadow .35s; }
.tarjeta-sede:hover { transform: translateY(-4px); box-shadow: var(--sombra); }
.tarjeta-sede__foto { display: block; min-height: 220px; background: #d6ece9; }
.tarjeta-sede__foto img { width: 100%; height: 100%; object-fit: cover; display: block; }
.tarjeta-sede__foto--marca { display: grid; place-items: center; background: linear-gradient(140deg, var(--teal), #7a5bd0); color: #fff; }
.tarjeta-sede__foto--marca > span { display: flex; flex-direction: column; align-items: center; gap: 8px; }
.tarjeta-sede__foto--marca strong { font: 600 22px/1.1 'Sora', sans-serif; letter-spacing: -.02em; }
.tarjeta-sede__cuerpo { padding: 26px 26px 24px; display: flex; flex-direction: column; gap: 10px; min-width: 0; }
.tarjeta-sede__cuerpo h3 { margin: 0; font-size: 21px; }
.tarjeta-sede__dir { display: flex; gap: 8px; align-items: flex-start; margin: 0; color: var(--tinta); font-weight: 500; }
.tarjeta-sede__dir .ico { color: var(--teal); flex: none; margin-top: 3px; }
.tarjeta-sede__texto { margin: 0; color: var(--suave); font-size: 15.5px; }
.tarjeta-sede .enlace-flecha { margin-top: auto; }
@media (max-width: 1000px) { .dos-sedes__rejilla { grid-template-columns: 1fr; } }
@media (max-width: 560px) { .tarjeta-sede { grid-template-columns: 1fr; } .tarjeta-sede__foto { min-height: 0; aspect-ratio: 16 / 8; } }
.cab-sede .hero__acciones { margin-top: 26px; }
.cab-sede .hero__sellos { margin-top: 22px; }
.sede .titulo-seccion { margin-bottom: 14px; }
.sede .prosa { margin: 14px 0 18px; }
.por-que__rejilla { list-style: none; margin: 30px 0 0; padding: 0; display: grid; grid-template-columns: repeat(3, 1fr); gap: 22px; }
.por-que__item { min-width: 0; background: #fff; border: 1px solid var(--linea); border-radius: 24px; padding: 26px; }
.por-que__ico { width: 46px; height: 46px; border-radius: 50%; background: rgba(47, 125, 134, .1); color: var(--teal); display: grid; place-items: center; margin-bottom: 14px; }
.por-que__item h3 { font-size: 19px; margin: 0 0 8px; }
.por-que__item p { margin: 0; color: var(--suave); font-size: 15.5px; }
@media (max-width: 900px) { .por-que__rejilla { grid-template-columns: 1fr; gap: 14px; } .por-que__item { padding: 22px; } }

/* Páginas por problema y localidad */
.ventaja--sin-ico h3 { margin-top: 0; }
.landing-test { display: grid; grid-template-columns: auto 1fr auto; gap: 18px; align-items: center; padding: 24px 26px; background: #fff; border: 1px solid var(--linea); border-radius: var(--radio); text-decoration: none; color: var(--tinta); transition: border-color .25s, transform .3s var(--suave-curva), box-shadow .3s; }
.landing-test:hover { border-color: var(--teal); transform: translateY(-3px); box-shadow: var(--sombra-alta); color: var(--tinta); }
.landing-test__ico { width: 54px; height: 54px; border-radius: 50%; display: grid; place-items: center; background: var(--teal); color: #fff; }
.landing-test__texto { display: grid; gap: 4px; }
.landing-test__texto strong { font-size: 19px; }
.landing-test__texto span { color: var(--suave); }
@media (max-width: 640px) { .landing-test { grid-template-columns: auto 1fr; } .landing-test .enlace-flecha { grid-column: 1 / -1; } }

.pie__temas { display: grid; gap: 8px; padding-top: 22px; padding-bottom: 26px; border-top: 1px solid rgba(255,255,255,.12); font-size: 14.5px; }
.pie__temas p { margin: 0; display: flex; flex-wrap: wrap; gap: 4px 14px; align-items: baseline; }
.pie__temas strong { font-weight: 600; }

/* ------------------------------------------------- páginas propias (panel) */
.libre__imagen { margin: 0 0 32px; }
.libre__imagen img { width: 100%; height: auto; border-radius: var(--radio); }

/* Fuentes al final de los artículos y nota de revisión */
.prosa .fuentes { font-size: 15px; color: var(--suave); padding-left: 1.1em; }
.prosa .fuentes li { margin: .35em 0; }
.autora__revision { font-size: 14px; color: var(--suave); }

/* Página /opinion */
.opinion__nota { max-width: 560px; margin-top: 26px; font-size: .95rem; color: var(--texto); opacity: .85; }
.opinion__otro { margin-top: 14px; font-size: .92rem; }

/* Aviso «Primera consulta gratuita de 30 minutos» (primera_gratis() en app/plantilla.php) */
.primera-gratis { display: inline-flex; align-items: center; gap: 8px; margin: 22px 0 0; padding: 9px 16px 9px 12px; border-radius: 999px; background: #e3f3ec; border: 1px solid #bfe2d3; color: #1f5f4f; font-size: 15px; line-height: 1.35; }
.primera-gratis svg { flex: none; color: #2f7d5a; }
.primera-gratis strong { color: #17483d; font-weight: 600; }
.primera-gratis + .hero__acciones { margin-top: 20px; }
.primera-gratis--servicio { margin-top: 16px; }

/* Móvil: letra más recogida (menos tamaño y menos interlineado); en ordenador no cambia nada. */
@media (max-width: 600px) {
  body { font-size: 16px; line-height: 1.55; }
  .prosa { font-size: 16.5px; line-height: 1.58; }
  .prosa--grande { font-size: 17px; line-height: 1.6; }
  .prosa h2 { font-size: 23px; }
  .hero__sub { font-size: 17px; line-height: 1.5; }
  .cab-simple__sub { font-size: 17px; line-height: 1.5; }
  .cab-servicio__lema { font-size: 18px; line-height: 1.45; }
  .titulo-pagina { font-size: clamp(30px, 8.6vw, 38px); line-height: 1.1; }
  .titulo-seccion { font-size: clamp(25px, 7vw, 32px); line-height: 1.12; }
  .cab-servicio__titulo { font-size: clamp(34px, 9.6vw, 44px); }
  .ayuda__texto { font-size: 15px; line-height: 1.5; }
  .resena p { font-size: 15px; line-height: 1.5; }
  .norma__cita { font-size: 17px; line-height: 1.5; }
  .test__pregunta { font-size: 21px; }
  .primera-gratis { font-size: 14.5px; }
}

/* Cabecera de la página de una consulta: texto y foto de la consulta */
.cab-sede__in { display: grid; grid-template-columns: 1.1fr .9fr; gap: 48px; align-items: center; }
.cab-sede__foto img { display: block; width: 100%; height: auto; aspect-ratio: 16 / 9; object-fit: cover; border-radius: 28px; box-shadow: var(--sombra); }
@media (max-width: 900px) { .cab-sede__in { grid-template-columns: 1fr; gap: 32px; } }

/* Carrusel «También te podemos ayudar con» (páginas de servicio): tarjetas con foto que se deslizan */
.carrusel__cab { display: flex; justify-content: space-between; align-items: flex-end; gap: 16px; margin-bottom: 26px; }
.carrusel__cab .titulo-seccion { margin: 0; }
.carrusel__flechas { display: flex; gap: 10px; flex: none; }
.carrusel__flecha { width: 48px; height: 48px; border-radius: 50%; border: 1px solid var(--linea); background: #fff; color: var(--tinta); display: grid; place-items: center; cursor: pointer; box-shadow: var(--sombra); transition: background .2s, color .2s, opacity .2s; }
.carrusel__flecha:hover:not(:disabled) { background: var(--tinta); color: #fff; }
.carrusel__flecha:disabled { opacity: .35; cursor: default; box-shadow: none; }
.carrusel__flecha--atras svg { transform: rotate(180deg); }
.carrusel { list-style: none; margin: 0 -10px; padding: 8px 10px 22px; display: flex; gap: 22px; overflow-x: auto; scroll-snap-type: x mandatory; scroll-behavior: smooth; overscroll-behavior-x: contain; scrollbar-width: none; }
.carrusel::-webkit-scrollbar { display: none; }
.carrusel > .servicio-tarjeta { flex: 0 0 calc((100% - 66px) / 4); scroll-snap-align: start; }
@media (max-width: 1100px) { .carrusel > .servicio-tarjeta { flex-basis: calc((100% - 44px) / 3); } }
@media (max-width: 800px) { .carrusel > .servicio-tarjeta { flex-basis: calc((100% - 22px) / 2); } }
@media (max-width: 600px) {
  .carrusel__flechas { display: none; }
  .carrusel { margin: 0 -18px; padding: 6px 18px 20px; scroll-padding: 0 18px; gap: 14px; }
  .carrusel > .servicio-tarjeta { flex-basis: 78%; }
}
/* En el carrusel la tarjeta siempre va en vertical (en móvil las de la portada van en fila) */
.carrusel .servicio-tarjeta a { flex-direction: column; }
.carrusel .servicio-tarjeta__img { flex: none; aspect-ratio: 3/2; }
.carrusel .servicio-tarjeta h3 { font-size: 20px; }
