:root {
	--os-shop-ink: #142b3a;
	--os-shop-blue: #00457a;
	--os-shop-muted: #5b6b78;
	--os-shop-pale: #f1f7fd;
	--os-shop-line: #d6e2ec;
}

.post-type-archive-product .shoptimizer-archive > .archive-header { display: none; }
.os-shop-page {
	color: var(--os-shop-ink);
	left: 50%;
	margin-left: -50vw;
	position: relative;
	width: 100vw;
}
.os-shop-page * { box-sizing: border-box; }
.os-shop-shell { margin: 0 auto; max-width: 1260px; padding-left: 32px; padding-right: 32px; }

.os-shop-hero { background: #fff; }
.os-shop-hero__inner {
	align-items: center;
	display: grid;
	grid-template-columns: minmax(360px, .78fr) minmax(0, 1.22fr);
	min-height: 540px;
}
.os-shop-hero__content { padding: 70px 40px 70px 0; }
.os-shop-hero h1 {
	color: var(--os-shop-ink);
	font-size: clamp(44px, 4.1vw, 64px);
	font-weight: 700;
	letter-spacing: -.04em;
	line-height: 1.05;
	margin: 0 0 28px;
	max-width: 580px;
}
.os-shop-hero p { color: var(--os-shop-muted); font-size: 18px; line-height: 1.55; margin: 0 0 28px; max-width: 560px; }
.os-shop-hero .button,
.os-shop-filter-submit,
.os-shop-filter-clear {
	align-items: center;
	background: var(--os-shop-blue) !important;
	border: 1px solid var(--os-shop-blue) !important;
	border-radius: 4px;
	color: #fff !important;
	display: inline-flex;
	font-weight: 600;
	justify-content: center;
	min-height: 48px;
	padding: 0 40px;
}
.os-shop-hero__image {
	align-self: stretch;
	background-image: url('../images/shop/shop-hero.png');
	background-position: center;
	background-repeat: no-repeat;
	background-size: contain;
	min-height: 480px;
}

.os-quick-shop { background: var(--os-shop-pale); padding: 54px 0 58px; }
.os-quick-shop h2,
.os-shop-products h2 { color: var(--os-shop-ink); font-size: 32px; font-weight: 700; letter-spacing: -.025em; margin: 0; }
.os-quick-shop__grid { display: grid; gap: 20px; grid-template-columns: repeat(4, 1fr); margin-top: 36px; }
.os-quick-card {
	align-items: flex-end;
	background-image: var(--os-card-image);
	background-position: center;
	background-size: cover;
	border-radius: 9px;
	display: flex;
	height: 112px;
	overflow: hidden;
	padding: 18px 20px;
	position: relative;
	text-decoration: none;
}
.os-quick-card::after { background: linear-gradient(0deg, rgba(8,29,43,.55), transparent 58%); content: ''; inset: 0; position: absolute; }
.os-quick-card span { color: #fff; font-size: 17px; font-weight: 600; position: relative; z-index: 1; }

.os-shop-products { background: #fff; padding: 66px 0 100px; }
#all-products { scroll-margin-top: 110px; }
.os-shop-products__header { align-items: center; display: flex; justify-content: space-between; margin-bottom: 44px; }
.os-shop-products .woocommerce-ordering { float: none; margin: 0; }
.os-shop-products .woocommerce-ordering select { border: 0; color: var(--os-shop-muted); font-size: 14px; padding-right: 26px; }
.os-shop-products__layout { align-items: start; display: grid; gap: 48px; grid-template-columns: 230px minmax(0, 1fr); }
.os-shop-products__layout { transition: opacity .2s ease; }
.os-shop-products__layout.is-loading { opacity: .45; pointer-events: none; }

.os-shop-filters { min-width: 0; }
.os-shop-filter-group { border: 0; border-top: 1px solid var(--os-shop-line); margin: 0; padding: 22px 0 24px; }
.os-shop-filter-toggle { appearance: none; background: transparent; border: 0; color: var(--os-shop-blue); cursor: default; display: flex; font-size: 17px; font-weight: 600; justify-content: space-between; line-height: 1.3; padding: 0; text-align: left; width: 100%; }
.os-shop-filter-group label { align-items: flex-start; color: var(--os-shop-muted); cursor: pointer; display: flex; font-size: 14px; gap: 9px; line-height: 1.35; margin-top: 13px; }
.os-shop-filter-group input { accent-color: var(--os-shop-blue); flex: 0 0 auto; height: 16px; margin: 1px 0 0; width: 16px; }
.os-shop-filter-submit { display: none !important; }
.os-shop-filter-clear { padding: 0 26px; text-decoration: none; }

.os-shop-grid {
	display: grid !important;
	gap: 24px 20px;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	list-style: none;
	margin: 0 !important;
	padding: 0 !important;
}
.os-shop-grid::before,
.os-shop-grid::after { display: none !important; }
.os-shop-grid li.os-shop-card,
.os-shop-grid li.os-shop-card:hover {
	background: #fff !important;
	border: 1px solid var(--os-shop-line);
	border-radius: 9px;
	box-shadow: none !important;
	display: flex;
	flex-direction: column;
	float: none !important;
	margin: 0 !important;
	opacity: 1 !important;
	padding: 16px;
	transform: none !important;
	transition: none !important;
	width: auto !important;
}
.os-shop-card::before,
.os-shop-card::after { content: none !important; display: none !important; }
.os-shop-card > *:not(.os-shop-card__button),
.os-shop-card:hover > *:not(.os-shop-card__button) { filter: none !important; opacity: 1 !important; transform: none !important; transition: none !important; }
.os-shop-card__image { display: block; margin-bottom: 18px; }
.os-shop-grid .os-shop-card__image img { aspect-ratio: 1; display: block; margin: 0; object-fit: contain; width: 100%; }
.os-shop-card__title { font-size: 17px; font-weight: 700; line-height: 1.25; margin: 0 0 11px; }
.os-shop-card__title a,
.os-shop-card__title a:hover { color: var(--os-shop-ink) !important; text-decoration: none; }
.os-shop-card__category { color: var(--os-shop-muted); font-size: 13px; line-height: 1.4; margin-bottom: 12px; }
.os-shop-card__category a,
.os-shop-card__category a:hover { color: inherit !important; text-decoration: none; }
.os-shop-card__price { color: var(--os-shop-blue); font-size: 19px; margin-bottom: 16px; }
.os-shop-card__price .woocommerce-Price-amount,
.os-shop-card__price .woocommerce-Price-currencySymbol { color: var(--os-shop-blue) !important; }
.os-shop-grid .os-shop-card__button,
.os-shop-grid .os-shop-card__button:visited {
	align-items: center;
	background: var(--os-shop-pale) !important;
	border: 1px solid var(--os-shop-blue) !important;
	border-radius: 3px;
	box-shadow: none !important;
	color: var(--os-shop-blue) !important;
	display: flex !important;
	font-size: 14px;
	justify-content: center;
	margin-top: auto;
	min-height: 46px;
	opacity: 1 !important;
	position: static !important;
	text-align: center;
	transform: none !important;
	visibility: visible !important;
	width: 100%;
}
.os-shop-grid .os-shop-card__button:hover,
.os-shop-grid .os-shop-card__button:focus-visible { background: transparent !important; border-width: 2px !important; }

.os-shop-products .woocommerce-pagination { float: none; margin: 48px 0 0; text-align: center; }
.os-shop-products .woocommerce-pagination ul.page-numbers { border: 0; display: inline-flex; gap: 5px; }
.os-shop-products .woocommerce-pagination .page-numbers li { border: 0; }
.os-shop-products .woocommerce-pagination .page-numbers a,
.os-shop-products .woocommerce-pagination .page-numbers span { align-items: center; border-radius: 3px; display: flex; height: 36px; justify-content: center; min-width: 36px; }
.os-shop-products .woocommerce-pagination .page-numbers .current { background: var(--os-shop-blue); color: #fff; }

@media (max-width: 1100px) {
	.os-shop-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

@media (max-width: 900px) {
	.os-shop-hero__inner { grid-template-columns: 1fr 1fr; }
	.os-shop-products__layout { gap: 30px; grid-template-columns: 200px minmax(0, 1fr); }
	.os-shop-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 767px) {
	.os-shop-shell { padding-left: 20px; padding-right: 20px; }
	.os-shop-hero__inner { grid-template-columns: 1fr; padding: 0; }
	.os-shop-hero__content { padding: 52px 20px 24px; }
	.os-shop-hero h1 { font-size: 42px; }
	.os-shop-hero__image { min-height: 330px; }
	.os-quick-shop { padding: 42px 0; }
	.os-quick-shop h2,
	.os-shop-products h2 { font-size: 28px; }
	.os-quick-shop__grid { grid-template-columns: repeat(2, 1fr); }
	.os-shop-products { padding: 48px 0 72px; }
	.os-shop-products__header { align-items: flex-start; gap: 20px; }
	.os-shop-products__layout { grid-template-columns: 1fr; }
	.os-shop-filters { background: var(--os-shop-pale); border-radius: 8px; box-sizing: border-box; overflow: hidden; padding: 20px; width: 100%; }
	.os-shop-filters form,
	.os-shop-filter-group { box-sizing: border-box; min-width: 0; width: 100%; }
	.os-shop-filter-group { padding: 0; }
	.os-shop-filter-group + .os-shop-filter-group { border-top: 1px solid var(--os-shop-line); }
	.os-shop-filter-toggle { cursor: pointer; min-height: 56px; padding: 16px 0; }
	.os-shop-filter-toggle::after { content: '+'; flex: 0 0 auto; font-size: 22px; font-weight: 400; line-height: 1; margin-left: 16px; }
	.os-shop-filter-toggle[aria-expanded="true"]::after { content: '\2212'; }
	.os-shop-filter-toggle[aria-expanded="false"] + .os-shop-filter-content { display: none; }
	.os-shop-filter-content { padding: 0 0 20px; }
	.os-shop-filter-content label:first-child { margin-top: 4px; }
	.os-shop-filter-clear { width: 100%; }
	.os-shop-grid li.os-shop-card,
	.os-shop-grid li.os-shop-card:hover,
	.os-shop-grid li.os-shop-card:focus-within {
		box-sizing: border-box;
		padding: 14px !important;
		transform: none !important;
		touch-action: pan-y;
	}
	.os-shop-grid .os-shop-card__button:hover,
	.os-shop-grid .os-shop-card__button:focus,
	.os-shop-grid .os-shop-card__button:focus-visible {
		border-width: 1px !important;
		background: var(--os-shop-pale) !important;
		transform: none !important;
	}
}

@media (max-width: 480px) {
	.os-quick-shop__grid,
	.os-shop-grid { grid-template-columns: 1fr; }
	.os-shop-products__header { flex-direction: column; }
}
