﻿/* =========================================
   1. Header Layout & Branding
   ========================================= */
.header-wrapper {
    z-index: 11;
    top: 0;
    /* Fallback for older browsers */
    background: var(--primary-color);
    background: linear-gradient(to right, var(--primary-color) 0%, var(--secondary-color) 100%);
    padding: 0 40px;
    min-width: 360px;
    width: 100%;
    /* Optimization: Improves text rendering speed/quality */
    text-rendering: optimizeLegibility;
}

.top-header {
    background: #0b406c;
    position: relative;
    z-index: 10;
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 0 40px;
    margin: 0 -40px;
}

#site-header > * {
    flex: max-content;
}

.logo-link-container {
    display: inline-block;
    height: 100%;
    margin: -7px 0 -3px;
}

#bencoLogo {
    width: 150px;
    height: 100%;
    margin: 0 -20px;
    /* Optimization: Prevents layout shift during load */
    aspect-ratio: auto 150 / 100; 
}

#ddf-logo {
    width: 100%;
    max-width: 315px;
    margin-left: -15px;
}

/* =========================================
   2. Contact Info & Additional Nav
   ========================================= */
header .benco-tel {
    color: #fff;
    font-size: 12px;
    padding: 0 15px;
    font-family: LotaGrotesqueAlt2-Regular, sans-serif;
    margin: 10px 0 0 10px;
}

header > .benco-tel {
    padding: 8px 20px;
    display: block;
    margin: 0 -20px;
    background: #03233e;
}

header .benco-tel > a, 
header .benco-tel .fa-phone {
    color: #fff;
}

header .benco-tel .fa-phone {
    width: 16px;
    border-radius: 100%;
    padding: 4px;
    position: relative;
    top: -2px;
    border: 1px solid #fff;
    margin-right: 5px;
}

header .addtnlNavhdr .login {
    white-space: nowrap;
}

.shopLink {
    font-size: 12px;
    color: #fff;
    padding: 8px 15px;
    display: inline-block;
    transition: background 0.3s ease; /* Optimization: specific transition */
    border-radius: 6px;
    line-height: 21px;
}

.shopLink svg {
    width: 20px;
    height: 20px;
    fill: #fff;
    margin: -5px 5px 0 0;
}

.shopLink:hover {
    background: rgba(0, 56, 102, 0.28);
}

.top-header .shopLink {
    padding: 10px 25px;
    font-size: 16px;
    background: var(--secondary-color);
    text-shadow: 1px 1px 1px #002137;
}

.top-header .shopLink span {
    font-family: LotaGrotesqueAlt2-black, sans-serif;
}

.top-header .shopLink svg {
    filter: drop-shadow(1px 1px 1px #002137);
}

.top-header .shopLink:hover {
    background: #007a6c;
}

/* =========================================
   3. Menus (Top & SubHeader)
   ========================================= */
.topMenu .menu, 
#subHeader ul.menu {
    display: flex;
}

.topMenu .menu {
    position: relative;
    z-index: 10;
    align-items: center;
    justify-content: flex-end !important;
    padding: 0 10px 0 0;
    margin: 0 0 8px;
}

.topMenu .menu li {
    display: block;
}

.topMenu .menu li a {
    color: #fff;
    font-size: 12px;
    padding: 0 15px;
    text-transform: uppercase;
    transition: color 0.3s ease;
    border-left: 1px solid #fff;
}

.topMenu .menu li:first-of-type a {
    border: none;
}

.topMenu .menu li a:hover,
.topMenu .menu li.current_page_item > a,
#subHeader ul > li:hover > a,
#subHeader ul > li.current-menu-ancestor > a,
#subHeader ul > li.current-menu-item > a {
    color: #97daf7;
}

.topMenu .menu .sub-menu, 
#subHeader .sub-menu {
    display: none;
    background: #0b406c;
    position: absolute;
    top: 100%;
    left: 0;
    border-radius: 5px;
}

.topMenu .menu .sub-menu {
    padding: 10px 0;
    box-shadow: 0 2px 5px rgba(0,0,0,0.1);
    white-space: nowrap;
}

.topMenu .menu li:hover .sub-menu,
#subHeader ul > li:hover .sub-menu {
    display: block;
}

#subHeader {
    position: relative;
}

#subHeader:before {
    content: '';
    border-top: 1px solid #306b93;
    position: absolute;
    top: 0;
    left: -100%;
    width: 1000%;
}

#subHeader .toggleNav {
    position: relative;
    padding: 0 7px;
    display: inline-block;
    color: #97daf7;
    font-size: 12px;
    line-height: 10px;
}

#subHeader ul.menu {
    white-space: nowrap;
    padding: 0;
    margin: 0;
}

#subHeader ul.menu > li {
    list-style: none;
    display: inline-block;
}

#subHeader ul.menu li a {
    display: block;
    padding: 15px 15px 15px 10px;
    color: #fff;
    text-transform: capitalize;
    font-size: 14px;
    font-family: LotaGrotesqueAlt2-Regular, sans-serif;
    transition: 0.3s color linear;
}

#subHeader ul li a:hover {
    text-decoration: none;
    color: #b4e3a2;
}

#subHeader .sub-menu {
    padding: 15px 0 20px;
    width: auto;
}

#subHeader .sub-menu li {
    display: block;
}

#subHeader ul.menu .sub-menu li a {
    padding: 7px 35px;
    text-align: left;
    white-space: nowrap;
}

/* =========================================
   4. Search System
   ========================================= */
#bencoSearch:hover .searchFor {
    display: inline-block;
}

header #bencoSearch {
    margin: 5px;
    border-radius: 4px;
    color: #3e3e3e;
    position: relative;
    transition: margin-left 0.5s ease;
    /* Optimization: Hints browser that layout might change */
    will-change: margin-left; 
}

header #bencoSearch form {
    width: 100%;
    background: transparent;
    color: #fff;
    border: none;
    font-size: 14px;
    box-shadow: none;
}

header #bencoSearch form::placeholder {
    color: #ccc;
    font-style: italic;
    font-size: 14px;
}

header #bencoSearch form input[type="text"] {
    width: 100%;
    color: #3e3e3e;
    border: none;
    box-shadow: none;
    padding-right: 30px;
}

header #bencoSearch form .submitButton {
    background: transparent;
    border: none;
    margin-left: -30px;
}

header #bencoSearch form svg, 
.searchFor svg {
    width: 20px;
    fill: #004b7c;
}

header #bencoSearch form svg {
    color: #004b7c;
    margin-top: -6px;
}

.searchFor svg {
    height: 20px;
    margin-top: -5px;
}

header .sForLabel, 
header .searchOptionWrap {
    display: inline-block;
}

header .searchOptionWrap {
    width: 100%;
    background: #fff;
    border-radius: 5px;
    padding: 0;
    position: relative;
}

header .searchOptionWrap:active {
    padding-bottom: 4px;
}

header .searchOptionWrap:after {
    content: '\f0d7';
    font-family: FontAwesome;
    position: absolute;
    right: 10px;
    top: 10px;
    display: none;
}

header .optionAvailable {
    display: none;
    position: absolute;
    background: #fff;
    right: 0;
    top: 35px;
    border-radius: 0 0 5px 5px;
    padding: 15px 0 10px;
    box-shadow: 0 20px 30px rgba(0,0,0,0.1);
}

header .optionAvailable.active {
    display: block;
}

header .optionAvailable > span {
    display: block;
    padding: 5px 15px;
    cursor: pointer;
    text-align: left;
    white-space: nowrap;
}

header .optionAvailable > span:hover {
    background: #f0f0f0;
}

header .optionAvailable svg {
    display: none;
}

header .optionAvailable .option1:after {
    content: 'Dental Products';
}

header .optionAvailable .option2:after {
    content: 'Company Website';
}

/* Styled Radios */
#searchOptions, 
#filterBy {
    user-select: none;
}

#searchOptions label, 
#filterBy label {
    position: relative;
    cursor: pointer;
}

#searchOptions input[type=radio], 
#filterBy input[type=radio] {
    position: relative;
    visibility: hidden;
}

#searchOptions input[type=radio]+label:before, 
#filterBy input[type=radio]+label:before {
    display: block;
    position: absolute;
    content: '';
    border-radius: 5px;
    height: 18px;
    width: 18px;
    top: 4px;
    left: -25px;
    border: 2px solid #222;
}

#searchOptions input[type=radio]+label:after, 
#filterBy input[type=radio]+label:after {
    display: block;
    position: absolute;
    content: "\f00c";
    border-radius: 100%;
    height: 10px;
    width: 10px;
    top: 3px;
    left: -23px;
    font-family: FontAwesome;
    visibility: hidden;
    font-size: 13px;
}

#searchOptions input[type=radio]:checked+label:after, 
#filterBy input[type=radio]:checked+label:after {
    visibility: visible;
}

/* =========================================
   5. Mobile Nav (Hamburger & SideMenu)
   ========================================= */
#hamburger-icon {
    width: 50px;
    height: 40px;
    position: absolute;
    display: block;
    left: 10px;
    top: 18px;
    z-index: 11;
    /* Optimization: Prepares GPU for animation */
    will-change: transform; 
}

#hamburger-icon.active {
    z-index: 12;
}

#hamburger-icon .line {
    display: block;
    background: #ecf0f1;
    width: 40px;
    height: 5px;
    position: absolute;
    left: 0;
    border-radius: 4px;
    transition: all 0.4s;
}

#hamburger-icon .line.line-1 { top: 0; }
#hamburger-icon .line.line-2 { top: 30%; }
#hamburger-icon .line.line-3 { top: 60%; }

#hamburger-icon:hover .line-1 { transform: translateY(-4px); }
#hamburger-icon:hover .line-3 { transform: translateY(4px); }

#hamburger-icon.active .line-1 { transform: translateY(13px) rotate(45deg); }
#hamburger-icon.active .line-2 { opacity: 0; }
#hamburger-icon.active .line-3 { transform: translateY(-12px) rotate(-45deg); }

#sideMenu {
    position: fixed;
    z-index: 12;
    background: #0a416a;
    top: 65px;
    padding: 20px 0 30px;
    left: -330px;
    transition: all 0.5s linear;
    overflow-y: auto;
    bottom: 0;
    width: 320px;
    /* Optimization: Removes element from render tree when hidden */
    visibility: hidden; 
    will-change: left;
}

#sideMenu.active {
    left: 0;
    /* Optimization: Restores visibility when class is active */
    visibility: visible; 
}

#sideMenu a {
    color: #fff;
    padding: 5px 15px 5px 25px;
    display: block;
    text-decoration: none;
    margin-right: 50px;
}

#sideMenu .current-page-parent>a,
#sideMenu li:hover>a,
#sideMenu .current_page_item>a {
    color: #00a290;
}

#sideMenu ul {
    padding-left: 0;
    margin-bottom: 0;
    list-style: none;
}

#sideMenu ul li {
    font-size: 18px;
    position: relative;
}

#sideMenu ul li:before {
    content: "";
    position: absolute;
    bottom: 0;
    right: 0;
    height: 1px;
    width: 200%;
}

#sideMenu>div>ul ul {
    padding-left: 15px;
    background: rgb(7, 48, 79);
}

#sideMenu>div>ul>li>a {
    font-family: LotaGrotesqueAlt2-Bold, sans-serif;
}

#sideMenu>div>ul ul a {
    font-size: 14px;
}

.menu-item-has-children {
    position: relative;
}

#sideMenu .menu-item-has-children>.sub-menu {
    display: none;
    padding: 5px 0 15px;
}

#sideMenu .sub-menu li a {
    padding: 12px 25px 5px;
}

#sideMenu .toggleNav {
    position: absolute;
    right: 0;
    color: #00a290;
    font-size: 20px;
    padding: 7px 15px;
    line-height: 10px;
    top: 2px;
    cursor: pointer;
}

/* =========================================
   6. Media Queries
   ========================================= */
@media only screen and (max-width: 1399px) {
    #subHeader .sub-menu { left: -26px; }
}

@media only screen and (max-width: 1299px) {
    #subHeader ul.menu li a { padding: 16px 5px 16px 10px; font-size: .8rem; }
}

@media only screen and (max-width: 1199px) {
    .header-wrapper { padding: 0 15px; }
    header .searchOptionWrap span { padding: 15px 7px 11px; font-size: 14px; }
    .topMenu .menu li a { padding: 0 10px; }
    #subHeader .sub-menu { width: auto; top: 48px; }
    header #bencoSearch form input[type="text"] { font-size: 15px; }
    .addtnlNavhdr { white-space: nowrap; }
    #subHeader .toggleNav { font-size: 14px; padding: 0 5px; }
    .shop-button { margin-left: -10px; }
}

@media only screen and (max-width: 1099px) {
    .shopLink span { display: none; }
}

@media only screen and (min-width: 992px) {
    #hamburger-icon { display: none; }
}

@media only screen and (max-width: 991px) {
    body { padding-top: 110px !important; }
    .top-header > .col-lg-4 { justify-content: space-between !important; }
    #subHeader, .topMenu { display: none; }
    .shopLink span { display: inline; }
    .top-header { padding: 12px 70px 12px 100px; border-bottom: 1px solid #125a97; }
    .top-header .benco-tel { font-size: 18px; margin: 7px 0 0; }
    .top-header .benco-tel .fa-phone { width: 19px; }
    #bencoLogo { width: 210px; margin: -10px -20px -26px -30px; }
    .header-actions { display: flex !important; align-content: center; justify-content: center; }
    header #bencoSearch { width: 100%; }
    header #bencoSearch form svg { width: 20px; fill: #004b7c; color: #004b7c; margin-top: -6px; }
    .addtnlNavhdr { margin-left: auto !important; }
    header .searchOptionWrap span { padding: 11px 7px 10px; font-size: 15px; }
    .shopLink svg { filter: drop-shadow(1px 1px 1px #002137); }
    header .addtnlNavhdr .login { margin-right: -30px; }
}

@media only screen and (max-width: 767px) {
    body { padding-top: 140px !important; }
    .newNotif { position: relative; top: 0; }
    header .addtnlNavhdr .login { font-size: 26px; padding: 5px 10px 8px; bottom: 0; }
    .top-header { padding-right: 30px; }
    .hide-md { display: none; }
    #hamburger-icon { top: 51px; }
    #sideMenu { top: 100px; }
}

@media only screen and (max-width: 580px) {
    .top-header .shopLink { padding: 10px 15px; }
    #bencoLogo { width: 180px; margin-top: -5px; }
    header .searchFor { width: 180px; }
    header #bencoSearch form { width: 100%; }
}
