/*
 * Storefront and inner-page layout refinements.
 *
 * This file intentionally avoids the single-product detail layout. Product
 * detail presentation is maintained separately in product-layout.css.
 */

:root {
	--sfs-content-narrow: 800px;
	--sfs-layout-gap: clamp(1rem, 2.2vw, 1.75rem);
	--sfs-section-space: clamp(3.25rem, 6vw, 5.75rem);
}

/* Keep every site-owned shell on the same desktop measure and mobile gutter. */
.site-shell,
.woo-shell {
	width: min(calc(100% - 2rem), var(--sfs-shell));
	margin-inline: auto;
}

.site-shell--narrow {
	max-width: var(--sfs-content-narrow);
}

/* Inner pages already contain their own hero and content spacing. */
.journal-main,
.page-main,
.search-main,
.not-found-main {
	padding-block: 0;
}

.single-main {
	padding-block: clamp(2.5rem, 5vw, 4.5rem);
}

.page-hero {
	padding-block: clamp(2.4rem, 5vw, 4.5rem);
}

.page-hero .eyebrow {
	margin-bottom: 0.55rem;
}

.page-hero h1 {
	max-width: 880px;
	margin-bottom: 0.35em;
	font-size: clamp(2.2rem, 5vw, 3.85rem);
	text-wrap: balance;
}

.page-hero p:last-child,
.page-hero__description > :last-child,
.page-hero--learn__copy > :last-child {
	margin-bottom: 0;
}

.page-hero__description,
.page-hero--learn__copy {
	font-size: clamp(1rem, 1.6vw, 1.1rem);
}

.page-hero__search {
	margin-top: 1.25rem;
}

.topic-pills {
	gap: 0.5rem;
	margin-top: 1.15rem;
}

.topic-pills a {
	padding: 0.48rem 0.72rem;
}

/* Standard pages, policies, search, and the learning library. */
.standard-page > .entry-content,
.page-template-page-delivery .entry-content {
	padding-block: clamp(2.25rem, 5vw, 4.75rem);
}

.standard-page__featured {
	margin-top: clamp(1.5rem, 3vw, 2.5rem);
}

.standard-page--commerce .site-shell--narrow {
	max-width: var(--sfs-shell);
}

.standard-page--commerce .entry-content {
	font-size: 1rem;
}

.standard-page--commerce .entry-content > *,
.standard-page--workspace .entry-content > * {
	max-width: none;
}

.standard-page--workspace .page-hero {
	padding-block: clamp(1.5rem, 3vw, 2.5rem);
}

.standard-page--workspace .page-hero h1 {
	font-size: clamp(1.8rem, 3.5vw, 2.8rem);
}

.entry-content > .alignfull {
	width: 100%;
	max-width: 100%;
	margin-inline: 0;
}

.woocommerce-account:not(.logged-in) .entry-content > .woocommerce {
	max-width: 850px;
	margin-inline: auto;
}

.woocommerce-account:not(.logged-in) .woocommerce > form {
	max-width: 520px;
	margin-inline: auto;
}

.learn-library.section,
.journal-main > .site-shell.section,
.search-main > .site-shell.section {
	padding-block: var(--sfs-section-space);
}

.learn-library .section-heading {
	margin-bottom: 1.8rem;
}

.article-grid,
.article-grid--archive {
	gap: var(--sfs-layout-gap);
}

.article-card__content {
	padding: clamp(1rem, 2vw, 1.25rem);
}

.article-card h3 {
	font-size: clamp(1.22rem, 2vw, 1.65rem);
	line-height: 1.22;
}

.article-card--featured {
	margin-bottom: clamp(2.25rem, 5vw, 3.5rem);
}

.article-card--featured .article-card__image,
.article-card--featured .article-card__image img,
.article-card--featured .article-card__placeholder {
	min-height: 340px;
}

.article-card--featured .article-card__content {
	padding: clamp(1.5rem, 4vw, 3rem);
}

.article-card--featured h3 {
	font-size: clamp(1.8rem, 3.5vw, 2.75rem);
}

.single-article__header {
	margin-bottom: clamp(1.5rem, 3vw, 2.2rem);
}

.single-article__header h1 {
	font-size: clamp(2.25rem, 5.5vw, 4.25rem);
	text-wrap: balance;
}

.search-results {
	gap: 0;
	overflow: hidden;
	border: 1px solid var(--sfs-border);
	border-radius: var(--sfs-radius);
	background: var(--sfs-surface);
}

.search-results article {
	gap: clamp(1rem, 3vw, 1.75rem);
	border-bottom: 1px solid var(--sfs-border);
	padding: clamp(1rem, 2.5vw, 1.4rem);
}

.search-results article:last-child {
	border-bottom: 0;
}

.search-results h2 {
	margin-bottom: 0.4rem;
	font-size: clamp(1.35rem, 2.5vw, 1.85rem);
}

.search-result__type {
	margin-bottom: 0.35rem;
}

.search-results article p:last-child {
	margin-bottom: 0;
}

.page-template-page-delivery .section {
	padding-block: clamp(2.25rem, 5vw, 4.25rem) 0;
}

.page-template-page-delivery .section .sfs-delivery,
.delivery-section .sfs-delivery {
	margin-bottom: 0;
}

/* Home sections retain their character with a calmer vertical rhythm. */
.home-hero {
	min-height: min(680px, calc(100svh - 110px));
}

.home-hero__inner {
	gap: clamp(2rem, 5vw, 4rem);
	padding-block: clamp(4rem, 8vw, 6rem);
}

.home-hero__content h1 {
	font-size: clamp(2.75rem, 5.5vw, 4.55rem);
	text-wrap: balance;
}

.home-main .section {
	padding-block: var(--sfs-section-space);
}

.home-main .delivery-section {
	padding-block: clamp(2.5rem, 5vw, 4rem);
}

.home-main .section-heading {
	margin-bottom: clamp(1.7rem, 3vw, 2.3rem);
}

.home-main .intention-card {
	min-height: clamp(310px, 32vw, 370px);
}

.home-main .values-section {
	padding-block: clamp(4rem, 8vw, 6.5rem);
}

/* Product listing cards: four useful columns on desktop and two on mobile. */
.home-main .product-grid,
.shop-main ul.products {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: clamp(0.8rem, 1.5vw, 1.15rem);
	margin: 0;
	padding: 0;
}

.home-main .product-card,
.shop-main ul.products li.product:not(.product-category) {
	display: flex;
	min-width: 0;
	flex-direction: column;
	border-radius: 14px;
}

.home-main .product-card__image,
.shop-main ul.products li.product:not(.product-category) .woocommerce-LoopProduct-link {
	min-width: 0;
	border-radius: 13px 13px 0 0;
	background: var(--sfs-white);
}

.home-main .product-card__image img,
.shop-main ul.products li.product:not(.product-category) a img {
	width: 100%;
	aspect-ratio: 1 / 1;
	height: auto;
	margin: 0;
	background: var(--sfs-white);
	object-fit: contain;
	padding: clamp(0.45rem, 1vw, 0.8rem);
}

.home-main .product-card__placeholder {
	aspect-ratio: 1 / 1;
}

.home-main .product-card__content {
	flex: 1;
	gap: 0.7rem;
	padding: 0.85rem;
}

.home-main .product-card h3,
.shop-main ul.products li.product:not(.product-category) .woocommerce-loop-product__title {
	display: -webkit-box;
	overflow: hidden;
	min-height: 2.5em;
	margin-top: 0;
	font-size: clamp(0.92rem, 1.4vw, 1.08rem);
	line-height: 1.25;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 2;
}

.shop-main ul.products li.product:not(.product-category) .woocommerce-LoopProduct-link {
	display: flex;
	flex: 1;
	flex-direction: column;
}

.shop-main ul.products li.product:not(.product-category) .woocommerce-loop-product__title,
.shop-main ul.products li.product:not(.product-category) .price,
.shop-main ul.products li.product:not(.product-category) .button {
	margin-right: 0.85rem;
	margin-left: 0.85rem;
}

.shop-main ul.products li.product:not(.product-category) .price {
	margin-top: auto;
	margin-bottom: 0.7rem;
	font-size: 0.92rem !important;
}

.shop-main ul.products li.product:not(.product-category) .button {
	width: calc(100% - 1.7rem);
	min-height: 40px;
	margin-top: 0;
	margin-bottom: 0.85rem;
	padding: 0.68rem 0.75rem;
	font-size: 0.74rem;
}

.shop-main span.onsale {
	top: 0.55rem;
	left: 0.55rem;
	padding: 0.45rem 0.55rem;
	font-size: 0.58rem;
}

/* WooCommerce archive frame and toolbar. */
.shop-main {
	padding-block: clamp(1.5rem, 3.5vw, 3rem) clamp(3rem, 6vw, 5.5rem);
}

.shop-main .woocommerce-breadcrumb {
	margin-bottom: 1rem;
}

.shop-main .page-title {
	margin-bottom: clamp(1.25rem, 3vw, 2rem);
	font-size: clamp(2.1rem, 4.5vw, 3.35rem);
	text-wrap: balance;
}

.shop-main .woocommerce-notices-wrapper:not(:empty) {
	margin-bottom: 1.25rem;
}

.shop-main .woocommerce-result-count,
.shop-main .woocommerce-ordering {
	margin: 0 0 1.25rem;
}

.shop-main .woocommerce-result-count {
	float: left;
	padding-top: 0.65rem;
	color: var(--sfs-muted);
	font-size: 0.85rem;
}

.shop-main .woocommerce-ordering {
	float: right;
	max-width: min(100%, 300px);
}

.shop-main .woocommerce-ordering select {
	min-width: min(260px, 100%);
	min-height: 42px;
	padding-block: 0.5rem;
}

.shop-main ul.products {
	clear: both;
}

.shop-main .woocommerce-pagination {
	clear: both;
	padding-top: clamp(1.75rem, 4vw, 3rem);
}

/* Category directory uses the same compact card rhythm as the catalog. */
.shop-main .sfs-shop-categories {
	margin-bottom: clamp(1.75rem, 4vw, 3rem);
	border-radius: 22px;
	padding: clamp(1.15rem, 2.5vw, 1.8rem);
}

.shop-main .sfs-shop-categories__header {
	gap: 1rem;
	margin-bottom: clamp(1rem, 2.5vw, 1.5rem);
}

.shop-main .sfs-shop-categories__header h2 {
	font-size: clamp(1.65rem, 3vw, 2.35rem);
}

.shop-main .sfs-category-grid {
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 0.85rem;
}

.shop-main .sfs-category-card {
	border-radius: 14px;
}

.shop-main .sfs-category-card__media {
	aspect-ratio: 2 / 1;
}

.shop-main .sfs-category-card__image {
	object-fit: contain;
	background: var(--sfs-white);
	padding: 0.35rem;
}

.shop-main .sfs-category-card__body {
	gap: 0.55rem;
	padding: 0.8rem 0.9rem 0.9rem;
}

.shop-main .sfs-category-card__name {
	font-size: clamp(1rem, 1.8vw, 1.2rem);
}

/* Cart and checkout Blocks: frame native areas without changing field anatomy. */
.standard-page--commerce .wc-block-cart,
.standard-page--commerce .wc-block-checkout {
	margin: 0;
	font-size: 0.95rem;
}

.standard-page--commerce .wc-block-components-sidebar-layout {
	--sfs-checkout-gap: clamp(1.25rem, 3vw, 2.25rem);
	gap: var(--sfs-checkout-gap);
}

@media (min-width: 901px) {
	.standard-page--commerce .wc-block-components-sidebar-layout > .wc-block-components-main {
		flex: 0 0 calc(65% - var(--sfs-checkout-gap) / 2);
		width: calc(65% - var(--sfs-checkout-gap) / 2);
		padding-right: 0;
	}

	.standard-page--commerce .wc-block-components-sidebar-layout > .wc-block-components-sidebar {
		flex: 0 0 calc(35% - var(--sfs-checkout-gap) / 2);
		width: calc(35% - var(--sfs-checkout-gap) / 2);
		padding-left: 0;
	}
}

.standard-page--commerce .wc-block-components-sidebar-layout > .wc-block-components-main,
.standard-page--commerce .wc-block-components-sidebar-layout > .wc-block-components-sidebar {
	min-width: 0;
}

.standard-page--commerce .wc-block-cart__sidebar,
.standard-page--commerce .wc-block-checkout__sidebar {
	align-self: start;
	border: 1px solid var(--sfs-border);
	border-radius: var(--sfs-radius);
	background: var(--sfs-surface);
	padding: clamp(1rem, 2vw, 1.35rem);
}

.standard-page--commerce .wc-block-cart-items,
.standard-page--commerce .wc-block-components-order-summary {
	border-color: var(--sfs-border);
	border-radius: var(--sfs-radius);
	background: var(--sfs-surface);
}

.standard-page--commerce .wc-block-cart-items {
	overflow: hidden;
}

.standard-page--commerce .wc-block-cart-items td,
.standard-page--commerce .wc-block-cart-items th {
	padding: clamp(0.75rem, 2vw, 1rem);
}

.standard-page--commerce .wc-block-cart-item__image img,
.standard-page--commerce .wc-block-components-order-summary-item__image img {
	border-radius: 10px;
	background: var(--sfs-white);
	object-fit: contain;
}

.standard-page--commerce .wc-block-components-quantity-selector {
	border-color: var(--sfs-border);
	border-radius: 999px;
	background: var(--sfs-white);
}

.standard-page--commerce .wc-block-components-totals-wrapper,
.standard-page--commerce .wc-block-components-panel,
.standard-page--commerce .wc-block-components-checkout-step {
	border-color: var(--sfs-border);
}

.standard-page--commerce .wc-block-components-checkout-step {
	margin-bottom: 1rem;
	border: 1px solid var(--sfs-border);
	border-radius: var(--sfs-radius);
	background: var(--sfs-surface);
	padding: clamp(1rem, 2.5vw, 1.5rem);
}

.standard-page--commerce .wc-block-components-checkout-step__heading {
	margin-bottom: 1rem;
}

.standard-page--commerce .wc-block-cart__submit-button,
.standard-page--commerce .wc-block-components-checkout-place-order-button {
	min-height: 48px;
	border: 1px solid var(--sfs-plum-900);
	border-radius: 999px;
	background: var(--sfs-plum-900);
	color: var(--sfs-white);
	font-weight: 700;
}

.standard-page--commerce .wc-block-cart__submit-button:hover,
.standard-page--commerce .wc-block-components-checkout-place-order-button:hover {
	border-color: var(--sfs-plum-800);
	background: var(--sfs-plum-800);
	color: var(--sfs-white);
}

/* Classic cart and checkout remain usable when a store has not migrated Blocks. */
.standard-page--commerce .woocommerce-cart-form,
.standard-page--commerce .woocommerce-checkout-review-order {
	min-width: 0;
}

.standard-page--commerce .woocommerce-cart-form {
	overflow-x: auto;
	-webkit-overflow-scrolling: touch;
}

.standard-page--commerce .cart-collaterals {
	margin-top: clamp(1.5rem, 4vw, 2.5rem);
}

.standard-page--commerce .cart-collaterals .cart_totals,
.standard-page--commerce #order_review {
	box-shadow: var(--sfs-shadow-sm);
}

/* Account navigation, content cards, and wide order tables. */
.woocommerce-account.logged-in .standard-page--commerce .entry-content > .woocommerce {
	display: grid;
	grid-template-columns: minmax(190px, 230px) minmax(0, 1fr);
	gap: clamp(1.25rem, 3vw, 2.25rem);
	align-items: start;
}

.woocommerce-account.logged-in .woocommerce > .woocommerce-notices-wrapper,
.woocommerce-account.logged-in .woocommerce > .woocommerce-message,
.woocommerce-account.logged-in .woocommerce > .woocommerce-info,
.woocommerce-account.logged-in .woocommerce > .woocommerce-error {
	grid-column: 1 / -1;
}

.woocommerce-account .woocommerce-MyAccount-navigation,
.woocommerce-account .woocommerce-MyAccount-content {
	width: auto;
	min-width: 0;
	float: none;
}

.woocommerce-account .woocommerce-MyAccount-navigation {
	margin: 0;
}

.woocommerce-account .woocommerce-MyAccount-navigation ul {
	gap: 0.35rem;
}

.woocommerce-account .woocommerce-MyAccount-navigation a {
	padding: 0.72rem 0.85rem;
}

.woocommerce-account .woocommerce-MyAccount-content {
	border: 1px solid var(--sfs-border);
	border-radius: var(--sfs-radius);
	background: var(--sfs-surface);
	padding: clamp(1rem, 3vw, 1.75rem);
}

.woocommerce-account .woocommerce-MyAccount-content > :last-child {
	margin-bottom: 0;
}

.woocommerce-account .woocommerce-Addresses {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 1rem;
}

.woocommerce-account .woocommerce-Address {
	width: auto;
	float: none;
	border: 1px solid var(--sfs-border);
	border-radius: var(--sfs-radius-sm);
	background: var(--sfs-white);
	padding: 1rem;
}

.woocommerce-account .woocommerce-orders-table,
.woocommerce-account .woocommerce-table--order-details {
	display: block;
	max-width: 100%;
	overflow-x: auto;
	white-space: nowrap;
	-webkit-overflow-scrolling: touch;
}

@media (max-width: 900px) {
	.home-main .product-grid,
	.shop-main ul.products {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.shop-main .sfs-category-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.standard-page--commerce .wc-block-components-sidebar-layout {
		display: block;
	}

	.standard-page--commerce .wc-block-components-sidebar-layout > .wc-block-components-main,
	.standard-page--commerce .wc-block-components-sidebar-layout > .wc-block-components-sidebar {
		width: 100%;
		padding: 0;
	}

	.standard-page--commerce .wc-block-components-sidebar-layout > .wc-block-components-sidebar {
		margin-top: 1.25rem;
	}
}

@media (max-width: 760px) {
	.page-hero {
		padding-block: 2.25rem;
	}

	.page-hero h1 {
		font-size: clamp(2rem, 10vw, 2.8rem);
	}

	.home-hero {
		min-height: 580px;
	}

	.home-hero__inner {
		padding-block: 4rem 2.75rem;
	}

	.home-main .section {
		padding-block: clamp(2.75rem, 10vw, 4rem);
	}

	.home-main .intention-card {
		min-height: 330px;
	}

	.article-card--featured .article-card__image,
	.article-card--featured .article-card__image img,
	.article-card--featured .article-card__placeholder {
		min-height: 240px;
	}

	.shop-main .woocommerce-result-count,
	.shop-main .woocommerce-ordering {
		width: 100%;
		max-width: none;
		float: none;
		text-align: left;
	}

	.shop-main .woocommerce-result-count {
		padding-top: 0;
		margin-bottom: 0.65rem;
	}

	.shop-main .woocommerce-ordering select {
		width: 100%;
		min-width: 0;
	}

	.shop-main .sfs-shop-categories__header {
		grid-template-columns: 1fr;
	}

	.shop-main .sfs-shop-categories__header > p {
		justify-self: start;
	}

	.standard-page--commerce .wc-block-cart-items {
		overflow: visible;
	}

	.standard-page--commerce .wc-block-checkout__sidebar,
	.standard-page--commerce .wc-block-cart__sidebar {
		padding: 1rem;
	}

	.woocommerce-account.logged-in .standard-page--commerce .entry-content > .woocommerce {
		grid-template-columns: 1fr;
	}

	.woocommerce-account .woocommerce-MyAccount-navigation ul {
		display: flex;
		overflow-x: auto;
		gap: 0.45rem;
		padding-bottom: 0.35rem;
		scroll-snap-type: x proximity;
		-webkit-overflow-scrolling: touch;
	}

	.woocommerce-account .woocommerce-MyAccount-navigation li {
		flex: 0 0 auto;
		scroll-snap-align: start;
	}

	.woocommerce-account .woocommerce-MyAccount-navigation a {
		white-space: nowrap;
	}

	.woocommerce-account .woocommerce-Addresses {
		grid-template-columns: 1fr;
	}
}

@media (max-width: 480px) {
	/* Override the legacy one-column rule: two cards remain readily browsable. */
	.home-main .product-grid,
	.shop-main ul.products {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 0.65rem;
	}

	.home-main .product-card__content {
		padding: 0.7rem;
	}

	.home-main .product-card h3,
	.shop-main ul.products li.product:not(.product-category) .woocommerce-loop-product__title {
		font-size: 0.88rem;
	}

	.shop-main ul.products li.product:not(.product-category) .woocommerce-loop-product__title,
	.shop-main ul.products li.product:not(.product-category) .price,
	.shop-main ul.products li.product:not(.product-category) .button {
		margin-right: 0.65rem;
		margin-left: 0.65rem;
	}

	.shop-main ul.products li.product:not(.product-category) .button {
		width: calc(100% - 1.3rem);
		padding-inline: 0.45rem;
		font-size: 0.68rem;
	}

	.shop-main .sfs-shop-categories {
		padding: 1rem;
	}

	.shop-main .sfs-category-grid {
		grid-template-columns: 1fr;
	}

	.search-results article {
		grid-template-columns: 1fr;
	}

	.search-result__image img {
		aspect-ratio: 16 / 9;
	}

	.standard-page--commerce .wc-block-components-checkout-step {
		padding: 0.9rem;
	}
}
