/* =========================================================================
   /assets/css/base.css
   REGLAS GENERALES Y FUENTES (SEMÁNTICO)
   ========================================================================= */

/* 1. Carga de Fuentes */
@font-face {
    font-family: 'Raleway';
    font-style: normal;
    font-weight: 300;
    font-display: swap;
    src: url('/assets/fonts/raleway-v37-latin-300.woff2') format('woff2');
}

@font-face {
    font-family: 'Raleway';
    font-style: normal;
    font-weight: 400;
    font-display: swap;
    src: url('/assets/fonts/raleway-v37-latin-regular.woff2') format('woff2');
}

@font-face {
    font-family: 'Raleway';
    font-style: normal;
    font-weight: 500;
    font-display: swap;
    src: url('/assets/fonts/raleway-v37-latin-500.woff2') format('woff2');
}

@font-face {
    font-family: 'Raleway';
    font-style: normal;
    font-weight: 600;
    font-display: swap;
    src: url('/assets/fonts/raleway-v37-latin-600.woff2') format('woff2');
}

@font-face {
    font-family: 'Raleway';
    font-style: normal;
    font-weight: 800;
    font-display: swap;
    src: url('/assets/fonts/raleway-v37-latin-800.woff2') format('woff2');
}

/* 2. Reseteo y Base del Documento */
html {
    background: var(--ez-theme-bg-main); 
    background-attachment: fixed; 
    background-size: cover; 
    background-position: center;
}

body {
    margin: 0; 
    padding: 0; 
    min-height: 100vh;
    background-color: var(--ez-theme-bg-main);
    color: var(--ez-theme-text-main); 
    font-family: var(--ez-font-primary); 
    font-weight: 300; 
    line-height: 1.5;
    -webkit-font-smoothing: antialiased; 
    padding-top: env(safe-area-inset-top); 
    padding-bottom: env(safe-area-inset-bottom);
    overscroll-behavior-y: none;
}

/* =========================================================================
   LOADER EZ CONNECT BRANDED
   ========================================================================= */
.ez-loading-overlay {
    position: fixed;
    inset: 0;
    z-index: 99999;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    background: var(--ez-pal-primary, #5453ED);
    color: var(--ez-raw-white, #FFFFFF);
    font-family: var(--ez-font-primary, sans-serif);
    transition: opacity 0.5s ease, visibility 0.5s ease;
}

.ez-loader-graphic {
    position: relative;
    width: 80px;
    height: 80px;
    display: flex;
    justify-content: center;
    align-items: center;
    margin-bottom: 24px;
}

.ez-isotype {
    width: 40px;
    height: 40px;
    fill: var(--ez-raw-white, #FFFFFF);
    z-index: 2;
}

.ez-spinner-ring {
    position: absolute;
    inset: 0;
    border: 3px solid rgba(var(--ez-raw-white-rgb, 255, 255, 255), 0.15);
    border-top: 3px solid var(--ez-pal-secondary, #F25922);
    border-radius: 50%;
    animation: ezSpin 1s cubic-bezier(0.55, 0.15, 0.45, 0.85) infinite;
    z-index: 1;
}

@keyframes ezSpin {
    0% {
        transform: rotate(0deg);
    }

    100% {
        transform: rotate(360deg);
    }
}

.ez-loader-text-wrapper {
    text-align: center;
    padding: 0 24px;
}

.ez-loader-msg {
    font-size: 14px;
    opacity: 0.82;
    margin: 0 0 6px 0;
    font-weight: 500;
}

.ez-loader-user {
    font-size: 18px;
    font-weight: 800;
    margin: 0;
    letter-spacing: 0.5px;
    word-break: break-word;
}

.ez-fade-out {
    opacity: 0 !important;
    visibility: hidden !important;
    pointer-events: none !important;
}

/* Estructura de Secciones Globales */
.ez-btn-centered { margin-top: 1.5rem; max-width: 250px; margin-left: auto; margin-right: auto; }

/* Componente: Banderas Locales */
.ez-flag-icon {
    width: 24px;
    height: 24px;
    border-radius: 50%;
    object-fit: cover;
    display: inline-block;
    vertical-align: middle;
    /* 🌟 Usamos el token dinámico de blanco en RGB */
    box-shadow: 0 0 0 1px rgba(var(--ez-raw-white-rgb), 0.15); 
}

/* =========================================================================
   CLASES UTILITARIAS SEGURAS (CSP COMPLIANT)
   ========================================================================= */
/* Ocultar elementos de forma segura */
.ez-hidden { 
    display: none !important; 
}

/* Ocultar elementos con transición (para el loader) */
.ez-fade-out {
    opacity: 0 !important;
    pointer-events: none !important;
}

/* Estilo de advertencia para textos */
.ez-text-warning {
    color: var(--ez-pal-warning) !important;
    font-size: 0.85rem !important;
}

.ez-mt-15 { margin-top: 15px !important; }
.ez-mt-30 { margin-top: 30px !important; }

.protected-media {
    -webkit-user-drag: none;
    -webkit-touch-callout: none;
    pointer-events: none;
    user-select: none;
}

/* ==========================================================================
   EZ CONNECT GLOBAL LOADER — BRAND LOCK
   El loader siempre usa colores institucionales ez Connect.
   No debe heredar colores del perfil, template o cliente.
   ========================================================================== 

.ez-loading-overlay {
    background-color: #5453ED;
    color: #FFFFFF;
    font-family: var(--ez-font-primary, "Raleway", sans-serif);
}

.ez-loading-overlay .ez-isotype {
    fill: #FFFFFF;
    color: #FFFFFF;
}

.ez-loading-overlay .ez-spinner-ring {
    border-color: rgba(255, 255, 255, 0.15);
    border-top-color: #F25922;
}

.ez-loading-overlay .ez-loader-msg {
    color: rgba(255, 255, 255, 0.82);
}

.ez-loading-overlay .ez-loader-user {
    color: #FFFFFF;
}*/

/* =========================================================================
   FIN DEL ARCHIVO CORE (CIMENTACIÓN SEMÁNTICA AGGNÓSTICA)
   Nota: Los componentes visuales y maquetación de layouts específicos 
   residen encapsulados en sus respectivas carpetas de /assets/templates/
   ========================================================================= */