/* =====================================================================
   GRUPO MEDICAL CENTER — Estilos del sitio público
   Variables --color-primario / --color-secundario inyectadas en header.
   ===================================================================== */
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{font-family:var(--fuente,'Poppins',sans-serif);color:#2b2f38;background:#fff;line-height:1.6}
html,body{overflow-x:hidden;max-width:100%}
img{max-width:100%;display:block}
a{text-decoration:none;color:inherit}
.contenedor{width:100%;max-width:1280px;margin:0 auto;padding:0 24px}

/* ---------- Botones ---------- */
.btn{display:inline-flex;align-items:center;gap:8px;font-weight:600;border:none;cursor:pointer;
  border-radius:8px;padding:11px 20px;font-size:14px;transition:.2s;font-family:inherit}
.btn-naranja{background:var(--color-secundario);color:#fff}
.btn-naranja:hover{filter:brightness(.93)}
.btn-azul{background:var(--color-primario);color:#fff}
.btn-azul:hover{filter:brightness(1.12)}
.btn-outline{background:#fff;color:var(--color-primario);border:1.5px solid #e2e6ee}
.btn-outline:hover{border-color:var(--color-secundario);color:var(--color-secundario)}

/* ---------- Header ---------- */
.site-header{background:#fff;box-shadow:0 2px 14px rgba(0,0,0,.06);position:sticky;top:0;z-index:100}
.header-inner{display:flex;align-items:center;gap:18px;padding:12px 18px}
.marca{display:flex;align-items:center;gap:12px;flex-shrink:0}
.marca-logo{height:52px;width:auto}
.marca-texto strong{display:block;color:var(--color-primario);font-size:18px;font-weight:800;line-height:1.1;letter-spacing:.3px}
.marca-texto small{display:block;color:#7a8190;font-size:10.5px;max-width:240px}
.nav{display:flex;gap:24px;margin-left:auto;font-weight:600;font-size:13.5px}
.nav a{color:#2b2f38;padding:6px 0;position:relative;letter-spacing:.4px}
.nav a:hover,.nav a.activo{color:var(--color-secundario)}
.nav a.activo::after{content:"";position:absolute;left:0;right:0;bottom:-2px;height:2px;background:var(--color-secundario)}
.btn-whatsapp-header{display:inline-flex;align-items:center;gap:8px;background:var(--color-secundario);
  color:#fff;font-weight:700;font-size:12.5px;padding:11px 18px;border-radius:8px;flex-shrink:0}
.btn-whatsapp-header:hover{filter:brightness(.93)}
.menu-toggle{display:none;flex-direction:column;gap:5px;background:none;border:none;cursor:pointer;margin-left:auto}
.menu-toggle span{width:26px;height:3px;background:var(--color-primario);border-radius:2px}

/* ---------- HERO ---------- */
.hero{background:var(--color-primario);color:#fff;position:relative;overflow:hidden}
.hero-inner{display:grid;grid-template-columns:1fr 1fr;gap:30px;align-items:center;padding:46px 18px 56px;position:relative;z-index:2}
.hero h1{font-size:42px;font-weight:800;line-height:1.05;letter-spacing:.5px}
.hero h1 .resalte{color:var(--color-secundario);display:block}
.hero p{margin:16px 0 22px;color:#d7e0f0;max-width:460px}
.hero-features{display:flex;gap:22px;flex-wrap:wrap;margin:24px 0}
.hero-feature{display:flex;flex-direction:column;align-items:center;text-align:center;gap:6px;width:96px}
.hero-feature .ico{width:54px;height:54px;border-radius:50%;background:rgba(255,255,255,.12);
  display:grid;place-items:center;color:var(--color-secundario)}
.hero-feature span{font-size:10.5px;font-weight:700;letter-spacing:.3px}
.hero-wa{display:inline-flex;align-items:center;gap:12px;background:#0d1f3d;border-radius:12px;padding:12px 20px;margin-top:6px}
.hero-wa .wa-ico{width:42px;height:42px;display:grid;place-items:center}
.hero-wa .wa-ico img{width:100%;height:100%;display:block}
.ico-wa{width:20px;height:20px;display:inline-block;vertical-align:middle}
.hero-wa small{display:block;font-size:11px;color:#cdd6e6}
.hero-wa strong{font-size:22px;color:var(--color-secundario);letter-spacing:.5px}
/* Imagen del banner: ocupa todo el alto del hero y llega al borde derecho */
.hero-imagen{position:absolute;top:0;right:0;bottom:0;width:52%;z-index:1}
.marco-banner{position:absolute;z-index:2;inset:0;overflow:hidden;
  border-radius:230px 0 0 230px / 50% 0 0 50%}
.marco-banner img{display:block;width:100%;height:100%;object-fit:cover}
/* Media luna naranja al INICIO (izquierda) de la imagen */
.media-luna{position:absolute;z-index:1;top:0;bottom:0;left:-34px;right:0;
  background:var(--color-secundario);
  border-radius:248px 0 0 248px / 50% 0 0 50%}

/* ---------- Carrusel de banners (slides) — alto fijo, sin saltos ---------- */
.hero-carrusel{position:relative;height:440px;overflow:hidden;background:var(--color-primario)}
.hero-slide{position:absolute;inset:0;display:none}
.hero-slide.activo{display:block}
.hero-slide-split{position:relative;height:100%}
.hero-slide-split .hero-inner{height:100%;align-content:center}
.hero-slide-img a{display:block;width:100%;height:100%}
.hero-slide-img img{width:100%;height:100%;object-fit:contain;object-position:center;display:block}
.hero-flecha{position:absolute;top:50%;transform:translateY(-50%);z-index:6;
  background:rgba(255,255,255,.18);color:#fff;border:0;width:44px;height:44px;border-radius:50%;
  font-size:26px;line-height:1;cursor:pointer;transition:.2s}
.hero-flecha:hover{background:var(--color-secundario)}
.hero-prev{left:14px}.hero-next{right:14px}
.hero-dots{position:absolute;bottom:16px;left:0;right:0;display:flex;gap:8px;justify-content:center;z-index:6}
.hero-dot{width:10px;height:10px;border-radius:50%;border:0;background:rgba(255,255,255,.55);
  cursor:pointer;transition:.2s;padding:0}
.hero-dot.activo{background:var(--color-secundario);width:26px;border-radius:6px}

/* ---------- Sección genérica ---------- */
.seccion{padding:36px 0}
.seccion-titulo{text-align:center;font-size:26px;font-weight:800;color:var(--color-primario);margin-bottom:6px}
.seccion-titulo .resalte{color:var(--color-secundario)}
.seccion-titulo::after{content:"";display:block;width:64px;height:3px;background:var(--color-secundario);margin:10px auto 0;border-radius:2px}
.seccion-sub{text-align:center;color:#7a8190;margin-bottom:32px}
.linea-separadora{border:0;border-top:1px solid #e6eaf1;margin:0}

/* ---------- Tarjetas de categorías / productos ---------- */
.grid-cards{display:grid;grid-template-columns:repeat(4,1fr);gap:22px}
.card{background:#fff;border:1px solid #eef1f6;border-radius:14px;overflow:hidden;
  box-shadow:0 6px 20px rgba(20,40,80,.06);transition:.25s;display:flex;flex-direction:column}
.card:hover{transform:translateY(-5px);box-shadow:0 12px 30px rgba(20,40,80,.13)}
.card-img{aspect-ratio:4/3;background:#f3f5f9;overflow:hidden}
.card-img img{width:100%;height:100%;object-fit:cover}
.card-body{padding:16px;display:flex;flex-direction:column;flex:1}
.card-body h3{color:var(--color-primario);font-size:16px;margin-bottom:6px}
.card-body p,.card-body .card-txt{font-size:13px;color:#6b7280;flex:1}
.card-txt>*{margin:0 0 4px}
.card-txt>*:last-child{margin-bottom:0}
.card-cat{font-size:11px;color:var(--color-secundario);font-weight:700;text-transform:uppercase;letter-spacing:.4px;margin-bottom:4px}
.card .btn{margin-top:14px;justify-content:center}
.badge-agotado{position:absolute;top:10px;left:10px;background:#e23b3b;color:#fff;font-size:11px;font-weight:700;padding:4px 10px;border-radius:6px}
.badge-destacado{position:absolute;top:10px;right:10px;background:var(--color-secundario);color:#fff;font-size:11px;font-weight:700;padding:4px 10px;border-radius:6px}
.card-img-wrap{position:relative}

/* ---------- Productos: buscador + filtros ---------- */
.buscador{display:flex;align-items:center;gap:10px;max-width:480px;margin:0 auto 20px;
  background:#fff;border:1.5px solid #e2e6ee;border-radius:30px;padding:11px 18px;color:#9aa1ad;
  transition:.2s}
.buscador:focus-within{border-color:var(--color-secundario);box-shadow:0 0 0 3px rgba(247,148,29,.12)}
.buscador input{border:0;outline:0;flex:1;font-family:inherit;font-size:14.5px;color:#2b2f38;background:transparent}
.filtros{display:flex;gap:10px;flex-wrap:wrap;justify-content:center;margin-bottom:14px}
.filtro-pill{border:1.5px solid #e2e6ee;background:#fff;color:var(--color-primario);font-weight:600;
  font-size:13.5px;padding:9px 18px;border-radius:24px;cursor:pointer;font-family:inherit;transition:.2s}
.filtro-pill:hover{border-color:var(--color-secundario);color:var(--color-secundario)}
.filtro-pill.activo{background:var(--color-primario);border-color:var(--color-primario);color:#fff}
.resultado-conteo{text-align:center;color:#9aa1ad;font-size:13px;margin-bottom:24px}
.sin-resultados{text-align:center;color:#7a8190;padding:40px 0;font-size:15px}

/* ---------- Franja de beneficios ---------- */
.franja{background:#f6f8fb;border-top:1px solid #eef1f6;border-bottom:1px solid #eef1f6}
.franja-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;padding:30px 0}
.franja-item{display:flex;align-items:center;gap:12px}
.franja-item .ico{color:var(--color-secundario);flex-shrink:0}
.franja-item strong{display:block;color:var(--color-primario);font-size:14px}
.franja-item small{color:#7a8190;font-size:12px}

/* ---------- Inicio: productos + caja lateral ---------- */
.home-productos{display:grid;grid-template-columns:1fr 250px;gap:20px;align-items:start;position:relative}
.home-productos .productos-main{min-width:0}
.home-productos .grid-cards-4{grid-template-columns:repeat(4,1fr);gap:16px}
.home-productos .seccion-sub{margin-bottom:22px}

/* ---------- Caja "¿por qué elegirnos?" (columna derecha, entre banner y productos) ---------- */
.elegirnos-box{background:var(--color-primario);color:#fff;border-radius:14px;overflow:hidden;
  box-shadow:0 10px 30px rgba(20,40,80,.18);margin-top:-86px;position:relative;z-index:5}
.elegirnos-box h3{color:#fff;font-size:16px;font-weight:700;padding:18px 20px 8px;letter-spacing:.3px}
.elegirnos-box ul{list-style:none;padding:0 20px 16px}
.elegirnos-box li{display:flex;gap:10px;align-items:center;margin-bottom:13px;font-size:13.5px;line-height:1.3}
.elegirnos-box .check{flex-shrink:0;width:20px;height:20px;border-radius:50%;background:var(--color-secundario);
  color:#fff;display:grid;place-items:center;font-size:11px;font-weight:800}
.elegirnos-img img{width:100%;height:190px;object-fit:cover;display:block}

/* ---------- Página de contenido ---------- */
.page-hero{background:var(--color-primario);color:#fff;padding:40px 0;text-align:center}
.page-hero h1{font-size:32px;font-weight:800}
.contenido-rico{max-width:820px;margin:0 auto;font-size:15.5px;color:#3a3f4a}
.contenido-rico p{margin-bottom:12px}
.contenido-rico ul,.contenido-rico ol{margin:0 0 12px;padding-left:1.4em}
.contenido-rico li{margin-bottom:4px}
.contenido-rico h2,.contenido-rico h3{margin:14px 0 8px;color:var(--color-primario)}

/* Texto enriquecido (Quill) — alineación y listas en cualquier contenedor */
.ql-align-center{text-align:center}
.ql-align-right{text-align:right}
.ql-align-justify{text-align:justify}
/* Al alinear una lista, la viñeta/número se mueve junto al texto */
li.ql-align-center,li.ql-align-right,li.ql-align-justify{list-style-position:inside}
.card-txt{text-align:left}
.card-txt ul,.card-txt ol{margin:0 0 4px;padding-left:1.3em}
.card-txt li{margin:0}
.card-txt p{margin:0 0 4px}

/* ---------- Servicios: tarjetas con acento + pasos ---------- */
.card-servicio{border-top:3px solid transparent;transition:.25s}
.card-servicio:hover{border-top-color:var(--color-secundario)}
.servicio-ico{display:grid;place-items:center;width:64px;height:64px;border-radius:50%;
  background:rgba(247,148,29,.12);color:var(--color-secundario);margin-bottom:10px}
.pasos-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;counter-reset:paso}
.paso{background:#fff;border:1px solid #eef1f6;border-radius:14px;padding:26px 20px;text-align:center;
  box-shadow:0 6px 20px rgba(20,40,80,.06);position:relative}
.paso-num{width:48px;height:48px;border-radius:50%;background:var(--color-primario);color:#fff;
  font-weight:800;font-size:20px;display:grid;place-items:center;margin:0 auto 14px}
.paso h3{color:var(--color-primario);font-size:17px;margin-bottom:6px}
.paso p{color:#6b7280;font-size:13.5px}

/* ---------- Nosotros: quiénes somos ---------- */
.quienes-somos{display:grid;grid-template-columns:1fr 1fr;gap:36px;align-items:center}
.quienes-texto{margin:0}
.quienes-texto p{margin-bottom:14px}
.quienes-img img{width:100%;border-radius:16px;box-shadow:0 18px 44px rgba(20,40,80,.16)}
.quienes-img-ph{aspect-ratio:4/3;background:#f3f5f9;border:2px dashed #d3dae6;border-radius:16px;
  display:grid;place-items:center;color:#9aa1ad;font-size:14px;text-align:center;padding:20px}

/* ---------- CTA final (franja por WhatsApp) ---------- */
.cta-final{background:var(--color-primario);color:#fff}
.cta-inner{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:34px 24px}
.cta-texto h2{font-size:24px;font-weight:800;margin-bottom:4px}
.cta-texto h2 +p,.cta-texto p{color:#cdd6e6;margin:0}
.cta-btn{flex-shrink:0;font-size:15px;padding:14px 26px}

/* ---------- Contacto (rediseñado, suave) ---------- */
.contacto-layout{display:grid;grid-template-columns:1fr 1.05fr;gap:30px;align-items:stretch}
.contacto-panel{background:#fff;border:1px solid #eef1f6;border-radius:20px;padding:12px;
  box-shadow:0 10px 30px rgba(20,40,80,.07);display:flex;flex-direction:column}
.ct-item{display:flex;align-items:center;gap:16px;padding:16px 14px;border-radius:14px;
  color:inherit;transition:.2s}
.ct-item + .ct-item{border-top:1px solid #f1f3f8}
a.ct-item:hover{background:#f7f9fc}
.ct-ico{flex-shrink:0;width:48px;height:48px;border-radius:50%;display:grid;place-items:center;
  background:rgba(21,54,107,.08);color:var(--color-primario)}
.ct-ico-wa{background:#25d366;color:#fff}
.ct-ico-walogo{background:transparent}
.ct-ico-walogo img{width:48px;height:48px;display:block}
.ct-data{display:flex;flex-direction:column;min-width:0}
.ct-label{font-size:12px;font-weight:600;color:#9aa1ad;text-transform:uppercase;letter-spacing:.4px}
.ct-val{font-size:15.5px;font-weight:600;color:var(--color-primario);word-break:break-word}
.ct-item-wa{background:linear-gradient(90deg,rgba(37,211,102,.10),transparent)}
.ct-cta{margin-left:auto;flex-shrink:0;color:#25b14a;font-weight:700;font-size:13.5px}
.contacto-mapa{border-radius:20px;overflow:hidden;min-height:420px;box-shadow:0 10px 30px rgba(20,40,80,.07)}
.contacto-mapa iframe{width:100%;height:100%;min-height:420px;border:0;display:block}
.mapa-ph{height:100%;min-height:420px;background:#f3f5f9;border:2px dashed #d3dae6;border-radius:20px;
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;
  color:#9aa1ad;text-align:center;padding:30px}
.mapa-ph svg{width:40px;height:40px}

/* ---------- Footer ---------- */
.site-footer{background:var(--color-primario);color:#cdd6e6;margin-top:30px}
.footer-grid{display:grid;grid-template-columns:1.6fr 1fr 1fr 1.4fr;gap:30px;padding:42px 18px 28px}
.footer-marca{display:flex;align-items:center;gap:10px;margin-bottom:12px}
.footer-marca img{height:40px}
.footer-marca strong{color:#fff;font-size:15px}
.footer-desc{font-size:13.5px;line-height:1.6}
.footer-desc strong{color:#fff}
.footer-col h4{color:#fff;font-size:15px;margin-bottom:14px}
.footer-col a{display:block;color:#cdd6e6;font-size:13.5px;padding:4px 0}
.footer-col a:hover{color:var(--color-secundario)}
.footer-contacto{font-size:13.5px;margin-bottom:8px}
.footer-redes{display:flex;gap:10px;margin-top:12px}
.footer-redes a{width:34px;height:34px;border-radius:50%;background:rgba(255,255,255,.12);
  display:grid;place-items:center;color:#fff;font-weight:700;font-size:12px}
.footer-redes a:hover{background:var(--color-secundario)}
.footer-bottom{background:rgba(0,0,0,.18);padding:14px 0;font-size:12.5px;text-align:center}

/* ---------- WhatsApp flotante ---------- */
.whatsapp-flotante{position:fixed;right:20px;bottom:20px;width:58px;height:58px;border-radius:50%;
  background:#25d366;color:#fff;display:grid;place-items:center;z-index:200;
  box-shadow:0 8px 24px rgba(37,211,102,.5);animation:pulso 2.4s infinite}
@keyframes pulso{0%{box-shadow:0 0 0 0 rgba(37,211,102,.5)}70%{box-shadow:0 0 0 16px rgba(37,211,102,0)}100%{box-shadow:0 0 0 0 rgba(37,211,102,0)}}

/* ---------- Responsive ---------- */
@media(max-width:980px){
  .home-productos{grid-template-columns:1fr}
  .home-productos .grid-cards-4{grid-template-columns:repeat(2,1fr)}
  .elegirnos-box{max-width:520px;margin:24px auto 0}
  .grid-cards{grid-template-columns:repeat(2,1fr)}
  .franja-grid{grid-template-columns:repeat(2,1fr)}
  .footer-grid{grid-template-columns:1fr 1fr}
  .contacto-layout{grid-template-columns:1fr}
  .contacto-mapa,.contacto-mapa iframe,.mapa-ph{min-height:320px}
  .quienes-somos{grid-template-columns:1fr;gap:24px}
  .quienes-img{order:-1}
  .cta-inner{flex-direction:column;text-align:center;padding:28px 18px}
  .pasos-grid{grid-template-columns:1fr;max-width:420px;margin:0 auto}

  /* Hero en móvil: alto FIJO (no cambia al rotar). Slide de texto = imagen arriba + texto compacto */
  .hero-carrusel{height:400px;overflow:hidden;background:var(--color-primario)}
  .hero-slide{position:absolute;inset:0}
  .hero-slide-split.activo{height:100%;display:flex;flex-direction:column-reverse;justify-content:center;gap:10px}
  .hero-slide-split .hero-inner{height:auto}
  .hero-slide-split .hero-imagen{display:block;position:relative;width:100%;height:170px;overflow:visible}
  .hero-slide-split .marco-banner{position:relative;inset:auto;width:94%;max-width:460px;height:170px;
    margin:0 auto;border-radius:16px;background:#fff;box-shadow:0 8px 24px rgba(0,0,0,.18)}
  .hero-slide-split .marco-banner img{object-fit:contain}
  .hero-slide-split .media-luna{display:none}
  .hero-inner{grid-template-columns:1fr;text-align:center;padding:0 18px}
  .hero-features{display:none} /* se ocultan en móvil para que quepa imagen + texto */
  .hero p{margin:0 auto;font-size:13px}
  .hero-wa{margin:4px auto 0;padding:8px 16px}
  .hero-wa strong{font-size:18px}
  .hero-slide-img,.hero-slide-img a{height:100%}
  .hero-slide-img img{height:100%;object-fit:contain}
  .hero-flecha{width:34px;height:34px;font-size:20px}
}
@media(max-width:760px){
  .menu-toggle{display:flex}
  .nav{display:none;position:absolute;top:100%;left:0;right:0;background:#fff;flex-direction:column;
    padding:10px 18px;gap:0;box-shadow:0 10px 20px rgba(0,0,0,.12)}
  .nav a{padding:13px 0;border-bottom:1px solid #f0f2f6}
  body.menu-abierto .nav{display:flex}
  .btn-whatsapp-header{display:none}
  .marca-texto small{display:none}
  .marca-logo{height:44px}
  .marca-texto strong{font-size:16px}
  .hero h1{font-size:24px}
  .seccion-titulo{font-size:22px}
  .seccion{padding:30px 0}
}
@media(max-width:560px){
  .contenedor{padding:0 16px}
  .home-productos .grid-cards-4,.grid-cards,.franja-grid,.footer-grid{grid-template-columns:1fr}
  .hero h1{font-size:22px}
  .hero-feature{width:80px}
  .hero-feature span{font-size:9.5px}
  .marco-banner{height:200px}
  .whatsapp-flotante{width:52px;height:52px;right:14px;bottom:14px}
  .franja-item{justify-content:center}
}
