/*
Theme Name: Emerald Modern
Theme URI: https://emeraldbodyboardspecialists.com.au/
Author: Emerald Bodyboard Specialists
Description: A modern WooCommerce theme for Emerald Bodyboard Specialists. Preserves existing products, orders, customers and URLs.
Version: 1.3.1
Requires at least: 6.4
Requires PHP: 8.0
Text Domain: emerald-modern
*/

:root {
	--em-ink: #111514;
	--em-charcoal: #252a29;
	--em-white: #fff;
	--em-paper: #f5f4ef;
	--em-mist: #e7ebe8;
	--em-accent: #9cab9f;
	--em-accent-dark: #455f58;
	--em-muted: #6f7673;
	--em-line: rgba(17, 21, 20, .15);
	--em-width: 1240px;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
	background: var(--em-paper);
	color: var(--em-ink);
	font-family: Arial, Helvetica, sans-serif;
	margin: 0;
}
body.admin-bar .em-header { top: 32px; }
img { display: block; height: auto; max-width: 100%; }
a { color: inherit; text-decoration: none; }
button, input, select, textarea { font: inherit; }
button { cursor: pointer; }
.screen-reader-text {
	clip: rect(1px, 1px, 1px, 1px);
	clip-path: inset(50%);
	height: 1px;
	overflow: hidden;
	position: absolute !important;
	width: 1px;
}
.em-shell { margin-inline: auto; max-width: var(--em-width); padding-inline: 24px; }
.em-eyebrow {
	color: var(--em-accent-dark);
	font-size: 11px;
	font-weight: 800;
	letter-spacing: .18em;
	margin: 0 0 16px;
	text-transform: uppercase;
}
.em-heading {
	font-family: Impact, "Arial Narrow", sans-serif;
	font-size: clamp(42px, 6vw, 84px);
	font-weight: 900;
	letter-spacing: -.035em;
	line-height: .92;
	margin: 0;
	text-transform: uppercase;
}
.em-heading--small { font-size: clamp(40px, 5vw, 68px); }
.em-button,
.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button,
.woocommerce #respond input#submit {
	align-items: center;
	background: var(--em-ink);
	border: 1px solid var(--em-ink);
	border-radius: 0;
	color: var(--em-white);
	display: inline-flex;
	font-size: 11px;
	font-weight: 800;
	justify-content: center;
	letter-spacing: .08em;
	min-height: 50px;
	padding: 0 24px;
	text-transform: uppercase;
	transition: background .18s ease, color .18s ease, transform .18s ease;
}
.em-button:hover,
.woocommerce a.button:hover,
.woocommerce button.button:hover,
.woocommerce input.button:hover { background: var(--em-accent-dark); color: var(--em-white); transform: translateY(-2px); }
.em-button--light { background: var(--em-white); border-color: var(--em-white); color: var(--em-ink); }
.em-button--outline { background: transparent; border-color: rgba(255,255,255,.7); color: var(--em-white); }

/* Announcement and navigation */
.em-announcement {
	align-items: center;
	background: var(--em-charcoal);
	color: var(--em-white);
	display: flex;
	font-size: 10px;
	font-weight: 800;
	height: 34px;
	justify-content: center;
	letter-spacing: .07em;
	padding: 0 20px;
	text-align: center;
	text-transform: uppercase;
}
.em-header {
	border-bottom: 1px solid rgba(255,255,255,.25);
	color: var(--em-white);
	left: 0;
	position: absolute;
	right: 0;
	top: 34px;
	z-index: 50;
}
.em-header--solid { background: var(--em-charcoal); position: relative; top: 0; }
.em-header__inner { align-items: center; display: grid; grid-template-columns: 190px 1fr 190px; min-height: 92px; }
.em-brand img, .em-brand .custom-logo { max-height: 58px; width: auto; }
.em-nav ul { align-items: center; display: flex; gap: clamp(16px, 2.2vw, 34px); justify-content: center; list-style: none; margin: 0; padding: 0; }
.em-nav li { position: relative; }
.em-nav a { display: block; font-size: 11px; font-weight: 800; letter-spacing: .05em; padding: 38px 0; position: relative; text-transform: uppercase; }
.em-nav a::after { background: var(--em-accent); bottom: 0; content: ""; height: 3px; left: 0; position: absolute; transform: scaleX(0); transform-origin: left; transition: transform .18s ease; width: 100%; }
.em-nav a:hover::after, .em-nav .current-menu-item > a::after { transform: scaleX(1); }
.em-nav .sub-menu {
	align-items: stretch;
	background: var(--em-white);
	box-shadow: 0 18px 50px rgba(7,12,13,.2);
	display: none;
	flex-direction: column;
	gap: 0;
	justify-content: flex-start;
	left: -20px;
	min-width: 230px;
	padding: 10px 0;
	position: absolute;
	top: calc(100% - 1px);
	z-index: 60;
}
.em-nav .sub-menu a { color: var(--em-ink); padding: 12px 20px; white-space: nowrap; }
.em-nav .sub-menu a::after { display: none; }
.em-nav .sub-menu a:hover, .em-nav .sub-menu a:focus { background: var(--em-sand); color: var(--em-accent-dark); }
.em-nav li:hover > .sub-menu, .em-nav li:focus-within > .sub-menu { display: flex; }
.em-actions { align-items: center; display: flex; justify-content: flex-end; }
.em-icon-button { align-items: center; background: transparent; border: 0; color: inherit; display: inline-flex; height: 46px; justify-content: center; min-width: 44px; }
.em-icon-button svg { fill: none; height: 21px; stroke: currentColor; stroke-width: 1.8; width: 21px; }
.em-cart-count { align-items: center; background: var(--em-accent); color: var(--em-ink); display: inline-flex; font-size: 9px; font-weight: 900; height: 17px; justify-content: center; margin-left: -8px; margin-top: -22px; width: 17px; }
.em-menu-toggle { display: none; }

/* Hero slider */
.em-hero { color: var(--em-white); height: min(790px, 92vh); min-height: 640px; overflow: hidden; position: relative; }
.em-slide { inset: 0; opacity: 0; pointer-events: none; position: absolute; transition: opacity .7s ease; }
.em-slide.is-active { opacity: 1; pointer-events: auto; }
.em-slide__image { height: 100%; object-fit: cover; width: 100%; }
.em-slide::after { background: linear-gradient(90deg, rgba(7,12,13,.65), rgba(7,12,13,.16) 70%); content: ""; inset: 0; position: absolute; }
.em-slide__content { left: max(24px, calc((100vw - var(--em-width))/2 + 24px)); max-width: 680px; position: absolute; top: 54%; transform: translateY(-50%); z-index: 2; }
.em-slide .em-eyebrow { color: var(--em-white); }
.em-slide h1, .em-slide h2 { font-family: Impact, "Arial Narrow", sans-serif; font-size: clamp(64px, 8vw, 120px); letter-spacing: -.035em; line-height: .84; margin: 0; max-width: 700px; text-transform: uppercase; }
.em-slide__copy { font-size: clamp(15px, 1.3vw, 19px); line-height: 1.55; margin: 28px 0 32px; max-width: 500px; }
.em-slide__actions { display: flex; flex-wrap: wrap; gap: 10px; }
.em-slider-nav { bottom: 28px; display: flex; gap: 8px; left: 50%; position: absolute; transform: translateX(-50%); z-index: 4; }
.em-slider-dot { background: transparent; border: 1px solid rgba(255,255,255,.7); height: 11px; padding: 0; width: 38px; }
.em-slider-dot.is-active { background: var(--em-white); }

/* Home sections */
.em-section { padding-block: 100px; }
.em-section--white { background: var(--em-white); }
.em-section-heading { align-items: end; display: flex; gap: 32px; justify-content: space-between; margin-bottom: 44px; }
.em-section-heading p { color: var(--em-muted); line-height: 1.7; margin: 0; max-width: 480px; }
.em-category-grid { display: grid; gap: 14px; grid-template-columns: repeat(3, 1fr); }
.em-category { background: var(--em-charcoal); color: var(--em-white); min-height: 420px; overflow: hidden; position: relative; }
.em-category img { height: 100%; object-fit: cover; position: absolute; transition: transform .5s ease; width: 100%; }
.em-category:hover img { transform: scale(1.035); }
.em-category::after { background: linear-gradient(0deg, rgba(0,0,0,.76), rgba(0,0,0,.04) 68%); content: ""; inset: 0; position: absolute; }
.em-category__text { bottom: 28px; left: 28px; position: absolute; z-index: 2; }
.em-category h3 { font-family: Impact, "Arial Narrow", sans-serif; font-size: 34px; letter-spacing: -.02em; margin: 5px 0 0; text-transform: uppercase; }
.em-category p { font-size: 10px; font-weight: 800; letter-spacing: .12em; margin: 0; text-transform: uppercase; }
.em-products ul.products { align-items: stretch; display: grid; gap: 22px; grid-template-columns: repeat(4, minmax(0, 1fr)); margin: 0; }
.em-products ul.products::before, .em-products ul.products::after { display: none; }
.em-products ul.products li.product {
	background: var(--em-white);
	border: 1px solid var(--em-line);
	border-radius: 20px;
	box-shadow: 0 12px 34px rgba(13, 20, 18, .055);
	column-gap: 8px;
	display: grid !important;
	float: none !important;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	margin: 0 !important;
	overflow: hidden;
	padding: 14px;
	text-align: center;
	transition: box-shadow .22s ease, transform .22s ease;
	width: auto !important;
}
.em-products ul.products li.product:hover {
	box-shadow: 0 18px 44px rgba(13, 20, 18, .1);
	transform: translateY(-3px);
}
.em-products li.product > a.woocommerce-LoopProduct-link {
	align-items: stretch;
	display: flex;
	flex-direction: column;
	grid-column: 1 / -1;
	width: 100%;
}
.em-products ul.products li.product a img {
	aspect-ratio: 1;
	background: var(--em-mist);
	border-radius: 14px;
	height: auto !important;
	margin: 0 0 20px !important;
	object-fit: contain;
	padding: clamp(14px, 1.4vw, 24px);
	width: 100% !important;
}
.em-products ul.products li.product .woocommerce-loop-product__title {
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 3;
	color: var(--em-ink);
	display: -webkit-box;
	font-size: clamp(14px, 1vw, 17px);
	font-weight: 800;
	line-height: 1.25;
	margin: 0;
	min-height: 64px;
	overflow: hidden;
	padding: 0 8px !important;
	text-align: left;
}
.em-products ul.products li.product .price {
	color: var(--em-accent-dark);
	font-size: 16px;
	font-weight: 800;
	margin: 10px 0 2px;
	padding-inline: 8px;
	text-align: left;
}
.em-products ul.products li.product .button,
.em-products .yith-wcqv-button {
	align-items: center;
	border-radius: 999px;
	display: inline-flex;
	font-size: 11px;
	justify-content: center;
	line-height: 1.15;
	margin: 14px 0 0;
	min-height: 46px;
	padding: 10px 14px;
	text-align: center;
	width: 100%;
}
.em-products .yith-wcqv-button {
	background: transparent !important;
	border-color: var(--em-ink) !important;
	color: var(--em-ink) !important;
}
.em-products .yith-wcqv-button:hover {
	background: var(--em-accent-dark) !important;
	border-color: var(--em-accent-dark) !important;
	color: var(--em-white) !important;
}
.em-products > .em-section-heading .em-button { border-radius: 999px; }
.woocommerce span.onsale { background: var(--em-accent-dark); border-radius: 0; font-size: 10px; letter-spacing: .06em; min-height: auto; padding: 5px 9px; text-transform: uppercase; }

/* Editable homepage news slider */
.em-news {
	background: var(--em-ink);
	color: var(--em-white);
	height: clamp(620px, 70vw, 780px);
	overflow: hidden;
	position: relative;
}
.em-news-slide {
	inset: 0;
	opacity: 0;
	pointer-events: none;
	position: absolute;
	transition: opacity .65s ease;
}
.em-news-slide.is-active { opacity: 1; pointer-events: auto; }
.em-news-slide__image {
	height: 100%;
	object-fit: cover;
	position: absolute;
	width: 100%;
}
.em-news-slide__shade {
	background: linear-gradient(90deg, rgba(10,15,14,.88) 0%, rgba(10,15,14,.56) 48%, rgba(10,15,14,.12) 100%);
	inset: 0;
	position: absolute;
}
.em-news-slide__inner { height: 100%; position: relative; }
.em-news-slide__content {
	max-width: 650px;
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
}
.em-news-slide .em-eyebrow { color: var(--em-accent); }
.em-news-slide .em-heading { font-size: clamp(52px, 7vw, 96px); }
.em-news-slide__content > p:not(.em-eyebrow) {
	color: rgba(255,255,255,.75);
	font-size: clamp(15px, 1.4vw, 18px);
	line-height: 1.7;
	margin: 28px 0 32px;
	max-width: 570px;
}
.em-news-controls {
	align-items: center;
	bottom: 34px;
	display: flex;
	gap: 16px;
	left: 50%;
	position: absolute;
	transform: translateX(-50%);
	z-index: 4;
}
.em-news-dots { display: flex; gap: 7px; }
.em-news-arrow {
	align-items: center;
	background: rgba(17,21,20,.55);
	border: 1px solid rgba(255,255,255,.5);
	border-radius: 50%;
	color: var(--em-white);
	display: inline-flex;
	font-size: 18px;
	height: 42px;
	justify-content: center;
	transition: background .2s ease, border-color .2s ease;
	width: 42px;
}
.em-news-arrow:hover { background: var(--em-accent-dark); border-color: var(--em-accent-dark); }

/* Editable homepage gallery */
.em-gallery { background: var(--em-ink); color: var(--em-white); overflow: hidden; }
.em-gallery .em-eyebrow { color: var(--em-accent); }
.em-gallery__controls { display: flex; gap: 10px; }
.em-gallery__controls button {
	align-items: center;
	background: transparent;
	border: 1px solid rgba(255,255,255,.45);
	border-radius: 50%;
	color: var(--em-white);
	display: inline-flex;
	font-size: 20px;
	height: 50px;
	justify-content: center;
	transition: background .2s ease, border-color .2s ease;
	width: 50px;
}
.em-gallery__controls button:hover { background: var(--em-accent-dark); border-color: var(--em-accent-dark); }
.em-gallery__viewport {
	overflow-x: auto;
	overscroll-behavior-inline: contain;
	scrollbar-width: none;
	scroll-snap-type: x mandatory;
}
.em-gallery__viewport::-webkit-scrollbar { display: none; }
.em-gallery__viewport:focus-visible { outline: 2px solid var(--em-accent); outline-offset: 6px; }
.em-gallery__track {
	display: flex;
	gap: 18px;
	width: max-content;
}
.em-gallery-card {
	background: var(--em-charcoal);
	border: 1px solid rgba(255,255,255,.11);
	border-radius: 18px;
	flex: 0 0 clamp(260px, 31vw, 410px);
	margin: 0;
	overflow: hidden;
	scroll-snap-align: start;
}
.em-gallery-card img {
	aspect-ratio: 4 / 3;
	height: auto;
	object-fit: cover;
	transition: transform .45s ease;
	width: 100%;
}
.em-gallery-card:hover img { transform: scale(1.025); }
.em-gallery-card figcaption { display: grid; gap: 5px; padding: 18px 20px 20px; }
.em-gallery-card figcaption strong { font-size: 15px; }
.em-gallery-card figcaption span { color: rgba(255,255,255,.62); font-size: 12px; line-height: 1.5; }
.em-finder { background: var(--em-charcoal); color: var(--em-white); overflow: hidden; position: relative; }
.em-finder::before { border: 1px solid rgba(255,255,255,.08); content: ""; height: 360px; position: absolute; right: -80px; top: -150px; transform: rotate(25deg); width: 360px; }
.em-finder__grid { display: grid; gap: 70px; grid-template-columns: 1fr 1fr; position: relative; z-index: 2; }
.em-finder .em-eyebrow { color: var(--em-accent); }
.em-finder p { color: rgba(255,255,255,.72); line-height: 1.7; max-width: 520px; }
.em-finder__form { background: var(--em-white); color: var(--em-ink); padding: 36px; }
.em-field { display: grid; gap: 8px; margin-bottom: 18px; }
.em-field label { font-size: 10px; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
.em-field select { appearance: none; background: var(--em-paper); border: 1px solid var(--em-line); border-radius: 0; min-height: 50px; padding: 0 14px; width: 100%; }
.em-story { display: grid; grid-template-columns: 1.08fr .92fr; min-height: 590px; }
.em-story__image img { height: 100%; object-fit: cover; width: 100%; }
.em-story__copy { align-items: flex-start; background: var(--em-mist); display: flex; flex-direction: column; justify-content: center; padding: clamp(45px, 7vw, 110px); }
.em-story__copy p { color: var(--em-muted); line-height: 1.75; max-width: 560px; }

/* Team riders */
.em-team { background: var(--em-ink); color: var(--em-white); }
.em-team .em-eyebrow { color: var(--em-accent); }
.em-section-heading--light > p { color: rgba(255,255,255,.62); }
.em-team__grid {
	display: grid;
	gap: 18px;
	grid-template-columns: repeat(4, minmax(0, 1fr));
}
.em-rider-card {
	background: var(--em-charcoal);
	border: 1px solid rgba(255,255,255,.1);
	border-radius: 18px;
	overflow: hidden;
	transition: transform .25s ease, border-color .25s ease;
}
.em-rider-card:hover { border-color: rgba(255,255,255,.28); transform: translateY(-4px); }
.em-rider-card__image {
	background: #313735;
	display: block;
	overflow: hidden;
}
.em-rider-card__image::before {
	content: "";
	display: block;
	padding-top: 118%;
}
.em-rider-card__image:has(img)::before { display: none; }
.em-rider-card__image img {
	aspect-ratio: 4 / 4.7;
	height: auto;
	object-fit: cover;
	transition: transform .5s ease;
	width: 100%;
}
.em-rider-card:hover .em-rider-card__image img { transform: scale(1.025); }
.em-rider-card__content { padding: 22px; }
.em-rider-card__role,
.em-event-card__location {
	color: var(--em-accent);
	font-size: 10px;
	font-weight: 800;
	letter-spacing: .12em;
	margin: 0 0 9px;
	text-transform: uppercase;
}
.em-rider-card h2,
.em-rider-card h3,
.em-event-card h2,
.em-event-card h3 {
	font-size: 21px;
	line-height: 1.15;
	margin: 0;
}
.em-rider-card__location { color: rgba(255,255,255,.55); font-size: 12px; margin: 9px 0 0; }
.em-rider-card__excerpt { color: rgba(255,255,255,.66); font-size: 13px; line-height: 1.55; margin: 14px 0 0; }

/* Upcoming events */
.em-events { background: var(--em-paper); }
.em-events__grid {
	display: grid;
	gap: 22px;
	grid-template-columns: repeat(3, minmax(0, 1fr));
}
.em-event-card {
	background: var(--em-white);
	border: 1px solid var(--em-line);
	border-radius: 18px;
	overflow: hidden;
	transition: box-shadow .25s ease, transform .25s ease;
}
.em-event-card:hover { box-shadow: 0 18px 40px rgba(13,20,18,.09); transform: translateY(-4px); }
.em-event-card__image {
	background: var(--em-mist);
	display: block;
	min-height: 230px;
	overflow: hidden;
	position: relative;
}
.em-event-card__image img { aspect-ratio: 16 / 10; height: 100%; object-fit: cover; position: absolute; width: 100%; }
.em-event-card__date {
	align-items: center;
	background: var(--em-ink);
	border-radius: 12px;
	bottom: 15px;
	color: var(--em-white);
	display: flex;
	flex-direction: column;
	font-size: 10px;
	justify-content: center;
	left: 15px;
	letter-spacing: .1em;
	min-height: 65px;
	min-width: 62px;
	position: absolute;
	text-transform: uppercase;
}
.em-event-card__date strong { font-size: 24px; letter-spacing: 0; line-height: 1; }
.em-event-card__content { padding: 24px; }
.em-event-card__content > p:not(.em-event-card__location) { color: var(--em-muted); font-size: 14px; line-height: 1.6; }
.em-archive-heading { margin-bottom: 50px; max-width: 850px; }
.em-archive-heading .em-heading { font-size: clamp(52px, 8vw, 104px); }
.em-team .navigation.pagination { color: var(--em-white); }
.navigation.pagination { margin-top: 45px; }
.nav-links { display: flex; flex-wrap: wrap; gap: 8px; }
.nav-links .page-numbers {
	align-items: center;
	border: 1px solid currentColor;
	display: inline-flex;
	height: 42px;
	justify-content: center;
	min-width: 42px;
	padding-inline: 12px;
}
.em-text-link {
	color: var(--em-accent-dark);
	display: inline-block;
	font-size: 11px;
	font-weight: 800;
	letter-spacing: .09em;
	margin-top: 8px;
	text-transform: uppercase;
}

/* Original brand carousel */
.em-partners {
	background: #f5f5f3;
	border-bottom: 1px solid var(--em-line);
	border-top: 1px solid var(--em-line);
	overflow: hidden;
	padding-block: 34px;
}
.em-partners__track {
	animation: em-partner-scroll 30s linear infinite;
	display: flex;
	width: max-content;
}
.em-partners:hover .em-partners__track { animation-play-state: paused; }
.em-partners__group {
	align-items: center;
	display: flex;
	flex-shrink: 0;
	gap: clamp(55px, 7vw, 130px);
	list-style: none;
	margin: 0;
	padding: 0 clamp(55px, 7vw, 130px) 0 0;
}
.em-partners__item {
	align-items: center;
	display: flex;
	height: 115px;
	justify-content: center;
	width: clamp(160px, 17vw, 270px);
}
.em-partners__item img {
	filter: grayscale(1);
	height: auto;
	max-height: 96px;
	max-width: 100%;
	opacity: .62;
	transition: filter .2s ease, opacity .2s ease, transform .2s ease;
	width: auto;
}
.em-partners__item:hover img {
	filter: grayscale(0);
	opacity: 1;
	transform: scale(1.025);
}
@keyframes em-partner-scroll {
	to { transform: translateX(-50%); }
}

/* Standard and WooCommerce pages */
.em-main { min-height: 60vh; padding-block: 70px; }
.em-content { margin-inline: auto; max-width: 900px; padding-inline: 24px; }
.em-page-title { font-family: Impact, "Arial Narrow", sans-serif; font-size: clamp(44px, 6vw, 80px); line-height: .95; margin: 0 0 42px; text-transform: uppercase; }
.woocommerce .woocommerce-breadcrumb { color: var(--em-muted); font-size: 12px; margin-bottom: 30px; }
.woocommerce div.product div.images img { background: var(--em-white); }
.woocommerce div.product .product_title { font-family: Impact, "Arial Narrow", sans-serif; font-size: clamp(38px, 5vw, 68px); line-height: .95; text-transform: uppercase; }
.woocommerce div.product p.price, .woocommerce div.product span.price { color: var(--em-accent-dark); font-size: 22px; font-weight: 800; }
.woocommerce-message, .woocommerce-info { border-top-color: var(--em-accent-dark); }
.woocommerce-message::before, .woocommerce-info::before { color: var(--em-accent-dark); }

/* Single-product experience */
body.single-product .em-main { padding-block: 54px 100px; }
body.single-product .woocommerce-breadcrumb { margin-bottom: 24px; }
body.single-product div.product {
	align-items: start;
	display: grid;
	gap: clamp(34px, 5vw, 72px);
	grid-template-columns: minmax(0, 1.08fr) minmax(360px, .92fr);
}
body.single-product div.product::before,
body.single-product div.product::after { display: none; }
body.single-product div.product div.images,
body.single-product div.product div.summary {
	float: none;
	margin: 0;
	width: auto;
}
body.single-product div.product div.images {
	background: var(--em-mist);
	border: 1px solid var(--em-line);
	border-radius: 24px;
	overflow: hidden;
	padding: clamp(18px, 2.5vw, 34px);
}
body.single-product div.product div.images .woocommerce-product-gallery__wrapper {
	background: var(--em-white);
	border-radius: 18px;
	overflow: hidden;
}
body.single-product .woocommerce-product-gallery__image a {
	align-items: center;
	display: flex;
	justify-content: center;
}
body.single-product .woocommerce-product-gallery__image img {
	aspect-ratio: 1;
	background: var(--em-white);
	object-fit: contain;
	padding: clamp(10px, 1.4vw, 22px);
}
body.single-product div.product div.images .flex-control-thumbs {
	display: grid;
	gap: 10px;
	grid-template-columns: repeat(5, minmax(0, 1fr));
	margin-top: 14px;
}
body.single-product div.product div.images .flex-control-thumbs li {
	background: var(--em-white);
	border: 1px solid transparent;
	border-radius: 10px;
	float: none;
	overflow: hidden;
	width: auto;
}
body.single-product div.product div.images .flex-control-thumbs li:has(img.flex-active) { border-color: var(--em-accent-dark); }
body.single-product div.product div.images .flex-control-thumbs img {
	aspect-ratio: 1;
	object-fit: contain;
	padding: 5px;
}
body.single-product div.product div.summary {
	background: var(--em-white);
	border: 1px solid var(--em-line);
	border-radius: 24px;
	box-shadow: 0 18px 50px rgba(13,20,18,.065);
	padding: clamp(26px, 3.4vw, 46px);
	position: static;
}
.em-product-kicker {
	color: var(--em-accent-dark);
	font-size: 10px;
	font-weight: 800;
	letter-spacing: .14em;
	margin: 0 0 16px;
	text-transform: uppercase;
}
.em-product-kicker a:hover { color: var(--em-ink); }
body.single-product .woocommerce div.product .product_title,
body.single-product div.product .product_title {
	font-size: clamp(36px, 3.5vw, 52px);
	margin: 0 0 20px;
}
body.single-product div.product .woocommerce-product-rating { margin-bottom: 18px; }
body.single-product div.product p.price,
body.single-product div.product span.price { font-size: clamp(24px, 2.2vw, 31px); }
body.single-product .woocommerce-product-details__short-description {
	color: var(--em-muted);
	font-size: 15px;
	line-height: 1.72;
	margin-block: 22px 28px;
}
.em-size-guidance {
	align-items: flex-start;
	background: var(--em-paper);
	border: 1px solid var(--em-line);
	border-radius: 14px;
	display: flex;
	gap: 14px;
	margin: 26px 0 18px;
	padding: 16px;
}
.em-size-guidance__number {
	align-items: center;
	background: var(--em-ink);
	border-radius: 50%;
	color: var(--em-white);
	display: inline-flex;
	flex: 0 0 30px;
	font-size: 12px;
	font-weight: 800;
	height: 30px;
	justify-content: center;
}
.em-size-guidance strong {
	display: block;
	font-size: 12px;
	letter-spacing: .08em;
	text-transform: uppercase;
}
.em-size-guidance p { color: var(--em-muted); font-size: 12px; line-height: 1.55; margin: 5px 0 0; }
body.single-product div.product form.cart { margin-bottom: 0; }
body.single-product div.product form.cart .variations {
	background: var(--em-white);
	border-collapse: separate;
	border-spacing: 0 10px;
	margin-bottom: 18px;
	width: 100%;
}
body.single-product div.product form.cart .variations th,
body.single-product div.product form.cart .variations td {
	display: block;
	padding: 0;
	text-align: left;
	width: 100%;
}
body.single-product div.product form.cart .variations label {
	display: block;
	font-size: 11px;
	letter-spacing: .11em;
	margin-bottom: 8px;
	text-transform: uppercase;
}
body.single-product div.product form.cart .variations select {
	appearance: none;
	background-color: var(--em-paper);
	background-image: linear-gradient(45deg, transparent 50%, var(--em-ink) 50%), linear-gradient(135deg, var(--em-ink) 50%, transparent 50%);
	background-position: calc(100% - 20px) 25px, calc(100% - 15px) 25px;
	background-repeat: no-repeat;
	background-size: 5px 5px, 5px 5px;
	border: 1px solid rgba(17,21,20,.28);
	border-radius: 12px;
	font-size: 16px;
	font-weight: 700;
	margin: 0;
	min-height: 58px;
	padding: 0 46px 0 16px;
	width: 100%;
}
body.single-product div.product form.cart .variations select:focus {
	border-color: var(--em-accent-dark);
	box-shadow: 0 0 0 3px rgba(69,95,88,.13);
	outline: 0;
}
.em-variation-select--enhanced {
	clip: rect(1px, 1px, 1px, 1px);
	clip-path: inset(50%);
	height: 1px !important;
	overflow: hidden;
	position: absolute;
	width: 1px !important;
}
.em-size-choices {
	display: flex;
	flex-wrap: wrap;
	gap: 9px;
}
.em-size-choice {
	background: var(--em-white);
	border: 1px solid rgba(17,21,20,.28);
	border-radius: 10px;
	color: var(--em-ink);
	font-size: 13px;
	font-weight: 800;
	min-height: 46px;
	min-width: 64px;
	padding: 8px 15px;
	transition: background .18s ease, border-color .18s ease, color .18s ease, transform .18s ease;
}
.em-size-choice:hover:not(:disabled) {
	border-color: var(--em-accent-dark);
	transform: translateY(-1px);
}
.em-size-choice.is-selected {
	background: var(--em-ink);
	border-color: var(--em-ink);
	color: var(--em-white);
}
.em-size-choice:disabled { cursor: not-allowed; opacity: .35; text-decoration: line-through; }
.em-size-choice:focus-visible { box-shadow: 0 0 0 3px rgba(69,95,88,.2); outline: 0; }
body.single-product div.product form.cart .reset_variations {
	color: var(--em-accent-dark);
	display: inline-block;
	font-size: 11px;
	font-weight: 800;
	margin-top: 8px;
	text-transform: uppercase;
}
body.single-product div.product .single_variation_wrap { border-top: 1px solid var(--em-line); padding-top: 18px; }
body.single-product div.product form.cart .woocommerce-variation-add-to-cart,
body.single-product div.product form.cart:not(.variations_form) {
	align-items: stretch;
	display: flex;
	gap: 10px;
}
body.single-product div.product form.cart div.quantity { float: none; margin: 0; }
body.single-product div.product form.cart .qty {
	border: 1px solid rgba(17,21,20,.25);
	border-radius: 12px;
	height: 58px;
	width: 70px;
}
body.single-product div.product form.cart .single_add_to_cart_button {
	border-radius: 12px;
	flex: 1;
	font-size: 12px;
	min-height: 58px;
}
.em-product-assurance {
	border-top: 1px solid var(--em-line);
	display: grid;
	gap: 14px;
	list-style: none;
	margin: 28px 0 0;
	padding: 24px 0 0;
}
.em-product-assurance li { display: grid; gap: 3px; padding-left: 25px; position: relative; }
.em-product-assurance li::before {
	color: var(--em-accent-dark);
	content: "✓";
	font-size: 14px;
	font-weight: 900;
	left: 0;
	position: absolute;
	top: 1px;
}
.em-product-assurance strong { font-size: 12px; }
.em-product-assurance span { color: var(--em-muted); font-size: 11px; line-height: 1.45; }
body.single-product div.product .product_meta {
	border-top: 1px solid var(--em-line);
	color: var(--em-muted);
	font-size: 11px;
	line-height: 1.8;
	margin-top: 25px;
	padding-top: 20px;
}
body.single-product div.product .woocommerce-tabs,
body.single-product div.product .related,
body.single-product div.product .upsells {
	grid-column: 1 / -1;
	margin-top: 35px;
}
body.single-product div.product .woocommerce-tabs {
	background: var(--em-white);
	border: 1px solid var(--em-line);
	border-radius: 22px;
	padding: clamp(24px, 4vw, 46px);
}
body.single-product div.product .woocommerce-tabs ul.tabs {
	border-bottom: 1px solid var(--em-line);
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin: 0 0 30px;
	padding: 0 0 18px;
}
body.single-product div.product .woocommerce-tabs ul.tabs::before { display: none; }
body.single-product div.product .woocommerce-tabs ul.tabs li {
	background: var(--em-paper);
	border: 1px solid var(--em-line);
	border-radius: 999px;
	margin: 0;
	padding: 0 18px;
}
body.single-product div.product .woocommerce-tabs ul.tabs li::before,
body.single-product div.product .woocommerce-tabs ul.tabs li::after { display: none; }
body.single-product div.product .woocommerce-tabs ul.tabs li.active {
	background: var(--em-ink);
	border-color: var(--em-ink);
	color: var(--em-white);
}
body.single-product div.product .woocommerce-tabs ul.tabs li a {
	font-size: 10px;
	letter-spacing: .08em;
	padding: 11px 0;
	text-transform: uppercase;
}
body.single-product div.product .woocommerce-tabs .panel {
	color: var(--em-muted);
	line-height: 1.75;
	margin: 0;
	max-width: 880px;
}
body.single-product div.product .woocommerce-tabs .panel h2 {
	color: var(--em-ink);
	font-size: clamp(28px, 3vw, 42px);
	letter-spacing: -.03em;
	margin-top: 0;
}
body.single-product div.product .related > h2,
body.single-product div.product .upsells > h2 {
	font-family: Impact, "Arial Narrow", sans-serif;
	font-size: clamp(38px, 5vw, 64px);
	letter-spacing: -.03em;
	text-transform: uppercase;
}
body.single-product div.product .related ul.products,
body.single-product div.product .upsells ul.products {
	display: grid;
	gap: 20px;
	grid-template-columns: repeat(4, minmax(0, 1fr));
}
body.single-product div.product .related ul.products::before,
body.single-product div.product .related ul.products::after,
body.single-product div.product .upsells ul.products::before,
body.single-product div.product .upsells ul.products::after { display: none; }
body.single-product div.product .related ul.products li.product,
body.single-product div.product .upsells ul.products li.product {
	background: var(--em-white);
	border: 1px solid var(--em-line);
	border-radius: 18px;
	float: none;
	margin: 0;
	overflow: hidden;
	padding: 13px;
	width: auto;
}
body.single-product div.product .related ul.products li.product img,
body.single-product div.product .upsells ul.products li.product img {
	aspect-ratio: 1;
	background: var(--em-mist);
	border-radius: 12px;
	object-fit: contain;
	padding: 14px;
}

/* Shop and category archives */
body.woocommerce-shop .em-main,
body.tax-product_cat .em-main,
body.tax-product_tag .em-main,
body.single-product .em-main { background: var(--em-white); }
.em-shop-layout {
	align-items: start;
	display: grid;
	gap: clamp(30px, 4vw, 58px);
	grid-template-columns: 250px minmax(0, 1fr);
}
.em-shop-results { min-width: 0; }
.em-shop-results .woocommerce-products-header__title { margin-top: 0; }
.em-shop-results ul.products {
	align-items: stretch;
	display: grid;
	gap: 22px;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	margin: 0;
}
.em-shop-results ul.products::before,
.em-shop-results ul.products::after { display: none; }
.em-shop-results ul.products li.product {
	background: var(--em-white);
	border: 1px solid var(--em-line);
	border-radius: 20px;
	box-shadow: 0 12px 34px rgba(13,20,18,.055);
	column-gap: 8px;
	display: grid !important;
	float: none !important;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	margin: 0 !important;
	overflow: hidden;
	padding: 14px;
	text-align: center;
	transition: box-shadow .22s ease, transform .22s ease;
	width: auto !important;
}
.em-shop-results ul.products li.product:hover {
	box-shadow: 0 18px 44px rgba(13,20,18,.1);
	transform: translateY(-3px);
}
.em-shop-results li.product > a.woocommerce-LoopProduct-link {
	align-items: stretch;
	display: flex;
	flex-direction: column;
	grid-column: 1 / -1;
	width: 100%;
}
.em-shop-results ul.products li.product a img {
	aspect-ratio: 1;
	background: var(--em-mist);
	border-radius: 14px;
	height: auto !important;
	margin: 0 0 20px !important;
	object-fit: contain;
	padding: clamp(12px, 1.2vw, 20px);
	width: 100% !important;
}
.em-shop-results ul.products li.product .woocommerce-loop-product__title {
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 3;
	color: var(--em-ink);
	display: -webkit-box;
	font-size: clamp(14px, 1vw, 17px);
	font-weight: 800;
	line-height: 1.25;
	margin: 0;
	min-height: 64px;
	overflow: hidden;
	padding: 0 8px !important;
	text-align: left;
}
.em-shop-results ul.products li.product .price {
	color: var(--em-accent-dark);
	font-size: 16px;
	font-weight: 800;
	margin: 10px 0 2px;
	padding-inline: 8px;
	text-align: left;
}
body.woocommerce-page .em-shop-results ul.products li.product > a.button,
body.woocommerce-page .em-shop-results ul.products li.product > .yith-wcqv-button,
body.woocommerce .em-shop-results ul.products li.product > a.button,
body.woocommerce .em-shop-results ul.products li.product > .yith-wcqv-button {
	box-sizing: border-box !important;
	font-size: 12px !important;
	height: 56px !important;
	line-height: 1.15 !important;
	margin: 14px 0 0 !important;
	max-width: none !important;
	min-height: 56px !important;
	min-width: 0 !important;
	overflow: visible !important;
	padding: 0 16px !important;
	white-space: normal !important;
	width: 100% !important;
}
body.woocommerce-page .em-shop-results ul.products li.product > .yith-wcqv-button,
body.woocommerce .em-shop-results ul.products li.product > .yith-wcqv-button {
	background: transparent !important;
	border-color: var(--em-ink) !important;
	color: var(--em-ink) !important;
}
body.woocommerce-page .em-shop-results ul.products li.product > .yith-wcqv-button:hover,
body.woocommerce .em-shop-results ul.products li.product > .yith-wcqv-button:hover {
	background: var(--em-accent-dark) !important;
	border-color: var(--em-accent-dark) !important;
	color: var(--em-white) !important;
}
.em-shop-filters {
	background: var(--em-paper);
	border: 1px solid var(--em-line);
	border-radius: 18px;
	padding: 25px 22px;
	position: sticky;
	top: 130px;
}
.em-shop-filters__heading {
	border-bottom: 1px solid var(--em-line);
	margin-bottom: 24px;
	padding-bottom: 20px;
}
.em-shop-filters__heading .em-eyebrow { margin-bottom: 8px; }
.em-shop-filters__heading h2 {
	font-size: 28px;
	letter-spacing: -.025em;
	margin: 0;
}
.em-filter-widget {
	border-bottom: 1px solid var(--em-line);
	margin-bottom: 22px;
	padding-bottom: 22px;
}
.em-filter-widget:last-child { border-bottom: 0; margin-bottom: 0; padding-bottom: 0; }
.em-filter-widget__title {
	font-size: 11px;
	font-weight: 800;
	letter-spacing: .12em;
	margin: 0 0 14px;
	text-transform: uppercase;
}
.em-filter-widget ul {
	list-style: none;
	margin: 0;
	padding: 0;
}
.em-filter-widget li {
	color: var(--em-muted);
	font-size: 13px;
	line-height: 1.45;
	margin: 9px 0;
}
.em-filter-widget li a { color: var(--em-ink); }
.em-filter-widget li a:hover,
.em-filter-widget li.chosen a { color: var(--em-accent-dark); }
.em-filter-widget .count { color: var(--em-muted); float: right; }
.em-filter-widget .woocommerce-widget-layered-nav-list__item--chosen a::before {
	color: var(--em-accent-dark);
	content: "×";
	font-weight: 800;
	margin-right: 7px;
}
.em-filter-widget .price_slider_wrapper .ui-widget-content { background: var(--em-mist); }
.em-filter-widget .price_slider_wrapper .ui-slider-range,
.em-filter-widget .price_slider_wrapper .ui-slider-handle { background: var(--em-accent-dark); }
.em-filter-widget .price_slider_amount {
	align-items: center;
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	justify-content: space-between;
}
.em-filter-widget .price_slider_amount .button {
	border-radius: 999px;
	min-height: 38px;
	padding-inline: 16px;
}
.em-filter-widget .price_label { color: var(--em-muted); font-size: 12px; }
.em-filter-toggle {
	align-items: center;
	background: var(--em-ink);
	border: 1px solid var(--em-ink);
	border-radius: 999px;
	color: var(--em-white);
	display: none;
	font-size: 11px;
	font-weight: 800;
	justify-content: space-between;
	letter-spacing: .1em;
	margin-bottom: 22px;
	min-height: 48px;
	padding: 0 20px;
	text-transform: uppercase;
	width: 100%;
}
.em-filter-toggle span { font-size: 20px; font-weight: 400; }

/* Watch page */
.em-watch { background: var(--em-white); }
.em-watch__header { margin-bottom: 55px; max-width: 790px; padding-top: 18px; }
.em-watch__intro { color: var(--em-muted); font-size: 17px; line-height: 1.7; margin-top: 24px; max-width: 680px; }
.em-watch__grid {
	display: grid;
	gap: 24px;
	grid-template-columns: repeat(2, minmax(0, 1fr));
}
.em-watch-card {
	background: var(--em-paper);
	border: 1px solid var(--em-line);
	border-radius: 20px;
	overflow: hidden;
}
.em-watch-card:first-child { grid-column: 1 / -1; }
.em-watch-card__media {
	aspect-ratio: 16 / 9;
	background: var(--em-ink);
	overflow: hidden;
}
.em-watch-card__media iframe,
.em-watch-card__media img {
	border: 0;
	height: 100%;
	object-fit: cover;
	width: 100%;
}
.em-watch-card__content { padding: 26px; }
.em-watch-card__content .em-eyebrow { margin-bottom: 9px; }
.em-watch-card__content h2 { font-size: clamp(22px, 2.2vw, 34px); letter-spacing: -.025em; margin: 0; }
.em-watch-card__content > p:not(.em-eyebrow) { color: var(--em-muted); line-height: 1.65; margin-bottom: 0; }
.em-watch__legacy { max-width: 100%; }
.em-watch__legacy iframe { aspect-ratio: 16 / 9; border: 0; height: auto; width: 100%; }
.em-watch__legacy .elementor-container,
.em-watch__legacy .elementor-row { max-width: 100%; }

/* Rider and event details */
.em-profile { background: var(--em-ink); color: var(--em-white); }
.em-profile__grid {
	align-items: start;
	display: grid;
	gap: clamp(40px, 7vw, 100px);
	grid-template-columns: minmax(320px, .85fr) minmax(0, 1.15fr);
}
.em-profile__image {
	background: var(--em-charcoal);
	border-radius: 20px;
	min-height: 520px;
	overflow: hidden;
}
.em-profile__image img { height: 100%; min-height: 520px; object-fit: cover; width: 100%; }
.em-profile__content { padding-block: 35px; }
.em-profile__content .em-eyebrow { color: var(--em-accent); }
.em-profile__location { color: rgba(255,255,255,.56); font-size: 13px; letter-spacing: .08em; margin: 22px 0; text-transform: uppercase; }
.em-entry-content { line-height: 1.8; margin: 30px 0; }
.em-profile .em-entry-content { color: rgba(255,255,255,.74); }
.em-event-single { background: var(--em-paper); }
.em-event-single__card {
	background: var(--em-white);
	border: 1px solid var(--em-line);
	border-radius: 22px;
	display: grid;
	grid-template-columns: 1fr 1fr;
	overflow: hidden;
}
.em-event-single__image img { height: 100%; min-height: 620px; object-fit: cover; width: 100%; }
.em-event-single__content { padding: clamp(38px, 6vw, 80px); }
.em-event-single__meta { display: flex; flex-wrap: wrap; gap: 10px 24px; margin: 25px 0; }
.em-event-single__meta span { color: var(--em-accent-dark); font-size: 12px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }

/* Product loop actions: override legacy WooCommerce and YITH button sizing */
.woocommerce ul.products li.product a.button,
.woocommerce ul.products li.product .yith-wcqv-button,
.woocommerce-page ul.products li.product a.button,
.woocommerce-page ul.products li.product .yith-wcqv-button {
	align-items: center !important;
	border-radius: 999px !important;
	box-sizing: border-box;
	display: inline-flex !important;
	font-size: 11px !important;
	height: 48px !important;
	justify-content: center !important;
	line-height: 1.15 !important;
	min-height: 48px !important;
	padding: 0 18px !important;
	text-align: center !important;
	white-space: normal;
}
body.woocommerce-shop ul.products li.product a.button,
body.woocommerce-shop ul.products li.product .yith-wcqv-button,
body.tax-product_cat ul.products li.product a.button,
body.tax-product_cat ul.products li.product .yith-wcqv-button,
body.tax-product_tag ul.products li.product a.button,
body.tax-product_tag ul.products li.product .yith-wcqv-button {
	margin: 14px 4px 0 !important;
	width: calc(50% - 10px) !important;
}
.em-products ul.products li.product a.button,
.em-products ul.products li.product .yith-wcqv-button {
	margin: 14px 0 0 !important;
	max-width: none;
	width: 100% !important;
}

/* Cart and Checkout blocks */
body.woocommerce-cart .em-main,
body.woocommerce-checkout .em-main {
	background: linear-gradient(180deg, var(--em-paper), #eeeee9);
	padding-block: 72px 110px;
}
body.woocommerce-cart .em-content,
body.woocommerce-checkout .em-content { max-width: 1280px; }
body.woocommerce-cart .em-page-title,
body.woocommerce-checkout .em-page-title {
	font-size: clamp(48px, 7vw, 78px);
	margin-bottom: 24px;
}
.em-commerce-heading { margin-bottom: 46px; }
.em-commerce-heading .em-eyebrow { margin-bottom: 12px; }
.em-checkout-progress {
	display: grid;
	gap: 0;
	grid-template-columns: repeat(3, 1fr);
	list-style: none;
	margin: 32px 0 0;
	max-width: 680px;
	padding: 0;
}
.em-checkout-progress li {
	align-items: center;
	border-top: 2px solid var(--em-line);
	color: var(--em-muted);
	display: flex;
	font-size: 10px;
	font-weight: 800;
	gap: 9px;
	letter-spacing: .08em;
	padding-top: 12px;
	text-transform: uppercase;
}
.em-checkout-progress li span {
	align-items: center;
	background: var(--em-mist);
	border-radius: 50%;
	display: inline-flex;
	height: 26px;
	justify-content: center;
	width: 26px;
}
.em-checkout-progress li.is-complete,
.em-checkout-progress li.is-current {
	border-color: var(--em-accent-dark);
	color: var(--em-ink);
}
.em-checkout-progress li.is-complete span,
.em-checkout-progress li.is-current span {
	background: var(--em-accent-dark);
	color: var(--em-white);
}
.wp-block-woocommerce-cart,
.wp-block-woocommerce-checkout {
	color: var(--em-ink);
	font-size: 15px;
	line-height: 1.55;
}
body.woocommerce-checkout .wp-block-woocommerce-checkout,
body.woocommerce-cart .wp-block-woocommerce-cart { gap: clamp(28px, 4vw, 52px); }
.wp-block-woocommerce-checkout .wc-block-checkout__main,
.wp-block-woocommerce-cart .wc-block-cart__main {
	background: var(--em-white);
	border: 1px solid var(--em-line);
	border-radius: 24px;
	box-shadow: 0 16px 45px rgba(13,20,18,.05);
	padding: clamp(24px, 3.5vw, 42px);
}
.wp-block-woocommerce-checkout .wc-block-checkout__sidebar,
.wp-block-woocommerce-cart .wc-block-cart__sidebar {
	align-self: start;
	position: sticky;
	top: 125px;
}
.wp-block-woocommerce-cart h2,
.wp-block-woocommerce-cart h3,
.wp-block-woocommerce-checkout h2,
.wp-block-woocommerce-checkout h3 {
	color: var(--em-ink);
	font-size: 21px;
	font-weight: 800;
	letter-spacing: -.01em;
}
.wp-block-woocommerce-checkout .wc-block-components-checkout-step {
	border-bottom: 1px solid var(--em-line);
	margin-bottom: 28px;
	padding-bottom: 28px;
}
.wp-block-woocommerce-checkout .wc-block-components-checkout-step:last-of-type {
	border-bottom: 0;
	margin-bottom: 0;
}
.wp-block-woocommerce-checkout .wc-block-components-checkout-step__heading {
	margin-bottom: 18px;
}
.wp-block-woocommerce-checkout .wc-block-components-checkout-step__description,
.wp-block-woocommerce-checkout .wc-block-components-checkbox__label {
	color: var(--em-muted);
}
.wp-block-woocommerce-cart input:not([type="checkbox"]):not([type="radio"]),
.wp-block-woocommerce-cart select,
.wp-block-woocommerce-cart textarea,
.wp-block-woocommerce-checkout input:not([type="checkbox"]):not([type="radio"]),
.wp-block-woocommerce-checkout select,
.wp-block-woocommerce-checkout textarea {
	background: var(--em-white);
	border: 1px solid rgba(17,21,20,.24);
	border-radius: 12px;
	box-shadow: none;
	color: var(--em-ink);
	min-height: 52px;
}
.wp-block-woocommerce-cart input:focus,
.wp-block-woocommerce-cart select:focus,
.wp-block-woocommerce-cart textarea:focus,
.wp-block-woocommerce-checkout input:focus,
.wp-block-woocommerce-checkout select:focus,
.wp-block-woocommerce-checkout textarea:focus {
	border-color: var(--em-accent-dark);
	box-shadow: 0 0 0 2px rgba(69,95,88,.14);
	outline: 0;
}
.wp-block-woocommerce-checkout .wp-block-woocommerce-checkout-order-summary-block,
.wp-block-woocommerce-cart .wp-block-woocommerce-cart-order-summary-block {
	background: var(--em-white);
	border: 1px solid var(--em-line);
	border-radius: 24px;
	box-shadow: 0 14px 38px rgba(13,20,18,.06);
	overflow: hidden;
	padding: 28px;
}
.wp-block-woocommerce-checkout .wc-block-components-express-payment,
.wp-block-woocommerce-checkout .wc-block-components-express-payment-continue-rule {
	border-color: var(--em-line);
	border-radius: 16px;
}
.wp-block-woocommerce-checkout .wc-block-components-address-card,
.wp-block-woocommerce-checkout .wc-block-components-checkout-step__container {
	border-radius: 14px;
}
.wp-block-woocommerce-cart .wc-block-components-button:not(.is-link),
.wp-block-woocommerce-checkout .wc-block-components-button:not(.is-link) {
	background: var(--em-ink);
	border: 1px solid var(--em-ink);
	border-radius: 12px;
	color: var(--em-white);
	font-size: 11px;
	font-weight: 800;
	letter-spacing: .08em;
	min-height: 54px;
	text-transform: uppercase;
	transition: background .18s ease, transform .18s ease;
}
.wp-block-woocommerce-cart .wc-block-components-button:not(.is-link):hover,
.wp-block-woocommerce-checkout .wc-block-components-button:not(.is-link):hover {
	background: var(--em-accent-dark);
	border-color: var(--em-accent-dark);
	color: var(--em-white);
	transform: translateY(-1px);
}
.wp-block-woocommerce-cart .wc-block-components-totals-wrapper,
.wp-block-woocommerce-checkout .wc-block-components-totals-wrapper {
	border-color: var(--em-line);
}
.wp-block-woocommerce-checkout .wc-block-components-order-summary-item__image img,
.wp-block-woocommerce-cart .wc-block-cart-item__image img {
	background: var(--em-mist);
	border-radius: 10px;
	object-fit: contain;
	padding: 5px;
}
.wp-block-woocommerce-checkout .wc-block-components-totals-footer-item {
	font-size: 18px;
}
.wp-block-woocommerce-checkout .wc-block-components-totals-footer-item .wc-block-components-totals-item__value {
	font-size: 24px;
	font-weight: 900;
}
.wp-block-woocommerce-cart a,
.wp-block-woocommerce-checkout a { text-decoration-color: var(--em-accent); text-underline-offset: 3px; }

/* Footer */
.em-footer { background: var(--em-ink); color: var(--em-white); padding: 70px 0 28px; }
.em-footer__grid { display: grid; gap: 50px; grid-template-columns: 1.4fr repeat(3, 1fr); }
.em-footer__brand img { max-width: 180px; }
.em-footer h2 { font-size: 11px; letter-spacing: .12em; margin: 0 0 20px; text-transform: uppercase; }
.em-footer ul { list-style: none; margin: 0; padding: 0; }
.em-footer li { margin: 0 0 11px; }
.em-footer a, .em-footer p { color: rgba(255,255,255,.68); font-size: 13px; line-height: 1.6; }
.em-footer a:hover { color: var(--em-white); }
.em-footer__bottom { border-top: 1px solid rgba(255,255,255,.13); color: rgba(255,255,255,.5); font-size: 11px; margin-top: 55px; padding-top: 24px; }

@media (max-width: 960px) {
	body.admin-bar .em-header { top: 46px; }
	.em-header__inner { grid-template-columns: 1fr auto; min-height: 76px; }
	.em-nav { background: var(--em-charcoal); display: none; grid-column: 1/-1; left: 0; padding: 18px 24px; position: absolute; right: 0; top: 76px; }
	.em-nav.is-open { display: block; }
	.em-nav ul { align-items: stretch; flex-direction: column; gap: 0; }
	.em-nav a { padding: 14px 0; }
	.em-nav .sub-menu {
		background: transparent;
		box-shadow: none;
		display: flex;
		min-width: 0;
		padding: 0 0 6px 18px;
		position: static;
	}
	.em-nav .sub-menu a { color: rgba(255,255,255,.72); padding: 10px 0; white-space: normal; }
	.em-nav .sub-menu a:hover, .em-nav .sub-menu a:focus { background: transparent; color: var(--em-white); }
	.em-actions { grid-column: 2; grid-row: 1; }
	.em-menu-toggle { display: inline-flex; }
	.em-brand { grid-column: 1; grid-row: 1; }
	.em-category-grid, .em-products ul.products { grid-template-columns: repeat(2, 1fr); }
	.em-news-slide__content { max-width: 570px; }
	.em-finder__grid, .em-story { grid-template-columns: 1fr; }
	.em-story__image { min-height: 420px; }
	.em-shop-layout { grid-template-columns: 210px minmax(0, 1fr); }
	.em-shop-results ul.products { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.em-team__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.em-profile__grid, .em-event-single__card { grid-template-columns: 1fr; }
	body.single-product div.product { grid-template-columns: 1fr; }
	body.single-product div.product div.summary { position: static; }
	body.single-product div.product .related ul.products,
	body.single-product div.product .upsells ul.products { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.wp-block-woocommerce-checkout .wc-block-checkout__sidebar,
	.wp-block-woocommerce-cart .wc-block-cart__sidebar { position: static; }
	.em-footer__grid { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 600px) {
	.em-shell { padding-inline: 18px; }
	.em-announcement { font-size: 9px; }
	.em-header__inner { min-height: 68px; }
	.em-nav { top: 68px; }
	.em-brand img, .em-brand .custom-logo { max-height: 46px; max-width: 145px; }
	.em-icon-button { min-width: 38px; }
	.em-hero { height: 720px; min-height: 0; }
	.em-slide__content { left: 18px; right: 18px; top: 55%; }
	.em-slide h1, .em-slide h2 { font-size: clamp(54px, 18vw, 82px); }
	.em-section { padding-block: 70px; }
	.em-section-heading { align-items: flex-start; flex-direction: column; }
	.em-category-grid, .em-products ul.products { grid-template-columns: 1fr; }
	.em-news { height: 660px; }
	.em-news-slide__shade { background: linear-gradient(0deg, rgba(10,15,14,.9), rgba(10,15,14,.26)); }
	.em-news-slide__content { bottom: 108px; left: 18px; right: 18px; top: auto; transform: none; }
	.em-news-slide .em-heading { font-size: clamp(46px, 14vw, 70px); }
	.em-news-slide__content > p:not(.em-eyebrow) { margin-block: 20px 24px; }
	.em-news-controls { bottom: 28px; }
	.em-gallery__controls { align-self: flex-end; }
	.em-gallery-card { flex-basis: min(82vw, 340px); }
	.em-category { min-height: 360px; }
	.em-finder__grid { gap: 36px; }
	.em-finder__form { padding: 24px; }
	.em-story__image { min-height: 330px; }
	.em-story__copy { padding: 55px 24px; }
	.em-team__grid, .em-events__grid, .em-watch__grid { grid-template-columns: 1fr; }
	.em-watch-card:first-child { grid-column: auto; }
	.wp-block-woocommerce-checkout .wc-block-checkout__main,
	.wp-block-woocommerce-cart .wc-block-cart__main {
		border-radius: 14px;
		padding: 18px;
	}
	body.single-product .em-main { padding-block: 34px 70px; }
	body.single-product div.product { gap: 25px; }
	body.single-product div.product div.images,
	body.single-product div.product div.summary,
	body.single-product div.product .woocommerce-tabs { border-radius: 16px; }
	body.single-product div.product div.summary { padding: 24px 20px; }
	body.single-product div.product form.cart .woocommerce-variation-add-to-cart,
	body.single-product div.product form.cart:not(.variations_form) { flex-wrap: wrap; }
	body.single-product div.product form.cart .single_add_to_cart_button { flex-basis: calc(100% - 80px); }
	body.single-product div.product .woocommerce-tabs ul.tabs { align-items: flex-start; flex-direction: column; }
	body.single-product div.product .related ul.products,
	body.single-product div.product .upsells ul.products { grid-template-columns: 1fr; }
	.em-checkout-progress li { align-items: flex-start; flex-direction: column; padding-right: 8px; }
	.em-filter-toggle { display: flex; }
	.em-shop-layout { display: block; }
	.em-shop-results ul.products { grid-template-columns: 1fr; }
	.em-shop-filters {
		display: none;
		margin-bottom: 28px;
		position: static;
	}
	.em-shop-filters.is-open { display: block; }
	.em-footer__grid { grid-template-columns: 1fr; }
}

@media (prefers-reduced-motion: reduce) {
	html { scroll-behavior: auto; }
	*, *::before, *::after { scroll-behavior: auto !important; transition-duration: .01ms !important; }
	.em-partners__track { animation: none; width: 100%; }
	.em-partners__group:first-child { flex-wrap: wrap; justify-content: center; padding: 0 18px; width: 100%; }
	.em-partners__group[aria-hidden="true"] { display: none; }
}
