*{box-sizing:border-box;margin:0;padding:0}
body{
  font-family:var(--font-body);color:var(--color-text);font-size:var(--font-size-base);line-height:1.6;
  background-color:var(--color-bg);
  background-image:
    radial-gradient(circle at 8% 8%, color-mix(in srgb, var(--color-primary) 6%, transparent) 0%, transparent 45%),
    radial-gradient(circle at 95% 15%, color-mix(in srgb, var(--color-secondary) 7%, transparent) 0%, transparent 40%),
    radial-gradient(circle at 50% 100%, color-mix(in srgb, var(--color-primary) 4%, transparent) 0%, transparent 50%);
  background-attachment:fixed;
}
h1,h2,h3,h4{font-family:var(--font-heading);font-weight:700;line-height:1.25}
a{color:inherit;text-decoration:none}
img{max-width:100%;display:block}
.no-scroll{overflow:hidden}

/* ---------- PRELOADER del logo (solo sitio público, primera visita de la sesión) ---------- */
.site-preloader{
  position:fixed;inset:0;z-index:99999;background:#fff;
  height:100dvh;width:100vw;
  display:flex;align-items:center;justify-content:center;
  transition:opacity .65s ease,visibility .65s ease;
}
.site-preloader.is-done{opacity:0;visibility:hidden;pointer-events:none}
.no-preloader .site-preloader{display:none!important}

.preloader-logo-wrap{position:relative;width:180px;height:180px;display:flex;align-items:center;justify-content:center}

/* Silueta clara de fondo (el logo "en blanco", apenas visible) */
.preloader-logo-ghost{
  position:absolute;max-width:60%;max-height:60%;object-fit:contain;
  filter:grayscale(1) brightness(0) invert(1);opacity:.16;
}

/* El logo a color real, que se va revelando de abajo hacia arriba */
.preloader-logo-fill-mask{
  position:absolute;inset:0;display:flex;align-items:center;justify-content:center;
  clip-path:inset(100% 0 0 0);
  animation:preloaderFill 1.5s cubic-bezier(.65,0,.35,1) forwards;
}
.preloader-logo-fill{max-width:60%;max-height:60%;object-fit:contain;filter:drop-shadow(0 6px 18px rgba(0,0,0,.12))}
@keyframes preloaderFill{
  0%{clip-path:inset(100% 0 0 0)}
  100%{clip-path:inset(0% 0 0 0)}
}

/* Anillo girando alrededor, detalle PRO */
.preloader-ring{
  position:absolute;width:100%;height:100%;border-radius:50%;
  border:2.5px solid color-mix(in srgb, var(--color-primary) 14%, transparent);
  border-top-color:var(--color-primary);
  animation:preloaderSpin 1s linear infinite;
}
@keyframes preloaderSpin{to{transform:rotate(360deg)}}

@media(max-width:480px){
  .preloader-logo-wrap{width:130px;height:130px}
}

/* ---------- CONTENIDO RICO (texto cargado desde el editor del panel) ----------
   El reset global de arriba (margin:0 en *) deja los párrafos pegados sin este
   espaciado — se aplica en todo texto que viene de páginas, áreas, noticias,
   la bio de médicos y San Martín Mujer. */
.rich-content p{margin-bottom:16px;line-height:1.75}
.rich-content p:last-child{margin-bottom:0}
.rich-content ul,.rich-content ol{margin:0 0 16px 24px;line-height:1.75}
.rich-content li{margin-bottom:6px}
.rich-content h1,.rich-content h2,.rich-content h3,.rich-content h4{
  color:var(--color-primary);margin:28px 0 14px;line-height:1.35;
}
.rich-content h1:first-child,.rich-content h2:first-child,.rich-content h3:first-child,.rich-content h4:first-child{margin-top:0}
.rich-content h2{font-size:24px} .rich-content h3{font-size:20px} .rich-content h4{font-size:17px}
.rich-content a{color:var(--color-primary);text-decoration:underline}
.rich-content strong,.rich-content b{font-weight:700}
.rich-content blockquote{border-left:3px solid var(--color-primary);padding:8px 0 8px 18px;margin:0 0 16px;color:#666;font-style:italic}
.rich-content img{border-radius:10px;margin:16px 0}
.rich-content table{width:100%;border-collapse:collapse;margin-bottom:16px}
.rich-content table td,.rich-content table th{border:1px solid #e6eaed;padding:8px 12px}
.container{max-width:1180px;margin:0 auto;padding:0 20px}
.btn-main{display:inline-block;background:linear-gradient(135deg,var(--color-primary),color-mix(in srgb, var(--color-primary) 70%, var(--color-secondary)));color:#fff;padding:13px 28px;border-radius:30px;font-weight:600;transition:.25s;border:none;cursor:pointer;box-shadow:0 10px 24px -8px color-mix(in srgb, var(--color-primary) 70%, transparent);min-height:44px;line-height:1.2}
.btn-main:hover{filter:brightness(1.08);transform:translateY(-2px);box-shadow:0 14px 30px -8px color-mix(in srgb, var(--color-primary) 80%, transparent)}
.btn-outline{display:inline-block;border:2px solid var(--color-primary);color:var(--color-primary);padding:10px 24px;border-radius:30px;font-weight:600;transition:.2s;min-height:44px;line-height:1.4}
.btn-outline:hover{background:var(--color-primary);color:#fff}
.eyebrow{display:inline-block;font-size:12px;font-weight:700;letter-spacing:1.6px;text-transform:uppercase;color:var(--color-secondary);margin-bottom:8px}

/* ---------- TOP BAR (links externos: Portal Paciente, Turnos Online, etc.) ---------- */
.top-bar{
  background:linear-gradient(90deg,var(--topbar-bg),color-mix(in srgb, var(--topbar-bg) 78%, var(--color-primary)));
  color:color-mix(in srgb, var(--topbar-text) 88%, transparent);
  font-size:12.5px;
}
.top-bar-inner{max-width:1280px;margin:0 auto;padding:0 20px}
.top-bar-links{display:flex;justify-content:flex-end;align-items:stretch;flex-wrap:wrap}
.top-bar-links a{
  display:flex;align-items:center;gap:7px;padding:9px 18px;
  border-left:1px solid color-mix(in srgb, var(--topbar-text) 16%, transparent);
  color:inherit;
  font-weight:600;letter-spacing:.2px;white-space:nowrap;transition:.2s;
}
.top-bar-links a:last-child{border-right:1px solid color-mix(in srgb, var(--topbar-text) 16%, transparent)}
.top-bar-links a i{font-size:12px;color:var(--color-secondary);transition:.2s}
.top-bar-links a:hover{background:color-mix(in srgb, var(--topbar-text) 10%, transparent);color:var(--topbar-text)}
.top-bar-links a:hover i{transform:translateY(-1px)}
@media(max-width:760px){
  .top-bar-links{justify-content:center}
  .top-bar-links a{padding:8px 12px;font-size:11.5px}
  .top-bar-links a span{display:none}
  .top-bar-links a i{font-size:14px}
}

/* ---------- HEADER ---------- */
.site-header{position:sticky;top:0;background:rgba(255,255,255,.92);backdrop-filter:saturate(180%) blur(14px);box-shadow:0 2px 20px rgba(15,35,55,.07);z-index:250;border-bottom:1px solid rgba(15,35,55,.05)}
.header-top{max-width:1280px;margin:0 auto;display:flex;align-items:center;justify-content:space-between;padding:8px 20px;gap:20px}
.logo img{height:var(--header-logo-height,40px);max-height:80px}
.logo-text{font-family:var(--font-heading);font-weight:700;font-size:17px;color:var(--color-primary)}
.main-nav ul{list-style:none;display:flex;gap:20px}
.main-nav>ul>li{position:relative}
.main-nav a{font-weight:600;font-size:var(--menu-font-size,12.5px);letter-spacing:.2px;color:var(--color-text);padding:10px 2px;display:flex;align-items:center;gap:6px}
.main-nav>ul>li>a:hover{color:var(--color-primary)}
.sub-menu{display:none;position:absolute;top:100%;left:0;background:#fff;min-width:220px;box-shadow:0 10px 30px rgba(0,0,0,.12);border-radius:8px;padding:8px 0;list-style:none}
.has-sub:hover .sub-menu{display:block}
.sub-menu li a{padding:10px 18px;display:block;font-weight:500}
.sub-menu li a:hover{background:#f4f7fa;color:var(--color-primary)}
.header-social{display:flex;align-items:center;gap:10px;color:var(--color-primary)}
.header-social a{
  width:38px;height:38px;border-radius:50%;display:flex;align-items:center;justify-content:center;
  font-size:18px;background:color-mix(in srgb, var(--color-primary) 8%, white);color:var(--color-primary);
  transition:.2s;
}
.header-social a:hover{background:var(--color-primary);color:#fff;transform:translateY(-2px) scale(1.05)}
.nav-toggle{display:none;position:relative;z-index:300;align-items:center;justify-content:center;width:42px;height:42px;background:none;border:none;font-size:22px;color:var(--color-primary);cursor:pointer;flex-shrink:0}
.nav-toggle-close{display:none}
.nav-toggle.is-open .nav-toggle-open{display:none}
.nav-toggle.is-open .nav-toggle-close{display:block}

/* Ítem de menú destacado como botón (configurable por ítem desde el panel) */
.menu-highlight-btn{
  --hl-color: var(--color-accent);
  background:linear-gradient(135deg,var(--hl-color),color-mix(in srgb, var(--hl-color) 70%, var(--color-primary)))!important;
  color:#fff!important;padding:9px 18px!important;border-radius:24px;
  box-shadow:0 8px 18px -6px color-mix(in srgb, var(--hl-color) 60%, transparent);
  transition:.2s;animation:menuBtnPulse 2.6s ease-in-out infinite;
}
.menu-highlight-btn.color-secondary{--hl-color: var(--color-secondary)}
.menu-highlight-btn.color-primary{--hl-color: var(--color-primary)}
.menu-highlight-btn:hover{color:#fff!important;transform:translateY(-2px);box-shadow:0 12px 24px -6px color-mix(in srgb, var(--hl-color) 70%, transparent)}
.menu-highlight-btn i{margin-right:2px}
@keyframes menuBtnPulse{0%,100%{box-shadow:0 8px 18px -6px color-mix(in srgb, var(--hl-color) 60%, transparent)}50%{box-shadow:0 8px 22px -4px color-mix(in srgb, var(--hl-color) 85%, transparent)}}
@media(max-width:960px){.menu-highlight-btn{display:inline-flex!important;margin-top:6px}}
@media(max-width:480px){
  .header-top{padding:8px 14px;gap:10px}
  .logo img{height:min(var(--header-logo-height,40px),34px)}
  .header-social a{width:34px;height:34px;font-size:15px}
  .header-social{gap:6px}
}

/* ---------- SLIDER ---------- */
.hero-slider{position:relative;overflow:hidden;min-height:460px}
.slide{
  position:absolute;inset:0;color:#fff;
  opacity:0;visibility:hidden;z-index:1;
  transition:opacity 1.1s ease;
  display:flex;align-items:center;justify-content:center;
}
.slide.active{opacity:1;visibility:visible;z-index:2}
.slide-bg{position:absolute;inset:0;background-size:cover;background-position:center;transform:scale(1)}
.slide.active .slide-bg{animation:kenburns 8s ease-out forwards}
.slide::after{content:'';position:absolute;inset:0;background:radial-gradient(ellipse at center,rgba(4,20,38,.72) 0%,rgba(4,20,38,.5) 45%,rgba(4,20,38,.4) 100%)}
@keyframes kenburns{from{transform:scale(1)}to{transform:scale(1.08)}}

.slide-content{position:relative;z-index:2;max-width:900px;width:100%;padding:26px 24px;margin:0 auto;text-align:center}
.slide-content h2,.slide-content p,.slide-content .btn-main{opacity:0}
.slide.active .slide-content h2,.slide.active .slide-content p,.slide.active .slide-content .btn-main{
  transform:translateY(18px);animation:slideTextIn .8s ease forwards;
}
.slide-content h2{font-size:38px;margin-bottom:14px;text-shadow:0 2px 20px rgba(0,0,0,.35)}
.slide.active .slide-content h2{animation-delay:.25s}
.slide-content p{margin-bottom:22px;font-size:16px;max-width:680px;margin-left:auto;margin-right:auto}
.slide.active .slide-content p{animation-delay:.42s}
.slide.active .slide-content .btn-main{animation-delay:.58s}
@keyframes slideTextIn{to{opacity:1;transform:translateY(0)}}

.slider-dots{position:absolute;bottom:96px;left:0;right:0;display:flex;justify-content:center;gap:8px;z-index:4}
.slider-dots span{width:9px;height:9px;border-radius:50%;background:rgba(255,255,255,.45);cursor:pointer;transition:.2s}
.slider-dots span.active{background:#fff;width:26px;border-radius:6px}

@media(max-width:760px){
  .hero-slider{min-height:420px}
  .slide-content h2{font-size:28px}
  .slide-content p{font-size:14.5px}
  .slider-dots{bottom:70px}
}
@media(max-width:480px){
  .hero-slider{min-height:380px}
  .slide-content{padding:30px 18px}
  .slide-content h2{font-size:23px}
  .slide-content .btn-main{padding:12px 22px;font-size:13.5px}
  .slider-dots{bottom:64px}
}

/* Íconos médicos flotando suavemente sobre el slider */
.hero-medic-decor{position:absolute;inset:0;z-index:3;pointer-events:none;overflow:hidden}
.float-icon{position:absolute;color:rgba(255,255,255,.16);animation:medicFloat 7s ease-in-out infinite}
.fi-1{top:18%;left:8%;font-size:34px;animation-delay:0s}
.fi-2{top:65%;left:14%;font-size:20px;animation-delay:1.1s;color:rgba(255,255,255,.12)}
.fi-3{top:28%;left:88%;font-size:40px;animation-delay:.5s}
.fi-4{top:75%;left:80%;font-size:22px;animation-delay:1.8s;color:rgba(255,255,255,.12)}
.fi-5{top:50%;left:50%;font-size:26px;animation-delay:2.4s;color:rgba(255,255,255,.1)}
@keyframes medicFloat{
  0%,100%{transform:translateY(0) rotate(0deg)}
  50%{transform:translateY(-22px) rotate(8deg)}
}

/* Línea de electrocardiograma (ECG) recorriendo el pie del slider, en loop infinito y sin costuras */
.hero-ecg{position:absolute;left:0;right:0;bottom:0;height:52px;z-index:3;overflow:hidden;opacity:.55;pointer-events:none}
.hero-ecg svg{width:200%;height:100%;display:block;animation:ecgScroll 18s linear infinite}
.hero-ecg .ecg-track{
  fill:none;stroke:var(--color-secondary);
  filter:drop-shadow(0 0 4px color-mix(in srgb, var(--color-secondary) 70%, transparent));
}
.hero-ecg path{stroke:inherit}
@keyframes ecgScroll{from{transform:translateX(0)}to{transform:translateX(-50%)}}

/* ---------- SERVICIOS — tarjetas PRO ---------- */
.services-section{position:relative}
.services-pro-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:22px}
.service-pro-card{
  position:relative;background:#fff;border-radius:16px;padding:30px 26px;
  border:1px solid rgba(15,35,55,.06);
  box-shadow:0 2px 10px rgba(15,35,55,.04);
  transition:.3s cubic-bezier(.2,.8,.3,1);
  overflow:hidden;
}
.service-pro-card::before{
  content:'';position:absolute;top:0;left:0;right:0;height:3px;
  background:linear-gradient(90deg,var(--color-primary),var(--color-secondary));
  transform:scaleX(0);transform-origin:left;transition:.35s;
}
.service-pro-card:hover{transform:translateY(-6px);box-shadow:0 22px 40px -16px rgba(15,35,55,.18);border-color:transparent}
.service-pro-card:hover::before{transform:scaleX(1)}
.service-pro-icon{
  width:56px;height:56px;border-radius:14px;display:flex;align-items:center;justify-content:center;
  background:linear-gradient(135deg,color-mix(in srgb, var(--color-primary) 12%, white),color-mix(in srgb, var(--color-secondary) 14%, white));
  color:var(--color-primary);font-size:24px;margin-bottom:18px;transition:.3s;
}
/* En el home (no en la página de servicios) los íconos flotan solos, sin necesitar hover */
.services-section .service-pro-icon{animation:qaIconBob 3.4s ease-in-out infinite}
.services-section .service-pro-card:nth-child(2) .service-pro-icon{animation-delay:.3s}
.services-section .service-pro-card:nth-child(3) .service-pro-icon{animation-delay:.6s}
.services-section .service-pro-card:nth-child(4) .service-pro-icon{animation-delay:.9s}
.services-section .service-pro-card:nth-child(4n+1) .service-pro-icon{animation-delay:0s}
.service-pro-card:hover .service-pro-icon{animation-play-state:paused;background:linear-gradient(135deg,var(--color-primary),var(--color-secondary));color:#fff;transform:scale(1.06) rotate(-4deg)}
.service-pro-card h3{font-size:16.5px;margin-bottom:8px;color:var(--color-text)}
.service-pro-card p{font-size:13px;color:#767f88;margin-bottom:16px;line-height:1.55}
.service-pro-link{font-size:12.5px;font-weight:700;color:var(--color-primary);display:inline-flex;align-items:center;gap:6px}
.service-pro-link i{font-size:11px;transition:.25s}
.service-pro-card:hover .service-pro-link i{transform:translateX(4px)}
@media(max-width:1000px){.services-pro-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:560px){.services-pro-grid{grid-template-columns:1fr}}

/* ---------- SECCIONES GENERALES ---------- */
.section{padding:76px 0}
.section-title{text-align:center;margin-bottom:44px}
.section-title h2{font-size:32px;color:var(--color-primary)}
.section-title p{max-width:640px;margin:12px auto 0;color:#666}
.two-col{display:grid;grid-template-columns:1.1fr .9fr;gap:50px;align-items:center}
@media(max-width:860px){.two-col{grid-template-columns:1fr}}
@media(max-width:600px){
  .section{padding:50px 0}
  .section-title{margin-bottom:32px}
  .section-title h2{font-size:24px}
  .section-title p{font-size:13.5px}
  .container{padding:0 16px}
}

/* ---------- STATS ---------- */
.stats{
  position:relative;overflow:hidden;color:#fff;padding:56px 0;
  background:linear-gradient(120deg,var(--color-primary),color-mix(in srgb, var(--color-primary) 55%, var(--color-secondary)));
}
.stats::before{content:'';position:absolute;inset:0;background-image:radial-gradient(circle,rgba(255,255,255,.14) 1px,transparent 1px);background-size:22px 22px;opacity:.5}
.stats-grid{position:relative;display:grid;grid-template-columns:repeat(4,1fr);gap:20px;text-align:center}
.stats-grid i{font-size:32px;margin-bottom:10px;opacity:.9}
.stats-grid h3{font-size:34px}
@media(max-width:760px){.stats-grid{grid-template-columns:repeat(2,1fr)}}

/* ---------- MEDICOS ---------- */
.doctors-filter{display:flex;flex-wrap:wrap;gap:8px;list-style:none;justify-content:center;margin-bottom:34px}
.doctors-filter li{padding:8px 16px;background:#f1f4f7;border-radius:20px;font-size:13px;font-weight:600;cursor:pointer}
.doctors-filter li.active,.doctors-filter li:hover{background:var(--color-primary);color:#fff}
.doctors-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}
.doctor-card{background:#fff;border:1px solid rgba(15,35,55,.06);border-radius:12px;padding:20px;text-align:center;transition:.25s}
.doctor-card:hover{box-shadow:0 16px 34px -14px rgba(15,35,55,.18);transform:translateY(-4px);border-color:transparent}
.doctor-card img{width:74px;height:74px;border-radius:50%;object-fit:cover;margin:0 auto 12px;background:#dde6ec}
.doctor-card h4{font-size:14px}
.doctor-card p{font-size:12px;color:#777;margin-top:4px}
@media(max-width:900px){.doctors-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:420px){.doctors-grid{grid-template-columns:1fr}}

/* ---------- BUSCADOR ---------- */
.search-box{max-width:760px;margin:0 auto 40px;display:flex;gap:10px;flex-wrap:wrap;background:#fff;padding:10px;border-radius:14px;box-shadow:0 12px 30px -14px rgba(15,35,55,.18);border:1px solid rgba(15,35,55,.05)}
.search-box input,.search-box select{flex:1;min-width:200px;padding:13px 16px;border:1px solid #eef1f3;border-radius:9px;font-size:14px;background:#fafbfc}
.search-box button,.search-box .btn-main{background:var(--color-primary);color:#fff;border:none;padding:13px 22px;border-radius:9px;font-weight:600;cursor:pointer}
@media(max-width:600px){
  .search-box{padding:12px;flex-direction:column}
  .search-box input,.search-box select,.search-box button,.search-box .btn-main{width:100%;min-width:0}
}

/* ---------- FOTO "NUESTRO SANATORIO" ---------- */
.about-photo{position:relative;border-radius:18px;overflow:hidden;box-shadow:0 24px 50px -20px rgba(15,35,55,.3)}
.about-photo img{width:100%;height:100%;object-fit:cover;min-height:320px;transition:.5s}
.about-photo:hover img{transform:scale(1.04)}
.about-photo::after{content:'';position:absolute;inset:0;border-radius:18px;box-shadow:inset 0 0 0 1px rgba(255,255,255,.15)}

/* ---------- GALERÍA ---------- */
.gallery-grid{display:grid;grid-template-columns:repeat(4,1fr);grid-auto-rows:170px;gap:14px}
.gallery-grid .gallery-item:nth-child(6n+1){grid-column:span 2;grid-row:span 2}
.gallery-item{
  position:relative;border:none;padding:0;margin:0;cursor:pointer;border-radius:14px;overflow:hidden;
  background:#e9edf0;display:block;width:100%;height:100%;
}
.gallery-item img{width:100%;height:100%;object-fit:cover;display:block;transition:.5s ease}
.gallery-item:hover img{transform:scale(1.08)}
.gallery-item::after{content:'';position:absolute;inset:0;background:linear-gradient(180deg,transparent 55%,rgba(4,20,38,.75) 100%);opacity:0;transition:.3s}
.gallery-item:hover::after{opacity:1}
.gallery-item-zoom{
  position:absolute;top:50%;left:50%;transform:translate(-50%,-50%) scale(.7);
  width:44px;height:44px;border-radius:50%;background:rgba(255,255,255,.92);color:var(--color-primary);
  display:flex;align-items:center;justify-content:center;font-size:16px;opacity:0;transition:.25s;
}
.gallery-item:hover .gallery-item-zoom{opacity:1;transform:translate(-50%,-50%) scale(1)}
.gallery-item-caption{
  position:absolute;left:14px;right:14px;bottom:10px;color:#fff;font-size:12.5px;font-weight:600;
  opacity:0;transform:translateY(6px);transition:.3s;text-align:left;
}
.gallery-item:hover .gallery-item-caption{opacity:1;transform:translateY(0)}
@media(max-width:900px){
  .gallery-grid{grid-template-columns:repeat(2,1fr);grid-auto-rows:150px}
  .gallery-grid .gallery-item:nth-child(6n+1){grid-column:span 2;grid-row:span 1}
}

/* ---------- LIGHTBOX ---------- */
.lightbox{
  position:fixed;inset:0;background:rgba(4,10,20,.94);z-index:2000;
  display:flex;align-items:center;justify-content:center;padding:40px;
  opacity:0;visibility:hidden;transition:.25s;
}
.lightbox.open{opacity:1;visibility:visible}
.lightbox figure{max-width:min(90vw,1000px);max-height:85vh;margin:0;text-align:center}
.lightbox img{max-width:100%;max-height:78vh;border-radius:10px;box-shadow:0 30px 80px rgba(0,0,0,.5);display:block;margin:0 auto}
.lightbox figcaption{color:#eaf0f5;font-size:13.5px;margin-top:14px;opacity:.85}
.lightbox-close{position:absolute;top:24px;right:28px;background:rgba(255,255,255,.1);color:#fff;border:none;width:42px;height:42px;border-radius:50%;font-size:18px;cursor:pointer;transition:.2s}
.lightbox-close:hover{background:rgba(255,255,255,.2)}
.lightbox-nav{position:absolute;top:50%;transform:translateY(-50%);background:rgba(255,255,255,.1);color:#fff;border:none;width:48px;height:48px;border-radius:50%;font-size:18px;cursor:pointer;transition:.2s}
.lightbox-nav:hover{background:rgba(255,255,255,.2)}
.lightbox-prev{left:24px}
.lightbox-next{right:24px}
@media(max-width:640px){
  .lightbox{padding:16px}
  .lightbox-nav{width:38px;height:38px;font-size:15px}
  .lightbox-prev{left:8px} .lightbox-next{right:8px}
  .lightbox-close{top:12px;right:12px}
}

/* ---------- NOVEDADES — tarjetas PRO ---------- */
.news-pro-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:26px}
.news-pro-card{
  background:#fff;border-radius:16px;overflow:hidden;display:block;
  box-shadow:0 8px 24px -12px rgba(15,35,55,.12);border:1px solid rgba(15,35,55,.06);
  transition:.3s cubic-bezier(.2,.8,.3,1);
}
.news-pro-card:hover{transform:translateY(-6px);box-shadow:0 26px 46px -18px rgba(15,35,55,.22);border-color:transparent}
.news-pro-img{position:relative;height:190px;overflow:hidden;background:#eef1f3}
.news-pro-img img{width:100%;height:100%;object-fit:cover;transition:.5s}
.news-pro-card:hover .news-pro-img img{transform:scale(1.07)}
.news-pro-img-placeholder{width:100%;height:100%;display:flex;align-items:center;justify-content:center;font-size:34px;color:#c3ccd3;background:linear-gradient(135deg,#eef1f3,#e3e8eb)}
.news-pro-badge{
  position:absolute;top:12px;left:12px;background:linear-gradient(135deg,var(--color-accent),color-mix(in srgb, var(--color-accent) 70%, black));
  color:#fff;font-size:11px;font-weight:700;padding:5px 11px;border-radius:20px;display:flex;align-items:center;gap:5px;
  box-shadow:0 6px 14px -4px rgba(0,0,0,.35);
}
.news-pro-body{padding:20px 22px 22px}
.news-pro-body time{font-size:11.5px;color:#9aa4ab;font-weight:600;display:flex;align-items:center;gap:6px;margin-bottom:8px}
.news-pro-body h3{font-size:16.5px;line-height:1.35;margin-bottom:10px;color:var(--color-text)}
.news-pro-body p{font-size:13px;color:#767f88;line-height:1.55;margin-bottom:14px}
.news-pro-link{font-size:12.5px;font-weight:700;color:var(--color-primary);display:inline-flex;align-items:center;gap:6px}
.news-pro-link i{font-size:11px;transition:.25s}
.news-pro-card:hover .news-pro-link i{transform:translateX(4px)}
@media(max-width:900px){.news-pro-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:600px){.news-pro-grid{grid-template-columns:1fr}}

/* ---------- FICHA DE MÉDICO — PRO ---------- */
.doctor-hero-grid{display:grid;grid-template-columns:300px 1fr;gap:56px;align-items:start}
@media(max-width:800px){.doctor-hero-grid{grid-template-columns:1fr;justify-items:center;text-align:center}}

.doctor-photo-wrap{position:relative;width:260px;margin:0 auto}
.doctor-photo-ring{
  width:260px;height:260px;border-radius:50%;padding:8px;
  background:linear-gradient(135deg,var(--color-primary),var(--color-secondary));
  box-shadow:0 24px 50px -20px rgba(15,35,55,.35);
}
.doctor-photo-ring img{width:100%;height:100%;border-radius:50%;object-fit:cover;background:#eef3f6;border:4px solid #fff}
.doctor-photo-icon{
  position:absolute;bottom:6px;right:6px;width:52px;height:52px;border-radius:50%;background:#fff;
  display:flex;align-items:center;justify-content:center;font-size:20px;color:var(--color-primary);
  box-shadow:0 8px 20px rgba(0,0,0,.15);
}

.doctor-hero h1{font-size:30px;color:var(--color-text);margin:6px 0 16px}
.doctor-specialties{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:26px}
@media(max-width:800px){.doctor-specialties{justify-content:center}}
@media(max-width:480px){
  .doctor-photo-wrap{width:210px}
  .doctor-photo-ring{width:210px;height:210px}
}
@media(max-width:380px){
  .doctor-photo-wrap{width:190px}
  .doctor-photo-ring{width:190px;height:190px}
  .doctor-hero h1{font-size:24px}
}
.doctor-chip{
  display:inline-flex;align-items:center;gap:7px;background:color-mix(in srgb, var(--color-primary) 8%, white);
  color:var(--color-primary);font-size:12.5px;font-weight:700;padding:8px 14px;border-radius:20px;transition:.2s;
}
.doctor-chip:hover{background:var(--color-primary);color:#fff}

.doctor-bio-card{
  position:relative;background:#f7fafb;border-radius:14px;padding:26px 28px;margin-bottom:20px;
  border-left:4px solid var(--color-primary);
}
.doctor-bio-quote{position:absolute;top:20px;right:24px;font-size:26px;color:color-mix(in srgb, var(--color-primary) 15%, white)}
.doctor-bio-card h3{font-size:14px;color:var(--color-primary);text-transform:uppercase;letter-spacing:.5px;margin-bottom:12px}
.doctor-bio-text{font-size:14.5px;line-height:1.75;color:#444}

.doctor-contact-card{background:#fff;border:1px solid #e9edf0;border-radius:14px;padding:20px 22px;box-shadow:0 6px 18px rgba(15,35,55,.05)}
.doctor-contact-card h4{font-size:13px;color:#888;text-transform:uppercase;letter-spacing:.4px;margin-bottom:10px;display:flex;align-items:center;gap:8px}
.doctor-contact-card p{font-size:14px;margin-top:6px;display:flex;align-items:center;gap:8px;color:#333}
.doctor-contact-card i{color:var(--color-primary);width:16px}
@media(max-width:480px){
  .doctor-bio-card,.doctor-contact-card{padding:18px 18px}
  .doctor-bio-quote{display:none}
}

/* ---------- SAN MARTÍN MUJER ---------- */
.mujer-hero{position:relative;height:420px;overflow:visible;margin-bottom:70px}
.mujer-hero-bg{width:100%;height:100%;object-fit:cover;display:block;border-radius:0 0 28px 28px;box-shadow:0 20px 50px -20px rgba(15,35,55,.3)}
.mujer-hero::after{
  content:'';position:absolute;inset:0;border-radius:0 0 28px 28px;
  background:linear-gradient(180deg,rgba(4,20,38,.05) 55%,rgba(4,20,38,.55) 100%);
}
.mujer-hero-logo-badge{
  position:absolute;left:50%;bottom:-56px;transform:translateX(-50%);z-index:5;
  background:#fff;border-radius:20px;padding:18px 28px;box-shadow:0 20px 44px -14px rgba(15,35,55,.35);
  display:flex;align-items:center;justify-content:center;
}
.mujer-hero-logo-badge img{max-height:70px;max-width:220px;object-fit:contain;display:block}
.mujer-tagline{text-align:center;font-size:16px;color:var(--color-primary);font-weight:600;margin-bottom:22px}
@media(max-width:760px){
  .mujer-hero{height:280px;margin-bottom:56px}
  .mujer-hero-logo-badge{bottom:-42px;padding:12px 20px;border-radius:16px}
  .mujer-hero-logo-badge img{max-height:50px;max-width:160px}
}

/* Tarjeta promocional en el home — versión PRO */
.mujer-promo-section{padding:14px 0 54px}
.mujer-promo-card{
  position:relative;overflow:hidden;isolation:isolate;
  display:flex;align-items:center;gap:30px;
  background:linear-gradient(115deg,#fdf1f6 0%,#fbe0ed 42%,#f7c9de 78%,#f4b8d3 100%);
  border-radius:26px;padding:34px 40px;
  box-shadow:0 26px 60px -24px rgba(179,20,95,.4), 0 2px 0 rgba(255,255,255,.6) inset;
  transition:.35s cubic-bezier(.2,.8,.3,1);
}
.mujer-promo-card:hover{transform:translateY(-6px);box-shadow:0 34px 70px -22px rgba(179,20,95,.48), 0 2px 0 rgba(255,255,255,.6) inset}

/* Blobs decorativos flotando de fondo */
.mujer-promo-blob{position:absolute;border-radius:50%;filter:blur(38px);z-index:0;pointer-events:none;animation:mujerBlobFloat 9s ease-in-out infinite}
.mujer-promo-blob-1{width:220px;height:220px;background:#e6539c;opacity:.35;top:-90px;right:8%}
.mujer-promo-blob-2{width:160px;height:160px;background:#c81d78;opacity:.28;bottom:-70px;left:22%;animation-delay:-4s}
@keyframes mujerBlobFloat{0%,100%{transform:translate(0,0) scale(1)}50%{transform:translate(-18px,14px) scale(1.12)}}

/* Símbolo grande de marca de agua */
.mujer-promo-watermark{position:absolute;right:6%;bottom:-30px;font-size:180px;color:rgba(255,255,255,.35);z-index:0;pointer-events:none;transform:rotate(-12deg)}

.mujer-promo-logo{
  position:relative;z-index:1;flex-shrink:0;width:126px;height:126px;border-radius:50%;background:#fff;
  display:flex;align-items:center;justify-content:center;padding:16px;
  box-shadow:0 14px 30px -10px rgba(179,20,95,.35), 0 0 0 7px rgba(255,255,255,.55);
  animation:qaIconBob 3.6s ease-in-out infinite;
}
.mujer-promo-logo img{max-width:100%;max-height:100%;object-fit:contain}

.mujer-promo-text{position:relative;z-index:1;flex:1;min-width:0}
.mujer-promo-badge{
  display:inline-flex;align-items:center;gap:7px;background:rgba(255,255,255,.65);
  color:#a6135f;font-size:11.5px;font-weight:800;letter-spacing:.6px;text-transform:uppercase;
  padding:6px 14px;border-radius:20px;margin-bottom:10px;
}
.mujer-promo-badge i{font-size:10px;color:#e6539c}
.mujer-promo-text h3{font-size:28px;font-family:var(--font-heading);color:#8f0e51;margin-bottom:8px;letter-spacing:-.2px}
.mujer-promo-text p{font-size:14.5px;color:#7a3355;max-width:460px}

.mujer-promo-btn{
  position:relative;z-index:1;flex-shrink:0;white-space:nowrap;
  display:inline-flex;align-items:center;gap:10px;
  background:linear-gradient(135deg,#c81d78,#8f0e51);color:#fff;
  font-size:13.5px;font-weight:700;padding:14px 26px;border-radius:30px;
  box-shadow:0 12px 26px -8px rgba(143,14,81,.55);transition:.25s;
}
.mujer-promo-btn i{transition:.3s;animation:arrowNudge 1.6s ease-in-out infinite}
.mujer-promo-card:hover .mujer-promo-btn{transform:scale(1.05);box-shadow:0 16px 32px -8px rgba(143,14,81,.65)}
.mujer-promo-card:hover .mujer-promo-btn i{animation:none;transform:translateX(4px)}
@keyframes arrowNudge{0%,100%{transform:translateX(0)}50%{transform:translateX(5px)}}

@media(max-width:760px){
  .mujer-promo-watermark{font-size:130px;right:-10px}
}
@media(max-width:640px){
  .mujer-promo-card{flex-direction:column;text-align:center;padding:32px 26px;gap:16px}
  .mujer-promo-logo{width:96px;height:96px}
  .mujer-promo-text h3{font-size:23px}
  .mujer-promo-text p{max-width:none}
  .mujer-promo-btn{margin-top:6px}
  .mujer-promo-watermark{display:none}
}

/* ---------- ACCESOS RÁPIDOS (tarjetas montadas sobre el borde inferior del slider) ---------- */
.quick-access-wrap{position:relative;z-index:10;margin-top:-78px;margin-bottom:20px}
.quick-access-wrap.no-slider{margin-top:44px}
.quick-access-grid{display:flex;flex-wrap:wrap;justify-content:center;gap:18px}
.quick-access-card{
  width:174px;background:#fff;border-radius:16px;padding:24px 16px;text-align:center;
  box-shadow:0 20px 44px -16px rgba(15,35,55,.28);border:1px solid rgba(15,35,55,.05);
  display:flex;flex-direction:column;align-items:center;gap:12px;transition:.25s cubic-bezier(.2,.8,.3,1);
}
.quick-access-card:hover{transform:translateY(-6px);box-shadow:0 28px 54px -16px rgba(15,35,55,.34);border-color:transparent}
.qa-icon{
  width:58px;height:58px;border-radius:15px;display:flex;align-items:center;justify-content:center;
  background:linear-gradient(135deg,color-mix(in srgb, var(--color-primary) 12%, white),color-mix(in srgb, var(--color-secondary) 14%, white));
  color:var(--color-primary);font-size:24px;transition:.3s;
  animation:qaIconBob 3.2s ease-in-out infinite;
}
.quick-access-card:nth-child(2) .qa-icon{animation-delay:.4s}
.quick-access-card:nth-child(3) .qa-icon{animation-delay:.8s}
.quick-access-card:nth-child(4) .qa-icon{animation-delay:1.2s}
.quick-access-card:nth-child(5) .qa-icon{animation-delay:.2s}
.quick-access-card:nth-child(6) .qa-icon{animation-delay:.6s}
@keyframes qaIconBob{0%,100%{transform:translateY(0)}50%{transform:translateY(-7px)}}
.quick-access-card:hover .qa-icon{animation-play-state:paused;background:linear-gradient(135deg,var(--color-primary),var(--color-secondary));color:#fff;transform:scale(1.1) rotate(-4deg)}
.qa-label{font-size:13.5px;font-weight:700;color:var(--color-text);line-height:1.35}
@media(max-width:700px){
  .quick-access-wrap{margin-top:-52px}
  .quick-access-card{width:128px;padding:18px 12px;border-radius:14px;gap:9px}
  .qa-icon{width:48px;height:48px;font-size:20px;border-radius:12px}
  .qa-label{font-size:11.5px}
  .quick-access-grid{gap:12px}
}

/* ---------- EMBED de "Solicitar Turno" (recorta el header propio del sistema externo) ---------- */
.turnos-embed-card{border-radius:18px;overflow:hidden;box-shadow:0 24px 50px -20px rgba(15,35,55,.3);border:1px solid rgba(15,35,55,.06)}
.turnos-embed-wrap{position:relative;height:var(--wrap-height,900px);min-height:280px;max-height:85vh;overflow:hidden;background:#fff;transition:height .3s ease}
.turnos-embed-wrap iframe{
  position:absolute;top:calc(var(--crop) * -1);left:0;
  width:100%;height:calc(100% + var(--crop));border:0;display:block;
}
@media(max-width:700px){.turnos-embed-wrap{height:min(var(--wrap-height,900px),76vh)}}
@media(max-width:480px){.turnos-embed-wrap{height:min(var(--wrap-height,900px),68vh)}}

/* ---------- FORMULARIO DE CONTACTO ---------- */
.contact-form-card{margin-top:40px;background:#f7fafb;border-radius:20px;padding:34px 36px;border:1px solid rgba(15,35,55,.06)}
.contact-form-card h3{color:var(--color-primary);font-size:22px;margin-bottom:6px}
.contact-form-sub{color:#767f88;font-size:13.5px;margin-bottom:22px}
.contact-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.contact-form label{display:block;font-size:12.5px;font-weight:700;color:#555;margin:14px 0 6px}
.contact-form input,.contact-form textarea{
  width:100%;padding:12px 14px;border:1px solid #e0e5e9;border-radius:9px;font-size:14px;font-family:inherit;background:#fff;
}
.contact-form input:focus,.contact-form textarea:focus{outline:none;border-color:var(--color-primary)}
.contact-form textarea{resize:vertical;min-height:120px}
.contact-form button{margin-top:20px;display:inline-flex;align-items:center;gap:10px}
.contact-form-honeypot{position:absolute!important;left:-9999px!important;width:1px;height:1px;opacity:0}
.contact-form-alert{margin-bottom:18px;padding:14px 16px;border-radius:10px;font-size:13.5px;line-height:1.6}
.contact-form-alert-ok{background:#e7f7ee;color:#1a7a45}
.contact-form-alert-error{background:#fdecea;color:#a12622}
.contact-form-alert-error div{display:flex;align-items:center;gap:8px;margin-bottom:4px}
.contact-form-alert-error div:last-child{margin-bottom:0}
@media(max-width:640px){
  .contact-form-card{padding:26px 22px}
  .contact-form-grid{grid-template-columns:1fr}
}

/* ---------- DETALLE DE NOTICIA (layout tipo revista) ---------- */
.noticia-head{max-width:740px;margin:0 auto 30px;text-align:center}
.noticia-head .eyebrow{display:block;margin-bottom:10px}
.noticia-head h1{color:var(--color-primary);font-size:34px;line-height:1.25;margin-bottom:14px}
.noticia-head time{display:inline-flex;align-items:center;gap:7px;color:#8a97a3;font-size:13.5px;font-weight:600}

.noticia-hero-img{border-radius:18px;overflow:hidden;margin-bottom:40px;box-shadow:0 26px 54px -24px rgba(15,35,55,.3)}
.noticia-hero-img img{width:100%;max-height:520px;object-fit:cover;display:block}

.noticia-body{max-width:740px;margin:0 auto}
.noticia-body .rich-content{font-size:16.5px}
.noticia-body .rich-content p{margin-bottom:20px}

.noticia-gallery-wrap{margin-top:20px}

@media(max-width:760px){
  .noticia-head h1{font-size:26px}
  .noticia-hero-img{border-radius:12px;margin-bottom:28px}
  .noticia-hero-img img{max-height:320px}
}

/* ---------- MAPA (página de contacto) ---------- */
.contact-map-wrap{
  position:relative;border-radius:18px;overflow:hidden;margin-top:34px;height:400px;
  box-shadow:0 24px 50px -20px rgba(15,35,55,.3);border:1px solid rgba(15,35,55,.06);
}
.contact-map-wrap iframe{width:100%;height:100%;border:0;display:block;filter:grayscale(.2) contrast(1.05) saturate(1.1)}

.map-pin{position:absolute;top:50%;left:50%;transform:translate(-50%,-100%);z-index:2;pointer-events:none;animation:mapPinDrop .7s cubic-bezier(.25,1.6,.4,1) backwards .3s}
.map-pin i{position:relative;z-index:2;font-size:38px;color:var(--color-accent);filter:drop-shadow(0 8px 12px rgba(0,0,0,.4))}
.map-pin-pulse{
  position:absolute;left:50%;bottom:1px;width:14px;height:14px;border-radius:50%;
  background:var(--color-accent);transform:translateX(-50%);opacity:.6;animation:mapPinPulse 2.4s ease-out infinite;
}
.map-pin-pulse-2{animation-delay:1.2s}
@keyframes mapPinDrop{from{opacity:0;transform:translate(-50%,-160%)}to{opacity:1;transform:translate(-50%,-100%)}}
@keyframes mapPinPulse{0%{transform:translateX(-50%) scale(1);opacity:.6}100%{transform:translateX(-50%) scale(3.6);opacity:0}}

.map-open-link{
  position:absolute;bottom:16px;right:16px;z-index:2;
  display:flex;align-items:center;gap:8px;background:#fff;color:var(--color-text);
  padding:11px 18px;border-radius:30px;font-size:13px;font-weight:700;
  box-shadow:0 10px 26px -8px rgba(15,35,55,.35);transition:.2s;
}
.map-open-link i{color:var(--color-primary)}
.map-open-link:hover{background:var(--color-primary);color:#fff}
.map-open-link:hover i{color:#fff}
@media(max-width:600px){
  .contact-map-wrap{height:300px;margin-top:24px}
  .map-pin i{font-size:30px}
  .map-open-link{padding:9px 14px;font-size:12px;bottom:12px;right:12px}
}

/* ---------- HOME: detalles PRO con movimiento (clases usadas solo en el home) ---------- */

/* Subrayado con brillo en movimiento bajo los títulos de sección (solo home) */
.section-title-animated h2{position:relative}
.section-title-animated h2::after{
  content:'';display:block;height:3px;width:64px;margin:12px auto 0;border-radius:3px;
  background:linear-gradient(90deg,var(--color-primary),var(--color-secondary),var(--color-primary));
  background-size:200% 100%;animation:titleShimmer 3s linear infinite;
}
@keyframes titleShimmer{0%{background-position:0% 0}100%{background-position:200% 0}}

/* Íconos decorativos flotando dentro de secciones del home (misma técnica del hero) */
.home-float-decor{position:absolute;inset:0;overflow:hidden;pointer-events:none;z-index:0}
.home-float-decor .float-icon{color:color-mix(in srgb, var(--color-primary) 22%, transparent);font-size:52px!important}
.home-float-decor .float-icon.fi-alt{color:color-mix(in srgb, var(--color-secondary) 24%, transparent)}

/* Brillo que recorre el botón al pasar el mouse (solo botones marcados en el home) */
.btn-shine{position:relative;overflow:hidden}
.btn-shine::after{
  content:'';position:absolute;top:0;left:-75%;width:50%;height:100%;
  background:linear-gradient(120deg,transparent,rgba(255,255,255,.6),transparent);
  transform:skewX(-20deg);transition:.65s ease;
}
.btn-shine:hover::after{left:125%}

/* ---------- Paginación ---------- */
.pagination{display:flex;justify-content:center;gap:8px;margin-top:46px;flex-wrap:wrap}
.pagination a{
  width:38px;height:38px;display:flex;align-items:center;justify-content:center;border-radius:9px;
  background:#fff;border:1px solid #e6eaed;color:var(--color-text);font-size:13px;font-weight:600;transition:.2s;
}
.pagination a:hover{border-color:var(--color-primary);color:var(--color-primary)}
.pagination a.active{background:var(--color-primary);border-color:var(--color-primary);color:#fff}

/* ---------- FOOTER ---------- */
.site-footer{
  position:relative;color:var(--footer-text);font-size:var(--footer-font-size);padding:50px 0 18px;
  background:linear-gradient(160deg,var(--footer-bg),color-mix(in srgb, var(--footer-bg) 75%, black));
}
.footer-inner{max-width:1180px;margin:0 auto;display:grid;grid-template-columns:2fr 1fr 1fr;gap:30px;padding:0 20px 30px}
.footer-logo{height:30px;margin-bottom:14px;filter:brightness(0) invert(1)}
.footer-phone-label{font-weight:700;letter-spacing:1px;margin-bottom:4px}
.footer-bottom{text-align:center;font-size:12px;opacity:.8;border-top:1px solid rgba(255,255,255,.15);padding-top:16px}
@media(max-width:600px){.footer-bottom{padding-bottom:20px}}
.footer-bottom a{text-decoration:underline}
@media(max-width:760px){.footer-inner{grid-template-columns:1fr}}

/* ---------- BOTÓN FLOTANTE CTA (llamativo, configurable) ---------- */
.cta-fab{
  position:fixed;left:22px;bottom:22px;z-index:100000;
  display:flex;align-items:center;gap:10px;
  padding:15px 22px;border-radius:50px;
  background:linear-gradient(135deg,var(--color-accent),color-mix(in srgb, var(--color-accent) 65%, var(--color-primary)));
  color:#fff;font-weight:700;font-size:14px;letter-spacing:.2px;
  box-shadow:0 14px 32px -8px color-mix(in srgb, var(--color-accent) 70%, transparent);
  overflow:visible;
  animation:cta-bounce-in .6s cubic-bezier(.2,1.4,.4,1) .3s backwards, cta-float 3s ease-in-out 1s infinite;
  transition:transform .25s, box-shadow .25s;
}
.cta-fab:hover{transform:translateY(-4px) scale(1.04);box-shadow:0 20px 40px -8px color-mix(in srgb, var(--color-accent) 80%, transparent)}
.cta-fab i{font-size:17px}
.cta-fab-glow{
  position:absolute;inset:-6px;border-radius:50px;z-index:-1;
  background:inherit;opacity:.55;filter:blur(10px);
  animation:cta-pulse 2.2s ease-in-out infinite;
}
@keyframes cta-bounce-in{from{opacity:0;transform:scale(.4) translateY(30px)}to{opacity:1;transform:scale(1) translateY(0)}}
@keyframes cta-float{0%,100%{transform:translateY(0)}50%{transform:translateY(-6px)}}
@keyframes cta-pulse{0%,100%{opacity:.5;transform:scale(1)}50%{opacity:.15;transform:scale(1.18)}}
@media(max-width:600px){
  .cta-fab{left:14px;bottom:14px;padding:13px 18px;font-size:13px}
  .cta-fab span:not(.cta-fab-glow){display:none}
  .cta-fab{border-radius:50%;width:54px;height:54px;justify-content:center;padding:0}
}

/* ---------- WHATSAPP: widget tipo chat ("¿en qué te ayudamos?") ---------- */
.wa-widget{position:fixed;right:22px;bottom:22px;z-index:100000;font-family:var(--font-body)}

.wa-fab{
  position:relative;width:60px;height:60px;border-radius:50%;border:none;cursor:pointer;
  background:linear-gradient(135deg,#25D366,#1ebe5d);color:#fff;font-size:26px;
  display:flex;align-items:center;justify-content:center;
  box-shadow:0 10px 26px -6px rgba(37,211,102,.55);
  transition:.25s;
}
.wa-fab:hover{transform:scale(1.06)}
.wa-fab-icon-close{display:none;font-size:22px}
.wa-widget.open .wa-fab-icon{display:none}
.wa-widget.open .wa-fab-icon-close{display:block}
.wa-fab-ping{position:absolute;inset:-6px;border-radius:50%;border:2px solid rgba(37,211,102,.5);animation:wa-ring 2.4s infinite}
.wa-widget.open .wa-fab-ping{display:none}

/* Chatbot externo (Rasa WebChat, cargado desde /admin/chatbot):
   lo acomodamos apilado arriba del botón de WhatsApp para que no se pisen. */
#webchat .rw-widget-container,
.rw-widget-container{
  bottom:96px!important;
  right:22px!important;
  z-index:100000!important;
}
@media(max-width:600px){
  #webchat .rw-widget-container,
  .rw-widget-container{ bottom:84px!important; right:14px!important; }
}
@keyframes wa-ring{0%{transform:scale(.85);opacity:1}80%{transform:scale(1.35);opacity:0}100%{opacity:0}}

.wa-panel{
  position:absolute;right:0;bottom:76px;width:320px;max-width:calc(100vw - 40px);
  background:#fff;border-radius:16px;overflow:hidden;
  box-shadow:0 24px 60px -10px rgba(10,20,35,.35);
  opacity:0;visibility:hidden;transform:translateY(16px) scale(.97);transform-origin:bottom right;
  transition:.25s cubic-bezier(.2,.8,.3,1);
}
.wa-widget.open .wa-panel{opacity:1;visibility:visible;transform:translateY(0) scale(1)}

.wa-panel-header{
  background:linear-gradient(135deg,#25D366,#1ebe5d);color:#fff;padding:16px 16px;
  display:flex;align-items:center;gap:12px;
}
.wa-panel-avatar{width:38px;height:38px;border-radius:50%;background:rgba(255,255,255,.2);display:flex;align-items:center;justify-content:center;font-size:19px;flex-shrink:0}
.wa-panel-header strong{display:block;font-size:14px}
.wa-panel-header span{display:block;font-size:11.5px;opacity:.85}
.wa-panel-close{margin-left:auto;background:none;border:none;color:#fff;font-size:16px;opacity:.85;cursor:pointer}

.wa-panel-body{background:#e9edf0;padding:16px}
.wa-bubble-msg{background:#fff;border-radius:12px;border-top-left-radius:2px;padding:12px 14px;font-size:13px;color:#333;margin-bottom:14px;box-shadow:0 1px 2px rgba(0,0,0,.06);line-height:1.5}
.wa-options{display:flex;flex-direction:column;gap:8px}
.wa-option{display:flex;align-items:center;gap:12px;background:#fff;border-radius:12px;padding:11px 12px;transition:.2s;box-shadow:0 1px 2px rgba(0,0,0,.05)}
.wa-option:hover{transform:translateX(3px);box-shadow:0 6px 16px rgba(0,0,0,.1)}
.wa-option-icon{width:36px;height:36px;border-radius:50%;background:#e7f8ee;color:#1ebe5d;display:flex;align-items:center;justify-content:center;font-size:16px;flex-shrink:0}
.wa-option-text{display:flex;flex-direction:column;line-height:1.3}
.wa-option-text strong{font-size:13px;color:#222}
.wa-option-text small{font-size:11px;color:#888}
.wa-option-arrow{margin-left:auto;font-size:11px;color:#bbb}

@media(max-width:480px){
  .wa-widget{right:14px;bottom:14px}
  .wa-panel{right:-6px}
}

/* ---------- POP-UP DE AVISO ---------- */
.site-popup{
  position:fixed;inset:0;background:rgba(4,10,20,.6);z-index:2100;
  display:flex;align-items:center;justify-content:center;padding:20px;
  opacity:0;visibility:hidden;transition:.3s;
}
.site-popup.open{opacity:1;visibility:visible}
.site-popup-box{
  background:#fff;border-radius:16px;max-width:420px;width:100%;overflow:hidden;position:relative;
  box-shadow:0 30px 80px rgba(0,0,0,.35);
  transform:scale(.9) translateY(10px);transition:.3s cubic-bezier(.2,.8,.3,1);
}
.site-popup.open .site-popup-box{transform:scale(1) translateY(0)}
.site-popup-close{
  position:absolute;top:12px;right:12px;z-index:2;width:34px;height:34px;border-radius:50%;
  background:rgba(255,255,255,.9);border:none;color:#333;font-size:15px;cursor:pointer;transition:.2s;
  display:flex;align-items:center;justify-content:center;
}
.site-popup-close:hover{background:#fff;transform:rotate(90deg)}
.site-popup-img{width:100%;height:180px;object-fit:cover;display:block}
.site-popup-body{padding:26px}
.site-popup-body h3{color:var(--color-primary);font-size:20px;margin-bottom:10px}
.site-popup-body p{font-size:14px;color:#555;margin-bottom:18px;line-height:1.6}
.site-popup-text{font-size:14px;color:#555;line-height:1.6;margin-bottom:18px}
.site-popup-text p{margin-bottom:10px}
.site-popup-text p:last-child{margin-bottom:0}

/* ---------- Responsive nav ---------- */
@media(max-width:960px){
  .nav-toggle{display:flex}
  .main-nav{position:fixed;top:0;right:-320px;width:300px;max-width:85vw;height:100vh;background:#fff;padding:80px 24px;transition:.3s;box-shadow:-10px 0 30px rgba(0,0,0,.15);overflow-y:auto;z-index:200}
  .main-nav.open{right:0}
  .main-nav ul{flex-direction:column;gap:4px}
  .sub-menu{position:static;box-shadow:none;display:block;padding-left:14px}
  .nav-overlay{position:fixed;inset:0;background:rgba(4,10,20,.45);z-index:150;opacity:0;visibility:hidden;transition:.3s}
  .nav-overlay.open{opacity:1;visibility:visible}
}
@media(min-width:961px){.nav-overlay{display:none}}
