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

.site-header{
    position: fixed;
    top: 20px;
    left: 0;
    width: 100%;
    z-index: 1050;
    opacity:0;
    transform:translateY(-18px) scale(.98);
    animation:navbarReveal .75s cubic-bezier(.175,.885,.32,1.1) forwards;
    animation-delay:.15s;

    transition:all .45s cubic-bezier(.175,.885,.32,1.1);
}

@keyframes navbarReveal{
    to{
        opacity:1;
        transform:translateY(0) scale(1);
    }
}


/* ==========================================================
   GLASS NAVBAR
========================================================== */

.nav-glass{
    min-height:74px;
    padding:.75rem 1.75rem;
    border-radius:var(--radius-xl);
    background:rgba(255,255,255,.08);
    border:1px solid rgba(255,255,255,.12);
    backdrop-filter:blur(20px);
    -webkit-backdrop-filter:blur(20px);

    box-shadow: none;
    transition:
        background .45s ease,
        backdrop-filter .45s ease,
        box-shadow .45s ease,
        border-color .45s ease,
        transform .45s ease;
}


/* ==========================================================
   BRAND
========================================================== */

.brand-logo{
    display:flex;
    flex-direction:column;
    text-decoration:none;
    line-height:1;
    margin-left: 15px;
}

.brand-logo:hover{
    text-decoration:none;
}

.brand-text{
    font-family:var(--font-heading);
    font-size:1.9rem;
    font-weight:700;
    letter-spacing:5px;
    color:#fff;
}

.brand-tagline{
    margin-top:4px;
    font-size:.60rem;
    letter-spacing:.38em;
    text-transform:uppercase;
    color:rgba(255,255,255,.75);
}

/* ==========================================================
   FLIP LETTER
========================================================== */

.flip-letter{
    position:relative;
    display:inline-block;
    height:.7em;
    perspective:600px;
    transform-style:preserve-3d;
}

.flip-letter::after{
    content:"";
    position:absolute;
    inset:-8px;
    border-radius:50%;
    background:radial-gradient(
        circle,
        rgba(59,130,246,.65),
        rgba(59,130,246,.15) 45%,
        transparent 75%
    );

    opacity:0;
    transform:scale(.5);
    pointer-events:none;
}

.flip-inner{
    position:relative;
    transform-style:preserve-3d;
    /*transition:transform .7s cubic-bezier(.68,-0.3,.27,1.3);*/
    transition: transform .75s cubic-bezier(.175,.885,.32,1.275), filter .35s ease;
}

.flip-letter span{
    position:absolute;
    inset:0;
    display:flex;
    justify-content:center;
    align-items:center;
    backface-visibility:hidden;
    transition:transform .65s cubic-bezier(.68,-0.3,.27,1.3);
}

.front,
.back{
    position:absolute;
    inset:0;
    display:flex;
    justify-content:center;
    align-items:center;
    backface-visibility:hidden;
}

.front{
   color:var(--primary);
   transform:rotateY(180deg);
}

.back{
   color:var(--white);
   transform:rotateY(0deg);
}

.brand-logo.loaded .flip-inner{
    transform:rotateY(180deg);
}

.brand-logo:hover .flip-inner{
    transform:rotateY(0deg);
}

.brand-logo.glow .flip-letter::after{
    animation:logoGlow .45s ease forwards;
}

@keyframes logoGlow{

    0%{
        opacity:0;
        transform:scale(.4);
    }

    40%{
        opacity:1;
        transform:scale(1.3);
    }

    100%{
        opacity:0;
        transform:scale(1.8);
    }

}

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

.navbar-nav{
    gap:2.25rem;
}

.navbar-collapse{
    transition:all .35s ease;
}

.nav-link{
    position:relative;
    padding:.35rem 0 !important;
    font-weight:500;
    color:#fff !important;
    transition:.3s ease;
}

.nav-link:hover{
    color:var(--primary) !important;
}

.nav-link.active{
    color:var(--primary) !important;
}


/* ==========================================================
   UNDERLINE
========================================================== */

.nav-link::after{
    content:"";
    position:absolute;
    left:50%;
    bottom:-6px;
    width:0;
    height:2px;
    background:var(--primary);
    transform:translateX(-50%);
    border-radius:var(--radius-lg);
    transition:width .35s ease;
}

.nav-link:hover::after,
.nav-link.active::after{
    width:100%;
}

/* ==========================================================
   BUTTON
========================================================== */

.btn-quote{
    display:inline-flex;
    align-items:center;
    gap:.75rem;
    padding:14px 26px;
    border-radius:var(--radius-pill);
    background:var(--gradient-primary);
    color:#fff;
    font-weight:600;
    text-decoration:none;
    transition:.35s;
}

.btn-quote:hover{
    color:#fff;
    transform:translateY(-2px);
    box-shadow:var(--shadow-md);
}

.btn-quote i{
    transition:.3s;
}

.btn-quote:hover i{
    transform:translateX(4px);
}


/* ==========================================================
   TOGGLER
========================================================== */

.navbar-toggler{
    border:none;
    box-shadow:none !important;
    padding:0;
}

.navbar-toggler:focus{
    box-shadow:none;
}

.navbar-toggler i{
    color:#fff;
    font-size:1.8rem;
    transition:.35s;
}


/* ==========================================================
   SCROLL STATE
========================================================== */

.site-header.scrolled .nav-glass{

    background:rgba(10,20,40,.82);
    border:1px solid rgba(255,255,255,.08);

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

    box-shadow: var(--shadow-md);
}
