﻿header .header-logo svg path {
    fill: #333;
    animation: col 5s linear infinite;
}

@keyframes col {
    0%,71% {
        fill: #333
    }

    72% {
        fill: #999
    }

    75%,100% {
        fill: #333
    }
}

.menu-item-top {
    padding: 0px 35px !important;
}

.link-sostenibilidad a {
    border: outset 1px #0F472F;
    background: #0F472F;
    color: white !important;
    border-radius: 8px;
    padding: 8px 2px;
    /*    float:left;
*/ margin-top: 30px;
    display: grid;
    text-align: center;
    width: 100px;
    box-shadow: 0 8px 8px 0 rgba(0,0,0,0.2), 0 6px 6px 0 rgba(0,0,0,0.19);
    transition-duration: 0.4s;
}

    .link-sostenibilidad a:hover {
        box-shadow: 0 12px 12px 0 rgba(0,0,0,0.3), 0 12px 12px 0 rgba(0,0,0,0.3);
        border: inset 1px #0F472F;
    }

.fis-zone {
    /*background-image: url(/feelinginnovationbystanpa/img/logo-fis-2021-30pct.png);*/
    background-position: right 50px;
    background-repeat: no-repeat;
}
/* FORMULARIOS */
.form-wrapper {
    margin: 30px auto;
    min-width: 840px;
    width: 840px;
    /*background:#fff;*/
}

    .form-wrapper h1 {
        color: #FF6117;
        font-family: Avenir;
        font-size: 40px;
        line-height: 56px;
        font-weight: 200;
        margin-bottom: 1.3rem;
        letter-spacing: -.38px;
    }

    .form-wrapper h2 {
        color: #FF6117;
        font-family: Avenir;
        font-size: 24px;
        line-height: 56px;
        font-weight: 200;
        margin-bottom: 0rem;
        letter-spacing: -.38px;
    }

    .form-wrapper a {
        color: #555;
        text-decoration: underline;
    }

        .form-wrapper a:hover {
            color: #FF6117;
            text-decoration: underline;
        }

.two-column {
    width: 46%;
    float: left;
}

.column-one {
}

.column-two {
}

.paginate_button {
    float: right;
    margin: 3px;
}

table.radioareas input {
    margin: 0px 5px;
    padding: 0px 5px;
}

.radioareas input[type=checkbox], input[type=radio] {
    display: none;
}

.radioareas label {
    display: inline;
    float: left;
    color: #000;
    cursor: pointer;
    text-indent: 20px;
    white-space: nowrap;
}

.radioareas input[type=checkbox] + label {
    display: block;
    width: 1em;
    height: 1em;
    border: 0.0625em solid #d70;
    border-radius: 0.25em;
    background: #FF6117;
    background-image: -moz-linear-gradient(rgb(240,240,240),rgb(255,128,0));
    background-image: -ms-linear-gradient(rgb(240,240,240),rgb(255,128,0));
    background-image: -o-linear-gradient(rgb(240,240,240),rgb(255,128,0));
    background-image: -webkit-linear-gradient(rgb(240,240,240),rgb(255,128,0));
    background-image: linear-gradient(rgb(240,240,240),rgb(255,128,0));
    vertical-align: middle;
    line-height: 1em;
    font-size: 14px;
}

.radioareas input[type=checkbox]:checked + label::before {
    content: "\2714";
    color: #fff;
    height: 1em;
    line-height: 1.1em;
    width: 1em;
    font-weight: 900;
    margin-right: 6px;
    margin-left: -20px;
}

.radioareas input[type=radio] + label {
    display: block;
    width: 1.4em;
    height: 1.4em;
    border: 0.0625em solid #d70;
    border-radius: 1em;
    background: #FF6117;
    background-image: -moz-linear-gradient(rgb(240,240,240),rgb(255,128,0));
    background-image: -ms-linear-gradient(rgb(240,240,240),rgb(255,128,0));
    background-image: -o-linear-gradient(rgb(240,240,240),rgb(255,128,0));
    background-image: -webkit-linear-gradient(rgb(240,240,240),rgb(255,128,0));
    background-image: linear-gradient(rgb(240,240,240),rgb(255,128,0));
    vertical-align: middle;
    line-height: 1em;
    font-size: 14px;
    color: #d70;
}

.radioareas label {
    color: red;
    padding-left: 4px;
}



.radioareas input[type=radio]:checked + label::before {
    content: "\2716";
    color: white;
    display: inline;
    width: 1em;
    height: 1em;
    margin-right: 10px;
    margin-top: 16px;
    margin-left: -20px;
}


.paginacion a {
    background: white;
    border: solid 1px #ccc;
    padding: 0px 5px;
    color: #999;
    text-decoration: none;
}

    .paginacion a:hover {
        background: #ccc;
        border: solid 1px #999;
        padding: 0px 5px;
        color: #999;
        text-decoration: none;
    }

.seleccionada {
    background: #FF6117;
    border: solid 1px #d70;
    padding: 0px 5px;
    color: white;
}

span.like, a.like {
    color: #FF6117;
}

span.pregunta {
    font-size: 120%;
    color: #d70;
    font-weight: 600;
    border-top: solid 1px #ccc;
    float: left;
    width: 100%;
}

span.respuesta {
    clear: both;
    float: left;
    margin: 10px 0px;
    /*border-bottom:dotted 1px #ccc;*/
    font-size: 90%;
    width: 100%;
}

div.votacion {
    clear: both;
    text-align: right;
}

.form-wrap {
    margin: 10px 2% !important;
}

    .form-wrap input[type=date], .form-wrap input[type=text], .form-wrap input[type=password], .form-wrap textarea, .form-wrap select, .form-textbox {
        /*padding: 20px 10px;
    border: none;
    border-bottom:solid 1px #000;
    
    width: 100%;
    margin-bottom: 10px;
    font-family: "source sans pro";
    font-size: 16px;*/
        font-size: 100%;
        line-height: 1.15;
        margin: 0;
        padding: 10px 0;
        border: none;
        width: 100%;
        margin-bottom: 10px;
        border-bottom: 1px solid #545454;
        font-family: "Source Sans Pro",sans-serif;
        max-height: 48px;
        min-height: 48px;
        background-color: #fff;
    }

    .form-wrap textarea {
        max-height: unset;
        min-height: unset;
    }

        .form-wrap input[type=date]:focus, .form-wrap input[type=text]:focus, .form-wrap input[type=password]:focus, .form-wrap textarea:focus, .form-wrap select:focus, .form-textbox:focus {
            background-color: #ffe;
        }

.col75 {
    width: 74%;
    float: left;
    margin-right: 1%;
}

.col66 {
    width: 65%;
    float: left;
    margin-right: 1%;
}

.col50 {
    width: 49%;
    float: left;
    margin-right: 1%;
}

.col33 {
    width: 32%;
    float: left;
    margin-right: 1%;
}

.col25 {
    width: 24%;
    float: left;
    margin-right: 1%;
}

.special-field {
    background-color: #f0f0f0;
    padding: 5px 10px;
    border: solid 1px #d0d0d0;
}
/* WebKit browsers */
/*.form-wrap input::-webkit-input-placeholder { 
        color: #666;
        line-height: .1em;
        font-size: 12px;

    }
    .form-wrap input:-moz-placeholder { 
        color: #666;
        line-height: .1em;
        font-size: 12px;
    }
    .form-wrap input::-moz-placeholder {
        color: #666;
        line-height: .1em;
        font-size: 12px;
    }
    .form-wrap input:-ms-input-placeholder { 
        color:#666;
        line-height: .1em;
        font-size: 12px;
    }*/
.errorlabel, .error {
    color: #f00;
    font-size: 12px;
    font-family: "source sans pro";
}

.w3-button {
    font-family: "source sans pro";
    text-decoration: none !important;
    margin-bottom: 5px;
    border-radius: unset !important;
}

.w3-orange {
    color: #fff !important;
    background-color: #666 !important;
}


.a-userinfo {
    font-family: "Source Sans Pro";
    font-size: 16px;
    font-weight: 200;
    margin: 0 0 0 26px;
    position: relative;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
    -ms-flex-align: center;
    align-items: center;
}
/* FONT AWESOME */


.icon::before {
    display: inline-block;
    font-style: normal;
    font-variant: normal;
    text-rendering: auto;
    -webkit-font-smoothing: antialiased;
}

.a-userinfo::before {
    font-family: "Font Awesome 5 Free";
    font-weight: 900;
    content: "\fb2d";
}

.fa-green {
    color: forestgreen !important;
}

.fa-off {
    color: lightgray !important;
}



/* WUC SMS */
.alert-success i::before {
    position: absolute;
    font-size: 24px;
    color: green;
    top: 1em;
    left: 0.5em;
}

.alert-success {
    padding: 1em 3em 1em 3.7em;
    margin-bottom: 1.5em;
    overflow: auto;
    position: relative;
    border-width: 0 0 0 5px;
    border-style: solid;
    min-width: 170px;
    background-color: #ded;
    border-color: forestgreen;
}

.alert-danger i::before {
    position: absolute;
    font-size: 24px;
    color: darkred;
    top: 1em;
    left: 0.5em;
}

.alert-danger {
    padding: 1em 3em 1em 3.7em;
    margin-bottom: 1.5em;
    overflow: auto;
    position: relative;
    border-width: 0 0 0 5px;
    border-style: solid;
    min-width: 170px;
    background-color: #edd;
    border-color: darkred;
}
/* 
  ##Device = Most of the Smartphones Mobiles (Portrait)
  ##Screen = B/w 320px to 479px
*/
@media (min-width: 320px) and (max-width: 480px) {
    .form-wrapper {
        margin: 30px 5%;
        width: 90%;
        min-width: initial;
    }

        .form-wrapper h1 {
            font-size: 30px;
        }

    .form-wrap {
        clear: left;
        width: 60%;
    }

    .two-column {
        width: 100%;
        float: left;
        margin: 0%;
    }

    .column-one {
        width: 100%;
        clear: both;
    }

    .column-two {
        width: 100%;
        clear: both;
    }

    .nomobile {
        display: none !important;
    }

    #txtempresa {
        width: 85%;
    }
}
/*iPad in portrait & landscape*/
@media only screen and (min-device-width : 768px) and (max-device-width : 1024px) { /* STYLES GO HERE */
    .form-wrapper {
        margin: 30px 5%;
        width: 90%;
        min-width: initial;
    }

    .nomobile {
        display: none !important;
    }
}
/* ----------- iPad Pro 10.5" ----------- */
/* Portrait and Landscape */
@media only screen and (min-device-width: 834px) and (max-device-width: 1112px) and (-webkit-min-device-pixel-ratio: 2) {
    .form-wrapper {
        margin: 130px 5%;
        width: 90%;
        min-width: initial;
    }

    .nomobile {
        display: none !important;
    }
}
/* 2688x1242px at 458ppi */
@media only screen and (device-width : 414px) and (device-height : 736px) and (-webkit-device-pixel-ratio : 3) {
    .form-wrapper {
        margin: 30px 5%;
        width: 90%;
        min-width: initial;
    }

    .nomobile {
        display: none !important;
    }
}

@media only screen and (device-width: 375px) and (device-height: 812px) and (-webkit-device-pixel-ratio: 3) {
    .form-wrapper {
        margin: 30px 5%;
        width: 90%;
        min-width: initial;
    }

    .nomobile {
        display: none !important;
    }
}

@media only screen and (device-width : 414px) and (device-height : 896px) {
    .form-wrapper {
        margin: 30px 5%;
        width: 90%;
        min-width: initial;
    }

    .nomobile {
        display: none !important;
    }
}




/*

    FIbS

*/
.submenu-block .fibs .level-one-link {
    text-decoration: underline;
    font-weight: bold;
    font-size: 90%;
}

    .submenu-block .fibs .level-one-link:hover {
        color: #FF6117;
    }

.megamenu-disabled {
    font-size: 90%;
    color: #999;
}

.cookies-banner {
    background-color: #eed;
}

.cookies-btn {
    cursor: pointer;
}

.fa, .fas {
    color: #999;
}

@media only all and (min-width: 900px) {
    header .header-nav .menu > li.megamenu-parent .menu-item-top {
        position: relative;
        padding: 0px 20px !important;
        font-weight: 600;
        font-size: 16px;
        font-family: Avenir;
    }
}

/* 2026 */
/* privado.master */
.digital-hub-button {
    background: url(/images/4.png) no-repeat left center;
    background-size: contain;
    padding-left: 40px;
    display: block;
    margin: -27px 0px;
}

.biblioteca-multimedia-button {
    background: url(/images/2.png) no-repeat left center;
    background-size: contain;
    padding-left: 40px;
    display: block;
    margin: -20px 0px;
}

.inscripciones-button {
    background: url(/images/3.png) no-repeat left center;
    background-size: contain;
    padding-left: 40px;
    display: block;
    margin: -27px 0px;
}

.panel-gestion-button {
    background: url(/images/1.png) no-repeat left center;
    background-size: contain;
    padding-left: 40px;
    display: block;
    margin: -27px 0px;
}

/* main.aspx */
.grid-welcome {
    display: flex;
    align-items: center;
    width: 100%;
}

.grid-welcome-left {
    flex: 0 0 60%;
    padding: 0rem 2rem 0rem 0rem;
}

.grid-welcome-right {
    flex: 0 0 35%;
    display: flex;
    justify-content: center;
    align-items: center;
}

    .grid-welcome-right img {
        max-width: 100%;
        height: auto;
        display: block;
    }

.grid-welcome-left h1,
.grid-welcome-left h2,
.grid-welcome-left h3,
.grid-welcome-left h4 {
    margin: 0;
    padding: 0;
    line-height: 1.1;
}

/* Hola  */
.grid-welcome-left h1 {
    font-size: clamp(2.8rem, 5vw, 4rem) !important;
    font-weight: 800;
    letter-spacing: -0.04em;
    color: #000;
    margin-bottom: 1.8rem;
}

/* te damos la bienvenida a tu */
.grid-welcome-left h2 {
    font-size: clamp(2rem, 3.5vw, 3rem) !important;
    font-weight: 800;
    letter-spacing: -0.035em;
    color: #000;
    margin-bottom: 0.2rem;
}

/* espacio de innovación */
.grid-welcome-left h3 {
    display: inline-block;
    font-size: clamp(2rem, 3.5vw, 3rem) !important;
    font-weight: 800;
    line-height: 1.1;
    letter-spacing: -0.035em;
    margin: 0 0 1.5rem 0;
    background: linear-gradient( 90deg, #2f6eea 0%, #6fbaf5 35%, #b7bdf1 65%, #d36acb 100% );
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
    color: transparent;
}

/* Texto descriptivo */
.grid-welcome-left h4 {
    max-width: 720px;
    font-size: clamp(1.1rem, 1.6vw, 1.45rem) !important;
    font-weight: 400;
    line-height: 1.35;
    letter-spacing: -0.015em;
    color: #444;
}
/* =========================
   BLOQUE DE TARJETAS
========================= */

.welcome-cards {
    display: flex;
    gap: 2.2rem;
    width: 100%;
    margin-top: 4.5rem;
    padding: 0 0rem;
    box-sizing: border-box;
}

.welcome-card-item {
    flex: 1 1 0;
    min-width: 0;
}

.welcome-card-heading {
    display: flex;
    align-items: center;
    gap: 0.9rem;
    min-height: 58px;
    margin-bottom: 1rem;
}

    .welcome-card-heading img {
        width: 42px;
        height: 42px;
        object-fit: contain;
        display: block;
        flex-shrink: 0;
    }

    .welcome-card-heading h5 {
        margin: 0;
        font-family: var(--fi-font-body);
        font-size: clamp(1.25rem, 1.8vw, 1.65rem);
        font-weight: 800;
        line-height: 1.15;
        letter-spacing: -0.03em;
        color: #000;
    }

.welcome-card-box {
    min-height: 260px;
    padding: 2rem 1.6rem;
    border: 1px solid #d8d8d8;
    border-radius: 1.1rem;
    background: #fff;
    box-sizing: border-box;
}

    .welcome-card-box p {
        margin: 0;
        font-family: var(--fi-font-body);
        font-size: clamp(1.05rem, 1.5vw, 1.45rem);
        font-weight: 400;
        line-height: 1.18;
        letter-spacing: -0.025em;
        color: #111;
    }

    .welcome-card-box strong {
        font-weight: 800;
        background: linear-gradient( 90deg, #2f6eea 0%, #6fbaf5 40%, #c26bd8 100% );
        -webkit-background-clip: text;
        background-clip: text;
        -webkit-text-fill-color: transparent;
        color: transparent;
    }

    .welcome-card-box em {
        font-style: italic;
    }


/* =========================
   TABLET
========================= */

@media (max-width: 1100px) {
    .welcome-cards {
        gap: 1.5rem;
        padding: 0 1.5rem;
    }

    .welcome-card-box {
        min-height: 235px;
        padding: 1.6rem 1.3rem;
    }

        .welcome-card-box p {
            font-size: 1.1rem;
            line-height: 1.25;
        }
}


/* =========================
   MÓVIL HORIZONTAL / TABLET PEQUEÑA
========================= */

@media (max-width: 900px) {
    .welcome-cards {
        display: grid;
        grid-template-columns: 1fr;
        gap: 2rem;
        margin-top: 3.5rem;
        padding: 0 1.25rem;
    }

    .welcome-card-item {
        width: 100%;
    }

    .welcome-card-heading {
        min-height: auto;
        margin-bottom: 0.8rem;
    }

        .welcome-card-heading img {
            width: 36px;
            height: 36px;
        }

        .welcome-card-heading h5 {
            font-size: 1.45rem;
        }

    .welcome-card-box {
        width: 100%;
        min-height: auto;
        padding: 1.5rem;
        border-radius: 1rem;
    }

        .welcome-card-box p {
            font-size: 1.15rem;
            line-height: 1.3;
            letter-spacing: -0.015em;
        }
}


/* =========================
   MÓVIL
========================= */

@media (max-width: 600px) {
    .welcome-cards {
        gap: 1.6rem;
        margin-top: 2.5rem;
        padding: 0 1rem;
    }

    .welcome-card-heading {
        gap: 0.75rem;
        align-items: center;
    }

        .welcome-card-heading img {
            width: 32px;
            height: 32px;
        }

        .welcome-card-heading h5 {
            font-size: 1.25rem;
            line-height: 1.15;
        }

    .welcome-card-box {
        padding: 1.3rem;
        border-radius: 0.95rem;
    }

        .welcome-card-box p {
            font-size: 1rem;
            line-height: 1.32;
        }
}


/* =========================
   MÓVIL MUY ESTRECHO
========================= */

@media (max-width: 390px) {
    .welcome-cards {
        padding: 0 0.8rem;
    }

    .welcome-card-heading h5 {
        font-size: 1.15rem;
    }

    .welcome-card-box {
        padding: 1.15rem;
    }

        .welcome-card-box p {
            font-size: 0.95rem;
        }
}

/* =========================
   PROMO + CONTACTO 25 / 75
========================= */

.welcome-promo-contact {
    width: 100%;
    margin-top: 4rem;
    margin-bottom: 4rem;
    display: grid;
    grid-template-columns: 32% 62%;
    gap: 6%;
    align-items: stretch;
    box-sizing: border-box;
}

/* Columna imagen */
.welcome-promo-image {
    width: 100%;
    border-radius: 1.2rem;
    overflow: hidden;
    background: #f2f2f2;
    display: flex;
    align-items: stretch;
}

    .welcome-promo-image img {
        width: 100%;
        height: 100%;
        display: block;
        object-fit: cover; /* si no quieres recorte, cambia a contain */
    }

/* Columna contacto */
.welcome-promo-contact .welcome-contact-card {
    width: 100%;
    padding: 2.4rem 2.8rem;
    box-sizing: border-box;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 2rem;
    background: #f5f5f5;
    border-radius: 1.2rem;
    font-family: "Inter", "Segoe UI", Arial, sans-serif;
}

.welcome-promo-contact .welcome-contact-text {
    flex: 1;
}

.welcome-promo-contact .welcome-contact-card h5 {
    margin: 0 0 1rem 0;
    font-size: clamp(1.6rem, 2vw, 2.2rem);
    font-weight: 800;
    line-height: 1.1;
    letter-spacing: -0.03em;
    color: #000;
}

.welcome-promo-contact .welcome-contact-card p {
    margin: 0;
    font-size: clamp(1.05rem, 1.4vw, 1.4rem);
    font-weight: 400;
    line-height: 1.3;
    letter-spacing: -0.02em;
    color: #111;
}

.welcome-promo-contact .welcome-contact-button {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 200px;
    min-width: 200px;
    min-height: 60px;
    border: 2px solid #555;
    border-radius: 0.7rem;
    background: transparent;
    color: #000;
    font-size: 1.1rem;
    font-weight: 800;
    text-decoration: none;
    transition: all 0.2s ease;
}

    .welcome-promo-contact .welcome-contact-button:hover {
        background: #000;
        border-color: #000;
        color: #fff;
    }
/* =========================
   PROMO + CONTACTO RESPONSIVE
========================= */

@media (max-width: 992px) {
    .welcome-promo-contact {
        grid-template-columns: 1fr;
        gap: 1.5rem;
    }

    .welcome-promo-image img {
        height: auto;
        object-fit: contain;
    }

    .welcome-promo-contact .welcome-contact-card {
        padding: 1.8rem;
        flex-direction: column;
        align-items: flex-start;
    }

    .welcome-promo-contact .welcome-contact-button {
        width: 100%;
        min-width: 0;
    }
}

@media (max-width: 600px) {
    .welcome-promo-contact {
        margin-top: 3rem;
        margin-bottom: 4rem;
        gap: 1.5rem;
    }

    .welcome-promo-image {
        border-radius: 1rem;
    }

    .welcome-promo-contact .welcome-contact-card {
        padding: 1.5rem;
        border-radius: 1.2rem;
    }

        .welcome-promo-contact .welcome-contact-card h5 {
            font-size: 1.35rem;
        }

        .welcome-promo-contact .welcome-contact-card p {
            font-size: 1rem;
        }

    .welcome-promo-contact .welcome-contact-button {
        width: 100%;
        min-height: 50px;
        font-size: 1rem;
    }
}

/* =========================
   CARD CONTACTO 100%
========================= */

/*.welcome-contact-wrapper {
    width: 100%;
    margin-top: 4rem;
    margin-bottom: 4rem;
    padding: 0;
    box-sizing: border-box;
}

.welcome-contact-card {
    width: 100%;
    min-height: 170px;
    padding: 3rem 16%;
    box-sizing: border-box;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 3rem;
    background: #f5f5f5;
    border-radius: 0;
    font-family: "Inter", "Segoe UI", Arial, sans-serif;
}

    .welcome-contact-card h5 {
        margin: 0 0 1.4rem 0;
        font-size: 1.8rem;
        font-weight: 800;
        line-height: 1.1;
        letter-spacing: -0.03em;
        color: #000;
    }

    .welcome-contact-card p {
        margin: 0;
        font-size: 1.45rem;
        font-weight: 400;
        line-height: 1.3;
        letter-spacing: -0.02em;
        color: #111;
    }

.welcome-contact-button {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 190px;
    min-width: 190px;
    min-height: 64px;
    border: 2px solid #444;
    border-radius: 0.7rem;
    background: transparent;
    color: #000;
    font-size: 1.25rem;
    font-weight: 800;
    text-decoration: none;
    transition: all 0.2s ease;
}

    .welcome-contact-button:hover {
        background: #000;
        border-color: #000;
        color: #fff;
    }

.welcome-contact-text {
    flex: 1;
}*/
/* MOBILE */

/*@media (max-width: 768px) {
    .welcome-contact-wrapper {
        margin-top: 3rem;
        margin-bottom: 4rem;
        padding: 0 1.4rem;
    }

    .welcome-contact-card {
        width: 100%;
        padding: 1.6rem;
        border-radius: 1.4rem;
        display: flex;
        flex-direction: column;
        align-items: flex-start;
        gap: 1.4rem;
    }

        .welcome-contact-card h5 {
            font-size: 1.25rem;
            margin-bottom: 0.8rem;
        }

        .welcome-contact-card p {
            font-size: 1rem;
            line-height: 1.3;
        }

    .welcome-contact-button {
        width: 100%;
        min-width: 0;
        min-height: 50px;
        font-size: 1rem;
    }
}*/

/* ==========================================================
   AJUSTES RESPONSIVE MAIN.ASPX / FEELING INNOVATION - 2026
   Añadido para corregir vista móvil de bienvenida, tarjetas,
   contacto, imágenes y posibles desbordamientos horizontales.
========================================================== */

html,
body {
    max-width: 100%;
    overflow-x: hidden;
}

*,
*::before,
*::after {
    box-sizing: border-box;
}

img {
    max-width: 100%;
    height: auto;
}

/* Evita que el hero o las cards generen scroll horizontal */
.grid-welcome,
.welcome-cards,
.welcome-contact-wrapper {
    max-width: 100%;
}

/* =========================
   HERO: ESCRITORIO / BASE
========================= */

.grid-welcome {
    gap: 2rem;
    overflow: hidden;
}

.grid-welcome-left {
    min-width: 0;
}

.grid-welcome-right {
    min-width: 0;
}

    .grid-welcome-right img {
        width: 100%;
        max-width: 430px;
    }

/* =========================
   TARJETAS: BASE MEJORADA
========================= */

.welcome-cards {
    align-items: stretch;
}

.welcome-card-item {
    display: flex;
    flex-direction: column;
}

.welcome-card-box {
    flex: 1;
}

/* =========================
   TABLET
========================= */

@media (max-width: 1100px) {
    .grid-welcome {
        gap: 1.5rem;
    }

    .grid-welcome-left {
        flex: 0 0 58%;
    }

    .grid-welcome-right {
        flex: 0 0 42%;
    }

        .grid-welcome-right img {
            max-width: 360px;
        }

    .welcome-cards {
        gap: 1.4rem;
        padding: 0 1rem;
    }
}

/* =========================
   TABLET PEQUEÑA / MÓVIL GRANDE
========================= */

@media (max-width: 900px) {
    .grid-welcome {
        position: relative;
        display: block;
        width: 100%;
        min-height: 520px;
        padding: 2.2rem 1.4rem 0 1.4rem;
    }

    .grid-welcome-left {
        width: 100%;
        max-width: 620px;
        padding: 0;
        position: relative;
        z-index: 2;
    }

    .grid-welcome-right {
        position: absolute;
        top: 145px;
        right: -80px;
        width: 260px;
        display: block;
        z-index: 1;
        pointer-events: none;
    }

        .grid-welcome-right img {
            width: 100%;
            max-width: none;
            display: block;
        }

    .grid-welcome-left h1 {
        font-size: clamp(3rem, 9vw, 4rem) !important;
        line-height: 1.06;
        margin-bottom: 1.6rem;
        max-width: 440px;
    }

    .grid-welcome-left h2 {
        font-size: clamp(2rem, 7vw, 2.7rem) !important;
        line-height: 1.1;
        margin-bottom: 0.4rem;
        max-width: 430px;
    }

    .grid-welcome-left h3 {
        display: inline-block;
        font-size: clamp(2rem, 7vw, 2.7rem) !important;
        line-height: 1.08;
        margin-bottom: 1.5rem;
        max-width: 420px;
        background: linear-gradient(90deg, #2f6eea 0%, #6fbaf5 35%, #b7bdf1 65%, #d36acb 100%) !important;
        -webkit-background-clip: text !important;
        background-clip: text !important;
        -webkit-text-fill-color: transparent !important;
        color: transparent !important;
    }

    .grid-welcome-left h4 {
        font-size: 1.08rem !important;
        line-height: 1.32;
        max-width: 390px;
        margin-bottom: 0;
    }

    .welcome-cards {
        display: flex;
        flex-direction: column;
        gap: 2rem;
        width: 100%;
        margin-top: 2.6rem;
        padding: 0 1.4rem;
    }

    .welcome-card-item {
        width: 100%;
    }

    .welcome-card-heading {
        min-height: auto;
        margin-bottom: 0.8rem;
        gap: 0.8rem;
    }

        .welcome-card-heading img {
            width: 36px;
            height: 36px;
        }

        .welcome-card-heading h5 {
            font-size: 1.35rem;
            line-height: 1.15;
        }

    .welcome-card-box {
        width: 100%;
        min-height: auto;
        padding: 1.45rem 1.35rem;
        border-radius: 1rem;
    }

        .welcome-card-box p {
            font-size: 1.08rem;
            line-height: 1.34;
            letter-spacing: -0.01em;
        }

    .welcome-contact-wrapper {
        margin-top: 3rem;
        margin-bottom: 4rem;
        padding: 0 1.4rem;
    }

    .welcome-contact-card {
        width: 100%;
        max-width: 340px;
        min-height: auto;
        padding: 1.4rem;
        border-radius: 1.4rem;
    }
}

/* =========================
   MÓVIL
========================= */

@media (max-width: 600px) {
    .grid-welcome {
        min-height: 505px;
        padding: 1.9rem 1.2rem 0 1.2rem;
    }

    .grid-welcome-right {
        top: 155px;
        right: -105px;
        width: 230px;
    }

    .grid-welcome-left h1 {
        font-size: clamp(2.8rem, 13vw, 3.55rem) !important;
        line-height: 1.08;
        max-width: 285px;
        margin-bottom: 1.45rem;
    }

    .grid-welcome-left h2 {
        font-size: clamp(1.75rem, 8vw, 2.25rem) !important;
        line-height: 1.1;
        max-width: 285px;
    }

    .grid-welcome-left h3 {
        font-size: clamp(1.8rem, 8vw, 2.25rem) !important;
        line-height: 1.08;
        max-width: 265px;
        margin-bottom: 1.35rem;
    }

    .grid-welcome-left h4 {
        font-size: 1rem !important;
        line-height: 1.32;
        max-width: 330px;
    }

    .welcome-cards {
        gap: 1.8rem;
        margin-top: 2.4rem;
        padding: 0 1.2rem;
    }

    .welcome-card-heading {
        gap: 0.75rem;
        margin-bottom: 0.75rem;
    }

        .welcome-card-heading img {
            width: 32px;
            height: 32px;
        }

        .welcome-card-heading h5 {
            font-size: 1.22rem;
            line-height: 1.15;
        }

    .welcome-card-box {
        padding: 1.25rem 1.15rem;
        border-radius: 0.95rem;
    }

        .welcome-card-box p {
            font-size: 0.98rem;
            line-height: 1.34;
        }

    .welcome-contact-wrapper {
        margin-top: 2.6rem;
        margin-bottom: 3.5rem;
        padding: 0 1.2rem;
    }

    .welcome-contact-card {
        max-width: 330px;
        padding: 1.35rem;
        border-radius: 1.35rem;
    }

        .welcome-contact-card h5 {
            font-size: 1.05rem;
            margin-bottom: 0.8rem;
        }

        .welcome-contact-card p {
            font-size: 0.95rem;
            line-height: 1.25;
            margin-bottom: 1.25rem;
        }

    .welcome-contact-button {
        min-height: 48px;
        font-size: 0.95rem;
    }
}

/* =========================
   MÓVIL MUY ESTRECHO
========================= */

@media (max-width: 390px) {
    .grid-welcome {
        min-height: 500px;
        padding-left: 1rem;
        padding-right: 1rem;
    }

    .grid-welcome-right {
        top: 160px;
        right: -112px;
        width: 225px;
    }

    .grid-welcome-left h1 {
        font-size: 3.05rem !important;
        max-width: 260px;
    }

    .grid-welcome-left h2,
    .grid-welcome-left h3 {
        font-size: 1.95rem !important;
        max-width: 250px;
    }

    .grid-welcome-left h4 {
        font-size: 0.98rem !important;
        max-width: 310px;
    }

    .welcome-cards {
        padding: 0 1rem;
    }

    .welcome-card-heading h5 {
        font-size: 1.12rem;
    }

    .welcome-card-box {
        padding: 1.15rem 1rem;
    }

        .welcome-card-box p {
            font-size: 0.94rem;
        }
}

/* =========================
   SECCIONES INFERIORES / NOVEDADES / FOOTER
========================= */

.section-novedades,
.novedades,
.news-section,
footer,
.footer {
    max-width: 100%;
    overflow-x: hidden;
}

    .section-novedades img,
    .novedades img,
    .news-section img {
        width: 100%;
        max-width: 100%;
        height: auto;
        display: block;
    }

@media (max-width: 768px) {
    .section-novedades,
    .novedades,
    .news-section {
        padding-left: 1.2rem;
        padding-right: 1.2rem;
    }

    footer .container,
    .footer .container {
        max-width: 100%;
    }
}


/* =========================================================
   FIX 2026 - MENÚ MÓVIL / PRIVADO.MASTER
   Corrige el tamaño de iconos, alineación de enlaces y textos
   del menú hamburguesa en pantallas pequeñas.
========================================================= */

@media (max-width: 899px) {

    header,
    header * {
        box-sizing: border-box;
    }

        header .header-nav,
        header .header-nav .menu,
        header .header-nav ul {
            width: 100%;
            max-width: 100%;
        }

            header .header-nav .menu,
            header .header-nav ul.menu {
                margin: 0;
                padding: 0 18px;
                list-style: none;
            }

                header .header-nav .menu > li,
                header .header-nav ul.menu > li {
                    position: relative;
                    width: 100%;
                    max-width: 100%;
                    min-height: 70px;
                    margin: 0;
                    padding: 0;
                    border-bottom: 1px solid rgba(0, 0, 0, 0.10);
                    overflow: visible;
                }

                    header .header-nav .menu > li > a,
                    header .header-nav .menu > li > span,
                    header .header-nav ul.menu > li > a,
                    header .header-nav ul.menu > li > span,
                    header .header-nav .menu-item-top {
                        display: flex !important;
                        align-items: center;
                        width: 100%;
                        max-width: 100%;
                        min-height: 70px;
                        margin: 0 !important;
                        padding: 14px 46px 14px 62px !important;
                        font-family: var(--fi-font-body);
                        font-size: 1.15rem;
                        font-weight: 700;
                        line-height: 1.18;
                        color: #ff6117 !important;
                        text-decoration: none;
                        white-space: normal;
                        overflow-wrap: normal;
                        word-break: normal;
                    }

        /* Evita que las clases de botones del menú deformen el layout móvil */
        header .digital-hub-button,
        header .biblioteca-multimedia-button,
        header .inscripciones-button,
        header .panel-gestion-button {
            display: flex !important;
            align-items: center;
            width: 100%;
            min-height: 70px;
            margin: 0 !important;
            padding: 14px 46px 14px 62px !important;
            background-repeat: no-repeat !important;
            background-position: 18px center !important;
            background-size: 34px 34px !important;
            box-shadow: none !important;
            border-radius: 0 !important;
            line-height: 1.18 !important;
            white-space: normal !important;
        }

        /* El botón de Digital Hub usaba padding:60px; en móvil debe comportarse como el resto */
        header .digital-hub-button {
            background-size: 42px auto !important;
            background-position: 14px center !important;
        }

        /* Iconos o imágenes dentro de enlaces, por si el menú los pinta como <img> */
        header .header-nav .menu img,
        header .header-nav ul.menu img {
            width: 34px !important;
            height: 34px !important;
            max-width: 34px !important;
            object-fit: contain;
            flex-shrink: 0;
            margin-right: 12px;
        }

        /* Flechas/desplegables a la derecha */
        header .header-nav .menu > li > .submenu-toggle,
        header .header-nav .menu > li > button,
        header .header-nav .menu > li > .fa-chevron-down,
        header .header-nav .menu > li > .fas.fa-chevron-down,
        header .header-nav .menu > li > .fa-angle-down,
        header .header-nav .menu > li > .fas.fa-angle-down {
            position: absolute;
            top: 50%;
            right: 18px;
            transform: translateY(-50%);
            width: 28px;
            height: 28px;
            margin: 0;
            padding: 0;
            display: flex;
            align-items: center;
            justify-content: center;
            color: #333 !important;
            background: transparent;
            border: 0;
            font-size: 1.1rem;
            z-index: 2;
        }

        /* Submenús: que no se monten encima del enlace principal */
        header .header-nav .submenu-block,
        header .header-nav .sub-menu,
        header .header-nav .dropdown-menu {
            width: 100%;
            margin: 0;
            padding: 0 0 12px 62px;
            background: transparent;
            box-shadow: none;
            border: 0;
        }

            header .header-nav .submenu-block a,
            header .header-nav .sub-menu a,
            header .header-nav .dropdown-menu a {
                display: block;
                padding: 8px 0 !important;
                font-size: 0.98rem;
                line-height: 1.25;
                color: #333 !important;
                white-space: normal;
            }
}

@media (max-width: 390px) {
    header .header-nav .menu,
    header .header-nav ul.menu {
        padding-left: 14px;
        padding-right: 14px;
    }

        header .header-nav .menu > li > a,
        header .header-nav .menu > li > span,
        header .header-nav ul.menu > li > a,
        header .header-nav ul.menu > li > span,
        header .header-nav .menu-item-top,
        header .digital-hub-button,
        header .biblioteca-multimedia-button,
        header .inscripciones-button,
        header .panel-gestion-button {
            padding-left: 58px !important;
            padding-right: 42px !important;
            font-size: 1.05rem;
        }

    header .digital-hub-button,
    header .biblioteca-multimedia-button,
    header .inscripciones-button,
    header .panel-gestion-button {
        background-position: 16px center !important;
        background-size: 32px 32px !important;
    }

    header .digital-hub-button {
        background-size: 40px auto !important;
        background-position: 12px center !important;
    }
}


/* =========================
   FIX MENÚ MÓVIL - SUBMENÚ DIGITAL HUB
========================= */

@media only all and (max-width: 900px) {
    header .header-nav .submenu-block-extra.img, header .header-nav .submenu-block.intro {
        display: unset !important;
    }
}