:root{
  --verde-900:#0a2b26; --verde-800:#0e3630; --verde-700:#12403a;
  --teal:#4fb8ac; --teal-claro:#8ad5cb; --crema:#f6f3ec; --blanco:#fff;
  --serif:'Playfair Display',serif; --sans:'Montserrat',sans-serif;
  --radio:16px; --sombra:0 18px 40px rgba(6,32,28,.18); --trans:.35s cubic-bezier(.22,.61,.36,1);
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{font-family:var(--sans);color:var(--verde-900);background:var(--crema);line-height:1.65}
img{max-width:100%;display:block}
a{text-decoration:none;color:inherit}
h1,h2,h3{font-family:var(--serif);line-height:1.15}
section{scroll-margin-top:90px}
.ic{width:22px;height:22px;color:var(--teal);flex:none}

/* Animación al hacer scroll */
[data-reveal]{opacity:0;transform:translateY(26px);transition:opacity .7s ease,transform .7s ease;transition-delay:var(--d,0ms)}
[data-reveal].visible{opacity:1;transform:none}

/* ===== HEADER ===== */
.topbar{position:fixed;top:0;left:0;right:0;z-index:50;background:rgba(10,43,38,.94);backdrop-filter:blur(10px)}
.nav-contenedor{max-width:1200px;margin:auto;display:flex;align-items:center;justify-content:space-between;padding:12px 24px}
.marca{display:flex;align-items:center;gap:12px;color:#fff}
.marca img{width:52px;height:52px;object-fit:contain}
.marca-texto strong{font-family:var(--serif);font-size:1.05rem;display:block;line-height:1.2}
.marca-texto small{letter-spacing:.18em;text-transform:uppercase;font-size:.6rem;color:var(--teal-claro)}
.nav{display:flex;gap:26px;list-style:none;align-items:center}
.nav a{color:#e8f4f2;font-size:.92rem;font-weight:500;position:relative}
.nav a:not(.cta)::after{content:"";position:absolute;left:0;bottom:-6px;width:0;height:2px;background:var(--teal);transition:width var(--trans)}
.nav a:hover::after,.nav a.activo::after{width:100%}
.cta{background:var(--teal);color:#06201c!important;padding:10px 22px;border-radius:999px;font-weight:600;transition:background var(--trans)}
.cta:hover{background:var(--teal-claro)}
.menu-btn{display:none;flex-direction:column;gap:5px;background:none;border:0;cursor:pointer;padding:6px}
.menu-btn span{width:26px;height:2px;background:#fff;display:block}

/* ===== HERO ===== */
.hero{
  color:#eaf6f4;
  background-color:var(--verde-900);
  background-image:linear-gradient(90deg, rgba(10,43,38,.93) 0%, rgba(10,43,38,.78) 45%, rgba(10,43,38,.45) 100%);
  background-size:cover;
  background-position:center;
  background-repeat:no-repeat;
}
.hero-cont{max-width:1200px;margin:auto;padding:150px 24px 90px;display:grid;grid-template-columns:1.1fr .9fr;gap:56px;align-items:center}
.kicker{text-transform:uppercase;letter-spacing:.28em;font-size:.72rem;font-weight:600;color:var(--teal-claro);margin-bottom:14px;display:flex;align-items:center;gap:12px}
.kicker::before{content:"";width:36px;height:1px;background:var(--teal-claro);flex:none}
.kicker.oscuro{color:var(--teal)}
.hero h1{font-size:clamp(2.3rem,5vw,3.8rem);color:#fff;text-shadow:0 2px 18px rgba(4,26,22,.5)}
.hero h1 em{color:var(--teal-claro);font-style:italic}
.hero-bajada{margin:22px 0 32px;max-width:520px;color:#eef7f5;text-shadow:0 1px 10px rgba(4,26,22,.45)}
.hero-botones{display:flex;gap:16px;flex-wrap:wrap}
.btn{display:inline-block;padding:14px 30px;border-radius:999px;font-weight:600;font-size:.95rem;transition:transform var(--trans),box-shadow var(--trans),background var(--trans)}
.btn-teal{background:var(--teal);color:#06201c}
.btn-teal:hover{background:var(--teal-claro);transform:translateY(-3px);box-shadow:0 14px 30px rgba(79,184,172,.35)}
.btn-linea{border:1.5px solid rgba(138,213,203,.6);color:var(--teal-claro)}
.btn-linea:hover{border-color:var(--teal-claro);background:rgba(138,213,203,.1)}
.hero-panel{background:rgba(10,43,38,.62);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border:1px solid rgba(138,213,203,.3);border-radius:24px;padding:44px 38px;box-shadow:var(--sombra)}
.hero-panel img{border-radius:14px}
.hero-checks{list-style:none;display:grid;gap:18px;font-size:1.05rem}
.hero-checks li{display:flex;gap:12px;align-items:center}
.hero-checks .ic{width:26px;height:26px;color:var(--teal)}
.utero{width:100%;max-width:320px;margin:36px auto 26px;display:block;filter:drop-shadow(0 0 12px rgba(138,213,203,.35))}
.utero path, .utero circle{
  stroke:var(--teal-claro);
  stroke-width:2.2;
  fill:none;
  stroke-linecap:round;
  stroke-linejoin:round;
}
.utero-cuerpo{
  stroke-dasharray:800;
  stroke-dashoffset:800;
  animation:dibujar 4s ease-in-out infinite alternate;
}
.utero-trompa{
  stroke-dasharray:300;
  stroke-dashoffset:300;
  animation:dibujar 3s ease-in-out .5s infinite alternate;
}
.utero-ovario{
  stroke-dasharray:100;
  stroke-dashoffset:100;
  fill:rgba(138,213,203,.15);
  animation:dibujar 2.5s ease-in-out .8s infinite alternate;
}
@keyframes dibujar{
  0%{stroke-dashoffset:800}
  100%{stroke-dashoffset:0}
}
/* Pulso sutil del útero completo */
.utero{animation:pulso-utero 4s ease-in-out infinite}
@keyframes pulso-utero{
  0%,100%{transform:scale(1);opacity:.9}
  50%{transform:scale(1.03);opacity:1}
}
.hero-dir{font-size:.85rem;color:#a9cdc7;display:flex;gap:8px;align-items:flex-start}

/* ===== SERVICIOS ===== */
.servicios{padding:100px 24px}
.servicios-cont,.gal-preview-cont,.contacto-cont{max-width:1200px;margin:auto}
.titulo-seccion{font-size:clamp(1.8rem,3.5vw,2.6rem);margin-bottom:44px}
.serv-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(270px,1fr));gap:20px}
.serv-card{background:#fff;border-radius:var(--radio);padding:26px;display:flex;gap:14px;align-items:flex-start;box-shadow:0 6px 18px rgba(6,32,28,.06);transition:transform var(--trans),box-shadow var(--trans)}
.serv-card:hover{transform:translateY(-6px);box-shadow:var(--sombra)}
.serv-card p{font-weight:500}

/* ===== DOCTOR ===== */
.doctor{background:var(--verde-900);color:#eaf6f4;padding:110px 24px}
.doctor-cont{max-width:1100px;margin:auto;display:grid;grid-template-columns:.9fr 1.1fr;gap:60px;align-items:center}
.doctor .titulo-seccion{margin-bottom:20px}
.doctor-foto{border-radius:24px;min-height:380px;display:grid;place-items:center;text-align:center;border:1.5px dashed rgba(138,213,203,.4);color:#9fc9c2;padding:20px}
.doctor-foto img{border-radius:24px;min-height:380px;object-fit:cover;width:100%}
.doctor-lista{list-style:none;margin-top:26px;display:grid;gap:14px}
.doctor-lista li{display:flex;gap:12px;align-items:center}

/* ===== GALERÍA ===== */
.gal-preview{padding:100px 24px;text-align:center}
.gal-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:16px;margin:30px 0 36px;text-align:left}
.g-item{border:0;background:none;padding:0;border-radius:14px;overflow:hidden;cursor:pointer;position:relative}
.g-item img{width:100%;height:220px;object-fit:cover;transition:transform .5s ease}
.g-item:hover img{transform:scale(1.06)}
.vacio{color:#5c6b68;font-style:italic;margin:20px 0}
.pagina-galeria{padding:140px 24px 90px;max-width:1200px;margin:auto}
.cabecera-pagina h1{font-size:clamp(2rem,4vw,3rem)}
.cabecera-pagina p{color:#5c6b68;margin:10px 0 50px}
.gal-bloque{margin-bottom:60px}
.gal-bloque h2{font-size:1.6rem;margin-bottom:22px}

/* ===== CONTACTO ===== */
.contacto{background:var(--crema);padding:100px 24px;text-align:center}
.contacto-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:22px;margin-top:10px}
.tarjeta{background:#fff;border-radius:var(--radio);padding:34px 26px;box-shadow:0 6px 18px rgba(6,32,28,.06);transition:transform var(--trans)}
.tarjeta:hover{transform:translateY(-6px)}
.tarjeta .ic{width:34px;height:34px;margin:0 auto 14px}
.tarjeta h3{font-size:1.2rem;margin-bottom:10px}
.tarjeta p{font-size:.92rem;color:#415450}

/* ===== FOOTER ===== */
.pie{background:var(--verde-900);color:#cfe6e2;padding:70px 24px 0}
.pie-grid{max-width:1200px;margin:auto;display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:40px;padding-bottom:50px}
.pie h3{color:#fff;font-size:1.4rem}
.pie h4{color:var(--teal-claro);text-transform:uppercase;letter-spacing:.15em;font-size:.75rem;margin-bottom:14px}
.pie p{font-size:.9rem;margin-bottom:10px;display:flex;gap:10px;align-items:flex-start}
.pie .ic{width:18px;height:18px;margin-top:3px}
.pie-lema{font-style:italic;color:var(--teal-claro)}
.pie-links a{color:#cfe6e2;text-decoration:underline}
.pie-baja{border-top:1px solid rgba(138,213,203,.2);padding:20px;text-align:center;font-size:.78rem;color:#8fb7b1}

/* ===== WHATSAPP ===== */
.whats{position:fixed;right:22px;bottom:22px;width:60px;height:60px;border-radius:50%;background:#25d366;display:grid;place-items:center;z-index:60;animation:pulso 2.6s infinite}
@keyframes pulso{0%{box-shadow:0 0 0 0 rgba(37,211,102,.5)}70%{box-shadow:0 0 0 18px rgba(37,211,102,0)}100%{box-shadow:0 0 0 0 rgba(37,211,102,0)}}

/* ===== LIGHTBOX ===== */
.lightbox{position:fixed;inset:0;background:rgba(4,20,17,.92);display:grid;place-items:center;z-index:80;opacity:0;pointer-events:none;transition:opacity .3s}
.lightbox.abierto{opacity:1;pointer-events:auto}
.lightbox figure{text-align:center}
.lightbox img{max-width:min(92vw,1000px);max-height:78vh;border-radius:12px;margin:auto}
.lightbox figcaption{color:#cfe6e2;margin-top:12px;font-size:.9rem}
.lb-cerrar,.lb-prev,.lb-next{position:fixed;background:none;border:0;color:#fff;font-size:2.4rem;cursor:pointer;opacity:.85;transition:opacity .2s}
.lb-cerrar:hover,.lb-prev:hover,.lb-next:hover{opacity:1}
.lb-cerrar{top:18px;right:24px}
.lb-prev{left:14px;top:50%}
.lb-next{right:14px;top:50%}

/* ===== RESPONSIVE ===== */
@media(max-width:900px){
  .hero-cont,.doctor-cont{grid-template-columns:1fr;padding-top:120px}
  .menu-btn{display:flex}
  .nav{position:fixed;inset:0;background:var(--verde-900);flex-direction:column;justify-content:center;gap:34px;transform:translateX(100%);transition:transform .45s ease;z-index:40}
  .nav.abierto{transform:none}
  .nav a{font-size:1.15rem}
}
/* ===== ÚTERO ANIMADO (línea delineada) ===== */
.ani{width:100%;max-width:340px;margin:30px auto 20px;display:block;animation:ani-flotar 7s ease-in-out 3.5s infinite}
.ani path,.ani ellipse,.ani circle{fill:none;stroke:var(--teal-claro);stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.ani-cuerpo{stroke-dasharray:520;stroke-dashoffset:520;animation:ani-dibujar 2.2s ease-in-out forwards}
.ani-trompa{stroke-dasharray:170;stroke-dashoffset:170;animation:ani-dibujar 1.6s ease-in-out .9s forwards}
.ani-cervix{stroke-dasharray:90;stroke-dashoffset:90;animation:ani-dibujar 1s ease-in-out 1.6s forwards}
.ani-fimbria{opacity:0;animation:ani-vers .6s ease-out 2.2s forwards}
.ani-ovario{opacity:0;animation:ani-vers .8s ease-out 2.4s forwards}
.ani-foliculo{opacity:0;stroke-width:1.5;animation:ani-vers .8s ease-out 2.8s forwards}
.ani-cavidad{opacity:0;stroke-width:1.4;animation:ani-vers 1.2s ease-out 3s forwards}
.ani-luz{stroke:#d9fff8;stroke-width:2.6;stroke-dasharray:60 560;stroke-dashoffset:620;opacity:0;filter:drop-shadow(0 0 6px rgba(138,213,203,.8));animation:ani-vers .4s ease-out 3.2s forwards, ani-recorrer 6s linear 3.2s infinite}
@keyframes ani-dibujar{to{stroke-dashoffset:0}}
@keyframes ani-vers{to{opacity:1}}
@keyframes ani-recorrer{to{stroke-dashoffset:0}}
@keyframes ani-flotar{0%,100%{transform:translateY(0)}50%{transform:translateY(-6px)}}