:root {
	--gw-navy: #00152f;
	--gw-navy-2: #06264d;
	--gw-blue: #0866e5;
	--gw-blue-hover: #0754bd;
	--gw-ice: #f2f7ff;
	--gw-line: #d6e3f5;
	--gw-ink: #081a36;
	--gw-muted: #54647a;
}

.woocommerce-page .site-main,
.woocommerce .site-main {
	color: var(--gw-ink);
}

.woocommerce-page .content-area {
	margin-top: 0;
}

.woocommerce-products-header {
	padding: clamp(42px, 7vw, 86px) 24px;
	background: linear-gradient(120deg, var(--gw-navy), var(--gw-navy-2));
	color: #fff;
	text-align: center;
}

.woocommerce-products-header__title {
	margin: 0;
	color: #fff;
	font-size: clamp(42px, 6vw, 76px);
	line-height: 1;
	text-transform: uppercase;
}

.woocommerce ul.products {
	gap: 28px;
}

.woocommerce ul.products li.product {
	overflow: hidden;
	padding: 0 0 24px;
	border: 1px solid var(--gw-line);
	border-radius: 12px;
	background: #fff;
	box-shadow: 0 18px 50px rgba( 0, 31, 75, .08 );
}

.woocommerce ul.products li.product a img {
	width: 100%;
	aspect-ratio: 1 / 1;
	margin: 0 0 20px;
	padding: 18px;
	object-fit: contain;
	background: var(--gw-ice);
}

.woocommerce ul.products li.product .woocommerce-loop-product__title,
.woocommerce ul.products li.product .price,
.woocommerce ul.products li.product .button {
	margin-right: 20px;
	margin-left: 20px;
}

.woocommerce ul.products li.product .woocommerce-loop-product__title {
	min-height: 2.7em;
	color: var(--gw-ink);
	font-size: 20px;
	line-height: 1.25;
}

.woocommerce .price {
	color: var(--gw-blue) !important;
	font-weight: 800;
}

.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button,
.wc-block-components-button {
	min-height: 48px;
	border-radius: 6px !important;
	background: var(--gw-blue) !important;
	color: #fff !important;
	font-weight: 800 !important;
	text-transform: uppercase;
	letter-spacing: .03em;
	box-shadow: none !important;
}

.woocommerce a.button:hover,
.woocommerce button.button:hover,
.woocommerce input.button:hover,
.wc-block-components-button:hover {
	background: var(--gw-blue-hover) !important;
	transform: translateY( -1px );
}

.single-product div.product {
	padding-top: clamp(32px, 5vw, 72px);
}

.single-product div.product .woocommerce-product-gallery {
	padding: 24px;
	border: 1px solid var(--gw-line);
	border-radius: 12px;
	background: var(--gw-ice);
}

.single-product .woocommerce-product-gallery img {
	max-height: 680px;
	object-fit: contain;
}

.single-product div.product .summary {
	padding: clamp(20px, 3vw, 44px);
	border-top: 4px solid var(--gw-blue);
	background: #fff;
	box-shadow: 0 20px 60px rgba( 0, 31, 75, .09 );
}

.single-product .product_title {
	color: var(--gw-ink);
	font-size: clamp(36px, 4vw, 58px);
	line-height: 1.02;
}

.variations select,
.gw-field input,
.woocommerce form .form-row input.input-text,
.woocommerce form .form-row textarea {
	min-height: 48px;
	border: 1px solid #b8c9df;
	border-radius: 6px;
	background: #fff;
	color: var(--gw-ink);
}

.gw-product-tools {
	margin: 20px 0;
}

.gw-size-guide-trigger {
	padding: 0;
	border: 0;
	border-bottom: 2px solid var(--gw-blue);
	background: transparent;
	color: var(--gw-blue);
	font-weight: 800;
	cursor: pointer;
}

.gw-personalisation {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 14px;
	margin-top: 22px;
	padding: 20px;
	border: 1px solid var(--gw-line);
	border-radius: 8px;
	background: var(--gw-ice);
}

.gw-personalisation h3 {
	grid-column: 1 / -1;
	margin: 0;
}

.gw-field {
	margin: 0;
}

.gw-field label {
	display: block;
	margin-bottom: 6px;
	font-weight: 700;
}

.gw-field input {
	width: 100%;
	padding: 8px 12px;
}

.gw-size-guide-modal[hidden] {
	display: none;
}

.gw-size-guide-modal {
	position: fixed;
	z-index: 999999;
	inset: 0;
	display: grid;
	place-items: center;
	padding: 20px;
}

.gw-size-guide-backdrop {
	position: absolute;
	inset: 0;
	background: rgba( 0, 14, 34, .82 );
}

.gw-size-guide-panel {
	position: relative;
	z-index: 1;
	width: min( 1050px, 96vw );
	max-height: 92vh;
	overflow: auto;
	padding: clamp(20px, 4vw, 42px);
	border-radius: 12px;
	background: #fff;
}

.gw-size-guide-panel h2 {
	margin-top: 0;
	color: var(--gw-ink);
}

.gw-size-guide-close {
	position: absolute;
	top: 12px;
	right: 14px;
	width: 44px;
	height: 44px;
	border: 0;
	border-radius: 50%;
	background: var(--gw-navy);
	color: #fff;
	font-size: 30px;
	line-height: 1;
	cursor: pointer;
}

.gw-size-chart {
	display: block;
	width: 100%;
	height: auto;
	margin-top: 22px;
}

.gw-modal-open {
	overflow: hidden;
}

.woocommerce-cart .woocommerce,
.woocommerce-checkout .entry-content > .woocommerce,
.wc-block-cart,
.wc-block-checkout {
	margin: clamp(28px, 5vw, 72px) auto;
	padding: clamp(20px, 4vw, 44px);
	border: 1px solid var(--gw-line);
	border-radius: 12px;
	background: #fff;
	box-shadow: 0 18px 55px rgba( 0, 31, 75, .08 );
}

@media ( max-width: 767px ) {
	.woocommerce-products-header {
		padding: 36px 18px;
	}

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

	.woocommerce ul.products li.product {
		width: 100% !important;
		margin: 0 !important;
	}

	.woocommerce ul.products li.product .woocommerce-loop-product__title {
		min-height: 3.5em;
		font-size: 15px;
	}

	.woocommerce ul.products li.product .woocommerce-loop-product__title,
	.woocommerce ul.products li.product .price,
	.woocommerce ul.products li.product .button {
		margin-right: 12px;
		margin-left: 12px;
	}

	.woocommerce ul.products li.product .button {
		width: calc( 100% - 24px );
		padding: 10px 8px;
		font-size: 12px;
	}

	.gw-personalisation {
		grid-template-columns: 1fr;
	}
}

/* PCFC WooCommerce archive and product refinements. */
body.woocommerce-page {
	overflow-x: clip;
	background: #fff;
}

body.woocommerce-page .site-header,
body.woocommerce-page .site-header-wrap,
body.woocommerce-page .site-main-header-wrap,
body.woocommerce-page .site-header-row-container-inner {
	background: var(--gw-navy) !important;
}

body.woocommerce-page .site-header {
	border-bottom: 1px solid rgba( 8, 102, 229, .65 );
}

body.woocommerce-page .site-header a,
body.woocommerce-page .site-header .menu-toggle-open,
body.woocommerce-page .site-header .dropdown-nav-toggle {
	color: #fff !important;
}

body.woocommerce-page .site-header .current-menu-item > a,
body.woocommerce-page .site-header a:hover {
	color: #58a0ff !important;
}

.woocommerce-shop .entry-header.product-archive-title {
	display: grid;
	min-height: clamp(180px, 22vw, 300px);
	place-items: center;
	margin: 0;
	padding: 48px 24px;
	background:
		linear-gradient( 105deg, rgba( 0, 21, 47, .98 ), rgba( 5, 52, 112, .92 ) ),
		radial-gradient( circle at 82% 15%, rgba( 8, 102, 229, .42 ), transparent 36% );
	text-align: center;
}

.woocommerce-shop .entry-header.product-archive-title .entry-title {
	margin: 0;
	color: #fff;
	font-size: clamp(42px, 6vw, 76px);
	line-height: 1;
	text-transform: uppercase;
}

.woocommerce-shop .woocommerce-products-header:empty {
	display: none;
}

.woocommerce-shop .content-area,
.tax-product_cat .content-area {
	padding: clamp(38px, 5vw, 72px) 0;
	background: linear-gradient( 180deg, #fff 0, var(--gw-ice) 100% );
}

.woocommerce-shop .site-main,
.tax-product_cat .site-main {
	width: min( 1320px, calc( 100% - 48px ) );
	margin-inline: auto;
}

.woocommerce .woocommerce-result-count,
.woocommerce .woocommerce-ordering {
	margin-bottom: 28px;
}

.woocommerce .woocommerce-ordering select {
	min-height: 46px;
	padding: 0 42px 0 14px;
	border: 1px solid var(--gw-line);
	border-radius: 6px;
	background-color: #fff;
	color: var(--gw-ink);
}

.woocommerce ul.products {
	display: grid !important;
	grid-template-columns: repeat( 4, minmax( 0, 1fr ) );
	gap: 28px;
	clear: both;
}

.woocommerce ul.products li.product {
	width: auto !important;
	margin: 0 !important;
}

.woocommerce ul.products li.product .button {
	display: inline-flex !important;
	align-items: center;
	justify-content: center;
	margin-top: 16px;
	opacity: 1 !important;
	transform: none !important;
}

.single-product .content-area {
	padding-bottom: clamp(52px, 7vw, 96px);
	background: linear-gradient( 180deg, #fff, var(--gw-ice) );
}

.single-product .woocommerce-breadcrumb,
.single-product div.product {
	width: min( 1320px, calc( 100% - 48px ) );
	margin-inline: auto;
}

.single-product .woocommerce-breadcrumb {
	margin-bottom: 26px;
	padding-top: 24px;
	color: var(--gw-muted);
}

.single-product div.product .summary {
	border: 1px solid var(--gw-line);
	border-top: 4px solid var(--gw-blue);
	border-radius: 0 0 12px 12px;
}

.single-product .woocommerce-tabs,
.single-product .related.products {
	clear: both;
	padding-top: clamp(36px, 5vw, 68px);
}

.single-product .woocommerce-tabs ul.tabs {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin: 0 0 28px !important;
	padding: 0 !important;
	border: 0 !important;
}

.single-product .woocommerce-tabs ul.tabs li {
	margin: 0 !important;
	border: 1px solid var(--gw-line) !important;
	border-radius: 6px !important;
	background: #fff !important;
}

.single-product .woocommerce-tabs ul.tabs li.active {
	border-color: var(--gw-blue) !important;
	background: var(--gw-blue) !important;
}

.single-product .woocommerce-tabs ul.tabs li.active a {
	color: #fff !important;
}

.single-product .woocommerce-tabs .panel {
	padding: clamp(22px, 3vw, 38px);
	border: 1px solid var(--gw-line);
	border-radius: 10px;
	background: #fff;
}

.single-product .related.products > h2 {
	margin-bottom: 28px;
	color: var(--gw-ink);
	font-size: clamp(34px, 4vw, 54px);
	text-transform: uppercase;
}

/* Kadence outputs an empty archive header when the Shop page has no archive
 * description. Remove the dead navy block so products begin immediately. */
body.post-type-archive-product .woocommerce-products-header,
body.tax-product_cat .woocommerce-products-header {
	display: none !important;
	min-height: 0 !important;
	margin: 0 !important;
	padding: 0 !important;
	border: 0 !important;
}

body.post-type-archive-product #primary,
body.tax-product_cat #primary {
	padding-top: clamp(34px, 5vw, 64px);
}

@media ( max-width: 1024px ) {
	.woocommerce ul.products {
		grid-template-columns: repeat( 3, minmax( 0, 1fr ) );
		gap: 18px;
	}

	body.woocommerce-page .site-header .menu-toggle-open {
		display: inline-flex !important;
	}
}

@media ( max-width: 767px ) {
	.woocommerce-shop .entry-header.product-archive-title {
		min-height: 150px;
		padding: 34px 18px;
	}

	.woocommerce-shop .site-main,
	.tax-product_cat .site-main,
	.single-product div.product,
	.single-product .woocommerce-breadcrumb {
		width: min( 100% - 28px, 680px );
	}

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

	.single-product div.product .woocommerce-product-gallery,
	.single-product div.product .summary {
		padding: 16px;
	}

	.single-product .product_title {
		font-size: clamp(32px, 10vw, 44px);
	}

	.single-product .woocommerce-tabs ul.tabs {
		display: grid;
		grid-template-columns: 1fr;
	}
}
