/*
 * Shared site header.
 * Keep all regular-page navigation styling here so every layout renders the
 * same header as the top page, regardless of page-specific stylesheets.
 */

.navbar {
	margin-bottom: 15px !important;
}

.navbar.navbar-default {
	min-height: 72px;
	margin-bottom: 15px !important;
	border: 0;
	background: #ffffff;
	box-shadow: 0 1px 0 rgba(38, 50, 65, 0.08);
}

.navbar.navbar-default .container {
	width: min(1180px, calc(100% - 40px));
	padding-right: 0;
	padding-left: 0;
}

.navbar.navbar-default .navbar-nav>li>a {
	padding-top: 26px;
	padding-bottom: 22px;
	color: #172334;
	font-size: 14px;
	font-weight: 700;
}

.navbar.navbar-default .navbar-nav>li>a:hover,
.navbar.navbar-default .navbar-nav>li>a:focus {
	color: #0f66c3;
}

.navbar.navbar-default .navbar-right>li:last-child>a {
	margin-top: 0;
	padding: 26px 15px 22px;
	border-radius: 0;
	background: transparent;
	color: #172334;
	font-size: 14px;
}

.navbar.navbar-default .navbar-right>li:last-child>a:hover,
.navbar.navbar-default .navbar-right>li:last-child>a:focus {
	background: transparent;
	color: #0f66c3;
}

.navbar.navbar-default .navbar-right>li>a[href$="/login"] {
	margin-top: 16px;
	padding: 8px 16px;
	border-radius: 6px;
	font-size: 14px;
}

.navbar.navbar-default .navbar-right>li>a[href$="/login"]:hover,
.navbar.navbar-default .navbar-right>li>a[href$="/login"]:focus {
	background: #eef6ff;
	color: #0f66c3;
}

.navbar.navbar-default .logo {
	width: 184px;
}

@media screen and (max-width: 1200px) {
	.navbar.navbar-default .container {
		width: 100%;
		max-width: 1180px;
		padding-right: 24px;
		padding-left: 24px;
	}
}

@media screen and (min-width: 900px) and (max-width: 1200px) {
	.navbar.navbar-default {
		min-height: 64px;
	}

	.navbar.navbar-default .container,
	.navbar.navbar-default .navbar-header,
	.navbar.navbar-default .navbar-collapse,
	.navbar.navbar-default .navbar-nav {
		display: flex;
		align-items: center;
	}

	.navbar.navbar-default .navbar-header,
	.navbar.navbar-default .navbar-nav > li {
		float: none;
	}

	.navbar.navbar-default #logo_exp {
		display: none !important;
	}

	.navbar.navbar-default #header_logo {
		display: flex;
		align-items: center;
		padding-top: 0;
		padding-bottom: 0;
	}

	.navbar.navbar-default .logo {
		width: clamp(138px, 14vw, 166px);
		height: auto;
	}

	.navbar.navbar-default .navbar-collapse {
		flex: 1 1 auto;
		min-width: 0;
		padding-right: 0;
		padding-left: 8px;
		border-top: 0;
		box-shadow: none;
	}

	.navbar.navbar-default .navbar-nav {
		flex-wrap: nowrap;
		float: none;
		margin: 0;
		white-space: nowrap;
	}

	.navbar.navbar-default .navbar-right {
		flex: 0 0 auto;
		margin-right: 0;
		margin-left: auto;
	}

	.navbar.navbar-default .navbar-nav > li > a,
	.navbar.navbar-default .navbar-right > li:last-child > a {
		padding: 22px clamp(6px, .75vw, 10px) 20px;
		font-size: clamp(12px, 1.4vw, 13px);
		line-height: 1.35;
		white-space: nowrap;
	}

	.navbar.navbar-default .navbar-right > li > a[href$="/login"] {
		margin-top: 13px;
		padding: 7px 10px;
		font-size: clamp(12px, 1.1vw, 13px);
	}

	.navbar.navbar-default .navbar-toggle {
		display: none !important;
	}
}

@media screen and (max-width: 899px) {
	.navbar.navbar-default .container {
		padding-right: 20px;
		padding-left: 20px;
	}
}

@media screen and (max-width: 760px) {
	.navbar.navbar-default {
		min-height: 58px;
	}

	.navbar.navbar-default .container {
		width: 100%;
		padding-right: 15px;
		padding-left: 15px;
	}

	.navbar.navbar-default #header_logo {
		padding-top: 7px;
	}

	.navbar.navbar-default .logo {
		width: 150px;
	}
}

/* ---------------------------------------------------------
   My Page mega menu
   Matches the structure of the My Page dashboard.
   --------------------------------------------------------- */
.navbar.navbar-default .header-mega-menu {
    right: 0;
    left: auto;
    width: 900px;
    max-width: calc(100vw - 32px);
    padding: 0;
    overflow: hidden;
    border: 1px solid #dfe5eb;
    border-radius: 12px;
    background: #f7f9fb;
    box-shadow: 0 16px 38px rgba(23, 43, 64, .16);
}

.header-mega-menu > li {
    list-style: none;
}

.header-mega-menu__top {
    border-bottom: 1px solid #e4e9ee;
    background: #fff;
}

.header-mega-menu__top-link {
    display: flex !important;
    align-items: center;
    gap: 10px;
    padding: 14px 20px !important;
    color: #175f9c !important;
    font-size: 15px;
    font-weight: 800;
    text-decoration: none !important;
}

.header-mega-menu__top-link:hover,
.header-mega-menu__top-link:focus {
    background: #eef6fd !important;
    color: #0f528a !important;
}

.header-mega-menu__top-link i {
    width: 20px;
    text-align: center;
}

.header-mega-menu__body {
    padding: 18px;
}

.header-mega-menu__group + .header-mega-menu__group {
    margin-top: 16px;
}

.header-mega-menu__group-title {
    margin: 0 0 10px;
    color: #24384a;
    font-size: 15px;
    font-weight: 800;
    line-height: 1.3;
}

.header-mega-menu__group-eyebrow {
    display: block;
    margin-bottom: 2px;
    color: #6d86a0;
    font-size: 10px;
    font-weight: 800;
    letter-spacing: .05em;
}

.header-mega-menu__product-grid {
    display: grid;
    grid-template-columns: 1.75fr .95fr .95fr;
    gap: 14px;
}

.header-mega-menu__product {
    min-width: 0;
    overflow: hidden;
    border: 1px solid #dfe5eb;
    border-radius: 10px;
    background: #fff;
}

.header-mega-menu__product-title {
    display: flex;
    align-items: center;
    gap: 9px;
    margin: 0;
    padding: 11px 13px;
    color: #fff;
    font-size: 14px;
    font-weight: 800;
    line-height: 1.3;
}

.header-mega-menu__product--print .header-mega-menu__product-title {
    background: #48a45d;
}

.header-mega-menu__product--pdf .header-mega-menu__product-title {
    background: #ca5260;
}

.header-mega-menu__product--web .header-mega-menu__product-title {
    background: #4b91cd;
}

.header-mega-menu__product-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 26px;
    height: 26px;
    border: 1px solid rgba(255, 255, 255, .55);
    border-radius: 50%;
    font-size: 12px;
}

.header-mega-menu__print-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0;
    padding: 12px;
}

.header-mega-menu__print-grid > div + div {
    padding-left: 12px;
    border-left: 1px solid #e7ebef;
}

.header-mega-menu__product--pdf > .header-mega-menu__links,
.header-mega-menu__product--web > .header-mega-menu__links {
    padding: 12px;
}

.header-mega-menu__subheading {
    margin: 0 0 5px;
    color: #778695;
    font-size: 11px;
    font-weight: 800;
    line-height: 1.3;
}

.header-mega-menu__links {
    display: grid;
    gap: 2px;
}

.header-mega-menu__links a {
    display: flex;
    align-items: center;
    gap: 7px;
    min-width: 0;
    padding: 7px 8px;
    border-radius: 6px;
    color: #35495a;
    font-size: 12px;
    font-weight: 600;
    line-height: 1.35;
    text-decoration: none !important;
    white-space: normal;
}

.header-mega-menu__links a:hover,
.header-mega-menu__links a:focus {
    background: #f0f5f9;
    color: #0f66c3;
}

.header-mega-menu__links a > i {
    flex: 0 0 15px;
    width: 15px;
    color: #3b82c4;
    font-size: 11px;
    text-align: center;
}

.header-mega-menu__group--common,
.header-mega-menu__group--account {
    padding: 13px;
    border: 1px solid #dfe5eb;
    border-radius: 9px;
    background: #fff;
}

.header-mega-menu__group--common .header-mega-menu__group-title,
.header-mega-menu__group--account .header-mega-menu__group-title {
    margin-bottom: 8px;
}

.header-mega-menu__common-grid,
.header-mega-menu__account-grid {
    display: grid;
    gap: 8px;
}

.header-mega-menu__common-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.header-mega-menu__account-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
}

.header-mega-menu__common-link,
.header-mega-menu__account-grid > a {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 7px;
    min-width: 0;
    min-height: 38px;
    padding: 8px 10px;
    border: 1px solid #e1e6eb;
    border-radius: 7px;
    background: #fbfcfd;
    color: #405568;
    font-size: 12px;
    font-weight: 700;
    line-height: 1.3;
    text-decoration: none !important;
}

.header-mega-menu__common-link:hover,
.header-mega-menu__common-link:focus,
.header-mega-menu__account-grid > a:hover,
.header-mega-menu__account-grid > a:focus {
    border-color: #b9d5eb;
    background: #eef6fd;
    color: #0f66c3;
}

.header-mega-menu__common-link > i:first-child,
.header-mega-menu__account-grid > a > i:first-child {
    color: #3b82c4;
}

.header-mega-menu__common-link--shop {
    background: #eef7ff;
}

.header-mega-menu__external-icon {
    margin-left: auto;
    font-size: 9px;
}

.header-mega-menu__logout {
    color: #687785 !important;
}

.header-mega-menu__logout-form {
    display: none;
}

@media screen and (min-width: 768px) and (max-width: 980px) {
    .navbar.navbar-default .header-mega-menu {
        width: 760px;
    }

    .header-mega-menu__product-grid {
        grid-template-columns: 1.5fr 1fr 1fr;
        gap: 10px;
    }

    .header-mega-menu__print-grid {
        grid-template-columns: 1fr;
    }

    .header-mega-menu__print-grid > div + div {
        margin-top: 10px;
        padding-top: 10px;
        padding-left: 0;
        border-top: 1px solid #e7ebef;
        border-left: 0;
    }
}

@media screen and (max-width: 767px) {
    .navbar.navbar-default .header-mega-menu,
    .navbar.navbar-default .navbar-nav .open .header-mega-menu {
        position: static;
        width: 100%;
        max-width: none;
        max-height: 70vh;
        margin: 0;
        overflow-x: hidden;
        overflow-y: auto;
        border: 0;
        border-radius: 0;
        box-shadow: none;
    }

    .header-mega-menu__body {
        padding: 14px;
    }

    .header-mega-menu__product-grid {
        grid-template-columns: 1fr;
    }

    .header-mega-menu__print-grid {
        grid-template-columns: 1fr;
    }

    .header-mega-menu__print-grid > div + div {
        margin-top: 10px;
        padding-top: 10px;
        padding-left: 0;
        border-top: 1px solid #e7ebef;
        border-left: 0;
    }

    .header-mega-menu__common-grid {
        grid-template-columns: 1fr;
    }

    .header-mega-menu__account-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .header-mega-menu__common-link,
    .header-mega-menu__account-grid > a {
        justify-content: flex-start;
    }

    .header-mega-menu__external-icon {
        margin-left: auto;
    }
}

@media screen and (max-width: 479px) {
    .header-mega-menu__account-grid {
        grid-template-columns: 1fr;
    }
}

