
:root{
  --navy:#15385c;
  --teal:#2ea8ad;
  --orange:#f59a23;
  --sky:#eaf4fb;
  --cream:#fbfaf7;
  --text:#203247;
  --muted:#6f7d8b;
  --white:#ffffff;
  --shadow:0 18px 50px rgba(21,56,92,.10);
  --radius:28px;
  --radius-sm:18px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  color:var(--text);
  background:linear-gradient(180deg,#fff 0%,#fbfdff 100%);
}
a{text-decoration:none;color:inherit}
img{max-width:100%;display:block}
.container{width:min(1180px,92%);margin:auto}
header{
  position:sticky;top:0;z-index:50;
  background:rgba(255,255,255,.92);
  backdrop-filter:blur(14px);
  border-bottom:1px solid rgba(21,56,92,.06);
}
.nav{display:flex;align-items:center;justify-content:space-between;padding:18px 0;gap:24px}
.brand{display:flex;align-items:center;gap:12px;font-weight:800;color:var(--navy)}
.brand-mark{display:grid;grid-template-columns:repeat(3,12px);gap:4px;align-items:end}
.brand-mark span{display:block;border-radius:12px 12px 4px 4px}
.brand-mark span:nth-child(1){height:28px;background:#397bb8}
.brand-mark span:nth-child(2){height:38px;background:var(--teal)}
.brand-mark span:nth-child(3){height:46px;background:var(--orange)}
.brand-text small{display:block;font-size:11px;font-weight:600;line-height:1.2}
nav{display:flex;align-items:center;gap:24px;font-size:14px;font-weight:700;color:var(--navy)}
nav a.active{color:var(--teal)}
.cta{
  display:inline-flex;align-items:center;justify-content:center;gap:10px;
  background:var(--orange);color:white;padding:14px 22px;border-radius:999px;
  font-weight:800;box-shadow:0 10px 26px rgba(245,154,35,.26)
}
.hero{padding:48px 0 28px}
.hero-grid{display:grid;grid-template-columns:1.05fr 1.35fr;align-items:center;gap:40px}
.eyebrow{color:var(--teal);font-size:13px;font-weight:900;letter-spacing:.08em;text-transform:uppercase}
h1,h2,h3{color:var(--navy);margin-top:0}
h1{font-size:clamp(46px,6vw,82px);line-height:.95;letter-spacing:-.04em;margin-bottom:26px}
h2{font-size:clamp(34px,4vw,54px);line-height:1.05;letter-spacing:-.03em}
h3{font-size:22px}
.script{font-family:Georgia,serif;font-style:italic;color:var(--teal);font-weight:500}
.hero p{font-size:18px;line-height:1.7;max-width:620px}
.hero-media{
  min-height:560px;border-radius:120px 0 120px 0;
  overflow:hidden;position:relative;box-shadow:var(--shadow);
  background:
    linear-gradient(135deg,rgba(234,244,251,.35),rgba(251,250,247,.12)),
    url('https://images.unsplash.com/photo-1600607687939-ce8a6c25118c?auto=format&fit=crop&w=1400&q=85') center/cover;
}

section{padding:78px 0}
.section-head{text-align:center;max-width:760px;margin:0 auto 38px}
.section-head p{color:var(--muted);font-size:17px;line-height:1.7}
.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.card{
  background:white;border-radius:var(--radius-sm);overflow:hidden;box-shadow:var(--shadow);
  border:1px solid rgba(21,56,92,.06)
}
.card-image{
  aspect-ratio:16/10;background-size:cover;background-position:center
}
.card-body{padding:24px}
.card p{color:var(--muted);line-height:1.65}
.services .card:nth-child(1) .card-image{background-image:url('https://images.unsplash.com/photo-1573497620053-ea5300f94f21?auto=format&fit=crop&w=900&q=80')}
.services .card:nth-child(2) .card-image{background-image:url('https://images.unsplash.com/photo-1516589178581-6cd7833ae3b2?auto=format&fit=crop&w=900&q=80')}
.services .card:nth-child(3) .card-image{background-image:url('https://images.unsplash.com/photo-1511895426328-dc8714191300?auto=format&fit=crop&w=900&q=80')}
.services .card:nth-child(4) .card-image{background-image:url('https://images.unsplash.com/photo-1516321318423-f06f85e504b3?auto=format&fit=crop&w=900&q=80')}
.services .card:nth-child(5) .card-image{background-image:url('https://images.unsplash.com/photo-1516321497487-e288fb19713f?auto=format&fit=crop&w=900&q=80')}
.services .card:nth-child(6) .card-image{background-image:url('https://images.unsplash.com/photo-1517245386807-bb43f82c33c4?auto=format&fit=crop&w=900&q=80')}
.soft{background:linear-gradient(180deg,var(--sky),#fff)}
.values{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}
.value{background:white;border-radius:22px;padding:28px;box-shadow:var(--shadow)}
.value b{display:block;color:var(--navy);margin-bottom:8px}
.value p{margin:0;color:var(--muted);line-height:1.55}
.feature{display:grid;grid-template-columns:1fr 1fr;gap:36px;align-items:center}
.feature-media{
  min-height:390px;border-radius:var(--radius);background:
  url('https://images.unsplash.com/photo-1499750310107-5fef28a66643?auto=format&fit=crop&w=1100&q=85') center/cover;
  box-shadow:var(--shadow)
}
.feature-copy p{color:var(--muted);font-size:17px;line-height:1.8}
.blog-grid{display:grid;grid-template-columns:1.2fr .8fr;gap:26px}
.blog-feature,.blog-list article{
  background:#fff;border-radius:var(--radius-sm);box-shadow:var(--shadow);overflow:hidden
}
.blog-feature .cover{aspect-ratio:16/9;background:url('https://images.unsplash.com/photo-1474552226712-ac0f0961a954?auto=format&fit=crop&w=1200&q=85') center/cover}
.blog-feature .content,.blog-list article{padding:26px}
.blog-list{display:grid;gap:18px}
.testimonials{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
.quote{padding:28px;background:#fff;border-radius:22px;box-shadow:var(--shadow)}
.quote p{line-height:1.7;color:var(--muted)}
.cta-band{
  background:linear-gradient(135deg,#0c3560,#0e4f72);color:white;border-radius:30px;
  padding:36px 44px;display:flex;align-items:center;justify-content:space-between;gap:24px
}
.cta-band h3{color:white;font-size:30px;margin:0}
footer{padding:48px 0 18px;background:#fff}
.footer-grid{display:grid;grid-template-columns:1.2fr .8fr .8fr 1fr;gap:28px}
footer h4{color:var(--navy);margin:0 0 12px}
footer p,footer li{color:var(--muted);font-size:14px;line-height:1.7}
footer ul{padding:0;margin:0;list-style:none}
.copyright{text-align:center;border-top:1px solid rgba(21,56,92,.08);margin-top:32px;padding-top:18px;font-size:12px;color:var(--muted)}
.page-hero{padding:70px 0 48px;background:linear-gradient(180deg,#f8fbff,#fff)}
.page-hero .container{max-width:900px}
.page-hero h1{font-size:clamp(42px,5vw,68px)}
.team-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:26px}
.profile{display:grid;grid-template-columns:220px 1fr;background:#fff;border-radius:24px;overflow:hidden;box-shadow:var(--shadow)}
.profile-photo{background:url('https://images.unsplash.com/photo-1551836022-d5d88e9218df?auto=format&fit=crop&w=700&q=80') center/cover;min-height:320px}
.profile:nth-child(2) .profile-photo{background-image:url('https://images.unsplash.com/photo-1580489944761-15a19d654956?auto=format&fit=crop&w=700&q=80')}
.profile-body{padding:30px}
.contact-grid{display:grid;grid-template-columns:.8fr 1.2fr;gap:30px}
.contact-card{background:#fff;border-radius:24px;padding:28px;box-shadow:var(--shadow)}
.map{
  min-height:420px;border-radius:24px;
  background:linear-gradient(135deg,#edf4f8,#dfeaf0);
  display:grid;place-items:center;color:var(--navy);font-weight:800;box-shadow:var(--shadow)
}
.faq{display:grid;gap:12px}
.faq details{background:white;border-radius:16px;padding:18px 20px;box-shadow:var(--shadow)}
.faq summary{cursor:pointer;font-weight:800;color:var(--navy)}
@media(max-width:900px){
  nav{display:none}
  .hero-grid,.feature,.blog-grid,.contact-grid{grid-template-columns:1fr}
  .cards{grid-template-columns:1fr 1fr}
  .values{grid-template-columns:1fr 1fr}
  .testimonials{grid-template-columns:1fr}
  .footer-grid{grid-template-columns:1fr 1fr}
  .team-grid{grid-template-columns:1fr}
}
@media(max-width:620px){
  .cards,.values,.footer-grid{grid-template-columns:1fr}
  .hero{padding-top:24px}
  .hero-media{min-height:420px;border-radius:70px 0 70px 0}
  .cta-band{flex-direction:column;align-items:flex-start}
  .profile{grid-template-columns:1fr}
  .profile-photo{min-height:300px}
}

.logo-horizontal{width:210px;height:auto;display:block}
.logo-vertical{width:150px;height:auto;display:block}
.whatsapp-icon{width:19px;height:19px;display:inline-block;vertical-align:middle;flex:0 0 auto}
@media(max-width:620px){
  .logo-horizontal{width:170px}
  .logo-vertical{width:125px}
}

.service-link{display:block;color:inherit;cursor:pointer;transition:transform .25s ease,box-shadow .25s ease}
.service-link:hover{transform:translateY(-6px);box-shadow:0 24px 58px rgba(21,56,92,.16)}
.service-link h3::after{content:"  →";color:var(--teal);font-weight:800}
[id^="terapia-"],#evaluacion-psicologica,#orientacion-vocacional,#consulta-padres{scroll-margin-top:120px}

footer @media(max-width:620px){
  footer }

/* Header refinement V6 */
.nav{
  padding:10px 0;
  min-height:96px;
}
.logo-caef-main{
  width:170px;
  height:88px;
  object-fit:contain;
  object-position:center;
  display:block;
}
header .brand{
  min-width:180px;
  justify-content:flex-start;
}
nav{
  gap:28px;
}
header .cta{
  padding:14px 22px;
}
footer .logo-caef-main{
  width:150px;
  height:auto;
}
@media(max-width:900px){
  .logo-caef-main{
    width:145px;
    height:78px;
  }
}
@media(max-width:620px){
  .nav{
    min-height:82px;
    padding:8px 0;
  }
  .logo-caef-main{
    width:125px;
    height:68px;
  }
  footer .logo-caef-main{
    width:125px;
    height:auto;
  }
  header .cta{
    padding:12px 16px;
    font-size:14px;
  }
}

/* V7: horizontal official logo in header, vertical logo in footer */
header .logo-caef-header{
  width:245px;
  height:76px;
  object-fit:contain;
  object-position:left center;
  display:block;
}
header .brand{
  min-width:255px;
}
footer .logo-caef-main{
  width:150px;
  height:auto;
  object-fit:contain;
  display:block;
}
@media(max-width:1050px){
  header .logo-caef-header{width:205px;height:68px}
  header .brand{min-width:210px}
  nav{gap:18px}
}
@media(max-width:620px){
  header .logo-caef-header{width:170px;height:58px}
  header .brand{min-width:175px}
}

/* V8: larger horizontal CAEF logo in the top navigation */
header .logo-caef-header{
  width:330px;
  height:92px;
  object-fit:contain;
  object-position:left center;
}
header .brand{
  min-width:340px;
}
.nav{
  min-height:108px;
  padding:8px 0;
}
@media(max-width:1200px){
  header .logo-caef-header{width:285px;height:84px}
  header .brand{min-width:295px}
  nav{gap:18px}
}
@media(max-width:1000px){
  header .logo-caef-header{width:240px;height:76px}
  header .brand{min-width:245px}
}
@media(max-width:620px){
  header .logo-caef-header{width:190px;height:64px}
  header .brand{min-width:195px}
  .nav{min-height:82px}
}

/* V9 - definitive services */
#evaluacion-integral .card-image{
  background-image:url('assets/evaluacion-integral-caef.webp') !important;
  background-position:center 42%;
  background-size:cover;
}
#evaluacion-integral,#evaluacion-socioemocional,#orientacion-vocacional{scroll-margin-top:120px}

/* V10 - fotografía real definitiva para Evaluación Integral */
#evaluacion-integral .card-image{
  background-image:url('assets/evaluacion-integral-caef.webp') !important;
  background-size:cover !important;
  background-position:center 40% !important;
}

/* V11 - portada rotativa con fotografías reales de CAEF */
.hero-photo{position:relative;overflow:hidden}
.hero-slider{position:absolute;inset:0;overflow:hidden;border-radius:inherit}
.hero-slide{
  position:absolute;inset:0;width:100%;height:100%;
  object-fit:cover;opacity:0;transform:scale(1.025);
  transition:opacity 1.15s ease, transform 6s ease;
}
.hero-slide.active{opacity:1;transform:scale(1)}
.hero-slide:nth-child(1){object-position:center 42%}
.hero-slide:nth-child(2){object-position:center center}
.hero-slide:nth-child(3){object-position:center center}
.hero-slide:nth-child(4){object-position:center 62%}
.hero-dots{
  position:absolute;left:50%;bottom:18px;transform:translateX(-50%);
  display:flex;gap:8px;z-index:3;padding:7px 10px;
  background:rgba(255,255,255,.78);border-radius:999px;
  backdrop-filter:blur(7px);
}
.hero-dot{
  width:8px;height:8px;border:0;border-radius:50%;
  padding:0;background:rgba(12,55,91,.28);cursor:pointer;
  transition:width .25s ease,background .25s ease;
}
.hero-dot.active{width:22px;border-radius:999px;background:#25a6ad}
@media (prefers-reduced-motion:reduce){
  .hero-slide{transition:none;transform:none}
}

/* V12 - portada corregida: fotos reales CAEF */
.hero-media{
  background:none !important;
  position:relative;
  overflow:hidden;
}
.hero-slider{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  border-radius:inherit;
  overflow:hidden;
}
.hero-slide{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
  opacity:0;
  transform:scale(1.02);
  transition:opacity 1.1s ease, transform 6s ease;
}
.hero-slide.active{
  opacity:1;
  transform:scale(1);
}
.hero-slide:nth-child(1){object-position:center 40%;}
.hero-slide:nth-child(2){object-position:center center;}
.hero-slide:nth-child(3){object-position:center center;}
.hero-slide:nth-child(4){object-position:center 58%;}
.hero-dots{
  position:absolute;
  z-index:4;
  left:50%;
  bottom:18px;
  transform:translateX(-50%);
  display:flex;
  gap:8px;
  padding:7px 10px;
  border-radius:999px;
  background:rgba(255,255,255,.82);
  backdrop-filter:blur(8px);
  box-shadow:0 8px 24px rgba(21,56,92,.12);
}
.hero-dot{
  width:8px;
  height:8px;
  padding:0;
  border:0;
  border-radius:50%;
  background:rgba(21,56,92,.28);
  cursor:pointer;
}
.hero-dot.active{
  width:24px;
  border-radius:999px;
  background:var(--teal);
}

/* V13 foto real Terapia Individual */
.services-grid .service-card:first-child .card-image,
.services-track .service-card:first-child .card-image{
background-image:url('assets/terapia-individual-caef.webp')!important;
background-size:cover!important;background-position:center 45%!important}
.services-grid .service-card:first-child img,
.services-track .service-card:first-child img{
width:100%;height:100%;object-fit:cover;object-position:center 45%}

/* V14 - foto real del espacio CAEF en ¿Por qué elegir CAEF? */
.feature-media{
  background-image:url('assets/espacio-caef-por-que-elegir.webp') !important;
  background-size:cover !important;
  background-position:center 52% !important;
}

/* V15 - fotografías reales de servicios */
.services-grid .service-card:nth-child(2) .card-image,
.services-track .service-card:nth-child(2) .card-image,
.services-grid .service-card:nth-child(2) .service-image,
.services-track .service-card:nth-child(2) .service-image{
  background-image:url('assets/terapia-pareja-caef.webp') !important;
  background-size:cover !important;
  background-position:center 68% !important;
}
.services-grid .service-card:nth-child(2) img,
.services-track .service-card:nth-child(2) img{
  content:url('assets/terapia-pareja-caef.webp');
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center 68%;
}

/* V16 - Terapia de pareja: fotografía indicada */
.services-track .service-card:nth-child(2) img,
.services-grid .service-card:nth-child(2) img{
  content:url('assets/terapia-pareja-caef.webp') !important;
  object-fit:cover !important;
  object-position:center 70% !important;
}

/* V17 — corrección exacta de fotografías */
.services .terapia-individual-card .card-image{
  background-image:url('assets/terapia-individual-caef.webp') !important;
  background-size:cover !important;
  background-position:center 45% !important;
}
.services .terapia-pareja-card .card-image{
  background-image:url('assets/terapia-pareja-caef-v17.webp') !important;
  background-size:cover !important;
  background-position:center 72% !important;
}
.nosotros-foto-fallback{display:none}
body .monica-nosotros{
  background-image:url('assets/monica-nieves-nosotros.webp') !important;
  background-size:cover !important;
  background-position:center 38% !important;
  min-height:430px;
}

/* V18 — nueva imagen para Nuestro enfoque */
body .monica-nosotros{
  background-image:url('assets/nuestro-enfoque-caef.webp') !important;
  background-size:cover !important;
  background-position:center center !important;
  min-height:430px;
}

/* V19 — perfil ampliado de Mónica Nieves en Equipo */
.monica-profile-extra{margin-top:16px;max-width:760px}
.monica-profile-extra p{margin:0 0 12px;line-height:1.7}
.monica-profile-extra strong{color:#123b63}

/* V20 — Equipo corregido y responsive */
.team-hero{padding-bottom:48px}
.team-section{padding:22px 0 90px}
.team-feature{
  display:grid;
  grid-template-columns:minmax(320px,.88fr) minmax(0,1.12fr);
  gap:64px;
  align-items:center;
  padding:42px;
  margin-bottom:42px;
  background:#fff;
  border-radius:28px;
  box-shadow:0 18px 55px rgba(18,59,99,.09);
}
.team-feature-photo{
  min-height:520px;
  border-radius:24px;
  overflow:hidden;
  background:#eef5f7;
}
.team-feature-photo img{
  display:block;
  width:100%;
  height:100%;
  min-height:520px;
  object-fit:cover;
  object-position:center 34%;
}
.team-feature-content{max-width:690px}
.team-feature-content h2{
  margin:8px 0 22px;
  font-size:clamp(34px,4vw,54px);
  line-height:1.05;
  color:#123b63;
}
.team-feature-content p{
  margin:0 0 16px;
  font-size:17px;
  line-height:1.75;
  color:#52677c;
}
.team-feature-content strong{color:#123b63}
.team-feature-reverse{grid-template-columns:minmax(0,1.12fr) minmax(320px,.88fr)}
.team-feature-reverse .team-feature-photo{order:2}
.team-feature-reverse .team-feature-content{order:1}
.viviana-photo{
  min-height:390px;
  background:linear-gradient(145deg,#eaf4f7,#f8fbfc);
}
@media(max-width:900px){
  .team-feature,.team-feature-reverse{
    grid-template-columns:1fr;
    gap:28px;
    padding:24px;
  }
  .team-feature-reverse .team-feature-photo,
  .team-feature-reverse .team-feature-content{order:initial}
  .team-feature-photo,.team-feature-photo img{min-height:420px}
}
@media(max-width:600px){
  .team-section{padding-bottom:55px}
  .team-feature{padding:16px;border-radius:20px}
  .team-feature-photo,.team-feature-photo img{min-height:360px;border-radius:16px}
  .team-feature-content p{font-size:16px}
}

/* V21 - Fotografías definitivas de la pestaña Servicios */
#terapia-individual .card-image{
  background-image:url('assets/servicio-terapia-individual.webp') !important;
}
#terapia-pareja .card-image{
  background-image:url('assets/servicio-terapia-pareja.webp') !important;
}
#terapia-familiar .card-image{
  background-image:url('assets/servicio-terapia-familiar.webp') !important;
}
#evaluacion-integral .card-image{
  background-image:url('assets/servicio-evaluacion-integral.webp') !important;
}
#evaluacion-socioemocional .card-image{
  background-image:url('assets/servicio-evaluacion-socioemocional.webp') !important;
}
#orientacion-vocacional .card-image{
  background-image:url('assets/servicio-orientacion-vocacional.webp') !important;
}

/* V24 - Evaluación Socioemocional en Inicio */
.services .evaluacion-socioemocional-card .card-image{
  background-image:url('assets/servicio-evaluacion-socioemocional.webp') !important;
}

/* V25 - Terapia Individual definitiva en Inicio y Servicios */
.services .terapia-individual-card .card-image,
#terapia-individual .card-image{
  background-image:url('assets/servicio-terapia-individual.webp') !important;
  background-size:cover !important;
  background-position:center center !important;
}


/* V26 - Evaluación Integral definitiva en Inicio y Servicios */
.services .evaluacion-integral-card .card-image,
#evaluacion-integral .card-image{
  background-image:url('assets/servicio-evaluacion-integral.webp') !important;
  background-size:cover !important;
  background-position:center center !important;
}


/* V29 - Orientación Vocacional definitiva en Inicio y Servicios */
.services .orientacion-vocacional-card .card-image,
#orientacion-vocacional .card-image{
  background-image:url('assets/orientacion-vocacional-caef-v29.webp') !important;
  background-size:cover !important;
  background-position:center center !important;
}


/* V30 - Foto real del consultorio en Nosotros > Nuestro enfoque */
.feature-media.monica-nosotros,
.monica-nosotros {
  background-image: url('assets/consultorio-caef-nuestro-enfoque-v30.webp') !important;
  background-size: cover !important;
  background-position: center center !important;
  background-repeat: no-repeat !important;
}

/* V33 — Logo oficial CAEF en cabecera */
header .nav{position:relative}
header .brand{
  margin-left:auto;
  order:3;
  display:flex;
  align-items:center;
  justify-content:flex-end;
}
header .brand img,
.logo-caef-header{
  width:auto !important;
  height:92px !important;
  max-width:190px !important;
  object-fit:contain !important;
  object-position:center !important;
}
header nav{order:2}
@media(max-width:900px){
  header .brand img,
  .logo-caef-header{height:72px !important;max-width:145px !important}
}

/* V34 logo oficial transparente */
header .brand img,.logo-caef-header{
 background:transparent!important;object-fit:contain!important;
 width:auto!important;height:96px!important;max-width:190px!important;
}
@media(max-width:900px){header .brand img,.logo-caef-header{height:72px!important;max-width:145px!important;}}


/* V37 - Inicio: foto de equipo y resumen de servicios */
.feature-media{
  background-image:url('assets/equipo-caef-inicio-v37.webp') !important;
  background-size:cover !important;
  background-position:center 42% !important;
}
.services-more{display:flex;justify-content:center;margin-top:32px}
.services-more .btn-secondary{
  display:inline-flex;align-items:center;justify-content:center;
  padding:14px 24px;border-radius:999px;text-decoration:none;
  color:var(--navy);background:#fff;border:1px solid rgba(21,56,92,.16);
  box-shadow:0 10px 28px rgba(21,56,92,.08);font-weight:700;
}
.services-more .btn-secondary:hover{transform:translateY(-2px)}


/* V38 — Redes sociales */
.social-links{display:flex;gap:10px;flex-wrap:wrap;margin-top:16px}
.social-link{
  display:inline-flex;align-items:center;justify-content:center;
  min-height:38px;padding:8px 14px;border:1px solid rgba(21,59,93,.14);
  border-radius:999px;text-decoration:none;font-weight:700;color:#153b5d;
  background:#fff;transition:.2s ease
}
.social-link:hover{transform:translateY(-2px);box-shadow:0 8px 24px rgba(21,59,93,.10)}
.social-link.instagram:hover{color:#0f9da8}
.social-link.facebook:hover{color:#1769e0}
.text-link{color:#159aa5;font-weight:700;text-decoration:none}
.text-link:hover{text-decoration:underline}

/* V38 — Google Maps */
.map-link{
  text-decoration:none;color:#153b5d;display:flex;flex-direction:column;
  align-items:center;justify-content:center;text-align:center;gap:10px;
  min-height:300px;cursor:pointer;
  background:linear-gradient(145deg,#eef8fb,#ffffff);
  border:1px solid rgba(21,59,93,.08)
}
.map-link:hover{box-shadow:0 18px 44px rgba(21,59,93,.12);transform:translateY(-2px)}
.map-pin{
  width:64px;height:64px;border-radius:50%;display:grid;place-items:center;
  background:#f7941d;color:#fff;font-size:32px;box-shadow:0 10px 25px rgba(247,148,29,.25)
}
.map-link strong{font-size:1.3rem}
.map-link span{color:#159aa5;font-weight:700}

/* V38 — Nuestros consultorios */
.consultorios-section{padding:88px 0;background:linear-gradient(180deg,#fff,#f7fbfd)}
.consultorios-section .section-head{max-width:780px;margin:0 auto 36px;text-align:center}
.consultorios-section .section-head p{max-width:620px;margin:14px auto 0}
.consultorios-grid{
  display:grid;grid-template-columns:repeat(2,minmax(0,1fr));
  gap:28px;max-width:1080px;margin:0 auto
}
.consultorio-card{
  background:#fff;border-radius:24px;overflow:hidden;
  box-shadow:0 18px 50px rgba(21,59,93,.10);
  border:1px solid rgba(21,59,93,.06)
}
.consultorio-photo{aspect-ratio:16/10;overflow:hidden;background:#edf5f7}
.consultorio-photo img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .5s ease}
.consultorio-card:hover .consultorio-photo img{transform:scale(1.025)}
.consultorio-body{padding:24px 26px 28px}
.consultorio-body h3{margin:0 0 8px;color:#153b5d;font-size:1.35rem}
.consultorio-body p{margin:0;color:#60758a;line-height:1.65}
@media(max-width:760px){
  .consultorios-section{padding:62px 0}
  .consultorios-grid{grid-template-columns:1fr;gap:20px}
}


/* V39 — iconos sociales en cabecera */
.top-social{
  display:flex;align-items:center;gap:9px;margin-left:auto;margin-right:14px;
  padding:7px 10px;border-radius:14px;background:#79b9e8;
}
.top-social a{
  width:27px;height:27px;display:grid;place-items:center;
  border-radius:50%;transition:transform .2s ease,background .2s ease;
}
.top-social a:hover{transform:translateY(-2px);background:rgba(255,255,255,.15)}
.top-social svg{width:22px;height:22px;fill:#fff;stroke:#fff;stroke-width:1.8}
.top-social svg rect,.top-social svg circle{fill:none}
.top-social a:first-child svg{stroke:none;fill:#fff}

/* V39 — roll de imágenes por consultorio */
.consultorio-carousel{
  position:relative;aspect-ratio:16/10;overflow:hidden;background:#edf5f7
}
.consultorio-slides{position:absolute;inset:0}
.consultorio-slide{
  position:absolute;inset:0;width:100%;height:100%;object-fit:cover;
  opacity:0;transform:scale(1.015);transition:opacity .55s ease,transform .8s ease
}
.consultorio-slide.active{opacity:1;transform:scale(1)}
.consultorio-arrow{
  position:absolute;top:50%;transform:translateY(-50%);z-index:3;
  width:42px;height:42px;border:0;border-radius:50%;
  background:rgba(255,255,255,.90);color:#153b5d;font-size:30px;line-height:1;
  cursor:pointer;box-shadow:0 5px 18px rgba(0,0,0,.12)
}
.consultorio-arrow:hover{background:#fff}
.consultorio-arrow.prev{left:14px}.consultorio-arrow.next{right:14px}
.consultorio-dots{
  position:absolute;left:50%;bottom:14px;transform:translateX(-50%);
  z-index:3;display:flex;gap:7px;padding:7px 10px;border-radius:999px;
  background:rgba(255,255,255,.88)
}
.consultorio-dots button{
  width:9px;height:9px;padding:0;border:0;border-radius:50%;
  background:#b8c5ce;cursor:pointer
}
.consultorio-dots button.active{width:24px;border-radius:999px;background:#26a3aa}
@media(max-width:900px){
  .top-social{margin-left:0;margin-right:8px;padding:6px 8px}
  .top-social a{width:24px;height:24px}
  .top-social svg{width:20px;height:20px}
}


/* V40 — redes junto al logo, sin fondo */
.top-social{
  display:flex !important;
  align-items:center !important;
  gap:10px !important;
  margin-left:auto !important;
  margin-right:12px !important;
  padding:0 !important;
  background:transparent !important;
  border-radius:0 !important;
}
.top-social a{
  width:28px !important;
  height:28px !important;
  display:grid !important;
  place-items:center !important;
  background:transparent !important;
  border-radius:0 !important;
  transition:transform .2s ease, opacity .2s ease !important;
}
.top-social a:hover{
  transform:translateY(-2px) !important;
  background:transparent !important;
  opacity:.8 !important;
}
.top-social svg{
  width:23px !important;
  height:23px !important;
  fill:#2ca3ad !important;
  stroke:#2ca3ad !important;
}
.top-social svg rect,
.top-social svg circle{
  fill:none !important;
  stroke:#2ca3ad !important;
}
.top-social a:first-child svg{
  stroke:none !important;
  fill:#2ca3ad !important;
}

/* mantener logo al extremo derecho */
header .brand{
  margin-left:0 !important;
  order:4 !important;
}
header nav{order:2 !important}
header .cta{order:1 !important}
.top-social{order:3 !important}

@media(max-width:900px){
  .top-social{
    margin-left:6px !important;
    margin-right:8px !important;
    gap:7px !important;
  }
  .top-social a{width:24px !important;height:24px !important}
  .top-social svg{width:20px !important;height:20px !important}
}


/* V42 — Blog editorial CAEF */
.blog-page-hero{padding-bottom:42px}
.blog-listing-section{padding-top:26px}
.blog-cards-grid,.home-blog-grid{
  display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:28px
}
.home-blog-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
.blog-card-v42{
  background:#fff;border-radius:22px;overflow:hidden;
  box-shadow:0 16px 46px rgba(21,59,93,.09);
  border:1px solid rgba(21,59,93,.06);transition:transform .2s ease,box-shadow .2s ease
}
.blog-card-v42:hover{transform:translateY(-4px);box-shadow:0 20px 55px rgba(21,59,93,.13)}
.blog-card-image{display:block;aspect-ratio:16/9;overflow:hidden}
.blog-card-image img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .45s ease}
.blog-card-v42:hover .blog-card-image img{transform:scale(1.025)}
.blog-card-body{padding:24px 26px 28px}
.blog-card-body h2,.blog-card-body h3{margin:8px 0 12px;color:#153b5d;line-height:1.18}
.blog-card-body h2 a,.blog-card-body h3 a{text-decoration:none;color:inherit}
.blog-card-body p{color:#61778a;line-height:1.65;margin:0 0 18px}
.read-more{font-weight:800;color:#229fa8;text-decoration:none}
.read-more:hover{text-decoration:underline}

/* Páginas de artículo */
.article-page{padding:58px 0 90px}
.article-shell{max-width:940px}
.article-back{display:inline-block;margin-bottom:28px;color:#153b5d;text-decoration:none;font-weight:700}
.article-category{margin-bottom:10px}
.article-page h1{font-size:clamp(2.2rem,5vw,4.4rem);line-height:1.04;max-width:900px;margin:0 0 18px;color:#153b5d}
.article-lead{font-size:1.2rem;line-height:1.75;color:#60758a;max-width:790px;margin:0 0 32px}
.article-hero{border-radius:26px;overflow:hidden;box-shadow:0 20px 55px rgba(21,59,93,.10);margin-bottom:46px}
.article-hero img{width:100%;display:block;aspect-ratio:16/9;object-fit:cover}
.article-content{max-width:760px;margin:0 auto;color:#263f54;font-size:1.08rem;line-height:1.82}
.article-content h2{font-size:1.7rem;line-height:1.25;color:#153b5d;margin:42px 0 16px}
.article-content p{margin:0 0 18px}
.article-content ul{padding-left:22px;margin:0 0 24px}
.article-content li{margin-bottom:10px}
.article-content blockquote{
  margin:24px 0;padding:18px 22px;border-left:4px solid #2ca3ad;
  background:#f2fafb;border-radius:0 14px 14px 0;color:#153b5d;font-weight:700
}
.article-cta{
  max-width:820px;margin:56px auto 0;padding:28px 30px;border-radius:24px;
  background:#eef8fb;display:flex;justify-content:space-between;align-items:center;gap:24px
}
.article-cta h3{margin:4px 0 0;color:#153b5d}
@media(max-width:900px){
  .home-blog-grid{grid-template-columns:1fr}
  .blog-cards-grid{grid-template-columns:1fr}
  .article-page{padding-top:38px}
  .article-cta{align-items:flex-start;flex-direction:column}
}


/* V43 — Correcciones de lectura del Blog */
.blog-card-body h2,
.blog-card-body h3{
  font-size:clamp(1.45rem,2vw,2rem) !important;
  line-height:1.18 !important;
  letter-spacing:-.02em;
}
.home-blog-grid .blog-card-body h2,
.home-blog-grid .blog-card-body h3{
  font-size:clamp(1.35rem,1.7vw,1.75rem) !important;
}
.blog-card-body p{
  font-size:1rem !important;
  line-height:1.6 !important;
}
.blog-card-body{padding:22px 24px 25px !important}

/* Mantener el título del artículo elegante pero no sobredimensionado */
.article-page h1{
  font-size:clamp(2rem,4vw,3.35rem) !important;
  line-height:1.08 !important;
}
.article-content{
  font-size:1.04rem !important;
  line-height:1.78 !important;
}
.article-content h2{
  font-size:clamp(1.4rem,2.4vw,1.75rem) !important;
}
@media(max-width:900px){
  .blog-card-body h2,.blog-card-body h3,
  .home-blog-grid .blog-card-body h2,.home-blog-grid .blog-card-body h3{
    font-size:1.45rem !important;
  }
}

/* V44 — TikTok + LinkedIn + mapa real */
.top-social{gap:10px !important}
.top-social a{background:transparent !important}
.top-social svg{fill:#24a2ad !important;stroke:#24a2ad !important}
.top-social svg rect,.top-social svg circle{stroke:#24a2ad !important}
.top-social a:first-child svg{fill:#24a2ad !important;stroke:none !important}
.top-social a:hover{background:rgba(36,162,173,.08) !important}

.map-embed{padding:0 !important;overflow:hidden !important;display:block !important;min-height:430px}
.map-embed iframe{display:block;width:100%;height:100%;min-height:430px;border:0}
@media(max-width:900px){
  .top-social{gap:5px !important}
  .map-embed,.map-embed iframe{min-height:340px}
}


/* V45 — Compartir artículos */
.article-share{
  max-width:820px;
  margin:42px auto 0;
  padding-top:22px;
  border-top:1px solid rgba(21,59,93,.12);
  display:flex;
  align-items:center;
  gap:12px;
  flex-wrap:wrap;
}
.article-share-label{
  margin-right:4px;
  color:#153b5d;
  font-weight:800;
}
.article-share-btn{
  width:38px;
  height:38px;
  display:grid;
  place-items:center;
  border-radius:50%;
  text-decoration:none;
  color:#2ca3ad;
  background:transparent;
  border:1px solid rgba(44,163,173,.22);
  transition:transform .2s ease,background .2s ease,border-color .2s ease;
}
.article-share-btn:hover{
  transform:translateY(-2px);
  background:rgba(44,163,173,.08);
  border-color:rgba(44,163,173,.45);
}
.article-share-btn svg{
  width:20px;
  height:20px;
  fill:#2ca3ad;
}
@media(max-width:700px){
  .article-share{
    gap:10px;
  }
  .article-share-label{
    width:100%;
    margin-bottom:4px;
  }
}


/* V46 — Navegación móvil */
.mobile-menu-toggle{
  display:none;
  appearance:none;
  border:0;
  background:transparent;
  width:40px;
  height:40px;
  padding:8px;
  border-radius:10px;
  cursor:pointer;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:5px;
}
.mobile-menu-toggle span{
  display:block;
  width:23px;
  height:2.5px;
  border-radius:4px;
  background:#153b5d;
  transition:transform .2s ease,opacity .2s ease;
}
.mobile-menu-toggle.is-open span:nth-child(1){transform:translateY(7.5px) rotate(45deg)}
.mobile-menu-toggle.is-open span:nth-child(2){opacity:0}
.mobile-menu-toggle.is-open span:nth-child(3){transform:translateY(-7.5px) rotate(-45deg)}

@media(max-width:900px){
  header .nav{
    flex-wrap:wrap !important;
    justify-content:flex-start !important;
    gap:10px !important;
    padding:14px 0 !important;
  }
  header .cta{order:1 !important}
  .top-social{
    order:2 !important;
    margin-left:auto !important;
    margin-right:0 !important;
  }
  .mobile-menu-toggle{
    display:flex !important;
    order:3 !important;
    flex:0 0 40px;
  }
  header .brand{
    order:4 !important;
    margin-left:0 !important;
  }

  header nav{
    display:none !important;
    order:10 !important;
    width:100% !important;
    margin:4px 0 0 !important;
    padding:10px 0 4px !important;
    border-top:1px solid rgba(21,59,93,.08);
    flex-direction:column !important;
    align-items:stretch !important;
    gap:0 !important;
  }
  header nav.is-open{display:flex !important}
  header nav a{
    display:block;
    width:100%;
    padding:12px 4px !important;
    border-bottom:1px solid rgba(21,59,93,.06);
    font-size:1rem !important;
  }
  header nav a:last-child{border-bottom:0}
}
@media(max-width:620px){
  /* En teléfonos escondemos el logo del header para dar aire a CTA + redes + menú */
  header .brand{display:none !important}
  header .cta{
    padding:11px 16px !important;
    font-size:.95rem !important;
  }
}


/* V47 — ajustes solicitados: títulos del blog y fotos definitivas de consultorios */
.blog-card-body h2,
.blog-card-body h3,
.home-blog-grid .blog-card-body h2,
.home-blog-grid .blog-card-body h3{
  font-size:22px !important;
  line-height:1.22 !important;
  letter-spacing:-.015em;
}

/* V48: testimonios reales */
.testimonials-real{grid-template-columns:repeat(2,minmax(0,1fr));max-width:980px;margin:0 auto}
.testimonials-real .quote{padding:34px}
.testimonials-real .quote p{font-size:18px}
.testimonials-real .quote b{color:var(--navy)}
@media(max-width:760px){.testimonials-real{grid-template-columns:1fr}.testimonials-real .quote{padding:26px}.testimonials-real .quote p{font-size:17px}}

/* V51 — fecha de publicación en Blog */
.blog-card-meta{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:4px}
.blog-card-meta .eyebrow{margin:0}
.blog-date{font-size:12px;color:#7a8d9d;font-weight:700;text-transform:none;letter-spacing:0}
.article-date{display:block;margin:-8px 0 26px;color:#7a8d9d;font-size:.95rem;font-weight:700}
@media(max-width:620px){.blog-card-meta{align-items:flex-start;flex-direction:column;gap:5px}.article-date{margin-top:-4px}}


/* V52 — Cabecera consistente en todas las páginas */
@media (min-width:901px){
  header .nav{
    display:flex !important;
    align-items:center !important;
    justify-content:flex-start !important;
    gap:22px !important;
  }
  header .brand{
    order:1 !important;
    margin:0 !important;
    min-width:78px !important;
    flex:0 0 auto !important;
    justify-content:flex-start !important;
  }
  header .cta{
    order:2 !important;
    flex:0 0 auto !important;
  }
  header nav{
    order:3 !important;
    flex:1 1 auto !important;
    justify-content:center !important;
    margin:0 !important;
  }
  header .top-social{
    order:4 !important;
    margin-left:auto !important;
    margin-right:0 !important;
    flex:0 0 auto !important;
  }
}

/* V53 — privacidad y consentimiento de analítica */
.cookie-banner{position:fixed;left:18px;right:18px;bottom:18px;z-index:9999;display:flex;justify-content:center;pointer-events:none}.cookie-banner-inner{pointer-events:auto;width:min(980px,100%);background:#fff;border:1px solid rgba(23,60,95,.14);border-radius:18px;box-shadow:0 18px 55px rgba(18,52,80,.20);padding:18px 20px;display:flex;align-items:center;justify-content:space-between;gap:22px}.cookie-copy{max-width:680px}.cookie-copy b{display:block;color:#173c5f;font-size:16px;margin-bottom:4px}.cookie-copy p{margin:0 0 5px;color:#5c7285;font-size:14px;line-height:1.5}.cookie-copy a{color:#238d96;font-weight:700;font-size:13px}.cookie-actions{display:flex;gap:9px;flex-wrap:wrap;justify-content:flex-end}.cookie-btn{border:0;border-radius:11px;padding:10px 14px;font-weight:800;cursor:pointer;white-space:nowrap}.cookie-btn.primary{background:#173c5f;color:#fff}.cookie-btn.secondary{background:#eaf4f6;color:#1e7780}.legal-page{padding:58px 0 80px}.legal-shell{max-width:850px}.legal-shell h1{color:#173c5f;margin-bottom:10px}.legal-shell h2{color:#173c5f;margin:34px 0 12px;font-size:24px}.legal-shell p,.legal-shell li{color:#506b80;line-height:1.75}.legal-shell ul{padding-left:22px}.legal-date{color:#7890a1;font-size:14px}.legal-note{background:#f2f8fa;border-left:4px solid #29a5ad;border-radius:0 12px 12px 0;padding:15px 18px;margin:22px 0}.footer-legal{margin-top:8px;font-size:13px}.footer-legal a{color:inherit;text-decoration:underline;text-underline-offset:2px}@media(max-width:720px){.cookie-banner{left:10px;right:10px;bottom:10px}.cookie-banner-inner{display:block;padding:16px}.cookie-actions{justify-content:stretch;margin-top:12px}.cookie-actions .cookie-btn{flex:1}.legal-page{padding-top:38px}}

/* V55 — banner de consentimiento más amable y orientado a la aceptación */
.cookie-banner{left:14px;right:14px;bottom:14px}.cookie-banner-inner{width:min(920px,100%);border-color:rgba(35,141,150,.18);box-shadow:0 16px 44px rgba(18,52,80,.18);padding:16px 18px;gap:16px}.cookie-icon{width:42px;height:42px;border-radius:50%;display:grid;place-items:center;flex:0 0 42px;background:#eef8f8;color:#238d96;font-size:22px;font-weight:900}.cookie-copy{max-width:610px}.cookie-copy b{font-size:16px}.cookie-copy p{font-size:13.5px;line-height:1.45}.cookie-actions{min-width:188px;flex-direction:column;align-items:stretch;gap:7px}.cookie-btn{width:100%;padding:11px 16px}.cookie-btn.primary{background:#238d96;color:#fff;box-shadow:0 7px 18px rgba(35,141,150,.22)}.cookie-btn.primary:hover{filter:brightness(.96)}.cookie-btn.secondary{background:transparent;color:#63798a;padding:7px 12px;font-size:12.5px}.cookie-btn.secondary:hover{background:#f3f7f8}@media(max-width:720px){.cookie-banner-inner{padding:15px}.cookie-icon{display:none}.cookie-actions{min-width:0;flex-direction:column;margin-top:12px}.cookie-actions .cookie-btn{flex:none;width:100%}}
