/* She Said Flowers — reproduction of the Shopify Dawn theme settings used by the source store.
   Measured values: page width 120rem (content 110rem), body 1.6rem / 1.8 / .06rem (typography: logo kit v2, see below),
   headings 400→500, scheme-1 #fff/#121212, scheme-2 #ADCAB8 (accent buttons #800020),
   square corners, 3px button borders, 8px grid gaps (4px mobile). */

/* Brand typography (logo kit v2, SIL OFL 1.1 — see ../fonts/OFL-*.txt). Latin subset, French accents included.
   Headings: Cormorant Garamond · Body/UI: Barlow · Buttons, labels, announcement: Barlow Condensed (as the wordmark).
   Fallback faces are metric-matched so the swap causes almost no layout shift. */
@font-face { font-family: "Cormorant Garamond"; font-weight: 500; font-style: normal; font-display: swap; src: url("../fonts/cormorant-garamond-latin-500-normal.woff2") format("woff2"); }
@font-face { font-family: "Cormorant Garamond"; font-weight: 500; font-style: italic; font-display: swap; src: url("../fonts/cormorant-garamond-latin-500-italic.woff2") format("woff2"); }
@font-face { font-family: "Cormorant Garamond"; font-weight: 600; font-style: normal; font-display: swap; src: url("../fonts/cormorant-garamond-latin-600-normal.woff2") format("woff2"); }
@font-face { font-family: "Barlow"; font-weight: 400; font-style: normal; font-display: swap; src: url("../fonts/barlow-latin-400-normal.woff2") format("woff2"); }
@font-face { font-family: "Barlow"; font-weight: 500; font-style: normal; font-display: swap; src: url("../fonts/barlow-latin-500-normal.woff2") format("woff2"); }
@font-face { font-family: "Barlow Condensed"; font-weight: 600; font-style: normal; font-display: swap; src: url("../fonts/barlow-condensed-latin-600-normal.woff2") format("woff2"); }
@font-face { font-family: "Cormorant Garamond Fallback"; src: local("Times New Roman"), local("Times"), local("Georgia"); size-adjust: 96.9%; ascent-override: 95.4%; descent-override: 29.6%; line-gap-override: 0%; }
@font-face { font-family: "Barlow Fallback"; src: local("Arial"), local("Helvetica"), local("Liberation Sans"); size-adjust: 95.9%; ascent-override: 104.3%; descent-override: 20.9%; line-gap-override: 0%; }
@font-face { font-family: "Barlow Condensed Fallback"; src: local("Arial"), local("Helvetica"), local("Liberation Sans"); size-adjust: 79.9%; ascent-override: 125.1%; descent-override: 25%; line-gap-override: 0%; }
:root {
	--font-body-family: "Barlow", "Barlow Fallback", Arial, sans-serif;
	--font-heading-family: "Cormorant Garamond", "Cormorant Garamond Fallback", "Times New Roman", serif;
	--font-ui-family: "Barlow Condensed", "Barlow Condensed Fallback", "Arial Narrow", sans-serif;
	--color-ink: #1a1d1b; /* logo kit v2 ink */
	--color-foreground: 18, 18, 18;
	--color-background: 255, 255, 255;
	--color-sage: #adcab8;
	--color-burgundy: #800020;
	--page-width: 120rem;
	--grid-h: 0.4rem;
	--grid-v: 0.4rem;
	--buttons-border-width: 3px;
	--header-bottom: 0px;
}
@media screen and (min-width: 750px) {
	:root { --grid-h: 0.8rem; --grid-v: 0.8rem; }
}

/* ---------- Base ---------- */
*, *::before, *::after { box-sizing: inherit; }
html { box-sizing: border-box; font-size: 62.5%; height: 100%; }
body {
	margin: 0;
	min-height: 100%;
	display: flex;
	flex-direction: column;
	font-family: var(--font-body-family);
	font-size: 1.5rem;
	font-weight: 400;
	letter-spacing: 0.06rem;
	line-height: 1.8;
	color: rgba(var(--color-foreground), 0.75);
	background: rgb(var(--color-background));
	-webkit-font-smoothing: antialiased;
	-webkit-text-size-adjust: 100%;
}
@media screen and (min-width: 750px) { body { font-size: 1.6rem; } }
main { flex: 1 0 auto; display: block; }
img { max-width: 100%; height: auto; }
button { font-family: inherit; }
a { color: rgb(var(--color-foreground)); }
a:empty, ul:empty, dl:empty, section:empty, article:empty, p:empty, h1:empty, h2:empty, h3:empty, h4:empty, h5:empty, h6:empty { display: none; }
[hidden] { display: none !important; }
summary { cursor: pointer; list-style: none; position: relative; }
summary::-webkit-details-marker { display: none; }
:focus-visible { outline: 0.2rem solid rgba(var(--color-foreground), 0.5); outline-offset: 0.3rem; box-shadow: 0 0 0 0.3rem #fff, 0 0 0.5rem 0.4rem rgba(var(--color-foreground), 0.3); }
.focus-inset:focus-visible { outline-offset: -0.2rem; box-shadow: 0 0 0.2rem 0 rgba(var(--color-foreground), 0.3); }

.visually-hidden, .screen-reader-text { position: absolute !important; overflow: hidden; width: 1px; height: 1px; margin: -1px; padding: 0; border: 0; clip: rect(0 0 0 0); word-wrap: normal !important; }
.skip-to-content-link:focus { z-index: 9999; position: fixed !important; overflow: auto; width: auto; height: auto; clip: auto; top: 1rem; left: 1rem; }
.list-unstyled { margin: 0; padding: 0; list-style: none; }
.center { text-align: center; }
.light { opacity: 0.7; }
@media screen and (max-width: 749px) { .small-hide { display: none !important; } }
@media screen and (min-width: 750px) and (max-width: 989px) { .medium-hide { display: none !important; } }
@media screen and (min-width: 990px) { .large-up-hide { display: none !important; } }
@media screen and (min-width: 750px) { .small-hide-up { display: none !important; } }

.page-width { max-width: var(--page-width); margin: 0 auto; padding: 0 1.5rem; }
@media screen and (min-width: 750px) { .page-width { padding: 0 5rem; } }
@media screen and (min-width: 990px) { .page-width--narrow { max-width: 72.6rem; padding: 0; } }
.section-padding { padding-top: 2.7rem; padding-bottom: 2.7rem; }
@media screen and (min-width: 750px) { .section-padding { padding-top: 3.6rem; padding-bottom: 3.6rem; } }

/* Typography */
h1, h2, h3, h4, h5, .h0, .h1, .h2, .h3, .h4, .h5 {
	font-family: var(--font-heading-family);
	font-style: normal;
	font-weight: 500;
	letter-spacing: 0.06rem;
	color: rgb(var(--color-foreground));
	line-height: 1.3;
	word-break: break-word;
}
.h0 { font-size: 4rem; }
h1, .h1 { font-size: 3rem; }
.ssf-content-h1 { margin-block: 0.67em; } /* article-body H1 rendered as H2 (functions.php): keeps the H1 spacing */
h2, .h2 { font-size: 2rem; }
h3, .h3 { font-size: 1.7rem; }
h4, .h4 { font-size: 1.5rem; }
h5, .h5 { font-size: 1.2rem; }
h6 { font-size: 1.1rem; }
h4, h5, .h4, .h5 { font-family: var(--font-body-family); font-weight: 500; }
@media only screen and (min-width: 750px) {
	.h0 { font-size: 5.2rem; }
	h1, .h1 { font-size: 4rem; }
	h2, .h2 { font-size: 2.4rem; }
	h3, .h3 { font-size: 1.8rem; }
	h5, .h5 { font-size: 1.3rem; }
}
.caption { font-size: 1rem; letter-spacing: 0.07rem; line-height: 1.7; }
@media screen and (min-width: 750px) { .caption { font-size: 1.2rem; } }
.caption-with-letter-spacing { font-size: 1.2rem; letter-spacing: 0.13rem; line-height: 1.2; text-transform: uppercase; font-family: var(--font-ui-family); font-weight: 600; } /* 1rem → 1.2rem: condensed face, readability */
.caption-large, .field__input, .form__label, .select__select { font-size: 1.3rem; line-height: 1.5; letter-spacing: 0.04rem; }
.color-foreground { color: rgb(var(--color-foreground)); }
.text-body { font-size: 1.5rem; letter-spacing: 0.06rem; line-height: 1.8; font-family: var(--font-body-family); }

.link, .customer a { cursor: pointer; display: inline-block; border: none; box-shadow: none; text-decoration: underline; text-underline-offset: 0.3rem; color: rgb(var(--color-foreground)); background-color: transparent; font-size: 1.4rem; font-family: inherit; }
.link--text { color: rgb(var(--color-foreground)); }
.link--text:hover { color: rgba(var(--color-foreground), 0.75); }
.underlined-link { color: rgba(var(--color-foreground), 0.85); text-underline-offset: 0.3rem; text-decoration-thickness: 0.1rem; transition: text-decoration-thickness 0.1s ease; }
.underlined-link:hover { color: rgb(var(--color-foreground)); text-decoration-thickness: 0.2rem; }
.full-unstyled-link { text-decoration: none; color: currentColor; display: block; }
.title, .title-wrapper-with-link { margin: 0 0 3rem; }
.title--primary { margin: 4rem 0; }
.title-wrapper--no-top-margin > .title { margin-top: 0; }

/* Rich text */
.rte > p:first-child { margin-top: 0; }
.rte > p:last-child { margin-bottom: 0; }
.rte table { table-layout: fixed; }
.rte img { height: auto; max-width: 100%; border: 0; }
.rte ul, .rte ol { list-style-position: inside; padding-left: 2rem; }
.rte li { list-style: inherit; }
.rte li:last-child { margin-bottom: 0; }
.rte a { color: rgba(var(--color-foreground), 0.75); text-underline-offset: 0.3rem; text-decoration-thickness: 0.1rem; transition: text-decoration-thickness 0.1s ease; }
.rte a:hover { color: rgb(var(--color-foreground)); text-decoration-thickness: 0.2rem; }
.rte blockquote { display: inline-flex; }
.rte blockquote > * { margin: -0.5rem 0; }
.rte strong, .rte b { color: rgb(var(--color-foreground)); }

/* Buttons */
.button, .shopify-challenge__button, .customer button {
	--border-width: var(--buttons-border-width);
	cursor: pointer;
	display: inline-flex;
	justify-content: center;
	align-items: center;
	border: 0;
	border-radius: 0;
	padding: 0 3rem;
	font: inherit;
	font-family: var(--font-ui-family);
	font-weight: 600;
	font-size: 1.5rem;
	letter-spacing: 0.1rem;
	line-height: 1.2;
	text-decoration: none;
	color: #fff;
	background-color: rgb(var(--color-foreground));
	min-width: 12rem;
	min-height: calc(4.5rem + var(--buttons-border-width) * 2);
	position: relative;
	box-shadow: 0 0 0 var(--buttons-border-width) rgb(var(--color-foreground)) inset;
	transition: box-shadow 0.1s ease;
	-webkit-appearance: none;
	appearance: none;
}
.button:hover { box-shadow: 0 0 0 calc(var(--buttons-border-width) + 1.3px) rgb(var(--color-foreground)) inset, 0 0 0 0.1rem rgb(var(--color-foreground)); }
.button--secondary { color: rgb(var(--color-foreground)); background-color: #fff; }
.button--full-width { display: flex; width: 100%; }
.button:disabled, .button[aria-disabled="true"], .button.disabled { cursor: not-allowed; opacity: 0.5; }
.button-label { font-size: 1.5rem; letter-spacing: 0.1rem; line-height: 1.2; }

/* Form fields */
.field { position: relative; width: 100%; display: flex; transition: box-shadow 0.1s ease; }
.field::before, .select::before { pointer-events: none; content: ""; position: absolute; inset: 0; }
.field::after, .select::after { pointer-events: none; content: ""; position: absolute; inset: 0; box-shadow: 0 0 0 1px rgba(var(--color-foreground), 0.55); transition: box-shadow 0.1s ease; z-index: 1; }
.field:hover::after { box-shadow: 0 0 0 2px rgba(var(--color-foreground), 0.55); }
.field__input, .select__select, .customer .field input {
	flex-grow: 1;
	-webkit-appearance: none;
	appearance: none;
	background-color: #fff;
	color: rgb(var(--color-foreground));
	font-family: var(--font-body-family);
	font-size: 1.6rem;
	width: 100%;
	box-shadow: 0 0 0 0 transparent;
	box-sizing: border-box;
	transition: box-shadow 0.1s ease;
	border-radius: 0;
	height: 4.5rem;
	min-height: 4.5rem;
	min-width: calc(7rem + 2px);
	position: relative;
	border: 0;
	padding: 0 2rem;
	margin: 1px;
	letter-spacing: 0.04rem;
}
.field__input:focus { outline: none; box-shadow: 0 0 0 1px rgba(var(--color-foreground), 0.55); }
.field__input::placeholder { opacity: 0; }
.field__label {
	font-size: 1.6rem;
	left: 2.1rem;
	top: 1.1rem;
	margin-bottom: 0;
	pointer-events: none;
	position: absolute;
	transition: top 0.1s ease, font-size 0.1s ease;
	color: rgba(var(--color-foreground), 0.75);
	letter-spacing: 0.1rem;
	line-height: 1.5;
	z-index: 1;
}
.field__input:focus ~ .field__label,
.field__input:not(:placeholder-shown) ~ .field__label { font-size: 1rem; top: 0.3em; letter-spacing: 0.04rem; }
.field__input:focus, .field__input:not(:placeholder-shown) { padding: 2.2rem 2rem 0.8rem; }
.text-area { font-family: var(--font-body-family); font-style: normal; font-weight: 400; min-height: 10rem; resize: none; }
textarea.field__input { padding-top: 2.2rem; }
.field__button {
	align-items: center;
	background-color: transparent;
	border: 0;
	color: currentColor;
	cursor: pointer;
	display: flex;
	height: 4.4rem;
	justify-content: center;
	overflow: hidden;
	padding: 0;
	position: absolute;
	right: 0;
	top: 0;
	width: 4.4rem;
	z-index: 2;
}
.field__button > .icon { height: 1.5rem; width: 1.5rem; }
.form__message { align-items: center; display: flex; font-size: 1.4rem; line-height: 1; margin-top: 1rem; }
.form__message .icon { flex-shrink: 0; height: 1.3rem; margin-right: 0.5rem; width: 1.3rem; }
.select { display: flex; position: relative; width: 100%; }
.select .icon-caret { height: 0.6rem; pointer-events: none; position: absolute; top: calc(50% - 0.2rem); right: 1.5rem; }
.ssf-hp { position: absolute; left: -9999px; }

.icon { fill: currentColor; height: 1.5rem; width: 1.5rem; vertical-align: middle; }
.icon-arrow { width: 1.5rem; }
.icon-caret { height: 0.6rem; width: 1rem; }
.animate-arrow .icon-arrow path { transform: translateX(-0.25rem); transition: transform 0.15s ease; }
.animate-arrow:hover .icon-arrow path { transform: translateX(-0.05rem); }

/* ---------- Announcement bar ---------- */
.utility-bar { background: var(--color-sage); color: #000; }
.utility-bar__grid { display: grid; grid-template-columns: 1fr; }
.announcement-bar { display: flex; justify-content: center; align-items: center; min-height: 3.8rem; }
.announcement-bar__message {
	text-align: center;
	padding: 1rem 0;
	margin: 0;
	letter-spacing: 0.1rem;
	min-height: 3.8rem;
	color: #000;
	font-family: var(--font-body-family);
	font-weight: 500;
}
.announcement-bar__link { display: flex; width: 100%; text-decoration: none; justify-content: center; color: #000; }

/* ---------- Header ---------- */
.section-header { position: relative; z-index: 4; }
.header-wrapper { display: block; position: relative; background-color: #fff; }
.header-wrapper--border-bottom { border-bottom: 0.1rem solid rgba(var(--color-foreground), 0.08); }
.header {
	display: grid;
	grid-template-areas: "left-icons heading icons";
	grid-template-columns: 1fr 2fr 1fr;
	align-items: center;
	padding-top: 0.6rem; /* compact navbar (was 1rem) */
	padding-bottom: 0.6rem;
}
@media screen and (max-width: 749px) {
	.header.page-width { padding-left: 3rem; padding-right: 3rem; }
	.header__icons { gap: 0; margin-right: -1.2rem; }
	.header__icon--menu { margin-left: -1.2rem; }
}
@media screen and (min-width: 990px) {
	.header {
		grid-template-areas: "heading navigation icons";
		grid-template-columns: minmax(max-content, 1fr) auto minmax(max-content, 1fr); /* menu centred whatever the icon widths */
		column-gap: 2rem;
		padding-top: 1.2rem; /* compact navbar (was 2rem) */
		padding-bottom: 1.2rem;
	}
}
.header__heading { margin: 0; line-height: 0; grid-area: heading; justify-self: center; }
.header > .header__heading-link { grid-area: heading; justify-self: center; }
@media screen and (min-width: 990px) {
	.header__heading, .header > .header__heading-link { justify-self: start; }
	.header.page-width { max-width: none; padding-left: clamp(3.2rem, 6.4vw, 9.6rem); padding-right: clamp(3.2rem, 6.4vw, 9.6rem); }
	.header .header__heading-link { padding-left: 0; } /* logo sits on the padding line */
}
.header__heading-link { display: inline-block; padding: 0.75rem; text-decoration: none; word-break: break-word; }
.header__heading-logo-wrapper { width: 100%; display: block; line-height: 0; }
.header__heading-logo { height: auto; max-width: 100%; width: 12rem; display: block; aspect-ratio: 348.56 / 124; } /* 120 px = kit minimum */
@media screen and (max-width: 749px) { .header__heading-link { padding: 0.5rem; } }
@media screen and (min-width: 750px) { .header__heading-logo { width: 17rem; } }
@media screen and (min-width: 750px) and (max-width: 989px) { .header__heading-logo { width: 13.5rem; } }
@media screen and (min-width: 990px) and (max-width: 1199px) {
	.header__heading-logo { width: 15.5rem; }
	.header__inline-menu .list-menu--inline > li > .header__menu-item { padding-left: 1rem; padding-right: 1rem; }
	.header__inline-menu .list-menu--inline > li > details > summary.header__menu-item { padding-left: 1rem; padding-right: 2.5rem; }
}
@media screen and (min-width: 990px) and (max-width: 1099px) { /* keep the menu on one row on small desktops */
	.header { column-gap: 1rem; }
	.header__heading-logo { width: 14.5rem; }
	.header__inline-menu .list-menu--inline > li > .header__menu-item { padding-left: 0.8rem; padding-right: 0.8rem; }
	.header__inline-menu .list-menu--inline > li > details > summary.header__menu-item { padding-left: 0.8rem; padding-right: 2.3rem; }
}

.header__icons { display: flex; align-items: center; gap: 0.4rem; grid-area: icons; justify-self: end; margin-right: -1.2rem; }
.header__icon, .header__icon--cart .icon { height: 4.4rem; width: 4.4rem; padding: 0; }
.header__icon { color: rgb(var(--color-foreground)); display: flex; align-items: center; justify-content: center; text-decoration: none; position: relative; }
.header__icon .icon { height: 2rem; width: 2rem; fill: none; vertical-align: middle; }
.header__icon--cart { position: relative; }
.header__icon--cart .icon { margin: 0 -1.2rem; height: 4.4rem; width: 4.4rem; }
.header__icon--menu { grid-area: left-icons; }
.header__icon--summary .icon-close, details[open] > .header__icon--summary .icon-hamburger, details[open] > .header__icon--summary .icon-search { display: none; }
details[open] > .header__icon--summary .icon-close { display: block; }
.header__icon--summary > span { display: flex; align-items: center; justify-content: center; height: 100%; }
.menu-drawer-container { display: flex; grid-area: left-icons; }
@media screen and (min-width: 990px) { .menu-drawer-container { display: none; } }
.cart-count-bubble {
	position: absolute;
	background-color: rgb(var(--color-foreground));
	color: #fff;
	height: 1.7rem;
	width: 1.7rem;
	border-radius: 100%;
	display: flex;
	justify-content: center;
	align-items: center;
	font-size: 0.9rem;
	bottom: 0.8rem;
	left: 2.2rem;
	line-height: 1.1;
}

/* Inline menu */
.header__inline-menu { grid-area: navigation; justify-self: center; display: none; }
@media screen and (min-width: 990px) { .header__inline-menu { display: block; } }
.list-menu--inline { display: inline-flex; flex-wrap: wrap; }
.list-menu { list-style: none; padding: 0; margin: 0; }
.list-menu__item { display: flex; align-items: center; line-height: 1.3; }
.header__inline-menu li { position: relative; }
.header__menu-item, .menu-drawer__menu-item { font-weight: 500; }
.header__menu-item {
	padding: 1.2rem;
	text-decoration: none;
	color: rgba(var(--color-foreground), 0.75);
	font-size: 1.4rem;
	letter-spacing: 0.06rem;
}
.header__menu-item:hover { color: rgb(var(--color-foreground)); }
.header__menu-item span { transition: text-decoration 0.1s ease; }
.header__menu-item:hover span { text-decoration: underline; text-underline-offset: 0.3rem; }
.header__active-menu-item { transition: text-decoration-thickness 0.1s ease; color: rgb(var(--color-foreground)); text-decoration: underline; text-underline-offset: 0.3rem; }
.header__menu-item:hover .header__active-menu-item { text-decoration-thickness: 0.2rem; }
summary.header__menu-item { padding-right: 2.7rem; }
summary.header__menu-item .icon-caret { position: absolute; height: 0.6rem; right: 0.8rem; top: calc(50% - 0.2rem); }
details[open] > summary.header__menu-item .icon-caret { transform: rotate(180deg); }
details[open] > .header__menu-item { color: rgb(var(--color-foreground)); }
details[open] > .header__menu-item span { text-decoration: underline; text-underline-offset: 0.3rem; }
.header__submenu {
	list-style: none;
	padding: 1rem 0;
	margin: 0;
	transition: opacity 0.1s ease, transform 0.1s ease;
	font-size: 1.3rem;
}
.header__submenu.list-menu--disclosure {
	position: absolute;
	min-width: 100%;
	width: 20rem;
	border: 1px solid rgba(var(--color-foreground), 0.1);
	background-color: #fff;
	z-index: 3;
	top: 100%;
	left: 0;
	box-shadow: 28px 4px 5px rgba(var(--color-foreground), 0.05);
}
.header__submenu .header__menu-item { padding: 0.95rem 3.5rem 0.95rem 2rem; justify-content: space-between; font-size: 1.3rem; letter-spacing: 0.04rem; line-height: 1.5; }
.header__submenu .header__submenu { background-color: rgba(var(--color-foreground), 0.03); padding: 0.5rem 0; margin: 0.5rem 0; }
.header__submenu .header__submenu .header__menu-item { padding-left: 3rem; }
.header__submenu summary.header__menu-item .icon-caret { right: 2rem; }

/* Search: compact popover under the search icon (desktop) / panel under the header (mobile).
   The navbar itself never changes; same form, same /search?q= request. */
.header__search { display: inline-flex; line-height: 0; }
@media screen and (min-width: 750px) { .header__search { position: relative; } }
.search-modal {
	position: absolute;
	top: calc(100% + 0.6rem);
	left: 1.5rem;
	right: 1.5rem;
	z-index: 6;
	background: #fff;
	border: 1px solid rgba(var(--color-foreground), 0.08);
	border-top: 0.2rem solid var(--color-sage);
	box-shadow: 0 1.6rem 4rem rgba(26, 29, 27, 0.12);
	line-height: 1.8;
}
@media screen and (min-width: 750px) {
	.search-modal { left: auto; right: -0.8rem; width: min(44rem, calc(100vw - 4rem)); }
}
.search-modal .modal-overlay { display: none; }
.header__search:not([open]) .search-modal { display: none; }
.search-modal__content { display: flex; align-items: center; gap: 0.4rem; padding: 1.2rem 0.6rem 1.2rem 1.4rem; position: relative; }
.search-modal__form { flex: 1; min-width: 0; }
.search-modal__close-button { flex: none; background: none; border: 0; height: 4.4rem; width: 4.4rem; display: flex; align-items: center; justify-content: center; color: rgb(var(--color-foreground)); cursor: pointer; border-radius: 50%; transition: background-color 0.25s ease; }
.search-modal__close-button:hover { background-color: rgba(169, 201, 180, 0.3); }
.search-modal__close-button .icon { width: 1.5rem; height: 1.5rem; }

/* ---------- Navbar interactions (sage accent from the logo, one shared easing) ---------- */
:root { --ssf-ease: cubic-bezier(0.22, 0.61, 0.36, 1); --ssf-sage-soft: rgba(169, 201, 180, 0.32); }

/* Top-level links: sage underline growing from the centre; kept for the current page and open menu. */
.header__inline-menu .list-menu--inline > li > .header__menu-item > span, .header__inline-menu .list-menu--inline > li > details > .header__menu-item > span { position: relative; text-decoration: none; }
.header__inline-menu .list-menu--inline > li > .header__menu-item > span::after, .header__inline-menu .list-menu--inline > li > details > .header__menu-item > span::after {
	content: ""; position: absolute; left: 0; right: 0; bottom: -0.5rem; height: 0.2rem;
	background: var(--color-sage); transform: scaleX(0); transform-origin: 50% 50%;
	transition: transform 0.3s var(--ssf-ease);
}
.header__inline-menu .list-menu--inline > li > .header__menu-item, .header__inline-menu .list-menu--inline > li > details > .header__menu-item { transition: color 0.3s var(--ssf-ease); }
@media (hover: hover) {
	.header__inline-menu .list-menu--inline > li > .header__menu-item:hover > span, .header__inline-menu .list-menu--inline > li > details > .header__menu-item:hover > span { text-decoration: none; }
	.header__inline-menu .list-menu--inline > li > .header__menu-item:hover > span::after, .header__inline-menu .list-menu--inline > li > details > .header__menu-item:hover > span::after { transform: scaleX(1); }
}
.header__inline-menu .list-menu--inline > li > .header__menu-item:focus-visible > span::after, .header__inline-menu .list-menu--inline > li > details > .header__menu-item:focus-visible > span::after,
.header__inline-menu .list-menu--inline > li > details[open]:not(.is-closing) > .header__menu-item > span::after,
.header__inline-menu .list-menu--inline > li > .header__menu-item > .header__active-menu-item::after, .header__inline-menu .list-menu--inline > li > details > .header__menu-item > .header__active-menu-item::after { transform: scaleX(1); }
.header__inline-menu .list-menu--inline > li > .header__menu-item > .header__active-menu-item, .header__inline-menu .list-menu--inline > li > details > .header__menu-item > .header__active-menu-item,
.header__inline-menu .list-menu--inline > li > details[open] > .header__menu-item > span { text-decoration: none; }

/* Chevron: lighter, rotates smoothly both ways. */
.header__inline-menu summary.header__menu-item .icon-caret { width: 0.9rem; height: 0.55rem; opacity: 0.7; transition: transform 0.3s var(--ssf-ease), opacity 0.3s var(--ssf-ease); }
.header__inline-menu details[open]:not(.is-closing) > summary.header__menu-item .icon-caret { transform: rotate(180deg); opacity: 1; }
.header__inline-menu details.is-closing > summary.header__menu-item .icon-caret { transform: none; }

/* Dropdown panel: sized to its longest label (one line each), soft shadow, fades + slides in and out. */
.header__submenu.list-menu--disclosure {
	width: max-content; min-width: max(100%, 20rem); max-width: calc(100vw - 4rem);
	padding: 0.8rem 0; border: 1px solid rgba(var(--color-foreground), 0.06); border-top: 0.2rem solid var(--color-sage);
	box-shadow: 0 1.6rem 4rem rgba(26, 29, 27, 0.1);
}
.header__submenu.list-menu--disclosure::before { content: ""; position: absolute; left: 0; right: 0; bottom: 100%; height: 1.2rem; } /* hover bridge: no gap between item and panel */
.header__submenu.header__submenu--right { left: auto; right: 0; } /* set by JS if the panel would leave the viewport */
.header__submenu .header__menu-item { white-space: nowrap; transition: background-color 0.25s var(--ssf-ease), color 0.25s var(--ssf-ease); }
@media (hover: hover) {
	.header__submenu .header__menu-item:hover { background-color: var(--ssf-sage-soft); }
	.header__submenu .header__menu-item:hover span { text-decoration: none; }
}
.header__submenu .header__menu-item:focus-visible { background-color: var(--ssf-sage-soft); }
@keyframes ssf-pop-in { from { opacity: 0; transform: translateY(-0.6rem); } to { opacity: 1; transform: none; } }
@keyframes ssf-pop-out { from { opacity: 1; transform: none; } to { opacity: 0; transform: translateY(-0.6rem); } }
.header__inline-menu details[open] > .header__submenu,
.header__search[open] .search-modal { animation: ssf-pop-in 0.28s var(--ssf-ease) both; }
.header__inline-menu details.is-closing > .header__submenu,
.header__search.is-closing .search-modal { animation: ssf-pop-out 0.18s ease-in both; pointer-events: none; }

/* Icons (search, account, cart, menu): soft sage circle + gentle cart-badge bump. Same timing for all. */
.header__icon .icon { position: relative; transition: transform 0.3s var(--ssf-ease); }
.header__icon::before {
	content: ""; position: absolute; top: 50%; left: 50%; width: 3.8rem; height: 3.8rem; margin: -1.9rem 0 0 -1.9rem;
	border-radius: 50%; background: var(--ssf-sage-soft); opacity: 0; transform: scale(0.6);
	transition: opacity 0.3s var(--ssf-ease), transform 0.3s var(--ssf-ease); pointer-events: none;
}
.cart-count-bubble { z-index: 1; transition: transform 0.3s var(--ssf-ease); }
@media (hover: hover) {
	.header__icon:hover::before { opacity: 1; transform: scale(1); }
	.header__icon:hover .cart-count-bubble { transform: scale(1.12); }
}
.header__icon:focus-visible::before, .header__search[open]:not(.is-closing) > .header__icon::before { opacity: 1; transform: scale(1); }
.header__icon:active::before { opacity: 1; transform: scale(0.92); }

@media (prefers-reduced-motion: reduce) {
	.header__inline-menu .list-menu--inline > li > .header__menu-item > span::after, .header__inline-menu .list-menu--inline > li > details > .header__menu-item > span::after, .header__inline-menu summary.header__menu-item .icon-caret,
	.header__icon::before, .header__icon .icon, .cart-count-bubble, .header__submenu .header__menu-item { transition: none; }
	.header__inline-menu details[open] > .header__submenu, .header__search[open] .search-modal,
	.header__inline-menu details.is-closing > .header__submenu, .header__search.is-closing .search-modal { animation: none; }
}
.search__input.field__input { padding-right: 9.8rem; }
.search__button { right: 0; top: 0; }
.search__button .icon { height: 1.8rem; width: 1.8rem; }
input::-webkit-search-decoration, input::-webkit-search-cancel-button { -webkit-appearance: none; }

/* Mobile drawer */
.menu-drawer {
	position: fixed;
	top: var(--header-bottom);
	bottom: 0;
	left: 0;
	transform: translateX(-100%);
	visibility: hidden;
	z-index: 3;
	width: 100%;
	padding: 0;
	background-color: #fff;
	overflow-x: hidden;
	border-right: 1px solid rgba(var(--color-foreground), 0.1);
	overscroll-behavior: contain;
	box-sizing: border-box; /* the 1px border stays inside the viewport at 100% width */
}
@media screen and (min-width: 750px) { .menu-drawer { width: 40rem; box-shadow: 1.6rem 0 4rem rgba(26, 29, 27, 0.08); } }
.menu-drawer-container[open] .menu-drawer { transform: none; visibility: visible; animation: ssf-drawer-in 0.34s var(--ssf-ease) both; }
.menu-drawer-container.is-closing .menu-drawer { animation: ssf-drawer-out 0.24s ease-in both; pointer-events: none; }
@keyframes ssf-drawer-in { from { opacity: 0; transform: translateX(-2.4rem); } to { opacity: 1; transform: none; } }
@keyframes ssf-drawer-out { from { opacity: 1; transform: none; } to { opacity: 0; transform: translateX(-2.4rem); } }
/* Backdrop (tap closes the menu; handled in main.js). */
.menu-drawer-container::after {
	content: ""; position: fixed; top: var(--header-bottom); left: 0; right: 0; bottom: 0; z-index: 2;
	background: rgba(26, 29, 27, 0.4); opacity: 0; visibility: hidden; pointer-events: none;
	transition: opacity 0.3s var(--ssf-ease), visibility 0.3s;
}
.menu-drawer-container[open]:not(.is-closing)::after { opacity: 1; visibility: visible; pointer-events: auto; cursor: default; }
/* Burger ↔ close: both icons stacked, cross-fade with a quarter turn. */
.header__icon--menu > span { position: relative; }
.header__icon--menu .icon-hamburger, .header__icon--menu .icon-close { display: block; transition: opacity 0.3s var(--ssf-ease), transform 0.3s var(--ssf-ease); }
.header__icon--menu .icon-close { position: absolute; top: 50%; left: 50%; width: 1.7rem; height: 1.7rem; margin: -0.85rem 0 0 -0.85rem; opacity: 0; transform: rotate(-90deg) scale(0.6); }
.menu-drawer-container[open]:not(.is-closing) > .header__icon--menu .icon-hamburger { display: block; opacity: 0; transform: rotate(90deg) scale(0.6); }
.menu-drawer-container[open]:not(.is-closing) > .header__icon--menu .icon-close { opacity: 1; transform: none; }
.menu-drawer-container[open] > .header__icon--menu .icon-hamburger { display: block; } /* stays rendered while morphing back */
.menu-drawer-container[open]:not(.is-closing) > .header__icon::before { opacity: 1; transform: scale(1); }
.menu-drawer__inner-container { position: relative; height: 100%; }
.menu-drawer__navigation-container { display: grid; grid-template-rows: 1fr auto; align-content: space-between; overflow-y: auto; height: 100%; }
.menu-drawer__navigation { padding: 3rem 0; }
.menu-drawer__menu { list-style: none; padding: 0; margin: 0; }
.menu-drawer__menu li { margin-bottom: 0.2rem; }
.menu-drawer__menu-item {
	padding: 1.1rem 3rem;
	text-decoration: none;
	font-size: 1.8rem;
	color: rgb(var(--color-foreground));
	position: relative;
	display: flex;
}
.menu-drawer__menu-item--active, .menu-drawer__menu-item:hover { background-color: rgba(var(--color-foreground), 0.04); }
.menu-drawer__menu-item .icon-arrow { position: absolute; right: 3rem; top: calc(50% - 0.75rem); width: 1.5rem; height: 1.5rem; }
.menu-drawer__menu-item .icon-caret { display: none; }
.menu-drawer__submenu {
	height: 100%;
	position: absolute;
	width: 100%;
	top: 0;
	left: 0;
	background-color: #fff;
	z-index: 1;
	transform: translateX(100%);
	visibility: hidden;
	overflow-y: auto;
}
.menu-drawer details[open] > .menu-drawer__submenu { transform: none; visibility: visible; animation: ssf-sub-in 0.32s var(--ssf-ease) both; }
.menu-drawer details.is-closing > .menu-drawer__submenu { animation: ssf-sub-out 0.22s ease-in both; pointer-events: none; }
@keyframes ssf-sub-in { from { opacity: 0; transform: translateX(3rem); } to { opacity: 1; transform: none; } }
@keyframes ssf-sub-out { from { opacity: 1; transform: none; } to { opacity: 0; transform: translateX(3rem); } }
.menu-drawer__menu-item .icon-arrow { transition: transform 0.3s var(--ssf-ease); }
@media (hover: hover) { .menu-drawer__menu-item:hover .icon-arrow { transform: translateX(0.3rem); } }
.menu-drawer__menu-item:focus-visible .icon-arrow { transform: translateX(0.3rem); }
@media (prefers-reduced-motion: reduce) {
	.menu-drawer-container[open] .menu-drawer, .menu-drawer-container.is-closing .menu-drawer,
	.menu-drawer details[open] > .menu-drawer__submenu, .menu-drawer details.is-closing > .menu-drawer__submenu { animation: none; }
	.menu-drawer-container::after, .header__icon--menu .icon-hamburger, .header__icon--menu .icon-close, .menu-drawer__menu-item .icon-arrow { transition: none; }
}
.menu-drawer__inner-submenu { height: 100%; overflow-x: hidden; overflow-y: auto; }
.menu-drawer__close-button {
	margin-top: 1.5rem;
	padding: 1.2rem 2.6rem 1.2rem 3rem;
	text-decoration: none;
	display: flex;
	align-items: center;
	font-size: 1.4rem;
	width: 100%;
	background-color: transparent;
	font-family: var(--font-body-family);
	text-align: left;
	border: 0;
	cursor: pointer;
	color: rgb(var(--color-foreground));
}
.menu-drawer__close-button .icon-arrow { transform: rotate(180deg); margin-right: 1rem; }
.menu-drawer__utility-links { padding: 0; background-color: rgba(var(--color-foreground), 0.03); position: relative; }
.menu-drawer__account { display: inline-flex; align-items: center; text-decoration: none; padding: 1.2rem; margin-left: -1.2rem; font-size: 1.4rem; color: rgb(var(--color-foreground)); }
.menu-drawer__account .icon-account { height: 2rem; width: 2rem; margin-right: 1rem; }
.menu-drawer__utility-links { padding: 2rem 3rem; }
.menu-drawer .list-social { justify-content: flex-start; margin-left: -1.25rem; margin-top: 2rem; }
.list-social { display: flex; flex-wrap: wrap; justify-content: flex-end; }
.list-social__link { align-items: center; display: flex; padding: 1.1rem; color: rgb(var(--color-foreground)); }
.list-social__link:hover .icon { transform: scale(1.07); }
.list-social__link .icon { height: 1.8rem; width: 1.8rem; transition: transform 0.1s ease; }
html.ssf-drawer-open, body.ssf-drawer-open { overflow: hidden; } /* background does not scroll while the menu is open */

/* ---------- Grid & cards ---------- */
.grid { display: flex; flex-wrap: wrap; margin: 0; padding: 0; list-style: none; column-gap: var(--grid-h); row-gap: var(--grid-v); }
.grid__item { width: calc(25% - var(--grid-h) * 3 / 4); max-width: calc(50% - var(--grid-h) / 2); flex-grow: 1; flex-shrink: 0; }
.grid--1-col .grid__item { max-width: 100%; width: 100%; }
.grid--2-col-tablet-down .grid__item { width: calc(50% - var(--grid-h) / 2); }
@media screen and (min-width: 750px) {
	.grid--2-col-tablet .grid__item { width: calc(50% - var(--grid-h) / 2); }
}
@media screen and (max-width: 989px) {
	.grid--1-col-tablet-down .grid__item { width: 100%; max-width: 100%; }
}
@media screen and (min-width: 990px) {
	.grid--4-col-desktop .grid__item { width: calc(25% - var(--grid-h) * 3 / 4); max-width: calc(25% - var(--grid-h) * 3 / 4); }
	.grid--3-col-desktop .grid__item { width: calc(33.33% - var(--grid-h) * 2 / 3); max-width: calc(33.33% - var(--grid-h) * 2 / 3); }
}
.grid--gapless { column-gap: 0; row-gap: 0; }

.card-wrapper { color: inherit; height: 100%; position: relative; text-decoration: none; }
.card { text-decoration: none; text-align: left; display: flex; flex-direction: column; height: 100%; position: relative; }
.card__inner { position: relative; width: 100%; aspect-ratio: 1 / 1; background: var(--color-sage); overflow: hidden; }
.card__media { position: absolute; inset: 0; margin: 0; width: 100%; }
.media { display: block; background-color: rgba(var(--color-foreground), 0.1); position: relative; overflow: hidden; }
.media--transparent { background-color: transparent; }
.card__media .media { height: 100%; }
.card__media .media img, .media > img { position: absolute; top: 0; left: 0; width: 100%; height: 100%; object-fit: cover; object-position: center center; transition: opacity 0.4s cubic-bezier(0.25, 0.46, 0.45, 0.94), transform 0.4s ease; }
.media--hover-effect > img + img { opacity: 0; }
@media screen and (min-width: 990px) {
	.card-wrapper:hover .media.media--hover-effect > img:first-child:not(:only-child) { opacity: 0; }
	.card-wrapper:hover .media.media--hover-effect > img + img { opacity: 1; transform: scale(1.03); }
	.card-wrapper:hover .media.media--hover-effect > img:only-child { transform: scale(1.03); }
}
.card__inner > .card__content { position: absolute; inset: 0; padding: 1rem; display: flex; align-items: flex-end; pointer-events: none; }
.card > .card__content { display: block; flex-grow: 1; }
.card__information { padding: 1.7rem 0; }
.card__heading { margin: 0; }
.card__heading a::after { content: ""; position: absolute; inset: 0; z-index: 1; }
.card__heading.h5 { font-size: 1.2rem; }
.card__content--text { position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; padding: 2rem; text-align: center; }
@media screen and (min-width: 750px) { .card__heading.h5 { font-size: 1.3rem; } }
.underline-links-hover:hover a { text-decoration: underline; text-underline-offset: 0.3rem; }
.card-information > .price { margin-top: 0.7rem; }
.card__badge { align-self: flex-end; }

.badge {
	border: 1px solid rgba(255, 255, 255, 0.1);
	border-radius: 4rem;
	display: inline-block;
	font-size: 1.2rem;
	letter-spacing: 0.1rem;
	line-height: 1;
	padding: 0.5rem 1.3rem 0.6rem;
	text-align: center;
	background-color: rgb(var(--color-foreground));
	color: #fff;
	word-break: break-word;
}
.badge.color-scheme-3 { background-color: #242833; }

/* Collection card */
.collection-card-wrapper .card__heading { font-size: 1.7rem; }
@media screen and (min-width: 750px) { .collection-card-wrapper .card__heading { font-size: 1.8rem; } }
.collection-card-wrapper .card__information { padding: 1.7rem 0; }
.collection-card-wrapper .icon-wrap { margin-left: 0.8rem; white-space: nowrap; display: inline-flex; vertical-align: middle; }
.collection-card-wrapper .icon-wrap .icon { width: 1.2rem; height: 1rem; }
.collection-card-wrapper:hover .card__heading a { text-decoration: underline; text-underline-offset: 0.3rem; }
.collection-list { margin-top: 0; margin-bottom: 0; }
.collection-list-title { margin: 0; }
@media screen and (max-width: 749px) {
	.collection-list .collection-list__item { width: 100%; max-width: 100%; }
}

/* Price */
.price { font-size: 1.6rem; letter-spacing: 0.1rem; line-height: 1.5; color: rgb(var(--color-foreground)); }
.price > * { display: inline-block; vertical-align: top; }
.price-item { margin: 0 1rem 0 0; display: inline-block; }
.price .price-item:last-child { margin-right: 0; }
.price__sale { display: flex; flex-wrap: wrap; align-items: center; }
.price--on-sale .price__sale s.price-item--regular { margin-right: 1rem; }
.price--on-sale .price-item--sale { margin-right: 0; }
.price--on-sale .price-item--regular { text-decoration: line-through; color: rgba(var(--color-foreground), 0.75); font-size: 1.3rem; margin-right: 0; }
.price .badge { margin-left: 0; }

/* ---------- Home ---------- */
/* Home hero: banner image sized to the section, blurred + darkened, centred text and two buttons. */
.ssf-hero {
	position: relative; display: flex; align-items: center; justify-content: center; overflow: hidden; isolation: isolate;
	min-height: max(48rem, calc(100vh - 6.5rem)); min-height: max(48rem, calc(100svh - 6.5rem)); /* full first screen under the header */
	background: #1a1d1b; color: #f7f5ef; text-align: center;
}
@media screen and (min-width: 750px) { .ssf-hero { min-height: max(52rem, calc(100vh - 7.5rem)); min-height: max(52rem, calc(100svh - 7.5rem)); } }
@media screen and (min-width: 990px) { .ssf-hero { min-height: max(56rem, calc(100vh - 9.9rem)); } }
.ssf-hero__media { position: absolute; inset: 0; z-index: -2; }
.ssf-hero__media img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; filter: blur(2px) saturate(1.05); transform: scale(1.03); }
.ssf-hero::before { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(180deg, rgba(26, 29, 27, 0.42) 0%, rgba(26, 29, 27, 0.5) 55%, rgba(26, 29, 27, 0.62) 100%); }
.ssf-hero__content { position: relative; padding-top: 6rem; padding-bottom: 6rem; max-width: 76rem; }
.ssf-hero__eyebrow { margin: 0 0 1.4rem; font-family: var(--font-body-family); font-weight: 500; font-size: 1.3rem; letter-spacing: 0.24rem; text-transform: uppercase; color: #a9c9b4; }
.ssf-hero__title { margin: 0 auto 3.2rem; max-width: 22ch; font-family: var(--font-heading-family); font-weight: 500; font-size: clamp(2.8rem, 4.6vw, 4.6rem); line-height: 1.15; letter-spacing: 0.02rem; color: #f7f5ef; }
.ssf-hero__actions { display: flex; flex-wrap: wrap; justify-content: center; gap: 1.2rem 1.6rem; }
.ssf-hero__btn {
	display: inline-flex; align-items: center; justify-content: center; min-height: 4.8rem; padding: 0 2.8rem; border-radius: 0.4rem;
	font-family: var(--font-body-family); font-weight: 500; font-size: 1.5rem; letter-spacing: 0.06rem; text-decoration: none;
	border: 1px solid #f7f5ef; transition: background-color 0.35s var(--ssf-ease, ease), color 0.35s var(--ssf-ease, ease), border-color 0.35s var(--ssf-ease, ease), transform 0.35s var(--ssf-ease, ease);
}
.ssf-hero__btn--primary { background: #f7f5ef; color: #1a1d1b; }
.ssf-hero__btn--ghost { background: rgba(247, 245, 239, 0.04); color: #f7f5ef; border-color: rgba(247, 245, 239, 0.7); }
@media (hover: hover) {
	.ssf-hero__btn--primary:hover { background: #a9c9b4; border-color: #a9c9b4; color: #1a1d1b; transform: translateY(-0.2rem); }
	.ssf-hero__btn--ghost:hover { background: #f7f5ef; border-color: #f7f5ef; color: #1a1d1b; transform: translateY(-0.2rem); }
}
.ssf-hero__btn:focus-visible { outline: 2px solid #a9c9b4; outline-offset: 3px; }
@media screen and (max-width: 479px) { .ssf-hero__actions { flex-direction: column; align-items: stretch; max-width: 30rem; margin: 0 auto; } }
#la-collection { scroll-margin-top: 2rem; }
@media (prefers-reduced-motion: reduce) { .ssf-hero__btn { transition: none; } .ssf-hero__btn:hover { transform: none; } }
.section-collection-list.section-padding { padding-bottom: 3.6rem; }
.collection-list-wrapper .title-wrapper-with-link { margin-top: 2rem; margin-bottom: 3rem; }
.section-featured-collection .collection__title { padding-top: 0.9rem; }
.section-featured-collection .collection__title .title { margin: 0 0 3rem; }
.product-grid { margin-top: 1.6rem; }
.collection__title + .product-grid { margin-top: 0; }
.collection__view-all { margin-top: 1rem; margin-bottom: 0; }
.collection__view-all .button { margin-top: 0; }
.section-featured-collection.section-padding { padding-bottom: 1.6rem; }

/* ---------- Collection page ---------- */
.collection-hero__inner { display: flex; flex-direction: column; }
.collection-hero__title { margin: 2.5rem 0; }
.collection-hero__description { margin-bottom: 2.5rem; }
.facets-container { padding-top: 1rem; }
.facets__form--desktop { display: none; }
@media screen and (min-width: 750px) {
	.facets__form--desktop { display: grid; grid-template-columns: 1fr auto auto; align-items: flex-start; column-gap: 0; }
	.mobile-facets__wrapper, .mobile-product-count { display: none !important; }
}
.facets__wrapper { display: flex; flex-wrap: wrap; align-items: flex-start; }
/* Floating WhatsApp button: hidden while an overlay is open (menu, mobile filters, lightbox, pickup drawer) so it never covers their buttons. */
body .ssf-wa { transition: opacity 0.25s ease, visibility 0.25s ease, transform 0.25s ease, box-shadow 0.25s ease; }
body.ssf-drawer-open .ssf-wa, body:has(.mobile-facets__wrapper[open]) .ssf-wa, body:has(.product-lightbox:not([hidden])) .ssf-wa, body:has(.pickup-drawer:not([hidden])) .ssf-wa { opacity: 0; visibility: hidden; pointer-events: none; }
/* Active filters (Dawn active facets): removable pills + "Tout supprimer". */
.active-facets { display: flex; flex-wrap: wrap; align-items: center; gap: 1rem 1.2rem; width: 100%; margin: 1.2rem 0 0.4rem; }
.active-facets-desktop { grid-column: 1 / -1; grid-row: 2; }
.active-facets-mobile { margin: 0.4rem 0 1.2rem; }
@media screen and (min-width: 750px) { .active-facets-mobile { display: none; } }
.active-facets__button { color: rgb(var(--color-foreground)); text-decoration: none; }
.active-facets__button-inner { display: inline-flex; align-items: center; gap: 0.6rem; min-height: 3.6rem; padding: 0.4rem 1rem 0.4rem 1.4rem; border-radius: 2.6rem; box-shadow: 0 0 0 0.1rem rgba(var(--color-foreground), 0.55); font-size: 1.3rem; letter-spacing: 0.06rem; line-height: 1.4; transition: box-shadow 0.25s var(--ssf-ease, ease); }
@media screen and (min-width: 990px) { .active-facets__button-inner { font-size: 1.4rem; } }
.active-facets__button:hover .active-facets__button-inner, .active-facets__button:focus-visible .active-facets__button-inner { box-shadow: 0 0 0 0.2rem rgb(var(--color-foreground)); }
.active-facets__button .icon-close { width: 1.1rem; height: 1.1rem; flex: none; }
.active-facets__button-remove { font-size: 1.3rem; letter-spacing: 0.06rem; color: rgb(var(--color-foreground)); text-underline-offset: 0.3rem; }
@media (prefers-reduced-motion: reduce) { .active-facets__button-inner { transition: none; } }
.facets__heading { margin: 0 2rem 0 0; display: block; color: rgba(var(--color-foreground), 0.85); font-size: 1.4rem; line-height: 1.5; letter-spacing: 0.04rem; font-family: var(--font-body-family); font-weight: 400; }
.facets__disclosure { margin-right: 3.5rem; position: relative; }
.facets__summary { color: rgba(var(--color-foreground), 0.75); font-size: 1.4rem; line-height: 1.5; letter-spacing: 0.04rem; padding: 0 1.75rem 0 0; margin-bottom: 1.5rem; }
.facets__summary > div { display: flex; align-items: center; }
.facets__summary .icon-caret { position: absolute; height: 0.6rem; right: 0; top: calc(50% - 0.2rem); }
.facets__summary:hover .facets__summary-label { text-decoration: underline; text-underline-offset: 0.3rem; }
details[open] > .facets__summary .icon-caret { transform: rotate(180deg); }
.facets__display {
	background-color: #fff;
	position: absolute;
	border: 1px solid rgba(var(--color-foreground), 0.2);
	top: calc(100% - 1rem);
	left: -1.2rem;
	width: 35rem;
	max-height: 55rem;
	overflow-y: auto;
	z-index: 3;
}
.facets__header { border-bottom: 1px solid rgba(var(--color-foreground), 0.2); padding: 1.5rem 2rem; display: flex; justify-content: space-between; font-size: 1.4rem; position: sticky; top: 0; background: #fff; z-index: 1; }
.facets__header .facets__reset { font-size: 1.4rem; }
.facets__list { padding: 0.5rem 2rem; }
.facets__item { display: flex; align-items: center; }
.facet-checkbox { padding: 1rem 2rem 1rem 0; flex-grow: 1; position: relative; font-size: 1.4rem; display: flex; word-break: break-word; cursor: pointer; align-items: center; }
.facet-checkbox input[type="checkbox"] { position: absolute; opacity: 1; width: 1.6rem; height: 1.6rem; top: 0.7rem; left: -0.4rem; z-index: -1; appearance: none; -webkit-appearance: none; }
.facet-checkbox > svg { background-color: #fff; margin-right: 1.2rem; flex-shrink: 0; width: 1.6rem; height: 1.6rem; }
.facet-checkbox .icon-tick { visibility: hidden; position: absolute; left: 0.3rem; z-index: 5; top: 1.6rem; width: 1rem; height: 0.9rem; }
.facet-checkbox input[type="checkbox"]:checked ~ .icon-tick { visibility: visible; }
.facet-checkbox--disabled { color: rgba(var(--color-foreground), 0.4); cursor: default; }
.facets__price { display: flex; padding: 2rem; align-items: center; }
.facets__price .field-currency { align-self: center; margin-right: 0.6rem; }
.facets__price + .facets__price { padding-top: 0; }
.facet-filters { align-items: flex-start; display: flex; padding-left: 2.5rem; }
.facet-filters__field { align-items: center; display: flex; flex-grow: 1; justify-content: flex-end; }
.facet-filters__label { white-space: nowrap; color: rgba(var(--color-foreground), 0.85); font-size: 1.4rem; margin: 0 2rem 0 0; font-family: var(--font-body-family); font-weight: 400; }
.facet-filters__label label { cursor: pointer; }
.facet-filters__sort {
	background-color: transparent;
	border: 0;
	border-radius: 0;
	font-size: 1.4rem;
	height: auto;
	line-height: 1.5;
	margin: 0;
	padding-left: 0;
	padding-right: 1.75rem;
	color: rgba(var(--color-foreground), 0.75);
	min-height: 0;
	box-shadow: none;
	font-family: var(--font-body-family);
	letter-spacing: 0.04rem;
	cursor: pointer;
}
.facet-filters__field .select::after { display: none; }
.facet-filters__field .select .icon-caret { right: 0; }
.facet-filters__sort:focus { outline: none; box-shadow: none; }
.product-count { align-self: flex-start; margin-left: 3.5rem; }
.product-count__text { font-size: 1.4rem; line-height: 1.5; margin: 0; color: rgb(var(--color-foreground)); letter-spacing: 0.06rem; }
#product-grid { margin-top: 1.6rem; margin-bottom: 2rem; }
.collection { position: relative; }
.collection--empty .title-wrapper { margin-top: 10rem; margin-bottom: 15rem; }

/* Mobile facets */
.facets-container { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; }
.facets-container > form { width: 100%; }
.mobile-facets__wrapper { margin-right: 2rem; }
.mobile-facets__open { display: flex; align-items: center; color: rgba(var(--color-foreground), 0.75); padding: 1.2rem 0; }
.mobile-facets__open .icon-filter { width: 2rem; height: 2rem; margin-right: 1rem; }
.mobile-facets__open-label { font-size: 1.5rem; }
.mobile-facets__wrapper[open] .mobile-facets__form {
	position: fixed;
	inset: 0;
	left: auto;
	width: min(100%, 37.5rem);
	background: #fff;
	z-index: 1000;
	display: flex;
	flex-direction: column;
	border-left: 1px solid rgba(var(--color-foreground), 0.1);
}
.mobile-facets__wrapper:not([open]) .mobile-facets__form { display: none; }
.mobile-facets__wrapper[open] > summary::before { content: ""; position: fixed; inset: 0; background: rgba(var(--color-foreground), 0.5); z-index: 999; }
.mobile-facets__header { border-bottom: 1px solid rgba(var(--color-foreground), 0.08); padding: 1rem 2.5rem; text-align: center; }
.mobile-facets__heading { font-size: 1.4rem; margin: 0; }
.mobile-facets__count { margin: 0; font-size: 1.3rem; line-height: 1.5; }
.mobile-facets__main { flex-grow: 1; overflow-y: auto; padding: 1rem 2.5rem; }
.mobile-facets__main .facets__disclosure { margin: 0; border-bottom: 1px solid rgba(var(--color-foreground), 0.08); }
.mobile-facets__main .facets__summary { padding: 1.5rem 0; margin: 0; font-size: 1.4rem; }
.mobile-facets__main .facets__display { position: static; width: 100%; border: 0; max-height: none; }
.mobile-facets__main .facets__header { padding: 0 0 1rem; border: 0; }
.mobile-facets__main .facets__list, .mobile-facets__main .facets__price { padding-left: 0; padding-right: 0; }
.mobile-facets__sort { padding: 1.5rem 0; }
.mobile-facets__sort .facet-filters__field { justify-content: space-between; }
.mobile-facets__footer { border-top: 1px solid rgba(var(--color-foreground), 0.08); padding: 2rem; display: flex; gap: 1rem; }
.mobile-facets__footer .button { flex: 1; min-width: 0; padding: 0 1rem; }
.mobile-product-count .product-count__text { color: rgba(var(--color-foreground), 0.75); }

/* Pagination */
.pagination-wrapper { margin-top: 4rem; }
@media screen and (min-width: 990px) { .pagination-wrapper { margin-top: 5rem; } }
.pagination__list { display: flex; flex-wrap: wrap; justify-content: center; }
.pagination__list > li { flex: 1 0 4.4rem; max-width: 4.4rem; }
.pagination__item {
	color: rgb(var(--color-foreground));
	display: inline-flex;
	justify-content: center;
	align-items: center;
	position: relative;
	height: 4.4rem;
	width: 100%;
	padding: 0;
	text-decoration: none;
}
a.pagination__item:hover::after { content: ""; display: block; width: 2rem; height: 0.1rem; position: absolute; bottom: 8px; left: 50%; transform: translateX(-50%); background-color: currentColor; }
.pagination__item--current::after { content: ""; display: block; width: 2rem; height: 0.1rem; position: absolute; bottom: 8px; left: 50%; transform: translateX(-50%); background-color: currentColor; }
.pagination__item--next .icon { margin-left: -0.2rem; transform: rotate(90deg); }
.pagination__item--prev .icon { margin-right: -0.2rem; transform: rotate(-90deg); }
.pagination__item-arrow .icon { width: 1.2rem; }

/* ---------- Product page ---------- */
.section-main-product { padding-top: 2.7rem; padding-bottom: 0.9rem; }
@media screen and (min-width: 750px) { .section-main-product { padding-top: 3.6rem; padding-bottom: 1.2rem; } }
.product { margin: 0; }
.product.grid { gap: 0; }
.product__media-wrapper { padding-left: 0; width: 100%; max-width: 100%; }
.product__info-wrapper { padding: 0; width: 100%; max-width: 100%; }
@media screen and (min-width: 750px) {
	.product__media-wrapper { width: calc(50% - var(--grid-h) / 2); max-width: 50%; }
	.product__info-wrapper { width: calc(50% - var(--grid-h) / 2); max-width: 50%; padding: 0 0 0 5rem; }
}
@media screen and (min-width: 990px) {
	.product--large .product__media-wrapper { max-width: 65%; width: calc(65% - var(--grid-h) / 2); }
	.product--large .product__info-wrapper { max-width: 35%; width: calc(35% - var(--grid-h) / 2); padding: 0 0 0 4rem; }
}
.product__media-list { margin: 0 0 2rem; padding: 0; list-style: none; display: flex; flex-wrap: wrap; gap: var(--grid-v) var(--grid-h); }
.product .product__media-list .product__media-item { position: relative; width: calc(50% - var(--grid-h) / 2); max-width: 100%; flex-grow: 0; }
.product .product__media-list .product__media-item--full, .product--single-media .product__media-list .product__media-item { width: 100%; max-width: 100%; }
.product-media-container { border: 1px solid rgba(var(--color-foreground), 0.05); overflow: hidden; }
.product__media { position: relative; }
.product__media img { position: static; display: block; width: 100%; height: auto; }
.product__media-toggle { position: absolute; inset: 0; z-index: 2; width: 100%; height: 100%; background: transparent; border: 0; padding: 0; cursor: zoom-in; }
@media screen and (max-width: 749px) {
	.product__media-list.slider--mobile { flex-wrap: nowrap; overflow-x: auto; scroll-snap-type: x mandatory; scroll-behavior: smooth; gap: var(--grid-h); margin-bottom: 1rem; scrollbar-width: none; margin-left: -1.5rem; margin-right: -1.5rem; padding: 0 1.5rem; scroll-padding-left: 1.5rem; }
	.product__media-list.slider--mobile::-webkit-scrollbar { display: none; }
	.product .slider--mobile .product__media-item { width: calc(100% - 3rem); flex-shrink: 0; scroll-snap-align: start; }
	.product--single-media .slider--mobile .product__media-item { width: 100%; }
	.slider-buttons { display: flex; justify-content: center; align-items: center; margin-bottom: 1rem; }
	.slider-counter { font-size: 1.2rem; display: flex; justify-content: center; min-width: 4.4rem; color: rgba(var(--color-foreground), 0.75); }
}
.product__info-container > * + * { margin: 1.5rem 0; }
.product__info-container .product__text + .product__title { margin-top: 0; }
.product__text { margin-bottom: 0; }
.product__text.caption-with-letter-spacing { margin: 0; color: rgba(var(--color-foreground), 0.75); }
.product__title { word-break: break-word; margin-bottom: 1.5rem; }
.product__title > h1 { margin: 0; }
@media screen and (min-width: 990px) {
	.product__column-sticky { display: block; position: sticky; top: 3rem; z-index: 2; }
}
.product .price { font-size: 1.8rem; letter-spacing: 0.13rem; line-height: 1.5; display: flex; flex-wrap: wrap; align-items: center; }
.product .price .price-item { font-size: 1.8rem; }
.product .price--on-sale .price-item--regular { font-size: 1.6rem; }
.product .price__container { margin-bottom: 0.5rem; margin-right: 1rem; }
.product .price .badge { margin-bottom: 0.5rem; }
.product-form__input { flex: 0 0 100%; padding: 0; margin: 0 0 1.2rem; min-width: fit-content; border: none; }
.quantity__label { color: rgba(var(--color-foreground), 0.75); margin-bottom: 0.6rem; display: block; font-size: 1.3rem; }
.quantity {
	color: rgba(var(--color-foreground));
	position: relative;
	width: calc(14rem + 2px);
	display: flex;
	min-height: calc(4.5rem + 2px);
}
.quantity::after { pointer-events: none; content: ""; position: absolute; inset: 0; box-shadow: 0 0 0 1px rgba(var(--color-foreground), 0.55); z-index: 1; }
.quantity:hover::after { box-shadow: 0 0 0 2px rgba(var(--color-foreground), 0.55); }
.quantity__input {
	color: currentColor;
	font-family: var(--font-body-family);
	font-size: 1.6rem;
	font-weight: 500;
	opacity: 0.85;
	text-align: center;
	background-color: transparent;
	border: 0;
	padding: 0 0.5rem;
	width: 100%;
	flex-grow: 1;
	-webkit-appearance: none;
	appearance: none;
	-moz-appearance: textfield;
}
.quantity__input::-webkit-outer-spin-button, .quantity__input::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
.quantity__input:focus { outline: none; }
.quantity__button {
	width: 4.5rem;
	flex-shrink: 0;
	font-size: 1.8rem;
	border: 0;
	background-color: transparent;
	cursor: pointer;
	display: flex;
	align-items: center;
	justify-content: center;
	color: rgb(var(--color-foreground));
	padding: 0 0 0 1px;
}
.quantity__button .icon { width: 1rem; pointer-events: none; }
.product-form__buttons { max-width: 44rem; margin-top: 2.5rem; }
.product-form__submit { margin-bottom: 1rem; }
.product-form__buy-now { font-weight: 500; }
.pickup-availability-preview { align-items: flex-start; display: flex; gap: 0.2rem; padding: 1rem 2rem 0 0; }
.pickup-availability-preview .icon { color: #428445; width: 1.3rem; height: 1.3rem; flex-shrink: 0; margin-top: 0.6rem; margin-right: 0.4rem; }
.pickup-availability-info * { margin: 0 0 0.6rem; }
.pickup-availability-info .caption-large { font-size: 1.4rem; letter-spacing: 0.06rem; line-height: 1.5; }
.pickup-availability-info .caption { font-size: 1.2rem; }
.pickup-availability-button { background-color: transparent; color: rgba(var(--color-foreground), 0.75); letter-spacing: 0.06rem; padding: 0 0 0.2rem; text-align: left; text-decoration: underline; border: 0; font-size: 1.4rem; font-family: var(--font-body-family); cursor: pointer; }
.pickup-availability-button:hover { color: rgb(var(--color-foreground)); }
.pickup-drawer { position: fixed; inset: 0; z-index: 1000; }
.pickup-drawer__overlay { position: absolute; inset: 0; background: rgba(var(--color-foreground), 0.5); }
.pickup-drawer__panel { position: absolute; top: 0; right: 0; height: 100%; width: 40rem; max-width: 100%; background: #fff; padding: 2.5rem 3rem; overflow-y: auto; border-left: 1px solid rgba(var(--color-foreground), 0.1); }
.pickup-availability-header { display: flex; justify-content: space-between; align-items: flex-start; margin-bottom: 1.2rem; }
.pickup-availability-drawer-title { margin: 0.5rem 0 0; font-size: 1.5rem; }
.pickup-drawer__button { background: none; border: 0; cursor: pointer; padding: 0; width: 4.4rem; height: 4.4rem; display: flex; align-items: center; justify-content: center; color: rgb(var(--color-foreground)); }
.pickup-drawer__button .icon { width: 2rem; height: 2rem; }
.pickup-availability-list__item { border-bottom: 1px solid rgba(var(--color-foreground), 0.08); padding: 2rem 0; }
.pickup-availability-list__item:first-child { border-top: 1px solid rgba(var(--color-foreground), 0.08); }
.pickup-availability-list__item h3 { margin: 0 0 1rem; }
.pickup-availability-address { font-style: normal; font-size: 1.2rem; line-height: 1.5; }
.product__description { margin: 2.5rem 0; }
.share-button { display: block; position: relative; }
.share-button__button { font-size: 1.4rem; display: flex; align-items: center; color: rgb(var(--color-foreground)); margin-left: 0; padding-left: 0; min-height: 4.4rem; background: none; border: 0; cursor: pointer; font-family: inherit; letter-spacing: 0.06rem; }
.share-button__button:hover { text-decoration: underline; text-underline-offset: 0.3rem; }
.share-button__button .icon-share { height: 1.2rem; margin-right: 1rem; min-width: 1.3rem; }
.share-button__message { font-size: 1.3rem; }
.product-lightbox { position: fixed; inset: 0; z-index: 1000; background: #fff; overflow-y: auto; }
.product-lightbox__content { max-width: 120rem; margin: 0 auto; padding: 6rem 1.5rem 3rem; display: flex; flex-direction: column; align-items: center; gap: 1rem; }
.product-lightbox__content img { width: auto; max-width: 100%; height: auto; }
.product-lightbox__close { position: fixed; top: 1.5rem; right: 1.5rem; width: 4.4rem; height: 4.4rem; border-radius: 50%; border: 1px solid rgba(var(--color-foreground), 0.1); background: #fff; display: flex; align-items: center; justify-content: center; cursor: pointer; z-index: 2; color: rgb(var(--color-foreground)); }
.product-lightbox__close .icon { width: 1.8rem; height: 1.8rem; }
.related-products__heading { margin: 0 0 3rem; }
.related-products { padding-top: 3.6rem; padding-bottom: 2.8rem; }

/* Cart notification */
.cart-notification-wrapper { position: relative; }
.cart-notification {
	border: 1px solid rgba(var(--color-foreground), 0.1);
	border-top: 0;
	background: #fff;
	padding: 2.5rem 3.5rem;
	position: fixed;
	top: var(--header-bottom);
	right: 0;
	width: 100%;
	z-index: 100;
}
@media screen and (min-width: 750px) { .cart-notification { max-width: 36.8rem; right: 4rem; } }
.cart-notification__header { align-items: flex-start; display: flex; }
.cart-notification__heading { align-items: center; display: flex; flex-grow: 1; margin-bottom: 0; margin-top: 0; font-size: 1.3rem; }
.cart-notification__heading .icon-tick { margin-right: 1rem; width: 1.3rem; height: 1.3rem; }
.cart-notification__close { margin-top: -2rem; margin-right: -3rem; background: none; border: 0; width: 4.4rem; height: 4.4rem; cursor: pointer; display: flex; align-items: center; justify-content: center; color: rgb(var(--color-foreground)); }
.cart-notification__close .icon { width: 1.7rem; height: 1.7rem; }
.cart-notification__links { text-align: center; }
.cart-notification__links > * { margin-top: 1rem; }
.cart-notification-product { align-items: flex-start; display: flex; padding-bottom: 3rem; padding-top: 2rem; }
.cart-notification-product__image { display: inline-flex; margin-right: 1.5rem; margin-top: 0.3rem; width: 7rem; border: 1px solid rgba(var(--color-foreground), 0.03); }
.cart-notification-product__image img { width: 100%; height: auto; display: block; }
.cart-notification-product__name { margin: 0 0 0.5rem; font-size: 1.5rem; }
.cart-notification__close-link { background: none; border: 0; font-size: 1.5rem; letter-spacing: 0.1rem; color: rgb(var(--color-foreground)); text-decoration: underline; text-underline-offset: 0.3rem; cursor: pointer; padding: 1rem; font-family: inherit; }

/* ---------- Pages ---------- */
.main-page-title { margin-bottom: 3rem; margin-top: 0; }
@media screen and (min-width: 750px) { .main-page-title { margin-bottom: 4rem; } }
.main-page .rte .contact { margin-top: 11.6rem; padding: 0; max-width: none; }
.contact .field { margin-bottom: 1.5rem; }
@media screen and (min-width: 750px) {
	.contact .field { margin-bottom: 2rem; }
	.contact__fields { display: grid; grid-template-columns: repeat(2, 1fr); grid-column-gap: 2rem; }
}
.contact__button { margin-top: 3rem; }
@media screen and (min-width: 750px) { .contact__button { margin-top: 4rem; } }
.contact .form__message { margin-bottom: 2rem; font-size: 1.6rem; line-height: 1.3; }
.page-store .main-page-title { margin-bottom: 3rem; }

.shopify-policy__container { max-width: 65ch; margin: 0 auto; padding: 0 1.5rem; margin-top: 2.7rem; margin-bottom: 4rem; }
.shopify-policy__title { text-align: center; }
.shopify-policy__title h1 { margin: 0 0 3rem; }

/* Blog */
.main-blog .title--primary { margin: 2rem 0; }
.blog-articles { display: grid; grid-gap: 1rem; column-gap: var(--grid-h); row-gap: var(--grid-v); }
.blog-articles .card-wrapper { height: auto; }
.blog-articles .card__inner { aspect-ratio: auto; height: 22rem; background: var(--color-sage); }
.blog-articles .card__information { padding: 1.7rem 0; }
.blog-articles .card__heading { font-size: 2rem; margin-bottom: 0.6rem; color: #000; }
@media screen and (min-width: 750px) {
	.blog-articles { grid-template-columns: 1fr 1fr; }
	.blog-articles .card__inner { height: 30.7rem; }
	.blog-articles .card__heading { font-size: 2.4rem; }
	.blog-articles--collage > *:nth-child(3n + 1) { grid-column: span 2; text-align: center; }
	.blog-articles--collage > *:nth-child(3n + 1) .card { text-align: center; }
	.blog-articles--collage > *:nth-child(3n + 1) .card__inner { height: 55rem; }
	.blog-articles--collage > *:nth-child(3n + 1) .article-card__excerpt { margin-left: auto; margin-right: auto; }
}
.article-card__info { padding-top: 0.4rem; font-family: var(--font-ui-family); font-weight: 600; color: #000; }
.article-card__excerpt { width: 100%; margin: 1.2rem auto 2rem; color: rgba(0, 0, 0, 0.75); }
.rte-width { max-width: 82rem; }

/* Article */
.article-template__hero-container { max-width: 130rem; margin: 0 auto; }
.article-template__hero-adapt img { position: static; display: block; width: 100%; height: auto; }
.article-template header { margin-top: 4.4rem; margin-bottom: 2rem; line-height: calc(0.8 / 1); }
@media screen and (min-width: 750px) { .article-template header { margin-top: 5rem; } }
.article-template__title { margin: 0 0 1rem; }
.article-template__title:only-child { margin-bottom: 0; }
.article-template__social-sharing { margin-top: 3rem; }
.article-template__content { margin-top: 1.5rem; margin-bottom: 3rem; }
.article-template__back:last-child { margin-bottom: 3.2rem; }
.element-margin-top { margin-top: 5rem; }
.article-template__link { font-size: 1.8rem; display: inline-flex; align-items: center; text-decoration: none; }
.article-template__link .icon-wrap { display: flex; margin-right: 1rem; transform: rotate(180deg); }
.article-template__link:hover { text-decoration: underline; text-underline-offset: 0.3rem; }
.circle-divider { font-size: 1rem; }

/* Image with text */
.image-with-text__grid { overflow: visible; }
.image-with-text__media { background-color: transparent; min-height: 100%; height: 100%; overflow: hidden; border: 1px solid rgba(var(--color-foreground), 0.05); }
.image-with-text__media img { position: static; display: block; width: 100%; height: 100%; object-fit: cover; }
.image-with-text__content {
	align-items: flex-start;
	display: flex;
	flex-direction: column;
	height: 100%;
	justify-content: flex-start;
	align-self: stretch;
	padding: 4rem 2rem 5rem;
	position: relative;
	z-index: 1;
	border: 8px solid rgba(var(--color-foreground), 0.65);
	border-top-width: 0;
	border-radius: 0 0 18px 18px;
	box-shadow: -2px -6px 5px rgba(var(--color-foreground), 0.4);
	background: #fff;
}
@media screen and (min-width: 750px) {
	.image-with-text__content { padding: 6rem 7rem 7rem; border-top-width: 8px; border-left-width: 0; border-radius: 0 18px 18px 0; }
}
.image-with-text__text-item { display: flex; align-items: stretch; }
.image-with-text__heading { margin: 0; }
.image-with-text__text { margin-top: 2rem; }
.image-with-text__content .button { margin-top: 3rem; }
.grid__item.image-with-text__media-item, .grid__item.image-with-text__text-item { max-width: 100%; }
@media screen and (max-width: 749px) {
	.image-with-text__grid .grid__item { width: 100%; }
}

/* Search & 404 */
.template-search__header { margin-bottom: 3rem; }
@media screen and (min-width: 750px) { .template-search__header { margin-bottom: 5rem; } }
.template-search__header h1 { margin: 5.4rem 0 0; }
.template-search__search { margin: 0 auto 3.5rem; max-width: 74.1rem; }
.template-search__search .search { margin-top: 3rem; }
.template-search--empty { padding-bottom: 18rem; }
.template-404 { margin-top: 5rem; margin-bottom: 5rem; }
@media screen and (min-width: 750px) { .template-404 { margin-top: 7rem; margin-bottom: 7rem; } }
.template-404 .h2 { margin: 4rem 0 3rem; }

/* ---------- Footer: ink background (logo ink), cream text, sage accents, Barlow (navbar font) ---------- */
.ssf-footer {
	--ssf-ink: #1a1d1b; --ssf-cream: 247, 245, 239; --ssf-sage: #a9c9b4;
	background: var(--ssf-ink); color: rgba(var(--ssf-cream), 0.72);
	font-family: var(--font-body-family); font-size: 1.4rem; line-height: 1.75; letter-spacing: 0.02rem;
	margin-top: 0;
}
.ssf-footer a { color: inherit; text-decoration: none; transition: color 0.35s var(--ssf-ease, ease), transform 0.35s var(--ssf-ease, ease), background-color 0.35s var(--ssf-ease, ease); }
.ssf-footer a:hover, .ssf-footer a:focus-visible { color: var(--ssf-sage); }
.ssf-footer a:focus-visible, .ssf-footer button:focus-visible { outline: 2px solid var(--ssf-sage); outline-offset: 3px; }
.ssf-footer__top, .ssf-footer__bottom { max-width: 134rem; }
.ssf-footer__top { display: grid; gap: 4rem 3rem; grid-template-columns: 1fr; padding-top: 5.6rem; padding-bottom: 4.8rem; }
@media screen and (min-width: 600px) { .ssf-footer__top { grid-template-columns: 1fr 1fr; } .ssf-footer__brand, .ssf-footer__newsletter { grid-column: 1 / -1; } }
@media screen and (min-width: 990px) {
	.ssf-footer__top { grid-template-columns: 1.35fr 1fr 1.1fr 1.35fr; gap: 3rem; padding-top: 7.2rem; padding-bottom: 6rem; }
	.ssf-footer__brand, .ssf-footer__newsletter { grid-column: auto; }
	.ssf-footer__newsletter { justify-self: end; width: 100%; max-width: 34rem; }
}
.ssf-footer__heading { margin: 0 0 1.8rem; font-family: var(--font-body-family); font-weight: 500; font-size: 1.6rem; letter-spacing: 0.04rem; line-height: 1.3; color: rgb(var(--ssf-cream)); }
.ssf-footer__logo { display: inline-block; line-height: 0; }
.ssf-footer__logo-svg { display: block; width: 18rem; max-width: 100%; height: auto; aspect-ratio: 348.56 / 124; }
.ssf-footer__tagline { margin: 1.6rem 0 2rem; font-size: 1.4rem; letter-spacing: 0.04rem; color: rgba(var(--ssf-cream), 0.72); }
.ssf-footer__social { display: flex; gap: 0.8rem; margin-left: -1rem; }
.ssf-footer__social-link { display: inline-flex; align-items: center; justify-content: center; width: 4.4rem; height: 4.4rem; border-radius: 50%; color: rgb(var(--ssf-cream)) !important; }
.ssf-footer__social-link:hover { background-color: rgba(169, 201, 180, 0.18); transform: translateY(-0.2rem); }
.ssf-footer__social-link .icon { width: 1.8rem; height: 1.8rem; }
.ssf-footer__links li + li { margin-top: 0.6rem; }
.ssf-footer__links a { display: inline-block; padding: 0.2rem 0; }
@media (hover: hover) { .ssf-footer__links a:hover, .ssf-footer__legal a:hover { transform: translateX(0.3rem); } }
.ssf-footer__text { margin: 0 0 1.2rem; }
.ssf-footer__text p { margin: 0; }
.ssf-footer__text strong { font-weight: 500; color: rgb(var(--ssf-cream)); }
.ssf-footer__text a { text-decoration: underline; text-decoration-color: rgba(var(--ssf-cream), 0.3); text-underline-offset: 0.3rem; }
.ssf-footer__contact .ssf-footer__links { margin-top: 1.6rem; }
.ssf-footer__form { max-width: 36rem; margin-top: 1.6rem; }
.ssf-footer__field { display: flex; align-items: center; gap: 0.6rem; padding: 0.5rem 0.5rem 0.5rem 1.6rem; border: 1px solid rgba(var(--ssf-cream), 0.28); border-radius: 0.6rem; background: rgba(var(--ssf-cream), 0.02); transition: border-color 0.35s var(--ssf-ease, ease), box-shadow 0.35s var(--ssf-ease, ease), background-color 0.35s var(--ssf-ease, ease); }
.ssf-footer__field:hover { border-color: rgba(var(--ssf-cream), 0.45); }
.ssf-footer__field:focus-within { border-color: var(--ssf-sage); background: rgba(var(--ssf-cream), 0.04); box-shadow: 0 0 0 0.3rem rgba(169, 201, 180, 0.22); }
.ssf-footer__field input { flex: 1; min-width: 0; height: 4rem; border: 0; background: transparent; color: rgb(var(--ssf-cream)); font: inherit; font-size: 1.5rem; outline: none !important; box-shadow: none !important; padding: 0; -webkit-appearance: none; appearance: none; }
.ssf-footer__field input:-webkit-autofill { -webkit-text-fill-color: rgb(var(--ssf-cream)); -webkit-box-shadow: 0 0 0 4rem #1a1d1b inset !important; caret-color: rgb(var(--ssf-cream)); }
.ssf-footer__field input:focus::placeholder { color: rgba(var(--ssf-cream), 0.35); }
.ssf-footer__field input::placeholder { color: rgba(var(--ssf-cream), 0.55); opacity: 1; transition: color 0.35s var(--ssf-ease, ease); }
.ssf-footer__field button { flex: none; display: flex; align-items: center; justify-content: center; width: 4.4rem; height: 4.4rem; border: 0; border-radius: 0.4rem; background: rgb(var(--ssf-cream)); color: var(--ssf-ink); cursor: pointer; transition: background-color 0.35s var(--ssf-ease, ease); }
.ssf-footer__field button:hover { background: var(--ssf-sage); }
.ssf-footer__field button .icon { transition: transform 0.35s var(--ssf-ease, ease); }
.ssf-footer__field button:hover .icon { transform: translateX(0.2rem); }
.ssf-footer__field button .icon { width: 1.5rem; height: auto; }
.ssf-footer__message { margin: 1.2rem 0 0; font-size: 1.4rem; color: rgb(var(--ssf-cream)); display: flex; align-items: center; gap: 0.6rem; }
.ssf-footer__message .icon { width: 1.4rem; height: 1.4rem; color: var(--ssf-sage); }
.ssf-footer__bottom {
	display: flex; flex-direction: column; align-items: center; gap: 1.2rem; text-align: center;
	border-top: 1px solid rgba(var(--ssf-cream), 0.12); padding-top: 2.4rem; padding-bottom: 8.8rem; /* room for the floating WhatsApp button */
	font-size: 1.3rem; color: rgba(var(--ssf-cream), 0.6);
}
.ssf-footer__legal { display: flex; flex-wrap: wrap; justify-content: center; gap: 0.4rem 2.4rem; }
.ssf-footer__legal a { display: inline-block; padding: 0.4rem 0; }
.ssf-footer__copyright { font-size: inherit; }
@media screen and (min-width: 990px) {
	.ssf-footer__bottom { flex-direction: row; justify-content: space-between; text-align: left; padding-top: 2.6rem; padding-bottom: 2.6rem; padding-right: 9rem; } /* right gap = WhatsApp button corner */
	.ssf-footer__legal { justify-content: flex-end; }
}
.ssf-footer .visually-hidden { color: inherit; }
@media (prefers-reduced-motion: reduce) {
	.ssf-footer a, .ssf-footer__social-link, .ssf-footer__field, .ssf-footer__field button, .ssf-footer__field button .icon, .ssf-footer__field input::placeholder { transition: none; }
	.ssf-footer__links a:hover, .ssf-footer__legal a:hover, .ssf-footer__social-link:hover, .ssf-footer__field button:hover .icon { transform: none; }
}

/* ---------- WooCommerce blocks (cart, checkout, account) ---------- */
.page-store .wc-block-components-button:not(.is-link),
.page-store .wp-element-button {
	border-radius: 0 !important;
	background: rgb(var(--color-foreground)) !important;
	color: #fff !important;
	font-family: var(--font-ui-family) !important;
	font-weight: 600 !important;
	letter-spacing: 0.1rem;
	min-height: 5.1rem;
	font-size: 1.5rem !important;
	text-transform: none;
}
.page-store input:where(:not([type="radio"]):not([type="checkbox"])), .page-store select, .page-store textarea { font-family: var(--font-body-family); border-radius: 0 !important; } /* radios stay round; :where() keeps the original specificity */
.page-store .wc-block-components-text-input input, .page-store .wc-blocks-components-select__select { border-radius: 0 !important; }
.page-store .wc-block-components-product-name { font-family: var(--font-body-family); font-weight: 500; color: rgb(var(--color-foreground)); }
.page-store h2, .page-store .wc-block-components-title { font-family: var(--font-heading-family) !important; }
.page-store .wc-block-cart__empty-cart__title { font-family: var(--font-body-family) !important; font-weight: 500; } /* small h2: readable sans */
.woocommerce-notices-wrapper:empty { display: none; }

/* ---------- Account area + classic WooCommerce forms (login, lost/reset password, dashboard, orders,
   addresses, account details). Same language as the navbar/footer: Barlow, ink/cream, sage focus, 0.4rem radius. */
.woocommerce-account .page-store, .woocommerce-lost-password .page-store { --ssf-ink: #1a1d1b; --ssf-line: rgba(26, 29, 27, 0.14); --ssf-sage: #a9c9b4; --ssf-sage-ink: #5f8a6f; }
.page-store .woocommerce { font-family: var(--font-body-family); font-size: 1.5rem; line-height: 1.7; color: rgba(26, 29, 27, 0.82); }
.page-store .woocommerce h2, .page-store .woocommerce h3 { margin: 0 0 1.6rem; font-family: var(--font-body-family) !important; font-weight: 500; font-size: 1.9rem; letter-spacing: 0.02rem; color: #1a1d1b; }
.page-store .woocommerce a:where(:not(.button):not(.woocommerce-Button)) { color: #1a1d1b; text-decoration: underline; text-decoration-color: rgba(26, 29, 27, 0.3); text-underline-offset: 0.3rem; transition: text-decoration-color 0.3s var(--ssf-ease, ease), color 0.3s var(--ssf-ease, ease); }
.page-store .woocommerce a:where(:not(.button):not(.woocommerce-Button)):hover { text-decoration-color: #5f8a6f; color: #5f8a6f; }

/* Logged out (login, lost password, reset password): centred title + card. */
body.woocommerce-account:not(.logged-in) .page-store .main-page-title { text-align: center; }
.woocommerce-account .main-page.page-store { padding-bottom: 7.2rem; }
@media screen and (min-width: 750px) { .woocommerce-account .main-page.page-store { padding-bottom: 9.6rem; } }
body.woocommerce-account:not(.logged-in) .page-store .woocommerce { max-width: 46rem; margin: 0 auto; }
body.woocommerce-account:not(.logged-in) .woocommerce form.woocommerce-form-login,
body.woocommerce-account:not(.logged-in) .woocommerce form.woocommerce-form-register,
body.woocommerce-account:not(.logged-in) .woocommerce form.lost_reset_password {
	margin: 0; padding: 3.2rem 2.4rem; border: 1px solid rgba(26, 29, 27, 0.12); border-radius: 0.8rem; background: #fff; box-shadow: 0 1.6rem 4rem rgba(26, 29, 27, 0.06);
}
@media screen and (min-width: 750px) {
	body.woocommerce-account:not(.logged-in) .woocommerce form.woocommerce-form-login,
	body.woocommerce-account:not(.logged-in) .woocommerce form.woocommerce-form-register,
	body.woocommerce-account:not(.logged-in) .woocommerce form.lost_reset_password { padding: 4rem; }
}
body.woocommerce-account:not(.logged-in) .woocommerce > h2 { text-align: center; font-family: var(--font-heading-family) !important; font-size: 2.6rem; margin-bottom: 2rem; }
body.woocommerce-account:not(.logged-in) .u-columns.col2-set { display: grid; gap: 3.2rem; }
.woocommerce form.lost_reset_password > p:first-child { margin: 0 0 2.4rem; font-size: 1.45rem; color: rgba(26, 29, 27, 0.7); }
.woocommerce .woocommerce-form-login .woocommerce-form-login__rememberme { margin: 0 0 2rem; }
.woocommerce .woocommerce-form-login__submit, .woocommerce form.lost_reset_password .button { width: 100%; }
.woocommerce .woocommerce-LostPassword { margin: 2rem 0 0; text-align: center; font-size: 1.4rem; }

/* Fields */
.page-store .woocommerce .form-row { margin: 0 0 1.8rem; padding: 0; }
.page-store .woocommerce label { display: block; margin: 0 0 0.6rem; font-weight: 500; font-size: 1.4rem; letter-spacing: 0.02rem; color: #1a1d1b; }
.page-store .woocommerce .required { color: #5f8a6f; text-decoration: none; border: 0; }
.page-store .woocommerce .optional { color: rgba(26, 29, 27, 0.5); font-weight: 400; }
.page-store .woocommerce .input-text, .page-store .woocommerce select, .page-store .woocommerce textarea {
	display: block; width: 100%; min-height: 4.8rem; padding: 0 1.4rem; border: 1px solid rgba(26, 29, 27, 0.22); border-radius: 0.4rem !important; background: #fff;
	font: inherit; font-size: 1.6rem; color: #1a1d1b; box-shadow: none; -webkit-appearance: none; appearance: none;
	transition: border-color 0.3s var(--ssf-ease, ease), box-shadow 0.3s var(--ssf-ease, ease);
}
.page-store .woocommerce textarea { min-height: 12rem; padding: 1.2rem 1.4rem; resize: vertical; }
.page-store .woocommerce select { padding-right: 4rem; background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 10 6'%3E%3Cpath fill='%231a1d1b' d='M9.354.646a.5.5 0 0 0-.708 0L5 4.293 1.354.646a.5.5 0 0 0-.708.708l4 4a.5.5 0 0 0 .708 0l4-4a.5.5 0 0 0 0-.708'/%3E%3C/svg%3E") no-repeat right 1.6rem center / 1rem; }
.page-store .woocommerce .input-text:hover, .page-store .woocommerce select:hover, .page-store .woocommerce textarea:hover { border-color: rgba(26, 29, 27, 0.4); }
.page-store .woocommerce .input-text:focus, .page-store .woocommerce select:focus, .page-store .woocommerce textarea:focus {
	outline: none; border-color: #5f8a6f; box-shadow: 0 0 0 0.3rem rgba(169, 201, 180, 0.4) !important;
}
.page-store .woocommerce .input-text::placeholder { color: rgba(26, 29, 27, 0.45); }
.page-store .woocommerce input[type="checkbox"], .page-store .woocommerce input[type="radio"] { width: 1.8rem; height: 1.8rem; margin: 0; accent-color: #1a1d1b; flex: none; cursor: pointer; }
.page-store .woocommerce .woocommerce-form__label-for-checkbox { display: inline-flex; align-items: center; gap: 1rem; font-weight: 400; cursor: pointer; }
.page-store .woocommerce em, .page-store .woocommerce #account_display_name_description { display: block; margin-top: 0.6rem; font-size: 1.3rem; font-style: normal; color: rgba(26, 29, 27, 0.6); }
.page-store .woocommerce .clear { display: none; }
/* Two-column rows (first/last name…) from 750px. */
.page-store .woocommerce .woocommerce-address-fields__field-wrapper, .page-store .woocommerce form.edit-account { display: grid; grid-template-columns: 1fr; column-gap: 1.6rem; }
.page-store .woocommerce form.edit-account > * { grid-column: 1 / -1; }
@media screen and (min-width: 750px) {
	.page-store .woocommerce .woocommerce-address-fields__field-wrapper, .page-store .woocommerce form.edit-account { grid-template-columns: 1fr 1fr; }
	.page-store .woocommerce .woocommerce-address-fields__field-wrapper > .form-row { grid-column: 1 / -1; }
	.page-store .woocommerce .woocommerce-address-fields__field-wrapper > .form-row-first, .page-store .woocommerce form.edit-account > .form-row-first { grid-column: 1; }
	.page-store .woocommerce .woocommerce-address-fields__field-wrapper > .form-row-last, .page-store .woocommerce form.edit-account > .form-row-last { grid-column: 2; }
}
.page-store .woocommerce fieldset { margin: 1.2rem 0 2.4rem; padding: 2rem 2rem 0.4rem; border: 1px solid rgba(26, 29, 27, 0.12); border-radius: 0.8rem; }
.page-store .woocommerce legend { padding: 0 0.8rem; font-weight: 500; font-size: 1.6rem; color: #1a1d1b; }
/* Password show/hide (WooCommerce adds the button; its icon came from the WooCommerce stylesheet, which is off). */
.page-store .woocommerce .password-input { position: relative; display: block; }
.page-store .woocommerce .password-input .input-text { padding-right: 5rem; }
.page-store .woocommerce .show-password-input {
	position: absolute; top: 50%; right: 0.4rem; width: 4.4rem; height: 4.4rem; margin-top: -2.2rem; padding: 0; border: 0; border-radius: 0.4rem; background: transparent; cursor: pointer; color: rgba(26, 29, 27, 0.6);
	transition: color 0.3s var(--ssf-ease, ease), background-color 0.3s var(--ssf-ease, ease);
}
.page-store .woocommerce .show-password-input::before {
	content: ""; position: absolute; inset: 0; margin: auto; width: 2rem; height: 2rem; background: currentColor;
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M2 12s3.6-7 10-7 10 7 10 7-3.6 7-10 7S2 12 2 12z'/%3E%3Ccircle cx='12' cy='12' r='3'/%3E%3C/svg%3E") center / contain no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M2 12s3.6-7 10-7 10 7 10 7-3.6 7-10 7S2 12 2 12z'/%3E%3Ccircle cx='12' cy='12' r='3'/%3E%3C/svg%3E") center / contain no-repeat;
}
.page-store .woocommerce .show-password-input.display-password::before {
	-webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M2 12s3.6-7 10-7 10 7 10 7-3.6 7-10 7S2 12 2 12z'/%3E%3Ccircle cx='12' cy='12' r='3'/%3E%3Cpath d='M3 3l18 18'/%3E%3C/svg%3E");
	mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M2 12s3.6-7 10-7 10 7 10 7-3.6 7-10 7S2 12 2 12z'/%3E%3Ccircle cx='12' cy='12' r='3'/%3E%3Cpath d='M3 3l18 18'/%3E%3C/svg%3E");
}
.page-store .woocommerce .show-password-input:hover { color: #1a1d1b; background: rgba(169, 201, 180, 0.25); }
.page-store .woocommerce .show-password-input:focus-visible { outline: 2px solid #5f8a6f; outline-offset: 0; }
/* Country picker (selectWoo / select2). */
.page-store .select2-container .select2-selection--single { height: 4.8rem; border: 1px solid rgba(26, 29, 27, 0.22); border-radius: 0.4rem; transition: border-color 0.3s var(--ssf-ease, ease), box-shadow 0.3s var(--ssf-ease, ease); }
.page-store .select2-container .select2-selection--single .select2-selection__rendered { line-height: 4.6rem; padding-left: 1.4rem; padding-right: 4rem; font-size: 1.6rem; color: #1a1d1b; }
.page-store .select2-container .select2-selection--single .select2-selection__arrow { height: 4.6rem; right: 1rem; width: 2rem; background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 10 6'%3E%3Cpath fill='%231a1d1b' d='M9.354.646a.5.5 0 0 0-.708 0L5 4.293 1.354.646a.5.5 0 0 0-.708.708l4 4a.5.5 0 0 0 .708 0l4-4a.5.5 0 0 0 0-.708'/%3E%3C/svg%3E") no-repeat center / 1rem; transition: transform 0.3s var(--ssf-ease, ease); }
.page-store .select2-container .select2-selection--single .select2-selection__arrow b { display: none; }
.page-store .select2-container--open .select2-selection--single .select2-selection__arrow { transform: rotate(180deg); }
.page-store .select2-container--focus .select2-selection--single, .page-store .select2-container--open .select2-selection--single { border-color: #5f8a6f; box-shadow: 0 0 0 0.3rem rgba(169, 201, 180, 0.4); }
.select2-dropdown { border-color: rgba(26, 29, 27, 0.22); border-radius: 0.4rem; font-family: var(--font-body-family); font-size: 1.5rem; box-shadow: 0 1.2rem 3rem rgba(26, 29, 27, 0.1); }
.select2-search--dropdown .select2-search__field { height: 4rem; padding: 0 1rem; border: 1px solid rgba(26, 29, 27, 0.22); border-radius: 0.4rem; font-size: 1.6rem; }
.select2-results__option { padding: 0.8rem 1.4rem; }
.select2-container--default .select2-results__option--highlighted[aria-selected], .select2-container--default .select2-results__option--highlighted[data-selected] { background: rgba(169, 201, 180, 0.35); color: #1a1d1b; }
.select2-container--default .select2-results__option[aria-selected="true"], .select2-container--default .select2-results__option[data-selected="true"] { background: #1a1d1b; color: #f7f5ef; }

/* Buttons (same feel as the hero / footer buttons). */
.page-store .woocommerce .button, .page-store .woocommerce button.button, .page-store .woocommerce .woocommerce-Button {
	display: inline-flex; align-items: center; justify-content: center; min-height: 4.8rem; padding: 0 2.8rem; border: 1px solid #1a1d1b; border-radius: 0.4rem !important;
	background: #1a1d1b !important; color: #f7f5ef !important; font-family: var(--font-body-family) !important; font-weight: 500 !important; font-size: 1.5rem !important; letter-spacing: 0.06rem;
	text-decoration: none; text-transform: none; cursor: pointer; box-shadow: none;
	transition: background-color 0.35s var(--ssf-ease, ease), color 0.35s var(--ssf-ease, ease), border-color 0.35s var(--ssf-ease, ease), transform 0.35s var(--ssf-ease, ease);
}
@media (hover: hover) { .page-store .woocommerce .button:hover, .page-store .woocommerce button.button:hover, .page-store .woocommerce .woocommerce-Button:hover { background: #a9c9b4 !important; border-color: #a9c9b4; color: #1a1d1b !important; transform: translateY(-0.1rem); } }
.page-store .woocommerce .button:focus-visible, .page-store .woocommerce .woocommerce-Button:focus-visible { outline: 2px solid #5f8a6f; outline-offset: 3px; }
.page-store .woocommerce .button:disabled, .page-store .woocommerce .button.disabled { opacity: 0.5; cursor: not-allowed; transform: none; }

/* Notices */
.page-store .woocommerce-message, .page-store .woocommerce-info, .page-store .woocommerce-error, .woocommerce-message, .woocommerce-info, .woocommerce-error {
	display: flex; flex-wrap: wrap; align-items: center; gap: 1.2rem 2rem; list-style: none; margin: 0 0 2.4rem; padding: 1.6rem 2rem;
	border: 0; border-left: 0.3rem solid #a9c9b4; border-radius: 0.4rem; background: rgba(169, 201, 180, 0.16); font-size: 1.45rem; color: #1a1d1b;
}
.page-store .woocommerce-error, .woocommerce-error { border-left-color: #b4483c; background: rgba(180, 72, 60, 0.08); }
/* WooCommerce focuses notices (tabindex=-1) for screen readers: no focus ring around the whole message box. */
.woocommerce-error[tabindex="-1"]:focus, .woocommerce-message[tabindex="-1"]:focus, .woocommerce-info[tabindex="-1"]:focus, .woocommerce-notices-wrapper:focus { outline: none; box-shadow: none; }
.woocommerce-error li { margin: 0; }
.page-store .woocommerce-message .button, .page-store .woocommerce-info .button { order: 2; margin-left: auto; min-height: 4rem; padding: 0 2rem; font-size: 1.4rem !important; }
@media screen and (max-width: 589px) { .page-store .woocommerce-message .button, .page-store .woocommerce-info .button { margin-left: 0; width: 100%; } }

/* Logged in: navigation + content. */
@media screen and (min-width: 990px) {
	body.logged-in.woocommerce-account .page-store .woocommerce { display: grid; grid-template-columns: 24rem minmax(0, 1fr); gap: 5.6rem; align-items: start; }
}
.woocommerce-MyAccount-navigation ul { list-style: none; margin: 0 0 3.2rem; padding: 0; display: flex; gap: 0.6rem; overflow-x: auto; scrollbar-width: none; -webkit-overflow-scrolling: touch; }
.woocommerce-MyAccount-navigation ul::-webkit-scrollbar { display: none; }
.page-store .woocommerce .woocommerce-MyAccount-navigation li { margin: 0; padding: 0; list-style: none; }
.page-store .woocommerce .woocommerce-MyAccount-navigation li::before, .page-store .woocommerce .woocommerce-MyAccount-navigation li::marker { content: none; }
@media screen and (max-width: 989px) { .woocommerce-MyAccount-navigation { margin: 0 -1.5rem; padding: 0 1.5rem; } }
.page-store .woocommerce .woocommerce-MyAccount-navigation a {
	display: block; white-space: nowrap; padding: 1rem 1.6rem; border-radius: 0.4rem; border: 1px solid rgba(26, 29, 27, 0.14);
	font-weight: 500; font-size: 1.45rem; line-height: 1.5; color: rgba(26, 29, 27, 0.78); text-decoration: none;
	transition: background-color 0.3s var(--ssf-ease, ease), color 0.3s var(--ssf-ease, ease), border-color 0.3s var(--ssf-ease, ease);
}
.page-store .woocommerce .woocommerce-MyAccount-navigation a:hover { background: rgba(169, 201, 180, 0.25); border-color: transparent; color: #1a1d1b; }
.page-store .woocommerce .woocommerce-MyAccount-navigation .is-active a { background: #1a1d1b; border-color: #1a1d1b; color: #f7f5ef; }
@media screen and (min-width: 990px) {
	.woocommerce-MyAccount-navigation ul { flex-direction: column; gap: 0.2rem; margin: 0; padding: 0.8rem; border: 1px solid rgba(26, 29, 27, 0.1); border-radius: 0.8rem; overflow: visible; }
	.page-store .woocommerce .woocommerce-MyAccount-navigation a { border: 0; padding: 1.1rem 1.4rem; }
	.page-store .woocommerce .woocommerce-MyAccount-navigation .is-active a { background: rgba(169, 201, 180, 0.3); color: #1a1d1b; box-shadow: inset 0.3rem 0 0 #1a1d1b; }
	.woocommerce-MyAccount-navigation-link--customer-logout { margin-top: 0.6rem; padding-top: 0.6rem; border-top: 1px solid rgba(26, 29, 27, 0.1); }
}
.woocommerce-MyAccount-content > p:first-of-type { margin-top: 0; }
.woocommerce-MyAccount-content p { margin: 0 0 1.6rem; }
/* Addresses */
.page-store .woocommerce .woocommerce-Addresses { display: grid; gap: 2rem; margin-top: 2.4rem; }
@media screen and (min-width: 750px) { .page-store .woocommerce .woocommerce-Addresses { grid-template-columns: 1fr 1fr; } }
.page-store .woocommerce .woocommerce-Address { padding: 2.4rem; border: 1px solid rgba(26, 29, 27, 0.12); border-radius: 0.8rem; }
.page-store .woocommerce .woocommerce-Address-title { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 0.8rem 1.6rem; margin-bottom: 1.2rem; }
.page-store .woocommerce .woocommerce-Address-title h2 { margin: 0; font-size: 1.7rem; }
.page-store .woocommerce .woocommerce-Address-title .edit { font-size: 1.4rem; }
.page-store .woocommerce address { font-style: normal; line-height: 1.8; color: rgba(26, 29, 27, 0.72); }
/* Orders / downloads tables */
.page-store .woocommerce table.shop_table { width: 100%; border-collapse: collapse; margin: 0 0 2.4rem; font-size: 1.45rem; border: 1px solid rgba(26, 29, 27, 0.12); border-radius: 0.8rem; overflow: hidden; }
.page-store .woocommerce table.shop_table th { padding: 1.2rem 1.6rem; text-align: left; font-weight: 500; font-size: 1.3rem; letter-spacing: 0.04rem; color: #1a1d1b; background: rgba(169, 201, 180, 0.16); }
.page-store .woocommerce table.shop_table td { padding: 1.4rem 1.6rem; border-top: 1px solid rgba(26, 29, 27, 0.1); vertical-align: middle; }
.page-store .woocommerce table.shop_table td .button { min-height: 3.8rem; padding: 0 1.6rem; font-size: 1.35rem !important; margin: 0.2rem 0.4rem 0.2rem 0; }
@media screen and (max-width: 749px) {
	.page-store .woocommerce table.shop_table_responsive thead { display: none; }
	.page-store .woocommerce table.shop_table_responsive tr { display: block; border-top: 1px solid rgba(26, 29, 27, 0.12); }
	.page-store .woocommerce table.shop_table_responsive tr:first-child { border-top: 0; }
	.page-store .woocommerce table.shop_table_responsive td { display: flex; justify-content: space-between; gap: 1.6rem; border: 0; padding: 0.8rem 1.6rem; text-align: right; }
	.page-store .woocommerce table.shop_table_responsive td::before { content: attr(data-title); font-weight: 500; color: #1a1d1b; text-align: left; }
	.page-store .woocommerce table.shop_table_responsive td:not([data-title])::before { content: none; }
}
@media (prefers-reduced-motion: reduce) {
	.page-store .woocommerce .button, .page-store .woocommerce .woocommerce-Button, .page-store .woocommerce .input-text, .page-store .woocommerce select, .page-store .woocommerce textarea,
	.page-store .woocommerce .show-password-input, .woocommerce-MyAccount-navigation a, .page-store .woocommerce a { transition: none; }
	.page-store .woocommerce .button:hover, .page-store .woocommerce .woocommerce-Button:hover { transform: none; }
}

/* WooCommerce block product grids (e.g. "Nouveau dans la boutique" on the empty cart): same look as the product cards. */
.wc-block-grid .wc-block-grid__products { display: grid !important; grid-template-columns: repeat(2, minmax(0, 1fr)) !important; gap: 3.2rem 1.6rem; margin: 2.4rem 0 0 !important; padding: 0 !important; list-style: none; }
@media screen and (min-width: 990px) { .wc-block-grid.has-4-columns .wc-block-grid__products { grid-template-columns: repeat(4, minmax(0, 1fr)) !important; gap: 4rem 2.4rem; } .wc-block-grid.has-3-columns .wc-block-grid__products { grid-template-columns: repeat(3, minmax(0, 1fr)) !important; } }
.wc-block-grid .wc-block-grid__product { width: auto !important; max-width: none !important; flex: none !important; margin: 0 !important; padding: 0 !important; border: 0 !important; list-style: none; text-align: left; display: flex; flex-direction: column; }
.wc-block-grid .wc-block-grid__product::before, .wc-block-grid .wc-block-grid__product::marker { content: none; }
.wc-block-grid .wc-block-grid__product-link { display: block; color: inherit; text-decoration: none !important; }
.wc-block-grid .wc-block-grid__product-image { margin: 0 0 1.2rem; aspect-ratio: 1; overflow: hidden; background: #f4efe8; }
.wc-block-grid .wc-block-grid__product-image img { width: 100%; height: 100%; object-fit: cover; transition: transform 0.6s var(--ssf-ease, ease); }
@media (hover: hover) { .wc-block-grid .wc-block-grid__product-link:hover img { transform: scale(1.04); } }
.wc-block-grid .wc-block-grid__product-title { margin: 0 0 0.4rem; font-family: var(--font-body-family); font-weight: 500; font-size: 1.4rem !important; line-height: 1.4; letter-spacing: 0.04rem; color: #1a1d1b; text-decoration: none; }
.wc-block-grid .wc-block-grid__product-price { margin: 0 0 1.4rem; font-family: var(--font-body-family); font-size: 1.5rem !important; letter-spacing: 0.1rem; color: #1a1d1b; }
.wc-block-grid .wc-block-grid__product-add-to-cart { margin: auto 0 0 !important; }
.wc-block-grid .wc-block-grid__product-add-to-cart .wp-block-button__link {
	display: inline-flex; align-items: center; justify-content: center; width: 100%; min-height: 4.4rem; padding: 0 1.6rem !important; margin: 0 !important;
	border: 1px solid #1a1d1b !important; border-radius: 0.4rem !important; background: transparent !important; color: #1a1d1b !important;
	font-family: var(--font-body-family) !important; font-weight: 500 !important; font-size: 1.4rem !important; letter-spacing: 0.04rem; text-decoration: none !important; text-align: center; line-height: 1.25;
	transition: background-color 0.35s var(--ssf-ease, ease), color 0.35s var(--ssf-ease, ease);
}
@media (hover: hover) { .wc-block-grid .wc-block-grid__product-add-to-cart .wp-block-button__link:hover { background: #1a1d1b !important; color: #f7f5ef !important; } }
.wc-block-grid .wc-block-grid__product-add-to-cart .wp-block-button__link.loading { opacity: 0.6; }
.wc-block-grid .wc-block-grid__product-add-to-cart .wp-block-button__link.added::after { content: " ✓"; margin-left: 0.4rem; }
.wc-block-grid .added_to_cart { display: block; margin-top: 0.8rem; font-size: 1.3rem; color: #1a1d1b; text-align: center; }
@media (prefers-reduced-motion: reduce) { .wc-block-grid .wc-block-grid__product-image img, .wc-block-grid .wp-block-button__link { transition: none; } .wc-block-grid .wc-block-grid__product-link:hover img { transform: none; } }

/* -------------------------------------------------------------------------
 * Loading feedback: image skeletons, navigation progress bar, transition skeleton.
 * Only applied while content is genuinely loading (classes set by main.js);
 * nothing here changes the rendered page once it has loaded.
 * ---------------------------------------------------------------------- */
:root { --ssf-sk-base: #f4efe8; --ssf-sk-shine: #fbf8f4; }
@keyframes ssf-sk-shimmer { from { background-position: 150% 0; } to { background-position: -50% 0; } }
@keyframes ssf-sk-in { from { opacity: 0; } to { opacity: 1; } }
.ssf-sk-block {
	background-color: var(--ssf-sk-base);
	background-image: linear-gradient(100deg, transparent 30%, var(--ssf-sk-shine) 50%, transparent 70%);
	background-size: 200% 100%;
	animation: ssf-sk-shimmer 1.6s ease-in-out infinite;
}
/* Image placeholders: the wrapper already reserves the image box (ratio or width/height).
   Drawn underneath the image and faded in after 150 ms, so fast loads never flash. */
.media.ssf-sk::before, .product__media.ssf-sk::before {
	content: ""; position: absolute; inset: 0;
	background-color: var(--ssf-sk-base);
	background-image: linear-gradient(100deg, transparent 30%, var(--ssf-sk-shine) 50%, transparent 70%);
	background-size: 200% 100%;
	animation: ssf-sk-in 0.2s ease 0.15s both, ssf-sk-shimmer 1.6s ease-in-out infinite;
}
.product__media.ssf-sk img { position: relative; }
.product-lightbox__content img.ssf-sk { background-color: var(--ssf-sk-base); animation: ssf-sk-in 0.2s ease 0.15s both; }

/* Add-to-cart in progress: same button, dimmed label + small spinner (after 150 ms, so quick adds don't flash). */
@keyframes ssf-spin { to { transform: rotate(360deg); } }
.product-form__submit.loading { cursor: progress; }
.product-form__submit.loading > span { opacity: 0.25; transition: opacity 0.2s 0.15s; }
.product-form__submit.loading::before {
	content: ""; position: absolute; top: 50%; left: 50%; width: 1.8rem; height: 1.8rem; margin: -0.9rem 0 0 -0.9rem;
	border: 0.2rem solid currentColor; border-right-color: transparent; border-radius: 50%;
	animation: ssf-spin 0.7s linear infinite, ssf-sk-in 0.2s 0.15s both;
}

/* Navigation progress bar: fixed, transform-only (no layout impact), never intercepts input. */
.ssf-progress { position: fixed; top: 0; left: 0; right: 0; height: 0.3rem; z-index: 100000; pointer-events: none; opacity: 0; transition: opacity 0.25s ease 0.1s; }
.ssf-progress.is-active { opacity: 1; transition-delay: 0s; }
.ssf-progress__bar { height: 100%; background: var(--color-ink); transform: scaleX(0); transform-origin: 0 50%; transition: transform 0.3s ease-out; box-shadow: 0 0 0.6rem rgba(169, 201, 180, 0.9); }

/* Transition skeleton: only after a genuinely slow navigation (> 800 ms), below the header. */
.ssf-nav-skeleton { position: fixed; left: 0; right: 0; bottom: 0; top: var(--header-bottom, 0px); z-index: 3; background: #fff; pointer-events: none; overflow: hidden; animation: ssf-sk-in 0.2s ease both; }
.ssf-nav-skeleton__inner { padding-top: 3rem; }
.ssf-nav-skeleton .ssf-sk-block { border-radius: 0.2rem; margin-bottom: 1.2rem; }
.ssf-nav-skeleton .sk-title { height: 3.2rem; width: min(60%, 36rem); margin-bottom: 2.5rem; }
.ssf-nav-skeleton .sk-line { height: 1.4rem; width: 100%; }
.ssf-nav-skeleton .sk-line--short { width: 60%; }
.ssf-nav-skeleton .sk-line--tiny { width: 30%; }
.ssf-nav-skeleton .sk-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: var(--grid-v, 0.8rem) var(--grid-h, 0.8rem); }
.ssf-nav-skeleton .sk-square { aspect-ratio: 1 / 1; }
.ssf-nav-skeleton .sk-product { display: grid; grid-template-columns: 1fr; gap: 3rem; }
.ssf-nav-skeleton .sk-button { height: 4.5rem; width: 100%; max-width: 44rem; }
.ssf-nav-skeleton .sk-article { max-width: 72.6rem; margin: 0 auto; }
.ssf-nav-skeleton .sk-hero { aspect-ratio: 16 / 9; margin-bottom: 3rem; }
@media screen and (min-width: 750px) {
	.ssf-nav-skeleton .sk-grid { grid-template-columns: repeat(4, 1fr); }
	.ssf-nav-skeleton .sk-product { grid-template-columns: 1.4fr 1fr; }
}

/* Cart: the block grows when it hydrates (skeleton → real content); keeping the footer below the fold
   means that growth never moves visible content (CLS). */
body.woocommerce-cart #MainContent { min-height: 100vh; }

/* WooCommerce cart/checkout blocks already render their own skeleton while hydrating: same tone as ours. */
.wc-block-components-skeleton__element { background-color: var(--ssf-sk-base); }

@media (prefers-reduced-motion: reduce) {
	.wc-block-components-skeleton__element::after { animation: none; }
	.ssf-sk-block, .media.ssf-sk::before, .product__media.ssf-sk::before { animation: none; background-image: none; }
	.product-lightbox__content img.ssf-sk { animation: none; }
	.ssf-progress, .ssf-progress__bar { transition: none; }
	.product-form__submit.loading::before { animation: none; border-right-color: currentColor; opacity: 0.6; }
	.ssf-nav-skeleton { animation: none; }
}

/* ---------- Home v2 (2026-10-29): three banners, products of the moment, values · "Espaces verts" page ---------- */
.ssf-hero__text { margin: -1.6rem auto 3.2rem; max-width: 60ch; font-size: 1.6rem; line-height: 1.7; color: rgba(247, 245, 239, 0.9); }
@media screen and (min-width: 750px) { .ssf-hero__text { font-size: 1.7rem; } }
.ssf-hero__assurance { display: flex; flex-wrap: wrap; justify-content: center; gap: 1.2rem 2.8rem; margin: 3.6rem 0 0; }
.ssf-hero__assurance li { display: flex; align-items: center; gap: 0.8rem; font-size: 1.4rem; letter-spacing: 0.04rem; color: #f7f5ef; }
.ssf-hero__assurance .icon { width: 2.2rem; height: 2.2rem; flex: none; color: #a9c9b4; }
@media screen and (max-width: 749px) { .ssf-hero__assurance { flex-direction: column; align-items: center; gap: 1rem; } }
/* Banners 2 and 3 (and the page hero): shorter than the first screen, sharp image, same overlay and buttons. */
.ssf-hero--banner, .ssf-hero--page { min-height: 56rem; }
@media screen and (min-width: 990px) { .ssf-hero--banner, .ssf-hero--page { min-height: 64rem; } }
.ssf-hero--banner .ssf-hero__media img, .ssf-hero--page .ssf-hero__media img { filter: none; transform: none; }
.ssf-hero--banner::before, .ssf-hero--page::before { background: linear-gradient(180deg, rgba(26, 29, 27, 0.5) 0%, rgba(26, 29, 27, 0.56) 50%, rgba(26, 29, 27, 0.68) 100%); }
.ssf-hero--banner + .ssf-hero--banner, .ssf-hero + .ssf-hero--banner { border-top: 0.4rem solid #f7f5ef; }
.ssf-hero__title { text-wrap: balance; }

.ssf-card-buy { margin-top: 1.2rem; min-height: 4.2rem; padding: 0 2rem; font-size: 1.4rem; }
.ssf-picks .card__information { display: flex; flex-direction: column; align-items: flex-start; }

.ssf-section-title, .ssf-values__title { margin: 0 0 3.2rem; text-align: center; }
.ssf-section-intro { max-width: 60ch; margin: -2rem auto 3.2rem; text-align: center; }

.ssf-values { background: #f7f5ef; }
.ssf-values__grid { display: grid; gap: 2.4rem; grid-template-columns: 1fr; }
@media screen and (min-width: 750px) { .ssf-values__grid { grid-template-columns: repeat(3, 1fr); gap: 3.2rem; } }
.ssf-values__item { text-align: center; padding: 2.4rem 1.6rem; }
.ssf-values__icon { display: inline-flex; align-items: center; justify-content: center; width: 6.4rem; height: 6.4rem; margin-bottom: 1.6rem; border-radius: 50%; background: var(--ssf-sage-soft); color: var(--color-ink); }
.ssf-values__icon .icon { width: 2.8rem; height: 2.8rem; }
.ssf-values__heading { margin: 0 0 1rem; }
.ssf-values__item p { margin: 0 auto; max-width: 34ch; }

.ssf-green__area { display: grid; gap: 2.4rem; align-items: center; margin-bottom: 5.6rem; }
.ssf-green__area:last-child { margin-bottom: 0; }
@media screen and (min-width: 750px) {
	.ssf-green__area { grid-template-columns: 1fr 1fr; gap: 4.8rem; }
	.ssf-green__area--reverse .ssf-green__media { order: 2; }
}
.ssf-green__media { aspect-ratio: 4 / 5; overflow: hidden; border-radius: 0.4rem; background: #f7f5ef; }
.ssf-green__media img { width: 100%; height: 100%; object-fit: cover; display: block; }
.ssf-green__heading { margin: 0 0 1.2rem; font-size: clamp(2.2rem, 2.6vw, 2.8rem); }
.ssf-green__intro { margin: 0 0 2rem; }
.ssf-green__list li { display: flex; gap: 1.2rem; align-items: flex-start; margin-bottom: 1.4rem; }
.ssf-green__list .icon { width: 2rem; height: 2rem; flex: none; margin-top: 0.4rem; color: #5f8a6f; }
.ssf-green__list strong { color: var(--color-ink); font-weight: 500; }

.ssf-steps { background: #f7f5ef; }
.ssf-steps__grid { display: grid; gap: 2rem; grid-template-columns: 1fr; counter-reset: none; }
@media screen and (min-width: 750px) { .ssf-steps__grid { grid-template-columns: repeat(2, 1fr); } }
@media screen and (min-width: 990px) { .ssf-steps__grid { grid-template-columns: repeat(4, 1fr); } }
.ssf-steps__item { padding: 2.8rem 2.4rem; background: #fff; border-top: 0.3rem solid var(--color-sage); border-radius: 0.4rem; }
.ssf-steps__number { display: inline-flex; align-items: center; justify-content: center; width: 4.4rem; height: 4.4rem; margin-bottom: 1.6rem; border-radius: 50%; background: var(--color-ink); color: #f7f5ef; font-family: var(--font-heading-family); font-size: 2.2rem; }
.ssf-steps__heading { margin: 0 0 1rem; }
.ssf-steps__item p { margin: 0; }

.ssf-gallery__grid { display: grid; gap: 0.8rem; grid-template-columns: repeat(2, 1fr); }
@media screen and (min-width: 750px) { .ssf-gallery__grid { grid-template-columns: repeat(3, 1fr); gap: 1.2rem; } }
@media screen and (min-width: 990px) { .ssf-gallery__grid { grid-template-columns: repeat(4, 1fr); } }
.ssf-gallery__item { aspect-ratio: 3 / 4; overflow: hidden; border-radius: 0.4rem; background: #f7f5ef; }
.ssf-gallery__item img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform 0.6s var(--ssf-ease); }
@media (hover: hover) { .ssf-gallery__item:hover img { transform: scale(1.04); } }

.ssf-cta { background: var(--color-ink); color: #f7f5ef; text-align: center; }
.ssf-cta__inner { max-width: 76rem; }
.ssf-cta__title { margin: 0 0 1.6rem; color: #f7f5ef; }
.ssf-cta__text { margin: 0 auto 3.2rem; max-width: 60ch; color: rgba(247, 245, 239, 0.85); }
.ssf-cta__actions { display: flex; flex-wrap: wrap; justify-content: center; gap: 1.2rem 1.6rem; }
.ssf-cta .button--primary { background: #f7f5ef; color: var(--color-ink); }
.ssf-cta .button--secondary { background: transparent; color: #f7f5ef; box-shadow: 0 0 0 0.1rem #f7f5ef inset; }
@media screen and (max-width: 479px) { .ssf-cta__actions { flex-direction: column; align-items: stretch; } }
#nos-expertises { scroll-margin-top: 2rem; }
@media (prefers-reduced-motion: reduce) { .ssf-gallery__item img { transition: none; } .ssf-gallery__item:hover img { transform: none; } }

/* Line icons (stroke) must not inherit the global icon fill. Banners over light photos: stronger overlay + soft text shadow. */
.ssf-hero__assurance .icon, .ssf-values__icon .icon, .ssf-green__list .icon { fill: none; }
.ssf-hero--banner::before, .ssf-hero--page::before { background: linear-gradient(180deg, rgba(26, 29, 27, 0.58) 0%, rgba(26, 29, 27, 0.62) 50%, rgba(26, 29, 27, 0.72) 100%); }
.ssf-hero--banner .ssf-hero__content, .ssf-hero--page .ssf-hero__content { text-shadow: 0 1px 1.2rem rgba(26, 29, 27, 0.5); }
.ssf-hero--banner .ssf-hero__eyebrow, .ssf-hero--page .ssf-hero__eyebrow { color: #cfe3d6; }
.ssf-hero__btn { text-shadow: none; }

/* ---------- Home slider + framed heroes + contact page (2026-10-29, v3) ---------- */
/* Framed hero (as saistudioevent.com): small side margins and a thin inner line. */
.ssf-hero--framed { position: relative; margin: 0 0.8rem; }
@media screen and (min-width: 750px) { .ssf-hero--framed { margin: 0 1.6rem; } }
.ssf-hero--framed::after { content: ""; position: absolute; inset: 1.2rem; border: 1px solid rgba(247, 245, 239, 0.4); pointer-events: none; z-index: 3; }
@media screen and (min-width: 750px) { .ssf-hero--framed::after { inset: 2rem; } }

/* Slider: slides side by side, the track moves one slide at a time. */
.ssf-slider { overflow: hidden; background: #1a1d1b; isolation: isolate; }
.ssf-slider__track { display: flex; transition: transform 0.9s cubic-bezier(0.65, 0, 0.35, 1); will-change: transform; }
.ssf-slide { flex: 0 0 100%; width: 100%; }
.ssf-slide .ssf-hero__media img { filter: none; transform: scale(1.08); transition: transform 7.5s ease-out; }
.ssf-slide.is-active .ssf-hero__media img { transform: scale(1); }
.ssf-slide::before { background: linear-gradient(180deg, rgba(26, 29, 27, 0.5) 0%, rgba(26, 29, 27, 0.56) 50%, rgba(26, 29, 27, 0.7) 100%); }
.ssf-slide .ssf-hero__content { padding-bottom: 11rem; text-shadow: 0 1px 1.2rem rgba(26, 29, 27, 0.45); }
.ssf-slide .ssf-hero__content > * { opacity: 0; transform: translateY(1.6rem); transition: opacity 0.7s ease 0.35s, transform 0.7s ease 0.35s; }
.ssf-slide.is-active .ssf-hero__content > * { opacity: 1; transform: none; }
.ssf-slide .ssf-hero__eyebrow { color: #cfe3d6; }
.ssf-slider__controls { position: absolute; left: 0; right: 0; bottom: 3.6rem; z-index: 4; display: flex; align-items: center; justify-content: center; gap: 1.2rem; }
@media screen and (min-width: 750px) { .ssf-slider__controls { bottom: 4.4rem; } }
.ssf-slider__arrow { display: inline-flex; align-items: center; justify-content: center; width: 4.4rem; height: 4.4rem; padding: 0; border: 1px solid rgba(247, 245, 239, 0.6); border-radius: 50%; background: rgba(26, 29, 27, 0.25); color: #f7f5ef; cursor: pointer; transition: background-color 0.3s ease, color 0.3s ease; }
.ssf-slider__arrow .icon { width: 1.8rem; height: 1.8rem; fill: none; }
@media (hover: hover) { .ssf-slider__arrow:hover { background: #f7f5ef; color: #1a1d1b; } }
.ssf-slider__arrow:focus-visible, .ssf-slider__dot:focus-visible { outline: 2px solid #a9c9b4; outline-offset: 3px; box-shadow: none; }
.ssf-slider__toggle .icon-play, .ssf-slider.is-paused .ssf-slider__toggle .icon-pause { display: none; }
.ssf-slider.is-paused .ssf-slider__toggle .icon-play { display: block; }
.ssf-slider__dots { display: flex; gap: 0.8rem; padding: 0 0.4rem; }
.ssf-slider__dot { width: 1rem; height: 1rem; padding: 0; border: 1px solid #f7f5ef; border-radius: 1rem; background: transparent; cursor: pointer; transition: width 0.35s ease, background-color 0.35s ease; }
.ssf-slider__dot.is-active { width: 2.8rem; background: #f7f5ef; }
@media screen and (max-width: 749px) { .ssf-slider__arrow { width: 3.8rem; height: 3.8rem; } .ssf-slide .ssf-hero__content { padding-bottom: 10rem; } .ssf-slide .ssf-hero__assurance { margin-top: 2.4rem; } }
@media (prefers-reduced-motion: reduce) {
	.ssf-slider__track, .ssf-slide .ssf-hero__media img, .ssf-slide .ssf-hero__content > *, .ssf-slider__dot { transition: none; }
	.ssf-slide .ssf-hero__media img { transform: none; }
}

/* Plants & planters on the "Espaces verts" page. */
.ssf-plants { background: #fff; }

/* Contact page: large framed form + "Contact direct" card. */
.ssf-hero--page.ssf-hero--framed { min-height: 52rem; }
@media screen and (min-width: 990px) { .ssf-hero--page.ssf-hero--framed { min-height: 60rem; } }
.ssf-contact { background: #f7f5ef; }
.ssf-contact__grid { display: grid; gap: 3.2rem; align-items: start; }
@media screen and (min-width: 990px) { .ssf-contact__grid { grid-template-columns: minmax(0, 1.5fr) minmax(0, 1fr); gap: 5.6rem; } }
.ssf-cform { padding: 0.8rem; border: 1px solid rgba(26, 29, 27, 0.16); background: #fbfaf6; }
.ssf-cform__form { padding: 3.2rem 2.4rem; border: 1px solid rgba(26, 29, 27, 0.12); }
@media screen and (min-width: 750px) { .ssf-cform { padding: 1.2rem; } .ssf-cform__form { padding: 5.6rem 4.8rem; } }
.ssf-cform__grid { display: grid; gap: 3.2rem; }
@media screen and (min-width: 750px) { .ssf-cform__grid { grid-template-columns: 1fr 1fr; gap: 4rem 3.6rem; } }
.ssf-cform__field--full { grid-column: 1 / -1; }
.ssf-cform__label { display: block; margin-bottom: 0.4rem; font-family: var(--font-body-family); font-weight: 500; font-size: 1.2rem; letter-spacing: 0.24rem; text-transform: uppercase; color: var(--color-ink); }
.ssf-cform__input { display: block; width: 100%; padding: 1.2rem 0; border: 0; border-bottom: 1px solid rgba(26, 29, 27, 0.3); border-radius: 0; background: transparent; font-family: var(--font-body-family); font-size: 1.6rem; color: var(--color-ink); transition: border-color 0.3s ease, box-shadow 0.3s ease; -webkit-appearance: none; appearance: none; }
.ssf-cform__input::placeholder { color: rgba(26, 29, 27, 0.4); }
.ssf-cform__input:focus, .ssf-cform__input:focus-visible { outline: 0; border-bottom-color: #5f8a6f; box-shadow: 0 1px 0 #5f8a6f; }
.ssf-cform__select select { padding-right: 3rem; cursor: pointer; background: transparent url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%231a1d1b' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E") no-repeat right 0.2rem center / 1.8rem; }
.ssf-cform__textarea { min-height: 14rem; resize: vertical; line-height: 1.6; }
.ssf-cform__hint { margin: 0.8rem 0 0; font-size: 1.3rem; font-style: italic; line-height: 1.5; color: rgba(26, 29, 27, 0.6); }
.ssf-cform__submit { margin-top: 4rem; min-height: 5.2rem; padding: 0 4rem; font-family: var(--font-ui-family); font-size: 1.5rem; letter-spacing: 0.2rem; text-transform: uppercase; }
@media screen and (max-width: 749px) { .ssf-cform__submit { width: 100%; } }
.ssf-cform__status { margin: 0 0 3.2rem; padding: 1.6rem 2rem; border-left: 0.3rem solid #5f8a6f; background: var(--ssf-sage-soft); font-size: 1.6rem; line-height: 1.5; color: var(--color-ink); }
.ssf-cform__status--error { border-left-color: #800020; background: rgba(128, 0, 32, 0.06); }
.ssf-contact__card { padding: 3.2rem 2.8rem; border: 1px solid rgba(26, 29, 27, 0.16); background: #fbfaf6; }
@media screen and (min-width: 990px) { .ssf-contact__card { position: sticky; top: 12rem; padding: 4.4rem 4rem; } }
.ssf-contact__kicker { margin: 0 0 1.6rem; font-family: var(--font-body-family); font-weight: 500; font-size: 1.2rem; letter-spacing: 0.24rem; text-transform: uppercase; color: #5f8a6f; }
.ssf-contact__card .ssf-contact__kicker::after { content: ""; display: block; width: 4.8rem; height: 1px; margin-top: 2rem; background: rgba(26, 29, 27, 0.25); }
.ssf-contact__list li { display: flex; align-items: flex-start; gap: 1.4rem; margin-top: 2rem; font-size: 1.6rem; line-height: 1.5; color: var(--color-ink); }
.ssf-contact__list .icon { flex: none; width: 2rem; height: 2rem; margin-top: 0.2rem; color: #5f8a6f; }
.ssf-contact__list .icon:not(.icon-whatsapp):not(.icon-instagram) { fill: none; }
.ssf-contact__list a { color: inherit; text-decoration: none; }
@media (hover: hover) { .ssf-contact__list a:hover { text-decoration: underline; text-underline-offset: 0.3rem; } }
.ssf-contact__talk { margin-top: 4.8rem; padding-top: 3.2rem; border-top: 1px solid rgba(26, 29, 27, 0.16); }
.ssf-contact__lead { margin: 0 0 2rem; font-family: var(--font-heading-family); font-size: 2.2rem; line-height: 1.3; color: var(--color-ink); }

/* ---------- v4 (2026-10-29): slider without controls, contact = centred form only, roomier page hero, CTA card ---------- */
.ssf-slide .ssf-hero__content { padding-bottom: 6rem; }

/* Contact: title + one wide centred form; rows 2 / 2 / 3 / 1 fields. */
.ssf-contact { background: #f7f5ef; padding-top: 5.6rem; padding-bottom: 8rem; }
@media screen and (min-width: 990px) { .ssf-contact { padding-top: 7.2rem; padding-bottom: 10rem; } }
.ssf-contact__inner { max-width: 112rem; }
.ssf-contact__head { max-width: 64rem; margin: 0 auto 4rem; text-align: center; }
.ssf-contact__head .ssf-contact__kicker::after { display: none; }
.ssf-contact__title { margin: 0 0 1.6rem; }
.ssf-contact__intro { margin: 0; }
.ssf-cform__grid { grid-template-columns: 1fr; }
@media screen and (min-width: 750px) {
	.ssf-cform__grid { grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 4rem 3.6rem; }
	.ssf-cform__field--half { grid-column: span 3; }
	.ssf-cform__field--third { grid-column: span 2; }
	.ssf-cform__field--full { grid-column: 1 / -1; }
}
@media screen and (min-width: 750px) and (max-width: 989px) { .ssf-cform__field--third { grid-column: span 3; } .ssf-cform__field--third:last-child, .ssf-cform__field--third:nth-child(7) { grid-column: 1 / -1; } }
.ssf-cform__form { text-align: left; }
@media screen and (min-width: 990px) { .ssf-cform__form { padding: 6.4rem 6.4rem 5.6rem; } }
.ssf-cform__submit { display: flex; margin-left: auto; margin-right: auto; }

/* Page hero (Espaces verts): wider text block, more air between lines and elements. */
.ssf-hero--page .ssf-hero__content { max-width: 100rem; padding-top: 8rem; padding-bottom: 8rem; }
.ssf-hero--page .ssf-hero__eyebrow { margin-bottom: 2rem; }
.ssf-hero--page .ssf-hero__title { max-width: 34ch; margin-bottom: 2.8rem; line-height: 1.2; text-wrap: pretty; }
.ssf-hero--page .ssf-hero__text { max-width: 72ch; margin: 0 auto 4rem; line-height: 1.85; }
@media screen and (max-width: 749px) { .ssf-hero--page .ssf-hero__content { padding-top: 6rem; padding-bottom: 6rem; } .ssf-hero--page .ssf-hero__text { font-size: 1.5rem; } }

/* Final call to action: light framed card with space before the footer. */
.ssf-cta { background: #fff; color: var(--color-ink); padding-top: 4rem; padding-bottom: 8rem; }
@media screen and (min-width: 990px) { .ssf-cta { padding-bottom: 10rem; } }
.ssf-cta__inner { position: relative; max-width: 96rem; padding: 4.8rem 2.4rem; background: #eef4f0; border-radius: 0.4rem; }
.ssf-cta__inner::before { content: ""; position: absolute; inset: 1rem; border: 1px solid rgba(95, 138, 111, 0.35); border-radius: 0.2rem; pointer-events: none; }
@media screen and (min-width: 750px) { .ssf-cta__inner { padding: 6.4rem 6.4rem; } .ssf-cta__inner::before { inset: 1.4rem; } }
.ssf-cta__title { color: var(--color-ink); }
.ssf-cta__text { color: rgba(26, 29, 27, 0.75); }
.ssf-cta .button--primary { position: relative; background: var(--color-ink); color: #f7f5ef; }
.ssf-cta .button--secondary { position: relative; background: transparent; color: var(--color-ink); box-shadow: 0 0 0 var(--buttons-border-width) var(--color-ink) inset; }

/* ---------- v5 (2026-11-01): owner's stacked logo, home banners one under the other ---------- */
.header__heading-logo { width: auto; height: 5.6rem; max-width: none; aspect-ratio: 669 / 583; }
@media screen and (min-width: 750px) { .header__heading-logo { width: auto; height: 6.4rem; } }
@media screen and (min-width: 990px) { .header__heading-logo { width: auto; height: 7.2rem; } }
.ssf-footer__logo-img { display: block; width: 13rem; max-width: 100%; height: auto; }
.ssf-banners { display: grid; gap: 1.2rem; }
@media screen and (min-width: 750px) { .ssf-banners { gap: 1.6rem; } }
.ssf-banners .ssf-hero + .ssf-hero { border-top: 0; }
.ssf-banners .ssf-hero__content { padding-top: 8rem; padding-bottom: 8rem; }
