:root {
  --brand-green: #4f8f72;
  --brand-blue: #35536f;
  --brand-teal: #4e858a;
  --brand-light-green: #78bd7d;
  --brand-pale-green: #c3e6c5;
  --purple: var(--brand-green);
  --purple-2: var(--brand-blue);
  --purple2: var(--brand-blue);
  --gold: var(--brand-light-green);
  --gold-dark: #3f755f;
  --ice: #eef3f7;
  --ink: #233342;
  --muted: #667480;
  --line: #d7e2de;
  --shadow: 0 18px 48px rgba(46, 96, 72, .15);
  --gnb-green: var(--brand-green);
  --gnb-green-light: var(--brand-teal);
  --gnb-lime: var(--brand-light-green);
  --gnb-olive: #3f755f;
  --gnb-mint: #e2f1e6;
  --gnb-pale: #eef3f7;
  --gnb-charcoal: #233342;
}

body { background-color: var(--gnb-pale); color: var(--gnb-charcoal); }

/* Identidad principal: azul petróleo y verde menta. */
.btn-primary,
.nav-cta,
.profile-form button,
.form-submit,
.course-action,
.portal-btn:not(.gold),
.profile-return-fab,
.simulation-action,
.uses-cta {
  background: var(--gnb-green) !important;
  color: #fff !important;
}

.btn-primary:hover,
.nav-cta:hover,
.profile-form button:hover,
.form-submit:hover,
.course-action:hover,
.simulation-action:hover {
  background: #376a52 !important;
}

.btn-outline,
.nav-login,
.course-action.secondary {
  border-color: rgba(61, 94, 126, .3) !important;
  color: var(--gnb-green) !important;
}

.btn-outline:hover,
.nav-login:hover,
.course-action.secondary:hover {
  background: var(--gnb-mint) !important;
}

.hero,
.home-values,
.cta-card,
.simulator,
.product-hero,
.profile-hero,
.profile-page-hero,
.auth-overlay,
.welcome-card,
.help-card,
.side-progress,
.profile-simulator,
.requirements-card {
  background-color: var(--brand-blue) !important;
}

.product-hero,
.profile-hero,
.profile-page-hero,
.welcome-card,
.profile-simulator {
  background-image: linear-gradient(125deg, #263f57, #35536f 68%, #4e858a) !important;
}

.auth-overlay {
  background: linear-gradient(145deg, rgba(34, 59, 82, .93), rgba(47, 78, 105, .9) 65%, rgba(49, 105, 83, .74)) !important;
}

.eyebrow,
.section-label,
.welcome-label,
.portal-section-head span,
.help-card > span,
.auth-kicker {
  color: var(--gnb-olive) !important;
}

.profile-hero .eyebrow,
.profile-page-hero .eyebrow,
.welcome-label,
.help-card > span,
.auth-kicker {
  color: #c3e6c5 !important;
}

::selection { background: rgba(130, 198, 160, .45); color: #2c4358; }

/* Intranet y estados de capacitación. */
.side-nav > a:hover { background: #edf5f0 !important; }
.side-nav > a.active { background: #dceee1 !important; }
.stat-icon.purple { background: #dceee1 !important; color: var(--gnb-green) !important; }
.stat-icon.gold { background: #dcefdc !important; color: var(--gnb-olive) !important; }
.book-icon,
.portal-btn.gold,
.help-icon { background: var(--gnb-lime) !important; color: #2c4358 !important; }
.progress-track i,
.course-progress em { background: var(--gnb-green) !important; }
.side-progress .progress-track i { background: var(--gnb-lime) !important; }
.side-progress p,
.welcome-copy p,
.help-card p { color: #e5f1eb !important; }

.purple-cover {
  background: linear-gradient(135deg, #376a52, #4f8f72) !important;
}
.gold-cover {
  background: linear-gradient(135deg, #2c465e, #426786) !important;
}
.blue-cover {
  background: linear-gradient(135deg, #4f8f72, #4e858a) !important;
}
.course-tag { background: var(--gnb-lime) !important; color: #2c4358 !important; }
.course-tag.done { background: #d8f0df !important; color: #3d775f !important; }
.course-tag.new { background: #fff !important; color: var(--gnb-green) !important; }
.file-icon.video { background: #dceee1 !important; color: var(--gnb-green) !important; }

/* Formularios y superficies claras. */
input:focus,
select:focus,
textarea:focus { border-color: var(--gnb-green-light) !important; outline-color: rgba(103, 165, 168, .18); }
.form-profile-banner,
.profile-form-head,
.simulator-result,
.profile-simulator-card { background-color: #edf5f0 !important; }

/* Contraste del acceso para cambiar de perfil sobre fondos oscuros. */
.profile-return-fab {
  border-color: rgba(255,255,255,.35) !important;
  box-shadow: 0 18px 44px rgba(25,46,66,.28) !important;
}
.profile-return-fab small { color: #e4f4ec !important; font-size: 13px !important; }
.profile-return-fab strong { color: #fff !important; font-size: 18px !important; }
.profile-simulator-copy p { color: #edf8f1 !important; }

@media (max-width: 760px) {
  .main-nav { background: #fff; }
}

.role-preview i {
  background: #2b4b68 !important;
  color: #a7e0a7 !important;
  border: 1px solid rgba(255,255,255,.3);
  font-size: 12px !important;
  font-weight: 800 !important;
  box-shadow: 0 8px 18px rgba(20,45,65,.25);
}

.policy-grid article > span {
  width: 48px !important;
  height: 48px !important;
  border-radius: 13px !important;
  border: 1px solid rgba(255,255,255,.28);
  background: #2b4b68 !important;
  color: #a7e0a7 !important;
  font-size: 12px !important;
  font-weight: 800 !important;
  box-shadow: 0 8px 18px rgba(30,61,84,.2);
}

/* Lenguaje visual amplio inspirado en la sección Proceso de libranza. */
:root { --brand-accent-green: #8fd091; }

body { font-size: 17px; }
.main-nav a,
.product-nav nav a { font-size: 15px !important; }
.btn,
.product-btn,
.portal-btn,
.auth-submit { font-size: 14px !important; }

.home-intro,
.standalone-profiles,
.contact-screen,
.product-benefits,
.other-profiles {
  background-color: var(--brand-blue) !important;
  background-image: radial-gradient(circle at 0 100%, rgba(78,133,138,.2), transparent 34%), linear-gradient(135deg,#2d4963,#35536f) !important;
  color: #fff;
}

.home-intro-copy h1,
.standalone-profiles .section-heading h1,
.contact-copy h1,
.product-benefits .section-title h2,
.other-profiles h2 {
  color: #fff !important;
}

.home-intro-copy h1 { font-size: clamp(58px,6.2vw,86px) !important; line-height: 1.03 !important; }
.home-intro-copy h1 em { color: var(--brand-accent-green) !important; }
.standalone-profiles .section-heading h1 { font-size: clamp(46px,5.2vw,68px) !important; line-height: 1.08 !important; }
.contact-copy h1 { font-size: clamp(50px,5.5vw,72px) !important; }
.product-hero h1 { font-size: clamp(54px,5.8vw,78px) !important; }

.section-heading h2,
.about-copy h2,
.sim-copy h2,
.uses-copy h2,
.requirements-card h2,
.steps-card h2,
.request-copy h2,
.profile-simulator-copy h2,
.portal-section-head h2 {
  font-size: clamp(38px,4.4vw,58px) !important;
  line-height: 1.1 !important;
}

.home-intro-copy > p,
.standalone-profiles .section-heading > p,
.contact-copy p,
.product-benefits .section-title p,
.other-profiles-copy {
  color: #dce7ed !important;
  font-size: 18px !important;
  line-height: 1.75 !important;
}

.eyebrow,
.product-kicker,
.section-label,
.product-benefits .section-title > span,
.other-profiles > div > div:first-child > span {
  color: var(--brand-accent-green) !important;
  font-size: 11px !important;
  letter-spacing: .16em !important;
}

.home-intro .btn-primary,
.home-values .btn-gold,
.product-hero .product-btn.gold,
.profile-simulator .product-btn,
.contact-screen .btn-primary {
  background: var(--brand-accent-green) !important;
  color: #29435b !important;
  font-weight: 800 !important;
}

.home-intro .btn-primary:hover,
.home-values .btn-gold:hover,
.product-hero .product-btn.gold:hover,
.profile-simulator .product-btn:hover,
.contact-screen .btn-primary:hover {
  background: #a5dda5 !important;
}

.home-trust strong,
.contact-copy > a { color: var(--brand-accent-green) !important; }
.home-trust small { color: #cedce4 !important; }
.home-trust > span { background: rgba(143,208,145,.18) !important; color: var(--brand-accent-green) !important; }

/* Contraste reforzado para acciones y mensajes sobre el hero azul. */
.home-intro .text-link,
.home-intro .home-trust strong { color: #fff !important; }
.home-intro .text-link:hover { color: #d2f0cf !important; }
.home-intro .home-trust small { color: #eef5f7 !important; font-size: 13px !important; }
.home-intro .home-trust > span {
  background: #d2f0cf !important;
  color: #29435b !important;
}
.home-intro .eyebrow,
.product-benefits .section-title > span,
.other-profiles > div > div:first-child > span,
.home-values .eyebrow,
.values-grid article > span { color: #d2f0cf !important; }

.product-benefits .benefit-item {
  min-height: 250px;
  border-color: rgba(255,255,255,.2) !important;
  background: rgba(255,255,255,.075) !important;
  color: #fff;
  backdrop-filter: blur(9px);
}
.product-benefits .benefit-item:hover { border-color: var(--brand-accent-green) !important; background: rgba(255,255,255,.11) !important; }
.product-benefits .benefit-item h3 { color: #fff !important; font-size: 19px !important; }
.product-benefits .benefit-item p { color: #d9e5eb !important; font-size: 14px !important; }
.product-benefits .benefit-item > span { background: rgba(143,208,145,.18) !important; color: var(--brand-accent-green) !important; }

.standalone-profiles .profile-card {
  border-color: rgba(255,255,255,.24) !important;
  box-shadow: 0 22px 48px rgba(18,40,59,.2);
}
.standalone-profiles .profile-card:hover { border-color: var(--brand-accent-green) !important; }
.standalone-profiles .profile-card strong { font-size: 23px !important; }
.standalone-profiles .profile-link { font-size: 13px !important; }

.other-profile-link {
  min-height: 132px !important;
  border-color: rgba(255,255,255,.22) !important;
  background: rgba(255,255,255,.96) !important;
}
.other-profile-link strong { font-size: 17px !important; }
.other-profile-link small { color: var(--brand-green) !important; font-size: 10px !important; }

.values-copy h2 { font-size: clamp(48px,5.5vw,74px) !important; line-height: 1.08 !important; }
.values-copy > p { font-size: 19px !important; line-height: 1.75 !important; }
.values-grid article { min-height: 220px !important; padding: 32px !important; border-color: rgba(255,255,255,.2) !important; }
.values-grid article > span { color: var(--brand-accent-green) !important; font-size: 12px !important; }
.values-grid h3 { font-size: 21px !important; }
.values-grid p { color: #d9e5eb !important; font-size: 14px !important; }

.uses-copy > p,
.request-copy p,
.section-title p,
.profile-simulator-copy p { font-size: 17px !important; }
.uses-grid .use-card { min-height: 225px !important; }
.uses-grid .use-card strong { font-size: 18px !important; }
.uses-grid .use-card p { font-size: 13px !important; }
.uses-grid .use-number { color: var(--brand-green) !important; font-size: 11px !important; }

.profile-form label,
.auth-form label { font-size: 13px !important; }
.profile-form input,
.auth-form input { font-size: 16px !important; }
.profile-form button { font-size: 14px !important; }

@media (max-width: 760px) {
  body { font-size: 16px; }
  .home-intro-copy h1 { font-size: 48px !important; }
  .product-hero h1 { font-size: 46px !important; }
  .standalone-profiles .section-heading h1 { font-size: 42px !important; }
  .section-heading h2,
  .uses-copy h2,
  .request-copy h2,
  .profile-simulator-copy h2 { font-size: 36px !important; }
  .home-intro-copy > p,
  .standalone-profiles .section-heading > p,
  .contact-copy p { font-size: 16px !important; }
}

/* Contraste reforzado para acciones y mensajes sobre el inicio oscuro. */
.home-intro .btn-primary {
  background: #b8e3b9 !important;
  color: #20384d !important;
  box-shadow: 0 12px 28px rgba(12, 31, 47, .22) !important;
}
.home-intro .btn-primary:hover {
  background: #d2efd3 !important;
  color: #172f43 !important;
}
.home-intro .text-link,
.home-intro .text-link span {
  color: #fff !important;
}
.home-intro .text-link:hover { color: #d2efd3 !important; }
.home-trust strong { color: #c9edca !important; }
.home-trust small { color: #f2f7f9 !important; }
.home-trust > span {
  background: rgba(255,255,255,.16) !important;
  color: #c9edca !important;
  border: 1px solid rgba(201,237,202,.3);
}

/* Escala tipográfica accesible para textos auxiliares en todas las vistas. */
.auth-back { font-size: 18px !important; }
.protected-label,
.auth-eyebrow { font-size: 14px !important; }
.auth-subtitle { font-size: 16px !important; }
.role-preview strong { font-size: 15px !important; }
.role-preview small { font-size: 13px !important; }
.auth-form label { font-size: 14px !important; }
.auth-help,
.auth-rule { font-size: 13px !important; }
.auth-secondary { font-size: 13px !important; }
.auth-error { font-size: 13px !important; }

.eyebrow,
.product-kicker,
.section-label,
.visual-label,
.mini-label { font-size: 13px !important; }
.home-photo-label { font-size: 12px !important; }
.home-photo-card strong { font-size: 14px !important; }
.home-photo-card small { font-size: 12px !important; }
.story-stats span { font-size: 12px !important; }
.compact-footer > .container { font-size: 13px !important; }
.contact-form label,
.application-card form > label,
.application-card .form-row label { font-size: 13px !important; }
.secure-note { font-size: 12px !important; }

.back-link { font-size: 14px !important; }
.hero-points { font-size: 13px !important; }
.visual-note p,
.visual-note small { font-size: 12px !important; }
.form-profile-badge small,
.request-security small { font-size: 12px !important; }
.other-profile-link,
.other-profile-link small { font-size: 12px !important; }
.simulator-field label { font-size: 13px !important; }
.simulator-limits,
.simulator-result small,
.simulator-result p,
.simulator-disclaimer { font-size: 12px !important; }
.product-footer p,
.product-footer a,
.product-footer span { font-size: 12px !important; }
