/* ==========================================================
   HEADER
========================================================== */

.header{

    position:fixed;
    top:0;
    left:0;
    width:100%;
    z-index:1000;

    padding:14px 0;

    background:linear-gradient(
            90deg,
            rgba(255,255,255,.90) 0%,
            rgba(255,255,255,.75) 35%,
            rgba(255,255,255,.30) 70%,
            rgba(255,255,255,.10) 100%
    );

    backdrop-filter:blur(18px);
    -webkit-backdrop-filter:blur(18px);

    border-bottom:1px solid rgba(255,255,255,.15);

    box-shadow:
            0 10px 30px rgba(0,0,0,.05),
            0 2px 8px rgba(0,0,0,.03);

    transition:all .3s ease;

}
.header__wrapper{
    display:grid;
    grid-template-columns:auto 1fr auto;
    margin-left: 30px;
    margin-right: 30px;
    align-items:center;
    gap:48px;
}

/* ==========================================================
   LOGO
========================================================== */

.header__logo{
    align-items:center;
    justify-content:center;
    text-decoration:none;
    flex-shrink:0;
}

.header__logo img{
    width:62px;
    display:block;
}

.header__logo:hover img{

    transform:scale(1.04);

}

/* ==========================================================
   NAVIGATION
========================================================== */

.header__nav{

    display:flex;

    justify-content:center;

    align-items:center;

}

.header__menu{
    display:flex;
    align-items:center;
    justify-content:center;
    gap:50px;
    margin:0;
    padding:0;
    list-style:none;
}

.header__item{

    position:relative;

    list-style:none;

}
.header__link {
    position: relative;
    display: flex;
    align-items: center;
    gap: 6px;

    text-decoration: none;
    color: var(--color-black);

    font-weight: 500;
    line-height: 1.4;
    white-space: nowrap;

    transition: var(--transition);
}

.header__link {
    font-size: 1.1rem;
}
.header__link:hover{

    color:var(--color-primary);

}

.header__link.active{

    color:var(--color-primary);

}
/* ==========================================================
   LINK UNDERLINE
========================================================== */

.header__link::after{
    content:"";
    position:absolute;
    left:0;
    bottom:-8px;
    width:0;
    height:2px;
    background:var(--color-primary);
    border-radius:50px;
    transition:var(--transition);
}

.header__link:hover::after,
.header__link.active::after{
    width:100%;
}

/* ==========================================================
   RIGHT
========================================================== */

.header__right{
    display:flex;
    align-items:center;
    gap:50px;
}
/* ==========================================================
   LANGUAGE SELECTOR
========================================================== */

.language-selector{
    display:flex;
    align-items:center;
    gap:8px;
}

.language-selector__button{
    display:flex;
    align-items:center;
    justify-content:center;
    width:42px;
    height:42px;
    border:none;
    border-radius:12px;
    background:transparent;
    color:var(--color-black);
    font-family:var(--font-family);
    cursor:pointer;
    transition:var(--transition);
}

.language-selector__button:hover{
    background:#f5f5f5;
}

.language-selector__button.active{
    background:var(--color-primary);
    color:var(--color-white);
    box-shadow:var(--shadow);
}

/* ==========================================================
   DROPDOWN
========================================================== */

.header__dropdown:hover .header__arrow{
    transform:rotate(180deg);
}

.header__arrow{
    transition:var(--transition);
}

.dropdown{
    position:absolute;
    top:calc(100% + 18px);
    left:50%;
    transform:translateX(-50%);
    min-width:200px;
    padding:12px 0;
    background:var(--color-white);
    border-radius:16px;
    box-shadow:0 15px 40px rgba(0,0,0,.08);
    list-style:none;
    opacity:0;
    visibility:hidden;
    transition:var(--transition);
}.header__dropdown:hover .dropdown{
     opacity:1;
     visibility:visible;
     top:calc(100% + 10px);
 }

.dropdown li{
    list-style:none;
}

.dropdown a{
    display:block;
    padding:12px 20px;
    color:var(--color-black);
    text-decoration:none;
    transition:var(--transition);
}

.dropdown a:hover{
    color:var(--color-primary);
    background:#fafafa;
}

/* ==========================================================
   HAMBURGER
========================================================== */

.header__toggle{
    display:none;
    width:44px;
    height:44px;
    border:none;
    background:none;
    cursor:pointer;
    flex-direction:column;
    justify-content:center;
    align-items:center;
    gap:5px;
}

.header__toggle span{
    width:24px;
    height:2px;
    background:var(--color-black);
    border-radius:50px;
    transition:var(--transition);
}

.header__toggle.active span:nth-child(1){
    transform:translateY(7px) rotate(45deg);
}

.header__toggle.active span:nth-child(2){
    opacity:0;
}

.header__toggle.active span:nth-child(3){
    transform:translateY(-7px) rotate(-45deg);
}

/* ==========================================================
   LAPTOP
========================================================== */

@media(max-width:1200px){
    .header__wrapper{
        gap:32px;
    }
    .header__menu{
        gap:28px;
    }
}

/* ==========================================================
   TABLET
========================================================== */

@media(max-width:992px){

    .header{
        padding:14px 0;
    }

    .header__wrapper{
        grid-template-columns:auto auto;
        gap:16px;
    }

    .header__right{
        margin-left:auto;
        gap:12px;
    }

    .header__toggle{
        display:flex;
        z-index:1002;
    }


    .header__nav {
        position: fixed;
        right: -50%;
        width: 50%;
        top: 88px;
        height: calc(100dvh - 83px);

        padding: 36px 48px;

        background: rgba(255, 255, 255, 0.95);
        backdrop-filter: blur(20px);
        -webkit-backdrop-filter: blur(20px);

        box-shadow: -20px 0 50px rgba(0, 0, 0, 0.08);

        transition: right 0.35s ease;

        justify-content: flex-start;
        align-items: flex-start;
    }

    .header__nav.active {
        right: 0;
    }


    .header__nav.active{
        right:0;
    }

    .header__menu{
        width:100%;
        flex-direction:column;
        align-items:flex-start;
        gap:36px;
    }

        .header__link {
            font-size: 1.1rem;
        }

    .dropdown{
        position:static;
        transform:none;
        opacity:1;
        visibility:visible;
        display:none;
        padding-top:16px;
        margin-left:20px;
        box-shadow:none;
        background:transparent;
    }

    .header__dropdown.active .dropdown{
        display:block;
    }

}

/* ==========================================================
   MOBILE
========================================================== */

@media(max-width:576px){

    .header{
        height:72px;
    }

    .header__logo img{
        width:44px;
    }

    .header__nav{
        top:72px;
        height:calc(100vh - 72px);
        padding:36px 24px;
    }

    .header__right{
        gap:8px;
    }

    .language-selector{
        gap:4px;
    }

    .language-selector__button{
        width:36px;
        height:36px;
    }

    .header__menu {
        gap: 40px;
    }
}

/* ==========================================================
   HEADER — DESKTOP XL / 2000px+
   VM AGENCY
========================================================== */

@media screen and (min-width: 2000px) {

    /* BARRA PRINCIPAL */
    .header {
        padding: 22px 0;
    }

    /* DISTRIBUCIÓN */
    .header__wrapper {
        grid-template-columns: auto minmax(0, 1fr) auto;
        gap: 75px;

        margin-left: 65px;
        margin-right: 65px;
    }

    /* LOGO */
    .header__logo img {
        width: 82px;
        height: auto;
    }

    /* NAVEGACIÓN */
    .header__nav {
        justify-content: center;
    }

    .header__menu {
        gap: clamp(48px, 3vw, 76px);
    }

    .header__link {
        gap: 9px;
        font-size: 22px;
        line-height: 1.5;
        font-weight: 500;
    }

    /* SUBRAYADO ACTIVO */
    .header__link::after {
        bottom: -11px;
        height: 3px;
    }

    /* ZONA DERECHA */
    .header__right {
        gap: 35px;
    }

    /* SELECTOR DE IDIOMAS */
    .language-selector {
        gap: 12px;
    }

    .language-selector__button {
        width: 54px;
        height: 54px;
        border-radius: 15px;
        font-size: 17px;
    }

    /* MENÚ DESPLEGABLE */
    .dropdown {
        min-width: 260px;
        padding: 16px 0;
        border-radius: 18px;
    }

    .dropdown a {
        padding: 16px 25px;
        font-size: 19px;
    }

    /* FLECHA DEL DESPLEGABLE */
    .header__arrow {
        width: 20px;
        height: 20px;
    }
}

/* ==========================================================
   DESKTOP GRANDE — 2000px A 2399px
   Ajuste para evitar exceso de separación
========================================================== */

@media screen and (min-width: 2000px) and (max-width: 2399px) {

    .header__wrapper {
        margin-left: 45px;
        margin-right: 45px;
        gap: 55px;
    }

    .header__menu {
        gap: 48px;
    }

    .header__link {
        font-size: 20px;
    }

    .header__logo img {
        width: 74px;
    }

    .language-selector__button {
        width: 48px;
        height: 48px;
    }
}

/* ==========================================================
   FAQ — OCULTAR NOTA EN MÓVIL
========================================================== */

@media (max-width: 576px) {
    .faq__note {
        display: none !important;
    }
}

/* ==========================================================
   FAQ — MOBILE HEADER REFINEMENT
========================================================== */

@media (max-width: 576px) {

    /* INTRODUCCIÓN */
    .faq__intro {
        display: flex;
        flex-direction: column;
        align-items: center;
        width: 100%;
        max-width: 420px;
        margin: 0 auto 30px;
        text-align: center;
    }

    /* ETIQUETA FAQ */
    .faq__eyebrow {
        justify-content: center;
        margin-bottom: 20px;
        font-size: 12px;
    }

    /* TÍTULO */
    .faq__title {
        width: 100%;
        max-width: 350px;
        margin: 0 auto;
        font-size: clamp(34px, 9vw, 42px);
        line-height: 1.12;
        letter-spacing: -0.04em;
        text-align: center;
        text-wrap: balance;
    }

    /* SUBRAYADO AMARILLO */
    .faq__yellow-line {
        width: 160px;
        max-width: 60%;
        margin: 8px auto 22px;
    }

    /* TEXTO MANUSCRITO */
    .faq__handwritten {
        max-width: 320px;
        margin: 0 auto 18px;
        font-size: 21px;
        line-height: 1.5;
        text-align: center;
    }

    .faq__heart {
        display: inline-block;
        margin-left: 5px;
        vertical-align: middle;
    }

    /* DESCRIPCIÓN */
    .faq__description {
        width: 100%;
        max-width: 340px;
        margin: 0 auto;
        font-size: 16px;
        line-height: 1.75;
        text-align: center;
    }

    /* LISTA DE PREGUNTAS */
    .faq__content {
        width: 100%;
        min-width: 0;
    }

    .faq__questions {
        width: 100%;
        gap: 12px;
    }

    .faq__question {
        display: flex;
        align-items: center;
        justify-content: space-between;
        gap: 18px;
        min-height: 76px;
        padding: 18px 20px;
        font-size: 16px;
        line-height: 1.5;
        text-align: left;
    }

    .faq__question > span:first-child {
        flex: 1;
        min-width: 0;
    }

    .faq__plus {
        flex-shrink: 0;
    }

    /* RESPUESTAS */
    .faq__answer > p {
        padding: 0 20px;
        font-size: 15px;
        line-height: 1.75;
    }

    .faq__item--open .faq__answer > p {
        padding: 0 20px 22px;
    }
}
