/**
 * Shop and Category Pages
 */
.shop {
	position: relative;
	z-index: 2;
	padding-bottom: 104px;
}

.results-bar {
	display: flex;
	align-items: center;
	gap: 16px;
	margin-top: -40px;
	margin-bottom: 36px;
	padding: 18px 22px;
	border-radius: 18px;
	background: #fff;
	box-shadow: 0 0 0 1px rgba(10, 22, 51, .06), 0 24px 50px -30px rgba(10, 22, 51, .4);
}

.results-bar__icon {
	display: flex;
	align-items: center;
	justify-content: center;
	flex: none;
	width: 44px;
	height: 44px;
	border-radius: 12px;
	background: var(--ground);
	color: var(--muted);
}

.results-bar__icon.is-fit {
	background: var(--fit-soft);
	color: var(--fit);
}

.results-bar__text {
	flex: 1;
	min-width: 0;
	display: flex;
	flex-direction: column;
	gap: 2px;
}

.results-bar__text strong {
	font-size: 18px;
	line-height: 1.25;
}

.results-bar .woocommerce-result-count {
	margin: 0;
	color: var(--muted);
	font-size: 14px;
}

.results-bar .woocommerce-ordering {
	flex: none;
	margin: 0;
}

.woocommerce-ordering select,
.woocommerce form .form-row select,
.woocommerce-page select {
	height: 44px;
	padding: 0 36px 0 12px;
	border: 1px solid var(--line-2);
	border-radius: 10px;
	background: #fff var(--select-arrow) no-repeat right 12px center;
	color: var(--ink);
	font: 700 14px/1 var(--font);
	-webkit-appearance: none;
	appearance: none;
	cursor: pointer;
}

.shop__layout {
	display: grid;
	grid-template-columns: 272px minmax(0, 1fr);
	gap: 28px;
	align-items: start;
}

.shop__side {
	display: flex;
	flex-direction: column;
	gap: 18px;
}

.shop__side .side-card {
	padding: 20px;
}

.shop__side .side-card--navy {
	flex: none;
}

.shop__side .side-card--navy .side-card__title {
	font-size: 20px;
}

.shop__side .side-card--navy p {
	margin: 0 0 4px;
}

.cat-list {
	margin: 0;
	padding: 0;
	list-style: none;
}

.cat-list a {
	display: flex;
	justify-content: space-between;
	align-items: center;
	padding: 10px 0;
	border-top: 1px solid var(--line);
	color: var(--ink);
	font-size: 15px;
	text-decoration: none;
}

.cat-list a svg {
	color: var(--muted);
}

.cat-list a:hover,
.cat-list a[aria-current] {
	color: var(--blue-ink);
}

.cat-list a[aria-current] {
	font-weight: 700;
}

.shop__main {
	min-width: 0;
}

.shop__main .woocommerce-notices-wrapper:empty {
	display: none;
}

/* Product grid and cards */
ul.products {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 18px;
	margin: 0 0 32px !important;
	padding: 0;
	list-style: none;
}

ul.products::before,
ul.products::after {
	display: none !important;
}

ul.products li.card {
	float: none !important;
	width: auto !important;
	margin: 0 !important;
	display: flex;
	flex-direction: column;
	gap: 10px;
	padding: 12px 12px 14px;
	border: 1px solid var(--line);
	border-radius: 16px;
	background: #fff;
	transition: box-shadow .2s ease, border-color .2s ease;
}

ul.products li.card:hover {
	border-color: var(--line-2);
	box-shadow: 0 24px 40px -30px rgba(10, 22, 51, .45);
}

.card__image {
	position: relative;
	display: block;
}

.card__image img {
	display: block;
	width: 100%;
	aspect-ratio: 1;
	object-fit: cover;
	border-radius: 10px;
}

.card__sale {
	position: absolute;
	top: 8px;
	left: 8px;
	padding: 3px 9px;
	border-radius: 999px;
	background: var(--cta);
	color: var(--navy);
	font-size: 12px;
	font-weight: 800;
}

.card__cat {
	color: var(--muted);
	font-size: 12px;
	font-weight: 700;
}

.card__title {
	margin: 0;
	min-height: 40px;
	font-size: 15px;
	font-weight: 700;
	font-stretch: 100%;
	letter-spacing: 0;
	line-height: 1.3;
}

.card__title a {
	color: var(--ink);
	text-decoration: none;
}

.card__title a:hover {
	color: var(--blue-ink);
}

.card__price {
	font-size: 17px;
	font-weight: 800;
}

.card .wpce-fits-badge {
	align-self: flex-start;
	margin: -2px 0 0;
}

.card__price del,
.product-top__price del {
	color: var(--muted);
	font-weight: 500;
	font-size: .85em;
}

.card__price ins,
.product-top__price ins {
	text-decoration: none;
}

.card__action {
	margin-top: auto;
	display: flex;
	flex-direction: column;
	gap: 6px;
}

/* Add to cart in cards: centred label in every browser */
.card__action .button,
.card__action a.button,
.card__action .added_to_cart {
	display: flex !important;
	align-items: center;
	justify-content: center;
	width: 100%;
	min-height: 44px;
	height: auto;
	margin: 0 !important;
	padding: 10px 12px !important;
	border: 1.5px solid var(--navy) !important;
	border-radius: 10px !important;
	background: #fff !important;
	color: var(--navy) !important;
	font: 700 14px/1.2 var(--font) !important;
	text-align: center;
	text-decoration: none;
	white-space: normal;
	box-shadow: none !important;
}

.card__action .button:hover {
	background: var(--navy) !important;
	color: #fff !important;
}

.card__action .button.loading {
	opacity: .6;
}

.card__action .button.added {
	border-color: var(--fit) !important;
	color: var(--fit-ink) !important;
}

.card__action .added_to_cart {
	min-height: 0;
	padding: 4px !important;
	border: 0 !important;
	color: var(--blue-ink) !important;
	font-size: 13px !important;
}

/* Banner inside the grid */
.grid-banner {
	position: relative;
	overflow: hidden;
	grid-column: 1 / -1;
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
	gap: 28px;
	align-items: center;
	padding: 36px 40px;
	border-radius: 20px;
	background: var(--cta);
	color: var(--navy);
}

.grid-banner__lines {
	position: absolute;
	inset: 0;
	background-image: linear-gradient(rgba(10, 22, 51, .06) 1px, transparent 1px), linear-gradient(90deg, rgba(10, 22, 51, .06) 1px, transparent 1px);
	background-size: 40px 40px;
}

.grid-banner > div {
	position: relative;
}

.grid-banner__text {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 12px;
}

.grid-banner__title {
	font-size: clamp(24px, 2.4vw, 32px);
	font-weight: 800;
	font-stretch: 115%;
	letter-spacing: -.025em;
	line-height: 1.05;
}

.grid-banner p {
	margin: 0;
	font-weight: 600;
}

.grid-banner__shot {
	align-self: stretch;
	min-height: 190px;
}

.grid-banner__shot img {
	position: absolute;
	right: -60px;
	top: 0;
	width: 120%;
	max-width: none;
	border-radius: 12px;
	box-shadow: 0 24px 50px -20px rgba(10, 22, 51, .5);
	transform: rotate(-3deg);
}

/* Pagination */
.woocommerce-pagination ul {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 8px;
	margin: 0;
	padding: 0;
	list-style: none;
	border: 0 !important;
}

.woocommerce-pagination ul li {
	border: 0 !important;
}

.woocommerce-pagination .page-numbers {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 46px;
	height: 46px;
	padding: 0 12px;
	border: 1px solid var(--line);
	border-radius: 12px;
	background: #fff;
	color: var(--ink);
	font-weight: 700;
	text-decoration: none;
}

.woocommerce-pagination .page-numbers.current {
	border-color: var(--navy);
	background: var(--navy);
	color: #fff;
}

.woocommerce-pagination .page-numbers.prev svg {
	transform: rotate(180deg);
}

.no-fit,
.woocommerce-info.woocommerce-no-products-found {
	padding: 28px;
	border-radius: 18px;
	background: var(--ground);
}

/**
 * Single Product
 */
.crumb-bar {
	padding-top: var(--header-h);
	background: var(--navy);
}

.crumb-bar .wrap {
	padding-top: 14px;
	padding-bottom: 14px;
	border-top: 1px solid rgba(255, 255, 255, .08);
}

.crumb-bar .crumbs,
.crumb-bar .crumbs a {
	color: var(--on-navy-2);
}

.crumb-bar .crumbs a:hover {
	color: #fff;
}

.crumb-bar .crumbs > *:last-child {
	color: #fff;
}

.product-top {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
	gap: 56px;
	padding-top: 48px;
	padding-bottom: 80px;
	align-items: start;
}

.product-top__media {
	display: flex;
	flex-direction: column;
	gap: 20px;
	min-width: 0;
}

.product-top__image {
	display: flex;
	align-items: center;
	justify-content: center;
	aspect-ratio: 1;
	overflow: hidden;
	border: 1px solid var(--line);
	border-radius: 24px;
	background: radial-gradient(70% 70% at 50% 45%, #fff, #eef2f8);
}

.product-top__image img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.product-note {
	align-items: center;
	padding: 24px 26px;
	border-radius: 20px;
}

.product-note .promo__title {
	font-size: 17px;
}

.product-top__summary {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 18px;
	min-width: 0;
}

.product-top__title {
	font-size: clamp(34px, 3.6vw, 50px);
}

.product-top__price {
	margin: 0;
	font-size: 30px;
	font-weight: 800;
}

.product-top__excerpt p {
	margin: 0;
	color: var(--body);
}

/* Add to cart form with the WPCE fit checker */
.product-top__summary form.cart {
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
	width: 100%;
	margin: 0;
}

.product-top__summary form.cart .wpce-product-validator {
	flex: 1 1 100%;
	margin: 0 0 4px;
	overflow: hidden;
	border: 1px solid var(--line);
	border-radius: 18px;
	background: #fff;
	box-shadow: 0 20px 40px -26px rgba(10, 22, 51, .35);
}

:where(body:not(.wpce-modern)) .product-top__summary .wpce-product-validator .wpce-filter-widget-inner {
	padding: 20px;
	container-type: normal;
}

:where(body:not(.wpce-modern)) .product-top__summary .wpce-product-validator .wpce-filter-widget-inner {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 12px;
}

:where(body:not(.wpce-modern)) .product-top__summary .wpce-product-validator .wpce-filter-widget-inner > h2,
:where(body:not(.wpce-modern)) .product-top__summary .wpce-product-validator .wpce-message {
	grid-column: 1 / -1;
}

:where(body:not(.wpce-modern)) .product-top__summary .wpce-product-validator h2 {
	margin: 0 0 2px;
	font-size: 17px;
	font-weight: 800;
	font-stretch: 100%;
	letter-spacing: 0;
}

:where(body:not(.wpce-modern)) .product-top__summary .wpce-product-validator .wpce-field-buttons {
	display: none;
}

:where(body:not(.wpce-modern)) .product-top__summary .wpce-product-validator .wpce-message {
	width: auto !important;
	display: flex;
	align-items: center;
	gap: 12px;
	margin: 8px -20px -20px;
	padding: 14px 20px;
	border: 0;
	border-top: 1px solid transparent;
	border-radius: 0;
	font-size: 15px;
	font-weight: 700;
}

:where(body:not(.wpce-modern)) .product-top__summary .wpce-product-validator .wpce-message::before {
	content: '';
	flex: none;
	width: 22px;
	height: 22px;
	border-radius: 50%;
	background: var(--fit) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M7 12.5l3.2 3.2L17 9' fill='none' stroke='%23fff' stroke-width='2.4' stroke-linecap='round'/%3E%3C/svg%3E") no-repeat center / 22px;
}

:where(body:not(.wpce-modern)) .product-top__summary .wpce-product-validator .wpce-message.wpce-success {
	background: var(--fit-soft);
	border-top-color: #bfe8cd;
	color: var(--fit-ink);
}

:where(body:not(.wpce-modern)) .product-top__summary .wpce-product-validator .wpce-message.wpce-error {
	background: var(--nofit-soft);
	border-top-color: #f5c2c2;
	color: var(--nofit-ink);
}

:where(body:not(.wpce-modern)) .product-top__summary .wpce-product-validator .wpce-message.wpce-error::before {
	background: var(--nofit) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M8 8l8 8M16 8l-8 8' fill='none' stroke='%23fff' stroke-width='2.4' stroke-linecap='round'/%3E%3C/svg%3E") no-repeat center / 22px;
}

.product-top__summary form.cart .quantity {
	display: flex;
	align-items: center;
	height: 56px;
	border: 1px solid var(--line-2);
	border-radius: 12px;
	background: #fff;
}

.quantity input.qty {
	width: 44px;
	height: 100%;
	padding: 0;
	border: 0;
	background: none;
	color: var(--ink);
	font: 700 17px var(--font);
	text-align: center;
	-moz-appearance: textfield;
}

.quantity input.qty::-webkit-outer-spin-button,
.quantity input.qty::-webkit-inner-spin-button {
	margin: 0;
	-webkit-appearance: none;
}

.qty-btn {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 44px;
	height: 100%;
	border: 0;
	background: none;
	color: var(--ink);
	cursor: pointer;
}

.qty-btn:hover {
	color: var(--blue-ink);
}

.product-top__summary form.cart .single_add_to_cart_button {
	flex: 1;
	min-height: 56px;
	background: var(--cta) !important;
	color: var(--navy) !important;
	font-size: 17px;
	box-shadow: 0 12px 30px -12px rgba(255, 194, 51, .9);
}

.product-top__summary form.cart .single_add_to_cart_button:hover {
	background: var(--cta-hover) !important;
}

.product-top__summary .product_meta {
	display: flex;
	flex-wrap: wrap;
	gap: 6px 24px;
	color: var(--muted);
	font-size: 14px;
}

.product-top__summary .product_meta > span {
	display: block;
}

.product-top__summary .stock {
	margin: 0;
	color: var(--fit-ink);
	font-weight: 700;
}

/* Tabs */
.product-tabs {
	padding: 0 0 88px;
	background: var(--ground);
}

.woocommerce-tabs ul.tabs {
	display: flex;
	gap: 28px;
	margin: 0 0 32px !important;
	padding: 0 !important;
	border-bottom: 1px solid var(--line);
	list-style: none;
	overflow-x: auto;
}

.woocommerce-tabs ul.tabs::before,
.woocommerce-tabs ul.tabs::after {
	display: none !important;
}

.woocommerce-tabs ul.tabs li {
	margin: 0 !important;
	padding: 0 !important;
	border: 0 !important;
	background: none !important;
}

.woocommerce-tabs ul.tabs li::before,
.woocommerce-tabs ul.tabs li::after {
	display: none !important;
}

.woocommerce-tabs ul.tabs li a {
	display: inline-flex;
	align-items: center;
	height: 60px;
	padding: 0 4px !important;
	border-bottom: 3px solid transparent;
	color: var(--muted) !important;
	font-size: 16px;
	font-weight: 700;
	text-decoration: none;
	white-space: nowrap;
}

.woocommerce-tabs ul.tabs li.active a {
	border-bottom-color: var(--cta);
	color: var(--ink) !important;
}

.woocommerce-tabs .panel {
	margin: 0 !important;
	color: var(--body);
}

.woocommerce-Tabs-panel--description {
	max-width: 760px;
}

/* WPCE compatibility tab: heading, text, then the full list, in the plugin's order */
.wpce-product-tab > h2 {
	margin: 0 0 14px;
	color: var(--ink);
	font-size: clamp(28px, 2.6vw, 36px);
}

.wpce-product-tab > p {
	max-width: 760px;
	margin: 0 0 24px;
	color: var(--body);
}

body:where(:not(.wpce-modern)) .wpce-product-tab table {
	width: 100%;
	margin: 0;
	border: 1px solid var(--line);
	border-collapse: separate;
	border-spacing: 0;
	border-radius: 18px;
	background: #fff;
	font-size: 15px;
}

body:where(:not(.wpce-modern)) .wpce-product-tab thead th {
	padding: 12px 18px;
	border: 0;
	border-bottom: 1px solid var(--line);
	background: var(--ground);
	color: var(--muted);
	font: 700 13px/1.2 var(--font);
	text-align: left;
	text-transform: none;
}

body:where(:not(.wpce-modern)) .wpce-product-tab tfoot {
	display: none;
}

body:where(:not(.wpce-modern)) .wpce-product-tab td,
body:where(:not(.wpce-modern)) .wpce-product-tab th {
	white-space: nowrap;
}

body:where(:not(.wpce-modern)) .wpce-product-tab td {
	padding: 12px 18px;
	border: 0;
	border-bottom: 1px solid var(--line);
	color: var(--ink);
}

body:where(:not(.wpce-modern)) .wpce-product-tab tbody tr:last-child td {
	border-bottom: 0;
}

body:where(:not(.wpce-modern)) .wpce-product-tab thead th:first-child {
	border-top-left-radius: 17px;
}

body:where(:not(.wpce-modern)) .wpce-product-tab thead th:last-child {
	border-top-right-radius: 17px;
}

body:where(:not(.wpce-modern)) .wpce-product-terms-list-table .wpce-product-terms-loading {
	padding: 18px;
	color: var(--muted);
}

/* Related products */
.product-related {
	padding-top: 88px;
	padding-bottom: 96px;
}

.product-related .related > h2 {
	margin-bottom: 28px;
	font-size: clamp(28px, 2.6vw, 36px);
}

.product-related ul.products {
	margin-bottom: 0 !important;
}

/**
 * Cart, Checkout and My Account
 */
.wc-page {
	padding-top: 40px;
	padding-bottom: 96px;
}

.store-note {
	display: flex;
	align-items: center;
	gap: 12px;
	margin: 0 0 28px;
	padding: 14px 18px;
	border-radius: 14px;
	background: var(--amber-soft);
	color: var(--amber-ink);
	font-size: 15px;
}

.store-note svg {
	flex: none;
}

.store-note strong {
	color: #5c3d00;
}

.woocommerce-message,
.woocommerce-info,
.woocommerce-error {
	position: relative;
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 10px 16px;
	margin: 0 0 24px;
	padding: 14px 18px;
	border: 0;
	border-left: 4px solid var(--blue);
	border-radius: 12px;
	background: var(--blue-soft);
	color: var(--ink);
	list-style: none;
	font-size: 15px;
}

.woocommerce-message {
	border-left-color: var(--fit);
	background: var(--fit-soft);
}

.woocommerce-error {
	border-left-color: var(--nofit);
	background: var(--nofit-soft);
	flex-direction: column;
	align-items: flex-start;
}

.woocommerce-message::before,
.woocommerce-info::before,
.woocommerce-error::before {
	display: none !important;
}

.woocommerce-message .button,
.woocommerce-info .button {
	order: 2;
	min-height: 40px;
	padding: 0 16px;
	font-size: 14px;
}

.woocommerce table.shop_table,
table.shop_table {
	width: 100%;
	margin: 0 0 28px;
	border: 1px solid var(--line);
	border-radius: 16px;
	border-collapse: separate;
	border-spacing: 0;
	overflow: hidden;
	background: #fff;
	font-size: 15px;
}

table.shop_table th {
	padding: 14px 18px;
	background: var(--ground);
	color: var(--muted);
	font-size: 13px;
	font-weight: 700;
	text-align: left;
}

table.shop_table td,
table.shop_table tbody th,
table.shop_table tfoot th {
	padding: 16px 18px;
	border-top: 1px solid var(--line);
	vertical-align: middle;
}

table.shop_table tbody th,
table.shop_table tfoot th {
	background: none;
	color: var(--ink);
	font-size: 15px;
}

.cart_totals table.shop_table tr:first-child th,
.cart_totals table.shop_table tr:first-child td {
	border-top: 0;
}

table.shop_table td.product-thumbnail img {
	width: 72px;
	border-radius: 10px;
}

table.shop_table td.product-name a {
	color: var(--ink);
	font-weight: 700;
	text-decoration: none;
}

table.shop_table td.product-remove a {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 30px;
	height: 30px;
	border-radius: 50%;
	background: var(--ground);
	color: var(--muted) !important;
	font-size: 18px;
	text-decoration: none;
}

table.shop_table .quantity {
	display: inline-flex;
	align-items: center;
	height: 44px;
	border: 1px solid var(--line-2);
	border-radius: 10px;
}

table.shop_table td.actions {
	background: var(--ground);
}

table.shop_table td.actions .coupon {
	display: inline-flex;
	gap: 8px;
}

table.shop_table td.actions .button {
	min-height: 44px;
	font-size: 14px;
}

table.shop_table td.actions > .button {
	float: right;
}

.variation,
dl.variation {
	display: grid;
	grid-template-columns: auto 1fr;
	gap: 2px 8px;
	margin: 8px 0 0;
	color: var(--muted);
	font-size: 13px;
}

.variation dt,
.variation dd {
	margin: 0;
}

.variation dd p {
	margin: 0;
}

.variation.wpce-variation {
	display: block;
	margin-top: 8px;
}

.variation.wpce-variation table {
	border-collapse: collapse;
	font-size: 13px;
}

.variation.wpce-variation th,
.variation.wpce-variation td {
	padding: 3px 10px 3px 0;
	border: 0;
	background: none;
}

.cart-collaterals {
	display: flex;
	justify-content: flex-end;
}

.cart-collaterals .cart_totals {
	width: 100%;
	max-width: 440px;
	padding: 24px;
	border: 1px solid var(--line);
	border-radius: 18px;
	background: #fff;
}

.cart-collaterals .cart_totals h2 {
	margin-bottom: 16px;
	font-size: 22px;
}

.cart-collaterals .cart_totals table.shop_table {
	border: 0;
	margin-bottom: 18px;
}

.cart-collaterals .cart_totals table.shop_table th {
	background: none;
}

.wc-proceed-to-checkout .checkout-button {
	display: flex;
	width: 100%;
	background: var(--cta) !important;
	color: var(--navy) !important;
}

/* Forms */
.woocommerce form .form-row,
.woocommerce-page form .form-row {
	display: flex;
	flex-direction: column;
	gap: 6px;
	margin: 0 0 16px;
	padding: 0;
}

.woocommerce form .form-row label {
	color: var(--ink);
	font-size: 14px;
	font-weight: 700;
	line-height: 1.3;
}

.woocommerce form .form-row .required {
	color: var(--nofit);
	text-decoration: none;
}

.woocommerce form .form-row input.input-text,
.woocommerce form .form-row textarea,
.woocommerce-page form .form-row input.input-text,
.woocommerce .coupon input.input-text,
.woocommerce-account input.input-text {
	width: 100%;
	min-height: 48px;
	padding: 0 14px;
	border: 1px solid var(--line-2);
	border-radius: 10px;
	background: #fff;
	color: var(--ink);
	font: 500 15px var(--font);
}

.woocommerce form .form-row textarea {
	min-height: 110px;
	padding: 12px 14px;
}

.woocommerce form .form-row input.input-text:focus,
.woocommerce form .form-row textarea:focus {
	border-color: var(--blue);
	box-shadow: 0 0 0 4px rgba(61, 123, 255, .16);
	outline: 0;
}

.woocommerce form .form-row-first,
.woocommerce form .form-row-last {
	width: 100%;
}

.woocommerce .select2-container .select2-selection--single {
	height: 48px;
	border: 1px solid var(--line-2);
	border-radius: 10px;
}

.woocommerce .select2-container .select2-selection--single .select2-selection__rendered {
	padding-left: 14px;
	line-height: 46px;
}

.woocommerce .select2-container .select2-selection--single .select2-selection__arrow {
	height: 46px;
}

form.checkout {
	display: grid;
	grid-template-columns: minmax(0, 1.2fr) minmax(0, .8fr);
	gap: 28px 40px;
	align-items: start;
}

form.checkout > .woocommerce-NoticeGroup,
form.checkout > .woocommerce-notices-wrapper {
	grid-column: 1 / -1;
}

form.checkout .col2-set {
	grid-column: 1;
	grid-row: 1 / span 3;
	display: grid;
	gap: 24px;
}

.woocommerce-shipping-fields:not(:has(*)) {
	display: none;
}

form.checkout .col2-set .col-2:not(:has(.woocommerce-shipping-fields *, .woocommerce-additional-fields *)) {
	display: none;
}

form.checkout .col2-set .col-1,
form.checkout .col2-set .col-2 {
	float: none;
	width: 100%;
}

.woocommerce-billing-fields,
.woocommerce-shipping-fields,
.woocommerce-additional-fields {
	padding: 24px;
	border: 1px solid var(--line);
	border-radius: 18px;
	background: #fff;
}

.woocommerce-billing-fields__field-wrapper {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 0 16px;
}

.woocommerce-billing-fields__field-wrapper .form-row-wide,
.woocommerce-billing-fields__field-wrapper #billing_country_field,
.woocommerce-billing-fields__field-wrapper #billing_address_1_field,
.woocommerce-billing-fields__field-wrapper #billing_address_2_field,
.woocommerce-billing-fields__field-wrapper #billing_company_field {
	grid-column: 1 / -1;
}

.woocommerce-billing-fields h3,
.woocommerce-shipping-fields h3,
.woocommerce-additional-fields h3,
#order_review_heading {
	margin: 0 0 18px;
	font-size: 22px;
}

#order_review_heading {
	grid-column: 2;
	grid-row: 1;
	margin: 0;
}

#order_review {
	grid-column: 2;
	grid-row: 2;
	padding: 24px;
	border: 1px solid var(--line);
	border-radius: 18px;
	background: #fff;
}


#order_review table.shop_table {
	border: 0;
}

#order_review table.shop_table th,
#order_review table.shop_table td {
	padding: 12px 0;
	background: none;
}

#order_review table.shop_table thead th {
	border-top: 0;
	color: var(--muted);
	font-size: 13px;
}

#payment {
	padding: 20px;
	border-radius: 14px;
	background: var(--ground);
}

#payment ul.payment_methods {
	margin: 0 0 16px;
	padding: 0;
	list-style: none;
}

#payment .payment_box {
	margin: 8px 0;
	padding: 12px 14px;
	border-radius: 10px;
	background: #fff;
	font-size: 14px;
}

#payment .place-order .button {
	width: 100%;
	min-height: 54px;
}

#payment .place-order .button:disabled {
	background: var(--line-2);
	color: var(--body);
	cursor: not-allowed;
}

.woocommerce-privacy-policy-text p {
	color: var(--muted);
	font-size: 13px;
}

/* My account */
.woocommerce-account .u-columns,
.woocommerce-account .woocommerce > h2 + form.login {
	max-width: 480px;
}

.woocommerce-account form.login,
.woocommerce-account form.lost_reset_password {
	padding: 28px;
	border: 1px solid var(--line);
	border-radius: 18px;
	background: #fff;
}

.woocommerce-account form.login .button {
	width: 100%;
	margin-top: 8px;
}

.woocommerce-form-login__rememberme {
	display: flex !important;
	align-items: center;
	gap: 8px;
	font-weight: 500 !important;
}

.woocommerce-LostPassword {
	margin: 12px 0 0;
	font-size: 14px;
}

.cart-empty.woocommerce-info {
	margin-bottom: 20px;
}

.return-to-shop .button {
	background: var(--cta);
	color: var(--navy);
}

/**
 * Shop Responsive
 */
@media (max-width: 1180px) {
	ul.products {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}

	.grid-banner {
		grid-template-columns: minmax(0, 1fr);
	}

	.grid-banner__shot {
		display: none;
	}
}

@media (max-width: 1024px) {
	.shop__layout {
		grid-template-columns: minmax(0, 1fr);
	}

	.shop__side {
		order: 2;
		display: grid;
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.product-top {
		grid-template-columns: minmax(0, 1fr);
		gap: 36px;
	}

	.product-top__media {
		display: contents;
	}

	.product-top__image {
		order: 1;
		max-width: 640px;
	}

	.product-top__summary {
		order: 2;
	}

	.product-note {
		order: 3;
		max-width: 640px;
	}

	form.checkout {
		grid-template-columns: minmax(0, 1fr);
	}

	#order_review_heading,
	#order_review,
	#order_review_heading + #order_review,
	form.checkout .col2-set {
		grid-column: 1;
		grid-row: auto;
	}
}

@media (max-width: 700px) {
	.results-bar {
		flex-wrap: wrap;
		margin-top: -32px;
		padding: 16px;
	}

	.results-bar .woocommerce-ordering {
		flex: 1 1 100%;
	}

	.results-bar .woocommerce-ordering select {
		width: 100%;
	}

	ul.products {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 12px;
	}

	ul.products li.card {
		padding: 10px;
	}

	.card__title {
		font-size: 14px;
	}

	.grid-banner {
		padding: 26px 22px;
	}

	.shop__side {
		grid-template-columns: minmax(0, 1fr);
	}

	.product-top {
		padding-top: 28px;
		padding-bottom: 56px;
	}

	.product-top__price {
		font-size: 26px;
	}

	:where(body:not(.wpce-modern)) .product-top__summary .wpce-product-validator .wpce-filter-widget-inner {
		grid-template-columns: minmax(0, 1fr);
		padding: 16px;
	}

	:where(body:not(.wpce-modern)) .product-top__summary .wpce-product-validator .wpce-message {
		margin: 8px -16px -16px;
		padding: 12px 16px;
	}

	.product-note {
		flex-direction: row;
		padding: 18px;
	}

	.product-tabs {
		padding-bottom: 56px;
	}

	body:where(:not(.wpce-modern)) .wpce-product-tab table {
		font-size: 13px;
	}

	body:where(:not(.wpce-modern)) .wpce-product-tab thead th,
	body:where(:not(.wpce-modern)) .wpce-product-tab td {
		padding: 10px 6px;
	}

	body:where(:not(.wpce-modern)) .wpce-product-tab td,
	body:where(:not(.wpce-modern)) .wpce-product-tab th {
		white-space: normal;
	}

	body:where(:not(.wpce-modern)) .wpce-product-tab td:nth-child(3) {
		white-space: nowrap;
	}

	body:where(:not(.wpce-modern)) .wpce-product-tab thead th:first-child,
	body:where(:not(.wpce-modern)) .wpce-product-tab td:first-child {
		padding-left: 12px;
	}

	.product-related {
		padding-top: 56px;
		padding-bottom: 64px;
	}

	table.shop_table_responsive thead {
		display: none;
	}

	table.shop_table_responsive tr td {
		display: flex;
		justify-content: space-between;
		gap: 12px;
		text-align: right;
	}

	table.shop_table_responsive tr td::before {
		content: attr(data-title);
		color: var(--muted);
		font-weight: 700;
	}

	table.shop_table_responsive tr td.product-remove::before,
	table.shop_table_responsive tr td.product-thumbnail::before,
	table.shop_table_responsive tr td.actions::before {
		display: none;
	}

	table.shop_table td.actions .coupon {
		display: flex;
		flex-direction: column;
		width: 100%;
	}

	table.shop_table td.actions > .button {
		float: none;
		width: 100%;
		margin-top: 8px;
	}

	.woocommerce-billing-fields__field-wrapper {
		grid-template-columns: minmax(0, 1fr);
	}
}

@media (max-width: 400px) {
	body:where(:not(.wpce-modern)) .wpce-product-tab table {
		font-size: 12px;
	}

	body:where(:not(.wpce-modern)) .wpce-product-tab thead th,
	body:where(:not(.wpce-modern)) .wpce-product-tab td {
		padding: 9px 4px;
	}

	body:where(:not(.wpce-modern)) .wpce-product-tab thead th:first-child,
	body:where(:not(.wpce-modern)) .wpce-product-tab td:first-child {
		padding-left: 10px;
	}
}
