@import url("https://fonts.googleapis.com/css2?family=Cormorant+Garamond:wght@500;600&family=Manrope:wght@400;500;600;700;800&display=swap");

:root {
	--ely-turquoise-dark: #0b4f48;
	--ely-turquoise: #168f82;
	--ely-turquoise-bright: #62d7c8;
	--ely-turquoise-soft: #dff4f0;
	--ely-gold-light: #e5c994;
	--ely-cream: #fff8ee;
	--ely-ink: #17211e;
	--ely-muted: #68736f;
	--ely-line: rgba(23, 33, 30, .12);
	--ely-display: "Cormorant Garamond", Georgia, serif;
	--ely-body: "Manrope", Arial, sans-serif;
}

.ely-shop-site-header,
.ely-shop-site-header * {
	box-sizing: border-box;
}

.ely-shop-site-header {
	position: relative;
	z-index: 900;
	width: 100%;
	color: var(--ely-ink);
	font-family: var(--ely-body);
}

.ely-shop-site-header a {
	color: inherit;
	text-decoration: none;
}

.ely-skip-link {
	position: fixed;
	z-index: 99999;
	top: 12px;
	left: 12px;
	padding: 10px 15px;
	border-radius: 999px;
	background: var(--ely-turquoise-dark);
	color: #fff !important;
	font-size: 12px;
	font-weight: 800;
	transform: translateY(-170%);
}

.ely-skip-link:focus {
	transform: translateY(0);
}

/* Continuous duplicated-track marquee. */
.ely-shop-site-marquee {
	width: 100%;
	overflow: hidden;
	background: var(--ely-turquoise-dark);
	color: #fff;
}

.ely-shop-site-marquee__track {
	width: max-content;
	display: flex;
	align-items: center;
	animation: ely-shop-site-marquee-scroll 22s linear infinite;
	will-change: transform;
}

.ely-shop-site-marquee__group {
	min-height: 34px;
	display: flex;
	flex-shrink: 0;
	align-items: center;
	gap: 26px;
	padding-right: 26px;
	white-space: nowrap;
	font-size: 9px;
	font-weight: 800;
	letter-spacing: .08em;
	text-transform: uppercase;
}

.ely-shop-site-marquee__group i {
	width: 4px;
	height: 4px;
	flex: 0 0 4px;
	border-radius: 50%;
	background: var(--ely-gold-light);
}

.ely-shop-site-marquee:hover .ely-shop-site-marquee__track {
	animation-play-state: paused;
}

@keyframes ely-shop-site-marquee-scroll {
	from { transform: translateX(0); }
	to { transform: translateX(-50%); }
}

/* Desktop header. */
.ely-shop-site-nav {
	position: sticky;
	z-index: 910;
	top: 0;
	border-bottom: 1px solid var(--ely-line);
	background: rgba(255, 248, 238, .95);
	-webkit-backdrop-filter: blur(17px);
	backdrop-filter: blur(17px);
}

.admin-bar .ely-shop-site-nav {
	top: 32px;
}

.ely-shop-site-nav__inner {
	width: min(1200px, calc(100% - 42px));
	min-height: 76px;
	display: grid;
	grid-template-columns: auto 1fr auto;
	align-items: center;
	gap: 28px;
	margin-inline: auto;
}

.ely-shop-site-brand {
	display: inline-flex;
	align-items: center;
	gap: 9px;
	font: 600 24px/1 var(--ely-display);
	letter-spacing: -.03em;
}

.ely-shop-site-brand__logo {
	width: 40px;
	height: 40px;
	object-fit: contain;
}

.ely-shop-site-brand__fallback {
	width: 40px;
	height: 40px;
	display: grid;
	place-items: center;
	border-radius: 50%;
	background: var(--ely-turquoise);
	color: #fff;
	font: 600 23px/1 var(--ely-display);
}

.ely-shop-site-menu,
.ely-shop-site-menu ul,
.ely-shop-site-mobile-list,
.ely-shop-site-mobile-list ul {
	margin: 0;
	padding: 0;
	list-style: none;
}

.ely-shop-site-menu {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 25px;
}

.ely-shop-site-menu > li {
	position: relative;
}

.ely-shop-site-menu > li > a {
	position: relative;
	min-height: 76px;
	display: inline-flex;
	align-items: center;
	color: #46514d;
	font-size: 12px;
	font-weight: 800;
}

.ely-shop-site-menu > li > a::after {
	content: "";
	position: absolute;
	right: 0;
	bottom: 17px;
	left: 0;
	height: 2px;
	border-radius: 99px;
	background: var(--ely-turquoise);
	transform: scaleX(0);
	transition: transform .18s ease;
}

.ely-shop-site-menu > li:hover > a::after,
.ely-shop-site-menu > li:focus-within > a::after,
.ely-shop-site-menu > .current-menu-item > a::after,
.ely-shop-site-menu > .current-menu-ancestor > a::after {
	transform: scaleX(1);
}

.ely-shop-site-menu .sub-menu {
	position: absolute;
	z-index: 930;
	top: calc(100% - 7px);
	left: 50%;
	width: 245px;
	display: grid;
	padding: 10px;
	border: 1px solid var(--ely-line);
	border-radius: 17px;
	background: #fff;
	box-shadow: 0 16px 42px rgba(17, 42, 36, .13);
	opacity: 0;
	pointer-events: none;
	transform: translate(-50%, 10px);
	transition: opacity .18s ease, transform .18s ease;
}

.ely-shop-site-menu li:hover > .sub-menu,
.ely-shop-site-menu li:focus-within > .sub-menu {
	opacity: 1;
	pointer-events: auto;
	transform: translate(-50%, 0);
}

.ely-shop-site-menu .sub-menu a {
	display: block;
	padding: 10px 12px;
	border-radius: 10px;
	color: var(--ely-muted);
	font-size: 11px;
	font-weight: 700;
}

.ely-shop-site-menu .sub-menu a:hover,
.ely-shop-site-menu .sub-menu a:focus {
	background: var(--ely-turquoise-soft);
	color: var(--ely-turquoise-dark);
}

.ely-shop-site-actions {
	display: flex;
	align-items: center;
	gap: 7px;
}

.ely-shop-site-icon {
	position: relative;
	width: 40px;
	height: 40px;
	display: inline-grid;
	place-items: center;
	padding: 0;
	border: 1px solid var(--ely-line);
	border-radius: 50%;
	background: #fff;
	color: var(--ely-ink);
	cursor: pointer;
	transition: transform .18s ease, border-color .18s ease, background .18s ease;
}

.ely-shop-site-icon svg {
	width: 19px;
	height: 19px;
	fill: none;
	stroke: currentColor;
	stroke-width: 1.9;
}

.ely-shop-site-icon:hover,
.ely-shop-site-icon:focus-visible {
	border-color: rgba(22, 143, 130, .38);
	background: var(--ely-turquoise-soft);
	transform: translateY(-1px);
}

.ely-shop-site-cart-count {
	position: absolute;
	top: -4px;
	right: -4px;
	min-width: 18px;
	height: 18px;
	display: grid;
	place-items: center;
	padding: 0 4px;
	border-radius: 999px;
	background: var(--ely-turquoise);
	color: #fff;
	font-size: 8px;
	font-weight: 800;
}

.ely-shop-site-menu-toggle {
	display: none;
}

/* Mobile drawer. */
.ely-shop-site-overlay {
	position: fixed;
	z-index: 940;
	inset: 0;
	background: rgba(4, 29, 25, .52);
	opacity: 0;
	pointer-events: none;
	transition: opacity .22s ease;
}

.ely-shop-site-overlay.is-open {
	opacity: 1;
	pointer-events: auto;
}

.ely-shop-site-mobile-panel {
	position: fixed;
	z-index: 950;
	top: 0;
	right: 0;
	width: min(89vw, 400px);
	height: 100dvh;
	padding: 26px;
	overflow-y: auto;
	background: var(--ely-cream);
	box-shadow: -25px 0 70px rgba(10, 44, 38, .23);
	transform: translateX(104%);
	transition: transform .27s cubic-bezier(.2, .7, .2, 1);
}

.ely-shop-site-mobile-panel.is-open {
	transform: translateX(0);
}

.ely-shop-site-mobile-panel__top {
	display: flex;
	align-items: center;
	justify-content: space-between;
}

.ely-shop-site-mobile-list {
	display: grid;
	margin-top: 29px;
}

.ely-shop-site-mobile-list > li > a,
.ely-shop-site-mobile-list > li > button {
	width: 100%;
	padding: 15px 0;
	border: 0;
	border-bottom: 1px solid var(--ely-line);
	background: transparent;
	color: var(--ely-ink);
	font: 600 23px/1.15 var(--ely-display);
	text-align: left;
	cursor: pointer;
}

.ely-shop-site-mobile-list .menu-item-has-children {
	position: relative;
}

.ely-shop-site-mobile-list .ely-submenu-toggle {
	position: absolute;
	top: 7px;
	right: 0;
	width: 40px;
	height: 40px;
	border: 0;
	background: transparent;
	color: var(--ely-turquoise);
	font-size: 20px;
	cursor: pointer;
}

.ely-shop-site-mobile-list .sub-menu {
	display: none;
	padding: 7px 0 11px 14px;
	border-bottom: 1px solid var(--ely-line);
}

.ely-shop-site-mobile-list .menu-item-has-children.is-open > .sub-menu {
	display: grid;
}

.ely-shop-site-mobile-list .sub-menu a {
	display: block;
	padding: 8px 0;
	color: var(--ely-muted);
	font-size: 12px;
	font-weight: 700;
}

.ely-shop-site-mobile-buttons {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 9px;
	margin-top: 23px;
}

.ely-shop-site-mobile-buttons a {
	min-height: 46px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	border: 1px solid var(--ely-line);
	border-radius: 999px;
	background: #fff;
	color: var(--ely-turquoise-dark);
	font-size: 11px;
	font-weight: 800;
}

.ely-shop-site-mobile-buttons a:last-child {
	border-color: transparent;
	background: var(--ely-turquoise);
	color: #fff;
}

.ely-shop-site-header :is(a, button):focus-visible {
	outline: 3px solid rgba(98, 215, 200, .55);
	outline-offset: 3px;
}

/* This is intentionally narrow. The developer must remove the old header
   from child-theme header.php; do not hide generic theme wrappers here. */

@media (max-width: 900px) {
	.ely-shop-site-desktop-menu {
		display: none;
	}

	.ely-shop-site-menu-toggle {
		display: inline-grid;
	}

	.ely-shop-site-nav__inner {
		grid-template-columns: 1fr auto;
	}
}

@media screen and (max-width: 782px) {
	.admin-bar .ely-shop-site-nav {
		top: 46px;
	}
}

@media (max-width: 650px) {
	.ely-shop-site-marquee__track {
		animation-duration: 17s;
	}

	.ely-shop-site-nav__inner {
		width: calc(100% - 22px);
		min-height: 69px;
		gap: 8px;
	}

	.ely-shop-site-brand {
		font-size: 21px;
	}

	.ely-shop-site-brand__logo,
	.ely-shop-site-brand__fallback {
		width: 35px;
		height: 35px;
	}

	.ely-shop-site-icon {
		width: 37px;
		height: 37px;
	}

	.ely-shop-site-account {
		display: none;
	}
}

@media (prefers-reduced-motion: reduce) {
	.ely-shop-site-marquee__track {
		width: 100%;
		animation: none;
	}

	.ely-shop-site-marquee__group {
		width: 100%;
		justify-content: center;
		flex-wrap: wrap;
		padding: 8px 15px;
		white-space: normal;
	}

	.ely-shop-site-marquee__group[aria-hidden="true"] {
		display: none;
	}

	.ely-shop-site-header *,
	.ely-shop-site-header *::before,
	.ely-shop-site-header *::after {
		scroll-behavior: auto !important;
		transition-duration: .01ms !important;
	}
}


/*
=====================================================================
PRODUCT CATEGORY / TAG ARCHIVE FIX
=====================================================================
*/

body:is(
	.woocommerce-shop,
	.woocommerce-account,
	.tax-product_cat,
	.tax-product_tag
) .elm-announcement,
body:is(
	.woocommerce-shop,
	.woocommerce-account,
	.tax-product_cat,
	.tax-product_tag
) .elm-header,
body:is(
	.woocommerce-shop,
	.woocommerce-account,
	.tax-product_cat,
	.tax-product_tag
) .elm-overlay,
body:is(
	.woocommerce-shop,
	.woocommerce-account,
	.tax-product_cat,
	.tax-product_tag
) .elm-mobile-panel {
	display: none !important;
	visibility: hidden !important;
	opacity: 0 !important;
	pointer-events: none !important;
}

body:is(.tax-product_cat, .tax-product_tag)
:is(#masthead, header.site-header, .site-header)
:not(.ely-shop-site-header) {
	display: none !important;
}

body:is(.tax-product_cat, .tax-product_tag)
:is(#secondary, aside#secondary, .widget-area, .sidebar) {
	display: none !important;
}

body:is(.tax-product_cat, .tax-product_tag)
:is(#primary, .content-area, main.site-main, .site-main) {
	width: 100% !important;
	max-width: none !important;
	float: none !important;
	margin: 0 !important;
}

body:is(.tax-product_cat, .tax-product_tag) #content {
	width: min(1180px, calc(100% - 40px)) !important;
	max-width: 1180px !important;
	min-height: 520px;
	margin: 30px auto 70px !important;
	padding: 0 !important;
}

body:is(.tax-product_cat, .tax-product_tag)
.woocommerce-breadcrumb {
	margin: 0 0 16px !important;
	color: #68736f !important;
	font-family: "Manrope", Arial, sans-serif !important;
	font-size: 10px !important;
}

body:is(.tax-product_cat, .tax-product_tag)
.woocommerce-products-header {
	margin-bottom: 22px;
	padding: clamp(25px, 4vw, 42px);
	overflow: hidden;
	border: 1px solid rgba(23, 33, 30, .12);
	border-radius: 24px;
	background:
		radial-gradient(
			circle at 100% 0,
			rgba(98, 215, 200, .16),
			transparent 15rem
		),
		#fff8ee;
}

body:is(.tax-product_cat, .tax-product_tag)
.woocommerce-products-header__title {
	margin: 0 !important;
	color: #17211e !important;
	font: 600 clamp(38px, 5vw, 56px)/.98
		"Cormorant Garamond", Georgia, serif !important;
	letter-spacing: -.035em !important;
}

body:is(.tax-product_cat, .tax-product_tag)
.term-description {
	max-width: 720px;
	margin-top: 13px;
	color: #68736f;
	font-family: "Manrope", Arial, sans-serif;
	font-size: 11px;
	line-height: 1.7;
}

body:is(.tax-product_cat, .tax-product_tag)
.woocommerce-info {
	min-height: 190px;
	display: grid;
	place-items: center;
	margin: 0 !important;
	padding: 38px 24px !important;
	border: 1px dashed rgba(22, 143, 130, .30) !important;
	border-top: 1px dashed rgba(22, 143, 130, .30) !important;
	border-radius: 22px;
	background:
		radial-gradient(
			circle at 50% 0,
			rgba(98, 215, 200, .15),
			transparent 16rem
		),
		#fff8ee;
	color: #68736f;
	font-family: "Manrope", Arial, sans-serif;
	font-size: 12px;
	font-weight: 700;
	line-height: 1.6;
	text-align: center;
}

body:is(.tax-product_cat, .tax-product_tag)
.woocommerce-info::before {
	display: none !important;
}

@media (max-width: 680px) {
	body:is(.tax-product_cat, .tax-product_tag) #content {
		width: calc(100% - 20px) !important;
		margin-top: 18px !important;
		margin-bottom: 50px !important;
	}

	body:is(.tax-product_cat, .tax-product_tag)
	.woocommerce-products-header {
		padding: 25px 18px;
		border-radius: 19px;
	}
}
