/* =====================================================================
   VAC MASTER Y ASOCIADOS — overrides de marca sobre Bootstrap 5.3
   Colores tomados del logotipo oficial: carbon #272526, azul #245894.
   ===================================================================== */

:root{
  --bs-font-sans-serif: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
  --bs-body-font-family: var(--bs-font-sans-serif);
  --bs-body-color: #272526;
  --bs-body-bg: #ffffff;
  --bs-primary: #245894;
  --bs-primary-rgb: 36, 88, 148;
  --bs-link-color: #245894;
  --bs-link-color-rgb: 36, 88, 148;
  --bs-link-hover-color: #1a4270;
  --bs-link-hover-color-rgb: 26, 66, 112;
  --bs-border-radius: .6rem;
  --bs-border-radius-lg: .85rem;

  --vac-navy: #0c1b2a;
  --vac-ink-70: #555253;
  --vac-ink-50: #747172;
  --vac-surface: #f6f7f8;
  --vac-line: #e3e5e7;
  --vac-blue-tint: #edf2f9;
  --vac-wa: #1fa855;
  --vac-wa-hover: #188f47;
}

html { scroll-behavior: smooth; }
body { -webkit-text-size-adjust: 100%; }

a { text-decoration: none; }

.eyebrow{
  display:block;
  text-transform:uppercase;
  letter-spacing:.06em;
  font-size:.78rem;
  font-weight:700;
  color: var(--bs-primary);
  margin-bottom:.5rem;
}
.eyebrow-light{ color:#9db8d6; }

.section-title{ font-weight:800; letter-spacing:-.01em; }
.section-lead{ color: var(--vac-ink-70); font-size:1.05rem; max-width:62ch; }

/* ---------- Header ---------- */
.site-navbar{
  border-bottom:1px solid var(--vac-line);
  box-shadow:0 1px 0 rgba(0,0,0,.02);
}
.navbar-brand picture img{ height:38px; width:auto; }
.navbar-nav .nav-link{ font-weight:600; color:var(--bs-body-color); }
.navbar-nav .nav-link.active{ color: var(--bs-primary); }
.navbar-nav .nav-link:hover{ color: var(--bs-primary); }

/* ---------- Secciones ---------- */
.section-tint{ background: var(--vac-surface); }
.section-dark{ background: var(--vac-navy); color:#fff; }
.section-dark .section-title,
.section-dark h2,
.section-dark h3{ color:#fff; }
.section-dark p{ color: rgba(255,255,255,.78); }
section:not(.section-dark) + .section-dark,
main > .section-dark + section:not(.section-dark){ border:0; }
main > *:not(:last-child){ border-bottom:1px solid var(--vac-line); }
main > .section-dark,
main > .hero-pro{ border-bottom-color: rgba(255,255,255,.12); }

/* ---------- Botones ---------- */
.btn{ font-weight:600; border-radius: var(--bs-border-radius); }
.btn-primary{
  --bs-btn-bg:#245894; --bs-btn-border-color:#245894;
  --bs-btn-hover-bg:#1a4270; --bs-btn-hover-border-color:#1a4270;
  --bs-btn-active-bg:#1a4270; --bs-btn-active-border-color:#1a4270;
  --bs-btn-focus-shadow-rgb:36,88,148;
}
.btn-outline-primary{
  --bs-btn-color:#245894; --bs-btn-border-color:#245894;
  --bs-btn-hover-bg:#245894; --bs-btn-hover-border-color:#245894;
}
.btn-whatsapp{
  background: var(--vac-wa); border-color: var(--vac-wa); color:#fff;
}
.btn-whatsapp:hover{ background: var(--vac-wa-hover); border-color: var(--vac-wa-hover); color:#fff; }

/* ---------- WhatsApp flotante ---------- */
.wa-float{
  position:fixed; right:18px; bottom:18px; z-index:1040;
  background: var(--vac-wa); color:#fff; border-radius:999px;
  padding:.7rem 1.1rem; align-items:center; gap:.5rem;
  box-shadow:0 10px 24px rgba(0,0,0,.2); font-weight:700;
}
.wa-float:hover{ background: var(--vac-wa-hover); color:#fff; }

/* ---------- Hero ---------- */
.hero-pro{
  position:relative;
  background: var(--vac-navy);
  color:#fff;
  overflow:hidden;
}
.hero-pro::before{
  content:"";
  position:absolute;
  top:-25%; right:-12%;
  width:62%; height:150%;
  background: linear-gradient(135deg, rgba(36,88,148,.55), rgba(36,88,148,0) 62%);
  clip-path: polygon(28% 0, 100% 0, 100% 100%, 0% 100%);
  pointer-events:none;
}
.hero-pro::after{
  content:"";
  position:absolute;
  left:-6%; bottom:-30%;
  width:28%; height:70%;
  background: radial-gradient(circle, rgba(255,255,255,.05), rgba(255,255,255,0) 70%);
  pointer-events:none;
}
.hero-pro .container{ position:relative; z-index:1; }
.hero-pro .section-lead{ color: rgba(255,255,255,.8); max-width:52ch; }
.eyebrow-rule{ display:inline-flex; align-items:center; gap:.6rem; }
.eyebrow-rule::before{ content:""; width:2.2rem; height:2px; background:#5b8fc7; display:inline-block; }
.hero-headline{
  font-weight:800; letter-spacing:-.02em; color:#fff;
  font-size:clamp(2.1rem, 4.6vw, 3.3rem); line-height:1.08;
}
.hero-headline-sm{
  font-weight:800; letter-spacing:-.02em; color:#fff;
  font-size:clamp(1.9rem, 3.4vw, 2.5rem); line-height:1.15;
}
.hero-pro.page-header{ padding-top:2.75rem; padding-bottom:2.75rem; }
.hero-pro.page-header::before{ top:-60%; }
.hero-trust-item{ font-size:.85rem; font-weight:600; color:rgba(255,255,255,.75); }
.hero-trust-sep{ color:rgba(255,255,255,.35); }
.hero-card-wrap{ position:relative; }
.hero-badge{
  position:absolute; top:-.9rem; left:1.5rem; z-index:2;
  display:inline-flex; align-items:center; gap:.45rem;
  background:#fff; color: var(--bs-primary);
  font-weight:700; font-size:.76rem;
  padding:.4rem .85rem; border-radius:999px;
  box-shadow:0 10px 22px rgba(8,21,37,.22);
}
.hero-badge .dot{ width:.5rem; height:.5rem; border-radius:50%; background: var(--vac-wa); display:inline-block; }
.hero-card-wrap .ledger-card{ border-top:4px solid var(--bs-primary); }
@media (max-width:991px){
  .hero-pro::before{ opacity:.6; }
}
.ledger-card{ border:1px solid var(--vac-line); border-radius: var(--bs-border-radius-lg); box-shadow:0 18px 44px rgba(8,21,37,.08); background:#fff; color: var(--bs-body-color); }
.ledger-head{ border-bottom:1px solid var(--vac-line); }
.ledger-row{ border-bottom:1px solid var(--vac-line); }
.ledger-row:last-child{ border-bottom:0; }
.state-ok{ color:#1f7a5c; font-weight:700; }

/* ---------- Cifras ---------- */
.stat-value{ font-size:2.5rem; font-weight:800; color: var(--bs-primary); line-height:1; }

/* ---------- Proceso / enfoque ---------- */
.process-number, .approach-number{
  display:inline-flex; align-items:center; justify-content:center;
  width:2.4rem; height:2.4rem; border-radius:50%;
  background: rgba(255,255,255,.12); color:#fff; font-weight:800;
}
.section:not(.section-dark) .approach-number{
  background: var(--vac-blue-tint); color: var(--bs-primary);
  width:auto; height:auto; border-radius:0; font-size:1.5rem; padding:0;
}

/* ---------- Planes ---------- */
.plan-card{ border:1px solid var(--vac-line); border-radius: var(--bs-border-radius-lg); position:relative; }
.plan-card.is-featured{ border:2px solid var(--bs-primary); box-shadow:0 18px 44px rgba(36,88,148,.14); }
.plan-flag{
  position:absolute; top:-.75rem; left:50%; transform:translateX(-50%);
  background: var(--bs-primary); color:#fff; font-size:.72rem; font-weight:700;
  padding:.15rem .7rem; border-radius:999px; white-space:nowrap;
}
.plan-amount{ font-size:2.1rem; font-weight:800; }
.rate-table th, .rate-table td{ vertical-align:middle; }

/* ---------- Reseñas ---------- */
.reviews-band{ border:1px solid var(--vac-line); border-radius: var(--bs-border-radius-lg); background:#fff; }
.reviews-rating{ font-size:2.4rem; font-weight:800; color: var(--bs-primary); line-height:1; }
.reviews-stars{ color:#f5a623; letter-spacing:.1em; }

/* ---------- Contacto ---------- */
.office-photo img{ border-radius: var(--bs-border-radius-lg); }
.map-holder{ border:1px solid var(--vac-line); border-radius: var(--bs-border-radius-lg); overflow:hidden; }
.map-frame{ display:block; border:0; }
.contact-dl dt{ font-size:.78rem; text-transform:uppercase; letter-spacing:.05em; color: var(--vac-ink-50); margin-top:1rem; }
.contact-dl dt:first-child{ margin-top:0; }
.contact-dl dd{ margin-bottom:0; }

/* ---------- Formulario ---------- */
.lead-form{ border:1px solid var(--vac-line); border-radius: var(--bs-border-radius-lg); background:#fff; }
.hp-field{ position:absolute; left:-9999px; top:-9999px; }

/* ---------- Legal ---------- */
.legal-shell h2{ font-size:1.15rem; font-weight:800; margin-top:2rem; }
.legal-shell p, .legal-shell li{ color: var(--vac-ink-70); }

/* ---------- Herramientas / iframe ---------- */
.tool-frame-wrap{ border:1px solid var(--vac-line); border-radius: var(--bs-border-radius-lg); overflow:hidden; background:#fff; }
.tool-frame{ display:block; width:100%; height:1600px; border:0; }
@media (max-width:620px){ .tool-frame{ height:2000px; } }

/* ---------- Accordion FAQ ---------- */
.accordion-button:not(.collapsed){ color: var(--bs-primary); background: var(--vac-blue-tint); }
.accordion-button:focus{ box-shadow:0 0 0 .2rem rgba(36,88,148,.18); }
