/* =========================================================
   Sensual Moments — Child Theme Stylesheet
   Design: Plum Editorial (approved mockup, 2026-08-25)
   Theme: GeneratePress child
   Store: WooCommerce
   Targets the site's real DOM/classes (GeneratePress core classes,
   WooCommerce core classes, and the sm-* classes already saved in
   real page content) — replaces the old "CSS v8.57" Code Snippets
   stylesheet, not layered on top of it.
   ========================================================= */

@import url('https://fonts.googleapis.com/css2?family=Jost:wght@400;500;600&family=Playfair+Display:ital,wght@0,400;0,500;0,600;1,400&family=Parisienne&display=swap');

/* =========================================================
   01. Brand Tokens
   Real logo colour (#5A1848) is the one fixed constraint — every
   other token is derived from it. Keep the same custom-property
   NAMES as the old stylesheet (--sm-primary, --sm-deep, etc.) so
   nothing else on the site that reads these tokens breaks; only
   the VALUES change.
   ========================================================= */

:root {
	--sm-primary: #5A1848;
	--sm-deep: #3D0F30;
	--sm-berry: #6E2059;
	--sm-blush: #F3E9DF;
	--sm-cream: #FBF6F1;
	/* Collapsed to match --sm-cream: alternating cream/champagne section
	   backgrounds read as "boxed panels," not boutique. One consistent
	   page background now; white cards (not colour blocks) carry
	   contrast. Kept as its own variable so any future need for real
	   section variation has one place to change, not a find/replace. */
	--sm-champagne: #FBF6F1;
	--sm-text: #211016;
	--sm-muted: #8A7A80;
	--sm-border: #EDE1D6;
	--sm-white: #FFFFFF;
	--sm-black-plum: #24101C;

	/* Editorial direction is flat and square-edged, not soft/rounded —
	   keep the pill radius (used for buttons/inputs/tags) but zero the rest. */
	--sm-radius-sm: 0px;
	--sm-radius-md: 0px;
	--sm-radius-lg: 0px;
	--sm-radius-xl: 0px;
	--sm-radius-pill: 999px;

	/* Flat design — no drop shadows. Keep the variables (things still
	   reference them) but make them inert. */
	--sm-shadow-soft: none;
	--sm-shadow-hover: none;
	--sm-shadow-dark: none;

	--sm-max-width: 1400px;
}

/* =========================================================
   02. Base
   ========================================================= */

html {
	scroll-behavior: smooth;
	overflow-x: clip;
}

body {
	background: var(--sm-cream);
	color: var(--sm-text);
	font-family: 'Jost', Arial, sans-serif;
	font-size: 16px;
	line-height: 1.75;
	overflow-x: clip;
	text-rendering: optimizeLegibility;
}

@supports not (overflow-x: clip) {
	html, body { overflow-x: hidden; }
}

body, button, input, select, textarea {
	font-family: 'Jost', Arial, sans-serif;
}

body.home {
	background: var(--sm-cream) !important;
}

.site { background: transparent; }

/* Real bug: this rule set max-width on these elements without pairing
   it with margin:auto, so on any real browser window wide enough to
   actually hit that cap, the whole content column sat flush against
   the left edge with all the leftover space dumped on the right -
   invisible all session because the Customizer preview's own iframe
   viewport was never wide enough to trigger it, only surfacing once
   the theme went live on a real, wide monitor. */
.grid-container,
.inside-header,
.inside-navigation,
.inside-top-bar,
.site-content,
.footer-widgets-container,
.inside-site-info {
	max-width: var(--sm-max-width);
	margin-left: auto;
	margin-right: auto;
}

.separate-containers .inside-article,
.separate-containers .comments-area,
.separate-containers .page-header,
.one-container .site-content {
	background: transparent;
}

.inside-article {
	padding-top: 44px;
	padding-bottom: 44px;
}

::selection {
	background: var(--sm-blush);
	color: var(--sm-deep);
}

/* Homepage layout reset — full-bleed sections, no default page title */
.home .site-content,
.home .content-area,
.home .inside-article,
.home .entry-content {
	max-width: none !important;
	width: 100% !important;
}
.home .inside-article { padding: 0 !important; }
.home .entry-content { margin-top: 0 !important; }
/* Same Gutenberg default-padding bug found on every custom-built page
   (40px top+bottom on every auto-generated .wp-block-group__inner-
   container) - on the homepage it was stacking on top of .sm-home-
   section's own real 112px section padding, doubling the gap between
   sections. Every sm-* section here already sets its own real
   padding, so the default is always redundant. */
.home .entry-content .is-layout-constrained,
.home .entry-content .is-layout-flow {
	padding-top: 0 !important;
	padding-bottom: 0 !important;
}
.home .entry-title,
.home h1.entry-title { display: none !important; }

/* REVERTED: hiding .entry-title via display:none left a real <h1>
   sitting hidden in the DOM - not a real SEO fix, and every one of
   these pages already had its OWN separate real <h1> in the custom
   hero content, so this created a hidden-but-present duplicate H1
   rather than solving anything. Real per-page fix instead: keep
   .entry-title as the one true H1 (already styled identically to the
   hero via the Typography rules below), delete the redundant custom
   H1 block from each page's content, and center .entry-title to match
   the hero design. Done page-by-page as each one is worked through -
   see body.page-id-22715 below for Sizing Guide's version. */

/* =========================================================
   03. Typography
   ========================================================= */

h1, h2, h3, h4, h5, h6,
.entry-title,
.page-title,
.woocommerce-products-header__title {
	color: var(--sm-deep);
	font-family: 'Playfair Display', Georgia, serif;
	font-weight: 500;
	letter-spacing: 0;
	line-height: 1.15;
	text-transform: none;
}

h1, .entry-title, .page-title {
	font-size: clamp(36px, 4.5vw, 52px);
	margin-bottom: 20px;
}
h2 { font-size: clamp(26px, 3vw, 34px); margin-bottom: 18px; }
h3 { font-size: clamp(19px, 2vw, 24px); }

p { color: var(--sm-text); }

.entry-content p, .term-description p { max-width: 760px; }
/* A centered paragraph (author explicitly set text-align:center in the
   block editor) was only centering the TEXT inside its own box - the
   box itself had no margin:auto, so it just sat flush against its
   parent's left edge, reading as a left-aligned block even though the
   lines within it were centered. Only fires on paragraphs already
   marked centered, so it can't affect any left-aligned copy. */
.entry-content p.has-text-align-center,
.term-description p.has-text-align-center {
	margin-left: auto !important;
	margin-right: auto !important;
}

a {
	color: var(--sm-primary);
	text-decoration-thickness: 1px;
	text-underline-offset: 4px;
	transition: color 0.2s ease, opacity 0.2s ease;
}
a:hover, a:focus { color: var(--sm-berry); }

.sm-eyebrow,
.sm-lp-eyebrow,
.sm-lp-kicker,
.sm-info-kicker,
.sm-policy-eyebrow {
	font-family: 'Jost', sans-serif;
	font-size: 12px;
	font-weight: 600;
	letter-spacing: 3px;
	text-transform: uppercase;
	color: var(--sm-primary);
}

.sm-script,
.sm-mood-line {
	font-family: 'Parisienne', cursive;
}

/* =========================================================
   04. Buttons
   ========================================================= */

input[type="button"],
input[type="reset"],
input[type="submit"],
.button,
.wp-block-button__link,
.woocommerce a.button,
.woocommerce button.button,
.woocommerce #respond input#submit,
a.sm-btn,
.sm-btn {
	background: var(--sm-primary);
	border: 1px solid var(--sm-primary);
	border-radius: var(--sm-radius-pill);
	color: var(--sm-white) !important;
	font-family: 'Jost', sans-serif;
	font-size: 13px;
	font-weight: 600;
	letter-spacing: 1.5px;
	text-transform: uppercase;
	text-decoration: none !important;
	padding: 15px 34px;
	min-height: 46px;
	transition: background 0.2s ease, color 0.2s ease, border-color 0.2s ease;
	cursor: pointer;
}

input[type="button"]:hover,
input[type="submit"]:hover,
.button:hover,
.wp-block-button__link:hover,
.woocommerce a.button:hover,
.woocommerce button.button:hover,
a.sm-btn:hover {
	background: var(--sm-deep);
	border-color: var(--sm-deep);
	color: var(--sm-white) !important;
}

.wp-block-button.sm-button-soft .wp-block-button__link,
.sm-btn-outline {
	background: transparent;
	border: 1px solid var(--sm-text);
	color: var(--sm-text) !important;
}
.wp-block-button.sm-button-soft .wp-block-button__link:hover,
.sm-btn-outline:hover {
	background: var(--sm-text);
	color: var(--sm-white) !important;
}

/* =========================================================
   05. Header / Navigation
   Real GeneratePress markup — no header.php override needed,
   restyled via its own real classes.
   ========================================================= */

.site-header {
	background: var(--sm-cream);
	border-bottom: 1px solid var(--sm-border);
	box-shadow: none;
	backdrop-filter: none;
}

.site-header .inside-header { align-items: center; }

@media (min-width: 1025px) {
	.site-header .inside-header {
		display: flex !important;
		align-items: center !important;
		justify-content: space-between !important;
		padding: 22px 0 !important;
	}
	.site-header .site-logo img,
	.site-header .header-image,
	.site-header .custom-logo,
	.site-logo img,
	img.header-image {
		width: auto !important;
		height: 54px !important;
		max-height: 54px !important;
		object-fit: contain !important;
	}
	.main-navigation .main-nav > ul {
		display: flex !important;
		gap: 4px;
	}
	.main-navigation .main-nav > ul > li > a {
		white-space: nowrap !important;
		padding-left: 22px !important;
		padding-right: 22px !important;
		line-height: 40px !important;
		font-size: 13px !important;
	}
}

@media (max-width: 1024px) {
	.site-header .inside-header {
		display: flex !important;
		align-items: center !important;
		justify-content: space-between !important;
		padding: 16px 18px !important;
	}
	.site-header .site-logo img,
	.site-logo img,
	img.header-image {
		width: auto !important;
		height: 42px !important;
		object-fit: contain !important;
	}
}

.main-navigation,
.main-navigation ul ul {
	background: transparent;
}

.main-navigation .main-nav ul li a,
.main-navigation .menu-bar-items a {
	color: var(--sm-text);
	font-family: 'Jost', sans-serif;
	font-size: 13px;
	font-weight: 500;
	letter-spacing: 1.6px;
	text-transform: uppercase;
}

.main-navigation .main-nav ul li:hover > a,
.main-navigation .main-nav ul li:focus > a,
.main-navigation .main-nav ul li.current-menu-item > a,
.main-navigation .main-nav ul li.current-menu-ancestor > a {
	background: transparent;
	color: var(--sm-primary);
}

.main-navigation .main-nav ul ul {
	background: var(--sm-white);
	border: 1px solid var(--sm-border);
	border-radius: 0;
	box-shadow: 0 8px 24px rgba(33,16,22,0.08);
	padding: 6px;
}
.main-navigation .main-nav ul ul li a {
	border-radius: 0;
	color: var(--sm-text);
	font-size: 13px;
	text-transform: none;
	letter-spacing: 0;
	padding: 12px 16px;
}
.main-navigation .main-nav ul ul li:hover > a,
.main-navigation .main-nav ul ul li:focus > a {
	background: var(--sm-blush);
	color: var(--sm-primary);
}

.main-navigation .menu-toggle,
.mobile-menu-control-wrapper .menu-toggle,
button.menu-toggle {
	background: transparent !important;
	border: 1px solid var(--sm-border) !important;
	border-radius: 999px !important;
	box-shadow: none !important;
	color: var(--sm-text) !important;
	width: 42px !important;
	height: 42px !important;
}
.main-navigation .menu-toggle:hover,
button.menu-toggle:hover {
	background: var(--sm-blush) !important;
	color: var(--sm-primary) !important;
}
.main-navigation.toggled .main-nav > ul {
	background: var(--sm-white);
	border: 1px solid var(--sm-border);
	box-shadow: 0 8px 24px rgba(33,16,22,0.08);
	padding: 10px;
}

/* =========================================================
   06. WooCommerce Archives / Product Categories
   Filter Everything hooks into generate_before_main_content on
   these templates automatically — do not remove that hook. This
   section only restyles its own real classes (wpc-filters-*),
   it does not replace Filter Everything's UI.
   ========================================================= */

body.tax-product_cat,
body.post-type-archive-product {
	background: var(--sm-cream);
}

body.tax-product_cat .site-content.grid-container,
body.post-type-archive-product .site-content.grid-container {
	width: min(1400px, calc(100% - 128px)) !important;
	max-width: 1400px !important;
	margin: 0 auto !important;
	padding: 44px 0 100px !important;
}

body.tax-product_cat .inside-article,
body.post-type-archive-product .inside-article {
	background: transparent !important;
	border: 0;
	box-shadow: none;
	padding: 0 !important;
}

.woocommerce .woocommerce-breadcrumb {
	color: var(--sm-muted);
	font-family: 'Jost', sans-serif;
	font-size: 12px;
	margin-bottom: 22px;
}
.woocommerce .woocommerce-breadcrumb a { color: var(--sm-primary); text-decoration: none; }

.woocommerce-products-header {
	background: transparent;
	border: 0;
	box-shadow: none;
	margin-bottom: 40px;
	padding: 0;
	text-align: left;
}
.woocommerce-products-header__title {
	margin: 0 0 16px;
	font-size: clamp(32px, 4vw, 40px);
}
.term-description {
	color: var(--sm-text);
	font-family: 'Jost', sans-serif;
	font-size: 16px;
	font-weight: 400;
	line-height: 1.75;
	margin-left: 0;
	margin-right: 0;
	max-width: 900px;
}

.woocommerce-result-count,
.woocommerce-ordering {
	color: var(--sm-muted);
	font-family: 'Jost', sans-serif;
	font-size: 13px;
}

.woocommerce-ordering select,
select.orderby {
	background: var(--sm-white);
	border: 1px solid var(--sm-border);
	border-radius: 0;
	color: var(--sm-text);
	font-family: 'Jost', sans-serif;
	min-height: 44px;
	padding: 8px 18px;
}

.woocommerce ul.products {
	display: grid;
	gap: 28px 24px;
}
.woocommerce ul.products::before,
.woocommerce ul.products::after { display: none; }
.woocommerce ul.products.columns-4,
body.tax-product_cat ul.products.columns-4,
body.post-type-archive-product ul.products.columns-4 {
	grid-template-columns: repeat(4, minmax(0, 1fr));
}
.woocommerce ul.products.columns-3 {
	grid-template-columns: repeat(3, minmax(0, 1fr));
}

.woocommerce ul.products li.product,
.woocommerce-page ul.products li.product {
	background: transparent;
	border: 0;
	border-radius: 0;
	box-shadow: none;
	display: flex;
	flex-direction: column;
	float: none !important;
	margin: 0 !important;
	padding: 0;
	position: relative;
	text-align: left;
	transition: opacity 0.2s ease;
	width: auto !important;
}
.woocommerce ul.products li.product:hover {
	opacity: 0.88;
	border-color: transparent;
	box-shadow: none;
	transform: none;
}
.woocommerce ul.products li.product a img {
	aspect-ratio: 2 / 3;
	background: var(--sm-blush);
	border-radius: 0;
	box-shadow: none;
	margin: 0 0 14px;
	object-fit: cover;
	width: 100%;
}
.woocommerce ul.products li.product .woocommerce-loop-product__title {
	color: var(--sm-deep);
	font-family: 'Playfair Display', Georgia, serif;
	font-size: 15px;
	font-weight: 500;
	letter-spacing: 0;
	line-height: 1.3;
	min-height: 0;
	padding: 0;
	margin: 0 0 4px;
}
.woocommerce ul.products li.product .price {
	color: var(--sm-primary);
	display: block;
	font-family: 'Jost', sans-serif;
	font-size: 14px;
	font-weight: 500;
	margin-top: 0;
	margin-bottom: 0;
}
.woocommerce ul.products li.product .price del { color: var(--sm-muted); font-weight: 400; opacity: 0.7; }
.woocommerce ul.products li.product .price ins { color: var(--sm-primary); text-decoration: none; }
/* Real bug: cards in the same row have different title lengths (1 vs 2
   lines), so the button sat at a different height per-card instead of
   pinned to the bottom of the row - same pattern already fixed on the
   New Arrivals / Featured Collections grids. li.product is already a
   column flex container (above), so margin-top:auto on the button pins
   it to the bottom; the link wrapper's margin-bottom guarantees a
   minimum gap for the shortest-title cards too. */
.woocommerce ul.products li.product > a.woocommerce-loop-product__link {
	margin-bottom: 12px;
}
.woocommerce ul.products li.product .button {
	align-self: flex-start;
	margin-top: auto !important;
	font-size: 11px;
	min-height: 38px;
	padding: 10px 20px;
}

.woocommerce ul.products li.product-category {
	padding: 0;
	text-align: left;
}
.woocommerce ul.products li.product-category a {
	display: flex;
	flex-direction: column;
	height: 100%;
	text-decoration: none;
}
.woocommerce ul.products li.product-category a img {
	aspect-ratio: 2 / 3;
	height: auto;
	object-fit: cover;
	background: var(--sm-blush);
	border-radius: 0;
	margin-bottom: 14px;
}
.woocommerce ul.products li.product-category .woocommerce-loop-category__title {
	color: var(--sm-deep);
	font-family: 'Playfair Display', Georgia, serif;
	font-size: 17px;
	font-weight: 500;
	line-height: 1.2;
	margin: 0;
	padding: 0;
	text-align: left;
}

/* Restyle Filter Everything's own real UI to sit in the new palette
   rather than replacing it. Real classes confirmed against the live
   sidebar widget (product-category/plus-size/) - .wpc-filter-link is
   the actual swatch/label link class, not .wpc-filters-open-button
   (that's a drawer-trigger pattern this widget layout doesn't use,
   kept below in case another view uses it). Size checkboxes are left
   as plain default checkboxes - the old CSS never styled those either. */
body.tax-product_cat .widget_wpc_filters_widget,
body.post-type-archive-product .widget_wpc_filters_widget {
	background: var(--sm-white) !important;
	border: 1px solid var(--sm-border) !important;
	border-radius: var(--sm-radius-sm) !important;
	box-shadow: none !important;
	padding: 28px !important;
}
body.tax-product_cat .wpc-filters-section,
body.post-type-archive-product .wpc-filters-section {
	margin: 0 0 26px !important;
	padding: 0 0 22px !important;
	border-bottom: 1px solid var(--sm-border) !important;
}
body.tax-product_cat .wpc-filters-section:last-child,
body.post-type-archive-product .wpc-filters-section:last-child {
	margin-bottom: 0 !important;
	padding-bottom: 0 !important;
	border-bottom: 0 !important;
}
body.tax-product_cat .wpc-filter-title,
body.post-type-archive-product .wpc-filter-title {
	color: var(--sm-deep) !important;
	font-family: 'Playfair Display', Georgia, serif !important;
	font-size: 19px !important;
	font-weight: 500 !important;
	line-height: 1.2 !important;
	margin: 0 0 14px !important;
}
body.tax-product_cat .wpc-search-field,
body.post-type-archive-product .wpc-search-field {
	background: var(--sm-white) !important;
	border: 1px solid var(--sm-border) !important;
	border-radius: 0 !important;
	color: var(--sm-text) !important;
	font-family: 'Jost', sans-serif !important;
	font-size: 14px !important;
	min-height: 44px !important;
	padding: 10px 14px 10px 38px !important;
	width: 100% !important;
}
body.tax-product_cat .wpc-filters-ul-list,
body.post-type-archive-product .wpc-filters-ul-list {
	margin: 0 !important;
	padding: 0 !important;
}
body.tax-product_cat .wpc-filter-layout-labels .wpc-filters-ul-list,
body.post-type-archive-product .wpc-filter-layout-labels .wpc-filters-ul-list {
	display: flex !important;
	flex-wrap: wrap !important;
	gap: 8px !important;
}
body.tax-product_cat .wpc-term-item,
body.post-type-archive-product .wpc-term-item {
	list-style: none !important;
	margin: 0 !important;
}
body.tax-product_cat .wpc-filter-link,
body.post-type-archive-product .wpc-filter-link,
body.tax-product_cat .wpc-term-item label,
body.post-type-archive-product .wpc-term-item label {
	color: var(--sm-primary) !important;
	font-family: 'Jost', sans-serif !important;
	font-size: 13px !important;
	font-weight: 600 !important;
	text-decoration: none !important;
}
body.tax-product_cat .wpc-filter-layout-labels .wpc-filter-link,
body.post-type-archive-product .wpc-filter-layout-labels .wpc-filter-link {
	background: var(--sm-white) !important;
	border: 1px solid var(--sm-border) !important;
	border-radius: var(--sm-radius-pill) !important;
	display: inline-flex !important;
	line-height: 1 !important;
	padding: 9px 14px !important;
}
body.tax-product_cat .wpc-filter-layout-labels .wpc-filter-link:hover,
body.post-type-archive-product .wpc-filter-layout-labels .wpc-filter-link:hover {
	background: var(--sm-blush) !important;
	border-color: var(--sm-primary) !important;
	color: var(--sm-deep) !important;
}
body.tax-product_cat .wpc-see-more-control,
body.post-type-archive-product .wpc-see-more-control,
body.tax-product_cat .wpc-filters-main-wrap a,
body.post-type-archive-product .wpc-filters-main-wrap a {
	color: var(--sm-berry) !important;
	font-family: 'Jost', sans-serif !important;
	font-weight: 600 !important;
}

/* Drawer/open-button pattern - kept for whatever view (e.g. mobile) uses it,
   not confirmed present on the desktop sidebar widget checked live. */
.wpc-filters-open-button,
a.wpc-filters-open-widget {
	background: var(--sm-white) !important;
	border: 1px solid var(--sm-text) !important;
	border-radius: var(--sm-radius-pill) !important;
	color: var(--sm-text) !important;
	font-family: 'Jost', sans-serif !important;
	font-size: 13px !important;
	font-weight: 600 !important;
	letter-spacing: 1.5px !important;
	text-transform: uppercase !important;
}
.wpc-filters-apply-button {
	background: var(--sm-primary) !important;
	border-color: var(--sm-primary) !important;
	border-radius: var(--sm-radius-pill) !important;
	font-family: 'Jost', sans-serif !important;
}
.wpc-filters-widget-wrapper,
.wpc-filters-main-wrap {
	font-family: 'Jost', sans-serif !important;
	color: var(--sm-text) !important;
}

/* =========================================================
   07. WooCommerce Single Product
   ========================================================= */

body.single-product {
	background: var(--sm-cream);
}

body.single-product #content.site-content {
	box-sizing: border-box;
	margin-left: auto;
	margin-right: auto;
	max-width: 1400px;
	padding: 30px 64px 0;
}

body.single-product .inside-article {
	background: transparent;
	padding: 0;
}

body.single-product .woocommerce-breadcrumb {
	color: var(--sm-muted);
	font-family: 'Jost', sans-serif;
	font-size: 12px;
	margin: 0 0 18px;
}
body.single-product .woocommerce-breadcrumb a { color: var(--sm-primary); text-decoration: none; }

body.single-product div.product {
	background: transparent;
	border: 0;
	border-radius: 0;
	box-shadow: none;
	padding: 0;
	position: relative;
}
body.single-product div.product::before { display: none; }

body.single-product.woocommerce div.product div.images {
	background: transparent;
	border: 0;
	box-shadow: none;
	float: left !important;
	margin: 0 0 34px !important;
	padding: 0;
	width: 48% !important;
}
body.single-product.woocommerce div.product div.summary {
	background: transparent;
	border: 0;
	box-shadow: none;
	float: right !important;
	margin: 0 0 34px !important;
	padding: 0 0 0 40px;
	width: 48% !important;
}
body.single-product div.product div.summary::before { display: none; }

body.single-product div.product div.images img {
	background: var(--sm-blush);
	border-radius: 0;
	max-height: none;
	object-fit: cover;
	aspect-ratio: 2 / 3;
}
body.single-product div.product div.images .flex-control-thumbs {
	display: flex;
	gap: 12px;
	justify-content: flex-start;
	margin: 16px 0 0;
	padding: 0;
}
body.single-product div.product div.images .flex-control-thumbs li {
	background: var(--sm-white);
	border: 1px solid var(--sm-border);
	border-radius: 0;
	box-shadow: none;
	width: 72px;
}

body.single-product div.product .product_title {
	color: var(--sm-deep);
	font-family: 'Playfair Display', Georgia, serif;
	font-size: 32px;
	font-weight: 500;
	letter-spacing: 0;
	line-height: 1.2;
	margin: 0 0 12px;
	max-width: none;
}
body.single-product div.product p.price,
body.single-product div.product span.price {
	color: var(--sm-primary);
	font-family: 'Playfair Display', Georgia, serif;
	font-size: 24px;
	font-weight: 500;
	margin: 0 0 20px;
}
body.single-product div.product .woocommerce-product-details__short-description {
	border-top: 0;
	color: var(--sm-text);
	font-family: 'Jost', sans-serif;
	font-size: 15px;
	line-height: 1.75;
	margin: 0 0 28px;
	padding-top: 0;
}

body.single-product div.product form.cart {
	background: transparent;
	border: 0;
	box-shadow: none;
	margin: 0;
	padding: 0;
}
body.single-product div.product form.cart::before { display: none; }

body.single-product table.variations,
body.single-product table.variations tbody,
body.single-product table.variations tr,
body.single-product table.variations td,
body.single-product table.variations th {
	display: block;
	width: 100%;
}
body.single-product table.variations { margin-bottom: 18px; }
body.single-product table.variations tr + tr { margin-top: 20px; }
body.single-product table.variations label {
	color: var(--sm-muted);
	font-family: 'Jost', sans-serif;
	display: block;
	font-size: 11px;
	font-weight: 600;
	letter-spacing: 1px;
	text-transform: uppercase;
	margin-bottom: 10px;
}

body.single-product .reset_variations {
	color: var(--sm-primary);
	font-family: 'Jost', sans-serif;
	font-size: 12px;
}

body.single-product .quantity .qty {
	background: var(--sm-white);
	border: 1px solid var(--sm-border);
	border-radius: 0;
	color: var(--sm-text);
	font-family: 'Jost', sans-serif;
	min-height: 46px;
	width: 62px;
}

body.single-product div.product form.cart .button,
body.single-product div.product form.cart button.single_add_to_cart_button {
	background: var(--sm-primary) !important;
	border: 1px solid var(--sm-primary) !important;
	border-radius: var(--sm-radius-pill) !important;
	box-shadow: none !important;
	color: var(--sm-white) !important;
	font-family: 'Jost', sans-serif !important;
	font-size: 13px !important;
	font-weight: 600 !important;
	letter-spacing: 1.5px !important;
	text-transform: uppercase !important;
	min-height: 46px;
	padding: 13px 34px !important;
}
body.single-product div.product form.cart .button.disabled,
body.single-product div.product form.cart button.single_add_to_cart_button:disabled {
	background: var(--sm-muted) !important;
	border-color: var(--sm-muted) !important;
	box-shadow: none !important;
	opacity: 0.6 !important;
}

body.single-product div.product .product_meta { display: none !important; }

/* Real WooCommerce product tabs = the Description / Additional
   Information / Reviews tabs from the approved mockup. No custom
   JS needed — WooCommerce's own tabs.js drives these. */
body.single-product div.product .woocommerce-tabs {
	clear: both;
	margin-top: 60px;
	width: 100%;
}
body.single-product div.product .woocommerce-tabs ul.tabs {
	border: 0;
	border-bottom: 1px solid var(--sm-border);
	display: flex;
	gap: 40px;
	margin: 0 0 40px;
	padding: 0;
}
body.single-product div.product .woocommerce-tabs ul.tabs::before,
body.single-product div.product .woocommerce-tabs ul.tabs::after { display: none; }
body.single-product div.product .woocommerce-tabs ul.tabs li {
	background: transparent;
	border: 0;
	border-radius: 0;
	margin: 0 0 -1px;
	padding: 0;
}
body.single-product div.product .woocommerce-tabs ul.tabs li a {
	display: block;
	padding-bottom: 16px;
	font-family: 'Jost', sans-serif;
	font-size: 13px;
	font-weight: 500;
	letter-spacing: 1.5px;
	text-transform: uppercase;
	color: var(--sm-muted);
	text-decoration: none;
}
body.single-product div.product .woocommerce-tabs ul.tabs li.active a {
	color: var(--sm-primary);
	font-weight: 600;
	border-bottom: 2px solid var(--sm-primary);
}
body.single-product div.product .woocommerce-tabs .woocommerce-Tabs-panel {
	max-width: 760px;
	font-family: 'Jost', sans-serif;
	font-size: 15px;
	line-height: 1.75;
	color: var(--sm-text);
}
body.single-product div.product .woocommerce-tabs .woocommerce-Tabs-panel h2 {
	font-family: 'Playfair Display', Georgia, serif;
	font-size: 19px;
	font-weight: 500;
	margin: 34px 0 12px;
}
body.single-product div.product .woocommerce-tabs .woocommerce-Tabs-panel h2:first-child { margin-top: 0; }

/* Related products */
.related.products {
	clear: both;
	margin-top: 90px;
}
.related.products > h2 {
	font-size: 28px;
	text-align: center;
	margin-bottom: 40px;
}

/* =========================================================
   08. Forms / Cart / Checkout / Account
   ========================================================= */

input[type="text"],
input[type="email"],
input[type="url"],
input[type="password"],
input[type="search"],
input[type="tel"],
input[type="number"],
textarea,
select,
.woocommerce form .form-row input.input-text,
.woocommerce form .form-row textarea {
	background: var(--sm-white);
	border: 1px solid var(--sm-border);
	border-radius: 0;
	color: var(--sm-text);
	font-family: 'Jost', sans-serif;
	min-height: 46px;
	padding: 12px 15px;
	transition: border-color 0.2s ease;
}
input:focus, textarea:focus, select:focus,
.woocommerce form .form-row input.input-text:focus {
	border-color: var(--sm-primary);
	box-shadow: none;
	outline: none;
}

.woocommerce-account .woocommerce-MyAccount-content,
.woocommerce-account .woocommerce-MyAccount-navigation {
	background: var(--sm-blush);
	border: 0;
	border-radius: 0;
	box-shadow: none;
	padding: 34px;
}

/* Real WooCommerce Cart/Checkout Blocks (Gutenberg, not the classic
   shortcode markup) - confirmed live on both /cart/ and /checkout/,
   real classes read directly from the rendered DOM, not guessed. */
body.woocommerce-cart .wc-block-components-sidebar-layout,
body.woocommerce-checkout .wc-block-components-sidebar-layout {
	max-width: 1180px;
	margin: 0 auto;
}
body.woocommerce-cart .wc-block-components-main,
body.woocommerce-checkout .wc-block-checkout__main,
body.woocommerce-cart .wc-block-components-sidebar,
body.woocommerce-checkout .wc-block-checkout__sidebar {
	background: var(--sm-white);
	border: 1px solid var(--sm-border);
	border-radius: 0;
	box-shadow: none;
	padding: 32px;
}
body.woocommerce-cart .wc-block-components-sidebar,
body.woocommerce-checkout .wc-block-checkout__sidebar {
	background: var(--sm-blush);
}
body.woocommerce-cart .wc-block-cart-items__header th,
body.woocommerce-cart .wc-block-cart__totals-title,
body.woocommerce-checkout .wc-block-checkout__title,
body.woocommerce-checkout h2 {
	color: var(--sm-deep);
	font-family: 'Playfair Display', Georgia, serif;
	font-weight: 500;
}
body.woocommerce-cart .wc-block-cart-item__product a,
body.woocommerce-cart .wc-block-components-product-name {
	color: var(--sm-deep);
	font-family: 'Playfair Display', Georgia, serif;
	font-size: 16px;
	font-weight: 500;
	text-decoration: none;
}
body.woocommerce-cart .wc-block-cart-item__image img,
body.woocommerce-cart .wc-block-components-product-image img {
	border-radius: 0;
	background: var(--sm-blush);
}
body.woocommerce-cart .wc-block-cart-item__remove-link,
body.woocommerce-cart button.wc-block-cart-item__remove-link,
body.woocommerce-cart a.wc-block-cart-item__remove-link {
	color: var(--sm-muted) !important;
	font-family: 'Jost', sans-serif;
	font-size: 12px;
	text-decoration: underline;
}
body.woocommerce-cart .wc-block-cart-item__remove-link:hover {
	color: var(--sm-primary) !important;
}

/* Blocks buttons (quantity steppers, coupon apply, Place Order, Proceed
   to Checkout) use their own component class, not .button - the
   section 04 button rules don't reach these without this. */
.wc-block-components-button:not(.wc-block-components-quantity-selector__button) {
	background: var(--sm-primary) !important;
	border: 1px solid var(--sm-primary) !important;
	border-radius: var(--sm-radius-pill) !important;
	box-shadow: none !important;
	color: var(--sm-white) !important;
	font-family: 'Jost', sans-serif !important;
	font-size: 13px !important;
	font-weight: 600 !important;
	letter-spacing: 1.5px !important;
	text-transform: uppercase !important;
}
.wc-block-components-button:not(.wc-block-components-quantity-selector__button):hover {
	background: var(--sm-deep) !important;
	border-color: var(--sm-deep) !important;
}
.wc-block-components-button.wc-block-components-totals-coupon__button,
.wc-block-components-totals-coupon .wc-block-components-button {
	background: transparent !important;
	border: 1px solid var(--sm-text) !important;
	color: var(--sm-text) !important;
}
.wc-block-components-quantity-selector {
	border: 1px solid var(--sm-border) !important;
	border-radius: var(--sm-radius-pill) !important;
	background: var(--sm-white) !important;
}
.wc-block-components-quantity-selector__button {
	background: transparent !important;
	color: var(--sm-text) !important;
}
.wc-block-components-quantity-selector__input {
	font-family: 'Jost', sans-serif !important;
	color: var(--sm-text) !important;
}
body.woocommerce-checkout .wc-block-components-radio-control__label,
body.woocommerce-checkout .wc-block-components-checkbox__label,
body.woocommerce-checkout label {
	font-family: 'Jost', sans-serif;
	color: var(--sm-text);
}
body.woocommerce-checkout .wc-block-components-text-input input,
body.woocommerce-checkout .wc-block-components-text-input textarea,
body.woocommerce-checkout select {
	background: var(--sm-white) !important;
	border: 1px solid var(--sm-border) !important;
	border-radius: 0 !important;
	font-family: 'Jost', sans-serif !important;
}
body.woocommerce-checkout .wc-block-checkout__terms {
	font-family: 'Jost', sans-serif;
	font-size: 12px;
	color: var(--sm-muted);
}
body.woocommerce-checkout .wc-block-checkout__terms a {
	color: var(--sm-primary);
}

.woocommerce table.shop_table {
	background: transparent;
	border: 0;
	border-collapse: collapse;
	border-radius: 0;
}
.woocommerce table.shop_table th {
	color: var(--sm-deep);
	font-family: 'Playfair Display', Georgia, serif;
	font-weight: 500;
	border-bottom: 2px solid var(--sm-text);
}
.woocommerce table.shop_table td { border-bottom: 1px solid var(--sm-border); }

/* Real WooCommerce "added to cart" notice — this IS the pill
   notification from the live screenshot; restyled here, not
   rebuilt. */
.woocommerce-info,
.woocommerce-message,
.woocommerce-error {
	background: var(--sm-white);
	border: 1px solid var(--sm-primary);
	border-radius: 40px;
	box-shadow: none;
	color: var(--sm-text);
	font-family: 'Jost', sans-serif;
	font-size: 14px;
	padding: 14px 14px 14px 24px;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 20px;
}
.woocommerce-message { border-color: var(--sm-primary); }
.woocommerce-info { border-color: var(--sm-berry); }
.woocommerce-error { border-color: #9f2344; }
/* Real bug: WooCommerce's default notice icon (its own icon font,
   ::before on the notice) wasn't rendering - the font glyph came
   through as an empty "tofu" box overlapping the pill's border. Never
   restyled for these particular notices (My Account > Orders, when
   empty/logged out via email), so it kept WooCommerce's stock look.
   Hidden here rather than fixing the font, matching the established
   pattern of dropping default icons the redesign doesn't use. */
.woocommerce-info::before,
.woocommerce-message::before,
.woocommerce-error::before {
	display: none !important;
}
/* This rule only covered .woocommerce-message's button before, so
   .woocommerce-info notices (e.g. "Confirm your email address" /
   "No order has been made yet") kept the default button sizing with
   no white-space:nowrap, wrapping "Confirm Email Address" onto two
   cramped lines inside the pill. */
.woocommerce-message a.button.wc-forward,
.woocommerce-message .button,
.woocommerce-info a.button.wc-forward,
.woocommerce-info .button,
.woocommerce-error a.button.wc-forward,
.woocommerce-error .button {
	background: var(--sm-primary);
	border-radius: 30px;
	color: var(--sm-white) !important;
	font-size: 12px;
	padding: 12px 26px;
	white-space: nowrap;
}

/* Blog archive header - the real "Blog" page content (Settings >
   Reading > Posts Page), rendered explicitly above the post loop by
   functions.php since WordPress never renders a posts page's own
   content on its own. */
.sm-blog-page-header {
	margin-bottom: 40px;
	padding-bottom: 32px;
	border-bottom: 1px solid var(--sm-border);
}
.sm-blog-page-title {
	margin: 0 0 12px !important;
	font-family: 'Playfair Display', Georgia, serif !important;
	font-size: clamp(36px, 4.5vw, 52px) !important;
	font-weight: 500 !important;
	color: var(--sm-deep) !important;
}
.sm-blog-page-header p { color: var(--sm-text); font-family: 'Jost', sans-serif; }
.sm-blog-page-header h2 {
	font-family: 'Playfair Display', Georgia, serif !important;
	color: var(--sm-deep) !important;
	font-weight: 500 !important;
}
.sm-blog-page-header .wp-block-button__link {
	background: var(--sm-primary) !important;
	border-radius: 999px !important;
	color: var(--sm-white) !important;
	box-shadow: none !important;
}

.woocommerce-MyAccount-navigation ul {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: 4px;
}
.woocommerce-MyAccount-navigation li a {
	display: block;
	padding: 16px 22px;
	font-family: 'Jost', sans-serif;
	font-size: 14px;
	font-weight: 500;
	color: var(--sm-text);
	text-decoration: none;
}
.woocommerce-MyAccount-navigation li.is-active a {
	background: var(--sm-white);
	color: var(--sm-primary);
	font-weight: 600;
}

/* =========================================================
   09. Blog / Content Cards
   ========================================================= */

.post,
.blog .inside-article,
.archive .inside-article,
.search .inside-article {
	background: transparent;
	border: 0;
	box-shadow: none;
}

/* =========================================================
   10. Footer
   ========================================================= */

.footer-widgets {
	background: var(--sm-champagne) !important;
	border-top: 1px solid var(--sm-border) !important;
	color: var(--sm-text) !important;
	padding-top: 80px !important;
	padding-bottom: 56px !important;
}
.footer-widgets-container,
.footer-widgets .footer-widgets-container {
	width: 100% !important;
	max-width: 1400px !important;
	margin-left: auto !important;
	margin-right: auto !important;
	padding-left: 64px !important;
	padding-right: 64px !important;
}
.footer-widgets .inside-footer-widgets {
	width: 100% !important;
	max-width: none !important;
	display: grid !important;
	grid-template-columns: 1.3fr 1fr 1fr 1.4fr !important;
	column-gap: 40px !important;
	row-gap: 32px !important;
	justify-content: start !important;
	justify-items: start !important;
	align-items: start !important;
	margin: 0 !important;
	padding: 0 !important;
	text-align: left !important;
}
.footer-widgets .footer-widget-1,
.footer-widgets .footer-widget-2,
.footer-widgets .footer-widget-3,
.footer-widgets .footer-widget-4,
.footer-widgets .widget {
	float: none !important;
	width: auto !important;
	max-width: none !important;
	margin: 0 !important;
	padding: 0 !important;
	text-align: left !important;
}
.footer-widgets .footer-widget-1 img,
.footer-widgets .footer-widget-1 .custom-logo {
	width: 140px !important;
	max-width: 140px !important;
	height: auto !important;
	opacity: 1 !important;
	margin: 0 0 18px !important;
	border-radius: 0 !important;
	box-shadow: none !important;
}
.footer-widgets .footer-widget-1 p {
	max-width: 220px !important;
	margin: 0 !important;
	color: var(--sm-muted) !important;
	font-family: 'Jost', sans-serif !important;
	font-size: 13px !important;
	line-height: 1.6 !important;
	text-align: left !important;
}
.footer-widgets .widget-title,
.footer-widgets h2,
.footer-widgets h3 {
	color: var(--sm-primary) !important;
	font-family: 'Jost', sans-serif !important;
	font-size: 11px !important;
	font-weight: 600 !important;
	letter-spacing: 2px !important;
	text-transform: uppercase !important;
	margin: 0 0 20px !important;
	text-align: left !important;
}
.footer-widgets ul { margin: 0 !important; padding: 0 !important; list-style: none !important; text-align: left !important; }
.footer-widgets li { margin: 0 0 12px !important; padding: 0 !important; text-align: left !important; }
.footer-widgets a {
	color: var(--sm-text) !important;
	font-family: 'Jost', sans-serif !important;
	font-size: 14px !important;
	font-weight: 400 !important;
	text-align: left !important;
	text-decoration: none !important;
}
.footer-widgets a:hover, .footer-widgets a:focus { color: var(--sm-primary) !important; }

.site-info, .site-footer .site-info {
	background: var(--sm-champagne) !important;
	border-top: 1px solid var(--sm-border) !important;
	color: var(--sm-muted) !important;
	font-family: 'Jost', sans-serif !important;
	font-size: 12px !important;
	padding-top: 28px !important;
	padding-bottom: 28px !important;
	text-align: left !important;
}
.site-info .inside-site-info, .site-footer .inside-site-info {
	width: 100% !important;
	max-width: 1400px !important;
	display: flex !important;
	align-items: center !important;
	justify-content: space-between !important;
	margin-left: auto !important;
	margin-right: auto !important;
	padding-left: 64px !important;
	padding-right: 64px !important;
	text-align: left !important;
}
.site-info a { color: var(--sm-primary) !important; }

/* =========================================================
   11. Responsive
   ========================================================= */

@media (max-width: 1024px) {
	body.single-product.woocommerce div.product div.images,
	body.single-product.woocommerce div.product div.summary {
		float: none !important;
		width: 100% !important;
		padding: 0 !important;
	}
	.woocommerce ul.products.columns-4,
	body.tax-product_cat ul.products.columns-4,
	body.post-type-archive-product ul.products.columns-4 {
		grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
	}
	.footer-widgets .inside-footer-widgets {
		grid-template-columns: 1fr 1fr !important;
	}
}

@media (max-width: 600px) {
	.woocommerce ul.products.columns-4,
	.woocommerce ul.products.columns-3 {
		grid-template-columns: repeat(1, minmax(0, 1fr)) !important;
	}
	.footer-widgets .inside-footer-widgets {
		grid-template-columns: 1fr !important;
	}
	body.tax-product_cat .site-content.grid-container,
	body.post-type-archive-product .site-content.grid-container,
	body.single-product #content.site-content {
		padding-left: 24px !important;
		padding-right: 24px !important;
	}
}
