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

.site-header{

    position:fixed;
    top:0;
    left:0;

    width:100%;

    height:var(--header-height);

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

    backdrop-filter:blur(14px);

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

    border-bottom:1px solid rgba(227,235,243,.8);

    z-index:var(--z-header);

    transition:var(--transition);

}

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

.header-container{

    max-width:var(--container);

    height:100%;

    margin:auto;

    padding:0 40px;

    display:flex;

    justify-content:space-between;

    align-items:center;

}

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

.logo{

    display:flex;

    align-items:center;

    gap:12px;

    text-decoration:none;

    color:inherit;

    min-width:0;

}

.logo img{

    height:auto;

    width:auto;

    max-height:calc(var(--header-height) - 28px);

    max-width:72px;

    object-fit:contain;

    object-position:center;

    display:block;

    flex-shrink:0;

    transition:var(--transition);

}

.logo-text{

    display:flex;

    flex-direction:column;

    justify-content:center;

    line-height:1.1;

    min-width:0;

}

.logo-name{

    display:block;

    font-family:var(--font-heading);

    font-size:clamp(1.15rem, 1.6vw, 1.55rem);

    font-weight:700;

    letter-spacing:0.01em;

    color:var(--primary);

    white-space:nowrap;

}

.logo-legal{

    display:block;

    margin-top:3px;

    font-family:var(--font-body);

    font-size:clamp(0.62rem, 0.85vw, 0.78rem);

    font-weight:700;

    letter-spacing:0.08em;

    text-transform:uppercase;

    color:var(--text-light);

    white-space:nowrap;

}

.logo:hover img{

    transform:scale(1.02);

}

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

.main-nav{

    margin-left:auto;

    margin-right:40px;

}

.main-nav ul{

    display:flex;

    align-items:center;

    gap:38px;

    list-style:none;

}

.main-nav li{

    list-style:none;

}

.main-nav a{

    position:relative;

    display:inline-block;

    font-family:var(--font-body);

    font-size:15px;

    font-weight:700;

    color:var(--text);

    text-decoration:none;

    transition:var(--transition);

}

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

.main-nav a::after{

    content:"";

    position:absolute;

    left:0;

    bottom:-8px;

    width:0;

    height:3px;

    background:var(--accent);

    border-radius:50px;

    transition:.30s;

}

.main-nav a:hover{

    color:var(--primary);

}

.main-nav a:hover::after{

    width:100%;

}

/* Current page marker */

.main-nav a.is-active,
.main-nav a[aria-current="page"]{

    color:var(--primary);

}

.main-nav a.is-active::after,
.main-nav a[aria-current="page"]::after{

    width:100%;

}

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

.primary-button{
 
    display:inline-flex;
 
    align-items:center;
 
    justify-content:center;
 
    padding:15px 28px;
 
    background:var(--primary);
 
    color:#fff;
 
    text-decoration:none;
 
    border-radius:999px;
 
    font-family:var(--font-body);
 
    font-size:15px;
 
    font-weight:700;
 
    transition:var(--transition);
 
    box-shadow:0 12px 28px rgba(14,73,124,.22);
 
}

.primary-button:hover{
 
    background:var(--primary-dark);
 
    transform:translateY(-2px);
 
    box-shadow:0 18px 36px rgba(10,53,90,.28);
 
}

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

.site-header.scrolled{

    height:78px;

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

    box-shadow:0 12px 30px rgba(10,53,90,.08);

}

.site-header.scrolled .logo img{

    max-height:50px;

    max-width:60px;

}

.site-header.scrolled .logo-name{

    font-size:clamp(1rem, 1.4vw, 1.3rem);

}

.site-header.scrolled .logo-legal{

    font-size:clamp(0.58rem, 0.75vw, 0.7rem);

}

/*=========================================================
  MOBILE NAV TOGGLE
=========================================================*/

.nav-toggle{

    display:none;

    flex-direction:column;

    justify-content:center;

    align-items:center;

    gap:5px;

    width:44px;

    height:44px;

    margin-left:auto;

    padding:0;

    border:1.5px solid var(--border);

    border-radius:8px;

    background:#fff;

    cursor:pointer;

    z-index:2;

}

.nav-toggle-bar{

    display:block;

    width:18px;

    height:2px;

    border-radius:2px;

    background:var(--primary);

    transition:transform .25s ease, opacity .2s ease;

}

.site-header.nav-open .nav-toggle-bar:nth-child(1){

    transform:translateY(7px) rotate(45deg);

}

.site-header.nav-open .nav-toggle-bar:nth-child(2){

    opacity:0;

}

.site-header.nav-open .nav-toggle-bar:nth-child(3){

    transform:translateY(-7px) rotate(-45deg);

}

body.nav-lock{

    overflow:hidden;

}

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

@media(max-width:1100px){

    .header-container{

        position:relative;

        flex-wrap:wrap;

        row-gap:0;

    }

    .nav-toggle{

        display:inline-flex;

    }

    .main-nav{

        display:block;

        order:3;

        width:100%;

        margin:0;

        max-height:0;

        overflow:hidden;

        background:#fff;

        border-top:0 solid transparent;

        transition:max-height .35s ease, border-color .2s ease, box-shadow .25s ease;

    }

    .site-header.nav-open .main-nav{

        max-height:min(70vh, 520px);

        overflow-y:auto;

        border-top:1px solid var(--border);

        box-shadow:0 16px 28px rgba(10,53,90,.08);

    }

    .main-nav ul{

        flex-direction:column;

        align-items:stretch;

        gap:0;

        padding:8px 4px 16px;

    }

    .main-nav a{

        display:block;

        padding:14px 8px;

        border-bottom:1px solid var(--border);

        font-size:16px;

    }

    .main-nav a::after{

        display:none;

    }

    .main-nav a.is-active,
    .main-nav a[aria-current="page"]{

        padding-left:13px;

        border-left:3px solid var(--accent);

        background:rgba(224,120,32,.08);

    }

    .primary-button{

        display:none;

        order:4;

        width:100%;

        margin:0 0 16px;

        border-radius:8px;

        text-align:center;

    }

    .site-header.nav-open .primary-button{

        display:inline-flex;

    }

}

@media(max-width:768px){

    .header-container{

        padding:0 20px;

    }

    .logo img{

        max-height:42px;

        max-width:52px;

    }

    .logo{

        gap:8px;

    }

    .logo-name{

        font-size:1.05rem;

    }

    .logo-legal{

        font-size:0.58rem;

        letter-spacing:0.06em;

    }

}
