/*=========================================================
    HEADER.CSS
    DESKTOP HEADER
    Delight Duct Care
=========================================================*/
/*=========================================================
    HEADER
=========================================================*/

.site-header{

    position:fixed;
    top:0;
    left:0;
    width:100%;
    z-index:1000;

    transition:transform .5s cubic-bezier(.22,.61,.36,1);

}

/* slides the whole header (top-bar + navbar) up out of view;
   .scroll-progress lives OUTSIDE .site-header in the markup so
   it's never dragged along with this transform */
.site-header.header--hidden{

    transform:translateY(-100%);

}

/*=========================================================
    SCROLL BAR
=========================================================*/

.scroll-progress{

    position:fixed;
    top:0;
    left:0;
    width:0;
    height:4px;
    z-index:99999;

    background: linear-gradient(90deg, #4fd025a1, #3cbd1c, #0f7b18);

    box-shadow:
        0 0 18px rgba(0,212,255,.5);

    transition:width .08s linear;

}

.scroll-progress::after {
    content: "";
    position: absolute;
    right: -10px;
    top: 50%;
    width: 44px;
    height: 22px;
    transform: translateY(-73%);
    border-radius: 45%;
    background: #bf9c1d;
    filter: blur(12px);
}
/*=========================================================
    CONTAINER
=========================================================*/

.site-header .container{

    width:min(1280px,calc(100% - 50px));
    margin:auto;

}

/*=========================================================
    TOP BAR
=========================================================*/

.top-bar{

    height:42px;

    background:rgba(6,20,42,.96);

    backdrop-filter:blur(18px);

    border-bottom:1px solid rgba(255,255,255,.08);

    transition:.45s;

}

.top-bar .container{

    display:flex;

    justify-content:space-between;

    align-items:center;

    height:100%;

}

.top-left,
.top-right{

    display:flex;

    align-items:center;

    gap:24px;

}

.top-left span{

    display:flex;

    align-items:center;

    gap:8px;

    font-size:13px;

    color:#fff;

}

.top-left i{

    color:#E7C233;

}

.top-right a{

    width:34px;
    height:34px;

    display:flex;
    justify-content:center;
    align-items:center;

    border-radius:50%;

    color:#fff;

    transition:.35s;

}

.top-right a:hover{

    background:rgba(255,255,255,.12);

    transform:translateY(-2px);

}

/*=========================================================
    NAVBAR
=========================================================*/

.navbar{

    width:100%;

    transition:.5s;

}

.navbar-glass{

    background: rgb(8 21 43 / 62%);

    backdrop-filter:blur(22px);

    border-bottom:1px solid rgba(255,255,255,.08);

    transition:.45s;

}

.navbar .container{

    min-height:120px;

    display:flex;

    flex-direction:column;

    justify-content:center;

    align-items:center;

    position:relative;

    transition:.45s;

}

/*=========================================================
    LOGO
=========================================================*/

.brand-wrapper{

    margin-top:5px;

    transition:.45s;

}

.nav_logo-area{

    display:flex;

    align-items:center;

    justify-content:center;

    gap:18px;

    text-decoration:none;

}

.nav-logo img{

    width: 75px;

    transition:.45s;

}

.nav-logo__content{

    display:flex;

    flex-direction:column;

    justify-content:center;

    align-items:flex-start;

    margin-top:0;

    transition:
        opacity .45s ease,
        transform .45s ease;

}

.nav-logo__title{

    margin:0;

    font-family:'Poppins', sans-serif;

    font-size:34px;

    font-weight:800;

    color:#fff;

    line-height:1.05;

    letter-spacing:.4px;

}

.nav-logo__subtitle{

    margin-top:4px;

    font-size:13px;

    letter-spacing:2px;

    text-transform:uppercase;

    color:#fffffd;

}

/*=========================================================
    NAVIGATION
=========================================================*/

.nav-wrapper{

    width:100%;

    display:flex;

    justify-content:center;

    margin-top:10px;

    transition:.45s;

}

.nav-menu{

    display:flex;

    align-items:center;

    gap:28px;

    list-style:none;

    margin:0;

    padding:0;

}

.nav-item{

    position:relative;

}

/*=========================================================
    NAV LINK + UNDERLINE
    (single, clean implementation — see the note in the
    :root block above for why the old one was invisible)
=========================================================*/

.nav-link{

    position:relative;
    overflow:visible;           /* must stay visible or the
                                    underline gets clipped */

    display:flex;

    align-items:center;

    gap:8px;

    color:#fff;

    text-decoration:none;

    font-size:15px;

    font-weight:600;

    padding:12px 0;

    transition:color .35s, transform .35s;

}

.nav-link:hover{

    color:#E7C233;

    transform:translateY(-2px);

}

.nav-link::after{

    content:"";

    position:absolute;

    left:50%;

    bottom:2px;

    width:0;

    height:3px;

    transform:translateX(-50%);

    border-radius:50px;

    background:linear-gradient(
        90deg,
        #E7C233,
        #4FAF6D
    );

    transition:width .35s ease;

}

.nav-link:hover::after,
.nav-link.active::after{

    width:100%;

}

/*=========================================================
    SERVICES MEGA MENU
    10 services in a 3-column grid on the left, one preview
    panel on the right whose image/title/description/button
    swap on hover (and on keyboard focus) — see header.js
=========================================================*/

.has-mega{
    position:relative;
}

.has-mega:hover > .nav-link i,
.has-mega:focus-within > .nav-link i{
    transform:rotate(180deg);
}

.has-mega > .nav-link i{
    transition:transform .3s ease;
}

/* invisible bridge so the mouse can travel from the link
   down to the menu without the gap closing it early */
.has-mega::before{
    content:"";
    position:absolute;
    left:0;
    top:100%;
    width:100%;
    height:16px;
}

.mega-menu{

    position:absolute;
    top:calc(100% + 14px);
    left:50%;
    transform:translateX(-50%) translateY(8px);

    background:#fffffd;
    border:1px solid #E4DEC5;
    border-radius:20px;
    box-shadow:0 24px 48px rgba(22,33,28,.14);

    opacity:0;
    visibility:hidden;
    pointer-events:none;

    transition:opacity .22s ease, transform .22s ease, visibility .22s;

    z-index:500;

}

.has-mega:hover .mega-menu,
.has-mega:focus-within .mega-menu,
.mega-menu:hover{

    opacity:1;
    visibility:visible;
    pointer-events:auto;
    transform:translateX(-50%) translateY(0);

}

.mega-menu--services{
    width:min(880px, 92vw);
    padding:28px;
    display:grid;
    grid-template-columns:1fr 300px;
    gap:28px;
}

.mega-services__label{
    font-family:'Poppins', sans-serif;
    font-size:12px;
    font-weight:700;
    letter-spacing:.08em;
    text-transform:uppercase;
    color:#B4901A;
    margin:0 0 14px;
    padding-bottom:10px;
    border-bottom:2px solid #F1EEDD;
}

.mega-services__grid{
    display:grid;
    grid-template-columns:repeat(3, 1fr);
    gap:4px 14px;
}

.mega-service-link{
    display:flex;
    align-items:center;
    gap:10px;
    font-family:'Inter', sans-serif;
    font-weight:600;
    font-size:13.5px;
    line-height:1.3;
    color:#5B6152;
    text-decoration:none;
    padding:11px 10px;
    border-radius:10px;
    transition:background .18s ease, color .18s ease, transform .18s ease;
}

.mega-service-link i{
    width:24px;
    height:24px;
    flex-shrink:0;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    border-radius:50%;
    background:#F1EEDD;
    color:#B4901A;
    font-size:11px;
    transition:background .18s ease, color .18s ease;
}

.mega-service-link:hover,
.mega-service-link:focus-visible,
.mega-service-link.is-active{
    background:#F1EEDD;
    color:#1B2118;
    transform:translateX(4px);
}

.mega-service-link:hover i,
.mega-service-link:focus-visible i,
.mega-service-link.is-active i{
    background:#4FAF6D;
    color:#fff;
}

/* ---- preview panel ---- */

.mega-promo{
    position:relative;
    border-radius:16px;
    overflow:hidden;
    background:#1B2118;
    min-height:320px;
}

.mega-promo img{
    position:absolute;
    inset:0;
    width:100%;
    height:100%;
    object-fit:cover;
    opacity:.6;
    transition:opacity .25s ease;
}

.mega-promo.is-swapping img{
    opacity:0;
}

.mega-overlay{
    position:relative;
    height:100%;
    padding:10px;
    bottom: 10px;
    display:flex;
    flex-direction:column;
    justify-content:flex-end;
    gap:8px;
    background:linear-gradient(180deg, rgba(22,33,28,.15) 0%, rgba(22,33,28,.92) 100%);
}

.mega-overlay .badge{
    align-self:flex-start;
    font-family:'Inter', sans-serif;
    font-size:10.5px;
    font-weight:600;
    letter-spacing:.06em;
    text-transform:uppercase;
    color:#1B2118;
    background:#E7C233;
    padding:5px 10px;
    border-radius:20px;
}

.mega-overlay h2{
    font-family:'Poppins', sans-serif;
    font-size:18px;
    font-weight:700;
    line-height:1.25;
    color:#fff;
    margin:0;
    transition:opacity .2s ease;
}

.mega-overlay p{
    font-family:'Inter', sans-serif;
    font-size:12.5px;
    line-height:1.5;
    color:rgba(255,255,255,.75);
    margin:0 0 4px;
    transition:opacity .2s ease;
}

.mega-promo.is-swapping h2,
.mega-promo.is-swapping p{
    opacity:0;
}

.mega-btn{
    display:inline-flex;
    align-items:center;
    gap:8px;
    align-self:flex-start;
    font-family:'Inter', sans-serif;
    font-weight:600;
    font-size:12.5px;
    color:#fff;
    background:#4FAF6D;
    padding:10px 16px;
    border-radius:30px;
    text-decoration:none;
    transition:background .2s ease, gap .2s ease;
}

.mega-btn:hover{
    background:#E7C233;
    color:#1B2118;
    gap:12px;
}

.mega-btn i{
    transition:transform .3s ease;
}

.mega-btn:hover i{
    transform:translateX(4px);
}

/* scrolled / sticky state */

.navbar.scrolled .mega-menu{
    top:calc(100% + 10px);
}

/*=========================================================
    STICKY NAVBAR
=========================================================*/
/*=========================================================
    STICKY NAVIGATION
=========================================================*/

.navbar{

    position:relative;
    transition:all .55s cubic-bezier(.22,.61,.36,1);

}

.navbar .container{

    position:relative;
    min-height:135px;

    display:flex;
    flex-direction:column;
    justify-content:center;
    align-items:center;

    transition:all .55s cubic-bezier(.22,.61,.36,1);

}

/*---------------------------------------------------------*/

.brand-wrapper{

    position:relative;

    transition:
        transform .55s cubic-bezier(.22,.61,.36,1),
        margin .55s cubic-bezier(.22,.61,.36,1);

}

.nav_logo-area{

    transition:all .55s cubic-bezier(.22,.61,.36,1);

}

.nav-logo img{

    transition:
        width .55s cubic-bezier(.22,.61,.36,1),
        transform .55s cubic-bezier(.22,.61,.36,1);

}

.nav-logo__content{

    transition:
        opacity .45s ease,
        transform .55s cubic-bezier(.22,.61,.36,1),
        max-height .55s;

}

/*---------------------------------------------------------*/

.nav-wrapper{

    transition:
        margin .55s cubic-bezier(.22,.61,.36,1),
        transform .55s cubic-bezier(.22,.61,.36,1);

}

/*=========================================================
    STICKY STATE
=========================================================*/

.navbar.scrolled .container{
    max-width: 1280px;
    min-height:82px;

    flex-direction:row;

    align-items:center;

}

/* logo slides left */

.navbar.scrolled .brand-wrapper{

    margin:0;

    transform:translateX(-5px);

}

/* logo smaller */

.navbar.scrolled .nav-logo img{

    width:62px;

}

/* menu slides into place */

.navbar.scrolled .nav-wrapper{

    margin:0 auto;

    width:auto;

    padding-left:60px;

}
/*=========================================================
    STICKY LOGO LAYOUT
=========================================================*/

.navbar.scrolled .nav_logo-area{

    gap:14px;

}

.navbar.scrolled .nav-logo img{

    width:58px;

}

.navbar.scrolled .nav-logo__content{

    opacity:1;

    max-height:100px;

    transform:none;

}

.navbar.scrolled .nav-logo__title{

    font-size:24px;

}

.navbar.scrolled .nav-logo__subtitle{

    font-size:10px;

    letter-spacing:1.4px;

}
/*=========================================================
    MOBILE NAVIGATION
=========================================================*/

.mobile-toggle{

    display:none;

    width:54px;

    height:54px;

    border:none;

    border-radius:14px;

    cursor:pointer;

    background:rgba(255,255,255,.08);

    backdrop-filter:blur(18px);

    -webkit-backdrop-filter:blur(18px);

    align-items:center;

    justify-content:center;

    flex-direction:column;

    gap:6px;

    transition:.35s;

}

.mobile-toggle:hover{

    background:rgba(255,255,255,.14);

}

.mobile-toggle span{

    width:24px;

    height:2px;

    border-radius:50px;

    background:#fff;

    transition:.35s;

}

/* Hamburger Animation */

.mobile-toggle.active span:nth-child(1){

    transform:translateY(8px) rotate(45deg);

}

.mobile-toggle.active span:nth-child(2){

    opacity:0;

}

.mobile-toggle.active span:nth-child(3){

    transform:translateY(-8px) rotate(-45deg);

}

/*=========================================================
    OVERLAY
=========================================================*/

.nav-overlay{

    position:fixed;

    inset:0;

    background:rgba(0,0,0,.55);

    backdrop-filter:blur(5px);

    opacity:0;

    visibility:hidden;

    transition:.35s;

    z-index:9998;

}

.nav-overlay.active{

    opacity:1;

    visibility:visible;

}

/*=========================================================
    MOBILE DRAWER
=========================================================*/

.mobile-nav{

    position:fixed;

    top:0;

    right:-420px;

    width:380px;

    max-width:92vw;

    height:100vh;

    background:#081B33;

    overflow-y:auto;

    transition:right .45s ease;

    z-index:9999;

    display:flex;

    flex-direction:column;

}

.mobile-nav.active{

    right:0;

}

/*=========================================================
    DRAWER HEADER
=========================================================*/

.mobile-header{

    display:flex;

    justify-content:space-between;

    align-items:center;

    padding:22px 24px;

    border-bottom:1px solid rgba(255,255,255,.08);

}

.mobile-brand{

    display:flex;

    align-items:center;

    gap:14px;

}

.mobile-brand img{

    width:52px;

}

.mobile-brand h3{

    color:#fff;

    font-size:20px;

    margin:0;

}

.mobile-close{

    width:42px;

    height:42px;

    border:none;

    border-radius:10px;

    cursor:pointer;

    color:#fff;

    background:rgba(255,255,255,.08);

    transition:.3s;

}

.mobile-close:hover{

    background:rgba(255,255,255,.15);

}

/*=========================================================
    MOBILE MENU
=========================================================*/

.mobile-menu{

    display:flex;

    flex-direction:column;

    padding:20px;

    gap:6px;

}

.mobile-menu li{

    list-style:none;

}

.mobile-menu a{

    display:flex;

    justify-content:space-between;

    align-items:center;

    padding:16px 18px;

    border-radius:14px;

    color:#fff;

    font-size:15px;

    font-weight:600;

    transition:.35s;

}

.mobile-menu a:hover{

    background:rgba(255,255,255,.08);

}

/*=========================================================
    MOBILE SUBMENU
=========================================================*/

.mobile-dropdown>.mobile-link{

    cursor:pointer;

}

.mobile-submenu{
    display:none;
    padding-left:15px;
}

.mobile-dropdown.active .mobile-submenu{
    display:block;
}

.mobile-submenu a{

    display:block;

    padding:12px 18px 12px 40px;

    font-size:14px;

    color:#bfcbd8;

    text-decoration:none;

    border-radius:10px;

}

.mobile-submenu a:hover{

    background:rgba(255,255,255,.06);

    color:#fff;

}

/*=========================================================
    CHEVRON ROTATE
=========================================================*/

.mobile-dropdown i{

    transition:.35s;

}

.mobile-dropdown.active>.mobile-dropdown-toggle i{

    transform:rotate(180deg);

}

/*=========================================================
    CONTACT BLOCK
=========================================================*/

.mobile-contact{

    margin:24px;

    padding:22px;

    border-radius:18px;

    background:rgba(255,255,255,.05);

    border:1px solid rgba(255,255,255,.08);

}

.mobile-contact h4{

    color:#fff;

    margin-bottom:16px;

}

.mobile-contact p{

    color:#c9d5e1;

    font-size:14px;

    line-height:1.8;

}

.mobile-contact i{

    color:#E7C233;

    margin-right:10px;

}

/*=========================================================
    SOCIALS
=========================================================*/

.mobile-social{

    display:flex;

    gap:12px;

    margin-top:18px;

}

.mobile-social a{

    width:42px;

    height:42px;

    display:flex;

    align-items:center;

    justify-content:center;

    border-radius:50%;

    color:#fff;

    background:rgba(255,255,255,.08);

    transition:.35s;

}

.mobile-social a:hover{

    background:#4FAF6D;

}

/*=========================================================
    RESPONSIVE
=========================================================*/

@media (max-width:991px){

    .top-bar{

        display:none;

    }

    .nav-wrapper{

        display:none;

    }

    .mobile-toggle{

        display:flex;

    }

    .navbar .container{

        min-height:82px;

        flex-direction:row;

        justify-content:space-between;

        align-items:center;

    }

    .brand-wrapper{

        margin:0;

    }

    .nav-logo img{

        width:64px;

    }

    .nav-logo__title{

        font-size:26px;

    }

    .nav-logo__subtitle{

        font-size:11px;

        letter-spacing:1.2px;

    }

}

@media (max-width:767px){

    .site-header .container{

        width:calc(100% - 26px);

    }

    .mobile-nav .active{

        width:100%;

        max-width:100%;

    }

    .nav-logo img{

        width:58px;

    }

    .nav-logo__title{

        font-size:22px;

    }

    .nav-logo__subtitle{

        display:none;

    }

    .mobile-header{

        padding:18px;

    }

    .mobile-menu{

        padding:16px;

    }

}

@media (max-width:480px){

    .mobile-toggle{

        width:48px;

        height:48px;

    }

    .mobile-brand img{

        width:46px;

    }

    .mobile-brand h3{

        font-size:18px;

    }

    .mobile-menu a{

        padding:15px 16px;

        font-size:14px;

    }

    .mobile-contact{

        margin:18px;

        padding:18px;

    }

}
/*==================================
MOBILE HEADER
==================================*/

.mobile-nav-header{

    display:flex;
    align-items:center;
    justify-content:space-between;

    padding:18px 20px;

    border-bottom:1px solid rgba(255,255,255,.08);

}

.mobile-logo{

    display:flex;
    align-items:center;
    gap:14px;

    flex:1;

    text-decoration:none;

}

.mobile-logo img{

    width:60px;
    height:60px;
    object-fit:contain;
    flex-shrink:0;

}

.mobile-logo h3{

    margin:0;

    color:#fff;

    font-size:22px;

    font-weight:700;

    line-height:1.2;

}

.mobile-logo span{

    display:block;

    margin-top:4px;

    font-size:12px;

    color:#8fd7ff;

}
@media(max-width:480px){

.mobile-logo img{

    width:50px;
    height:50px;

}

.mobile-logo h3{

    font-size:18px;

}

.mobile-logo span{

    font-size:11px;

}

}
.mobile-dropdown{

    width:100%;

    margin-bottom:10px;

}

.mobile-dropdown-toggle{

    width:100%;

    display:flex;

    justify-content:space-between;

    align-items:center;

    padding:18px 20px;

    border:none;

    background:none;

    color:#fff;

    cursor:pointer;

    font-size:16px;

    font-weight:600;

}

.mobile-dropdown-toggle i{

    transition:.35s;

}