
:root{
	--bsh-primary:#2B183C;
	--bsh-primary-dark:#1D1029;
	--bsh-ivory:#F7F3EE;
	--bsh-cream:#F4EEE9;
	--bsh-soft:#E9DCE4;
	--bsh-gold:#B79B6A;
	--bsh-ink:#242127;
	--bsh-line:rgba(43,24,60,.12);
	--bsh-radius-lg:30px;
	--bsh-radius-md:18px;
	--bsh-shadow:0 18px 48px rgba(43,24,60,.10);
}
.bsh-home{background:var(--bsh-ivory)!important;color:var(--bsh-ink)!important;overflow:hidden}
.bsh-home *{box-sizing:border-box}
.bsh-home img{display:block;max-width:100%}
.bsh-home a{text-decoration:none!important}
.bsh-shell{width:min(1380px,92vw);margin:0 auto}
.bsh-kicker{margin:0 0 12px!important;font-size:11px!important;line-height:1.35!important;letter-spacing:.18em!important;text-transform:uppercase!important;color:var(--bsh-primary)!important}
.bsh-home h1,.bsh-home h2,.bsh-home h3,.bsh-home h4{font-family:Georgia,"Times New Roman",serif!important;font-weight:400!important;color:var(--bsh-primary)!important}
.bsh-home h1{font-size:clamp(46px,5.8vw,86px)!important;line-height:.96!important;letter-spacing:-.03em!important;margin:0 0 22px!important}
.bsh-home h2{font-size:clamp(34px,4.2vw,58px)!important;line-height:1!important;letter-spacing:-.02em!important;margin:0 0 16px!important}
.bsh-home h3{font-size:clamp(21px,1.8vw,28px)!important;line-height:1.08!important;margin:0 0 12px!important}
.bsh-home p{line-height:1.6!important;color:var(--bsh-ink)!important}
.bsh-actions{display:flex;gap:12px;flex-wrap:wrap}
.bsh-button{display:inline-flex!important;min-height:48px!important;align-items:center!important;justify-content:center!important;padding:0 22px!important;border-radius:999px!important;border:1px solid var(--bsh-primary)!important;background:var(--bsh-primary)!important;color:#fff!important;font-size:12px!important;font-weight:700!important;letter-spacing:.07em!important;text-transform:uppercase!important;line-height:1!important;box-shadow:none!important}
.bsh-button:hover,.bsh-button:focus{background:var(--bsh-primary-dark)!important;color:#fff!important;border-color:var(--bsh-primary-dark)!important}
.bsh-button--ghost{background:transparent!important;color:var(--bsh-primary)!important}
.bsh-button--ghost:hover,.bsh-button--ghost:focus{background:var(--bsh-primary)!important;color:#fff!important}
.bsh-text-link,.bsh-text-link:visited{color:var(--bsh-primary)!important;font-size:13px!important;font-weight:700!important}
.bsh-hero{padding:28px 0 58px!important;background:var(--bsh-ivory)!important}
.bsh-hero__frame{min-height:620px;position:relative;border-radius:var(--bsh-radius-lg);overflow:hidden;background:linear-gradient(120deg,var(--bsh-soft) 0 52%,var(--bsh-cream) 52%);box-shadow:0 16px 46px rgba(43,24,60,.06)}
.bsh-hero__copy{position:absolute;z-index:3;left:6%;top:50%;transform:translateY(-50%);width:46%;max-width:640px}
.bsh-hero__lead{max-width:590px;font-size:17px!important;margin:0 0 26px!important;opacity:.82}
.bsh-hero__picture{position:absolute;right:0;bottom:0;width:52%;height:100%;overflow:visible;isolation:isolate}
.bsh-hero__picture img{display:block!important;width:100%!important;height:100%!important;max-width:none!important;object-fit:contain!important;object-position:center bottom!important;background:transparent!important;opacity:1!important;visibility:visible!important}
.bsh-trust{background:#fff!important;border-top:1px solid var(--bsh-line);border-bottom:1px solid var(--bsh-line)}
.bsh-trust__grid{display:grid;grid-template-columns:repeat(3,1fr)}
.bsh-trust__grid div{text-align:center;padding:20px;color:var(--bsh-primary)!important;font-size:12px!important;letter-spacing:.09em!important;text-transform:uppercase;border-right:1px solid var(--bsh-line)}
.bsh-trust__grid div:last-child{border-right:0}
.bsh-section{padding:78px 0!important;background:var(--bsh-ivory)!important}
.bsh-section--soft{background:var(--bsh-cream)!important}
.bsh-section-head{max-width:760px;margin:0 auto 42px;text-align:center}
.bsh-section-head>p:last-child{max-width:640px;margin:0 auto!important;opacity:.72}
.bsh-ritual-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}
.bsh-ritual-card{display:flex;flex-direction:column;background:#fff!important;border:1px solid var(--bsh-line)!important;border-radius:var(--bsh-radius-md);overflow:hidden;transition:transform .2s ease,box-shadow .2s ease}
.bsh-ritual-card:hover{transform:translateY(-4px);box-shadow:var(--bsh-shadow)}
.bsh-ritual-card__media{aspect-ratio:1/1!important;height:auto!important;background:var(--bsh-soft)!important;overflow:hidden;position:relative}
.bsh-ritual-card__media img{width:100%!important;height:100%!important;object-fit:cover!important;object-position:center center!important;padding:0!important}
.bsh-ritual-card__copy{padding:20px;display:flex;flex-direction:column;flex:1}
.bsh-ritual-card__copy>p:not(.bsh-kicker){font-size:14px!important;opacity:.72}
.bsh-ritual-card__copy .bsh-text-link{margin-top:auto}
.bsh-product-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}
.bsh-product-card{background:#fff!important;border:1px solid var(--bsh-line)!important;border-radius:var(--bsh-radius-md);overflow:hidden;transition:transform .2s ease,box-shadow .2s ease}
.bsh-product-card:hover{transform:translateY(-4px);box-shadow:var(--bsh-shadow)}
.bsh-product-card__media{display:block;aspect-ratio:1/1!important;background:var(--bsh-soft)!important;overflow:hidden}
.bsh-product-card__media img{width:100%!important;height:100%!important;object-fit:contain!important;padding:8%!important}
.bsh-product-card__body{padding:20px;min-height:180px}
.bsh-product-card__body h3 a,.bsh-product-card__body h3 a:visited{color:var(--bsh-primary)!important}
.bsh-product-card__price,.bsh-product-card__price *, .bsh-product-card .woocommerce-Price-amount,.bsh-product-card ins,.bsh-product-card del{color:var(--bsh-primary)!important}
.bsh-product-card__price{font-weight:700!important;margin:10px 0!important}
.bsh-product-card__price del{opacity:1!important;margin-right:8px;color:#6E6274!important;text-decoration-color:#6E6274!important}
.bsh-product-card__price ins{text-decoration:none!important}
.bsh-rating{display:flex;align-items:center;gap:8px;color:var(--bsh-gold)!important;font-size:12px!important}
.bsh-rating small{color:var(--bsh-ink)!important;opacity:.65}
.bsh-center{text-align:center;margin-top:30px}
.bsh-gift{display:grid;grid-template-columns:1.08fr .92fr;border-radius:var(--bsh-radius-lg);overflow:hidden;background:var(--bsh-soft)!important}
.bsh-gift__media{min-height:540px;background:var(--bsh-soft)!important}
.bsh-gift__media img{width:100%;height:100%;object-fit:cover}
.bsh-gift__copy{padding:7vw 5vw;display:flex;flex-direction:column;justify-content:center}
.bsh-gift__copy>p:not(.bsh-kicker){max-width:530px;opacity:.76}
.bsh-gift__price,.bsh-gift__price *{color:var(--bsh-primary)!important;font-size:18px!important;font-weight:700!important;margin:8px 0 22px}
.bsh-story-section{background:#fff!important}
.bsh-story{display:grid;grid-template-columns:1fr 1fr;border-radius:var(--bsh-radius-lg);overflow:hidden;border:1px solid var(--bsh-line)!important;background:#fff!important}
.bsh-story__copy{padding:6.5vw 5.5vw;background:#fff!important}
.bsh-story__copy>p:not(.bsh-kicker){max-width:580px;opacity:.76}
.bsh-story__media{min-height:540px;background:var(--bsh-soft)!important}
.bsh-story__media img{width:100%;height:100%;object-fit:cover}
.bsh-values{display:grid;grid-template-columns:1fr 1fr;gap:14px;list-style:none!important;margin:26px 0!important;padding:0!important}
.bsh-values li{border-top:1px solid var(--bsh-line);padding-top:12px}
.bsh-values strong,.bsh-values span{display:block}
.bsh-values strong{font-family:Georgia,"Times New Roman",serif!important;color:var(--bsh-primary)!important;font-size:20px!important;font-weight:400!important}
.bsh-values span{font-size:13px!important;color:var(--bsh-ink)!important;opacity:.68;margin-top:4px}
.bsh-reviews{background:var(--bsh-primary)!important;color:#fff!important}
.bsh-reviews .bsh-section-head h2,.bsh-reviews .bsh-section-head .bsh-kicker{color:#fff!important}
.bsh-review-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.bsh-review{margin:0!important;padding:28px!important;border:1px solid rgba(255,255,255,.16)!important;border-radius:var(--bsh-radius-md)!important;background:rgba(255,255,255,.08)!important;color:#fff!important}
.bsh-review *{color:#fff!important}
.bsh-stars{color:var(--bsh-gold)!important;letter-spacing:.15em}
.bsh-review h3{font-size:23px!important;margin:14px 0 10px!important}
.bsh-review p{opacity:.88}
.bsh-review footer{font-size:13px!important;opacity:.66}
.bsh-editorial-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.bsh-article-card{background:#fff!important;border:1px solid var(--bsh-line)!important;border-radius:var(--bsh-radius-md);overflow:hidden}
.bsh-article-card__media{display:block;aspect-ratio:1.45/1;background:var(--bsh-soft)!important;overflow:hidden}
.bsh-article-card__media img{width:100%!important;height:100%!important;object-fit:cover!important}
.bsh-article-card__body{padding:22px}
.bsh-article-card__body h3 a,.bsh-article-card__body h3 a:visited{color:var(--bsh-primary)!important}
.bsh-article-card__body>p:not(.bsh-kicker){font-size:14px!important;opacity:.72}
.bsh-home :focus-visible{outline:3px solid var(--bsh-gold)!important;outline-offset:3px}

@media(max-width:1020px){
	.bsh-hero__frame{min-height:680px}
	.bsh-hero__copy{width:86%;left:7%;top:9%;transform:none}
	.bsh-hero__picture{width:80%;height:54%;right:7%}
	.bsh-ritual-grid,.bsh-product-grid{grid-template-columns:1fr 1fr}
	.bsh-gift,.bsh-story{grid-template-columns:1fr}
	.bsh-gift__media,.bsh-story__media{min-height:470px}
	.bsh-review-grid,.bsh-editorial-grid{grid-template-columns:1fr 1fr}
}
@media(max-width:640px){
	.bsh-shell{width:min(92vw,100%)}
	.bsh-hero{padding:16px 0 44px!important}
	.bsh-hero__frame{min-height:650px;border-radius:22px}
	.bsh-hero__copy{top:6%;width:88%}
	.bsh-home h1{font-size:48px!important}
	.bsh-hero__lead{font-size:16px!important}
	.bsh-hero__picture{width:92%;height:46%;right:4%}
	.bsh-trust__grid{grid-template-columns:1fr}
	.bsh-trust__grid div{border-right:0;border-bottom:1px solid var(--bsh-line)}
	.bsh-section{padding:64px 0!important}
	.bsh-ritual-grid,.bsh-product-grid,.bsh-review-grid,.bsh-editorial-grid{grid-template-columns:1fr}
	.bsh-gift__media,.bsh-story__media{min-height:390px}
	.bsh-gift__copy,.bsh-story__copy{padding:48px 28px}
	.bsh-values{grid-template-columns:1fr}
}
@media(prefers-reduced-motion:reduce){
	.bsh-button,.bsh-ritual-card,.bsh-product-card{transition:none}
}


/* v2.3 — keep the existing site header in its own row above the hero.
   These selectors cover the current BeauxSoi/WordPress header patterns while
   remaining scoped to the homepage only. */
body.bsh-separate-header #masthead,
body.bsh-separate-header .site-header,
body.bsh-separate-header header.site-header,
body.bsh-separate-header .elementor-location-header,
body.bsh-separate-header header[role="banner"]{
	position:relative!important;
	inset:auto!important;
	top:auto!important;
	right:auto!important;
	bottom:auto!important;
	left:auto!important;
	transform:none!important;
	margin:0!important;
	z-index:100!important;
}
body.bsh-separate-header .bsh-home{
	margin-top:0!important;
	padding-top:0!important;
}
body.bsh-separate-header .bsh-hero{
	padding-top:28px!important;
}

/* Brand story — reduce oversized image dominance and improve copy balance. */
.bsh-story{
	grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr)!important;
	align-items:stretch;
}
.bsh-story__copy{
	padding:64px 60px!important;
	display:flex;
	flex-direction:column;
	justify-content:center;
}
.bsh-story__media{
	min-height:0!important;
	height:520px!important;
	align-self:center;
	margin:28px 28px 28px 0;
	border-radius:20px;
	overflow:hidden;
}
.bsh-story__media img{
	width:100%!important;
	height:100%!important;
	object-fit:cover!important;
	object-position:center!important;
}
.bsh-values{
	margin:24px 0 28px!important;
}

/* Reviews — stronger contrast and readable type. */
.bsh-reviews{
	background:var(--bsh-primary-dark)!important;
}
.bsh-review{
	background:rgba(255,255,255,.11)!important;
	border-color:rgba(255,255,255,.24)!important;
	min-height:230px;
	display:flex;
	flex-direction:column;
}
.bsh-review h3{
	font-size:24px!important;
	line-height:1.18!important;
	color:#fff!important;
}
.bsh-review p{
	font-size:16px!important;
	line-height:1.6!important;
	color:#fff!important;
	opacity:1!important;
}
.bsh-review footer{
	margin-top:auto;
	padding-top:14px;
	color:#fff!important;
	opacity:.78!important;
}
.bsh-stars{
	color:#E6C986!important;
}

/* Keep card images compact and square. */
.bsh-ritual-card__media,
.bsh-product-card__media{
	aspect-ratio:1 / 1!important;
}
.bsh-ritual-card__media img{
	padding:0!important;
	object-fit:cover!important;
	object-position:center center!important;
}
.bsh-product-card__media img{
	padding:10%!important;
}

@media(max-width:1020px){
	.bsh-story{grid-template-columns:1fr!important}
	.bsh-story__copy{padding:52px 44px!important}
	.bsh-story__media{
		height:460px!important;
		margin:0 28px 28px;
	}
}
@media(max-width:640px){
	.bsh-story__copy{padding:44px 28px!important}
	.bsh-story__media{
		height:390px!important;
		margin:0 18px 18px;
		border-radius:16px;
	}
	.bsh-review{min-height:0}
	.bsh-review p{font-size:15px!important}
}


/* v2.4 — Shop by Ritual cards use full-bleed cover images in the top media block. */


/* v2.8 — production alignment, mobile hero, and reliable header separation. */

/* Product cards: keep rating, title, price and Discover baseline consistent
   across the four-column desktop row even when product names have different
   lengths. */
.bsh-product-card{
	display:flex!important;
	flex-direction:column!important;
	height:100%!important;
}
.bsh-product-card__body{
	display:flex!important;
	flex-direction:column!important;
	flex:1!important;
	min-height:250px!important;
}
.bsh-product-card .bsh-rating{
	min-height:20px!important;
}
.bsh-product-card__body h3{
	font-size:25px!important;
	line-height:1.08!important;
	margin:10px 0 8px!important;
	min-height:82px!important;
	display:-webkit-box;
	-webkit-box-orient:vertical;
	-webkit-line-clamp:3;
	overflow:hidden;
}
.bsh-product-card__price{
	min-height:28px!important;
	display:flex!important;
	align-items:center!important;
	flex-wrap:wrap!important;
	margin:4px 0 12px!important;
}
.bsh-product-card__body > .bsh-text-link{
	margin-top:auto!important;
}

/* Header separation: cover the common wrappers used by the current site/theme
   and disable sticky/absolute transforms only when the setting is enabled. */
body.bsh-separate-header #header,
body.bsh-separate-header .header,
body.bsh-separate-header .header-wrapper,
body.bsh-separate-header .main-header,
body.bsh-separate-header .header-main,
body.bsh-separate-header #masthead,
body.bsh-separate-header .site-header,
body.bsh-separate-header header.site-header,
body.bsh-separate-header .elementor-location-header,
body.bsh-separate-header header[role="banner"]{
	position:relative!important;
	inset:auto!important;
	top:auto!important;
	right:auto!important;
	bottom:auto!important;
	left:auto!important;
	transform:none!important;
	translate:none!important;
	margin:0!important;
	width:100%!important;
}
body.bsh-separate-header .sticky-header,
body.bsh-separate-header .is-sticky,
body.bsh-separate-header .fixed-header,
body.bsh-separate-header .header-sticky{
	position:relative!important;
	top:auto!important;
	transform:none!important;
}
body.bsh-separate-header .bsh-home{
	clear:both!important;
	position:relative!important;
	z-index:1!important;
}

/* Tablet/mobile hero is a true two-block composition: copy first, image second.
   Nothing is absolutely positioned, so the image and CTAs cannot overlap. */
@media(max-width:820px){
	.bsh-hero{padding:18px 0 36px!important}
	.bsh-hero__frame{
		display:flex!important;
		flex-direction:column!important;
		min-height:0!important;
		height:auto!important;
		overflow:hidden!important;
		background:linear-gradient(145deg,var(--bsh-soft) 0 57%,var(--bsh-cream) 57%)!important;
	}
	.bsh-hero__copy{
		position:relative!important;
		z-index:2!important;
		left:auto!important;
		top:auto!important;
		transform:none!important;
		width:auto!important;
		max-width:none!important;
		padding:38px 34px 18px!important;
	}
	.bsh-home h1{
		font-size:clamp(42px,10vw,58px)!important;
		line-height:.94!important;
		margin-bottom:20px!important;
	}
	.bsh-hero__lead{
		font-size:16px!important;
		line-height:1.55!important;
		margin-bottom:22px!important;
	}
	.bsh-actions{
		display:flex!important;
		flex-wrap:wrap!important;
		gap:10px!important;
	}
	.bsh-actions .bsh-button{
		width:auto!important;
		min-width:0!important;
		flex:1 1 180px!important;
		text-align:center!important;
	}
	.bsh-hero__picture{
		position:relative!important;
		right:auto!important;
		bottom:auto!important;
		width:100%!important;
		height:420px!important;
		min-height:0!important;
		margin:0!important;
		overflow:hidden!important;
		display:block!important;
	}
	.bsh-hero__picture img{
		width:100%!important;
		height:100%!important;
		object-fit:contain!important;
		object-position:center bottom!important;
		padding:0 8px!important;
	}
}

@media(max-width:640px){
	.bsh-shell{width:min(94vw,100%)!important}
	.bsh-hero{padding:12px 0 28px!important}
	.bsh-hero__frame{border-radius:20px!important}
	.bsh-hero__copy{padding:30px 24px 12px!important}
	.bsh-home h1{font-size:44px!important;line-height:.93!important}
	.bsh-hero__lead{font-size:15px!important;line-height:1.5!important}
	.bsh-actions{display:grid!important;grid-template-columns:1fr!important;gap:10px!important}
	.bsh-actions .bsh-button{width:100%!important;min-height:50px!important}
	.bsh-hero__picture{height:350px!important}
	.bsh-hero__picture img{object-position:center bottom!important;padding:0!important}

	/* Single-column mobile product cards do not need artificial title spacing. */
	.bsh-product-card__body{min-height:0!important}
	.bsh-product-card__body h3{min-height:0!important;-webkit-line-clamp:unset;overflow:visible}
	.bsh-product-card__price{min-height:0!important}
}


/* v3.0 — Lighthouse accessibility fixes.
   Keep sale/original prices readable at WCAG AA contrast and give linked
   editorial images a programmatic name in the template. */
.bsh-product-card__price del,
.bsh-product-card__price del *,
.bsh-product-card__price del .woocommerce-Price-amount,
.bsh-product-card__price del .woocommerce-Price-currencySymbol{
  color:#6E6274!important;
  opacity:1!important;
}


/* v3.2 — Curated BeauxSoi Edit: premium editorial product cards.
   Homepage-only custom images are full-bleed; catalog-image fallback remains
   contained so transparent product packshots are never awkwardly cropped. */
.bsh-section--soft .bsh-product-grid{
	gap:24px!important;
}
.bsh-product-card{
	border:0!important;
	border-radius:24px!important;
	background:#fff!important;
	box-shadow:0 1px 0 rgba(43,24,60,.05)!important;
	overflow:hidden!important;
}
.bsh-product-card:hover{
	transform:translateY(-3px)!important;
	box-shadow:0 20px 50px rgba(43,24,60,.09)!important;
}
.bsh-product-card__media{
	position:relative!important;
	aspect-ratio:1 / 1!important;
	background:#EEE7E2!important;
	overflow:hidden!important;
}
.bsh-product-card__media img{
	width:100%!important;
	height:100%!important;
	max-width:none!important;
}
.bsh-product-card.has-editorial-image .bsh-product-card__media img,
.bsh-product-card__custom-image{
	object-fit:cover!important;
	object-position:center!important;
	padding:0!important;
	transition:transform .5s ease!important;
}
.bsh-product-card.has-editorial-image:hover .bsh-product-card__media img{
	transform:scale(1.018)!important;
}
.bsh-product-card.has-catalog-image .bsh-product-card__media{
	background:linear-gradient(145deg,#F3ECE8 0%,#E8DDE4 100%)!important;
}
.bsh-product-card.has-catalog-image .bsh-product-card__media img,
.bsh-product-card__catalog-image{
	object-fit:contain!important;
	object-position:center!important;
	padding:12%!important;
}
.bsh-product-card__body{
	padding:24px 24px 26px!important;
	min-height:236px!important;
}
.bsh-product-card__eyebrow{
	margin-bottom:8px!important;
	color:var(--bsh-gold)!important;
}
.bsh-product-card .bsh-rating{
	min-height:18px!important;
	margin-bottom:3px!important;
	font-size:11px!important;
	letter-spacing:.02em!important;
}
.bsh-product-card .bsh-rating span{
	letter-spacing:.08em!important;
}
.bsh-product-card .bsh-rating small{
	opacity:.62!important;
	font-size:11px!important;
}
.bsh-product-card__body h3{
	font-size:clamp(23px,1.65vw,28px)!important;
	line-height:1.06!important;
	min-height:88px!important;
	margin:10px 0 12px!important;
}
.bsh-product-card__price{
	font-size:16px!important;
	font-weight:600!important;
	min-height:28px!important;
	margin:0 0 17px!important;
}
.bsh-product-card__price del{
	font-weight:400!important;
	font-size:.92em!important;
}
.bsh-product-card__body > .bsh-text-link{
	font-size:12px!important;
	letter-spacing:.07em!important;
	text-transform:uppercase!important;
	font-weight:700!important;
}
@media(max-width:1020px){
	.bsh-section--soft .bsh-product-grid{gap:20px!important}
}
@media(max-width:640px){
	.bsh-section--soft .bsh-product-grid{gap:18px!important}
	.bsh-product-card__body{min-height:0!important;padding:22px!important}
	.bsh-product-card__body h3{min-height:0!important;font-size:26px!important}
}
