:root {
  --cp-blue: #0F3286;
  --cp-green: #2C9E2F;
  --cp-blue-light: #3B6FC4;
  --cp-green-light: #7ED957;
  --cp-yellow: #FFC107;
  --cp-gray-dark: #333333;
  --cp-gray: #777777;
  --cp-gray-light: #F2F2F2;
  --cp-white: #FFFFFF;
  --primary: #0F3286;
  --success: #2C9E2F;
  --warning: #FFC107;
  --secondary: #777777;
  --info: #3B6FC4;
}

body { color: var(--cp-gray-dark); }
a { color: var(--cp-blue); }
a:hover, a:focus { color: var(--cp-blue-light); }
.text-primary { color: var(--cp-blue) !important; }
.text-success { color: var(--cp-green) !important; }
.text-info { color: var(--cp-blue-light) !important; }
.text-warning { color: #8a6700 !important; }
.text-secondary, .text-muted { color: var(--cp-gray) !important; }
.bg-primary, .badge-primary { background-color: var(--cp-blue) !important; }
.bg-success, .badge-success { background-color: var(--cp-green) !important; }
.bg-info, .badge-info { background-color: var(--cp-blue-light) !important; }
.bg-warning, .badge-warning { background-color: var(--cp-yellow) !important; color: var(--cp-gray-dark) !important; }
.bg-secondary, .badge-secondary { background-color: var(--cp-gray) !important; }

.btn-primary { background-color: var(--cp-blue); border-color: var(--cp-blue); }
.btn-primary:hover, .btn-primary:focus, .btn-primary:not(:disabled):not(.disabled):active { background-color: var(--cp-blue-light); border-color: var(--cp-blue-light); }
.btn-success { background-color: var(--cp-green); border-color: var(--cp-green); }
.btn-success:hover, .btn-success:focus, .btn-success:not(:disabled):not(.disabled):active { background-color: var(--cp-green-light); border-color: var(--cp-green-light); color: var(--cp-gray-dark); }
.btn-info { background-color: var(--cp-blue-light); border-color: var(--cp-blue-light); }
.btn-warning { background-color: var(--cp-yellow); border-color: var(--cp-yellow); color: var(--cp-gray-dark); }
.btn-secondary { background-color: var(--cp-gray); border-color: var(--cp-gray); }
.btn-outline-primary { color: var(--cp-blue); border-color: var(--cp-blue); }
.btn-outline-primary:hover { color: var(--cp-white); background-color: var(--cp-blue); border-color: var(--cp-blue); }
.btn-outline-success { color: var(--cp-green); border-color: var(--cp-green); }
.btn-outline-success:hover { color: var(--cp-white); background-color: var(--cp-green); border-color: var(--cp-green); }
.btn-outline-info { color: var(--cp-blue-light); border-color: var(--cp-blue-light); }
.btn-outline-info:hover { color: var(--cp-white); background-color: var(--cp-blue-light); border-color: var(--cp-blue-light); }

.form-control:focus, .custom-select:focus, .select2-container--focus .select2-selection {
  border-color: var(--cp-blue-light) !important;
  box-shadow: 0 0 0 .2rem rgba(59, 111, 196, .2) !important;
}
.custom-control-input:checked ~ .custom-control-label::before { background-color: var(--cp-blue); border-color: var(--cp-blue); }
.page-item.active .page-link { background-color: var(--cp-blue); border-color: var(--cp-blue); }
.page-link { color: var(--cp-blue); }
.dropdown-item.active, .dropdown-item:active { background-color: var(--cp-blue); }
.nav-pills .nav-link.active, .nav-pills .show > .nav-link { background-color: var(--cp-blue); }
.progress-bar { background-color: var(--cp-blue); }

.admin-shell { background-color: var(--cp-gray-light); color: var(--cp-gray-dark); }
.admin-shell .nav-top-menu { background-color: var(--cp-gray-dark); }
.admin-shell .nav-contextual-container { background-color: var(--cp-gray-dark); }
.admin-shell .title-header { color: var(--cp-blue); border-bottom-color: var(--cp-blue-light); }
.admin-shell .subtitle-header { color: var(--cp-blue); background-color: rgba(59, 111, 196, .12); }
.admin-shell .field-label { color: var(--cp-green); }
.admin-shell #v-pills-tab .active { background-color: var(--cp-blue); border-color: var(--cp-blue); }
.admin-shell .nav-pills a.active:hover { background-color: var(--cp-blue-light); }
.admin-shell .box-user-menu { background-color: var(--cp-gray-dark); }
.admin-shell .box-user-menu a:hover { background-color: var(--cp-gray); color: var(--cp-white); }
.admin-shell .wizard-step-indicator.is-active span,
.admin-shell .wizard-step-indicator.is-complete span { background: var(--cp-blue); }
.admin-shell .wizard-step-indicator.is-active,
.admin-shell .wizard-heading > span,
.admin-shell .csv-drop-zone > i,
.admin-shell .wizard-summary-card strong { color: var(--cp-blue); }
.admin-shell .wizard-heading > span { background: rgba(59, 111, 196, .12); }
.admin-shell .wizard-progress::before { background: var(--cp-gray-light); }
.admin-shell .wizard-step-indicator { color: var(--cp-gray); }
.admin-shell .wizard-step-indicator span { background: var(--cp-gray-light); }
.admin-shell .wizard-section-box,
.admin-shell .csv-drop-zone,
.admin-shell .wizard-summary-card { background: var(--cp-white); border-color: var(--cp-gray-light); }
.admin-shell .wizard-count { color: var(--cp-gray-dark); }
.admin-shell .csv-drop-zone { border-color: var(--cp-blue-light); }
.admin-shell .csv-drop-zone.is-dragging { border-color: var(--cp-blue); background: rgba(59, 111, 196, .08); }
.admin-shell .cliente-step.is-active .cliente-step-number { background: var(--cp-blue); }
.admin-shell .cliente-step.is-complete .cliente-step-number { background: var(--cp-green); }
.admin-shell .crm-sortable-ghost { background: rgba(126, 217, 87, .18); border-color: var(--cp-green); }

.login-box .auth-panel .form-control:focus { border-color: var(--cp-blue-light); box-shadow: 0 0 0 .2rem rgba(59, 111, 196, .2); }
.login-box .auth-panel label { color: var(--cp-green-light) !important; }

::selection { background: var(--cp-green-light); color: var(--cp-gray-dark); }
:focus-visible { outline: 3px solid var(--cp-yellow); outline-offset: 2px; }

/* Identidad del sitio público: los nombres históricos de variables se conservan por compatibilidad. */
.website-body {
  --web-green: var(--cp-blue);
  --web-green-2: var(--cp-blue-light);
  --web-lime: var(--cp-green);
  --web-sand: var(--cp-gray-light);
  --web-ink: var(--cp-gray-dark);
  --web-muted: var(--cp-gray);
  --web-shadow: 0 18px 45px rgba(15, 50, 134, .14);
}
.website-body .nav-top-menu {
  position: fixed;
  top: 0;
  right: 0;
  left: 0;
  width: 100%;
  background: transparent;
  box-shadow: none;
}
.website-body .nav-top-menu.is-scrolled {
  background: rgba(51, 51, 51, .97);
  box-shadow: 0 8px 30px rgba(51, 51, 51, .22);
  backdrop-filter: blur(10px);
}
.website-body .nav-top-menu .nav-link:hover, .website-body .nav-top-menu .nav-link:focus { color: var(--cp-green-light) !important; }
.website-body .website-hero { min-height: 100vh; }
.website-body .website-hero-image { transform: translate3d(0, 0, 0) scale(1.08); transform-origin: center; will-change: transform; }
.website-body .website-hero-overlay { background: linear-gradient(90deg, rgba(33,33,33,.94) 0%, rgba(51,51,51,.78) 50%, rgba(51,51,51,.20) 100%); }
/* .website-body .website-hero-content .col-lg-8 {
  padding: clamp(1.25rem, 3vw, 2.25rem);
  background: linear-gradient(90deg, rgba(51,51,51,.36), rgba(51,51,51,.08));
  border: 1px solid rgba(255,255,255,.08);
  border-radius: 1rem;
  backdrop-filter: blur(3px);
} */
.website-body .website-eyebrow, .website-body .website-trust-row i { color: var(--cp-green-light); }
.website-body .website-btn-primary { background: var(--cp-green); border-color: var(--cp-green); color: var(--cp-white) !important; }
.website-body .website-btn-primary:hover { background: var(--cp-green-light); border-color: var(--cp-green-light); color: var(--cp-gray-dark) !important; }
.website-body .website-project-badge { background: var(--cp-green); color: var(--cp-white); }
.website-body .website-project-number { color: var(--cp-gray); }
.website-body .website-step { background: var(--cp-white); border-color: var(--cp-gray-light); }
.website-body .website-step-number { color: var(--cp-gray-light); }
.website-body .website-step > i { background: var(--cp-blue); color: var(--cp-green-light); }
.website-body .website-quote-card.featured { background: var(--cp-green); color: var(--cp-white); }
.website-body .website-quote-card { backdrop-filter: blur(5px); }
.website-body .website-quote-card.featured > i, .website-body .website-quote-card.featured p { color: var(--cp-white); }
.website-body .website-quote-card > i { color: var(--cp-green-light); }
.website-body .website-faq { background: var(--cp-white); }
.website-body .website-faq-item { border-bottom-color: var(--cp-gray-light); }
.website-body .website-testimonials,
.website-body .website-contact-panel,
.website-body .website-footer { background: var(--cp-gray-dark); }
.website-body .website-footer-main a, .website-body .website-footer-bottom a { color: var(--cp-green-light); }

@media (max-width: 991.98px) {
  .website-body .nav-top-menu .navbar-collapse.show,
  .website-body .nav-top-menu .navbar-collapse.collapsing {
    margin: .35rem -.75rem -.35rem;
    padding: .75rem;
    background: rgba(51, 51, 51, .97);
    border-radius: .5rem;
  }
  .website-body .website-hero-overlay { background: linear-gradient(90deg, rgba(33,33,33,.95), rgba(51,51,51,.78)); }
}

@media (prefers-reduced-motion: reduce) {
  .website-body .website-hero-image { transform: none !important; will-change: auto; }
}
