*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{font-family:Arial,Helvetica,sans-serif;color:#111;background:#fff}
body.menu-open{overflow:hidden}
a{text-decoration:none;color:inherit}
button{font:inherit}
ul{list-style:none}

/* ========================= TOP BAR ========================= */

.top-bar{
    min-height:31px;
    padding:0 2.5%;
    background:#fff;
    color:#111;
    border-bottom:1px solid #eee;
    display:grid;
    grid-template-columns:1fr auto 1fr;
    align-items:center;
    font-size:12px;
    letter-spacing:.2px
}
.top-left,.top-center,.top-right,.social-icons{display:flex;align-items:center}
.top-left{gap:14px}
.top-left a,.top-left span,.top-center a{color:#111;white-space:nowrap}
.top-left a:hover,.top-center a:hover{text-decoration:underline}
.welcome{opacity:.75}
.top-phone{font-weight:600}
.top-center{justify-content:center;white-space:nowrap}
.top-center a{margin-left:8px;text-decoration:underline;font-weight:600}
.top-right{justify-content:flex-end;gap:18px}
.social-icons{gap:10px}
.social-icons a{
    width:20px;height:20px;border:1px solid rgba(17,17,17,.5);
    border-radius:50%;display:flex;align-items:center;justify-content:center;
    color:#111;font-size:11px;font-weight:600
}
.social-icons a:hover{background:#111;color:#fff}
.quote-button{
    padding:5px 12px;border:1px solid rgba(17,17,17,.5);
    color:#111;white-space:nowrap;
	
}
.quote-button:hover{background:#111;color:#fff}

/* ========================= MAIN HEADER ========================= */

.main-header{
    position:sticky;
    top:0;
    z-index:1000;
    width:100%;
    background:#111;
    border-bottom:1px solid #000
}
.header-inner{
    max-width:100%;
    height:78px;
    margin:auto;
    padding:0 2.5%;
    display:grid;
    grid-template-columns:1fr auto 1fr;
    column-gap:20px;
    align-items:center
}
.logo{width:150px;flex:0 0 150px;justify-self:start}
.logo a{display:block}
.logo-text{font-size:28px;font-weight:800;letter-spacing:4px;color:#fff}

/* One navigation - desktop and mobile use this same menu */
/* Sits in the centre grid column so it stays centred no matter how wide the logo or icons are */

.site-nav{justify-self:center}
.site-nav>ul{display:flex;align-items:center;gap:28px}
.site-nav>ul>li{position:static}
.site-nav>ul>li>a{
    height:78px;
    display:flex;
    align-items:center;
    font-size:14px;
    font-weight:500;
    white-space:nowrap;
    color:#fff
}
.site-nav>ul>li>a:hover{opacity:.65}

.has-menu>a::after{
    content:"";
    width:6px;height:6px;
    margin-left:8px;margin-top:-4px;
    border-right:1px solid #fff;
    border-bottom:1px solid #fff;
    transform:rotate(45deg)
}

/* ========================= SHARED MEGA MENU ========================= */

.mega-menu{
    position:absolute;
    left:0;
    top:100%;
    width:100%;
    padding:35px 40px;
    background:#fff;
    border-top:1px solid #eee;
    border-bottom:1px solid #ddd;
    box-shadow:0 8px 20px rgba(0,0,0,.08);
    opacity:0;
    visibility:hidden;
    transform:translateY(8px);
    transition:opacity .2s,transform .2s,visibility .2s
}
.has-menu:hover>.mega-menu{
    opacity:1;
    visibility:visible;
    transform:translateY(0)
}
.mega-inner{
    max-width:1300px;
    margin:auto;
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:50px
}
.mega-column h3{font-size:15px;margin-bottom:18px;font-weight:700}
.mega-column li{margin-bottom:12px}
.mega-column li>a{font-size:14px;color:#555}
.mega-column li>a:hover{color:#111;text-decoration:underline}

/* Help & Support image items */
.mega-products h3{margin-bottom:20px}
.mega-item{margin-bottom:20px}
.mega-item a{display:block;color:#555}
.mega-item img{
    width:100%;
    max-width:150px;
    height:75px;
    object-fit:cover;
    display:block;
    margin-bottom:8px;
    transition:transform .25s
}
.mega-item span{display:block;font-size:13px}
.mega-item a:hover span{color:#111}
.mega-item a:hover img{transform:scale(1.03)}

/* ========================= HEADER ICONS ========================= */

.header-actions{display:flex;align-items:center;gap:20px;justify-self:end}
.icon-button{
    width:25px;height:40px;
    border:0;background:transparent;
    cursor:pointer;position:relative;
    display:flex;align-items:center;justify-content:center
}
.icon-button svg,.mobile-menu-button svg{
    width:21px;height:21px;
    stroke:#fff;stroke-width:1.5;fill:none
}
.cart-count{
    position:absolute;top:3px;right:-6px;
    min-width:15px;height:15px;padding:0 4px;
    background:#fff;color:#111;border-radius:50%;
    font-size:9px;display:flex;align-items:center;justify-content:center
}

/* Hamburger is part of the same header/nav system */
.mobile-menu-button{
    display:none;
    width:35px;height:35px;
    border:0;background:transparent;
    cursor:pointer;align-items:center;justify-content:center
}
.hamburger{width:21px;height:14px;position:relative}
.hamburger span{
    position:absolute;left:0;width:100%;height:1.5px;background:#fff
}
.hamburger span:nth-child(1){top:0}
.hamburger span:nth-child(2){top:6px}
.hamburger span:nth-child(3){top:12px}

/* ========================= SEARCH ========================= */

.search-overlay{
    position:fixed;inset:0;
    background:rgba(0,0,0,.45);
    opacity:0;visibility:hidden;
    transition:.25s;z-index:2000
}
.search-overlay.active{opacity:1;visibility:visible}
.search-box{
    width:100%;padding:30px 6%;
    background:#fff;
    transform:translateY(-100%);
    transition:.3s
}
.search-overlay.active .search-box{transform:translateY(0)}
.search-container{
    max-width:1000px;margin:auto;
    display:flex;align-items:center;
    border-bottom:1px solid #222
}
.search-container input{
    flex:1;border:0;outline:0;
    font-size:22px;padding:12px 0
}
.search-close,.cart-close{
    border:0;background:transparent;
    cursor:pointer
}
.search-close{font-size:30px}

/* ========================= CART ========================= */

.cart-overlay{
    position:fixed;inset:0;
    background:rgba(0,0,0,.4);
    opacity:0;visibility:hidden;
    z-index:2900;transition:.25s
}
.cart-overlay.active{opacity:1;visibility:visible}
.cart-drawer{
    position:fixed;top:0;right:0;
    width:420px;max-width:92%;height:100%;
    background:#fff;z-index:3000;
    transform:translateX(100%);
    transition:transform .3s ease;
    box-shadow:-5px 0 25px rgba(0,0,0,.15)
}
.cart-drawer.active{transform:translateX(0)}
.cart-header{
    height:75px;padding:0 25px;
    display:flex;align-items:center;justify-content:space-between;
    border-bottom:1px solid #eee
}
.cart-header h2{font-size:18px}
.cart-close{font-size:28px}
.cart-content{padding:40px 25px;text-align:center;color:#555}
.cart-content p{margin-bottom:25px}
.cart-button{
    display:inline-block;
    background:#111;color:#fff;
    padding:13px 30px;font-size:13px
}

/* ========================= MOBILE ========================= */

@media (max-width:1100px){
    .top-bar{padding:0 2%;font-size:11px}
    .top-left{gap:8px}
    .top-right{gap:10px}
    .social-icons{gap:5px}
    .header-inner{padding:0 2%;column-gap:12px}
    .site-nav>ul{gap:16px}
    .header-actions{gap:12px}
    .logo{width:125px;flex-basis:125px}
    .logo-text{font-size:24px}
}

@media (max-width:950px){
    .top-bar{
        min-height:36px;
        display:flex;
        justify-content:center;
        padding:0 10px;
        font-size:11px;
        text-align:center
    }
    .top-center{display:none}

    .header-inner{
        display:flex;
        height:65px;
        padding:0 18px;
        justify-content:space-between
    }
    .mobile-menu-button{display:flex;flex:0 0 35px}
    .logo{
        position:absolute;
        left:50%;
        transform:translateX(-50%);
        width:auto
    }
    .logo-text{font-size:24px;letter-spacing:3px}
    .site-nav{
        position:fixed;
        top:101px; /* 36px top bar + 65px header */
        left:0;
        width:100%;
        height:calc(100vh - 101px);
        margin:0;
        padding:10px 20px 40px;
        overflow-y:auto;
        background:#fff;
        transform:translateX(-100%);
        transition:transform .3s ease;
        z-index:2500
    }
    .main-header.menu-open .site-nav{transform:translateX(0)}
    .site-nav>ul{
        display:block;
        padding-bottom:30px
    }
    .site-nav>ul>li{border-bottom:1px solid #eee}
    .site-nav>ul>li>a{
        height:auto;
        min-height:54px;
        padding:17px 0;
        font-size:15px;
        color:#111
    }

    .has-menu>a::after{
        margin-left:auto;
        transform:rotate(45deg);
        border-right:1px solid #111;
        border-bottom:1px solid #111
    }

    /* Same mega menu, changed into mobile accordion */
    .mega-menu{
        position:static;
        width:auto;
        padding:0 0 8px 15px;
        border:0;
        box-shadow:none;
        opacity:1;
        visibility:visible;
        transform:none;
        display:none;
        transition:none
    }
    .has-menu.open>.mega-menu{display:block}
    .has-menu.open>a::after{
        transform:rotate(225deg);
        margin-top:4px
    }
    .mega-inner{
        display:block;
        max-width:none
    }
    .mega-column{
        margin-bottom:22px
    }
    .mega-column h3{
        margin:8px 0 10px;
        font-size:14px
    }
    .mega-column ul{margin:0}
    .mega-column li{margin:0}
    .mega-column li>a{
        display:block;
        padding:10px 0;
        font-size:14px
    }

    .mega-products .mega-item{margin-bottom:15px}
    .mega-item img{
        max-width:180px;
        height:80px
    }
    .mega-item span{font-size:13px}

    .header-actions{
        margin-left:auto;
        gap:10px
    }
    .icon-button{width:30px}
}

/* Very small phones */
@media (max-width:380px){
    .header-inner{padding:0 10px}
    .logo-text{font-size:20px;letter-spacing:2px}
    .header-actions{gap:4px}
    .icon-button{width:27px}
    .site-nav{
        top:101px;
        height:calc(100vh - 101px);
        padding-left:15px;
        padding-right:15px
    }
}