/* ============ CONTRAST FIX — .card-light scope ============
   .card-light always means a WHITE card surface. Several components
   (pill-card, sys-card, price-card, service-price-card, plan-desc, etc.)
   relied on the global light-on-dark tokens (--ink-300 / --ink-500) which
   are unreadable on white. Redefining the tokens inside this scope fixes
   every descendant automatically, and .pill-card h4 no longer forces
   white text when it sits inside a light card. */
.card-light{--ink-300:var(--ink-300-onlight);--ink-500:var(--ink-500-onlight);--ink-400:var(--ink-500-onlight);}
.card-light h2,.card-light h3,.card-light h4{color:var(--navy-900);}

/* ============ SYSTEM CARDS ============ */
.systems-grid{grid-template-columns:repeat(auto-fit,minmax(280px,1fr));}
.sys-card{
  padding:24px;position:relative;overflow:hidden;
}
.sys-card-thumb{margin:-24px -24px 16px;border-radius:var(--r-lg) var(--r-lg) 0 0;overflow:hidden;}
.sys-card-thumb img{width:100%;height:auto;display:block;}
.sys-card .sys-icon{
  width:40px;height:40px;border-radius:12px;
  display:flex;align-items:center;justify-content:center;
  background:var(--grad-brand);color:#fff;margin-bottom:12px;
  box-shadow:0 10px 24px -6px rgba(46,107,255,.5);
}
.sys-card .sys-icon svg{width:20px;height:20px;}
.sys-card h3{color:var(--navy-900);margin-bottom:6px;font-size:1.12rem;}
.sys-card .sys-tag{font-size:.78rem;color:var(--ink-500);margin-bottom:10px;display:block;}
.sys-card p{font-size:.9rem;margin-bottom:14px;min-height:auto;}
.sys-price-row{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:14px;padding-top:12px;border-top:1px dashed #e3e8f5;}
.sys-price{font-family:var(--font-mono);font-weight:700;font-size:1.3rem;color:var(--navy-900);}
.sys-price small{font-size:.7rem;font-weight:500;color:var(--ink-500);font-family:var(--font-body);}
.sys-card .btn{width:100%;}
.sys-card-actions{display:flex;flex-direction:column;gap:10px;}

/* ============ DIGITAL SERVICE PILLS ============ */
.pill-grid{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));}
.contact-2col{grid-template-columns:1fr 1fr;}
@media (max-width:760px){
  .contact-2col{grid-template-columns:1fr;}
}
.pill-card{
  padding:22px;text-align:left;
}
.pill-card .pill-icon{width:42px;height:42px;border-radius:12px;background:rgba(46,107,255,.12);color:var(--blue-300);display:flex;align-items:center;justify-content:center;margin-bottom:14px;}
.pill-card .pill-icon svg{width:22px;height:22px;}
.pill-card h4{font-size:1rem;color:#fff;margin-bottom:4px;}
.card-light.pill-card h4{color:var(--navy-900);}
.pill-card p{font-size:.84rem;margin:0;}

/* ============ PRICING CARDS ============ */
.pricing-grid{grid-template-columns:repeat(auto-fit,minmax(270px,1fr));align-items:stretch;}
.price-card{
  padding:32px 28px;display:flex;flex-direction:column;position:relative;
}
.price-card.featured{border:2px solid var(--blue-400);box-shadow:var(--shadow-glow-blue);transform:scale(1.02);}
.price-card .price-tag-top{position:absolute;top:-13px;left:50%;transform:translateX(-50%);background:var(--grad-brand);color:#fff;font-size:.68rem;font-weight:700;letter-spacing:.06em;padding:6px 16px;border-radius:var(--r-pill);text-transform:uppercase;}
.price-card .plan-name{font-family:var(--font-display);font-size:1.15rem;color:var(--navy-900);margin-bottom:4px;}
.price-card .plan-desc{font-size:.85rem;margin-bottom:18px;min-height:36px;}
.price-card .plan-price{font-family:var(--font-mono);font-size:2.3rem;font-weight:700;color:var(--navy-900);display:flex;align-items:baseline;gap:6px;}
.price-card .plan-price span{font-size:.85rem;color:var(--ink-500);font-family:var(--font-body);font-weight:500;}
.price-card .plan-note{font-size:.75rem;color:var(--ink-500);margin-bottom:22px;}
.price-card ul{display:grid;gap:10px;margin-bottom:26px;flex:1;}
.price-card ul li{display:flex;gap:9px;font-size:.87rem;color:#333c58;align-items:flex-start;}
.price-card ul li svg{width:17px;height:17px;flex-shrink:0;margin-top:2px;color:var(--blue-500);}

/* ============ SERVICE PRICE MINI CARDS (digital services) ============ */
.service-price-card{padding:24px;}
.service-price-card .sp-top{display:flex;flex-direction:column;gap:6px;margin-bottom:10px;}
.service-price-card h4{color:var(--navy-900);font-size:1.02rem;}
.service-price-card .sp-price{font-family:var(--font-mono);font-weight:700;color:var(--blue-500);font-size:1.15rem;}
.service-price-card p{font-size:.85rem;margin-bottom:16px;}
.service-price-card ul{display:grid;gap:7px;margin-bottom:18px;}
.service-price-card ul li{font-size:.82rem;color:#4b5470;display:flex;gap:7px;}
.service-price-card ul li svg{width:15px;height:15px;color:var(--blue-500);margin-top:3px;flex-shrink:0;}

/* ============ COMBOS ============ */
.combo-list{display:grid;gap:14px;}
.combo-row{
  display:flex;align-items:center;justify-content:space-between;gap:16px;
  padding:18px 20px;border-radius:var(--r-md);
  background:rgba(255,255,255,.03);border:1px solid rgba(255,255,255,.08);
  transition:border-color var(--dur-fast), background var(--dur-fast), transform var(--dur-fast);
}
.combo-row:hover{border-color:rgba(91,139,255,.4);background:rgba(255,255,255,.05);transform:translateX(4px);}
.combo-row .combo-icon{width:40px;height:40px;border-radius:11px;background:var(--grad-brand);display:flex;align-items:center;justify-content:center;flex-shrink:0;}
.combo-row .combo-icon svg{width:20px;height:20px;color:#fff;}
.combo-name{font-weight:600;color:#fff;font-size:.94rem;}
.combo-includes{font-size:.78rem;color:var(--ink-500);}
.combo-price{font-family:var(--font-mono);font-weight:700;color:var(--cyan-400);font-size:1.05rem;white-space:nowrap;}
.combo-price small{display:block;font-size:.65rem;color:var(--ink-500);font-weight:400;font-family:var(--font-body);text-align:right;}

/* ============ PROCESS ============ */
.process-grid{grid-template-columns:repeat(5,1fr);gap:0;position:relative;counter-reset:step;}
.process-grid::before{content:'';position:absolute;top:26px;left:10%;right:10%;height:2px;background:linear-gradient(90deg,rgba(91,139,255,.4),rgba(123,92,255,.4));z-index:0;}
.process-step{position:relative;z-index:1;text-align:center;padding:0 12px;}
.process-num{
  width:52px;height:52px;border-radius:50%;margin:0 auto 18px;
  display:flex;align-items:center;justify-content:center;
  background:var(--navy-900);border:2px solid var(--blue-400);
  font-family:var(--font-mono);font-weight:700;color:#fff;
}
.process-step h4{font-size:.98rem;color:#fff;margin-bottom:8px;}
.process-step p{font-size:.82rem;}
@media (max-width:900px){
  .process-grid{grid-template-columns:1fr;gap:28px;}
  .process-grid::before{display:none;}
  .process-step{display:flex;gap:16px;text-align:left;align-items:flex-start;}
  .process-num{margin:0;flex-shrink:0;}
}

/* ============ DEMOS GALLERY ============ */
.filter-bar{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:36px;}
.filter-btn{
  padding:9px 18px;border-radius:var(--r-pill);font-size:.85rem;font-weight:600;
  background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.12);color:var(--ink-300);
  transition:all var(--dur-fast);
}
.filter-btn:hover{color:#fff;border-color:rgba(255,255,255,.3);}
.filter-btn.active{background:var(--grad-brand);color:#fff;border-color:transparent;}

.demos-grid{grid-template-columns:repeat(auto-fill,minmax(270px,1fr));}
.demo-card{
  border-radius:var(--r-lg);overflow:hidden;position:relative;
  background:var(--navy-800);border:1px solid rgba(255,255,255,.08);
  transition:transform var(--dur-med) var(--ease-out), box-shadow var(--dur-med);
}
.demo-card:hover{transform:translateY(-8px);box-shadow:var(--shadow-lg);}
.demo-thumb{
  aspect-ratio:4/3;position:relative;overflow:hidden;
}
.demo-thumb .demo-badge{position:absolute;top:12px;left:12px;z-index:2;}
.demo-thumb .demo-cat{position:absolute;bottom:12px;left:12px;z-index:2;color:#fff;font-weight:700;font-family:var(--font-display);font-size:1.05rem;text-shadow:0 2px 10px rgba(0,0,0,.5);}
.demo-thumb::after{content:'';position:absolute;inset:0;background:linear-gradient(180deg,rgba(5,9,20,0) 40%,rgba(5,9,20,.85) 100%);}
.demo-body{padding:18px 18px 20px;}
.demo-body p{font-size:.83rem;margin-bottom:14px;}
.demo-tags{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:14px;}
.demo-tags span{font-size:.68rem;font-family:var(--font-mono);color:var(--blue-300);background:rgba(46,107,255,.1);padding:3px 9px;border-radius:6px;}

/* ============ FAQ ============ */
.faq-list{max-width:820px;margin:0 auto;display:grid;gap:12px;}
.faq-item{border:1px solid rgba(255,255,255,.1);border-radius:var(--r-md);background:rgba(255,255,255,.03);overflow:hidden;}
.faq-q{
  width:100%;display:flex;align-items:center;justify-content:space-between;gap:16px;
  padding:20px 22px;text-align:left;font-weight:600;color:#fff;font-size:.98rem;
}
.faq-q .plus{width:22px;height:22px;flex-shrink:0;position:relative;}
.faq-q .plus::before,.faq-q .plus::after{content:'';position:absolute;background:var(--blue-300);border-radius:2px;transition:transform var(--dur-med);}
.faq-q .plus::before{top:50%;left:0;width:100%;height:2px;margin-top:-1px;}
.faq-q .plus::after{left:50%;top:0;height:100%;width:2px;margin-left:-1px;}
.faq-item.open .plus::after{transform:rotate(90deg);opacity:0;}
.faq-a{max-height:0;overflow:hidden;transition:max-height var(--dur-med) var(--ease-out);}
.faq-a-inner{padding:0 22px 20px;font-size:.9rem;color:var(--ink-300);}
.faq-item.open .faq-a{max-height:400px;}

/* ============ PORTFOLIO / EVIDENCIA ============ */
.evidence-note{
  padding:28px;border-radius:var(--r-lg);
  background:linear-gradient(135deg,rgba(46,107,255,.08),rgba(123,92,255,.06));
  border:1px solid rgba(91,139,255,.2);
  display:flex;gap:18px;align-items:flex-start;
}
.evidence-note svg{width:26px;height:26px;color:var(--blue-300);flex-shrink:0;margin-top:2px;}
.evidence-note p{font-size:.92rem;color:var(--ink-300);}
.evidence-note strong{color:#fff;}

/* ============ FINAL CTA ============ */
.final-cta{
  border-radius:var(--r-xl);
  background:var(--grad-hero);
  padding:clamp(48px,7vw,90px) clamp(24px,6vw,72px);
  text-align:center;position:relative;overflow:hidden;
  border:1px solid rgba(255,255,255,.08);
}
.final-cta::before{content:'';position:absolute;inset:0;background-image:radial-gradient(rgba(255,255,255,.08) 1px, transparent 1px);background-size:26px 26px;mask-image:radial-gradient(60% 80% at 50% 30%, black, transparent);}
.final-cta h2{max-width:680px;margin:0 auto 18px;position:relative;}
.final-cta p{max-width:520px;margin:0 auto 34px;position:relative;font-size:1.05rem;}
.final-cta .btn{position:relative;}

/* ============ WHATSAPP FLOATING BUTTON ============ */
.wa-float{
  position:fixed;bottom:24px;right:24px;z-index:90;
  width:60px;height:60px;border-radius:50%;
  background:var(--wa-green);display:flex;align-items:center;justify-content:center;
  box-shadow:var(--shadow-glow-wa);
  animation:pulse-wa 2.6s infinite;
  transition:opacity var(--dur-fast,.2s),transform var(--dur-fast,.2s);
}
body.menu-open .wa-float{opacity:0;transform:scale(.8);pointer-events:none;}
.wa-float svg{width:30px;height:30px;color:#fff;}
@keyframes pulse-wa{
  0%{box-shadow:0 0 0 0 rgba(37,211,102,.55), var(--shadow-glow-wa);}
  70%{box-shadow:0 0 0 16px rgba(37,211,102,0), var(--shadow-glow-wa);}
  100%{box-shadow:0 0 0 0 rgba(37,211,102,0), var(--shadow-glow-wa);}
}

/* ============ COMPARE TABLE (NovoPharma) ============ */
.compare-table{width:100%;border-collapse:separate;border-spacing:0;background:#fff;border-radius:var(--r-lg);overflow:hidden;box-shadow:var(--shadow-sm);}
.compare-table th,.compare-table td{padding:16px 18px;text-align:left;font-size:.88rem;border-bottom:1px solid #eef1f8;color:#28304a;}
.table-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch;border-radius:var(--r-lg);}
.table-scroll .compare-table{min-width:480px;}
.compare-table thead th{background:var(--navy-900);color:#fff;font-family:var(--font-display);font-weight:600;}
.compare-table thead th.hi{background:var(--blue-500);}
.compare-table tbody tr:last-child td{border-bottom:none;}
.compare-table td.price{font-family:var(--font-mono);font-weight:700;font-size:1.1rem;color:var(--navy-900);}

/* ============ BREADCRUMB / PAGE HEADER ============ */
.page-header{
  padding:150px 0 60px;background:var(--grad-hero);position:relative;overflow:hidden;
}
.page-header::before{content:'';position:absolute;inset:0;background-image:radial-gradient(rgba(255,255,255,.07) 1px, transparent 1px);background-size:26px 26px;mask-image:radial-gradient(65% 70% at 20% 20%, black, transparent);}
.breadcrumb{font-size:.8rem;color:var(--ink-500);margin-bottom:18px;display:flex;gap:8px;position:relative;}
.breadcrumb a{color:var(--blue-300);}
.page-header h1{position:relative;max-width:760px;}
.page-header .lead{position:relative;max-width:600px;font-size:1.08rem;margin-top:16px;}

/* ============ PRODUCT PAGE (sistema individual) ============ */
.product-hero{grid-template-columns:1fr 1fr;gap:56px;align-items:center;display:grid;}
.product-banner{border-radius:var(--r-lg);overflow:hidden;box-shadow:var(--shadow-lg);border:1px solid rgba(255,255,255,.1);}
.feature-check-grid{grid-template-columns:repeat(auto-fit,minmax(240px,1fr));}
.feature-item{display:flex;gap:12px;padding:16px;border-radius:var(--r-md);background:#fff;border:1px solid var(--card-light-border);}
.feature-item svg{width:20px;height:20px;color:var(--blue-500);flex-shrink:0;}
.feature-item span{font-size:.88rem;color:#333c58;font-weight:500;}
.sticky-cta{position:sticky;top:100px;}
.price-box{
  padding:30px;border-radius:var(--r-lg);
  background:linear-gradient(160deg,#101c42,#0a1330);
  border:1px solid rgba(255,255,255,.1);box-shadow:var(--shadow-lg);
}
.price-box .amount{font-family:var(--font-mono);font-size:2.6rem;font-weight:700;color:#fff;display:flex;align-items:baseline;gap:8px;}
.price-box .amount small{font-size:.85rem;color:var(--ink-400);font-weight:500;font-family:var(--font-body);}
.price-box .btn{margin-top:18px;}
.price-box ul{margin-top:20px;display:grid;gap:8px;}
.price-box ul li{font-size:.84rem;color:var(--ink-300);display:flex;gap:8px;}
.price-box ul li svg{width:15px;height:15px;color:var(--cyan-400);flex-shrink:0;margin-top:3px;}

@media (max-width:900px){
  .product-hero{grid-template-columns:1fr;}
  .sticky-cta{position:static;}
}

/* ============ RESOURCE SECTION (brochure) ============ */
.resource-card{
  padding:32px;border-radius:var(--r-lg);
  background:linear-gradient(135deg,rgba(46,107,255,.08),rgba(123,92,255,.06));
  border:1px solid rgba(91,139,255,.2);
  display:flex;flex-wrap:wrap;gap:24px;align-items:center;justify-content:space-between;
}
.resource-card .resource-text h3{margin-bottom:6px;}
.resource-card .resource-text p{font-size:.92rem;color:var(--ink-300);max-width:480px;}
.resource-actions{display:flex;flex-wrap:wrap;gap:12px;}

/* ============ PDF BROCHURE MODAL ============ */
.pdf-modal{position:fixed;inset:0;z-index:999;display:none;align-items:center;justify-content:center;padding:24px;}
.pdf-modal.open{display:flex;}
.pdf-modal-backdrop{position:absolute;inset:0;background:rgba(6,10,25,.82);backdrop-filter:blur(4px);}
.pdf-modal-box{position:relative;width:min(920px,100%);height:min(86vh,900px);background:#12183a;border-radius:var(--r-lg);border:1px solid rgba(255,255,255,.14);box-shadow:0 40px 90px -20px rgba(0,0,0,.7);display:flex;flex-direction:column;overflow:hidden;}
.pdf-modal-bar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 16px;border-bottom:1px solid rgba(255,255,255,.1);background:rgba(255,255,255,.03);flex-shrink:0;}
.pdf-modal-bar span{font-size:.82rem;color:var(--ink-400);}
.pdf-modal-fallback{font-size:.82rem;color:var(--cyan-400);font-weight:600;text-decoration:none;white-space:nowrap;}
.pdf-modal-fallback:hover{text-decoration:underline;}
.pdf-modal-close{background:none;border:0;color:#fff;font-size:1.6rem;line-height:1;cursor:pointer;padding:2px 8px;flex-shrink:0;}
.pdf-modal-frame{flex:1;border:0;width:100%;background:#fff;}
@media (max-width:640px){
  .pdf-modal{padding:0;}
  .pdf-modal-box{width:100%;height:100%;border-radius:0;}
}

/* ============ VIDEO SECTION ============ */
.video-section{max-width:900px;margin:0 auto;}
.video-embed{
  position:relative;width:100%;padding-top:56.25%;
  border-radius:var(--r-lg);overflow:hidden;
  box-shadow:var(--shadow-lg);border:1px solid rgba(255,255,255,.12);
  background:#000;
}
.video-embed iframe{position:absolute;inset:0;width:100%;height:100%;border:0;display:block;}
.video-cta{text-align:center;margin-top:28px;}
.video-cta p{margin-bottom:14px;font-size:1rem;color:#fff;font-weight:600;}


/* =========================================================
   FIX DEFINITIVO DE CONTRASTE — SECCIONES CLARAS
   FacturaNovo
   ========================================================= */

/* FAQ sobre fondo claro */
.light-section .faq-item{
  background:#ffffff;
  border:1px solid #dfe5f0;
  box-shadow:0 8px 24px rgba(15,28,58,.06);
}

.light-section .faq-q{
  color:#101a33 !important;
  background:#ffffff;
}

.light-section .faq-q .plus::before,
.light-section .faq-q .plus::after{
  background:#2e6bff;
}

.light-section .faq-a{
  background:#ffffff;
}

.light-section .faq-a-inner{
  color:#4b5470 !important;
  background:#ffffff;
}

/* Tarjeta "Evidencia real" sobre fondo claro */
.light-section .evidence-note{
  background:linear-gradient(135deg,#0e1b3a 0%,#162b5a 100%);
  border:1px solid rgba(91,139,255,.35);
  box-shadow:0 12px 30px rgba(15,28,58,.12);
}

.light-section .evidence-note p{
  color:#f4f7ff !important;
}

.light-section .evidence-note strong{
  color:#ffffff !important;
}

.light-section .evidence-note svg{
  color:#8db2ff !important;
}

/* Refuerzo general para cualquier FAQ clara que herede estilos antiguos */
.light-section .faq-list .faq-q,
.light-section .faq-list .faq-q:hover,
.light-section .faq-list .faq-q:focus{
  color:#101a33 !important;
}

.light-section .faq-list .faq-a-inner{
  color:#4b5470 !important;
}

/* Evita que estilos globales vuelvan a ocultar texto en tarjetas claras */
.light-section .evidence-note *{
  color:inherit;
}

.light-section .evidence-note strong{
  color:#ffffff !important;
}

