/*==============================================================
FELIPE OLIVEROS
HEADER 3.0
Version 1.0
==============================================================*/



/*==============================================================
VARIABLES
==============================================================*/

:root{

    --header-height:96px;
    --header-height-scroll:82px;

    --header-radius:22px;

    --header-blur:20px;

    --header-transition:.35s cubic-bezier(.22,1,.36,1);

}



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

.site-header{

    position:fixed;

    top:18px;
    left:0;

    width:100%;
    height:var(--header-height);

    z-index:1000;

    display:flex;
    align-items:center;

    background:transparent;

    transition:

        top var(--header-transition),

        height var(--header-transition),

        background var(--header-transition),

        backdrop-filter var(--header-transition),

        box-shadow var(--header-transition);

}



.site-header.scrolled{

    top:0;

    height:var(--header-height-scroll);

    background:rgba(255,255,255,.92);

    backdrop-filter:blur(var(--header-blur));
    -webkit-backdrop-filter:blur(var(--header-blur));

    box-shadow:

        0 18px 40px rgba(0,0,0,.06);

}



/*==============================================================
CONTAINER
==============================================================*/

.site-header .container{

    height:100%;

}



.header-inner{

    height:100%;

    display:flex;

    align-items:center;

    justify-content:space-between;

    gap:48px;

}



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

.site-logo{

    display:flex;

    align-items:center;

    flex-shrink:0;

    text-decoration:none;

}



.site-logo img{

    display:block;

    height:68px;

    width:auto;

    transition:

        transform .35s ease,

        opacity .35s ease;

}



.site-logo:hover img{

    transform:scale(.98);

    opacity:.9;

}



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

.site-navigation{

    margin-left:auto;

}



.site-menu{

    display:flex;

    align-items:center;

    gap:42px;

    list-style:none;

    margin:0;

    padding:0;

}



.site-menu>li{

    position:relative;

}



.site-menu a,

.menu-trigger{

    display:flex;

    align-items:center;

    gap:8px;

    border:none;

    background:none;

    color:#ffffff;

    text-decoration:none;

    font-weight:500;

    cursor:pointer;

    transition:

        color .30s ease;

}



.site-menu a:hover,

.menu-trigger:hover{

    color:var(--color-gold);

}



.site-header.scrolled .site-menu a,

.site-header.scrolled .menu-trigger{

    color:var(--color-black);

}



/*==============================================================
CTA
==============================================================*/

.site-actions{

    display:flex;

    align-items:center;

    flex-shrink:0;

    margin-left:40px;

}



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

.menu-toggle{

    display:none;

    position:relative;

    width:52px;

    height:52px;

    border:none;

    background:none;

    cursor:pointer;

}



.menu-toggle span{

    position:absolute;

    left:50%;

    width:24px;

    height:2px;

    border-radius:999px;

    background:var(--color-gold);

    transform:translateX(-50%);

    transition:.35s;

}



.menu-toggle span:nth-child(1){

    top:17px;

}



.menu-toggle span:nth-child(2){

    top:25px;

}



.menu-toggle span:nth-child(3){

    top:33px;

}



.menu-toggle.active span:nth-child(1){

    top:25px;

    transform:translateX(-50%) rotate(45deg);

}



.menu-toggle.active span:nth-child(2){

    opacity:0;

}



.menu-toggle.active span:nth-child(3){

    top:25px;

    transform:translateX(-50%) rotate(-45deg);

}
/*==============================================================
MEGA MENU
==============================================================*/

.mega-menu{

    position:absolute;

    top:calc(100% + 18px);
    left:50%;

    width:min(900px,92vw);

    display:grid;

    grid-template-columns:320px 1fr;

    gap:56px;

    padding:42px;

    border-radius:26px;

    background:rgba(255,255,255,.98);

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

    box-shadow:

        0 30px 80px rgba(0,0,0,.08),

        0 10px 25px rgba(0,0,0,.05);

    transform:

        translateX(-50%)

        translateY(20px)

        scale(.98);

    opacity:0;

    visibility:hidden;

    pointer-events:none;

    transition:

        opacity .35s ease,

        transform .35s cubic-bezier(.22,1,.36,1),

        visibility .35s;

}
.menu-services.active .mega-menu{

    opacity:1;

    visibility:visible;

    pointer-events:auto;

    transform:

        translateX(-50%)

        translateY(0)

        scale(1);

}

/*==============================================================
MENU SERVICES
==============================================================*/

.menu-services{

    position:relative;

}

.site-menu > li{

    position:relative;

}
/*==============================================================
LEFT COLUMN
==============================================================*/

.mega-left{

    display:flex;

    flex-direction:column;

}

.mega-label{

    margin-bottom:18px;

    color:var(--color-gold);

    font-size:.72rem;

    font-weight:700;

    letter-spacing:.22em;

    text-transform:uppercase;

}

.mega-left h2{

    font-size:2rem;

    line-height:1.08;

    margin-bottom:26px;

    letter-spacing:-.05em;

}

.mega-line{

    width:70px;

    height:2px;

    border-radius:999px;

    background:var(--color-gold);

    margin-bottom:28px;

}

.mega-left p{

    color:var(--color-gray);

    line-height:1.8;

}
.mega-signature{

    margin-top:auto;

    padding-top:38px;

    border-top:1px solid rgba(0,0,0,.06);

}

.mega-signature strong{

    display:block;

    margin-bottom:14px;

    font-size:1.45rem;

}

.signature-role{

    display:flex;

    align-items:center;

    gap:8px;

    font-size:.70rem;

    letter-spacing:.08em;

    text-transform:uppercase;

    color:#777;

}

.separator{

    color:var(--color-gold);

}
/*==============================================================
RIGHT COLUMN
==============================================================*/

.mega-right{

    display:flex;

    flex-direction:column;

}
/*==============================================================
CARD
==============================================================*/

.mega-card{

    display:grid;

    grid-template-columns:58px 1fr 24px;

    gap:22px;

    align-items:center;

    padding:18px;

    border-radius:18px;

    text-decoration:none;

    transition:

        background .30s ease,

        transform .30s ease,

        box-shadow .30s ease;

}

.mega-card + .mega-card{

    margin-top:8px;

}

.mega-card:hover{

    background:#fafafa;

    transform:translateX(8px);

    box-shadow:

        0 14px 34px rgba(0,0,0,.05);

}
/*==============================================================
ICON
==============================================================*/

.mega-icon{

    width:58px;

    height:58px;

    display:flex;

    align-items:center;

    justify-content:center;

    border-radius:18px;

    background:#fafafa;

    border:1px solid rgba(0,0,0,.06);

}

.mega-icon img{

    width:28px;

    height:28px;

}
/*==============================================================
CONTENT
==============================================================*/

.mega-content h3{

    margin-bottom:6px;

    color:var(--color-black);

    font-size:1rem;

}

.mega-content p{

    color:var(--color-gray);

    line-height:1.6;

    font-size:.90rem;

}
/*==============================================================
ARROW
==============================================================*/

.mega-arrow{

    opacity:0;

    color:var(--color-gold);

    transform:translateX(-10px);

    transition:.30s ease;

}

.mega-card:hover .mega-arrow{

    opacity:1;

    transform:none;

}
/*==============================================================
OVERLAY
==============================================================*/

.menu-overlay{

    position:fixed;

    inset:0;

    z-index:900;

    opacity:0;

    visibility:hidden;

    background:rgba(0,0,0,.30);

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

    transition:

        opacity .35s ease,

        visibility .35s ease;

}

.menu-overlay.active{

    opacity:1;

    visibility:visible;

}
/*==============================================================
HEADER BUTTON
==============================================================*/

.site-header .btn-primary{

    position:relative;

    overflow:hidden;

    display:inline-flex;

    align-items:center;

    justify-content:center;

    min-width:180px;

    height:54px;

    padding:0 34px;

    border-radius:999px;

    color:#ffffff;

    text-decoration:none;

    font-weight:600;

    background:rgba(255,255,255,.05);

    border:1px solid rgba(255,255,255,.14);

    backdrop-filter:blur(18px);

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

    transition:

        background .35s ease,

        border-color .35s ease,

        transform .35s ease,

        box-shadow .35s ease,

        color .35s ease;

}
.site-header .btn-primary::before{

    content:"";

    position:absolute;

    inset:0;

    left:-130%;

    width:60%;

    background:

        linear-gradient(

            90deg,

            transparent,

            rgba(255,255,255,.45),

            transparent

        );

    transition:1s;

}
.site-header .btn-primary:hover{

    transform:translateY(-2px);

    background:rgba(198,155,88,.12);

    border-color:rgba(198,155,88,.60);

    box-shadow:

        0 12px 36px rgba(198,155,88,.20);

}

.site-header .btn-primary:hover::before{

    left:150%;

}
.site-header.scrolled .btn-primary{

    color:#ffffff;

    background:#111111;

    border-color:#111111;

    backdrop-filter:none;

}

.site-header.scrolled .btn-primary:hover{

    color:#111111;

    background:var(--color-gold);

    border-color:var(--color-gold);

}
/*==============================================================
MEGA CONTENT
==============================================================*/

#megaTitle,

#megaDescription,

#megaSignature{

    transition:

        opacity .22s ease,

        transform .22s ease;

}
#megaTitle.changing,

#megaDescription.changing{

    opacity:0;

    transform:translateY(12px);

}
#megaSignature.hidden{

    opacity:0;

    transform:translateY(12px);

    pointer-events:none;

}
/*==============================================================
PERFORMANCE
==============================================================*/

.site-header,

.mega-menu,

.menu-overlay,

.btn-primary{

    will-change:

        transform,

        opacity;

}

/*==============================================================
MOBILE MENU 4.0
==============================================================*/

.mobile-menu{

    position:fixed;
    
    will-change:transform;

    backface-visibility:hidden;

    transform:translate3d(100%,0,0);

    inset:0;

    z-index:9999;

    background:#090909;

    overflow:hidden;

    display:flex;

    justify-content:center;

    transition:transform .38s cubic-bezier(.22,1,.36,1);

}

.mobile-menu.active{

    transform:translate3d(0,0,0);

}

.mobile-menu::before{

    content:"";

    position:absolute;

    inset:0;

    background:

        radial-gradient(circle at top left,

        rgba(198,155,88,.16),

        transparent 40%),

        radial-gradient(circle at bottom right,

        rgba(198,155,88,.10),

        transparent 35%);

}

.mobile-menu::after{

    content:"";

    position:absolute;

    inset:0;

    background-image:

        linear-gradient(

            rgba(255,255,255,.03) 1px,

            transparent 1px

        ),

        linear-gradient(

            90deg,

            rgba(255,255,255,.03) 1px,

            transparent 1px

        );

    background-size:48px 48px;

    opacity:.45;

}

.mobile-wrapper{

    position:relative;

    z-index:2;

    width:min(92%,430px);

    height:100%;

    padding:34px 0 48px;

    overflow-y:auto;

    scrollbar-width:none;

}

.mobile-wrapper::-webkit-scrollbar{

    display:none;

}

.mobile-header{

    display:flex;

    justify-content:space-between;

    align-items:center;

    margin-bottom:58px;

}

.mobile-logo img{

    width:190px;

    height:auto;

}

.mobile-close{

    width:54px;

    height:54px;

    border-radius:50%;

    border:1px solid rgba(255,255,255,.08);

    background:rgba(255,255,255,.04);

    backdrop-filter:blur(18px);

    display:flex;

    justify-content:center;

    align-items:center;

    color:var(--color-gold);

    transition:.35s;

}

.mobile-close:hover{

    transform:rotate(90deg);

    border-color:rgba(198,155,88,.4);

}

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

.mobile-section{
    width:100%;
    margin-bottom:46px;

}


.mobile-section-label{

    display:flex;

    align-items:center;

    gap:18px;

    margin-bottom:24px;

    color:var(--color-gold);

    font-size:.72rem;

    font-weight:700;

    letter-spacing:.22em;

    text-transform:uppercase;

}

.mobile-section-label::after{

    content:"";

    flex:1;

    height:1px;

    background:rgba(198,155,88,.20);

}

.mobile-nav{

    display:flex;

    flex-direction:column;

    gap:18px;

    width:100%;

}


.mobile-nav.secondary{

    display:flex;

    flex-direction:column;

    gap:0;

}

.mobile-nav a{

    position:relative;

    display:flex;

    align-items:center;

    justify-content:space-between;

    width:100%;

    min-height:78px;

    padding:0 24px;

    background:rgba(255,255,255,.035);

    border:1px solid rgba(255,255,255,.08);

    border-radius:24px;

    backdrop-filter:blur(18px);

    text-decoration:none;

    overflow:hidden;

    transition:.35s ease;

}

.mobile-nav.secondary a{

    min-height:auto;

    padding:18px 0;

    background:none;

    border:none;

    border-radius:0;

    backdrop-filter:none;

    box-shadow:none;

}

.mobile-nav.secondary a::before{

    display:none;

}

.mobile-nav.secondary a:hover{

    transform:none;

    background:none;

}

.mobile-card-left{

    display:flex;

    align-items:center;

    gap:18px;

    flex:1;

}

.mobile-nav a::before{

    content:"";

    position:absolute;

    inset:0;

    background:linear-gradient(

        120deg,

        transparent,

        rgba(255,255,255,.06),

        transparent

    );

    transform:translateX(-130%);

    transition:.8s;

}

.mobile-nav a:hover{

    transform:translateY(-3px);

    border-color:rgba(198,155,88,.35);

}

.mobile-nav a:hover::before{

    transform:translateX(120%);

}

.mobile-card-left img{

    width:24px;

    height:24px;

    object-fit:contain;

    filter:

        brightness(0)

        saturate(100%)

        invert(73%)

        sepia(44%)

        saturate(620%)

        hue-rotate(357deg);

    transition:.35s;

}

.mobile-card-left span{

    color:#fff;

    font-size:1.05rem;

    font-weight:500;

    letter-spacing:.02em;

    text-transform:none;

}

.mobile-nav i{

    color:var(--color-gold);

    font-size:1rem;

    opacity:.55;

    transition:.35s;

}

.mobile-nav a:hover i{

    opacity:1;

    transform:translateX(6px);

}

.mobile-nav a:hover img{

    transform:scale(1.12);

}

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

.mobile-cta{

    margin:56px 0;

}

.mobile-cta .btn{

    width:100%;

    height:64px;

    display:flex;

    align-items:center;

    justify-content:center;

    border-radius:999px;

    background:transparent;

    border:2px solid rgba(198,155,88,.70);

    color:#fff;

    font-size:1rem;

    font-weight:600;

    letter-spacing:.04em;

    transition:.35s ease;

}

.mobile-cta .btn:hover{

    background:rgba(198,155,88,.10);

    border-color:var(--color-gold);

    box-shadow:0 12px 30px rgba(198,155,88,.18);

    transform:translateY(-2px);

}

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

.mobile-footer{

    display:flex;

    justify-content:center;

    align-items:center;

    gap:26px;

    padding-top:34px;

    border-top:1px solid rgba(255,255,255,.08);

}

.mobile-footer a{

    width:52px;

    height:52px;

    display:flex;

    align-items:center;

    justify-content:center;

    border-radius:50%;

    background:rgba(255,255,255,.04);

    border:1px solid rgba(255,255,255,.08);

    color:var(--color-gold);

    font-size:1.2rem;

    text-decoration:none;

    transition:.35s ease;

}

.mobile-footer a:hover{

    transform:translateY(-4px);

    background:rgba(198,155,88,.08);

    border-color:rgba(198,155,88,.35);

    color:#fff;

}

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

@media (max-width:1200px){

    .site-navigation,
    .site-actions{

        display:none;

    }

    .menu-toggle{

        display:block;

    }

    .site-header{

        height:82px;

        top:0;

    }

    .site-logo img{

        height:60px;

    }

}

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

@media (max-width:768px){

    .site-header{

        height:76px;

    }

    .site-logo img{

        height:54px;

    }

.mobile-wrapper{

    position:relative;
    z-index:2;

    width:min(92%,430px);

    height:100%;

    display:flex;
    flex-direction:column;

    padding:34px 0 48px;

    overflow-y:auto;

}

.mobile-wrapper::-webkit-scrollbar{

    display:none;

}


    .mobile-nav a{

        padding:16px;

    }

}

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

@media(max-width:480px){

    .mobile-wrapper{

        width:calc(100% - 34px);

        padding:26px 0 40px;

    }

    .mobile-header{

        margin-bottom:42px;

    }

    .mobile-footer{

        gap:18px;

        flex-wrap:wrap;

    }

}
.mobile-section{

    opacity:0;

    transform:translateY(20px);

    animation:mobileReveal .6s ease forwards;

}

.mobile-section:nth-child(2){

    animation-delay:.10s;

}

.mobile-section:nth-child(3){

    animation-delay:.20s;

}

.mobile-cta{

    opacity:0;

    transform:translateY(20px);

    animation:mobileReveal .6s ease .30s forwards;

}

.mobile-footer{

    opacity:0;

    transform:translateY(20px);

    animation:mobileReveal .6s ease .40s forwards;

}
/*==============================================================
BODY LOCK
==============================================================*/

body.menu-open{

    overflow:hidden;

    touch-action:none;

}

/*==============================================================
ACCESSIBILITY
==============================================================*/

.site-menu a:focus-visible,

.menu-trigger:focus-visible,

.mobile-nav a:focus-visible,

.btn-primary:focus-visible{

    outline:2px solid var(--color-gold);

    outline-offset:5px;

}

/*==============================================================
KEYFRAMES
==============================================================*/

@keyframes mobileFade{

    from{

        opacity:0;

        transform:translateY(24px);

    }

    to{

        opacity:1;

        transform:none;

    }

}

@keyframes linkReveal{

    from{

        opacity:0;

        transform:translateX(-16px);

    }

    to{

        opacity:1;

        transform:none;

    }

}

@keyframes mobileReveal{

    from{

        opacity:0;

        transform:translateY(22px);

    }

    to{

        opacity:1;

        transform:none;

    }

}
/*==============================================================
PERFORMANCE
==============================================================*/

.site-header,

.menu-overlay,

.mobile-menu,

.mega-menu{

    will-change:

        transform,

        opacity;

}

/*==============================================================
REDUCED MOTION
==============================================================*/

@media (prefers-reduced-motion: reduce){

    *{

        animation:none !important;

        transition:none !important;

        scroll-behavior:auto !important;

    }

}

/*==============================================================
Simple Link
==============================================================*/
.mobile-simple-link{

    display:flex;

    align-items:center;

    justify-content:space-between;

    width:100%;

    padding:18px 0;

    color:#ffffff;

    text-decoration:none;

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

}

.mobile-simple-link span{

    color:#ffffff;

    font-size:1.15rem;

    font-weight:500;

    letter-spacing:.01em;

}

.mobile-simple-link i{

    color:var(--color-gold);

    font-size:1rem;

}

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

.mobile-cta{

    margin:14px 0 42px;

}

.mobile-cta-card{

    display:flex;

    align-items:center;

    gap:22px;

    padding:22px;

    border:2px solid rgba(198,155,88,.75);

    border-radius:40px;

    text-decoration:none;

    color:#fff;
    
    transition:
        transform .35s ease,
        border-color .35s ease,
        box-shadow .35s ease,
        background .35s ease;

}

.mobile-cta-card:hover{

    transform:translateY(-2px);

    background:rgba(198,155,88,.04);

    border-color:#d8b36b;

    box-shadow:0 8px 22px rgba(198,155,88,.12);

}
.mobile-cta-icon{

    transition:.35s ease;

}

.mobile-cta-arrow{

    transition:.35s ease;

}

.mobile-cta-content strong{

    transition:.35s ease;

}

.mobile-cta-card:hover .mobile-cta-icon{

    background:rgba(198,155,88,.10);

    transform:scale(1.06);

}

.mobile-cta-card:hover .mobile-cta-arrow{

    transform:translateX(8px);

}

.mobile-cta-card:hover .mobile-cta-content strong{

    color:#e8c980;

}

.mobile-cta-icon{

    width:58px;

    height:58px;

    border-radius:50%;

    display:flex;

    align-items:center;

    justify-content:center;

    border:1px solid rgba(198,155,88,.35);

    color:var(--color-gold);

    font-size:1.4rem;

}

.mobile-cta-content{

    flex:1;

}

.mobile-cta-content strong{

    display:block;

    font-size:1.45rem;

    color:var(--color-gold);

}

.mobile-cta-content span{

    display:block;

    margin-top:6px;

    font-size:.82rem;

    letter-spacing:.18em;

    color:#fff;

    opacity:.8;

}

.mobile-cta-arrow{

    font-size:1.3rem;

    color:var(--color-gold);

}

.mobile-cta-icon,
.mobile-cta-arrow,
.mobile-cta-content strong{

    transition:all .35s ease;

}

.mobile-cta-card:hover .mobile-cta-icon{

    background:rgba(198,155,88,.08);

    border-color:#d8b36b;

    transform:scale(1.05);

}

.mobile-cta-card:hover .mobile-cta-arrow{

    transform:translateX(6px);

}

.mobile-cta-card:hover .mobile-cta-content strong{

    color:#e8c980;

}

.mobile-cta-card:active{

    transform:scale(.985);

}