/* ======================================
   PARAMETRIC FLOW — ESTILOS COMUNES
   Fondo oscuro minimalista + navegación
====================================== */

*{
    margin:0;
    padding:0;
    box-sizing:border-box;
}

html{
    scroll-behavior:smooth;
    overflow-y:scroll;
    overflow-x:hidden;
    background:#02080D;
}

:root{
    --nav-top:10px;
    --nav-h:78px;
    --nav-gap:14px;
    --nav-h-mobile:64px;
}

/* ==========================
   NAV MÓVIL — botón hamburguesa
   (oculto en escritorio, se activa
   en el breakpoint móvil único: 640px)
========================== */

.header-actions{
    display:flex;
    align-items:center;
    gap:12px;
}

.menu-toggle{
    display:none;
    flex-direction:column;
    justify-content:center;
    align-items:center;
    gap:5px;
    width:40px;
    height:40px;
    border-radius:10px;
    border:1px solid rgba(120,180,255,.22);
    background:rgba(15,40,90,.28);
    cursor:pointer;
    transition:.3s;
    flex-shrink:0;
}

.menu-toggle:hover{
    background:rgba(15,40,90,.42);
}

.menu-toggle span{
    display:block;
    width:18px;
    height:2px;
    border-radius:2px;
    background:#D8E4F7;
    transition:transform .3s ease,opacity .3s ease;
}

.menu-toggle.open span:nth-child(1){transform:translateY(7px) rotate(45deg);}
.menu-toggle.open span:nth-child(2){opacity:0;}
.menu-toggle.open span:nth-child(3){transform:translateY(-7px) rotate(-45deg);}

body{
    width:100%;
    max-width:100vw;
    overflow-x:hidden;
    font-family:'Manrope',sans-serif;
    color:#F4F6FA;

    /* Fondo limpio: sin mallas ni rayado */
    background:
        radial-gradient(
            ellipse 55% 45% at -5% 72%,
            rgba(0,170,230,.20) 0%,
            rgba(0,100,160,.10) 30%,
            transparent 72%
        ),
        radial-gradient(
            ellipse 50% 45% at 105% 72%,
            rgba(230,115,0,.21) 0%,
            rgba(150,65,0,.10) 30%,
            transparent 72%
        ),
        radial-gradient(
            ellipse 75% 65% at 50% 45%,
            rgba(5,32,52,.34) 0%,
            rgba(3,18,30,.20) 45%,
            transparent 75%
        ),
        linear-gradient(
            135deg,
            #02080D 0%,
            #03121C 36%,
            #020B13 66%,
            #03080D 100%
        );

    background-attachment:fixed;
    min-height:100%;
}

/* Únicamente atmósfera suave; NO malla, NO rayado, NO líneas */
body::before{
    content:"";
    position:fixed;
    inset:0;
    z-index:0;
    pointer-events:none;
    background:
        radial-gradient(
            ellipse 38% 25% at 0% 76%,
            rgba(0,190,245,.07),
            transparent 72%
        ),
        radial-gradient(
            ellipse 35% 25% at 100% 76%,
            rgba(255,135,0,.07),
            transparent 72%
        );
    opacity:.9;
}

::selection{
    background:rgba(30,217,255,.28);
    color:#fff;
}

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

.navbar{
    position:fixed;
    top:var(--nav-top);
    left:50%;
    transform:translateX(-50%);
    width:98%;
    max-width:1400px;
    height:var(--nav-h);
    padding:0 4px;
    display:flex;
    justify-content:space-between;
    align-items:center;
    z-index:100;
    background:transparent;
    border:1px solid transparent;
    border-radius:16px;
    transition:background .35s ease,border-color .35s ease,box-shadow .35s ease,backdrop-filter .35s ease;
}

.navbar.scrolled{
    background:rgba(4,13,22,.72);
    border-color:rgba(120,180,255,.14);
    box-shadow:0 12px 30px rgba(0,0,0,.28);
    backdrop-filter:blur(18px);
    -webkit-backdrop-filter:blur(18px);
}

.logo{
    display:flex;
    align-items:center;
    gap:18px;
    text-decoration:none;
    margin-left:4px;
    min-width:0;
}

.logo-icon{
    width:68px;
    height:auto;
}

.logo-text{
    display:flex;
    flex-direction:column;
    justify-content:center;
    min-width:0;
}

.brand{
    display:flex;
    gap:8px;
    font-size:16px;
    font-weight:700;
    letter-spacing:3.2px;
    text-transform:uppercase;
    line-height:1;
}

.white{color:#F4F6FA;}

.blue{
    color:#F4F6FA;
}

.sub{
    margin-top:6px;
    color:#C8D4EA;
    font-size:10px;
    font-weight:600;
    letter-spacing:5px;
    text-transform:uppercase;
    opacity:.72;
}

nav{
    position:absolute;
    left:70.5%;
    transform:translateX(-50%);
    width:clamp(360px,38vw,520px);
    display:flex;
    justify-content:space-between;
    align-items:center;
}

nav a{
    color:#D8E4F7;
    text-decoration:none;
    font-family:'Manrope',sans-serif;
    font-size:16px;
    font-weight:500;
    letter-spacing:4px;
    text-transform:uppercase;
    opacity:.92;
    transition:.35s;
    position:relative;
}

nav a:hover,
nav a.active{
    color:#58D4FF;
    opacity:1;
}

nav a.active::after{
    content:"";
    position:absolute;
    left:0;
    right:0;
    bottom:-8px;
    height:2px;
    background:#1ED9FF;
    border-radius:2px;
}

.language{
    display:flex;
    align-items:center;
    justify-content:center;
    padding:12px 20px;
    color:white;
    font-size:17px;
    font-weight:500;
    letter-spacing:1px;
    background:none;
    border:none;
    border-radius:8px;
    cursor:pointer;
    transition:.35s;
}

.language:hover{
    background:rgba(70,140,255,.12);
}

/* ==========================
   FOOTER
========================== */

.footer{
    position:relative;
    width:100%;
    text-align:center;
    color:#9FB3D9;
    font-family:'Manrope',sans-serif;
    font-size:11px;
    font-weight:400;
    letter-spacing:1px;
    opacity:.65;
    padding:28px 0 22px;
    z-index:5;
}

/* ==========================
   LAYOUT INTERIOR
========================== */

.page-wrap{
    position:relative;
    z-index:2;
    min-height:100vh;
    display:flex;
    flex-direction:column;
    padding-top:130px;
}

.page-hero{
    text-align:center;
    padding:0 24px 60px;
}

.page-hero .eyebrow{
    display:inline-block;
    color:#58D4FF;
    font-size:11px;
    font-weight:700;
    letter-spacing:4px;
    text-transform:uppercase;
    opacity:.85;
    margin-bottom:18px;
}

.page-hero h1{
    font-size:clamp(32px,5vw,52px);
    font-weight:700;
    letter-spacing:1px;
    text-transform:uppercase;
    line-height:1.15;
    color:#F4F6FA;
}

.page-hero p{
    max-width:640px;
    margin:20px auto 0;
    color:#C8D4EA;
    font-size:15px;
    font-weight:400;
    line-height:1.7;
    opacity:.9;
}

.page-content{
    flex:1;
    width:100%;
    max-width:1200px;
    margin:0 auto;
    padding:0 24px 80px;
}

/* ==========================
   MODAL
========================== */

.modal-overlay{
    position:fixed;
    inset:0;
    z-index:200;
    display:flex;
    align-items:center;
    justify-content:center;
    padding:24px;
    background:rgba(2,8,14,.68);
    backdrop-filter:blur(6px);
    -webkit-backdrop-filter:blur(6px);
    opacity:0;
    pointer-events:none;
    transition:opacity .3s ease;
}

.modal-overlay.open{
    opacity:1;
    pointer-events:auto;
}

.modal-box{
    position:relative;
    width:100%;
    max-width:560px;
    max-height:88vh;
    overflow-y:auto;
    border:1px solid rgba(120,180,255,.2);
    border-radius:20px;
    padding:40px;
    background:
        linear-gradient(160deg,rgba(18,35,55,.65),rgba(5,15,25,.9)),
        #07131D;
    box-shadow:0 30px 80px rgba(0,0,0,.5);
    transform:translateY(14px) scale(.97);
    transition:transform .3s ease;
}

.modal-overlay.open .modal-box{
    transform:translateY(0) scale(1);
}

.modal-close{
    position:absolute;
    top:18px;
    right:18px;
    width:34px;
    height:34px;
    display:flex;
    align-items:center;
    justify-content:center;
    border-radius:10px;
    border:1px solid rgba(120,180,255,.2);
    background:rgba(255,255,255,.04);
    color:#D8E4F7;
    font-size:16px;
    line-height:1;
    cursor:pointer;
    transition:.25s;
}

.modal-close:hover{
    background:rgba(88,212,255,.14);
    color:#58D4FF;
}

.modal-box .modal-eyebrow{
    display:inline-block;
    color:#58D4FF;
    font-size:11px;
    font-weight:700;
    letter-spacing:4px;
    text-transform:uppercase;
    opacity:.85;
    margin-bottom:10px;
}

.modal-box h2{
    font-size:clamp(22px,3vw,28px);
    font-weight:700;
    text-transform:uppercase;
    letter-spacing:.4px;
    margin-bottom:12px;
    color:#F4F6FA;
}

.modal-box > p{
    color:#C8D4EA;
    font-size:13.5px;
    line-height:1.7;
    opacity:.88;
    margin-bottom:26px;
}

body.modal-locked{
    overflow:hidden;
}

.form-row{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:20px;
}

.field{
    margin-bottom:20px;
}

.field label{
    display:block;
    font-size:11px;
    font-weight:700;
    letter-spacing:2px;
    text-transform:uppercase;
    color:#D8E4F7;
    opacity:.85;
    margin-bottom:9px;
}

.field input,
.field textarea{
    width:100%;
    padding:13px 15px;
    border-radius:10px;
    border:1px solid rgba(120,180,255,.24);
    background:rgba(6,20,30,.5);
    color:#F4F6FA;
    font-family:'Manrope',sans-serif;
    font-size:14px;
    outline:none;
    transition:.25s;
}

.field input::placeholder,
.field textarea::placeholder{
    color:#7B8FB8;
}

.field input:focus,
.field textarea:focus{
    border-color:#58D4FF;
    background:rgba(6,20,30,.75);
}

.field textarea{
    resize:vertical;
    min-height:110px;
}

.submit-btn{
    width:100%;
    padding:15px;
    border:none;
    border-radius:10px;
    background:linear-gradient(90deg,#1ED9FF,#F4A94A);
    color:#020817;
    font-family:'Manrope',sans-serif;
    font-size:13px;
    font-weight:700;
    letter-spacing:2px;
    text-transform:uppercase;
    cursor:pointer;
    transition:.25s;
}

.submit-btn:hover{
    filter:brightness(1.08);
}

.submit-btn:disabled{
    opacity:.6;
    cursor:not-allowed;
}

.form-status{
    margin-top:16px;
    font-size:13px;
    line-height:1.6;
    display:none;
}

.form-status.show{display:block;}
.form-status.success{color:#5CE0A0;}
.form-status.error{color:#FF8A8A;}

/* ==========================
   MÓVIL
========================== */

@media (max-width:640px){

    .navbar{
        flex-direction:row;
        justify-content:space-between;
        align-items:center;
        height:var(--nav-h-mobile);
        padding:0 12px;
        gap:0;
        border-radius:16px;
    }

    .logo{
        margin-left:0;
        gap:10px;
        min-width:0;
        flex-shrink:1;
    }

    .logo-icon{width:38px;}

    .brand{
        font-size:9px;
        letter-spacing:1px;
    }

    .sub{
        font-size:7px;
        letter-spacing:2px;
    }

    /* El botón hamburguesa aparece; queda a la derecha del selector ES/US */
    .menu-toggle{
        display:flex;
    }

    .language{
        padding:6px 10px;
        font-size:12px;
    }

    /* nav se convierte en panel desplegable, oculto por defecto */
    nav{
        position:fixed;
        top:calc(var(--nav-top) + var(--nav-h-mobile) + 10px);
        left:50%;
        transform:translateX(-50%) translateY(-8px);
        width:min(92vw,360px);
        max-width:360px;
        flex-direction:column;
        justify-content:flex-start;
        align-items:stretch;
        gap:4px;
        padding:14px;
        border-radius:16px;
        border:1px solid rgba(120,180,255,.18);
        background:rgba(4,13,22,.86);
        backdrop-filter:blur(18px);
        -webkit-backdrop-filter:blur(18px);
        box-shadow:0 20px 50px rgba(0,0,0,.4);
        opacity:0;
        pointer-events:none;
        transition:opacity .28s ease,transform .28s ease;
        z-index:99;
    }

    nav.open{
        opacity:1;
        pointer-events:auto;
        transform:translateX(-50%) translateY(0);
    }

    nav a{
        width:100%;
        padding:12px 14px;
        border-radius:10px;
        font-size:13px;
        letter-spacing:1.5px;
        text-align:center;
    }

    nav a:hover,
    nav a.active{
        background:rgba(88,212,255,.1);
    }

    nav a.active::after{
        display:none;
    }
}
