/* =============================================================================
   Feeling Innovation - Tema base
   ----------------------------------------------------------------------------
   Fase 1: tokens (variables) + tipografía base + componentes base.
   Las variables viven en :root (globales, sin efecto secundario).
   Las reglas que aplican estilos viven SCOPEADAS bajo .fi-theme, así
   ninguna página que no tenga `class="fi-theme"` en el body se ve afectada.

   Convención de naming:
     --fi-*    → tokens del sistema (color, espacio, radio, sombra, etc.)
     .fi-*     → componentes y utilidades del tema
     .fi-theme → contenedor que activa el tema (se aplica al <body>)

   Cargar SIEMPRE después de los CSS legacy del proyecto para que las
   sobreescrituras funcionen sin recurrir a !important salvo lo estrictamente
   necesario.
============================================================================= */


/* -----------------------------------------------------------------------------
   1. Tokens del sistema
   -------------------------------------------------------------------------- */
:root {
    /* Paleta — Home y Registro usan solo el subset naranja + negro + grises.
       Los azul/morado/rosa/amarillo de la guía están reservados para fases
       posteriores donde tematicemos pantallas internas. */
    --fi-naranja:           #EB5916;
    --fi-naranja-hover:     #C84B0E;
    --fi-naranja-suave:     rgba(235, 89, 22, 0.08);   /* hover de outline */
    --fi-naranja-focus:     rgba(235, 89, 22, 0.25);   /* anillo de focus */

    --fi-negro:             #1A1A1A;     /* texto principal, topbar/footer oscuros si llegan */
    --fi-antracita:         #404040;     /* texto secundario, según guía */
    --fi-gris-700:          #555555;
    --fi-gris-500:          #888888;
    --fi-gris-300:          #C9C9C9;
    --fi-gris-200:          #E5E5E5;     /* bordes sutiles */
    --fi-gris-100:          #F5F5F5;     /* fondo de inputs */
    --fi-gris-50:           #FAFAFA;     /* fondo de sección */
    --fi-blanco:            #FFFFFF;
    --fi-error:             #D14343;
    --fi-exito:             #2E8B57;

    /* Tipografía */
    --fi-font-body:         'Avenir', 'Helvetica Neue', Helvetica, Arial, sans-serif;
    --fi-fw-regular:        400;
    --fi-fw-medium:         500;
    --fi-fw-bold:           700;
    --fi-line-height:       1.55;

    /* Escala de tamaños — pensada para Home/Registro, no para hero pages */
    --fi-fs-xs:             0.75rem;     /* 12px - helper text */
    --fi-fs-sm:             0.875rem;    /* 14px - small */
    --fi-fs-base:           1rem;        /* 16px - body */
    --fi-fs-md:             1.125rem;    /* 18px - h4 / lead */
    --fi-fs-lg:             1.375rem;    /* 22px - h3 */
    --fi-fs-xl:             1.75rem;     /* 28px - h2 */
    --fi-fs-2xl:            2.5rem;      /* 40px - h1 */

    /* Espaciado — múltiplos de 4 */
    --fi-space-1:           0.25rem;     /* 4 */
    --fi-space-2:           0.5rem;      /* 8 */
    --fi-space-3:           0.75rem;     /* 12 */
    --fi-space-4:           1rem;        /* 16 */
    --fi-space-5:           1.5rem;      /* 24 */
    --fi-space-6:           2rem;        /* 32 */
    --fi-space-7:           3rem;        /* 48 */

    /* Radios — formas redondeadas según guía */
    --fi-radius-sm:         0.5rem;      /* 8  - chips, badges */
    --fi-radius-md:         0.75rem;     /* 12 - inputs */
    --fi-radius-lg:         1rem;        /* 16 - cards */
    --fi-radius-pill:       999px;       /* botones tipo pill */

    /* Sombras — sutiles pero visibles, para que la card "flote" sobre el fondo */
    --fi-shadow-card:       0 1px 3px rgba(0, 0, 0, 0.06),
                            0 4px 12px rgba(0, 0, 0, 0.04);
    --fi-shadow-card-hover: 0 4px 12px rgba(0, 0, 0, 0.08),
                            0 8px 24px rgba(0, 0, 0, 0.06);

    /* Transiciones */
    --fi-transition:        150ms ease-in-out;
}


/* -----------------------------------------------------------------------------
   2. Tipografía y reset suave (solo bajo .fi-theme)
   -------------------------------------------------------------------------- */
.fi-theme {
    font-family: var(--fi-font-body);
    font-weight: var(--fi-fw-regular);
    font-size:   var(--fi-fs-base);
    line-height: var(--fi-line-height);
    color:       var(--fi-negro);
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

/* Fondo de página: blanco roto (#FAFAFA) para que la card blanca pura destaque
   suavemente. Especificidad body.fi-theme + !important para vencer a las
   clases legacy de WordPress (`page`, `page-template`, etc.) que pueden
   imponer un background propio. */
body.fi-theme {
    background-color: var(--fi-gris-50) !important;
}

.fi-theme h1, .fi-theme h2, .fi-theme h3,
.fi-theme h4, .fi-theme h5, .fi-theme h6 {
    font-family: var(--fi-font-body);
    font-weight: var(--fi-fw-bold);
    color:       var(--fi-negro);
    line-height: 1.2;
    margin-top:    0;
    margin-bottom: var(--fi-space-4);
}

.fi-theme h1 { font-size: var(--fi-fs-2xl); }
.fi-theme h2 { font-size: var(--fi-fs-xl);  }
.fi-theme h3 { font-size: var(--fi-fs-lg);  }
.fi-theme h4 {
    font-size: var(--fi-fs-md);
    font-weight: var(--fi-fw-medium);
}

/* h3 dentro de la card del form actúa como separador entre bloques temáticos
   (ej. "Datos personales", "Datos de acceso", "Protección de datos").
   Lleva margen superior generoso; salvo si es el primero del bloque. */
.fi-theme .fi-card h3 {
    margin-top: var(--fi-space-6);
    margin-bottom: var(--fi-space-3);
}
.fi-theme .fi-card .form-wrap > h3:first-child {
    margin-top: 0;
}

.fi-theme p {
    margin: 0 0 var(--fi-space-4);
}

.fi-theme a {
    color: var(--fi-antracita);
    text-decoration: none;
    transition: color var(--fi-transition);
}
.fi-theme a:hover,
.fi-theme a:focus {
    color: var(--fi-naranja-hover);
    text-decoration: underline;
}


/* -----------------------------------------------------------------------------
   3. Componentes base — botones (pill, según diagnostico-test)
   -------------------------------------------------------------------------- */

/* Estructura común */
.fi-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: var(--fi-space-2);

    font-family: var(--fi-font-body);
    font-weight: var(--fi-fw-medium);
    font-size:   var(--fi-fs-base);
    line-height: 1;

    padding: var(--fi-space-3) var(--fi-space-6);
    border-radius: var(--fi-radius-pill);
    border: 1px solid transparent;

    cursor: pointer;
    text-decoration: none;
    user-select: none;
    transition: background-color var(--fi-transition),
                border-color    var(--fi-transition),
                color           var(--fi-transition),
                box-shadow      var(--fi-transition);
}

.fi-btn:focus-visible {
    outline: 3px solid var(--fi-naranja-focus);
    outline-offset: 2px;
}

.fi-btn:disabled,
.fi-btn[disabled] {
    opacity: 0.5;
    cursor: not-allowed;
}

/* Primario — naranja relleno */
.fi-btn-primary {
    background-color: var(--fi-naranja);
    border-color:     var(--fi-naranja);
    color:            var(--fi-blanco);
}
.fi-btn-primary:hover:not([disabled]),
.fi-btn-primary:focus:not([disabled]) {
    background-color: var(--fi-naranja-hover);
    border-color:     var(--fi-naranja-hover);
    color:            var(--fi-blanco);
    text-decoration:  none;
}

/* Secundario — outline naranja */
.fi-btn-secondary {
    background-color: transparent;
    border-color:     var(--fi-naranja);
    color:            var(--fi-naranja);
}
.fi-btn-secondary:hover:not([disabled]),
.fi-btn-secondary:focus:not([disabled]) {
    background-color: var(--fi-naranja-suave);
    color:            var(--fi-naranja-hover);
    border-color:     var(--fi-naranja-hover);
    text-decoration:  none;
}

/* Variante full-width (típica en forms de la app de diagnóstico) */
.fi-btn-block {
    display: flex;
    width: 100%;
}


/* -----------------------------------------------------------------------------
   4. Componentes base — campos de formulario
   Estilo "soft" según referencia: fondo gris pálido, borde transparente,
   focus con anillo naranja.

   NOTA SOBRE !important: el CSS legacy del proyecto (webprivada.css / all.css /
   stanpa.css) pinta los inputs como una línea subrayada con !important. Para
   ganar la cascada sin tener que reescribir esos archivos, las propiedades
   visualmente críticas de .fi-input usan también !important. La regla base se
   prefija con .fi-theme para aumentar especificidad (0,2,0 vs el 0,0,1 del
   selector de elemento legacy).
   -------------------------------------------------------------------------- */

.fi-field {
    display: block;
    margin-bottom: var(--fi-space-4);
}

.fi-label {
    display: block;
    font-size: var(--fi-fs-sm);
    font-weight: var(--fi-fw-medium);
    color: var(--fi-antracita);
    margin-bottom: var(--fi-space-2);
}

.fi-theme .fi-input,
.fi-theme .fi-select,
.fi-theme .fi-textarea {
    display: block !important;
    width: 100% !important;
    box-sizing: border-box !important;

    font-family: var(--fi-font-body) !important;
    font-size:   var(--fi-fs-base) !important;
    line-height: 1.4 !important;
    color:       var(--fi-negro) !important;

    padding: var(--fi-space-3) var(--fi-space-4) !important;
    background-color: var(--fi-gris-100) !important;
    border: 1px solid transparent !important;
    border-radius: var(--fi-radius-md) !important;

    /* Margen propio para que filas seguidas tengan respiro sin necesidad
       de envolver cada input en un .fi-field. Si SÍ se envuelve, la regla
       más específica de .fi-field .fi-input lo neutraliza. */
    margin-bottom: var(--fi-space-4);

    transition: background-color var(--fi-transition),
                border-color     var(--fi-transition),
                box-shadow       var(--fi-transition);
}

.fi-theme .fi-field .fi-input,
.fi-theme .fi-field .fi-select,
.fi-theme .fi-field .fi-textarea {
    margin-bottom: 0;   /* el .fi-field aporta el margen cuando envuelve */
}

.fi-theme .fi-input::placeholder,
.fi-theme .fi-textarea::placeholder {
    color: var(--fi-gris-500) !important;
    opacity: 1;   /* Firefox baja la opacidad por defecto */
}

.fi-theme .fi-input:focus,
.fi-theme .fi-select:focus,
.fi-theme .fi-textarea:focus {
    outline: none !important;
    background-color: var(--fi-blanco) !important;
    border-color:     var(--fi-naranja) !important;
    box-shadow:       0 0 0 3px var(--fi-naranja-focus) !important;
}

.fi-theme .fi-input:disabled,
.fi-theme .fi-select:disabled,
.fi-theme .fi-textarea:disabled {
    background-color: var(--fi-gris-200) !important;
    color: var(--fi-gris-500) !important;
    cursor: not-allowed;
}

.fi-help-text {
    display: block;
    font-size: var(--fi-fs-xs);
    color: var(--fi-gris-500);
    margin-top: var(--fi-space-1);
}

/* Mensaje de error — los validators de ASP.NET usan CssClass="error fi-error-text" */
.fi-theme .fi-error-text {
    display: block;
    font-size: var(--fi-fs-sm);
    color: var(--fi-error) !important;
    margin-top: var(--fi-space-1);
}


/* -----------------------------------------------------------------------------
   5. Componentes base — card
   Bajo .fi-theme + !important porque el legacy (dev-page-login-block__form,
   fondoblanco, etc.) impone su propio fondo/sombra/padding.

   `display: flow-root` resuelve el float-collapse: el HTML legacy de Home
   usa `form-wrap two-column column-one` con float, y sin esto la card no
   se expande verticalmente para contener a sus hijos flotados.
   -------------------------------------------------------------------------- */
.fi-theme .fi-card {
    display:          flow-root !important;
    background-color: var(--fi-blanco) !important;
    border-radius:    var(--fi-radius-lg) !important;
    box-shadow:       0 2px 10px rgba(0, 0, 0, 0.06),
                      0 1px 3px  rgba(0, 0, 0, 0.04) !important;
    padding:          var(--fi-space-6) !important;
    border: 1px solid var(--fi-gris-200) !important;
}

.fi-card-title {
    font-size: var(--fi-fs-xl);
    font-weight: var(--fi-fw-bold);
    margin: 0 0 var(--fi-space-2);
}

.fi-card-subtitle {
    font-size: var(--fi-fs-base);
    color: var(--fi-antracita);
    margin: 0 0 var(--fi-space-5);
}

/* Caja informativa secundaria — más densa que .fi-card, sin sombra ni borde.
   Pensada para avisos legales, mensajes de ayuda largos, etc. */
.fi-note {
    background-color: var(--fi-gris-100);
    border-radius:    var(--fi-radius-md);
    padding:          var(--fi-space-4);
    font-size:        var(--fi-fs-xs);
    color:            var(--fi-gris-700);
    line-height:      1.5;
    text-align:       justify;
}
.fi-note strong {
    color: var(--fi-antracita);
}


/* -----------------------------------------------------------------------------
   5b. Checkbox y radio — tinte naranja, espaciado consistente con .fi-field
   -------------------------------------------------------------------------- */

/* Soporta tanto `<span class="fi-checkbox"><input/><label/></span>` (el HTML que
   genera <asp:CheckBox CssClass="fi-checkbox">) como una estructura propia. */
.fi-theme .fi-checkbox,
.fi-theme .fi-radio {
    display: inline-flex;
    align-items: center;
    gap: var(--fi-space-2);
    font-size: var(--fi-fs-sm);
    color: var(--fi-antracita);
}
.fi-theme .fi-checkbox input[type="checkbox"],
.fi-theme .fi-radio input[type="radio"] {
    width: 18px !important;
    height: 18px !important;
    accent-color: var(--fi-naranja) !important;   /* tinta el control con el color de marca */
    margin: 0 !important;
    cursor: pointer;
}
.fi-theme .fi-checkbox label,
.fi-theme .fi-radio label {
    margin: 0;
    cursor: pointer;
}


/* -----------------------------------------------------------------------------
   6. Utilidades mínimas
   -------------------------------------------------------------------------- */
.fi-section {
    background-color: var(--fi-gris-50);
    padding: var(--fi-space-7) var(--fi-space-4);
}

.fi-container {
    max-width: 1200px;
    margin: 0 auto;
    padding: 0 var(--fi-space-4);
}

.fi-container-narrow {
    max-width: 640px;
    margin: 0 auto;
}

.fi-text-muted     { color: var(--fi-gris-500); }
.fi-text-secondary { color: var(--fi-antracita); }
.fi-text-center    { text-align: center; }

.fi-mt-0 { margin-top: 0; }
.fi-mt-2 { margin-top: var(--fi-space-2); }
.fi-mt-4 { margin-top: var(--fi-space-4); }
.fi-mt-5 { margin-top: var(--fi-space-5); }
.fi-mb-0 { margin-bottom: 0; }
.fi-mb-2 { margin-bottom: var(--fi-space-2); }
.fi-mb-4 { margin-bottom: var(--fi-space-4); }
.fi-mb-5 { margin-bottom: var(--fi-space-5); }


/* -----------------------------------------------------------------------------
   7. Adaptaciones para componentes legacy del proyecto
   -------------------------------------------------------------------------- */

/* .w3-bar (de W3.CSS) lo usa el proyecto para agrupar botones. Le damos gap
   consistente sin romper su comportamiento. Aplicado solo bajo .fi-theme. */
.fi-theme .w3-bar {
    display: flex;
    flex-wrap: wrap;
    gap: var(--fi-space-3);
    align-items: center;
}

/* -----------------------------------------------------------------------------
   8. Select2 — tematizado al estilo Feeling
   El widget de select2 sustituye el <select> nativo. Tematizamos su DOM
   propio para que case con .fi-input visualmente.
   -------------------------------------------------------------------------- */

/* Caja "input" del select2 (single) */
.fi-theme .select2-container--default .select2-selection--single {
    height: auto !important;
    min-height: 44px;   /* casa con la altura natural de .fi-input */
    background-color: var(--fi-gris-100) !important;
    border: 1px solid transparent !important;
    border-radius: var(--fi-radius-md) !important;
    padding: var(--fi-space-3) var(--fi-space-4) !important;
    font-family: var(--fi-font-body);
    transition: background-color var(--fi-transition),
                border-color     var(--fi-transition),
                box-shadow       var(--fi-transition);
}

/* Texto seleccionado dentro del control */
.fi-theme .select2-container--default .select2-selection--single .select2-selection__rendered {
    color: var(--fi-negro);
    line-height: 1.4;
    padding-left: 0;
    padding-right: 24px;     /* hueco para la flecha */
}

/* Placeholder cuando no hay selección */
.fi-theme .select2-container--default .select2-selection--single .select2-selection__placeholder {
    color: var(--fi-gris-500);
}

/* Flecha del control */
.fi-theme .select2-container--default .select2-selection--single .select2-selection__arrow {
    height: 100%;
    right: var(--fi-space-3);
    top: 0;
}
.fi-theme .select2-container--default .select2-selection--single .select2-selection__arrow b {
    border-color: var(--fi-gris-500) transparent transparent transparent;
}

/* Estado focus / open */
.fi-theme .select2-container--default.select2-container--focus .select2-selection--single,
.fi-theme .select2-container--default.select2-container--open .select2-selection--single {
    background-color: var(--fi-blanco) !important;
    border-color:     var(--fi-naranja) !important;
    box-shadow:       0 0 0 3px var(--fi-naranja-focus) !important;
}

/* Dropdown desplegable */
.fi-theme + .select2-container .select2-dropdown,
.select2-dropdown {
    border: 1px solid var(--fi-gris-200);
    border-radius: var(--fi-radius-md);
    box-shadow: var(--fi-shadow-card-hover);
    overflow: hidden;
    font-family: var(--fi-font-body);
}

/* Caja de búsqueda dentro del dropdown */
.select2-container--default .select2-search--dropdown .select2-search__field {
    border: 1px solid var(--fi-gris-200);
    border-radius: var(--fi-radius-sm);
    padding: var(--fi-space-2) var(--fi-space-3);
    font-family: var(--fi-font-body);
    font-size: var(--fi-fs-sm);
}
.select2-container--default .select2-search--dropdown .select2-search__field:focus {
    outline: none;
    border-color: var(--fi-naranja);
    box-shadow: 0 0 0 2px var(--fi-naranja-focus);
}

/* Items del listado */
.select2-container--default .select2-results__option {
    padding: var(--fi-space-2) var(--fi-space-4);
    color: var(--fi-negro);
    font-size: var(--fi-fs-sm);
}
.select2-container--default .select2-results__option--highlighted[aria-selected],
.select2-container--default .select2-results__option--highlighted {
    background-color: var(--fi-naranja-suave) !important;
    color: var(--fi-naranja-hover) !important;
}
.select2-container--default .select2-results__option[aria-selected=true] {
    background-color: var(--fi-naranja);
    color: var(--fi-blanco);
}


/* -----------------------------------------------------------------------------
   9. Anchura del contenedor principal
   El legacy `.form-wrapper` se quedaba estrecho (≈530px en la captura del
   usuario) porque algún ancestro (main / form / contenedor de WP) limita el
   ancho aun cuando aplicamos max-width al form-wrapper.

   Estrategia en tres capas:
     a) Liberar a los ancestros directos (main, form) — sin esto cualquier
        max-width:NNNpx no puede crecer porque su padre ya lo recortó.
     b) Aplicar max-width: 1200px al .form-wrapper.
     c) Aplicar max-width: 1100px directamente a la .fi-card. Así, incluso
        si la regla (a) o (b) fallaran por algún CSS legacy más específico,
        la card sigue ampliándose. Doble red de seguridad.
   -------------------------------------------------------------------------- */

/* (a) Liberar ancestros */
.fi-theme main,
.fi-theme form#form1 {
    max-width: none !important;
    width: auto !important;
}

/* (b) Wrapper externo: mismo ancho que la card para que el h1 quede alineado
   con el borde izquierdo de la card (el h1 vive en .form-wrapper pero fuera
   de la card). */
.fi-theme .form-wrapper {
    max-width: 1100px !important;
    width: 100% !important;
    margin-left:  auto !important;
    margin-right: auto !important;
    padding-left:  var(--fi-space-4);
    padding-right: var(--fi-space-4);
    box-sizing: border-box;
}

/* (c) Card: límite más ajustado, centrada. Esta regla ya tiene los estilos
   visuales de la card en la sección 5; aquí solo reforzamos ancho. */
.fi-theme .fi-card {
    max-width: 1100px !important;
    width: 100% !important;
    margin-left:  auto !important;
    margin-right: auto !important;
    box-sizing: border-box;
}


/* -----------------------------------------------------------------------------
   10. Footer renovado
   El footer anterior dependía de clases legacy del tema WordPress (prefooter,
   footer-office, footer-menu, subfooter) con un div de logos institucionales
   con width:900px inline. Todo reemplazado por estructura nueva en 2 niveles:
     - .fi-footer-main   → grid de 3 columnas sobre fondo oscuro
     - .fi-footer-bottom → fila con logos institucionales + copyright

   Se mantiene todo en un mismo bloque de color oscuro, sin corte visual.
   Los logos institucionales (Gobierno + AEI Cluster) son obligación de cluster
   y se integran en la fila inferior sin perder su visibilidad.
   -------------------------------------------------------------------------- */

.fi-theme .fi-footer {
    background-color: var(--fi-negro);
    margin-top: var(--fi-space-7);
}

/* Contenedor centrado reutilizable dentro del footer */
.fi-theme .fi-footer-container {
    max-width: 1100px;
    margin: 0 auto;
    padding: 0 var(--fi-space-4);
    box-sizing: border-box;
}

/* --- Sección principal: 3 columnas --- */
.fi-theme .fi-footer-main {
    padding: var(--fi-space-7) 0;
}
.fi-theme .fi-footer-main > .fi-footer-container {
    display: grid;
    grid-template-columns: 1.2fr 1.5fr 1fr;
    gap: var(--fi-space-7);
    align-items: start;
}

/* Col 1: Identidad / brand */
.fi-theme .fi-footer-brand-name {
    font-size: var(--fi-fs-lg);
    font-weight: var(--fi-fw-bold);
    color: var(--fi-blanco);
    margin: 0 0 var(--fi-space-2);
    line-height: 1.1;
}
.fi-theme .fi-footer-brand-name span {
    color: var(--fi-naranja);
    display: block;
    font-size: var(--fi-fs-xs);
    font-weight: var(--fi-fw-regular);
    letter-spacing: 0.12em;
    text-transform: uppercase;
    margin-top: var(--fi-space-1);
}
.fi-theme .fi-footer-tagline {
    color: var(--fi-gris-500);
    font-size: var(--fi-fs-sm);
    margin: 0;
    line-height: 1.5;
}

/* Títulos de sección dentro del footer */
.fi-theme .fi-footer-title {
    color: var(--fi-blanco);
    font-weight: var(--fi-fw-bold);
    font-size: var(--fi-fs-xs);
    letter-spacing: 0.1em;
    text-transform: uppercase;
    margin: 0 0 var(--fi-space-3);
}

/* Links del footer */
.fi-theme .fi-footer-link {
    display: block;
    color: var(--fi-gris-300) !important;
    font-size: var(--fi-fs-sm);
    text-decoration: none !important;
    margin-bottom: var(--fi-space-2);
    transition: color var(--fi-transition);
}
.fi-theme .fi-footer-link:hover {
    color: var(--fi-naranja) !important;
    text-decoration: none !important;
}

/* --- Fila inferior: logos institucionales + copyright --- */
.fi-theme .fi-footer-bottom {
    border-top: 1px solid rgba(255, 255, 255, 0.07);
    padding: var(--fi-space-4) 0;
    background-color: rgba(0, 0, 0, 0.25);
}
.fi-theme .fi-footer-bottom > .fi-footer-container {
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: var(--fi-space-3);
}
.fi-theme .fi-footer-bottom-logos {
    display: flex;
    align-items: center;
    gap: var(--fi-space-4);
}
.fi-theme .fi-footer-bottom-logos img {
    height: 44px;
    width: auto;
    opacity: 0.88;
    transition: opacity var(--fi-transition);
}
.fi-theme .fi-footer-bottom-logos a:hover img {
    opacity: 1;
}
.fi-theme .fi-footer-bottom-copy {
    color: var(--fi-gris-500);
    font-size: var(--fi-fs-xs);
    margin: 0;
}

/* Nota informativa de cookies técnicas en la columna legal */
.fi-theme .fi-footer-cookies-note {
    color: var(--fi-gris-500);
    font-size: var(--fi-fs-xs);
    line-height: 1.55;
    margin-top: var(--fi-space-4);
    padding-top: var(--fi-space-3);
    border-top: 1px solid rgba(255, 255, 255, 0.07);
}
.fi-theme .fi-footer-cookies-note strong {
    color: var(--fi-gris-300);
    font-weight: var(--fi-fw-medium);
}


/* -----------------------------------------------------------------------------
   11. Flechas en botones (estilo diagnostico-test)
   Una flecha → al final del texto, vía ::after, sin tocar el HTML.
   Aplicado por defecto a .fi-btn-primary y .fi-btn-secondary.
   Para excepciones (ej. "Iniciar sesión..." que ya tiene "..."), usar la
   clase .fi-btn-noarrow en el CssClass.
   -------------------------------------------------------------------------- */
.fi-theme .fi-btn-primary::after,
.fi-theme .fi-btn-secondary::after {
    content: "\2192";              /* → flecha derecha */
    margin-left: var(--fi-space-2);
    font-size: 1.05em;
    line-height: 1;
    transition: transform var(--fi-transition);
}

/* Sutil avance al hacer hover, refuerza el "call to action" */
.fi-theme .fi-btn-primary:hover::after,
.fi-theme .fi-btn-secondary:hover::after {
    transform: translateX(2px);
}

/* Variante sin flecha para botones secundarios "de vuelta" o que ya tienen
   indicador propio en el texto. */
.fi-theme .fi-btn-noarrow::after {
    content: none !important;
}


/* -----------------------------------------------------------------------------
   12. Iconos en H2 de subsección (estilo diagnostico-test)
   Cada h2 puede llevar un <i class="fas fa-..."> dentro, con la utilidad
   .fi-h2-icon para que mantenga el espaciado y color consistentes.

   Uso en HTML:
       <h2><i class="fas fa-sign-in-alt fi-h2-icon"></i> Acceso de Asociados</h2>
   -------------------------------------------------------------------------- */
.fi-theme .fi-h2-icon {
    color: var(--fi-naranja);
    font-size: 0.85em;     /* algo más pequeño que el texto del h2 */
    margin-right: var(--fi-space-2);
    vertical-align: baseline;
}


/* -----------------------------------------------------------------------------
   13. Banner promocional (zona privada)
   El `main.aspx` lleva un banner-imagen (matriz ESG) que se renderiza como
   <a><img></a>. Lo envolvemos en .fi-banner-wrap y lo presentamos con look
   card Feeling: bordes redondeados, sombra suave, hover sutil.

   La imagen está pensada a 840px de ancho. NO la escalamos hacia arriba
   (max-width 100% pero sin width:100%) para que no se pixele. En viewports
   más anchos queda centrada con margen lateral.
   -------------------------------------------------------------------------- */
.fi-theme .fi-banner-wrap {
    margin: var(--fi-space-6) auto;
    text-align: center;     /* centra la imagen si es más estrecha que el wrap */
}
.fi-theme .fi-banner-link {
    display: inline-block;
    max-width: 100%;
    border-radius: var(--fi-radius-lg);
    overflow: hidden;       /* recorta las esquinas redondeadas sobre la imagen */
    box-shadow: var(--fi-shadow-card);
    transition: box-shadow var(--fi-transition),
                transform  var(--fi-transition);
    line-height: 0;         /* evita el espacio fantasma debajo de <img> inline */
}
.fi-theme .fi-banner-link:hover,
.fi-theme .fi-banner-link:focus {
    box-shadow: var(--fi-shadow-card-hover);
    transform: translateY(-1px);
}
.fi-theme .fi-banner-img {
    display: block;
    max-width: 100%;
    height: auto;
}


/* =============================================================================
   14. Responsive
   ----------------------------------------------------------------------------
   Dos breakpoints:
     ≤ 768px  → tablet / mobile horizontal. Apilamos las dos columnas
                del form y reducimos padding de la card.
     ≤ 480px  → mobile vertical. Tipografía algo menor y card más compacta.

   La estrategia es romper los floats del legacy (`form-wrap two-column`) y
   forzar bloque a 100% del ancho.
============================================================================= */

@media (max-width: 768px) {

    .fi-theme .form-wrapper {
        padding-left:  var(--fi-space-3);
        padding-right: var(--fi-space-3);
    }

    .fi-theme .fi-card {
        padding: var(--fi-space-5) var(--fi-space-4) !important;
        border-radius: var(--fi-radius-md) !important;
    }

    /* Las dos columnas del form pasan a stack vertical */
    .fi-theme .form-wrap.two-column,
    .fi-theme .form-wrap.column-one,
    .fi-theme .form-wrap.column-two {
        width: 100% !important;
        float: none !important;
        padding-left: 0 !important;
        padding-right: 0 !important;
        margin-bottom: var(--fi-space-5);
    }
    .fi-theme .form-wrap.two-column:last-child {
        margin-bottom: 0;
    }

    /* Titulares un punto menores para ganar respiro vertical */
    .fi-theme h1 { font-size: 2rem; }       /* 32 */
    .fi-theme h2 { font-size: 1.5rem; }     /* 24 */

    /* La barra de botones agrupa con wrap natural */
    .fi-theme .w3-bar {
        gap: var(--fi-space-2);
    }
}

@media (max-width: 480px) {

    .fi-theme .fi-card {
        padding: var(--fi-space-4) var(--fi-space-3) !important;
    }

    .fi-theme h1 { font-size: 1.75rem; }    /* 28 */
    .fi-theme h2 { font-size: 1.25rem; }    /* 20 */

    /* Inputs algo menos altos para que entren más en pantalla */
    .fi-theme .fi-input,
    .fi-theme .fi-select,
    .fi-theme .fi-textarea {
        padding: var(--fi-space-2) var(--fi-space-3) !important;
        margin-bottom: var(--fi-space-3);
    }

    /* En 480px los botones de la w3-bar se ponen full-width apilados
       para no quedarse cortos por la pantalla */
    .fi-theme .w3-bar {
        flex-direction: column;
        align-items: stretch;
    }
    .fi-theme .w3-bar .fi-btn {
        width: 100%;
    }
}
