/* =========================================================
   KMG ONLINE - HEADER
========================================================= */

.site-header {
    position: sticky;
    top: 0;
    z-index: 9999;

    width: 100%;

    background: var(--color-white);
    border-bottom: 1px solid var(--color-border);
    box-shadow: var(--shadow-sm);
}


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

.header-container {
    position: relative;

    display: flex;
    align-items: center;

    width: calc(100% - 80px);
    max-width: 1280px;
    height: 80px;

    margin: 0 auto;

    gap: 40px;
}


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

.site-logo {
    display: flex;
    align-items: center;

    color: var(--color-text);
    text-decoration: none;
}

.site-logo img {
    display: block;

    width: auto;
    height: 30px;
}


/* =========================================================
   SEARCH
========================================================= */

.header-search {
    position: relative;

    flex: 1;

    min-width: 180px;
}

.header-search input {
    width: 100%;
    height: 40px;

    padding: 0 42px 0 14px;

    color: var(--color-text);
    background: var(--color-white);

    border: 1px solid var(--color-border);
    border-radius: var(--radius-md);

    outline: none;

    font-family: var(--font-primary);
    font-size: var(--font-sm);

    transition: var(--transition);
}

.header-search input:focus {
    border-color: var(--color-primary);

    box-shadow: 0 0 0 3px rgba(9, 19, 79, .08);
}

.header-search input::placeholder {
    color: #9ca3af;
}

.header-search button {
    position: absolute;
    top: 50%;
    right: 5px;

    display: flex;
    align-items: center;
    justify-content: center;

    width: 32px;
    height: 32px;

    padding: 0;

    color: var(--color-primary);
    background: transparent;

    border: 0;
    border-radius: var(--radius-sm);

    cursor: pointer;

    transform: translateY(-50%);

    transition: var(--transition);
}

.header-search button:hover {
    color: var(--color-white);
    background: var(--color-primary);
}


/* =========================================================
   SEARCH DISPLAY
========================================================= */

.header-search-desktop {
    display: block;
}

.header-search-mobile {
    display: none;
}


/* =========================================================
   MAIN NAV
========================================================= */

.main-nav {
    display: flex;
    align-items: center;

    gap: 10px;
}


/* =========================================================
   MAIN NAV BUTTONS
   ทุกปุ่มสูงเท่ากัน 40px
========================================================= */

.main-nav>a,
.main-nav .nav-dropdown-head {
    display: flex;
    align-items: center;
    justify-content: center;

    height: 40px;

    margin: 0;
    padding: 0 14px;

    color: var(--color-text);
    background: transparent;

    border: 1px solid transparent;
    border-radius: var(--radius-sm);

    outline: 0;

    font-family: var(--font-primary);
    font-size: var(--font-sm);
    font-weight: var(--font-regular);
    line-height: 1;

    text-decoration: none;
    white-space: nowrap;

    appearance: none;
    -webkit-appearance: none;

    cursor: pointer;

    box-sizing: border-box;

    transition: var(--transition);
}


/* Hover + Active = กรอบน้ำเงิน */

.main-nav>a:hover,
.main-nav>a.active,
.main-nav .nav-dropdown-head:hover,
.main-nav .nav-dropdown-head.active {
    color: var(--color-primary);

    background: transparent;
    border-color: var(--color-primary);
}


/* =========================================================
   STANDARD DROPDOWN
========================================================= */

.nav-dropdown {
    position: relative;

    padding-bottom: 8px;
    margin-bottom: -8px;
}


/* Dropdown head */

.main-nav .nav-dropdown-head {
    gap: 7px;
}


/* Arrow */

.nav-dropdown-arrow {
    display: inline-flex;
    align-items: center;
    justify-content: center;

    line-height: 1;

    pointer-events: none;

    transition: var(--transition);
}


/* Dropdown menu */

.nav-dropdown-menu {
    position: absolute;

    top: 100%;
    left: 0;
    z-index: 1000;

    min-width: 210px;

    padding: 7px;

    background: var(--color-white);

    border: 1px solid var(--color-border);
    border-radius: var(--radius-md);

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

    opacity: 0;
    visibility: hidden;

    transform: translateY(5px);

    pointer-events: none;

    transition:
        opacity .2s ease,
        visibility .2s ease,
        transform .2s ease;
}


/* Open dropdown */

.nav-dropdown:hover .nav-dropdown-menu {
    opacity: 1;
    visibility: visible;

    transform: translateY(0);

    pointer-events: auto;
}

.nav-dropdown:hover .nav-dropdown-arrow {
    transform: rotate(180deg);
}


/* =========================================================
   DROPDOWN LINKS
========================================================= */

.main-nav .nav-dropdown-menu a {
    display: flex;
    align-items: center;

    width: 100%;
    min-height: 40px;

    padding: 8px 12px;

    color: var(--color-text);
    background: transparent;

    border: 1px solid transparent;
    border-radius: var(--radius-sm);

    font-size: var(--font-sm);
    line-height: 1.4;

    white-space: nowrap;

    box-sizing: border-box;

    transition: var(--transition);
}

.main-nav .nav-dropdown-menu a:hover,
.main-nav .nav-dropdown-menu a.active {
    color: var(--color-primary);

    background: transparent;
    border-color: var(--color-primary);
}


/* =========================================================
   LANGUAGE SWITCHER
========================================================= */

.language-switcher {
    position: relative;

    padding-bottom: 8px;
    margin-bottom: -8px;
}


/* =========================================================
   CURRENT LANGUAGE
========================================================= */

.language-current {
    display: flex;
    align-items: center;
    justify-content: center;

    gap: 7px;

    min-width: 72px;
    height: 40px;

    margin: 0;
    padding: 0 15px;

    color: var(--color-white);
    background: var(--color-primary);

    border: 1px solid var(--color-primary);
    border-radius: var(--radius-md);

    outline: 0;

    font-family: var(--font-primary);
    font-size: var(--font-sm);
    font-weight: var(--font-semibold);
    line-height: 1;

    appearance: none;
    -webkit-appearance: none;

    cursor: pointer;

    box-sizing: border-box;

    transition: var(--transition);
}

.language-current:hover {
    background: var(--color-primary-hover);
    border-color: var(--color-primary-hover);
}

.language-arrow {
    display: inline-flex;
    align-items: center;
    justify-content: center;

    line-height: 1;

    pointer-events: none;

    transition: var(--transition);
}


/* =========================================================
   LANGUAGE DROPDOWN
========================================================= */

.language-dropdown {
    position: absolute;

    top: 100%;
    right: 0;
    z-index: 1000;

    min-width: 100px;

    padding: 6px;

    background: var(--color-white);

    border: 1px solid var(--color-border);
    border-radius: var(--radius-md);

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

    opacity: 0;
    visibility: hidden;

    transform: translateY(5px);

    pointer-events: none;

    transition:
        opacity .2s ease,
        visibility .2s ease,
        transform .2s ease;
}

.language-switcher:hover .language-dropdown {
    opacity: 1;
    visibility: visible;

    transform: translateY(0);

    pointer-events: auto;
}

.language-switcher:hover .language-arrow {
    transform: rotate(180deg);
}


/* Language links */

.language-dropdown a {
    display: flex;
    align-items: center;

    min-height: 38px;

    padding: 7px 12px;

    color: var(--color-text);

    border: 1px solid transparent;
    border-radius: var(--radius-sm);

    font-size: var(--font-sm);

    text-decoration: none;

    box-sizing: border-box;

    transition: var(--transition);
}

.language-dropdown a:hover {
    color: var(--color-primary);
    background: var(--color-background-light);
}

.language-dropdown a.active {
    color: var(--color-white);
    background: var(--color-primary);
    border-color: var(--color-primary);
}


/* =========================================================
   MOBILE MENU BUTTON
========================================================= */

.mobile-menu-button {
    position: relative;

    display: none;

    width: 40px;
    height: 40px;

    margin: 0;
    padding: 8px;

    background: transparent;

    border: 0;

    outline: 0;

    appearance: none;
    -webkit-appearance: none;

    cursor: pointer;

    box-sizing: border-box;
}

.mobile-menu-button span {
    display: block;

    width: 100%;
    height: 2px;

    margin: 5px 0;

    background: var(--color-primary);

    transition: var(--transition);
}


/* Hamburger active */

.mobile-menu-button.active span:nth-child(1) {
    transform: translateY(7px) rotate(45deg);
}

.mobile-menu-button.active span:nth-child(2) {
    opacity: 0;
}

.mobile-menu-button.active span:nth-child(3) {
    transform: translateY(-7px) rotate(-45deg);
}


/* =========================================================
   PRODUCT MEGA MENU
========================================================= */

.product-mega-dropdown {
    position: static;
}

.product-mega-image-all {
    color: var(--color-primary);
    background: #f5f6fa;
}

.product-mega-item-all:hover .product-mega-image-all {
    color: var(--color-primary);
    background: #eef0f7;
}


/* =========================================================
   PRODUCT MEGA MENU - DESKTOP
========================================================= */

@media (min-width: 901px) {

    /* Hover bridge */

    .product-mega-dropdown::before {
        content: "";

        position: absolute;

        top: 0;
        bottom: 0;

        width: 100px;

        display: none;

        background: transparent;

        z-index: 9998;
    }

    .product-mega-dropdown:hover::before {
        display: block;
    }


    /* Mega menu */

    .product-mega-menu {
        position: absolute;

        top: 100%;
        left: 0;
        right: 0;
        z-index: 9999;

        width: 100%;

        overflow: hidden;

        background: var(--color-white);

        border-radius: 0 0 var(--radius-md) var(--radius-md);

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

        opacity: 0;
        visibility: hidden;

        pointer-events: none;

        transition:
            opacity .15s ease,
            visibility .15s ease;
    }

    .product-mega-dropdown:hover .product-mega-menu {
        opacity: 1;
        visibility: visible;

        pointer-events: auto;
    }


    /* Title */

    .product-mega-title {
        padding: 14px 18px;

        color: var(--color-primary);
        background: var(--color-white);

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

        font-weight: var(--font-semibold);
    }


    /* Grid */

    .product-mega-grid {
        display: grid;
        grid-template-columns: repeat(10, minmax(0, 1fr));

        width: 100%;

        background: var(--color-white);
    }


    /* Category item */

    .main-nav .product-mega-item {
        display: flex;
        flex-direction: column;
        align-items: center;
        justify-content: flex-start;

        gap: 8px;

        min-width: 0;

        padding: 14px 8px;

        color: var(--color-text);
        background: var(--color-white);

        border: 0;
        border-right: 1px solid #eeeeee;
        border-bottom: 1px solid #eeeeee;
        border-radius: 0;

        text-align: center;
        text-decoration: none;

        box-sizing: border-box;

        transition: var(--transition);
    }

    .main-nav .product-mega-item:hover {
        color: var(--color-primary);
        background: #f8f9fb;
    }

    .main-nav .product-mega-item:nth-child(10n) {
        border-right: 0;
    }


    /* Category image */

    .product-mega-image {
        display: flex;
        align-items: center;
        justify-content: center;

        width: 70px;
        height: 70px;

        overflow: hidden;

        background: var(--color-white);

        border-radius: 50%;
    }

    .product-mega-image img {
        display: block;

        width: 100%;
        height: 100%;

        object-fit: contain;
    }

    .product-mega-image span {
        color: #c5c8cf;
        font-weight: var(--font-semibold);
    }


    /* Category name */

    .product-mega-name {
        display: flex;
        align-items: flex-start;
        justify-content: center;

        min-height: 34px;

        color: inherit;

        font-weight: var(--font-medium);
        line-height: 1.4;

        text-align: center;
    }

}


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

@media (max-width: 1100px) and (min-width: 901px) {

    .header-container {
        width: calc(100% - 40px);
        gap: 20px;
    }

    .main-nav {
        gap: 5px;
    }

    .main-nav>a,
    .main-nav .nav-dropdown-head {
        padding: 0 9px;
    }

}


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

@media (max-width: 900px) {

    /* Header */

    .header-container {
        width: calc(100% - 40px);
        height: 70px;
    }

    .site-logo {
        margin-right: auto;
    }

    .site-logo img {
        height: 22px;
    }


    /* Search */

    .header-search-desktop {
        display: none;
    }

    .header-search-mobile {
        display: block;

        flex: none;

        width: 100%;
        min-width: 0;

        padding: 8px 14px 14px;
    }

    .header-search-mobile input {
        width: 100%;
        height: 42px;

        padding: 0 44px 0 14px;

        background: var(--color-white);

        border: 1px solid var(--color-border);
        border-radius: var(--radius-md);
    }

    .header-search-mobile button {
        right: 19px;
    }


    /* Navigation */

    .main-nav {
        position: absolute;

        top: 100%;
        left: 0;
        right: 0;
        z-index: 9999;

        display: flex;
        flex-direction: column;
        align-items: stretch;

        gap: 0;

        padding: 12px;

        background: var(--color-white);

        border: 1px solid var(--color-border);
        border-radius: var(--radius-md);

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

        opacity: 0;
        visibility: hidden;

        transform: translateY(-10px);

        pointer-events: none;

        transition: var(--transition);
    }

    .main-nav.active {
        opacity: 1;
        visibility: visible;

        transform: translateY(8px);

        pointer-events: auto;
    }


    /* Main menu buttons */

    .main-nav>a,
    .main-nav .nav-dropdown-head {
        justify-content: flex-start;

        width: 100%;
        height: 44px;

        padding: 0 14px;
    }


    /* Standard dropdown */

    .nav-dropdown {
        width: 100%;

        padding-bottom: 0;
        margin-bottom: 0;
    }

    .main-nav .nav-dropdown-head {
        justify-content: space-between;
    }

    .nav-dropdown-arrow {
        margin-left: auto;
    }


    /* Mobile dropdown */

    .nav-dropdown-menu {
        position: static;

        display: none;

        width: 100%;
        min-width: 100%;

        margin-top: 4px;
        padding: 0 0 0 12px;

        background: transparent;

        border: 0;
        border-radius: 0;

        box-shadow: none;

        opacity: 1;
        visibility: visible;

        transform: none;

        pointer-events: auto;
    }

    .nav-dropdown.active .nav-dropdown-menu {
        display: block;
    }

    .nav-dropdown.active .nav-dropdown-arrow {
        transform: rotate(180deg);
    }

    .main-nav .nav-dropdown-menu a {
        min-height: 40px;
        padding: 8px 14px;
    }


    /* Mobile menu button */

    .mobile-menu-button {
        display: block;
    }


    /* =====================================================
       PRODUCT MEGA MENU - MOBILE
    ====================================================== */

    .product-mega-dropdown {
        position: relative;

        width: 100%;
    }

    .product-mega-dropdown::before,
    .product-mega-dropdown::after {
        display: none !important;
    }

    .product-mega-menu {
        position: static;

        display: none;

        width: 100%;

        padding: 0 0 0 12px;

        background: transparent;

        border: 0;
        border-radius: 0;

        box-shadow: none;

        opacity: 1;
        visibility: visible;

        transform: none;

        pointer-events: auto;

        transition: none;
    }

    .product-mega-dropdown.active .product-mega-menu {
        display: block;
    }

    .product-mega-title {
        display: none;
    }

    .product-mega-grid {
        display: block;

        width: 100%;

        overflow: visible;

        background: transparent;
    }

    .main-nav .product-mega-item {
        display: flex;
        align-items: center;

        width: 100%;
        min-height: 40px;

        padding: 8px 14px;

        color: var(--color-text);
        background: transparent;

        border: 1px solid transparent;
        border-radius: var(--radius-sm);

        text-align: left;
        text-decoration: none;

        box-sizing: border-box;
    }

    .main-nav .product-mega-item:hover,
    .main-nav .product-mega-item:active,
    .main-nav .product-mega-item.active {
        color: var(--color-primary);

        background: transparent;
        border-color: var(--color-primary);
    }

    .product-mega-image {
        display: none;
    }

    .product-mega-name {
        display: block;

        min-height: 0;

        color: inherit;

        font-weight: var(--font-regular);
        line-height: 1.5;

        text-align: left;
    }

}


/* =========================================================
   SMALL MOBILE
========================================================= */

@media (max-width: 480px) {

    .header-container {
        width: calc(100% - 30px);
    }

    .site-logo img {
        height: 24px;
    }

    .language-current {
        min-width: 62px;
        height: 40px;

        padding: 0 12px;
    }

}

/* =========================================================
   MOBILE HEADER HARDENING
   Keeps hamburger clickable and navigation usable on all pages.
========================================================= */
@media (max-width: 900px) {
    .site-header {
        z-index: 10000;
        isolation: isolate;
    }

    .header-container {
        min-width: 0;
    }

    .site-logo,
    .header-cart,
    .language-switcher,
    .mobile-menu-button {
        position: relative;
        z-index: 10002;
        flex-shrink: 0;
    }

    .mobile-menu-button {
        pointer-events: auto !important;
        touch-action: manipulation;
    }

    .main-nav {
        z-index: 10001;
        max-height: calc(100dvh - 82px);
        overflow-x: hidden;
        overflow-y: auto;
        overscroll-behavior: contain;
        -webkit-overflow-scrolling: touch;
    }

    .main-nav.active {
        pointer-events: auto !important;
    }
}

@media (max-width: 480px) {
    .header-container {
        width: calc(100% - 24px);
        gap: 10px;
    }

    .site-logo img {
        max-width: 150px;
        height: auto;
        max-height: 28px;
    }

    .header-cart {
        flex: 0 0 36px;
    }

    .mobile-menu-button {
        flex: 0 0 40px;
    }
}
