/*
Theme Name:   Ember & Moss
Theme URI:    https://woo-demo.duckdns.org/
Description:  Child theme of Storefront for the Ember & Moss WooCommerce learning store (a fictional candle studio). Presentation only; demo behavior lives in the ember-moss-demo MU-plugin.
Author:       Woo Demo — Training
Template:     storefront
Version:      1.0.0
License:      GPL-2.0-or-later
Text Domain:  ember-moss
*/

/* ==========================================================================
   Tokens
   Contrast (WCAG 2.2, checked with scripts/contrast.py):
     charcoal  #262823 on ivory 13.2:1   forest #29453B on ivory 9.3:1
     ivory on forest 9.3:1               clay-ink #9A4E2F on ivory 5.3:1
     terracotta #B86745 on ivory 3.7:1 -> large text, icons and focus rings only
   ========================================================================== */
:root {
	--emd-ivory: #F6F1E7;
	--emd-ivory-deep: #EDE4D3;
	--emd-paper: #FBF8F1;
	--emd-forest: #29453B;
	--emd-forest-deep: #1E352D;
	--emd-terracotta: #B86745;
	--emd-clay-ink: #9A4E2F;
	--emd-charcoal: #262823;
	--emd-muted: #5B5E55;
	--emd-line: #DCD2BF;
	--emd-sage: #A9B8A0;
	--emd-radius: 14px;
	--emd-radius-sm: 8px;
	--emd-shadow: 0 1px 2px rgba(38, 40, 35, .06), 0 8px 24px rgba(38, 40, 35, .07);
	--emd-shadow-hover: 0 2px 4px rgba(38, 40, 35, .07), 0 16px 36px rgba(38, 40, 35, .12);
	--emd-serif: "Fraunces", "Iowan Old Style", "Palatino Linotype", Palatino, Georgia, serif;
	--emd-sans: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
	--emd-ease: cubic-bezier(.2, .7, .2, 1);
	--emd-gutter: clamp(16px, 4vw, 40px);
}

@font-face {
	font-family: "Fraunces";
	font-style: normal;
	font-display: swap;
	font-weight: 100 900;
	src: url("assets/fonts/fraunces-latin-full-normal.woff2") format("woff2-variations"),
		url("assets/fonts/fraunces-latin-full-normal.woff2") format("woff2");
}
@font-face {
	font-family: "Fraunces";
	font-style: italic;
	font-display: swap;
	font-weight: 100 900;
	src: url("assets/fonts/fraunces-latin-full-italic.woff2") format("woff2-variations"),
		url("assets/fonts/fraunces-latin-full-italic.woff2") format("woff2");
}

/* ==========================================================================
   Base
   ========================================================================== */
html { scroll-behavior: smooth; }
body,
button, input, select, textarea {
	font-family: var(--emd-sans);
	color: var(--emd-charcoal);
}
body {
	background: var(--emd-ivory);
	font-size: 17px;
	line-height: 1.65;
	-webkit-font-smoothing: antialiased;
	text-rendering: optimizeLegibility;
}
h1, h2, h3, h4, h5, h6,
.site-title, .entry-title, .product_title,
.woocommerce-loop-product__title, .wc-block-components-title {
	font-family: var(--emd-serif);
	font-variation-settings: "SOFT" 50, "WONK" 0;
	color: var(--emd-forest);
	letter-spacing: -.01em;
	font-weight: 560;
}
h1 { font-size: clamp(2.1rem, 1.6rem + 2.2vw, 3.4rem); line-height: 1.08; }
h2 { font-size: clamp(1.6rem, 1.3rem + 1.2vw, 2.35rem); line-height: 1.15; }
h3 { font-size: 1.35rem; line-height: 1.25; }
a { color: var(--emd-clay-ink); text-underline-offset: 3px; }
a:hover { color: var(--emd-forest); }
p { margin-bottom: 1.2em; }
::selection { background: var(--emd-forest); color: var(--emd-ivory); }

/* Visible keyboard focus everywhere (Storefront's default is faint on ivory). */
a:focus-visible, button:focus-visible, input:focus-visible, select:focus-visible,
textarea:focus-visible, [tabindex]:focus-visible, .button:focus-visible,
summary:focus-visible {
	outline: 3px solid var(--emd-terracotta);
	outline-offset: 3px;
	border-radius: 4px;
	box-shadow: none;
}
.screen-reader-text:focus { background: var(--emd-paper); color: var(--emd-forest); }

.col-full { max-width: 1240px; padding-left: var(--emd-gutter); padding-right: var(--emd-gutter); box-sizing: border-box; }
/* Storefront uses side margins on phones; this theme uses padding, so zero the margins. */
.col-full { margin-left: auto !important; margin-right: auto !important; }

/* ==========================================================================
   Demo banner (markup from the MU-plugin)
   ========================================================================== */
.emd-demo-banner {
	background: var(--emd-forest-deep);
	color: var(--emd-ivory);
	font-size: 14px;
	line-height: 1.45;
	text-align: center;
	padding: .65em var(--emd-gutter);
	position: relative;
	z-index: 100;
}
.emd-demo-banner strong { letter-spacing: .08em; font-weight: 700; }
.emd-demo-banner a { color: var(--emd-ivory); font-weight: 600; white-space: nowrap; }
.emd-demo-notice {
	border: 1px solid var(--emd-forest);
	background: var(--emd-paper);
	color: var(--emd-forest);
	border-radius: var(--emd-radius-sm);
	padding: .9em 1.1em;
	margin: 0 0 1.5em;
}
.emd-demo-notice p { margin: 0; }

/* ==========================================================================
   Header
   ========================================================================== */
.site-header {
	background: var(--emd-ivory);
	border-bottom: 1px solid var(--emd-line);
	padding-top: 1.25em;
	margin-bottom: 0;
}
.site-header .site-branding { margin-bottom: 1em; }
.emd-logo { display: inline-flex; align-items: center; text-decoration: none; color: var(--emd-forest); }
.emd-logo svg { height: 44px; width: auto; display: block; }
.emd-logo:hover { color: var(--emd-forest); }
.site-branding .site-description {
	font-family: var(--emd-serif);
	font-style: italic;
	color: var(--emd-muted);
	margin: .2em 0 0;
	font-size: .95rem;
}
.site-search .widget_product_search input[type=search],
.site-search .widget_product_search input[type=text] {
	background: var(--emd-paper);
	border: 1px solid var(--emd-line);
	border-radius: 999px;
	padding: .7em 1.1em .7em 2.6em;
	box-shadow: none;
}
.site-header-cart .cart-contents,
.main-navigation ul li a,
.secondary-navigation ul li a { color: var(--emd-forest); }
.main-navigation ul.menu > li > a,
.main-navigation ul.nav-menu > li > a {
	font-weight: 600;
	font-size: .95rem;
	letter-spacing: .01em;
	padding: 1.1em .95em;
}
.main-navigation ul.menu > li.current-menu-item > a,
.main-navigation ul.menu > li > a:hover { color: var(--emd-clay-ink); }
.main-navigation ul.menu ul, .main-navigation ul.nav-menu ul { background: var(--emd-paper); box-shadow: var(--emd-shadow); }
.storefront-primary-navigation { background: transparent; }
.site-header-cart .cart-contents .count {
	background: var(--emd-forest);
	color: var(--emd-ivory);
	opacity: 1;
	border-radius: 999px;
	padding: 0 .55em;
	font-weight: 600;
}
.site-header-cart .widget_shopping_cart { background: var(--emd-paper); box-shadow: var(--emd-shadow); }
button.menu-toggle {
	border-color: var(--emd-forest);
	color: var(--emd-forest);
	background: transparent;
	border-radius: 999px;
	font-weight: 600;
}
button.menu-toggle::before, button.menu-toggle::after, button.menu-toggle span::before { background-color: var(--emd-forest); }
@media (max-width: 767px) {
	.site-header { padding-top: .9em; }
	.emd-logo svg { height: 36px; }
	.site-branding .site-description { display: none; }
	.site-header { padding-bottom: .4em; }
	.site-header .site-branding { margin-bottom: .6em; }
	.site-header .main-navigation { padding-bottom: 0; margin-bottom: 0; }
	.site-header button.menu-toggle { margin: 0; }
	.site-header .emd-brand { margin: 0; }
	.main-navigation.toggled ul.menu > li > a { padding: .9em 0; border-bottom: 1px solid var(--emd-line); }
}

.storefront-breadcrumb { background: transparent; margin-bottom: 1.5em; padding: 1.1em 0 0; }
.woocommerce-breadcrumb { font-size: .85rem; color: var(--emd-muted); }
.woocommerce-breadcrumb a { color: var(--emd-forest); }

/* ==========================================================================
   Buttons and forms
   ========================================================================== */
button, input[type=button], input[type=reset], input[type=submit],
.button, .added_to_cart, .wc-block-components-button:not(.is-link),
.wp-block-button__link, .wp-element-button {
	background: var(--emd-forest);
	border: 1px solid var(--emd-forest);
	color: var(--emd-ivory);
	border-radius: 999px;
	font-weight: 600;
	letter-spacing: .01em;
	padding: .85em 1.6em;
	transition: background-color .2s var(--emd-ease), transform .2s var(--emd-ease), box-shadow .2s var(--emd-ease);
	text-decoration: none;
}
button:hover, input[type=submit]:hover, .button:hover, .added_to_cart:hover,
.wp-block-button__link:hover, .wp-element-button:hover {
	background: var(--emd-forest-deep);
	border-color: var(--emd-forest-deep);
	color: var(--emd-ivory);
}
.button.alt, button.alt, .single_add_to_cart_button, .checkout-button, #place_order,
.wc-block-components-checkout-place-order-button {
	background: var(--emd-clay-ink) !important;
	border-color: var(--emd-clay-ink) !important;
	color: #fff !important;
}
.button.alt:hover, .single_add_to_cart_button:hover, .checkout-button:hover, #place_order:hover {
	background: #7F3F25 !important;
	border-color: #7F3F25 !important;
}
.is-style-outline .wp-block-button__link, .emd-button-ghost {
	background: transparent;
	color: var(--emd-forest);
	border: 1.5px solid var(--emd-forest);
}
.is-style-outline .wp-block-button__link:hover, .emd-button-ghost:hover { background: var(--emd-forest); color: var(--emd-ivory); }
input[type=text], input[type=email], input[type=url], input[type=password], input[type=search],
input[type=number], input[type=tel], textarea, select, .select2-container .select2-selection--single {
	background: var(--emd-paper);
	border: 1px solid #CFC4AE;
	border-radius: var(--emd-radius-sm);
	box-shadow: none;
	color: var(--emd-charcoal);
}
input:focus, textarea:focus, select:focus { background: #fff; border-color: var(--emd-forest); }
label { font-weight: 600; color: var(--emd-forest); }

/* ==========================================================================
   Product grid (shop, categories, home)
   ========================================================================== */
ul.products li.product {
	background: var(--emd-paper);
	border-radius: var(--emd-radius);
	padding: 0 0 1.25em;
	box-shadow: var(--emd-shadow);
	overflow: hidden;
	transition: transform .35s var(--emd-ease), box-shadow .35s var(--emd-ease);
	text-align: left;
}
ul.products li.product:hover { transform: translateY(-3px); box-shadow: var(--emd-shadow-hover); }
ul.products li.product img { width: 100%; margin: 0 0 1em; border-radius: 0; transition: transform .6s var(--emd-ease); }
ul.products li.product:hover img { transform: scale(1.025); }
ul.products li.product .woocommerce-LoopProduct-link { display: block; overflow: hidden; text-decoration: none; }
ul.products li.product .woocommerce-loop-product__title,
ul.products li.product h2, ul.products li.product h3 {
	font-size: 1.15rem;
	padding: 0 1.1rem;
	margin-bottom: .2em;
}
ul.products li.product .price {
	color: var(--emd-charcoal);
	font-weight: 600;
	padding: 0 1.1rem;
	display: block;
	margin-bottom: 1em;
}
ul.products li.product .price del { color: var(--emd-muted); opacity: 1; }
ul.products li.product .price ins { color: var(--emd-clay-ink); font-weight: 700; }
ul.products li.product .emd-notes {
	display: block;
	padding: 0 1.1rem;
	margin: 0 0 .6em;
	font-size: .88rem;
	color: var(--emd-muted);
	line-height: 1.45;
}
ul.products li.product .button { margin: 0 1.1rem; padding: .6em 1.2em; font-size: .9rem; }
ul.products li.product .star-rating { margin: 0 1.1rem .6em; }
.onsale {
	background: var(--emd-clay-ink);
	color: #fff;
	border: 0;
	border-radius: 999px;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: .06em;
	font-size: .72rem;
	padding: .35em .9em;
}
ul.products li.product .onsale { position: absolute; top: 12px; left: 12px; z-index: 2; margin: 0; }
ul.products li.product { position: relative; }
.emd-stock-chip {
	display: inline-block;
	margin: 0 1.1rem .6em;
	font-size: .76rem;
	font-weight: 700;
	letter-spacing: .04em;
	text-transform: uppercase;
	border-radius: 999px;
	padding: .2em .7em;
	background: var(--emd-ivory-deep);
	color: var(--emd-forest);
}
.emd-stock-chip.is-out { background: #E9DCD5; color: #6E3420; }

.woocommerce-products-header { padding: 0 0 1em; }
.woocommerce-products-header__title.page-title { margin-bottom: .2em; }
.term-description, .woocommerce-products-header .page-description { color: var(--emd-muted); max-width: 46em; }
.storefront-sorting { font-size: .9rem; margin-bottom: 1.5em; }
.storefront-sorting .woocommerce-ordering select { border-radius: 999px; padding: .45em 1em; }
.woocommerce-pagination .page-numbers li .page-numbers.current { background: var(--emd-forest); color: var(--emd-ivory); border-radius: 999px; }

/* Shop sidebar filters */
.widget-area .widget { margin-bottom: 2em; }
.widget-area .widget .widget-title, .widget-area .widget .widgettitle {
	font-family: var(--emd-serif);
	font-size: 1.1rem;
	color: var(--emd-forest);
	border-bottom: 1px solid var(--emd-line);
	padding-bottom: .5em;
	margin-bottom: .8em;
	font-weight: 560;
}
.widget ul li { padding: .3em 0; border: 0; }
.widget ul li a { color: var(--emd-charcoal); text-decoration: none; }
.widget ul li a:hover, .widget ul li.chosen a { color: var(--emd-clay-ink); }
.widget_layered_nav li.chosen a::before { color: var(--emd-clay-ink); }
.widget_price_filter .ui-slider .ui-slider-range, .widget_price_filter .ui-slider .ui-slider-handle { background: var(--emd-forest); }
.widget_price_filter .price_slider_wrapper .ui-widget-content { background: var(--emd-line); }
.emd-filter-toggle { display: none; }
@media (max-width: 767px) {
	.emd-has-filters .emd-filter-toggle {
		display: inline-flex;
		align-items: center;
		gap: .5em;
		margin: 0 0 1em;
		background: transparent;
		color: var(--emd-forest);
		border: 1.5px solid var(--emd-forest);
	}
	.emd-has-filters #secondary { order: -1; }
	.emd-has-filters #secondary[hidden] { display: none; }
	.emd-has-filters .content-area { display: flex; flex-direction: column; }
}

/* ==========================================================================
   Single product
   ========================================================================== */
.single-product div.product .woocommerce-product-gallery {
	background: var(--emd-paper);
	border-radius: var(--emd-radius);
	overflow: hidden;
	box-shadow: var(--emd-shadow);
}
.single-product div.product .woocommerce-product-gallery .flex-control-thumbs li img { border-radius: var(--emd-radius-sm); }
.single-product div.product .product_title { margin-bottom: .2em; }
.single-product div.product p.price { color: var(--emd-charcoal); font-size: 1.5rem; font-weight: 600; }
.single-product div.product p.price ins { color: var(--emd-clay-ink); }
.emd-scent-meta { display: flex; flex-wrap: wrap; gap: .5em; margin: 0 0 1.1em; padding: 0; list-style: none; }
.emd-scent-meta li {
	font-size: .78rem;
	font-weight: 700;
	letter-spacing: .06em;
	text-transform: uppercase;
	color: var(--emd-forest);
	background: var(--emd-ivory-deep);
	border-radius: 999px;
	padding: .3em .85em;
}
.emd-notes-line { font-family: var(--emd-serif); font-style: italic; font-size: 1.15rem; color: var(--emd-forest); margin-bottom: .8em; }
.single-product div.product .woocommerce-product-details__short-description { color: var(--emd-charcoal); }
.single-product div.product form.cart { padding: 1.2em 0; border-top: 1px solid var(--emd-line); border-bottom: 1px solid var(--emd-line); }
.single-product div.product .variations th, .single-product div.product .variations td { background: transparent; padding: .4em 0; }
.single-product div.product .variations select { min-width: 220px; }
.single-product div.product .quantity .qty { border-radius: 999px; width: 4.2em; }
.single-product .stock.in-stock { color: var(--emd-forest); font-weight: 600; }
.single-product .stock.out-of-stock { color: #8A3A1F; font-weight: 600; }
.single-product .stock.available-on-backorder { color: var(--emd-clay-ink); font-weight: 600; }
.emd-assurance {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
	gap: .75em;
	margin: 1.2em 0 0;
	padding: 0;
	list-style: none;
	font-size: .88rem;
	color: var(--emd-muted);
}
.emd-assurance li { background: var(--emd-paper); border-radius: var(--emd-radius-sm); padding: .7em .9em; }
.emd-assurance strong { display: block; color: var(--emd-forest); }
.woocommerce-tabs ul.tabs li a { color: var(--emd-forest); font-weight: 600; }
.woocommerce-tabs ul.tabs li.active a { color: var(--emd-clay-ink); }
.emd-sample-review {
	display: inline-block;
	font-size: .72rem;
	font-weight: 700;
	letter-spacing: .06em;
	text-transform: uppercase;
	background: var(--emd-ivory-deep);
	color: var(--emd-forest);
	border-radius: 999px;
	padding: .2em .7em;
	margin: 0 0 .5em;
}
.star-rating span::before, .star-rating::before { color: var(--emd-terracotta); }
.related.products > h2, .upsells.products > h2, .cross-sells > h2 { font-size: 1.6rem; margin-bottom: 1em; }

/* ==========================================================================
   Cart, checkout, account
   ========================================================================== */
table.shop_table, .woocommerce-cart-form, .cart_totals, #order_review,
.woocommerce-MyAccount-content, .woocommerce-form-login, .woocommerce-checkout-review-order {
	background: var(--emd-paper);
	border-radius: var(--emd-radius);
}
.woocommerce-cart-form, .cart-collaterals .cart_totals { padding: 1.25em; box-shadow: var(--emd-shadow); }
table.shop_table th { background: transparent; color: var(--emd-forest); }
table.shop_table td, table.shop_table th { border-color: var(--emd-line); }
table.cart td.product-thumbnail img { border-radius: var(--emd-radius-sm); max-width: 72px; }
.woocommerce-form-login, .woocommerce-form-register { border: 1px solid var(--emd-line); padding: 1.5em; }
.woocommerce-info, .woocommerce-message, .woocommerce-noreviews, p.no-comments {
	background: var(--emd-forest);
	color: var(--emd-ivory);
	border-left: 0;
	border-radius: var(--emd-radius-sm);
}
.woocommerce-info a, .woocommerce-message a, .woocommerce-info .button, .woocommerce-message .button { color: var(--emd-ivory); }
.woocommerce-error { background: #8A3A1F; border-radius: var(--emd-radius-sm); }
.woocommerce-MyAccount-navigation ul li a { color: var(--emd-forest); }
.woocommerce-MyAccount-navigation ul li.is-active a { color: var(--emd-clay-ink); font-weight: 700; }
#payment, .wc_payment_methods { background: var(--emd-ivory-deep) !important; border-radius: var(--emd-radius-sm); }
#payment .payment_box { background: var(--emd-paper) !important; }
@media (max-width: 767px) {
	.woocommerce-cart-form, .cart-collaterals .cart_totals { padding: .75em; }
	table.cart td.actions .coupon { display: flex; flex-direction: column; gap: .5em; }
	table.cart td.actions .coupon input.input-text { width: 100%; }
	table.cart td.actions .button { width: 100%; }
}

/* Mobile footer bar (Storefront handheld) */
.storefront-handheld-footer-bar { background: var(--emd-forest); border-top: 0; }
.storefront-handheld-footer-bar ul li > a { background-color: var(--emd-forest); color: var(--emd-ivory); border-right-color: var(--emd-forest-deep); }
.storefront-handheld-footer-bar ul li > a::before { color: var(--emd-ivory); }
.storefront-handheld-footer-bar ul li.cart .count { background: var(--emd-terracotta); color: #fff; border-color: var(--emd-forest); }
.storefront-handheld-footer-bar ul li.search .site-search { background: var(--emd-forest-deep); }

/* ==========================================================================
   Pages (home + editorial)
   ========================================================================== */
.home.page .entry-header, .emd-hide-title .entry-header { display: none; }
.page-template-template-fullwidth-php .site-main, .home .site-main { margin-bottom: 0; }
.page .entry-content, .page .hentry { margin-bottom: 0; }
.hentry { margin-bottom: 2em; }
.page:not(.home) .entry-header .entry-title { font-size: clamp(2rem, 1.6rem + 1.8vw, 3rem); margin-bottom: .3em; }
.page:not(.home):not(.woocommerce-page):not(.woocommerce-cart):not(.woocommerce-checkout):not(.woocommerce-account) .entry-content { max-width: 46rem; }
.page:not(.home):not(.woocommerce-page) .entry-content > .alignwide,
.page:not(.home):not(.woocommerce-page) .entry-content > .alignfull { max-width: none; }
.entry-content h2 { margin-top: 1.6em; }
.entry-content .emd-lede { font-family: var(--emd-serif); font-size: 1.3rem; line-height: 1.5; color: var(--emd-forest); }
.entry-content details {
	background: var(--emd-paper);
	border-radius: var(--emd-radius-sm);
	padding: .9em 1.1em;
	margin: 0 0 .7em;
	box-shadow: var(--emd-shadow);
}
.entry-content details summary { cursor: pointer; font-weight: 700; color: var(--emd-forest); }
.entry-content details[open] summary { margin-bottom: .5em; }
.emd-callout {
	background: var(--emd-paper);
	border-left: 4px solid var(--emd-terracotta);
	border-radius: 0 var(--emd-radius-sm) var(--emd-radius-sm) 0;
	padding: 1em 1.25em;
	margin: 1.5em 0;
}
.emd-callout p:last-child { margin-bottom: 0; }

/* Home sections are full-bleed groups inside the full-width template. */
.emd-section { padding: clamp(48px, 7vw, 96px) 0; }
.emd-section > .wp-block-group__inner-container, .emd-section > .emd-inner { max-width: 1240px; margin: 0 auto; padding: 0 var(--emd-gutter); box-sizing: border-box; }
/* The home page runs edge to edge: no centered column, no sidebar float.
   (Sections carry their own centered .emd-inner, so no 100vw tricks needed.) */
.home .site-content > .col-full { max-width: none; padding-left: 0; padding-right: 0; }
.home .content-area, .storefront-full-width-content .content-area,
.page-template-template-fullwidth-php .content-area { width: 100%; float: none; margin-left: 0; margin-right: 0; }
.home .site-main { padding: 0; }
.home .hentry, .home .hentry .entry-content { max-width: none !important; width: auto !important; margin-left: 0 !important; margin-right: 0 !important; }
.home .entry-content > .alignfull, .home .emd-section { margin-left: 0 !important; margin-right: 0 !important; width: auto !important; max-width: none !important; }
.home .hentry { margin: 0; padding: 0; border: 0; }
html, body { overflow-x: clip; }
.emd-eyebrow {
	font-size: .8rem !important;
	font-weight: 700;
	letter-spacing: .14em;
	text-transform: uppercase;
	color: var(--emd-clay-ink);
	margin-bottom: .8em !important;
}
.emd-section-head { display: flex; align-items: end; justify-content: space-between; gap: 1em; flex-wrap: wrap; margin-bottom: 1.6em; }
.emd-section-head h2 { margin: 0; }
.emd-section-head p { margin: 0; }

/* Hero */
.emd-hero.wp-block-cover {
	min-height: min(78vh, 680px) !important;
	padding: 0 !important;
	align-items: center;
	background: var(--emd-ivory);
}
.emd-hero .wp-block-cover__image-background { object-position: 70% 50%; }
.emd-hero .wp-block-cover__inner-container { max-width: 1240px; width: 100%; margin: 0 auto; padding: 48px var(--emd-gutter); box-sizing: border-box; color: var(--emd-charcoal); }
.emd-hero .wp-block-cover__inner-container { max-width: 1240px !important; width: 100% !important; margin: 0 auto !important; color: var(--emd-charcoal) !important; }
.emd-hero .wp-block-cover__inner-container p { color: var(--emd-charcoal) !important; }
.emd-hero .wp-block-cover__inner-container .emd-eyebrow { color: var(--emd-clay-ink) !important; }
.emd-hero-copy { max-width: 31rem; }
.emd-hero h1 { color: var(--emd-forest); font-size: clamp(2.5rem, 1.7rem + 3.4vw, 4.6rem); line-height: 1.02; margin: 0 0 .35em; font-weight: 520; }
.emd-hero h1 em { font-style: italic; color: var(--emd-clay-ink); font-weight: 480; }
.emd-hero p { font-size: 1.15rem; color: var(--emd-charcoal); max-width: 27rem; }
.emd-hero .wp-block-buttons { gap: .75em; margin-top: 1.5em; }
@media (max-width: 781px) {
	/* Mobile: copy first, then the artwork underneath (no text over the jars). */
	.emd-hero.wp-block-cover { min-height: 0 !important; flex-direction: column; align-items: stretch; }
	.emd-hero .wp-block-cover__inner-container { order: 1; padding-top: 32px; padding-bottom: 20px; }
	.emd-hero .wp-block-cover__image-background {
		order: 2;
		position: static;
		width: 100%;
		height: 260px;
		object-fit: cover;
		object-position: 78% 60%;
	}
	.emd-hero .wp-block-cover__background { display: none; }
	.emd-hero p { font-size: 1.05rem; }
}

/* Shop by scent */
.emd-scents { background: var(--emd-paper); }
.emd-scent-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1.1rem; }
.emd-scent-card {
	position: relative;
	display: flex;
	flex-direction: column;
	gap: .4em;
	padding: 1.5em 1.4em 1.3em;
	background: var(--emd-ivory);
	border: 1px solid var(--emd-line);
	border-radius: var(--emd-radius);
	text-decoration: none !important;
	color: var(--emd-charcoal);
	transition: transform .3s var(--emd-ease), box-shadow .3s var(--emd-ease), border-color .3s;
}
.emd-scent-card:hover { transform: translateY(-3px); box-shadow: var(--emd-shadow-hover); border-color: transparent; color: var(--emd-charcoal); }
.emd-scent-card img { width: 44px; height: 44px; margin-bottom: .4em; }
.emd-scent-card strong { font-family: var(--emd-serif); font-size: 1.35rem; font-weight: 560; color: var(--emd-forest); }
.emd-scent-card span { font-size: .92rem; color: var(--emd-muted); line-height: 1.45; }
.emd-scent-card::after { content: "→"; position: absolute; right: 1.2em; top: 1.3em; color: var(--emd-clay-ink); font-size: 1.2rem; transition: transform .3s var(--emd-ease); }
.emd-scent-card:hover::after { transform: translateX(4px); }
@media (max-width: 900px) { .emd-scent-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 480px) { .emd-scent-grid { grid-template-columns: 1fr 1fr; gap: .7rem; } .emd-scent-card { padding: 1.1em; } .emd-scent-card span { display: none; } }

/* Home product rows */
.home ul.products { margin-bottom: 0; }
@media (max-width: 767px) {
	.home .emd-bestsellers ul.products, .emd-rail ul.products {
		display: grid;
		grid-auto-flow: column;
		grid-auto-columns: 72%;
		gap: 1rem;
		overflow-x: auto;
		scroll-snap-type: x mandatory;
		padding-bottom: 1rem;
		-webkit-overflow-scrolling: touch;
	}
	.home .emd-bestsellers ul.products li.product, .emd-rail ul.products li.product { width: auto !important; float: none !important; margin: 0 !important; scroll-snap-align: start; }
}

/* Story + gift (media & text) */
.emd-story .wp-block-media-text, .emd-gifts .wp-block-media-text { gap: 0; }
.emd-story .wp-block-media-text__media img, .emd-gifts .wp-block-media-text__media img { border-radius: var(--emd-radius); box-shadow: var(--emd-shadow); }
.emd-story .wp-block-media-text__content, .emd-gifts .wp-block-media-text__content { padding: 0 clamp(16px, 5vw, 64px); }
.emd-story .wp-block-media-text__content p, .emd-gifts .wp-block-media-text__content p { color: var(--emd-charcoal); }
.emd-gifts { background: var(--emd-forest); }
.emd-gifts h2, .emd-gifts p, .emd-gifts .emd-eyebrow { color: var(--emd-ivory) !important; }
.emd-gifts .wp-block-button__link { background: var(--emd-ivory); color: var(--emd-forest); border-color: var(--emd-ivory); }
.emd-gifts .wp-block-button__link:hover { background: #fff; color: var(--emd-forest); }
.emd-gifts a:not(.wp-block-button__link) { color: var(--emd-ivory); }
@media (max-width: 600px) {
	.emd-story .wp-block-media-text__content, .emd-gifts .wp-block-media-text__content { padding: 1.5em 0 0; }
}

/* Care strip + demo card */
.emd-care .emd-care-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.1rem; margin-top: 1.4em; }
.emd-care-item { background: var(--emd-paper); border-radius: var(--emd-radius); padding: 1.4em; box-shadow: var(--emd-shadow); }
.emd-care-item h3 { font-size: 1.15rem; margin: 0 0 .3em; }
.emd-care-item p { margin: 0; font-size: .95rem; color: var(--emd-muted); }
.emd-care-item .emd-num { font-family: var(--emd-serif); font-size: 2rem; color: var(--emd-terracotta); line-height: 1; display: block; margin-bottom: .3em; }
@media (max-width: 780px) { .emd-care .emd-care-grid { grid-template-columns: 1fr; } }
.emd-demo-card {
	border: 1.5px dashed var(--emd-forest);
	border-radius: var(--emd-radius);
	padding: 1.4em 1.6em;
	display: flex;
	gap: 1.2em;
	align-items: center;
	justify-content: space-between;
	flex-wrap: wrap;
	background: var(--emd-paper);
}
.emd-demo-card p { margin: 0; max-width: 46em; }
.emd-demo-card strong { color: var(--emd-forest); }

/* Category tiles */
.emd-cat-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1.1rem; }
.emd-cat-tile { position: relative; display: block; border-radius: var(--emd-radius); overflow: hidden; text-decoration: none !important; box-shadow: var(--emd-shadow); }
.emd-cat-tile img { display: block; width: 100%; height: auto; aspect-ratio: 1; object-fit: cover; transition: transform .6s var(--emd-ease); }
.emd-cat-tile:hover img { transform: scale(1.04); }
.emd-cat-tile span {
	position: absolute; left: .8em; bottom: .8em;
	background: var(--emd-ivory); color: var(--emd-forest);
	font-family: var(--emd-serif); font-weight: 560; font-size: 1.1rem;
	padding: .35em .9em; border-radius: 999px;
}
@media (max-width: 780px) { .emd-cat-grid { grid-template-columns: 1fr 1fr; } }

/* ==========================================================================
   Footer
   ========================================================================== */
.site-footer { background: var(--emd-forest-deep); color: #D9D3C4; padding: 3.5em 0 2em; }
.site-footer a { color: var(--emd-ivory); }
.site-footer a:hover { color: #fff; }
.emd-footer-grid { display: grid; grid-template-columns: 2fr 1fr 1fr 1fr; gap: 2em; margin-bottom: 2.5em; }
.emd-footer-grid h2 { font-family: var(--emd-serif); color: var(--emd-ivory); font-size: 1.05rem; font-weight: 560; margin-bottom: .7em; letter-spacing: 0; }
.emd-footer-grid ul { list-style: none; margin: 0; padding: 0; }
.emd-footer-grid li { margin: 0 0 .45em; }
.emd-footer-grid li a { text-decoration: none; }
.emd-footer-grid li a:hover { text-decoration: underline; }
.emd-footer-brand p { color: #D9D3C4; max-width: 24em; }
.emd-footer-brand .emd-logo { color: var(--emd-ivory); margin-bottom: .8em; }
.emd-footer-brand .emd-brand { margin: 0 0 .6em; }
.emd-footer-disclosure {
	border-top: 1px solid rgba(246, 241, 231, .18);
	padding-top: 1.4em;
	font-size: .88rem;
	color: #D9D3C4;
	display: flex;
	justify-content: space-between;
	gap: 1em;
	flex-wrap: wrap;
}
.emd-footer-disclosure strong { color: var(--emd-ivory); letter-spacing: .06em; }
@media (max-width: 780px) {
	.emd-footer-grid { grid-template-columns: 1fr 1fr; }
	.emd-footer-brand { grid-column: 1 / -1; }
	.site-footer { padding-bottom: 6em; } /* clear the handheld bar */
}

/* ==========================================================================
   Motion: subtle reveal, off for people who ask for less motion
   ========================================================================== */
@media (prefers-reduced-motion: no-preference) {
	.emd-reveal { opacity: 0; transform: translateY(14px); transition: opacity .8s var(--emd-ease), transform .8s var(--emd-ease); }
	.emd-reveal.is-visible { opacity: 1; transform: none; }
}
@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after { transition: none !important; animation: none !important; scroll-behavior: auto !important; }
}

/* Cart and Checkout blocks are "wide" blocks; inside this theme's full-width
   column Storefront's negative wide margins would push them off screen. */
.entry-content > .alignwide,
.woocommerce-cart .entry-content .alignwide,
.woocommerce-checkout .entry-content .alignwide { margin-left: 0 !important; margin-right: 0 !important; max-width: 100% !important; width: auto !important; }
.woocommerce-checkout .entry-header .entry-title, .woocommerce-cart .entry-header .entry-title { text-align: left; }
.wc-block-components-sidebar-layout .wc-block-components-main, .wc-block-components-sidebar-layout .wc-block-components-sidebar { box-sizing: border-box; }
.wc-block-components-title.wc-block-components-title { font-family: var(--emd-serif); color: var(--emd-forest); }
.wp-block-woocommerce-checkout-order-summary-block, .wc-block-components-totals-wrapper { background: var(--emd-paper); }
/* Storefront caps .entry-content at a reading width; cart, checkout and
   account need the whole column for their two-panel layouts. */
.woocommerce-cart .hentry .entry-content,
.woocommerce-checkout .hentry .entry-content,
.woocommerce-account .hentry .entry-content { max-width: none !important; }
.wc-block-components-button, .wc-block-components-button:hover, .wp-block-button__link { text-decoration: none !important; }
