/*
Theme Name: Wheat State Research
Theme URI: https://wheatstateresearch.com/
Author: Wheat State Research LLC
Author URI: https://wheatstateresearch.com/
Description: A restrained, accessible block theme for the Wheat State Research catalog and information architecture.
Requires at least: 7.0
Tested up to: 7.0
Requires PHP: 8.1
Version: 0.6.25
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: wheat-state-research
Tags: full-site-editing, block-styles, accessibility-ready, e-commerce
*/

*,
*::before,
*::after {
	box-sizing: border-box;
}

html {
	scroll-behavior: auto;
}

body {
	margin: 0;
	overflow-wrap: break-word;
}

img,
svg,
video {
	display: block;
	max-width: 100%;
	height: auto;
}

:where(a, button, input, select, summary, textarea, [tabindex]):focus-visible {
	outline: 3px solid #2f6fed;
	outline-offset: 3px;
}

:where(.wp-element-button, .wp-block-button__link, button, input:not([type="checkbox"]):not([type="radio"]), select, textarea) {
	min-height: 44px;
}

:where(p, li) {
	max-width: 72ch;
}

@media (prefers-reduced-motion: reduce) {
	*,
	*::before,
	*::after {
		scroll-behavior: auto !important;
		transition-duration: 0.01ms !important;
		animation-duration: 0.01ms !important;
		animation-iteration-count: 1 !important;
	}
}

.wsr-announcement-shell {
	overflow: hidden;
	background: #d6ae4f;
	color: #111111;
}

.wsr-announcement-inner {
	display: flex;
	flex-wrap: nowrap;
	justify-content: flex-start;
	width: max-content;
	max-width: none;
	margin-inline: 0;
	gap: 4px 16px;
	min-width: max-content;
	padding-block: 4px;
	text-align: left;
	white-space: nowrap;
	animation: wsr-announcement-scroll 22s linear infinite;
	will-change: transform;
}

.wsr-announcement-shell:hover .wsr-announcement-inner,
.wsr-announcement-shell:focus-within .wsr-announcement-inner {
	animation-play-state: paused;
}

@keyframes wsr-announcement-scroll {
	from {
		transform: translateX(100vw);
	}

	to {
		transform: translateX(-100%);
	}
}

.wsr-announcement-message,
.wsr-announcement-link {
	margin: 0;
	font-size: 0.875rem;
	line-height: 1.5;
}

.wsr-announcement-message {
	font-weight: 600;
}

.wsr-announcement-link a {
	display: inline-flex;
	align-items: center;
	min-height: 44px;
	color: #111111;
	font-weight: 700;
	text-decoration-thickness: 1px;
	text-underline-offset: 4px;
}

@media (prefers-reduced-motion: reduce) {
	.wsr-announcement-inner {
		flex-wrap: wrap;
		justify-content: center;
		width: calc(100% - 32px);
		max-width: 1200px;
		margin-inline: auto;
		min-width: 0;
		text-align: center;
		white-space: normal;
		animation: none;
		transform: none;
		will-change: auto;
	}
}

.wsr-header-shell {
	position: relative;
	z-index: 20;
}

.wsr-header-inner {
	display: grid !important;
	grid-template-areas: "brand nav utilities";
	grid-template-columns: minmax(180px, 0.75fr) minmax(390px, 1.5fr) minmax(360px, 1fr);
	gap: 16px 24px;
	align-items: center;
	min-width: 0;
}

.wsr-header-brand {
	grid-area: brand;
	gap: 12px;
	min-width: 0;
}

.wsr-header-logo {
	flex: 0 0 auto;
}

.wsr-header-title {
	margin: 0;
	min-width: 0;
	font-family: "Libre Baskerville", Georgia, Cambria, "Times New Roman", serif;
	font-weight: 700;
	line-height: 1.25;
}

.wsr-header-title a,
.wsr-header-nav a,
.wsr-header-utility-link a {
	color: #faf8f2;
}

.wsr-header-title a,
.wsr-header-nav a,
.wsr-header-utility-link a,
.wsr-footer-shell a {
	text-decoration-thickness: 1px;
	text-underline-offset: 4px;
}

.wsr-header-title a,
.wsr-header-nav a {
	text-decoration: none;
}

.wsr-header-nav {
	grid-area: nav;
	min-width: 0;
}

.wsr-header-nav .wp-block-navigation__container {
	gap: 4px 8px;
}

.wsr-header-nav .wp-block-navigation-item__content,
.wsr-header-nav .wp-block-navigation__submenu-icon,
.wsr-header-nav .wp-block-navigation__responsive-container-open,
.wsr-header-nav .wp-block-navigation__responsive-container-close {
	color: #faf8f2;
}

.wsr-header-nav .wp-block-navigation-item__content {
	display: flex;
	align-items: center;
	min-height: 44px;
	padding: 8px;
	border-radius: 4px;
}

.wsr-header-nav .wp-block-navigation-item__content:hover,
.wsr-header-nav .wp-block-navigation-item__content:focus-visible {
	background: #6b4a16;
	color: #faf8f2;
}

.wsr-header-nav .wp-block-navigation__submenu-container {
	min-width: 240px !important;
	padding: 8px !important;
	border: 1px solid #ded9cf !important;
	border-radius: 6px;
	background: #faf8f2 !important;
	box-shadow: none !important;
}

.wsr-header-nav .wp-block-navigation__submenu-container .wp-block-navigation-item__content {
	color: #111111;
}

.wsr-header-nav .wp-block-navigation__submenu-container .wp-block-navigation-item__content:hover,
.wsr-header-nav .wp-block-navigation__submenu-container .wp-block-navigation-item__content:focus-visible {
	background: #d6ae4f;
	color: #111111;
}

.wsr-header-nav .wp-block-navigation__responsive-container-open,
.wsr-header-nav .wp-block-navigation__responsive-container-close {
	align-items: center;
	justify-content: center;
	min-width: 44px;
	min-height: 44px;
	padding: 8px;
}

.wsr-header-nav .wp-block-navigation__responsive-container-open::after {
	content: "Menu";
	margin-left: 8px;
	font-weight: 700;
}

.wsr-header-nav .wp-block-navigation__responsive-container-close::after {
	content: "Close";
	margin-left: 8px;
	font-weight: 700;
}

.wsr-header-utilities {
	display: grid !important;
	grid-template-columns: minmax(0, 1fr) auto auto;
	grid-area: utilities;
	gap: 8px;
	align-items: end;
	min-width: 0;
}

.wsr-header-search {
	width: 100%;
	min-width: 0;
}

.wsr-header-search-label {
	display: block;
	margin-bottom: 4px;
	color: #faf8f2;
	font-size: 0.75rem;
	font-weight: 700;
	line-height: 1.3;
}

.wsr-header-search-controls {
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto;
	min-width: 0;
}

.wsr-header-search input[type="search"] {
	width: 100%;
	min-width: 0;
	padding: 8px 10px;
	border: 1px solid #ded9cf;
	border-radius: 6px 0 0 6px;
	background: #faf8f2;
	color: #111111;
	font: inherit;
}

.wsr-header-search button {
	padding: 8px 12px;
	border: 1px solid #d6ae4f;
	border-radius: 0 6px 6px 0;
	background: #d6ae4f;
	color: #111111;
	font: inherit;
	font-weight: 700;
}

.wsr-header-search button:hover {
	background: #faf8f2;
}

.wsr-header-utility-link {
	margin: 0;
}

.wsr-header-utility-link a {
	display: flex;
	align-items: center;
	justify-content: center;
	min-height: 44px;
	padding: 8px 10px;
	border: 1px solid #d6ae4f;
	border-radius: 6px;
	font-size: 0.875rem;
	font-weight: 700;
}

.wsr-header-utility-link a:hover,
.wsr-header-utility-link a:focus-visible {
	background: #d6ae4f;
	color: #111111;
}

.wsr-footer-columns {
	display: grid !important;
	grid-template-columns: minmax(0, 1.15fr) minmax(0, 0.95fr) minmax(0, 1.25fr) minmax(0, 1.05fr);
	gap: 32px;
}

.wsr-footer-column {
	min-width: 0;
}

.wsr-footer-column > :first-child {
	margin-top: 0;
}

.wsr-footer-title {
	margin: 0 0 16px;
	font-family: "Libre Baskerville", Georgia, Cambria, "Times New Roman", serif;
	font-weight: 700;
	line-height: 1.3;
}

.wsr-footer-title a,
.wsr-footer-shell a {
	color: #faf8f2;
}

.wsr-footer-shell h2 {
	margin-bottom: 12px;
	color: #d6ae4f;
}

.wsr-footer-links {
	margin: 0;
	padding: 0;
	list-style: none;
}

.wsr-footer-links li {
	margin: 0;
}

.wsr-footer-links a,
.wsr-footer-email a {
	display: inline-flex;
	align-items: center;
	min-height: 44px;
}

.wsr-footer-email {
	margin: 0 0 8px;
	font-size: 0.875rem;
	font-weight: 700;
	overflow-wrap: anywhere;
}

.wsr-footer-research-use,
.wsr-footer-hours {
	font-size: 0.875rem;
}

.wsr-home-main {
	margin: 0;
	padding: 0;
}

.wsr-home-main h1 {
	font-size: clamp(2.375rem, 1.85rem + 2.1vw, 3.25rem);
	line-height: 1.15;
}

.wsr-home-main h2 {
	font-size: clamp(1.875rem, 1.58rem + 1.3vw, 2.375rem);
	line-height: 1.2;
}

.wsr-home-main h3 {
	font-size: clamp(1.5rem, 1.37rem + 0.55vw, 1.625rem);
	line-height: 1.3;
}

.wsr-home-hero {
	position: relative;
	isolation: isolate;
	overflow: hidden;
	padding-block: clamp(64px, 8vw, 96px);
	border-bottom: 1px solid #d6ae4f;
	background: #111111;
	color: #faf8f2;
}

.wsr-home-hero::before {
	content: "";
	position: absolute;
	z-index: 1;
	inset: 0;
	background: linear-gradient(
		90deg,
		rgba(17, 17, 17, 0.97) 0%,
		rgba(17, 17, 17, 0.88) 42%,
		rgba(17, 17, 17, 0.46) 68%,
		rgba(17, 17, 17, 0.14) 100%
	);
	pointer-events: none;
}

.wsr-home-hero-grid {
	display: block !important;
	min-width: 0;
}

.wsr-home-hero-copy {
	position: relative;
	z-index: 2;
	max-width: 660px;
}

.wsr-home-brand-panel,
.wsr-home-card,
.wsr-home-shipping-card {
	min-width: 0;
}

.wsr-home-eyebrow {
	margin: 0 0 16px;
	color: #d6ae4f;
	font-size: 0.875rem;
	font-weight: 700;
	letter-spacing: 0.12em;
	line-height: 1.4;
	text-transform: uppercase;
}

.wsr-home-hero h1 {
	max-width: 14ch;
	margin-bottom: 24px;
	color: #faf8f2;
}

.wsr-home-lead {
	max-width: 66ch;
	margin-bottom: 32px;
	color: #ffffff;
	font-size: clamp(1.125rem, 1.06rem + 0.3vw, 1.25rem);
	line-height: 1.55;
}

.wsr-home-hero-visual,
.wsr-home-section-visual {
	margin: 0;
	overflow: hidden;
	border: 1px solid #d6ae4f;
	border-radius: 10px;
	background: #1c1c1a;
}

.wsr-home-hero-visual {
	position: absolute;
	z-index: 0;
	inset: 0;
	border: 0;
	border-radius: 0;
}

.wsr-home-hero-visual img,
.wsr-home-section-visual img {
	display: block;
	width: 100%;
	object-fit: cover;
}

.wsr-home-hero-visual img {
	height: 100%;
	min-height: 0;
	aspect-ratio: auto;
	object-position: 62% center;
}

.wsr-home-section-visual img {
	aspect-ratio: 3 / 2;
}

.wsr-home-actions {
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
}

.wsr-home-actions .wp-block-button {
	margin: 0;
}

.wsr-home-actions .wp-block-button__link {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 48px;
}

.wsr-home-button-secondary .wp-block-button__link {
	border: 1px solid #faf8f2;
	background: #111111;
	color: #faf8f2;
}

.wsr-home-button-secondary .wp-block-button__link:hover,
.wsr-home-button-secondary .wp-block-button__link:focus-visible {
	background: #faf8f2;
	color: #111111;
}

.wsr-home-brand-panel {
	display: flex;
	flex-direction: column;
	justify-content: space-between;
	min-height: 260px;
	padding: clamp(24px, 4vw, 40px);
	border: 1px solid #d6ae4f;
	border-radius: 10px;
	background: #1c1c1a;
}

.wsr-home-brand-name {
	max-width: 12ch;
	margin: 0;
	color: #d6ae4f;
	font-family: "Libre Baskerville", Georgia, Cambria, "Times New Roman", serif;
	font-size: clamp(1.5rem, 1.2rem + 1vw, 2.375rem);
	font-weight: 700;
	line-height: 1.2;
}

.wsr-home-brand-place {
	margin: 32px 0 0;
	padding-top: 16px;
	border-top: 1px solid #d6ae4f;
	color: #faf8f2;
	font-size: 0.875rem;
	font-weight: 700;
	letter-spacing: 0.1em;
	text-transform: uppercase;
}

.wsr-home-section {
	padding-block: clamp(48px, 7vw, 80px);
}

.wsr-home-section-heading {
	max-width: 20ch;
}

.wsr-home-research-panel {
	width: calc(100% - clamp(32px, 8vw, 64px));
	max-width: 1200px !important;
	margin: 24px auto 0;
	padding: 16px 20px;
	border: 1px solid #ded9cf;
	border-left: 3px solid #d6ae4f;
	border-radius: 6px;
	background: #faf8f2;
}

.wsr-home-research-panel > * {
	width: 100%;
	max-width: none !important;
}

.wsr-home-research-panel h2 {
	margin: 0 0 6px;
	font-family: var(--wp--preset--font-family--body);
	font-size: 0.875rem;
	font-weight: 700;
	letter-spacing: 0.04em;
	line-height: 1.4;
	text-transform: uppercase;
}

.wsr-home-research-panel p {
	margin: 0;
	color: #595954;
	font-size: 0.8125rem;
	line-height: 1.55;
}

.wsr-home-research-panel .wsr-home-text-link {
	margin-top: 4px;
	font-size: 0.75rem;
}

.wsr-home-featured {
	width: 100%;
	margin-top: 0;
}

.wsr-home-featured-header {
	gap: 16px 24px;
	margin-bottom: 24px;
}

.wsr-home-featured-header :where(h2, p) {
	margin: 0;
}

.wsr-home-featured-grid .wc-block-product-template,
.wsr-home-featured-grid ul.wc-block-product-template {
	width: 100%;
	grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
}

.wsr-home-catalog-section {
	padding-bottom: 32px;
}

.wsr-home-browse-section {
	width: calc(100% - clamp(32px, 8vw, 64px));
	max-width: 1200px !important;
	margin-inline: auto;
	padding-top: 32px;
	border-top: 1px solid #ded9cf;
}

.wsr-home-research-panel p:last-child,
.wsr-home-card p:last-child,
.wsr-home-shipping-card p:last-child {
	margin-bottom: 0;
}

.wsr-home-text-link a,
.wsr-home-card-action a {
	display: inline-flex;
	align-items: center;
	min-height: 44px;
	font-weight: 700;
	text-underline-offset: 4px;
}

.wsr-home-card-grid,
.wsr-home-shipping-grid {
	display: grid !important;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 24px;
	align-items: stretch;
}

.wsr-home-card,
.wsr-home-shipping-card {
	display: flex;
	flex-direction: column;
	padding: 24px;
	border: 1px solid #ded9cf;
	border-radius: 10px;
	background: #ffffff;
}

.wsr-home-card h3,
.wsr-home-shipping-card h3 {
	margin-bottom: 12px;
}

.wsr-home-card-action {
	margin-top: auto;
	padding-top: 12px;
}

.wsr-home-commitments {
	padding-block: clamp(48px, 7vw, 80px);
	border-block: 1px solid #d6ae4f;
	background: #1c1c1a;
	color: #faf8f2;
}

.wsr-home-commitments-inner {
	width: calc(100% - clamp(32px, 8vw, 64px));
	max-width: 1200px !important;
	margin-inline: auto;
}

.wsr-home-commitments-header {
	max-width: 760px;
	margin: 0 auto 32px;
	text-align: center;
}

.wsr-home-commitments-eyebrow {
	margin: 0 0 12px;
	color: #d6ae4f !important;
	font-size: 0.875rem;
	font-weight: 700;
	letter-spacing: 0.12em;
	text-transform: uppercase;
}

.wsr-home-commitments h2,
.wsr-home-commitments h3,
.wsr-home-commitments p {
	color: #faf8f2;
}

.wsr-home-commitments-header h2 {
	margin-bottom: 16px;
}

.wsr-home-commitments-lead {
	max-width: 62ch;
	margin: 0 auto;
	color: #ded9cf !important;
}

.wsr-home-commitment-grid {
	display: grid !important;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 20px;
	align-items: stretch;
}

.wsr-home-commitment-card {
	display: flex;
	flex-direction: column;
	min-width: 0;
	padding: 28px;
	border: 1px solid #6b4a16;
	border-radius: 10px;
	background: #111111;
}

.wsr-home-commitment-icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 52px;
	height: 52px;
	border: 1px solid #d6ae4f;
	border-radius: 50%;
	color: #d6ae4f;
}

.wsr-home-commitment-icon svg {
	width: 28px;
	height: 28px;
	fill: none;
	stroke: currentColor;
	stroke-linecap: round;
	stroke-linejoin: round;
	stroke-width: 1.7;
}

.wsr-home-commitment-card h3 {
	margin: 24px 0 12px;
}

.wsr-home-commitment-card > p:not(.wsr-home-commitment-link) {
	color: #ded9cf;
}

.wsr-home-commitment-link {
	margin: auto 0 0;
	padding-top: 20px;
}

.wsr-home-commitment-link a {
	display: inline-flex;
	align-items: center;
	min-height: 44px;
	color: #d6ae4f;
	font-weight: 700;
	text-underline-offset: 4px;
}

.wsr-home-shipping-note {
	margin-top: 24px;
	padding: 24px;
	border-left: 4px solid #6b4a16;
	background: #ffffff;
}

.wsr-home-story {
	position: relative;
	display: grid;
	min-height: clamp(480px, 56vw, 720px);
	overflow: hidden;
	background: #111111;
	isolation: isolate;
}

.wsr-home-story::after {
	position: absolute;
	z-index: -1;
	inset: 0;
	background:
		linear-gradient(
			90deg,
			rgba(17, 17, 17, 0.9) 0%,
			rgba(17, 17, 17, 0.72) 46%,
			rgba(17, 17, 17, 0.28) 100%
		),
		linear-gradient(0deg, rgba(17, 17, 17, 0.28), rgba(17, 17, 17, 0.08));
	content: "";
	pointer-events: none;
}

.wsr-home-story-visual {
	position: absolute;
	z-index: -2;
	inset: 0;
	width: 100%;
	height: 100%;
	margin: 0;
}

.wsr-home-story-visual img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center;
}

.wsr-home-story-content {
	display: flex;
	flex-direction: column;
	justify-content: center;
	width: 100%;
	min-height: inherit;
	margin-inline: auto;
	padding-block: clamp(64px, 10vw, 120px);
}

.wsr-home-story-content > * {
	width: min(100%, 720px);
	margin-left: 0;
}

.wsr-home-story .wsr-home-eyebrow {
	color: #d6ae4f;
}

.wsr-home-story h2,
.wsr-home-story p {
	color: #faf8f2;
}

.wsr-home-story h2 {
	max-width: 17ch;
}

.wsr-home-story-content > p:not(.wsr-home-eyebrow, .wsr-home-text-link) {
	font-size: clamp(1rem, 0.94rem + 0.3vw, 1.1875rem);
	line-height: 1.7;
}

.wsr-home-story .wsr-home-text-link a {
	color: #d6ae4f;
}

.wsr-home-support {
	padding: clamp(32px, 6vw, 64px);
	border: 1px solid #d6ae4f;
	border-radius: 10px;
	background: #111111;
	color: #faf8f2;
}

.wsr-home-support h2,
.wsr-home-support p,
.wsr-home-support a:not(.wp-block-button__link) {
	color: #faf8f2;
}

.wsr-home-support a:not(.wp-block-button__link) {
	text-underline-offset: 4px;
}

.wsr-catalog-main {
	margin: 0;
	padding-block: 32px 80px;
}

.wsr-catalog-breadcrumbs {
	margin-bottom: 24px;
}

.wsr-catalog-intro {
	margin-bottom: 32px;
	padding: clamp(22px, 3vw, 36px);
	border: 1px solid #d6ae4f;
	border-radius: 10px;
	background: #faf8f2;
	color: #111111;
}

.wsr-catalog-intro-grid {
	display: grid !important;
	grid-template-columns: minmax(0, 1.35fr) minmax(220px, 0.65fr);
	gap: clamp(24px, 4vw, 48px);
	align-items: center;
}

.wsr-catalog-intro-copy,
.wsr-catalog-highlights {
	min-width: 0;
}

.wsr-catalog-eyebrow {
	margin: 0 0 12px;
	color: #6b4a16;
	font-size: 0.75rem;
	font-weight: 800;
	letter-spacing: 0.14em;
	line-height: 1.4;
	text-transform: uppercase;
}

.wsr-catalog-intro .wsr-catalog-title {
	max-width: 20ch;
	margin: 0 0 16px;
	color: #111111;
	font-size: clamp(2.125rem, 4vw, 3.5rem);
	line-height: 1.05;
}

.wsr-catalog-intro .term-description,
.wsr-catalog-intro .taxonomy-description {
	max-width: 72ch;
	color: #595954;
}

.wsr-catalog-scope {
	max-width: 52ch;
	margin: 0;
	color: #1c1c1a;
	font-size: clamp(1rem, 1.5vw, 1.125rem);
	line-height: 1.7;
}

.wsr-catalog-highlights {
	display: grid;
	gap: 14px;
	padding-left: clamp(20px, 3vw, 32px);
	border-left: 1px solid #ded9cf;
}

.wsr-catalog-highlight {
	display: flex;
	gap: 10px;
	align-items: center;
	margin: 0;
	color: #1c1c1a;
	font-size: 0.9375rem;
	font-weight: 700;
	line-height: 1.4;
}

.wsr-catalog-highlight::before {
	flex: 0 0 auto;
	width: 7px;
	height: 7px;
	border-radius: 999px;
	background: #d6ae4f;
	content: "";
}

.wsr-catalog-research-use {
	margin: 20px 0 0;
	padding: 14px 0 0;
	border-top: 1px solid #ded9cf;
	color: #1c1c1a;
	font-size: 0.875rem;
	line-height: 1.55;
}

.wsr-catalog-research-use strong {
	color: #6b4a16;
}

.wsr-catalog-controls {
	display: flex !important;
	flex-wrap: wrap !important;
	justify-content: space-between;
	gap: 16px 24px;
	align-items: end;
	margin-block: 32px 24px;
}

.wsr-catalog-controls .wc-block-product-results-count,
.wsr-catalog-controls .wc-block-catalog-sorting {
	margin: 0;
}

.wsr-catalog-controls .woocommerce-result-count {
	margin: 0;
	font-weight: 700;
}

.wsr-catalog-controls .woocommerce-ordering {
	display: grid;
	gap: 4px;
	margin: 0;
}

.wsr-catalog-controls .woocommerce-ordering label {
	font-size: 0.875rem;
	font-weight: 700;
}

.wsr-catalog-controls .woocommerce-ordering select {
	max-width: 100%;
	padding: 8px 36px 8px 10px;
	border: 1px solid #595954;
	border-radius: 6px;
	background: #ffffff;
	color: #111111;
	font: inherit;
}

.wsr-catalog-grid .wc-block-product-template,
.wsr-catalog-grid ul.wc-block-product-template {
	display: grid !important;
	grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
	gap: 24px !important;
}

.wsr-catalog-grid .wc-block-product {
	display: flex;
	flex-direction: column;
	min-width: 0;
	padding: 16px;
	border: 1px solid #ded9cf;
	border-radius: 10px;
	background: #ffffff;
}

.wsr-catalog-grid .wc-block-components-product-image {
	margin-bottom: 16px;
	overflow: hidden;
	border-radius: 6px;
	background: #faf8f2;
}

.wsr-catalog-grid .wc-block-components-product-image img {
	width: 100%;
	aspect-ratio: 1 / 1;
	object-fit: contain;
}

.wsr-catalog-grid .wp-block-post-title {
	margin: 16px 0 8px;
	font-size: 1.125rem;
	line-height: 1.4;
}

.wsr-catalog-grid .wp-block-post-title a {
	color: #111111;
	text-decoration-thickness: 1px;
	text-underline-offset: 4px;
}

.wsr-catalog-grid .wc-block-components-product-price {
	margin-bottom: 16px;
	color: #111111;
	font-weight: 700;
}

.wsr-catalog-stock-badge {
	display: inline-flex;
	align-self: flex-start;
	margin: 0;
	padding: 8px 12px;
	border-radius: 4px;
	color: #ffffff;
	font-size: 0.875rem;
	font-weight: 700;
	line-height: 1.3;
}

.wsr-catalog-stock-badge--out {
	background: #a12a2a;
}

.wsr-catalog-stock-badge--backorder {
	background: #7a5400;
}

.wsr-catalog-view-product {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	margin-top: auto;
	min-height: 44px;
	padding: 10px 16px;
	border: 1px solid #111111;
	border-radius: 6px;
	background: #d6ae4f;
	color: #111111;
	font-size: 0.875rem;
	font-weight: 700;
	text-decoration: none;
}

.wsr-catalog-view-product:hover,
.wsr-catalog-view-product:focus-visible {
	background: #faf8f2;
}

.wsr-catalog-grid .wp-block-query-pagination {
	margin-top: 40px;
}

.wsr-catalog-grid .wp-block-query-pagination a,
.wsr-catalog-grid .wp-block-query-pagination .page-numbers {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 44px;
	min-height: 44px;
	padding: 8px;
}

.wsr-catalog-no-results {
	padding: 32px;
	border: 1px solid #ded9cf;
	border-radius: 10px;
	background: #ffffff;
	text-align: center;
}

.wsr-catalog-no-results h2,
.wsr-catalog-no-results p {
	margin-inline: auto;
}

.wsr-catalog-support {
	margin-top: 64px;
	padding: clamp(24px, 5vw, 48px);
	border: 1px solid #d6ae4f;
	border-radius: 10px;
	background: #1c1c1a;
	color: #faf8f2;
}

.wsr-catalog-support h2,
.wsr-catalog-support p {
	color: #faf8f2;
}

.wsr-catalog-support .wp-block-button__link {
	min-height: 44px;
}

.wsr-product-main,
.wsr-commerce-cart,
.wsr-mix-page {
	padding-block: clamp(24px, 5vw, 72px);
}

.wsr-product-summary {
	align-items: start !important;
	gap: clamp(28px, 5vw, 64px) !important;
}

.wsr-product-media,
.wsr-product-purchase {
	min-width: 0;
}

.wsr-product-purchase {
	background: #ffffff;
	border: 1px solid #ded9cf;
	border-radius: 10px;
	padding: clamp(20px, 3vw, 32px);
}

.wsr-product-research-use,
.wsr-product-info,
.wsr-product-quality,
.wsr-product-order-info,
.wsr-product-support,
.wsr-cart-context,
.wsr-mix-context,
.wsr-mix-thresholds,
.wsr-mix-support {
	border: 1px solid #ded9cf;
	border-radius: 10px;
	margin-top: clamp(24px, 5vw, 48px);
	padding: clamp(20px, 4vw, 32px);
}

.wsr-product-research-use,
.wsr-cart-context,
.wsr-mix-context {
	background: #1c1c1a;
	color: #faf8f2;
}

.wsr-product-research-use :where(h2, p, a),
.wsr-cart-context :where(h2, p, a),
.wsr-mix-context :where(h2, p, a) {
	color: #faf8f2;
}

.wsr-product-info-grid,
.wsr-product-order-grid {
	display: grid;
	gap: 24px;
	grid-template-columns: repeat(2, minmax(0, 1fr));
}

.wsr-product-purchase :where(input, select, button),
.wsr-commerce-cart :where(input, select, button) {
	max-width: 100%;
}

.wsr-product-purchase .wp-block-woocommerce-product-meta {
	border-top: 1px solid #ded9cf;
	margin-top: 24px;
	padding-top: 16px;
}

.wsr-product-actions,
.wsr-cart-policy-links,
.wsr-mix-policy-links {
	display: flex;
	flex-wrap: wrap;
	gap: 12px 20px;
}

.wsr-product-actions a,
.wsr-cart-policy-links a,
.wsr-mix-policy-links a {
	display: inline-flex;
	align-items: center;
	min-height: 44px;
}

.wsr-cart-intro,
.wsr-mix-intro {
	font-size: clamp(1rem, 1.5vw, 1.125rem);
}

.wsr-commerce-cart > .wp-block-post-content,
.wsr-commerce-cart > .wp-block-wsr-cart-pricing-summary,
.wsr-commerce-cart > .wsr-cart-context {
	margin-top: 32px;
}

.wsr-mix-thresholds table {
	border-collapse: collapse;
	width: 100%;
}

.wsr-mix-thresholds :where(th, td) {
	border-bottom: 1px solid #ded9cf;
	padding: 12px 8px;
	text-align: left;
}

@media (forced-colors: active) {
	.wsr-catalog-stock-badge {
		border: 1px solid currentColor;
	}
}

@media (max-width: 1040px) {
	.wsr-header-inner {
		grid-template-areas:
			"brand utilities"
			"nav nav";
		grid-template-columns: minmax(180px, 0.65fr) minmax(360px, 1.35fr);
	}

	.wsr-header-nav {
		justify-self: start;
	}

	.wsr-header-utilities {
		justify-content: stretch;
	}

	.wsr-footer-columns {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.wsr-home-commitment-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.wsr-catalog-grid .wc-block-product-template,
	.wsr-catalog-grid ul.wc-block-product-template {
		grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
	}
}

@media (max-width: 781px) {
	.wsr-header-inner {
		grid-template-areas:
			"brand brand"
			"nav nav"
			"utilities utilities";
		grid-template-columns: minmax(0, 1fr) auto;
	}

	.wsr-header-nav {
		justify-self: start;
	}

	.wsr-header-utilities {
		justify-content: stretch;
	}

	.wsr-home-hero-grid {
		grid-template-columns: minmax(0, 1fr);
	}

	.wsr-home-hero-visual img {
		height: 100%;
		min-height: 0;
		object-position: 60% center;
	}

	.wsr-home-hero::before {
		background: linear-gradient(
			180deg,
			rgba(17, 17, 17, 0.94) 0%,
			rgba(17, 17, 17, 0.88) 58%,
			rgba(17, 17, 17, 0.52) 100%
		);
	}

	.wsr-home-story::after {
		background:
			linear-gradient(
				180deg,
				rgba(17, 17, 17, 0.88) 0%,
				rgba(17, 17, 17, 0.68) 64%,
				rgba(17, 17, 17, 0.42) 100%
			),
			linear-gradient(0deg, rgba(17, 17, 17, 0.2), rgba(17, 17, 17, 0.08));
	}

	.wsr-home-card-grid,
	.wsr-home-shipping-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.wsr-catalog-main {
		padding-block: 24px 64px;
	}

	.wsr-catalog-intro-grid {
		grid-template-columns: minmax(0, 1fr);
		gap: 20px;
	}

	.wsr-catalog-grid .wc-block-product-template,
	.wsr-catalog-grid ul.wc-block-product-template {
		grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
	}

	.wsr-product-summary {
		flex-direction: column;
	}

	.wsr-product-summary > .wp-block-column {
		flex-basis: auto !important;
		width: 100%;
	}

	.wsr-product-info-grid,
	.wsr-product-order-grid {
		grid-template-columns: minmax(0, 1fr);
	}
}

@media (max-width: 599px) {
	.wsr-header-inner {
		grid-template-areas:
			"brand nav"
			"utilities utilities";
	}

	.wsr-header-nav {
		justify-self: end;
	}

	.wsr-header-nav .wp-block-navigation__responsive-container:not(.is-menu-open) {
		display: none !important;
	}

	.wsr-header-nav .wp-block-navigation__responsive-container-open {
		display: flex !important;
	}

	.wsr-header-nav .wp-block-navigation__responsive-container.is-menu-open {
		display: flex !important;
		padding: 24px;
		background: #111111 !important;
		color: #faf8f2 !important;
	}

	.wsr-header-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content,
	.wsr-header-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container {
		align-items: stretch;
		width: 100%;
	}

	.wsr-header-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container {
		width: 100% !important;
		margin: 4px 0 12px !important;
	}

}

@media (max-width: 600px) {
	.wsr-announcement-inner {
		gap: 0 12px;
	}

	.wsr-header-utilities {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.wsr-header-search {
		grid-column: 1 / -1;
		width: 100%;
	}

	.wsr-header-utility-link a {
		width: 100%;
	}

	.wsr-footer-columns {
		grid-template-columns: minmax(0, 1fr);
		gap: 40px;
	}

	.wsr-home-card-grid,
	.wsr-home-shipping-grid,
	.wsr-home-commitment-grid {
		grid-template-columns: minmax(0, 1fr);
	}

	.wsr-home-actions {
		display: grid;
		grid-template-columns: minmax(0, 1fr);
	}

	.wsr-home-actions .wp-block-button,
	.wsr-home-actions .wp-block-button__link {
		width: 100%;
	}

	.wsr-catalog-intro {
		padding: 20px;
	}

	.wsr-catalog-highlights {
		padding: 20px 0 0;
		border-top: 1px solid #ded9cf;
		border-left: 0;
	}

	.wsr-catalog-controls,
	.wsr-catalog-controls .wc-block-product-results-count,
	.wsr-catalog-controls .wc-block-catalog-sorting,
	.wsr-catalog-controls .woocommerce-ordering,
	.wsr-catalog-controls .woocommerce-ordering select {
		width: 100%;
		max-width: 100%;
	}
}

@media (max-width: 480px) {
	.wsr-commerce-cart .wc-block-cart-items {
		width: 100% !important;
		max-width: 100% !important;
		table-layout: fixed;
	}

	.wsr-commerce-cart .wc-block-cart-items__row,
	.wsr-commerce-cart .wc-block-cart-item__product,
	.wsr-commerce-cart .wc-block-cart-item__total {
		min-width: 0 !important;
	}

	.wsr-commerce-cart .wc-block-cart-item__quantity {
		max-width: 100%;
		padding-right: 0 !important;
	}

	.wsr-commerce-cart .wc-block-cart-item__remove-link {
		margin-left: 0 !important;
	}

	.wsr-commerce-cart .wc-block-components-product-name {
		overflow-wrap: anywhere;
	}

	.wsr-catalog-grid .wc-block-product-template,
	.wsr-catalog-grid ul.wc-block-product-template {
		grid-template-columns: minmax(0, 1fr) !important;
	}
}

/* Task 10.19 — informational, policy, FAQ, search, and system surfaces. */
.wsr-content-page,
.wsr-legal-page,
.wsr-system-page,
.wsr-search-page {
	padding-block: clamp(32px, 6vw, 80px);
}

.wsr-content-page > *,
.wsr-legal-page > *,
.wsr-system-page > *,
.wsr-search-page > * {
	min-width: 0;
}

.wsr-breadcrumbs {
	margin-bottom: 24px;
	font-size: 0.875rem;
}

.wsr-breadcrumbs ol {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 8px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.wsr-content-page .wp-block-post-title,
.wsr-legal-page .wp-block-post-title {
	max-width: 20ch;
}

.wsr-content-page .wp-block-post-content,
.wsr-legal-page .wp-block-post-content {
	width: 100%;
}

.wsr-content-page :where(section, .wp-block-group),
.wsr-legal-page :where(section, .wp-block-group) {
	min-width: 0;
}

.wsr-content-page :where(table, .wp-block-table),
.wsr-legal-page :where(table, .wp-block-table) {
	max-width: 100%;
	overflow-x: auto;
}

.wsr-content-page :where(th, td),
.wsr-legal-page :where(th, td) {
	padding: 10px 12px;
	border: 1px solid #ded9cf;
	text-align: left;
	vertical-align: top;
}

.wsr-content-page details,
.wsr-faq details {
	margin-block: 12px;
	border: 1px solid #ded9cf;
	border-radius: 6px;
	background: #ffffff;
}

.wsr-content-page summary,
.wsr-faq summary {
	display: flex;
	align-items: center;
	min-height: 52px;
	padding: 12px 16px;
	cursor: pointer;
	font-weight: 700;
}

.wsr-content-page details > :not(summary),
.wsr-faq details > :not(summary) {
	margin-inline: 16px;
}

.wsr-content-page details > :last-child,
.wsr-faq details > :last-child {
	margin-bottom: 16px;
}

.wsr-legal-page {
	--wp--style--global--content-size: 760px;
}

.wsr-legal-page .wsr-policy-status {
	padding: 16px;
	border-left: 4px solid #315e7d;
	background: #ffffff;
}

.wsr-search-page .wp-block-search {
	margin-block: 24px 40px;
}

.wsr-search-page .wp-block-post-template {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 24px;
	padding: 0;
}

.wsr-search-page .wp-block-post-template > li {
	min-width: 0;
	padding: 24px;
	border: 1px solid #ded9cf;
	border-radius: 10px;
	background: #ffffff;
}

.wsr-search-page .wp-block-query-pagination {
	margin-top: 32px;
}

.wsr-system-card {
	max-width: 720px;
	padding: clamp(24px, 5vw, 48px);
	border: 1px solid #ded9cf;
	border-radius: 10px;
	background: #ffffff;
}

.wsr-system-actions {
	display: flex;
	flex-wrap: wrap;
	gap: 12px 20px;
}

.wsr-system-actions a {
	display: inline-flex;
	align-items: center;
	min-height: 44px;
}

@media (max-width: 600px) {
	.wsr-search-page .wp-block-post-template {
		grid-template-columns: minmax(0, 1fr);
	}

	.wsr-system-actions {
		display: grid;
		grid-template-columns: minmax(0, 1fr);
	}
}

@media (max-width: 320px) {
	.wsr-content-page,
	.wsr-legal-page,
	.wsr-system-page,
	.wsr-search-page {
		padding-block: 24px 48px;
	}

	.wsr-content-page :where(th, td),
	.wsr-legal-page :where(th, td) {
		padding: 8px;
	}
}

@media (forced-colors: active) {
	.wsr-content-page details,
	.wsr-faq details,
	.wsr-search-page .wp-block-post-template > li,
	.wsr-system-card,
	.wsr-legal-page .wsr-policy-status {
		border: 1px solid currentColor;
	}
}

@media print {
	.wsr-announcement-shell,
	.wsr-header-inner,
	.wsr-footer-inner,
	.wsr-breadcrumbs,
	.wsr-system-actions,
	.wsr-search-page .wp-block-search,
	.wsr-legal-page .wp-block-buttons {
		display: none !important;
	}

	body,
	.wsr-legal-page,
	.wsr-legal-page .wp-block-post-content {
		background: #ffffff !important;
		color: #111111 !important;
	}

	.wsr-legal-page a {
		color: #111111 !important;
		text-decoration: underline;
	}
}


/* Desktop viewport containment — keep shared full-width blocks inside the browser canvas. */
html,
body {
	width: 100%;
	max-width: 100%;
	overflow-x: clip;
}

.wp-site-blocks {
	width: 100%;
	max-width: 100%;
	overflow-x: clip;
}

:where(
	.wp-site-blocks,
	.wp-site-blocks > *,
	main,
	header,
	footer,
	.wp-block-group,
	.wp-block-columns,
	.wp-block-column
) {
	min-width: 0;
}

:where(
	.alignfull,
	.wsr-announcement-shell,
	.wsr-header-shell,
	.wsr-footer-shell
) {
	max-width: 100vw;
}

:where(form, fieldset, iframe, table, video, img, svg) {
	max-width: 100%;
}

@supports not (overflow: clip) {
	html,
	body,
	.wp-site-blocks {
		overflow-x: hidden;
	}
}

@media (min-width: 1041px) and (max-width: 1180px) {
	.wsr-header-inner {
		grid-template-columns: minmax(150px, 0.7fr) minmax(330px, 1.35fr) minmax(300px, 1fr);
		gap: 16px;
	}
}


/* Header brand name — slightly larger for clearer desktop recognition. */
.wsr-header-title {
	font-size: clamp(1.125rem, 1rem + 0.25vw, 1.25rem);
	line-height: 1.25;
}


/* Header product search — wider field with compact icon action. */
.wsr-header-search button {
	position: relative;
	width: 46px;
	min-width: 46px;
	padding: 0;
	overflow: hidden;
	white-space: nowrap;
	text-indent: -9999px;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23111111' stroke-width='2.25' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Cpath d='m20 20-4-4'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: center;
	background-size: 20px 20px;
}

@media (min-width: 1181px) {
	.wsr-header-inner {
		grid-template-columns: minmax(180px, 0.65fr) minmax(350px, 1.25fr) minmax(430px, 1.25fr);
	}
}


/* Header brand lockup — 1.5x name size on one line. */
.wsr-header-brand {
	flex-wrap: nowrap !important;
}

.wsr-header-title {
	font-size: 1.3125rem !important;
	line-height: 1.15;
	white-space: nowrap;
}

@media (min-width: 1280px) {
	.wsr-header-inner {
		grid-template-columns: minmax(350px, 0.95fr) minmax(360px, 1fr) minmax(430px, 1.15fr);
	}
}

@media (min-width: 782px) and (max-width: 1279px) {
	.wsr-header-inner {
		grid-template-areas:
			"brand brand"
			"nav utilities";
		grid-template-columns: minmax(240px, 0.75fr) minmax(430px, 1.25fr);
	}
}

@media (max-width: 781px) {
	.wsr-header-title {
		font-size: clamp(1.125rem, 3vw, 1.3125rem) !important;
	}
}

@media (max-width: 480px) {
	.wsr-header-logo {
		width: 68px !important;
	}

	.wsr-header-title {
		font-size: 1rem !important;
	}
}


/* Override the WordPress preset-size utility on the site title. */
.wsr-header-brand .wsr-header-title.has-small-font-size,
.wsr-header-brand .wp-block-site-title.wsr-header-title {
	font-size: 1.3125rem !important;
}


/* Keep every mobile navigation level readable on the dark overlay. */
@media (max-width: 599px) {
	.wsr-header-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container {
		border-color: #6b4a16 !important;
		background: #1c1c1a !important;
	}

	.wsr-header-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content,
	.wsr-header-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-icon,
	.wsr-header-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-close {
		color: #faf8f2 !important;
	}

	.wsr-header-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content:hover,
	.wsr-header-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content:focus-visible {
		background: #d6ae4f !important;
		color: #111111 !important;
	}
}
