/*
 * SolFolk brand styles (warm tan theme). Colors come from Astra's global palette (Customizer > Global > Colors):
 * 0 terracotta, 1 espresso, 2 headings, 3 body text, 4 raised tan, 5 cream, 6 border tan, 7 moss, 8 muted brown.
 * The tokens below cover what Astra's nine slots don't: page and panel surfaces, the "inverted" fill used
 * for selected pills and button hovers, the ochre accent, and the light tan used on dark bands.
 */
/* SolFolk Display: Fraunces with its Soft axis at 100 (rounded, warm) and optical size 72, weights 400-900,
   trimmed to Latin. Bold enough for headlines, soulful in the details. Used for all headings and slogans. */
@font-face {
	font-family: 'SolFolk Display';
	font-style: normal;
	font-weight: 400 900;
	font-display: swap;
	src: url(fonts/solfolk-display-latin.woff2) format('woff2');
}
@font-face {
	font-family: 'SolFolk Display';
	font-style: italic;
	font-weight: 400 900;
	font-display: swap;
	src: url(fonts/solfolk-display-italic-latin.woff2) format('woff2');
}

:root {
	--solfolk-page: #E4D7C5;
	--solfolk-surface: #F3ECE1;
	--solfolk-amber: #9A561E;
	--solfolk-tan: #CDBEA8;
	--solfolk-invert-bg: var(--ast-global-color-1);
	--solfolk-invert-fg: var(--ast-global-color-5);
	--solfolk-label: 600 0.75rem/1.4 'Inter', sans-serif;
}

/* ---------- Shared type ---------- */

.solfolk-eyebrow {
	margin: 0;
	color: var(--solfolk-amber);
	font: var(--solfolk-label);
	letter-spacing: 0.18em;
	text-transform: uppercase;
}
.solfolk-lede {
	font-size: 1.2em;
	line-height: 1.7;
}
/* Homepage hero: white logo over the slogan, both sized to sit with the sentence beneath. */
.solfolk-hero__title {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 0.6em;
	margin: 0;
	line-height: 1.15;
	letter-spacing: 0;
}
.solfolk-hero__logo {
	display: block;
	width: clamp(120px, 13vw, 170px);
	height: auto;
}
.solfolk-hero__slogan {
	font-size: clamp(1.35rem, 2.2vw, 1.75rem);
	font-style: italic;
	font-weight: 600;
}
.solfolk-hero__text {
	font-size: 1.1em;
	max-width: 36em;
	margin-inline: auto;
}
/* The sentence sits on a busy photo: lighter cream, a touch heavier, and a soft shadow so it reads. */
.solfolk-hero--split .solfolk-hero__text {
	color: #F6EFE4 !important;
	font-weight: 500;
	line-height: 1.5 !important;
	text-shadow: 0 1px 2px rgba(20, 12, 6, 0.55), 0 0 18px rgba(20, 12, 6, 0.6);
}

/* ---------- Buttons ---------- */

.solfolk-button .wp-block-button__link,
a.solfolk-button,
.solfolk-button a {
	font: var(--solfolk-label);
	letter-spacing: 0.14em;
	text-transform: uppercase;
	border-radius: 2px;
}

/* ---------- Section heads: left heading, quiet text link on the right ---------- */

.solfolk-section-head {
	padding-bottom: 14px;
	border-bottom: 1px solid var(--ast-global-color-6);
}
.solfolk-section-title {
	margin: 0;
}
.solfolk-textlink {
	margin: 0;
	font-weight: 600;
	font-size: 0.95rem;
}
.solfolk-textlink a,
.entry-content .solfolk-textlink a {
	color: var(--ast-global-color-2);
	text-decoration: underline;
	text-decoration-color: var(--solfolk-amber);
	text-underline-offset: 5px;
	text-decoration-thickness: 1px;
}
.solfolk-textlink a::after {
	content: " \2192";
}
.solfolk-textlink a:hover {
	color: var(--solfolk-amber);
}

/* ---------- Collection cards (homepage): image and caption, no box ---------- */

.solfolk-card__image,
.solfolk-card__image img {
	width: 100%;
	margin: 0 0 14px;
	aspect-ratio: 1;
	object-fit: contain;
	background: #fff;
	transition: opacity 0.2s ease;
}
.solfolk-card__image a:hover img {
	opacity: 0.88;
}
.solfolk-card__title {
	margin: 0;
	font-size: 1.1rem;
}
.solfolk-card__title a,
.entry-content .solfolk-card__title a {
	color: var(--ast-global-color-2);
	text-decoration: none;
}
.solfolk-card__title a:hover {
	color: var(--solfolk-amber);
}
.solfolk-card__text {
	margin: 0;
	font-size: 0.88rem;
	line-height: 1.5;
	color: var(--ast-global-color-8);
}

/* ---------- Story / name band / promises ---------- */

.solfolk-story__image img {
	width: 100%;
	aspect-ratio: 4 / 5;
	object-fit: cover;
	background: var(--ast-global-color-4);
}
.solfolk-hero__text--left {
	margin-inline: 0;
}
.solfolk-promises {
	margin: 0;
	font-size: 0.85rem;
	letter-spacing: 0.04em;
	color: var(--ast-global-color-8);
}
.solfolk-promises span + span::before {
	content: "\00B7";
	margin: 0 0.9em;
	color: var(--solfolk-amber);
}
@media (max-width: 600px) {
	.solfolk-promises span {
		display: block;
	}
	.solfolk-promises span + span::before {
		content: none;
	}
}
.single-product .summary .price .solfolk-from,
.solfolk-from {
	white-space: nowrap;
}

/* ---------- Shop grid ---------- */

.woocommerce ul.products li.product .woocommerce-loop-product__title,
.woocommerce-page ul.products li.product .woocommerce-loop-product__title {
	font-family: 'Inter', sans-serif;
	font-size: 0.95rem;
	font-weight: 600;
	color: var(--ast-global-color-2);
}
.woocommerce ul.products li.product .price {
	color: var(--ast-global-color-8);
	font-weight: 500;
}
.woocommerce ul.products li.product .astra-shop-thumbnail-wrap,
.woocommerce ul.products li.product img {
	background: #fff;
}
/* Room between a product's image and its name and price, so cards don't feel crammed. */
.woocommerce ul.products li.product .astra-shop-summary-wrap {
	padding-top: 20px;
}
.woocommerce ul.products li.product .woocommerce-loop-product__title {
	margin-bottom: 6px;
}

/* Shop category filters */
.solfolk-filters {
	margin: 0 0 2em;
}
.solfolk-filters ul {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5em;
	margin: 0;
	padding: 0;
	list-style: none;
}
.solfolk-filters__sub {
	margin-top: 0.75em !important;
}
.solfolk-filters a {
	display: inline-block;
	padding: 0.55em 1.15em;
	border: 1px solid var(--ast-global-color-6);
	border-radius: 999px;
	color: var(--ast-global-color-2);
	font: var(--solfolk-label);
	letter-spacing: 0.1em;
	text-transform: uppercase;
	text-decoration: none;
	transition: background-color 0.2s, color 0.2s, border-color 0.2s;
}
.solfolk-filters__sub a {
	font-weight: 500;
	letter-spacing: 0.02em;
	text-transform: none;
	font-size: 0.85rem;
}
.solfolk-filters a:hover,
.solfolk-filters a:focus-visible {
	border-color: var(--ast-global-color-2);
}
.solfolk-filters a[aria-current="page"] {
	background: var(--solfolk-invert-bg);
	border-color: var(--solfolk-invert-bg);
	color: var(--solfolk-invert-fg);
}

/* ---------- Product page ---------- */

.single-product .product_title {
	font-size: clamp(1.8rem, 3.5vw, 2.6rem);
}
.single-product .summary .single-product-category a,
.single-product .summary .ast-woo-product-category {
	font: var(--solfolk-label);
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--solfolk-amber);
}
.woocommerce-product-details__short-description .solfolk-headline,
.woocommerce-Tabs-panel .solfolk-headline {
	margin-bottom: 0.5em;
	font-family: 'SolFolk Display', Georgia, serif;
	font-weight: 600;
	font-size: 1.3rem;
	font-style: italic;
	line-height: 1.35;
	color: var(--ast-global-color-2);
}
.solfolk-signoff {
	margin-top: 1.5em;
	padding-top: 1em;
	border-top: 1px solid var(--ast-global-color-6);
	font: var(--solfolk-label);
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--solfolk-amber);
}
.woocommerce-Tabs-panel h4 {
	margin: 1.25em 0 0.5em;
	font-size: 1.15rem;
}
.woocommerce-Tabs-panel ul li {
	margin-bottom: 0.5em;
}
.solfolk-fit-note {
	margin: 0 0 1em;
	padding: 0.7em 1em;
	border-left: 3px solid var(--solfolk-amber);
	background: var(--ast-global-color-4);
	color: var(--ast-global-color-2);
	font-size: 0.9em;
}

/* Variation swatch buttons: tan outline, espresso when chosen. */
.cfvsw-swatches-option {
	border-color: var(--ast-global-color-6) !important;
	border-radius: 2px !important;
	color: var(--ast-global-color-2);
}
.cfvsw-swatches-option.cfvsw-selected-swatch {
	border-color: var(--solfolk-invert-bg) !important;
	background: var(--solfolk-invert-bg) !important;
	color: var(--solfolk-invert-fg) !important;
}

/* ---------- Footer ---------- */

.site-footer .widget-title,
.site-footer h2 {
	font-family: 'SolFolk Display', Georgia, serif;
	font-weight: 800;
	color: var(--ast-global-color-5);
}

/* ---------- WooCommerce buttons (add to cart, cart, checkout) ---------- */

.woocommerce .button.alt,
.woocommerce button.button.alt,
.woocommerce a.button.alt,
.woocommerce .single_add_to_cart_button,
.woocommerce #respond input#submit.alt,
.woocommerce .wc-block-components-button:not(.is-link) {
	background-color: var(--ast-global-color-0) !important;
	border-color: var(--ast-global-color-0) !important;
	color: var(--ast-global-color-5) !important;
	font: var(--solfolk-label);
	letter-spacing: 0.14em;
	text-transform: uppercase;
}
.woocommerce .button.alt:hover,
.woocommerce .single_add_to_cart_button:hover,
.woocommerce .wc-block-components-button:not(.is-link):hover {
	background-color: var(--solfolk-invert-bg) !important;
	border-color: var(--solfolk-invert-bg) !important;
	color: var(--solfolk-invert-fg) !important;
}
/* Before a color and size are chosen: visible but clearly inactive. */
.woocommerce .single_add_to_cart_button.disabled {
	opacity: 0.55;
}

/* ---------- Contact form (SureForms) ---------- */

.srfm-form-container.srfm-bg-color {
	background: transparent !important;
	padding: 0 !important;
}
#srfm-submit-btn {
	background-color: var(--ast-global-color-0) !important;
	border-color: var(--ast-global-color-0) !important;
	color: var(--ast-global-color-5) !important;
	font: var(--solfolk-label);
	letter-spacing: 0.14em;
	text-transform: uppercase;
}
#srfm-submit-btn:hover {
	background-color: var(--solfolk-invert-bg) !important;
	border-color: var(--solfolk-invert-bg) !important;
	color: var(--solfolk-invert-fg) !important;
}

/* ---------- Text pages (Shipping & Returns, Privacy Policy) ---------- */

.entry-content > h2.wp-block-heading {
	margin-top: 1.6em;
	font-size: clamp(1.4rem, 2.4vw, 1.75rem);
}
.entry-content > .wp-block-list li {
	margin-bottom: 0.5em;
}


/* ---------- Header: shipping bar, sticky main bar, icons ---------- */

.ast-above-header-bar .ast-header-html p {
	margin: 0;
	font: 500 0.75rem/1 'Inter', sans-serif;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--solfolk-tan);
}
/* Keep the logo, menu and cart in reach while scrolling. */
#masthead .ast-primary-header-bar {
	position: relative;
}
@supports (position: sticky) {
	#masthead {
		position: sticky;
		top: 0;
		z-index: 99;
	}
	.admin-bar #masthead {
		top: var(--wp-admin--admin-bar--height, 32px);
	}
}
.ast-header-account-wrap svg,
.ast-header-search .astra-search-icon,
.ast-site-header-cart .ast-icon {
	color: var(--ast-global-color-2);
}
.site-header-primary-section-right .ast-builder-layout-element + .ast-builder-layout-element {
	margin-left: 4px;
}

/* ---------- Product cards: hover photo and color count ---------- */

.woocommerce ul.products li.product .astra-shop-thumbnail-wrap {
	position: relative;
	overflow: hidden;
}
.woocommerce ul.products li.product .solfolk-card-hover {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	opacity: 0;
	transition: opacity 0.35s ease;
}
@media (hover: hover) {
	.woocommerce ul.products li.product:hover .solfolk-card-hover {
		opacity: 1;
	}
}
/* Astra's floating add-to-cart icon on cards duplicates the click-through to the product. */
.woocommerce ul.products li.product .ast-on-card-button {
	display: none;
}
.solfolk-color-count {
	display: block;
	margin-top: 2px;
	font-size: 0.8rem;
	font-weight: 400;
	color: var(--ast-global-color-8);
}

/* ---------- Product page: assurance lines, swatches ---------- */

.solfolk-assurance {
	margin: 1.5em 0 0;
	padding: 1.1em 0 0;
	border-top: 1px solid var(--ast-global-color-6);
	list-style: none;
	font-size: 0.9rem;
	color: var(--ast-global-color-3);
}
.solfolk-assurance li {
	position: relative;
	margin: 0 0 0.45em;
	padding-left: 1.3em;
}
.solfolk-assurance li::before {
	content: "";
	position: absolute;
	left: 0;
	top: 0.6em;
	width: 7px;
	height: 7px;
	border-radius: 50%;
	background: var(--ast-global-color-0);
}
.single-product .cfvsw-swatches-option.cfvsw-swatches-option[style*="100%"] {
	width: 30px;
	height: 30px;
	padding: 2px;
	border-radius: 50% !important;
	background: transparent !important;
	border: 1px solid var(--ast-global-color-6) !important;
}
.single-product .cfvsw-swatches-option[style*="100%"].cfvsw-selected-swatch {
	border: 2px solid var(--ast-global-color-2) !important;
}

/* ---------- Footer brand block ---------- */

.solfolk-footer-brand p {
	max-width: 22em;
	font-size: 0.9rem;
	line-height: 1.6;
	color: var(--solfolk-tan);
}
.solfolk-footer-brand figure {
	margin: 0 0 1em;
}


/* ---------- Homepage hero: content on the right on wide screens so the dancers' faces show ---------- */

@media (min-width: 900px) {
	.solfolk-hero--split > .wp-block-spectra-container,
	.solfolk-hero--split > [class*="spectra-container"] {
		align-items: flex-start !important;
		margin-left: auto !important;
		margin-right: 4vw !important;
		max-width: 500px !important;
	}
	.solfolk-hero--split .solfolk-hero__title {
		align-items: flex-start;
	}
	.solfolk-hero--split .solfolk-hero__title,
	.solfolk-hero--split .solfolk-hero__text,
	.solfolk-hero--split p {
		text-align: left !important;
		margin-inline: 0;
	}
	.solfolk-hero--split .wp-block-spectra-buttons,
	.solfolk-hero--split [class*="spectra-buttons"] {
		justify-content: flex-start !important;
	}
}



@media (max-width: 600px) {
	.solfolk-hide-sm {
		display: none;
	}
}
/* Mobile header: same thin tan rule as desktop instead of Astra's heavy default. */
.ast-mobile-header-wrap .ast-primary-header-bar,
#ast-mobile-header .ast-primary-header-bar {
	border-bottom: 1px solid var(--ast-global-color-6) !important;
}

/* Shop, category and collection banner: compact, like a merch store, not a landing page. */
.ast-archive-entry-banner h1,
.ast-archive-entry-banner .page-title {
	font-size: clamp(2rem, 3.2vw, 2.75rem) !important;
	margin-bottom: 0.2em;
}
.ast-archive-entry-banner .ast-breadcrumbs,
.ast-archive-entry-banner .woocommerce-breadcrumb {
	font-size: 0.85rem;
}

/* ---------- Sign-up forms (pop-up and homepage): email and button on one line ---------- */

.solfolk-signup-form,
.srfm-form-container:has(.solfolk-signup-form) {
	background: transparent !important;
	padding: 0 !important;
	max-width: none !important;
}
.solfolk-signup-form form,
form.solfolk-signup-form {
	display: flex;
	flex-wrap: wrap;
	align-items: stretch;
	gap: 10px;
}
.solfolk-signup-form .srfm-block-single,
.solfolk-signup-form .srfm-email-block-wrap,
.solfolk-signup-form .srfm-block {
	flex: 1 1 240px;
	margin: 0 !important;
}
.solfolk-signup-form .srfm-block-label {
	position: absolute !important;
	width: 1px;
	height: 1px;
	overflow: hidden;
	clip: rect(0 0 0 0);
}
.solfolk-signup-form input[type="email"] {
	height: 52px;
	padding: 0 18px !important;
	border: 1px solid var(--ast-global-color-6) !important;
	border-radius: 2px !important;
	background: #fff !important;
	font-size: 1rem !important;
	color: var(--ast-global-color-1) !important;
}
.solfolk-signup-form input[type="email"]:focus {
	border-color: var(--ast-global-color-0) !important;
	outline: 2px solid rgba(164, 80, 47, 0.35);
	outline-offset: 1px;
}
.solfolk-signup-form .srfm-submit-container {
	flex: 0 0 auto;
	margin: 0 !important;
}
.solfolk-signup-form #srfm-submit-btn {
	height: 52px;
	padding: 0 28px !important;
	white-space: nowrap;
}
.solfolk-signup-form .srfm-error-message,
.solfolk-signup-form .srfm-error-wrap {
	flex-basis: 100%;
	font-size: 0.85rem;
}
.srfm-success-box:has(+ * .solfolk-signup-form),
.solfolk-subscribe .srfm-success-box,
.solfolk-popup .srfm-success-box {
	padding: 18px 20px !important;
	border: 1px solid var(--ast-global-color-6) !important;
	border-left: 3px solid var(--ast-global-color-0) !important;
	background: var(--solfolk-surface) !important;
	box-shadow: none !important;
	color: var(--ast-global-color-2);
}

/* ---------- Homepage "Join the folk" section ---------- */

.solfolk-subscribe__title {
	margin: 0;
	font-size: clamp(2.2rem, 4vw, 3.25rem);
}
.solfolk-subscribe__fine,
.solfolk-popup__fine {
	margin: 10px 0 0;
	font-size: 0.8rem;
	color: var(--ast-global-color-8);
}
.solfolk-subscribe__fine a,
.solfolk-popup__fine a {
	color: inherit;
	text-decoration: underline;
	text-underline-offset: 3px;
}

/* ---------- Email pop-up ---------- */

.solfolk-popup {
	position: fixed;
	inset: 0;
	z-index: 100000;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 20px;
}
.solfolk-popup[hidden] {
	display: none;
}
.solfolk-popup__backdrop {
	position: absolute;
	inset: 0;
	background: rgba(30, 19, 12, 0.6);
	backdrop-filter: blur(3px);
	opacity: 0;
	transition: opacity 0.3s ease;
}
.solfolk-popup__panel {
	position: relative;
	display: grid;
	grid-template-columns: 0.9fr 1.1fr;
	width: min(820px, 100%);
	max-height: calc(100vh - 40px);
	overflow: auto;
	background: var(--solfolk-surface);
	box-shadow: 0 30px 80px rgba(30, 19, 12, 0.35);
	opacity: 0;
	transform: translateY(18px) scale(0.98);
	transition: opacity 0.3s ease, transform 0.35s cubic-bezier(0.2, 0.8, 0.2, 1);
}
.solfolk-popup.is-open .solfolk-popup__backdrop {
	opacity: 1;
}
.solfolk-popup.is-open .solfolk-popup__panel {
	opacity: 1;
	transform: none;
}
.solfolk-popup__media img {
	display: block;
	width: 100%;
	height: 100%;
	min-height: 420px;
	object-fit: cover;
	object-position: 30% 22%;
	filter: sepia(0.15);
}
.solfolk-popup__body {
	display: flex;
	flex-direction: column;
	justify-content: center;
	gap: 10px;
	padding: 48px 44px 36px;
}
.solfolk-popup__body h2 {
	margin: 0;
	font-size: clamp(2rem, 3.4vw, 2.6rem);
}
.solfolk-popup__text {
	margin: 0 0 10px;
	color: var(--ast-global-color-3);
}
.solfolk-popup__close {
	position: absolute;
	top: 10px;
	right: 12px;
	z-index: 2;
	width: 40px;
	height: 40px;
	padding: 0;
	border: 0;
	border-radius: 50%;
	background: transparent;
	color: var(--ast-global-color-2);
	font-size: 28px;
	line-height: 40px;
	cursor: pointer;
}
.solfolk-popup__close:hover,
.solfolk-popup__close:focus-visible {
	background: var(--ast-global-color-4);
	color: var(--ast-global-color-2);
}
.solfolk-popup__dismiss {
	align-self: flex-start;
	margin-top: 6px;
	padding: 0;
	border: 0;
	background: none;
	color: var(--ast-global-color-8);
	font-size: 0.85rem;
	text-decoration: underline;
	text-underline-offset: 3px;
	cursor: pointer;
}
.solfolk-popup__dismiss:hover {
	background: none;
	color: var(--ast-global-color-2);
}
.solfolk-popup.is-success .solfolk-popup__dismiss,
.solfolk-popup.is-success .solfolk-popup__fine {
	display: none;
}
html.solfolk-popup-open {
	overflow: hidden;
}
/* Phones: slide up from the bottom as a sheet, photo as a slim banner. */
@media (max-width: 700px) {
	.solfolk-popup {
		align-items: flex-end;
		padding: 0;
	}
	.solfolk-popup__panel {
		grid-template-columns: 1fr;
		max-height: 92vh;
		transform: translateY(100%);
	}
	.solfolk-popup__media img {
		min-height: 0;
		height: 150px;
	}
	.solfolk-popup__body {
		padding: 28px 22px 26px;
	}
	.solfolk-popup__close {
		background: var(--solfolk-surface);
	}
}
@media (prefers-reduced-motion: reduce) {
	.solfolk-popup__panel,
	.solfolk-popup__backdrop {
		transition: none;
	}
}

/* ---------- Header search bar with live results ---------- */

.ast-search-box.header-cover,
.ast-search-box {
	position: relative;
}
#masthead .search-field,
#masthead input[type="search"] {
	height: 40px;
	padding: 0 14px 0 38px;
	border: 1px solid var(--ast-global-color-6) !important;
	border-radius: 999px !important;
	background: var(--solfolk-surface) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='none' stroke='%238A7560' stroke-width='2' viewBox='0 0 24 24'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Cpath d='m20 20-3.5-3.5'/%3E%3C/svg%3E") no-repeat 14px center !important;
	font-size: 0.9rem;
	color: var(--ast-global-color-2);
}
#masthead .search-field:focus {
	border-color: var(--ast-global-color-2) !important;
	outline: none;
}
.solfolk-search-wrap {
	position: relative;
}
.solfolk-search-results {
	position: absolute;
	top: calc(100% + 8px);
	right: 0;
	z-index: 1000;
	width: min(380px, 90vw);
	padding: 6px;
	border: 1px solid var(--ast-global-color-6);
	background: var(--solfolk-surface);
	box-shadow: 0 18px 40px rgba(42, 27, 18, 0.16);
	text-align: left;
}
.solfolk-search-result {
	display: grid;
	grid-template-columns: 48px 1fr auto;
	align-items: center;
	gap: 12px;
	padding: 8px;
	color: var(--ast-global-color-2) !important;
	text-decoration: none;
}
.solfolk-search-result img,
.solfolk-search-noimg {
	width: 48px;
	height: 48px;
	object-fit: contain;
	background: #fff;
}
.solfolk-search-result:hover,
.solfolk-search-result.is-active {
	background: var(--ast-global-color-4);
}
.solfolk-search-name {
	font-size: 0.9rem;
	font-weight: 600;
	line-height: 1.3;
}
.solfolk-search-price {
	font-size: 0.85rem;
	color: var(--ast-global-color-8);
	white-space: nowrap;
}
.solfolk-search-all,
.solfolk-search-empty {
	display: block;
	margin: 4px 0 0;
	padding: 10px 8px 6px;
	border-top: 1px solid var(--ast-global-color-6);
	font-size: 0.85rem;
	font-weight: 600;
	color: var(--solfolk-amber) !important;
}
.solfolk-search-all.is-active {
	background: var(--ast-global-color-4);
}

/* Desktop header search bar */
.solfolk-header-search {
	position: relative;
	margin: 0;
}
.solfolk-header-search .search-field {
	width: 210px;
	transition: width 0.25s ease;
}
.solfolk-header-search .search-field:focus {
	width: 260px;
}
@media (max-width: 1240px) {
	.solfolk-header-search .search-field,
	.solfolk-header-search .search-field:focus {
		width: 160px;
	}
}

/* Sign-up forms: SureForms stacks fields in a column; put email and button side by side. */
.solfolk-signup-form form.srfm-form {
	display: flex !important;
	flex-direction: row !important;
	flex-wrap: wrap !important;
	align-items: flex-start !important;
	gap: 10px !important;
}
.solfolk-signup-form form.srfm-form > .srfm-block-single {
	flex: 1 1 240px !important;
	width: auto !important;
	max-width: none !important;
	margin: 0 !important;
}
.solfolk-signup-form form.srfm-form > .srfm-submit-container {
	flex: 0 0 auto !important;
	width: auto !important;
	margin: 0 !important;
	padding: 0 !important;
}
.solfolk-signup-form form.srfm-form > .srfm-submit-container .wp-block-button {
	margin: 0 !important;
}
.solfolk-signup-form .srfm-success-box {
	flex-basis: 100%;
	min-height: 0 !important;
}
@media (max-width: 480px) {
	.solfolk-signup-form form.srfm-form > .srfm-submit-container,
	.solfolk-signup-form form.srfm-form > .srfm-submit-container .wp-block-button,
	.solfolk-signup-form #srfm-submit-btn {
		flex-basis: 100% !important;
		width: 100% !important;
	}
}

/* The form sits in a column that shrink-wraps its content; let it fill the column. */
.srfm-form-container.solfolk-signup-form {
	align-self: stretch;
	width: 100% !important;
}

/* Header fits logo, seven menu items, search, account and cart on one line. */
#masthead .main-header-menu > .menu-item > .menu-link {
	padding: 0 11px;
	letter-spacing: 1.2px;
}
.solfolk-header-search .search-field {
	width: 170px;
}
.solfolk-header-search .search-field:focus {
	width: 210px;
}
@media (max-width: 1240px) {
	#masthead .main-header-menu > .menu-item > .menu-link {
		padding: 0 8px;
		letter-spacing: 0.8px;
	}
	.solfolk-header-search .search-field,
	.solfolk-header-search .search-field:focus {
		width: 140px;
	}
}

.solfolk-signup-form input.srfm-input-email,
.solfolk-signup-form input[type="email"] {
	height: 52px !important;
	min-height: 52px !important;
}
/* In the narrower pop-up, stack a full-width button under the email field. */
.solfolk-popup .solfolk-signup-form form.srfm-form > .srfm-block-single,
.solfolk-popup .solfolk-signup-form form.srfm-form > .srfm-submit-container,
.solfolk-popup .solfolk-signup-form form.srfm-form > .srfm-submit-container .wp-block-button,
.solfolk-popup .solfolk-signup-form #srfm-submit-btn {
	flex-basis: 100% !important;
	width: 100% !important;
}


/* ---------- Dark theme: third-party pieces ---------- */

/* SureForms labels, help text and required marks on the dark page. */
.srfm-form-container .srfm-block-label,
.srfm-form-container .srfm-description,
.srfm-form-container label {
	color: var(--ast-global-color-2) !important;
}
.srfm-form-container input:not([type="submit"]),
.srfm-form-container textarea,
.srfm-form-container select,
.srfm-form-container .srfm-dropdown-common {
	background: #fff !important;
	color: var(--ast-global-color-1) !important;
}
/* Header search pill on the dark header. */
#masthead .search-field,
#masthead input[type="search"] {
	border-color: var(--ast-global-color-6) !important;
}
::selection {
	background: var(--solfolk-amber);
	color: var(--ast-global-color-1);
}

/* Size swatches: outlined on the dark page (the plugin paints them white). */
.single-product .cfvsw-swatches-option:not([style*="100%"]) {
	background: transparent !important;
	border-color: var(--ast-global-color-6) !important;
	color: var(--ast-global-color-2) !important;
}
.single-product .cfvsw-swatches-option:not([style*="100%"]) .cfvsw-swatch-inner {
	color: inherit !important;
	background: transparent !important;
}
.single-product .cfvsw-swatches-option:not([style*="100%"]):hover {
	border-color: var(--ast-global-color-2) !important;
}
.single-product .cfvsw-swatches-option.cfvsw-selected-swatch:not([style*="100%"]),
.single-product .cfvsw-swatches-option.cfvsw-selected-swatch:not([style*="100%"]) .cfvsw-swatch-inner {
	background: var(--solfolk-invert-bg) !important;
	border-color: var(--solfolk-invert-bg) !important;
	color: var(--solfolk-invert-fg) !important;
}
/* Sorting dropdown and other selects on the page. */
.woocommerce-ordering select,
.woocommerce .woocommerce-ordering select {
	color: var(--ast-global-color-2) !important;
	background-color: transparent !important;
}
.woocommerce-ordering select option {
	color: var(--ast-global-color-1);
}
/* SureForms dropdown/legend labels. */
.srfm-form-container legend,
.srfm-form-container .srfm-block-legend,
.srfm-form-container .srfm-dropdown-block .srfm-block-label {
	color: var(--ast-global-color-2) !important;
}
/* Header cart count badge. */
#masthead .ast-site-header-cart .count,
#masthead .ast-site-header-cart .ast-count-text,
#masthead .ast-cart-menu-wrap .count {
	background: var(--solfolk-amber) !important;
	color: var(--ast-global-color-1) !important;
	border-color: var(--solfolk-amber) !important;
}
#masthead .ast-icon-shopping-bag::after,
#masthead .ast-icon-shopping-bag[data-cart-total]::after {
	background: var(--solfolk-amber) !important;
	color: var(--ast-global-color-1) !important;
	border-color: var(--solfolk-amber) !important;
}

/* WooCommerce notices (cart empty, added to cart, errors) on the dark theme. */
.woocommerce-info,
.woocommerce-message,
.woocommerce-error,
.wc-block-components-notice-banner {
	background: var(--solfolk-surface) !important;
	color: var(--ast-global-color-3) !important;
	border-top-color: var(--solfolk-amber) !important;
}
.woocommerce-error {
	border-top-color: #C0533A !important;
}
.woocommerce-info::before,
.woocommerce-message::before {
	color: var(--solfolk-amber) !important;
}
/* Checkout and account form fields: light fields with dark text, light labels. */
.woocommerce form .form-row label,
.woocommerce-checkout h3,
.woocommerce-billing-fields h3 {
	color: var(--ast-global-color-2);
}
.woocommerce form .input-text,
.woocommerce form select,
.select2-container--default .select2-selection--single {
	background-color: #fff !important;
	color: var(--ast-global-color-1) !important;
}
.select2-container--default .select2-selection--single .select2-selection__rendered {
	color: var(--ast-global-color-1) !important;
}

/* Slide-out cart (Modern Cart): its panel background is hard-coded white in the free version. */
.moderncart-slide-out,
.moderncart-slide-out-modal,
.moderncart-slide-out-cart,
.moderncart-slide-out-footer,
.moderncart-slide-out-coupon {
	background: var(--solfolk-page) !important;
	color: var(--ast-global-color-3);
}
.moderncart-slide-out-header {
	background: var(--ast-global-color-4) !important;
	border-color: var(--ast-global-color-6) !important;
}
.moderncart-slide-out-header-title,
.moderncart-slide-out-header-heading,
.moderncart-slide-out-header-close,
.moderncart-slide-out-header-close svg {
	color: var(--ast-global-color-2) !important;
	fill: currentColor;
	stroke: currentColor;
}
.moderncart-slide-out *:not(button):not(.moderncart-slide-out-footer a) {
	border-color: var(--ast-global-color-6) !important;
}
.moderncart-slide-out-coupon-input,
.moderncart-slide-out input[type="text"] {
	background: #fff !important;
	color: var(--ast-global-color-1) !important;
}
.moderncart-slide-out-header-heading {
	background: var(--ast-global-color-4) !important;
}
.moderncart-slide-out-header-heading span,
.moderncart-slide-out-header-title span {
	color: var(--ast-global-color-2) !important;
}
.moderncart-cart-item-quantity button,
.moderncart-cart-item-quantity .moderncart-quantity__input {
	color: var(--ast-global-color-2) !important;
	background: transparent !important;
}
.moderncart-slide-out-header-quantity,
.moderncart-slide-out-header-quantity span {
	background: var(--solfolk-amber) !important;
	color: var(--ast-global-color-1) !important;
}

/* =====================================================================
 * Texture, readability and product focus
 * ===================================================================== */

/* Fine film grain (echoes the archival photo) and a faint warm "sun" glow at the top of the page.
   The grain is an inline SVG noise tile, so there's no extra image request. */
:root {
	--solfolk-grain-light: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 1  0 0 0 0 0.93  0 0 0 0 0.82  0 0 0 0.12 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
	--solfolk-grain: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 0.24  0 0 0 0 0.16  0 0 0 0 0.09  0 0 0 0.09 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
}
/* Faint diamond lattice, a nod to hand-woven textiles; just visible behind the grain. */
:root {
	--solfolk-weave: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='56' height='56' fill='none' stroke='%236B4A2E' stroke-opacity='0.06' stroke-width='1'%3E%3Cpath d='M28 2 54 28 28 54 2 28Z'/%3E%3Cpath d='M28 14 42 28 28 42 14 28Z'/%3E%3C/svg%3E");
}
/* !important: Astra prints its own body background inline after this stylesheet. */
body {
	background-color: var(--solfolk-page) !important;
	background-image:
		var(--solfolk-grain),
		var(--solfolk-weave),
		radial-gradient(1200px 600px at 50% -120px, rgba(255, 246, 230, 0.55), transparent 70%) !important;
	background-repeat: repeat, repeat, no-repeat !important;
	background-attachment: scroll !important;
}
/* Let the page texture show through the main content areas. */
body #page,
body .site-content,
body #content,
body .ast-separate-container,
body .ast-plain-container,
body.ast-plain-container .site-content,
body .site-main,
body #primary,
body .content-area,
body .entry-content,
body article.page,
body article.product {
	background: transparent !important;
}
/* Same grain over solid bands: header, top bar, footer, banners and colored sections (not photo sections). */
#masthead .ast-primary-header-bar,
#masthead .ast-mobile-header-wrap .ast-primary-header-bar,
.spectra-background-color:not(.has-image-background) {
	background-image: var(--solfolk-grain) !important;
	background-repeat: repeat !important;
}
#masthead .ast-above-header-bar,
.site-footer .site-primary-footer-wrap,
.site-footer .site-below-footer-wrap,
.ast-archive-entry-banner {
	background-image: var(--solfolk-grain-light) !important;
	background-repeat: repeat !important;
}

/* Readable line lengths and a touch more leading for body copy. */
.entry-content p,
.woocommerce-product-details__short-description p,
.woocommerce-Tabs-panel p,
.woocommerce-Tabs-panel li {
	line-height: 1.75;
}
.woocommerce-Tabs-panel {
	max-width: 760px;
}

/* ---------- Product imagery: transparent photos straight on the page, no tiles ---------- */

.woocommerce ul.products li.product .astra-shop-thumbnail-wrap,
.woocommerce ul.products li.product .astra-shop-thumbnail-wrap a,
.woocommerce ul.products li.product img,
.single-product .woocommerce-product-gallery,
.single-product .woocommerce-product-gallery .woocommerce-product-gallery__image,
.single-product .woocommerce-product-gallery img,
.single-product .woocommerce-product-gallery .flex-control-thumbs li,
.solfolk-card__image,
.solfolk-card__image img,
.solfolk-story__image img,
.solfolk-search-result img,
.solfolk-search-noimg {
	background: transparent !important;
	box-shadow: none !important;
	mix-blend-mode: normal !important;
}
.woocommerce ul.products li.product .astra-shop-thumbnail-wrap img {
	display: block;
	transition: transform 0.5s ease, opacity 0.35s ease;
	filter: drop-shadow(0 14px 18px rgba(42, 27, 18, 0.18));
}
@media (hover: hover) {
	.woocommerce ul.products li.product:hover .astra-shop-thumbnail-wrap img:not(.solfolk-card-hover) {
		transform: translateY(-4px) scale(1.02);
	}
	/* With transparent photos the first image must fade out under the hover image. */
	.woocommerce ul.products li.product:hover .astra-shop-thumbnail-wrap:has(.solfolk-card-hover) img:not(.solfolk-card-hover) {
		opacity: 0;
	}
}
.woocommerce ul.products li.product .woocommerce-loop-product__title,
.woocommerce-page ul.products li.product .woocommerce-loop-product__title {
	color: var(--ast-global-color-2);
	font-size: 1rem;
}
.woocommerce ul.products li.product .price,
.woocommerce ul.products li.product .price .amount {
	color: var(--ast-global-color-2) !important;
	font-weight: 600;
}
.single-product .woocommerce-product-gallery__image img {
	filter: drop-shadow(0 18px 24px rgba(42, 27, 18, 0.16));
}
.single-product .woocommerce-product-gallery .flex-control-thumbs img {
	opacity: 0.5;
	border-radius: 4px;
}
.single-product .woocommerce-product-gallery .flex-control-thumbs img.flex-active,
.single-product .woocommerce-product-gallery .flex-control-thumbs img:hover {
	opacity: 1;
}

/* ---------- Product page copy: price, then breathing room, then the slogan sitting on its paragraph ---------- */

.single-product .summary .price {
	margin-bottom: 0 !important;
}
.woocommerce-product-details__short-description {
	margin-top: 1.75em;
}
.woocommerce-product-details__short-description .solfolk-headline {
	margin: 0 0 0.45em !important;
	font-size: 1.35rem;
	line-height: 1.35;
	color: var(--ast-global-color-2);
}
.woocommerce-product-details__short-description .solfolk-headline + p {
	margin-top: 0;
	margin-bottom: 1.6em;
	color: var(--ast-global-color-3);
	font-size: 1.02rem;
	max-width: 36em;
}
/* Let the garments' soft shadow spill past the image frame in grids (clipping it drew a faint box).
   The product-page gallery is a slider and must clip, so it goes without the shadow. */
.woocommerce ul.products li.product .astra-shop-thumbnail-wrap {
	overflow: visible !important;
}
.single-product .woocommerce-product-gallery__image img {
	filter: none !important;
}

/* =====================================================================
 * Our Story: editorial layout
 * ===================================================================== */

.solfolk-eyebrow--light {
	color: var(--solfolk-tan) !important;
}
.solfolk-story-lead {
	font-size: clamp(1.9rem, 3.4vw, 2.7rem);
	line-height: 1.15;
}
.solfolk-story-text {
	max-width: 34em;
	margin: 0;
	font-size: 1.06rem;
	line-height: 1.85;
	color: var(--ast-global-color-3);
}
.solfolk-story-text--center {
	margin-inline: auto;
}
.solfolk-lede {
	margin-inline: auto;
	color: var(--ast-global-color-2);
}

/* Photos: archival photo cropped to the circle of dancers; product shots on a textured panel. */
.solfolk-story-photo {
	margin: 0;
	width: 100%;
}
.solfolk-story-photo img {
	display: block;
	width: 100%;
	aspect-ratio: 4 / 5;
	object-fit: cover;
	border-radius: 2px;
	box-shadow: 10px 10px 0 var(--ast-global-color-1);
}
.solfolk-story-photo--folk img {
	object-position: 88% 30%;
	filter: sepia(0.1) contrast(1.02);
}
.solfolk-story-photo--product img {
	object-fit: contain;
	padding: 6%;
	background-color: var(--ast-global-color-4);
	background-image: var(--solfolk-grain);
	box-shadow: 10px 10px 0 var(--ast-global-color-0);
}

/* Faith row: photo sits on the right on desktop, above the text on phones. */
@media (max-width: 900px) {
	.solfolk-story-row--reverse .wp-block-spectra-container.is-horizontal,
	.solfolk-story-row--reverse [class*="is-layout-flex"]:has(> .solfolk-story-col) {
		flex-direction: column-reverse !important;
	}
}

/* Pull quote. */
.solfolk-pullquote {
	margin: 0;
	font-family: 'SolFolk Display', Georgia, serif;
	font-style: italic;
	font-weight: 400;
	font-size: clamp(1.6rem, 3.2vw, 2.5rem);
	line-height: 1.3;
}
.solfolk-pullquote::before,
.solfolk-pullquote::after {
	color: var(--ast-global-color-0);
}
.solfolk-pullquote::before {
	content: "“";
}
.solfolk-pullquote::after {
	content: "”";
}

/* Heritage icons gallery. */
.solfolk-icon-cards {
	margin: 20px 0 16px;
	text-align: center;
}
.solfolk-icon-card__image,
.solfolk-icon-card__image img {
	margin: 0;
	width: 100%;
}
.solfolk-icon-card__image img {
	aspect-ratio: 1;
	object-fit: contain;
	filter: drop-shadow(0 14px 18px rgba(42, 27, 18, 0.18));
}
.solfolk-icon-card__name {
	margin: 10px 0 0;
	font-size: 1.25rem;
}
.solfolk-icon-card__meta {
	margin: 0;
	font-size: 0.85rem;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: var(--ast-global-color-8);
}
/* Second archival crop: zoom into the circle of dancers on the right, not the lead dancer. */
.solfolk-story-photo--folk {
	overflow: hidden;
	box-shadow: 10px 10px 0 var(--ast-global-color-1);
}
.solfolk-story-photo--folk img {
	box-shadow: none;
	object-position: 100% 40%;
	transform: scale(1.55);
	transform-origin: 92% 42%;
}
/* Split heroes on phones/tablets: everything centered. */
@media (max-width: 899px) {
	.solfolk-hero--split .solfolk-hero__title {
		align-items: center;
	}
	.solfolk-hero--split .solfolk-hero__title,
	.solfolk-hero--split p {
		text-align: center !important;
	}
}
@media (max-width: 899px) {
	.solfolk-hero--split .solfolk-eyebrow {
		align-self: center;
		text-align: center !important;
	}
}

/* Welcome offer */
.ast-above-header-bar .ast-header-html a {
	color: var(--ast-global-color-5);
	text-decoration: underline;
	text-underline-offset: 3px;
}
.solfolk-code {
	padding: 2px 8px;
	border: 1px dashed var(--ast-global-color-0);
	background: var(--ast-global-color-5);
	font-family: ui-monospace, Menlo, monospace;
	letter-spacing: 0.08em;
	user-select: all;
}
#join {
	scroll-margin-top: 120px;
}


/* =====================================================================
 * "What's in a name" band (Sol / Soul / Folk as dictionary entries)
 * ===================================================================== */

.solfolk-name-band {
	position: relative;
	overflow: hidden;
	isolation: isolate;
}
/* Toned archival photo sits under the dark overlay; grain and a faint sun drawn in rings on top. */
.solfolk-name-band.has-image-background {
	background-blend-mode: luminosity;
}
.solfolk-name-band::after {
	content: "";
	position: absolute;
	z-index: 0;
	right: -180px;
	top: -220px;
	width: 640px;
	height: 640px;
	background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 640 640' fill='none' stroke='%23D9A15B' stroke-opacity='.22'%3E%3Ccircle cx='320' cy='320' r='70' stroke-width='1.5'/%3E%3Ccircle cx='320' cy='320' r='120'/%3E%3Ccircle cx='320' cy='320' r='170'/%3E%3Ccircle cx='320' cy='320' r='220' stroke-dasharray='2 8'/%3E%3Ccircle cx='320' cy='320' r='270'/%3E%3Ccircle cx='320' cy='320' r='318' stroke-dasharray='1 12'/%3E%3C/svg%3E") center / contain no-repeat;
	pointer-events: none;
}
.solfolk-name-band::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 0;
	background-image: var(--solfolk-grain-light);
	opacity: 0.7;
	pointer-events: none;
}
.solfolk-name-band > * {
	position: relative;
	z-index: 1;
}
.solfolk-name-band__eyebrow {
	color: var(--solfolk-tan) !important;
}
.solfolk-entries {
	border-top: 1px solid rgba(205, 190, 168, 0.28);
	padding-top: 36px;
}
.solfolk-entry__num {
	margin: 0;
	font: 500 0.75rem/1 'Inter', sans-serif;
	letter-spacing: 0.18em;
	color: #D9A15B;
}
.solfolk-entry__word {
	margin: 6px 0 0;
	font-family: 'SolFolk Display', Georgia, serif;
	font-size: clamp(3rem, 5.4vw, 4.6rem);
	font-weight: 800;
	line-height: 0.95;
	letter-spacing: -0.02em;
}
.solfolk-entry__sound {
	margin: 4px 0 10px;
	font-family: 'SolFolk Display', Georgia, serif;
	font-style: italic;
	font-size: 1.05rem;
	color: #D9A15B;
}
.solfolk-entry__text {
	margin: 0;
	max-width: 22em;
	font-size: 1rem;
	line-height: 1.75;
}
.solfolk-name-band__close {
	margin: 8px 0 0;
	padding-top: 28px;
	border-top: 1px solid rgba(205, 190, 168, 0.28);
	font-family: 'SolFolk Display', Georgia, serif;
	font-style: italic;
	font-weight: 600;
	font-size: clamp(1.25rem, 2.2vw, 1.6rem);
}
.solfolk-name-band__word {
	font-style: normal;
	font-weight: 600;
}
.solfolk-name-band__pos {
	color: #D9A15B;
}
@media (max-width: 900px) {
	.solfolk-name-band::after {
		width: 420px;
		height: 420px;
		right: -160px;
		top: -140px;
	}
	.solfolk-entries {
		gap: 36px !important;
	}
}



/* =====================================================================
 * Headings: SolFolk Display (soft Fraunces), Title Case everywhere (pages, WooCommerce, product names, footer)
 * ===================================================================== */
h1, h2, h3, h4, h5, h6,
.entry-title,
.product_title,
.woocommerce-loop-product__title,
.widget-title,
.solfolk-headline,
.solfolk-hero__slogan,
.solfolk-popup__body h2,
.moderncart-slide-out-header-title {
	text-transform: capitalize !important;
}
h1, h2, h3, h4, h5, h6 {
	font-family: 'SolFolk Display', Georgia, serif;
	font-weight: 800;
	letter-spacing: -0.005em;
}
/* Small labels stay all caps; dictionary words stay lowercase. */
.solfolk-eyebrow {
	text-transform: uppercase !important;
}
.solfolk-entry__word {
	text-transform: none !important;
}
/* Standard WooCommerce buttons (Return to Shop, Update Cart, etc.): solid espresso, readable. */
.woocommerce a.button:not(.alt),
.woocommerce button.button:not(.alt):not(.single_add_to_cart_button) {
	background: var(--ast-global-color-1) !important;
	border-color: var(--ast-global-color-1) !important;
	color: var(--ast-global-color-5) !important;
}
.woocommerce a.button:not(.alt):hover,
.woocommerce button.button:not(.alt):not(.single_add_to_cart_button):hover {
	background: var(--ast-global-color-0) !important;
	border-color: var(--ast-global-color-0) !important;
}
.single-product .product_title {
	font-weight: 800 !important;
}

/* ---------- Floating cart button (Modern Cart), bottom right ----------
   A plain round button with the same shopping-bag outline as the header cart, and a small count badge. */
#moderncart-floating-cart {
	position: fixed !important;
	right: 24px !important;
	bottom: 24px !important;
	left: auto !important;
	top: auto !important;
	z-index: 9990;
	width: 56px;
	height: 56px;
}
#moderncart-floating-cart .moderncart-floating-cart-button {
	position: relative;
	display: flex !important;
	align-items: center;
	justify-content: center;
	width: 56px !important;
	height: 56px !important;
	padding: 0 !important;
	margin: 0 !important;
	border: 0 !important;
	border-radius: 50% !important;
	background: var(--ast-global-color-1) !important;
	box-shadow: 0 4px 14px rgba(42, 27, 18, 0.25) !important;
	cursor: pointer;
	transition: background-color 0.2s ease, transform 0.2s ease;
}
#moderncart-floating-cart .moderncart-floating-cart-button:hover,
#moderncart-floating-cart .moderncart-floating-cart-button:focus-visible {
	background: var(--ast-global-color-0) !important;
	transform: translateY(-1px);
}
#moderncart-floating-cart .moderncart-floating-cart-button:focus-visible {
	outline: 2px solid var(--ast-global-color-0);
	outline-offset: 3px;
}
/* Swap the plugin's trolley for a bag outline. */
#moderncart-floating-cart .moderncart-floating-cart-icon {
	position: static !important;
	display: block !important;
	width: 24px !important;
	height: 24px !important;
	margin: 0 !important;
	padding: 0 !important;
	background: var(--ast-global-color-5) !important;
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 8h14l-1.2 12.1a1 1 0 0 1-1 .9H7.2a1 1 0 0 1-1-.9L5 8Z'/%3E%3Cpath d='M9 10V7a3 3 0 0 1 6 0v3'/%3E%3C/svg%3E") center / contain no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 8h14l-1.2 12.1a1 1 0 0 1-1 .9H7.2a1 1 0 0 1-1-.9L5 8Z'/%3E%3Cpath d='M9 10V7a3 3 0 0 1 6 0v3'/%3E%3C/svg%3E") center / contain no-repeat;
}
#moderncart-floating-cart .moderncart-floating-cart-icon svg {
	display: none !important;
}
#moderncart-floating-cart .moderncart-floating-cart-count {
	position: absolute !important;
	top: -2px !important;
	right: -2px !important;
	left: auto !important;
	bottom: auto !important;
	display: flex !important;
	align-items: center;
	justify-content: center;
	min-width: 22px !important;
	width: auto !important;
	height: 22px !important;
	padding: 0 6px !important;
	margin: 0 !important;
	border: 2px solid var(--solfolk-page) !important;
	border-radius: 999px !important;
	background: var(--ast-global-color-0) !important;
	color: var(--ast-global-color-5) !important;
	font: 700 11px/1 'Inter', sans-serif !important;
	box-sizing: border-box;
}
#moderncart-floating-cart .moderncart-floating-cart-count span {
	color: inherit !important;
	font: inherit !important;
}
/* Not needed where the cart is already on screen, or while the pop-up is open. */
.woocommerce-cart #moderncart-floating-cart,
.woocommerce-checkout #moderncart-floating-cart,
html.solfolk-popup-open #moderncart-floating-cart {
	display: none !important;
}
@media (max-width: 600px) {
	#moderncart-floating-cart {
		right: 16px !important;
		bottom: 16px !important;
		width: 52px;
		height: 52px;
	}
	#moderncart-floating-cart .moderncart-floating-cart-button {
		width: 52px !important;
		height: 52px !important;
	}
}

/* Footer Instagram icon. */
.solfolk-social {
	display: flex;
	gap: 12px;
	margin: 6px 0 0;
}
.solfolk-social a {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 40px;
	height: 40px;
	margin-left: -8px;
	color: var(--ast-global-color-5) !important;
	text-decoration: none !important;
	transition: color 0.2s ease;
}
.solfolk-social a:hover,
.solfolk-social a:focus-visible {
	color: #D9A15B !important;
}
.solfolk-social svg {
	width: 24px;
	height: 24px;
}
#moderncart-floating-cart .moderncart-floating-cart-count.is-empty {
	display: none !important;
}

/* ---------- Payments on the product page: hold space so nothing jumps when Stripe loads ---------- */

/* Pay-later message (Affirm, Klarna, Afterpay), moved under the price by the plugin. */
.single-product .summary #payment-method-message {
	min-height: 68px;
	margin: 0.25em 0 1em;
}
/* WooPay on top, then the Apple Pay / Google Pay / Amazon Pay row, which arrives a moment later. */
.single-product form.cart ~ .wcpay-express-checkout-wrapper,
.single-product .summary .wcpay-express-checkout-wrapper {
	min-height: 108px;
}

/* Cart: WooPayments gives the pay-later message a fixed height that Stripe's frame outgrows, so it
   ran over the "View Available Coupons" button. Let it grow with its content instead. */
.cart_totals #payment-method-message,
.cart_totals #payment-method-message.pmme-updated {
	height: auto !important;
	min-height: 52px;
	margin: 0 0 12px !important;
	padding: 0 !important;
}

/* Product gallery before its script runs: every photo stacked at full size, which then collapsed into the
   slider and pushed the page around. Lay them out like the finished slider (main photo, 4-up thumbnails). */
.single-product .woocommerce-product-gallery > .woocommerce-product-gallery__wrapper {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 16px;
	padding-bottom: 16px !important;
	transition: none !important;
}
.single-product .woocommerce-product-gallery > .woocommerce-product-gallery__wrapper > .woocommerce-product-gallery__image:first-child {
	grid-column: 1 / -1;
}
/* The thumbnail row also repeats the main photo; hold that cell too. */
.single-product .woocommerce-product-gallery > .woocommerce-product-gallery__wrapper:has(> :nth-child(2))::after {
	content: '';
	aspect-ratio: 1;
}
/* Astra adds this gap by script on phones and tablets; have it from the first paint. */
@media (max-width: 921px) {
	.single-product .woocommerce-product-gallery {
		margin-bottom: 32px;
	}
}
/* WooCommerce sizes the extra photos at 25% wide; inside the grid they should fill their cells. */
.single-product .woocommerce-product-gallery > .woocommerce-product-gallery__wrapper > .woocommerce-product-gallery__image {
	width: auto !important;
	display: block !important;
}
/* While the slider sets up, it briefly stretches the first photo to the width of the whole slide track
   (10,000px tall on a phone). All product photos are square, so the slider never needs to be taller than wide. */
.single-product .woocommerce-product-gallery {
	container-type: inline-size;
}
.single-product .woocommerce-product-gallery .flex-viewport {
	max-height: 100cqw;
}
