:root{
  --bg:#fafafa;
  --fg:#0f172a;
  --primary:#1d4ed8;
  --primary-dark:#1e40af;
  --accent:#2dd4bf;
  --muted:#f3f4f6;
  --border:#e5e7eb;
  --card:#ffffff;
  --secondary:#64748b;
  --footer:#eef2ff;
  --shadow:0 20px 60px rgba(15,23,42,.08);
}
[data-bs-theme="dark"]{
  --bg:#0f172a;
  --fg:#f8fafc;
  --primary:#60a5fa;
  --primary-dark:#3b82f6;
  --accent:#2dd4bf;
  --muted:#162033;
  --border:#24324a;
  --card:#111827;
  --secondary:#94a3b8;
  --footer:#111827;
  --shadow:0 20px 60px rgba(0,0,0,.35);
}
html{scroll-behavior:smooth}
body{
  background:var(--bg);
  color:var(--fg);
  font-family:'Outfit',sans-serif;
  overflow-x:hidden;
}
h1,h2,h3,h4,h5,h6,.navbar-brand,.fw-strong{font-family:'Poppins',sans-serif}
.page-offset{padding-top:4rem}
.navbar-glass{
  background:color-mix(in srgb, var(--bg) 88%, transparent);
  backdrop-filter:blur(12px);
}
.logo-mark{
  width:2rem;height:2rem;border-radius:.75rem;display:grid;place-items:center;
  background:var(--primary);color:#fff;font-weight:800;
}
.logo-mark.lg{width:4rem;height:4rem;border-radius:1rem;font-size:1.5rem}
.nav-pill{
  border-radius:.9rem;padding:.625rem .95rem!important;color:var(--fg);
}
.nav-pill.active,.nav-pill:hover{background:color-mix(in srgb, var(--primary) 10%, transparent);color:var(--primary)!important}
.btn-primary{background:var(--primary);border-color:var(--primary)}
.btn-primary:hover{background:var(--primary-dark);border-color:var(--primary-dark)}
.btn-outline-primary{border-color:var(--primary);color:var(--primary)}
.btn-outline-primary:hover{background:var(--primary);border-color:var(--primary)}
.btn-icon{width:44px;height:44px;border-radius:14px}
.btn-light-theme{background:transparent;border:1px solid var(--border);color:var(--fg)}
.hero-section{min-height:90vh;display:flex;align-items:center}
.hero-bg{
  position:absolute;inset:0;
  background:
    radial-gradient(circle at top left, rgba(29,78,216,.1), transparent 30%),
    radial-gradient(circle at bottom right, rgba(45,212,191,.12), transparent 35%);
}
.min-vh-85{min-height:85vh}
.eyebrow-badge{
  display:inline-flex;align-items:center;gap:.5rem;
  background:color-mix(in srgb, var(--primary) 10%, transparent);
  color:var(--primary);padding:.45rem .85rem;border-radius:999px;font-weight:600
}
.hero-card,.clean-card,.admin-login-card,.image-card,.intro-modal .modal-content{
  background:var(--card);border:1px solid var(--border);border-radius:1.5rem;box-shadow:var(--shadow)
}
.hero-image{height:500px;object-fit:cover}
.section-muted{background:color-mix(in srgb, var(--muted) 75%, transparent)}
.section-heading .lead,.lead,.text-secondary-custom{color:var(--secondary)!important}
.process-item{position:relative;padding:1rem}
.process-icon{
  width:6rem;height:6rem;border-radius:999px;background:var(--card);
  border:4px solid color-mix(in srgb, var(--muted) 75%, transparent);
  display:grid;place-items:center;margin:0 auto 1.5rem;font-size:2rem;color:var(--primary)
}
.py-6{padding-top:5.5rem!important;padding-bottom:5.5rem!important}
.cta-section{background:linear-gradient(135deg, var(--primary-dark), var(--primary))}
.image-card-cover{position:relative;height:230px;overflow:hidden;border-radius:1.5rem 1.5rem 0 0}
.image-card-cover img{width:100%;height:100%;object-fit:cover;transition:transform .5s}
.image-card:hover img{transform:scale(1.05)}
.image-overlay{
  position:absolute;inset:0;display:flex;align-items:flex-end;padding:1.5rem;
  background:linear-gradient(to top, rgba(0,0,0,.65), rgba(0,0,0,.2), transparent)
}
.image-overlay h3{color:white;font-size:1.35rem;font-weight:700;margin:0}
.list-check{list-style:none;padding:0;margin:0;display:grid;gap:.8rem}
.list-check li{display:flex;gap:.75rem;align-items:flex-start;color:var(--secondary)}
.list-check i{color:var(--primary);margin-top:.1rem}
.feature-visual{
  min-height:260px;border-radius:2rem;background:linear-gradient(135deg, color-mix(in srgb, var(--primary) 14%, transparent), color-mix(in srgb, var(--accent) 12%, transparent));
  display:grid;place-items:center;font-size:4rem;color:var(--primary);border:1px solid var(--border)
}
.display-number{font-size:4.5rem;line-height:1;color:color-mix(in srgb, var(--primary) 22%, transparent);font-weight:800}
.mini-feature,.contact-item{display:flex;gap:1rem;align-items:flex-start}
.mini-feature i,.contact-icon,.stat-icon{
  width:3rem;height:3rem;border-radius:1rem;display:grid;place-items:center;
  background:color-mix(in srgb, var(--primary) 10%, transparent);color:var(--primary);font-size:1.3rem;flex:0 0 auto
}
.mini-feature p,.team-card p{margin:0;color:var(--secondary)}
.stat-floating{
  position:absolute;left:-1rem;bottom:-1rem;background:var(--card);border:1px solid var(--border);
  border-radius:1.25rem;padding:1.25rem 1.5rem;box-shadow:var(--shadow)
}
.stat-floating strong{display:block;font-size:2rem;color:var(--primary)}
.stat-floating span{color:var(--secondary);font-size:.95rem}
.team-card img{width:100%;aspect-ratio:4/5;object-fit:cover;border-radius:1.5rem;margin-bottom:1rem}
.team-card h3{font-size:1.3rem;font-weight:700;margin-bottom:.25rem}
.map-card{height:260px;border:1px solid var(--border);border-radius:1.5rem;overflow:hidden;background:var(--muted)}
.map-card iframe{width:100%;height:100%;border:0}
.form-control,.form-select,textarea{
  background:var(--card);border:1px solid var(--border);color:var(--fg);
  border-radius:1rem;padding:.9rem 1rem
}
.form-control:focus,textarea:focus{
  background:var(--card);color:var(--fg);box-shadow:0 0 0 .25rem rgba(29,78,216,.12);border-color:var(--primary)
}
.footer-section{background:var(--footer)}
.footer-title{font-weight:700;margin-bottom:1rem}
.footer-links{display:flex;flex-direction:column;gap:.8rem}
.footer-links a,.footer-links span{text-decoration:none;color:var(--secondary)}
.social-icons a{
  width:42px;height:42px;border-radius:999px;display:grid;place-items:center;
  background:color-mix(in srgb, var(--card) 70%, transparent);color:var(--fg);text-decoration:none;border:1px solid var(--border)
}
.social-icons a:hover{background:var(--primary);color:#fff}
.whatsapp-float{
  position:fixed;right:1.2rem;bottom:1.2rem;width:58px;height:58px;border-radius:999px;
  display:grid;place-items:center;background:#25D366;color:#fff;text-decoration:none;box-shadow:var(--shadow);font-size:1.6rem;z-index:1040
}
.progress-soft{height:10px;border-radius:999px;background:var(--muted)}
.step-panel{display:none}
.step-panel.active{display:block}
.option-card{
  display:flex;gap:1rem;align-items:flex-start;padding:1rem 1.1rem;border:1px solid var(--border);
  border-radius:1rem;cursor:pointer;transition:.2s;background:var(--card)
}
.question-options{display:grid;gap:.85rem}
.option-card:hover,.option-card:has(input:checked){background:color-mix(in srgb, var(--muted) 65%, transparent);border-color:color-mix(in srgb, var(--primary) 30%, var(--border))}
.option-card input{margin-top:.25rem}
.intro-modal{
  border:none;border-radius:1.75rem;
  background:linear-gradient(135deg, color-mix(in srgb, var(--primary) 10%, transparent), color-mix(in srgb, var(--accent) 10%, transparent))
}
.intro-icon{
  width:4rem;height:4rem;border-radius:1rem;display:grid;place-items:center;font-size:1.7rem;
  background:var(--primary);color:#fff
}
.admin-bg{background:color-mix(in srgb, var(--muted) 70%, transparent)}
.admin-login-card{max-width:480px;width:100%;padding:2rem}
.table-modern th,.table-modern td{padding:1rem;border-color:var(--border);white-space:nowrap;background:transparent;color:var(--fg)}
.table-modern thead th{color:var(--secondary);font-weight:700}
.nav-pills .nav-link{border-radius:999px;padding:.75rem 1rem}
.nav-pills .nav-link.active{background:var(--primary)}
.shadow-soft{box-shadow:var(--shadow)}
@media (max-width: 991.98px){
  .hero-image{height:360px}
  .stat-floating{position:static;margin-top:1rem;display:inline-block}
}
