/* Identidad RALM, extraída del CV corporativo. Capa común sobre los estilos existentes. */
:root {
    --ralm-azul-principal: #022759 !important;
    --ralm-azul-secundario: #164578 !important;
    --ralm-turquesa: #2fb5b7 !important;
    --ralm-dorado: #fbc458;
    --ralm-blanco: #fff !important;
    --ralm-gris-claro: #f5f8fc !important;
    --ralm-gris-texto: #47566c !important;
    --primary-color: #022759 !important;
    --secondary-color: #167b7d !important;
    --accent-color: #fbc458 !important;
    --primary: #022759 !important;
    --primary-dark: #011a3c !important;
    --primary-light: #164578 !important;
    --secondary: #2fb5b7 !important;
    --secondary-dark: #167b7d !important;
    --secondary-light: #dff5f4 !important;
    --text-dark: #022759 !important;
    --text-medium: #47566c !important;
    --text-light: #58677a !important;
    --bg-primary: #fff !important;
    --bg-secondary: #f5f8fc !important;
    --bg-tertiary: #edf3f8 !important;
    --border-color: #d9e3ee !important;
    --font-primary: 'Poppins', system-ui, sans-serif !important;
}
body { font-family: 'Poppins', system-ui, sans-serif; }
h1, h2, h3, h4, h5, h6, button, input, select, textarea { font-family: inherit; }
a { text-underline-offset: .2em; }
a:focus-visible, button:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible {
    outline: 3px solid #167b7d;
    outline-offset: 4px;
}
body .ralm-navbar, body .internal-header { border-bottom: 3px solid var(--ralm-turquesa); }
body .ralm-brand-logo, body .brand-logo-img { height: 48px; width: auto; }
body .ralm-hero {
    background: var(--ralm-azul-principal);
    min-height: 760px;
    min-height: min(900px, 100svh);
    padding: 150px 0 80px;
}
body .ralm-hero::before { opacity: .25; }
body .ralm-hero-title {
    font-size: clamp(2.1rem, 3.5vw, 3.4rem);
    font-weight: 600;
    line-height: 1.2;
    letter-spacing: -.035em;
}
body .ralm-hero-highlight { color: #fff; text-decoration: underline; text-decoration-color: var(--ralm-dorado); text-decoration-thickness: 3px; text-underline-offset: .16em; }
body .ralm-hero-subtitle { color: #94e3df; font-size: 1.15rem; }
body .ralm-hero-description { max-width: 54ch; color: #e3edf8; opacity: 1; line-height: 1.8; }
body .ralm-hero-visual { position: relative; transform: none; }
.ralm-brand-cover { position: relative; overflow: hidden; border-radius: 18px; border: 1px solid #517092; box-shadow: 0 24px 60px #00163155; }
.ralm-cover-photo { display: block; width: 100%; height: 440px; object-fit: cover; object-position: 53% center; }
.ralm-cover-caption { position: absolute; inset: 0; background: linear-gradient(180deg, #02275915 15%, #022759f0 100%); display: flex; flex-direction: column; align-items: center; justify-content: flex-end; padding: 28px; }
.ralm-cover-logo { width: 230px; max-width: 85%; height: auto; margin-bottom: -10px; }
.ralm-cover-caption p { color: #fff; text-align: center; line-height: 1.6; font-size: 1rem; margin: 0; padding-top: 16px; border-top: 2px solid var(--ralm-dorado); }
body .ralm-section-title { font-weight: 600; letter-spacing: -.025em; }
body .ralm-section-title::after { background: var(--ralm-dorado); height: 3px; }
body .ralm-btn-primary { background: var(--ralm-dorado); color: #022759; border-color: var(--ralm-dorado); }
body .ralm-btn-primary:hover, body .ralm-btn-primary:focus-visible { background: #ffd480; color: #022759; border-color: #ffd480; }
body .ralm-btn-primary::before { display: none; }
body .btn-primary {
    --bs-btn-bg: #022759; --bs-btn-border-color: #022759;
    --bs-btn-hover-bg: #164578; --bs-btn-hover-border-color: #164578;
    background: #022759; border-color: #022759; color: #fff;
}
body .btn-primary:hover { background: #164578; border-color: #164578; color: #fff; }
body .ralm-sep-badge { background: #dff5f4; color: #09585a; }
body .ralm-hero .ralm-sep-badge { background: #167b7d; color: #fff; }
body .auth-container { background: linear-gradient(135deg, #022759, #164578); }
body .auth-container .sep-badge { background: #dff5f4; color: #09585a; }
/* Un campo obligatorio vacío no es un error antes de que la persona lo use. */
body .auth-container .form-control:invalid:not(:user-invalid):not(:focus):not(.is-invalid) { border-color: #d9e3ee; }
body .auth-container .form-control:user-invalid { border-color: var(--danger-color, #b52b2b); }
body .ralm-footer, body .footer-ralm { background: #022759; border-top: 3px solid var(--ralm-dorado); }
body .footer-logo { display: block; }
.ralm-footer-logo { display: block; width: 210px; height: auto; margin: -28px 0 -18px; }
body .footer-logo-subtitle, body .footer-title, body .footer-mission h6 { color: #fbc458; }
body .ralm-footer a, body .footer-ralm a { overflow-wrap: anywhere; }
body .ralm-footer a:hover, body .footer-ralm a:hover { color: #fbc458; }
body .footer-ralm .footer-contact p, body .footer-ralm .footer-description p { color: #e3edf8; }
body .ralm-whatsapp-float { background: #167b7d; }
body .ralm-whatsapp-float:hover { background: #09585a; }
body .ralm-hero .ralm-btn-outline:focus-visible, body .ralm-footer a:focus-visible { outline-color: #fbc458; }
@media (max-width: 991px) {
    body .ralm-hero { min-height: auto; padding: 120px 0 56px; }
    .ralm-hero-art { margin-top: 36px; }
    .ralm-cover-photo { height: 330px; }
    body .ralm-hero-title { max-width: 24ch; }
    body .ralm-hero .ralm-hero-content { padding-right: 12px; }
}
@media (max-width: 575px) {
    body .ralm-hero-title { font-size: 2rem; }
    body .ralm-brand-logo, body .brand-logo-img { height: 40px; }
    .ralm-cover-photo { height: 280px; }
    .ralm-cover-logo { width: 180px; }
    .ralm-cover-caption { padding: 20px; }
    body .ralm-hero .ralm-btn-primary, body .ralm-hero .ralm-btn-outline { justify-content: center; width: 100%; }
}
@media (prefers-reduced-motion: reduce) {
    html { scroll-behavior: auto !important; }
    *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
    .ralm-fade-in, .fade-in { opacity: 1 !important; transform: none !important; }
}
