/*
 * Littlesoms — boutique « papier » sur fond forest (DESIGN_SPEC §3.7, §5).
 * Chargée uniquement sur shop / catégories / produit / panier / paiement / compte, après main.css.
 * Règle : les visuels produits sont posés dans un passe-partout crème ; tout ce qui se remplit (panier,
 * paiement, compte) est sur papier crème, texte encre, focus forest (le rose est interdit sur crème).
 * Aucun décor animé dans le tunnel (body.ls-tunnel).
 */

/* 0. Valeurs de repli (spécificité nulle : les tokens de main.css gagnent toujours). */
:where(:root) {
	--ls-forest: #242c17; --ls-forest-deep: #1b2111; --ls-night: #12160b; --ls-moss: #2f3920;
	--ls-gold: #ffe88b; --ls-gold-deep: #e9c75a; --ls-parchment: #f4e4ab; --ls-cream: #fbf1d7;
	--ls-lace: #e0dddc; --ls-pin: #f2aeb9; --ls-olive: #a3a847; --ls-olive-ink: #5c6118; --ls-error: #a3243b; --ls-error-dark: #ff9fb0;
	--ls-gold-a06: rgb(255 232 139 / .06); --ls-gold-a12: rgb(255 232 139 / .12); --ls-gold-a24: rgb(255 232 139 / .24);
	--ls-gold-a40: rgb(255 232 139 / .40); --ls-gold-a75: rgb(255 232 139 / .75); --ls-night-a85: rgb(18 22 11 / .85);
	--ls-shadow-flat: 0 1px 2px rgb(10 12 5 / .30);
	--ls-shadow-paper: 0 1px 0 rgb(255 232 139 / .05) inset, 0 2px 4px rgb(10 12 5 / .35), 0 14px 30px -10px rgb(10 12 5 / .60);
	--ls-shadow-lift: 0 4px 10px rgb(10 12 5 / .35), 0 28px 50px -14px rgb(10 12 5 / .70);
	--ls-glow-gold: 0 0 0 1px rgb(255 232 139 / .35), 0 0 28px rgb(255 232 139 / .18);
	--ls-r-photo: 2px; --ls-r-field: 6px; --ls-r-chip: 999px;
	--ls-ease-out: cubic-bezier(.2, .8, .2, 1); --ls-ease-io: cubic-bezier(.65, 0, .35, 1);
	--ls-spring: cubic-bezier(.34, 1.56, .64, 1);
	--ls-dur-s: 180ms; --ls-dur-m: 320ms; --ls-dur-l: 600ms;
	--ls-font-script: "Luxurious Script", cursive; --ls-font-serif: "Cormorant Garamond", Georgia, serif; --ls-font-body: Aileron, system-ui, sans-serif;
	--ls-fs-h1: clamp(3.25rem, 2rem + 5.5vw, 7rem); --ls-fs-h3: clamp(1.5rem, 1.3rem + .9vw, 2rem);
	--ls-fs-eyebrow: clamp(.75rem, .72rem + .15vw, .8125rem); --ls-fs-lead: clamp(1.125rem, 1rem + .55vw, 1.375rem);
}

/* Encre locale : --ls-ink est aussi déclaré @property <percentage> dans main.css (animation du hero), donc inutilisable comme couleur. */
:where(:root) { --lsw-ink: #4a3b2a; }

/* Variables locales de la boutique. */
.ls-shop {
	--lsw-field-bg: #fffaf0;
	--lsw-field-border: #b9ae92;
	--lsw-hair: #d9cfb3;
	--lsw-price: clamp(1.375rem, 1.2rem + .6vw, 1.75rem);
	--lsw-sticky-top: 112px;
}

/* =========================================================================
 * 1. Bannière Shop / catégories (décor .ls-banner--stars fourni par main.css)
 * ====================================================================== */
.ls-shop-banner {
	--ls-banner-h: 46svh;
	position: relative;
	display: grid;
	align-items: center;
	min-height: var(--ls-banner-h);
	padding: clamp(6rem, 12vw, 9rem) var(--ls-gutter, clamp(16px, 4vw, 48px)) clamp(3rem, 6vw, 5rem);
	overflow: clip;
	text-align: center;
	background-color: var(--ls-forest-deep);
}
.ls-shop-banner__inner { position: relative; z-index: 2; max-width: 46rem; margin-inline: auto; }
.ls-shop-banner .ls-eyebrow { color: var(--ls-gold-a75); margin: 0 0 .75rem; }
.ls-shop-banner__title {
	margin: 0;
	font: 400 var(--ls-fs-h1)/.9 var(--ls-font-script);
	color: var(--ls-gold);
	text-wrap: balance;
}
.ls-shop-banner__lead { margin: 1rem auto 0; max-width: 52ch; color: var(--ls-parchment); font-size: var(--ls-fs-lead); }

/* Objet posé (catégories) : réutilise les remplissages .ls-fill-* de main.css. */
.ls-shop-banner__object {
	position: absolute;
	z-index: 1;
	inset-block-end: -2.5rem;
	inset-inline-end: clamp(-3rem, 4vw, 8%);
	width: clamp(150px, 24vw, 300px);
	aspect-ratio: 4 / 5;
	border-radius: var(--ls-r-photo);
	box-shadow: var(--ls-shadow-lift);
	rotate: -2deg;
	opacity: .95;
	pointer-events: none;
}
.ls-shop-banner--letter .ls-shop-banner__object { rotate: 3deg; aspect-ratio: 5 / 4; }
.ls-shop-banner--laundry .ls-shop-banner__object {
	inset-inline: 0;
	inset-block: auto 0;
	width: 100%;
	height: 48%;
	aspect-ratio: auto;
	rotate: 0deg;
	box-shadow: none;
	opacity: .55;
}
@media (max-width: 639px) {
	.ls-shop-banner { --ls-banner-h: 40svh; text-align: start; }
	.ls-shop-banner__object { width: 34vw; inset-inline-end: -6vw; opacity: .6; }
}

/* =========================================================================
 * 2. Tuiles catégories (cartes .ls-card de main.css, format réduit 4:5)
 * ====================================================================== */
.ls-shop-cats { margin-block: var(--ls-overlap, clamp(-6rem, -4vw, -2rem)) clamp(2.5rem, 5vw, 4.5rem); position: relative; z-index: 3; }
.ls-shop-cats .ls-card__media { aspect-ratio: 4 / 5; }
.ls-shop-cats .ls-card__title { margin: 0; }
.woocommerce-products-header { margin: 0; }

/* =========================================================================
 * 3. Barre d'outils : nombre de produits + tri
 * ====================================================================== */
.ls-shop .woo-listing-top {
	display: flex;
	flex-wrap: wrap;
	gap: .75rem 1.5rem;
	align-items: center;
	justify-content: space-between;
	margin-block-end: clamp(1.5rem, 3vw, 2.5rem);
}
.ls-shop .woocommerce-result-count { margin: 0; font-size: .875rem; letter-spacing: .01em; color: var(--ls-gold-a75); }
.ls-shop .woocommerce-ordering { margin: 0; }
.ls-shop .woocommerce-ordering select,
.ls-shop table.variations select {
	appearance: none;
	min-height: 44px;
	padding: 0 2.75rem 0 1rem;
	border: 1.5px solid var(--ls-gold-a24);
	border-radius: var(--ls-r-field);
	color: var(--ls-gold);
	font: 600 .9375rem/1 var(--ls-font-body);
	background:
		linear-gradient(45deg, transparent 50%, var(--ls-gold) 50%) calc(100% - 20px) 50% / 6px 6px no-repeat,
		linear-gradient(-45deg, transparent 50%, var(--ls-gold) 50%) calc(100% - 14px) 50% / 6px 6px no-repeat,
		var(--ls-moss);
	cursor: pointer;
}
.ls-shop .woocommerce-ordering select:hover { border-color: var(--ls-gold-a40); }
.ls-shop .woocommerce-ordering select option { background: var(--ls-forest-deep); color: var(--ls-gold); }

/* =========================================================================
 * 4. Grille produits : 2 col mobile, 2 tablette, 3 bureau
 * ====================================================================== */
.ls-shop [data-products] {
	--shop-columns: repeat(2, minmax(0, 1fr));
	--grid-columns-gap: 12px;
	--grid-rows-gap: 2rem;
}
@media (min-width: 640px) { .ls-shop [data-products] { --grid-columns-gap: 1.5rem; --grid-rows-gap: 2.5rem; } }
@media (min-width: 1000px) { .ls-shop [data-products].columns-3, .ls-shop [data-products].columns-4 { --grid-columns-gap: 2rem; } }

.ls-shop [data-products] .product {
	--horizontal-alignment: stretch;
	--text-horizontal-alignment: start;
	transform: perspective(900px) rotateX(var(--rx, 0deg)) rotateY(var(--ry, 0deg));
	transition: transform var(--ls-dur-m) var(--ls-ease-out);
}
.ls-shop [data-products] .product.is-tilting { transition-duration: 80ms; }

/* Passe-partout crème du visuel (les mockups Gelato ont des fonds blancs/gris). */
.ls-shop [data-products] figure {
	position: relative;
	margin: 0 0 .9rem;
	padding: 6%;
	background: var(--ls-cream);
	border-radius: var(--ls-r-photo);
	box-shadow: var(--ls-shadow-paper);
	rotate: var(--ls-tilt, 0deg);
	transition: rotate var(--ls-dur-m) var(--ls-ease-out), box-shadow var(--ls-dur-m) var(--ls-ease-out);
}
.ls-shop [data-products] .product:nth-child(3n+1) figure { --ls-tilt: -.8deg; }
.ls-shop [data-products] .product:nth-child(3n+2) figure { --ls-tilt: .6deg; }
.ls-shop [data-products] .product:nth-child(3n) figure { --ls-tilt: -.3deg; }
.ls-shop [data-products] figure .ct-media-container { border-radius: 0; overflow: hidden; background: #fffaf0; }
.ls-shop [data-products] figure .ct-media-container img {
	aspect-ratio: 4 / 5;
	object-fit: contain;
	transition: opacity 300ms ease, scale var(--ls-dur-l) var(--ls-ease-out);
}
/* Reflet glacé qui suit le pointeur (--mx/--my posés par ls.js). */
.ls-shop [data-products] figure::after {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 2;
	pointer-events: none;
	border-radius: inherit;
	background: radial-gradient(circle at var(--mx, 50%) var(--my, 0%), rgb(255 248 220 / .22), transparent 45%);
	mix-blend-mode: soft-light;
	opacity: 0;
	transition: opacity var(--ls-dur-m) ease;
}
@media (hover: hover) and (pointer: fine) {
	.ls-shop [data-products] .product:hover figure { --ls-tilt: 0deg; box-shadow: var(--ls-shadow-lift); }
	.ls-shop [data-products] .product:hover figure::after { opacity: 1; }
	.ls-shop [data-products] .product:hover figure img { scale: 1.04; }
}
.ls-shop [data-products] .product:active figure { scale: .985; }

/* Produit sans image : le placeholder WooCommerce cède la place à un décor papier. */
.ls-shop .ls-no-image figure .ct-media-container img,
.ls-shop img.woocommerce-placeholder { opacity: 0; }
.ls-product-fill {
	position: absolute;
	inset: 6%;
	z-index: 1;
	pointer-events: none;
}
.ls-shop .ls-no-image figure .ct-media-container,
.ls-shop .woocommerce-product-gallery .ct-media-container:has(img.woocommerce-placeholder),
.ls-shop .woocommerce-product-gallery__image:has(img.woocommerce-placeholder) {
	background:
		url(../svg/buttercup-sprig.svg) 50% 55% / auto 62% no-repeat,
		repeating-linear-gradient(to bottom, transparent 0 27px, rgb(163 168 71 / .22) 27px 28px),
		#fffaf0;
}
.ls-shop .ls-no-image.product_cat-stationery figure .ct-media-container,
.ls-shop .product_cat-stationery .woocommerce-product-gallery .ct-media-container:has(img.woocommerce-placeholder) {
	background:
		url(../svg/envelope-seal.svg) 50% 50% / 64% auto no-repeat,
		linear-gradient(to right, transparent 13%, rgb(242 174 185 / .55) 13% calc(13% + 1.5px), transparent 0),
		repeating-linear-gradient(to bottom, transparent 0 27px, rgb(163 168 71 / .28) 27px 28px),
		var(--ls-cream);
}
.ls-shop :is(.ls-no-image.product_cat-clothing, .ls-no-image.product_cat-tip-top-clothing) figure .ct-media-container,
.ls-shop :is(.product_cat-clothing, .product_cat-tip-top-clothing) .woocommerce-product-gallery .ct-media-container:has(img.woocommerce-placeholder) {
	background:
		url(../svg/laundry-line.svg) 50% 38% / 88% auto no-repeat,
		repeating-linear-gradient(0deg, var(--ls-gold-a06) 0 14px, transparent 14px 28px),
		repeating-linear-gradient(90deg, var(--ls-gold-a06) 0 14px, transparent 14px 28px),
		radial-gradient(90% 70% at 50% 30%, #3a4524, var(--ls-forest-deep));
}

/* Titre, prix, badges */
.ls-shop [data-products] .woocommerce-loop-product__title {
	margin: 0 0 .25rem;
	font: italic 600 1.25rem/1.15 var(--ls-font-serif);
	letter-spacing: 0;
	text-transform: none;
}
.ls-shop [data-products] .woocommerce-loop-product__title a { color: var(--ls-gold); text-decoration: none; }
.ls-shop [data-products] .woocommerce-loop-product__title a::after { content: ""; position: absolute; inset: 0; z-index: 1; } /* toute la carte est le lien */
.ls-shop .price {
	color: var(--ls-gold);
	font: 600 1.125rem/1 var(--ls-font-serif);
	font-variant-numeric: lining-nums tabular-nums;
}
.ls-shop .price del { opacity: .6; font-weight: 400; }
.ls-shop .price ins { text-decoration: none; }

.ls-shop .ls-badge-new,
.ls-shop .onsale,
.ls-shop .wc-block-components-product-sale-badge {
	position: absolute;
	inset-block-start: -.6rem;
	inset-inline-end: -.4rem;
	z-index: 3;
	display: grid;
	place-items: center;
	min-width: 3.25rem;
	aspect-ratio: 1;
	padding: .35rem;
	border-radius: 50%;
	background: var(--ls-pin);
	color: var(--ls-forest);
	font: 700 .7rem/1 var(--ls-font-body);
	letter-spacing: .08em;
	text-transform: uppercase;
	rotate: 12deg;
	box-shadow: var(--ls-shadow-flat);
}
.ls-shop .onsale + .ls-badge-new { display: none; }

/* Ajout rapide : ghost, visible au survol/focus (toujours visible au tactile). */
.ls-shop .ct-woo-card-actions { position: relative; z-index: 2; margin-block-start: .6rem; }
.ls-shop .ct-woo-card-actions .button {
	--ls-btn-bg: transparent;
	--ls-btn-bg-hover: var(--ls-gold-a06);
	--ls-btn-fg: var(--ls-gold);
	--ls-btn-bd: var(--ls-gold-a40);
	--ls-btn-bd-hover: var(--ls-gold);
	--ls-btn-notch: 0px;
	--ls-btn-glow: none;
	min-height: 44px;
	padding: .75em 1.1em;
	font-size: .875rem;
}
@media (hover: hover) and (pointer: fine) {
	.ls-shop [data-products] .ct-woo-card-actions[data-add-to-cart] { opacity: 0; translate: 0 4px; transition: opacity var(--ls-dur-s) ease, translate var(--ls-dur-s) var(--ls-ease-out); }
	.ls-shop [data-products] .product:is(:hover, :focus-within) .ct-woo-card-actions { opacity: 1; translate: 0 0; }
}
.ls-shop .ct-woo-card-actions .added_to_cart { color: var(--ls-gold); font-size: .875rem; }

/* Focus : toute la carte s'éclaire (double anneau sur photo). */
.ls-shop [data-products] .product:focus-within figure { outline: 3px solid var(--ls-pin); outline-offset: 3px; box-shadow: 0 0 0 6px var(--ls-night), var(--ls-shadow-paper); }
.ls-shop [data-products] .woocommerce-loop-product__title a:focus-visible { outline: none; }

/* Pagination */
.ls-shop .woocommerce-pagination,
.ls-shop .ct-pagination { font: 600 1.125rem/1 var(--ls-font-serif); }

/* État vide */
.ls-shop-empty { max-width: 34rem; margin: 2rem auto; padding: 2rem; text-align: center; }
.ls-shop-empty p { margin: 0 0 .75rem; }

/* =========================================================================
 * 5. Fiche produit
 * ====================================================================== */
.ls-shop.single-product .product-entry-wrapper { --product-gallery-width: 56%; align-items: flex-start; }
@media (min-width: 1000px) {
	.ls-shop.single-product .woocommerce-product-gallery { position: sticky; top: var(--lsw-sticky-top); align-self: flex-start; }
}

/* Visuel principal en passe-partout */
.ls-shop .woocommerce-product-gallery .ct-product-gallery-container,
.ls-shop .woocommerce-product-gallery .woocommerce-product-gallery__wrapper {
	padding: 6%;
	background: var(--ls-cream);
	border-radius: var(--ls-r-photo);
	box-shadow: var(--ls-shadow-paper);
}
.ls-shop .woocommerce-product-gallery .ct-product-gallery-container .ct-media-container { border-radius: 0; background: #fffaf0; }
.ls-shop .woocommerce-product-gallery .ct-product-gallery-container .ct-media-container img { object-fit: contain; }
/* Moment 3 : la photo de la carte devient le visuel de la fiche (un seul nom par page). */
.ls-shop .woocommerce-product-gallery .ct-product-gallery-container > .ct-media-container img,
.ls-shop .woocommerce-product-gallery .flexy-items > :first-child .ct-media-container img { view-transition-name: ls-media; }

/* Vignettes : mini-polaroids, l'active a une punaise rose */
.ls-shop .flexy-pills { --thumbs-spacing: 14px; }
.ls-shop .flexy-pills li { position: relative; }
.ls-shop .flexy-pills .ct-media-container {
	padding: 4px 4px 12px;
	background: var(--ls-cream);
	border-radius: var(--ls-r-photo);
	box-shadow: var(--ls-shadow-flat);
	rotate: -2deg;
	transition: rotate var(--ls-dur-s) var(--ls-ease-out), box-shadow var(--ls-dur-s);
}
.ls-shop .flexy-pills li:nth-child(even) .ct-media-container { rotate: 1.5deg; }
.ls-shop .flexy-pills li:is(.active, :hover) .ct-media-container { rotate: 0deg; box-shadow: var(--ls-shadow-paper); }
.ls-shop .flexy-pills li.active::after {
	content: "";
	position: absolute;
	inset-block-start: -10px;
	inset-inline-start: calc(50% - 8px);
	z-index: 2;
	width: 16px;
	height: 24px;
	background: url(../svg/pin.svg) center / contain no-repeat;
	filter: drop-shadow(1px 3px 2px rgb(10 12 5 / .45));
}

/* Résumé */
.ls-shop .entry-summary .ct-breadcrumbs,
.ls-shop .entry-summary .woocommerce-breadcrumb { font-size: .875rem; color: var(--ls-gold-a75); --theme-link-initial-color: var(--ls-gold-a75); }
.ls-shop .entry-summary .product_title {
	margin-block: .5rem 1rem;
	font: italic 500 var(--ls-fs-h1-article, clamp(2.5rem, 1.9rem + 2.6vw, 4.5rem))/1.02 var(--ls-font-serif);
	letter-spacing: -.01em;
	color: var(--ls-gold);
	text-wrap: balance;
}
.ls-shop .entry-summary .price { font-size: var(--lsw-price); }
.ls-price-note { margin: .4rem 0 0; font-size: .8125rem; color: var(--ls-gold-a75); }
.ls-story { margin-block: 1.5rem; padding-inline-start: 1rem; border-inline-start: 2px solid var(--ls-gold-a24); }
.ls-story__label { margin: 0 0 .35rem; color: var(--ls-gold-a75); }
.ls-story p:not(.ls-story__label) { margin: 0; font: italic 500 1.25rem/1.45 var(--ls-font-serif); color: var(--ls-parchment); }

/* Variations : chips (≥ 44 px) + pastilles couleur */
.ls-shop table.variations { margin-block: 1.25rem; border: 0; }
.ls-shop table.variations :is(th, td) { display: block; padding: 0; border: 0; background: none; text-align: start; }
.ls-shop table.variations th.label,
.ls-shop table.variations th.label label {
	margin-block-end: .5rem;
	font: 700 var(--ls-fs-eyebrow)/1.3 var(--ls-font-body);
	letter-spacing: .16em;
	text-transform: uppercase;
	color: var(--ls-gold-a75);
}
.ls-shop table.variations tr + tr th { padding-block-start: 1rem; }
.ls-chips { display: none; flex-wrap: wrap; gap: .5rem; margin: 0; padding: 0; border: 0; min-inline-size: 0; }
.ls-chips-ready .ls-chips { display: flex; }
.ls-chips-ready .ls-chips-select {
	position: absolute !important;
	width: 1px; height: 1px;
	overflow: hidden;
	clip-path: inset(50%);
	white-space: nowrap;
}
/* .ls-chip vient de main.css (label = la puce) ; ici l'état piloté par le bouton radio caché. */
.ls-chip { position: relative; cursor: pointer; font-size: .9375rem; }
.ls-chip input { position: absolute; inset: 0; width: 100%; height: 100%; margin: 0; opacity: 0; cursor: inherit; }
.ls-chip:hover { border-color: var(--ls-gold); }
.ls-chip:has(input:checked) { background: var(--ls-gold); border-color: var(--ls-gold); color: var(--ls-forest); }
.ls-chip:not(.ls-chip--swatch):has(input:checked)::before {
	content: "";
	width: .55em;
	height: .3em;
	border: solid currentColor;
	border-width: 0 0 2px 2px;
	rotate: -45deg;
	translate: 0 -.1em;
}
.ls-chip:has(input:focus-visible) { outline: 3px solid var(--ls-pin); outline-offset: 3px; }
.ls-chip:has(input:disabled) { opacity: .4; text-decoration: line-through; cursor: not-allowed; }
.ls-chip--swatch { padding-inline-start: .45em; }
.ls-chip--swatch::before {
	content: "";
	width: 28px;
	height: 28px;
	flex: none;
	border-radius: 50%;
	background: var(--ls-swatch);
	box-shadow: inset 0 0 0 1px rgb(18 22 11 / .25);
}
.ls-chip--swatch:has(input:checked) { background: var(--ls-moss); color: var(--ls-gold); border-color: var(--ls-gold); }
.ls-chip--swatch:has(input:checked)::before { box-shadow: 0 0 0 2px var(--ls-moss), 0 0 0 4px var(--ls-gold); }
.ls-shop .reset_variations { display: inline-block; margin-block-start: .75rem; font-size: .875rem; color: var(--ls-gold-a75); }
.ls-shop .woocommerce-variation-price .price { font-size: var(--lsw-price); }
.ls-shop .woocommerce-variation-availability,
.ls-shop .stock { font-size: .875rem; color: var(--ls-gold-a75); }

/* Quantité (stepper Blocksy, boutons 44 px rendus accessibles par ls.js) + bouton ticket pleine largeur */
.ls-shop form.cart { margin-block: 1.5rem 1.25rem; }
.ls-shop .ct-cart-actions { gap: .75rem; }
.ls-shop .quantity[data-type] {
	--quantity-height: 48px;
	--quantity-width: 140px;
	--quantity-initial-color: var(--ls-moss);
	--quantity-hover-color: var(--ls-forest-deep);
	--quantity-arrows-initial-color: var(--ls-gold);
	--quantity-arrows-hover-color: var(--ls-gold);
	--theme-form-text-initial-color: var(--ls-gold);
	--theme-form-text-focus-color: var(--ls-gold);
	--theme-form-field-border-initial-color: var(--ls-gold-a40);
	--theme-form-field-border-focus-color: var(--ls-gold);
}
.ls-shop .quantity[data-type=type-2] :is(.ct-increase, .ct-decrease) { width: 44px; }
.ls-shop .quantity :is(.ct-increase, .ct-decrease):focus-visible { outline: 3px solid var(--ls-pin); outline-offset: 2px; z-index: 2; }

/* Boutons : ticket de main.css (variables --ls-btn-*), ici seulement la taille et le contexte. */
.ls-shop :is(.single_add_to_cart_button, #place_order, .checkout-button, .wc-block-components-checkout-place-order-button, .wc-block-cart__submit-button) {
	width: 100%;
	min-height: 52px;
}

/* Réassurance */
.ls-reassure { display: grid; gap: .75rem; margin: 1.5rem 0; padding: 1.25rem 0; list-style: none; border-block: 1px solid var(--ls-gold-a12); }
.ls-reassure__item { display: grid; grid-template-columns: 20px 1fr; gap: .75rem; align-items: start; font-size: .875rem; line-height: 1.5; color: var(--ls-parchment); }
.ls-reassure__item .ls-icon { width: 20px; height: 20px; margin-block-start: .1rem; color: var(--ls-gold); fill: none; stroke: currentColor; }
.ls-reassure__item strong { display: block; color: var(--ls-gold); font-weight: 600; }

/* Accordéons natifs <details> */
.ls-accordions { margin-block: 1rem 2rem; border-block-end: 1px solid var(--ls-gold-a24); interpolate-size: allow-keywords; }
.ls-accordion { border-block-start: 1px solid var(--ls-gold-a24); }
.ls-accordion__summary {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	min-height: 52px;
	padding-block: .5rem;
	cursor: pointer;
	list-style: none;
	font: italic 600 1.25rem/1.2 var(--ls-font-serif);
	color: var(--ls-gold);
}
.ls-accordion__summary::-webkit-details-marker { display: none; }
.ls-accordion__summary .ls-icon { width: 20px; height: 20px; flex: none; fill: none; stroke: currentColor; transition: rotate var(--ls-dur-m) var(--ls-ease-io); }
.ls-accordion[open] > .ls-accordion__summary .ls-icon { rotate: 180deg; }
.ls-accordion::details-content { block-size: 0; overflow: clip; transition: block-size var(--ls-dur-m) var(--ls-ease-io), content-visibility var(--ls-dur-m) allow-discrete; }
.ls-accordion[open]::details-content { block-size: auto; }
.ls-accordion__body { padding-block: 0 1.25rem; color: var(--ls-parchment); font-size: .9375rem; }
.ls-accordion__body > :first-child { margin-block-start: 0; }
.ls-accordion__body table { width: 100%; border-collapse: collapse; font-size: .875rem; }
.ls-accordion__body :is(th, td) { padding: .5rem 0; border-block-end: 1px solid var(--ls-gold-a12); text-align: start; background: none; }
.ls-accordion__body th { color: var(--ls-gold-a75); font-weight: 600; padding-inline-end: 1rem; }
.ls-accordion__body a { color: var(--ls-gold); text-decoration: underline 1px var(--ls-gold-a40); text-underline-offset: .22em; }

/* Meta (SKU, catégories) discrète */
.ls-shop .product_meta { font-size: .8125rem; color: var(--ls-gold-a75); }

/* Barre « Add to basket » collante (mobile), pilotée par ls.js */
.ls-atc-bar { display: none; }
@media (max-width: 999px) {
	.ls-atc-bar {
		position: fixed;
		inset-inline: 0;
		inset-block-end: 0;
		z-index: 90;
		display: flex;
		align-items: center;
		gap: 1rem;
		padding: .75rem max(16px, env(safe-area-inset-left)) calc(.75rem + env(safe-area-inset-bottom));
		background: rgb(27 33 17 / .95);
		box-shadow: 0 -1px 0 var(--ls-gold-a12), 0 -12px 30px rgb(10 12 5 / .45);
		transform: translateY(110%);
		visibility: hidden;
		transition: transform var(--ls-dur-m) var(--ls-ease-out), visibility 0s linear var(--ls-dur-m);
	}
	.ls-atc-bar[hidden] { display: none; }
	.ls-atc-bar.is-visible { transform: none; visibility: visible; transition-delay: 0s; }
	.ls-atc-bar__info { display: grid; min-width: 0; flex: 1; }
	.ls-atc-bar__title { overflow: hidden; white-space: nowrap; text-overflow: ellipsis; font: italic 600 1.05rem/1.2 var(--ls-font-serif); color: var(--ls-gold); }
	.ls-atc-bar__price .price, .ls-atc-bar__price { font: 600 1rem/1.2 var(--ls-font-serif); color: var(--ls-gold-a75); }
	.ls-shop .ls-atc-bar__btn { flex: none; min-height: 48px; padding-inline: 1.4em; }
	body.ls-has-atc-bar { padding-block-end: 80px; }
}

/* Produits liés */
.ls-shop .related > h2,
.ls-shop .upsells > h2,
.ls-shop .cross-sells > h2 { font: italic 500 clamp(2rem, 1.5rem + 2vw, 3.25rem)/1 var(--ls-font-serif); color: var(--ls-gold); margin-block-end: 1.5rem; }

/* =========================================================================
 * 6. Notices : bordereau papier crème + washi tape
 * ====================================================================== */
.ls-shop :is(.woocommerce-message, .woocommerce-info, .woocommerce-error, .wc-block-components-notice-banner),
.blocksy-woo-messages-default :is(.woocommerce-message, .woocommerce-info, .woocommerce-error) {
	position: relative;
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: .5rem 1rem;
	margin: 1.75rem 0 1.5rem;
	padding: 1.1rem 1.25rem 1rem 1.5rem;
	border: 0;
	border-inline-start: 4px solid var(--ls-olive-ink);
	border-radius: var(--ls-r-photo);
	background: var(--ls-cream);
	color: var(--lsw-ink);
	box-shadow: var(--ls-shadow-paper);
	font-size: .9375rem;
	list-style: none;
	--theme-text-color: var(--lsw-ink);
	--theme-link-initial-color: var(--ls-olive-ink);
	--theme-link-hover-color: var(--lsw-ink);
}
.ls-shop :is(.woocommerce-message, .woocommerce-info, .woocommerce-error, .wc-block-components-notice-banner)::before,
.blocksy-woo-messages-default :is(.woocommerce-message, .woocommerce-info, .woocommerce-error)::before {
	content: "";
	position: absolute;
	inset-block-start: -12px;
	inset-inline-start: 1.25rem;
	width: 84px;
	height: 22px;
	margin: 0;
	background: url(../svg/washi-tape.svg) center / 100% 100% no-repeat;
	rotate: -3deg;
	pointer-events: none;
}
.ls-shop .woocommerce-error,
.ls-shop .wc-block-components-notice-banner.is-error { border-inline-start-color: var(--ls-error); }
.ls-shop .woocommerce-error li { margin: 0; }
.ls-shop :is(.woocommerce-message, .woocommerce-info, .woocommerce-error) a:not(.button) { color: var(--ls-olive-ink); text-decoration: underline; text-underline-offset: .2em; }
.ls-shop :is(.woocommerce-message, .woocommerce-info, .woocommerce-error) .button,
.ls-shop .wc-block-components-notice-banner .wc-forward {
	--ls-btn-bg: transparent;
	--ls-btn-bg-hover: rgb(92 97 24 / .08);
	--ls-btn-fg: var(--ls-olive-ink);
	--ls-btn-bd: var(--ls-olive-ink);
	--ls-btn-bd-hover: var(--lsw-ink);
	--ls-btn-notch: 0px;
	--ls-btn-glow: none;
	order: 2;
	margin-inline-start: auto;
	min-height: 44px;
	padding: .7em 1.1em;
	font-size: .875rem;
}
.ls-shop .wc-block-components-notice-banner > svg { fill: currentColor; flex: none; }
.ls-shop .wc-block-components-notice-banner.is-error > svg { fill: var(--ls-error); }
.ls-shop .wc-block-components-notice-banner__content { color: var(--lsw-ink); flex: 1; }
.ls-added { font-weight: 600; }
.ls-shop :is(.woocommerce-message, .woocommerce-info, .woocommerce-error) :focus-visible { outline-color: var(--ls-forest); }

/* =========================================================================
 * 7. Panier / paiement / compte : surfaces papier crème lisibles
 * ====================================================================== */
.ls-tunnel {
	--ls-paper-pad: clamp(1.25rem, 3vw, 2.25rem);
}
.ls-tunnel :is(
	.woocommerce-cart-form, .cart-collaterals .cart_totals,
	form.woocommerce-checkout #customer_details, form.woocommerce-checkout .ct-order-review, form.woocommerce-checkout #order_review,
	.woocommerce-form-login, .woocommerce-form-register, .woocommerce-ResetPassword, .woocommerce-MyAccount-content, .woocommerce-MyAccount-navigation,
	.woocommerce-order-overview, .woocommerce-order-details, .woocommerce-customer-details, .wc-block-cart__main, .wc-block-cart__sidebar, .wc-block-checkout__main, .wc-block-checkout__sidebar,
	.wc-block-components-sidebar, .wp-block-woocommerce-empty-cart-block
),
.ls-paper-surface {
	--theme-text-color: var(--lsw-ink);
	--theme-headings-color: var(--ls-olive-ink);
	--theme-heading-color: var(--ls-olive-ink);
	--theme-link-initial-color: var(--ls-olive-ink);
	--theme-link-hover-color: var(--lsw-ink);
	--theme-border-color: var(--lsw-hair);
	--theme-form-field-background-initial-color: var(--lsw-field-bg);
	--theme-form-field-background-focus-color: var(--lsw-field-bg);
	--theme-form-field-border-initial-color: var(--lsw-field-border);
	--theme-form-field-border-focus-color: var(--ls-olive-ink);
	--theme-form-field-border-width: 1.5px;
	--theme-form-field-border-radius: var(--ls-r-field);
	--theme-form-text-initial-color: var(--lsw-ink);
	--theme-form-text-focus-color: var(--lsw-ink);
	--theme-form-selection-field-initial-color: var(--lsw-field-border);
	--theme-form-selection-field-active-color: var(--ls-olive-ink);
	--ls-btn-bg: var(--ls-forest);
	--ls-btn-bg-hover: var(--ls-moss);
	--ls-btn-fg: var(--ls-gold);
	--ls-btn-glow: drop-shadow(0 6px 14px rgb(36 44 23 / .25));
	--ls-focus: var(--ls-forest);
	--ls-c-head: var(--ls-olive-ink);
	padding: var(--ls-paper-pad);
	border-radius: var(--ls-r-photo);
	background: var(--ls-cream);
	color: var(--lsw-ink);
	box-shadow: var(--ls-shadow-paper);
}
.ls-tunnel :is(.woocommerce-MyAccount-content, .woocommerce-MyAccount-navigation, .woocommerce-order-details, .woocommerce-customer-details, .cart_totals, #order_review, #customer_details, .woocommerce-form-login, .woocommerce-form-register, .wc-block-checkout__main, .wc-block-components-sidebar, .wc-block-cart__main) :is(h2, h3, h4, legend, .wc-block-components-title, .wc-block-components-checkout-step__title) {
	font-family: var(--ls-font-serif);
	font-style: italic;
	font-weight: 600;
	color: var(--ls-olive-ink);
	letter-spacing: 0;
	text-transform: none;
}
.ls-tunnel :is(.woocommerce-cart-form, .cart_totals, #order_review, #customer_details, .woocommerce-MyAccount-content, .wc-block-checkout__main, .wc-block-components-sidebar, .wc-block-cart__main) :is(p, td, th, label, span, li, dt, dd, .wc-block-components-totals-item__label) { color: inherit; }
.ls-tunnel .woocommerce-cart-form a:not(.button),
.ls-tunnel :is(.cart_totals, #order_review, #customer_details, .woocommerce-MyAccount-content, .wc-block-checkout__main, .wc-block-components-sidebar, .wc-block-cart__main, .woocommerce-form-login) a:not(.button, .wc-block-components-button) { color: var(--ls-olive-ink); text-decoration: underline 1px; text-underline-offset: .2em; }
.ls-tunnel .price,
.ls-tunnel :is(.woocommerce-cart-form, .cart_totals, #order_review, .wc-block-components-sidebar, .wc-block-cart__main) .woocommerce-Price-amount { color: var(--lsw-ink); font-family: var(--ls-font-serif); font-weight: 600; font-variant-numeric: lining-nums tabular-nums; }
.ls-tunnel :is(.cart_totals .order-total, #order_review .order-total, .wc-block-components-totals-footer-item) :is(.woocommerce-Price-amount, .wc-block-components-totals-item__value) { font-size: 1.375rem; }

/* Champs : blanc cassé, encre, bordure 1,5 px, focus olive 2 px + anneau forest */
.ls-tunnel :is(.woocommerce-cart-form, #customer_details, #order_review, .woocommerce-form-login, .woocommerce-form-register, .woocommerce-ResetPassword, .woocommerce-MyAccount-content, .cart_totals) :is(input.input-text, input[type=text], input[type=email], input[type=tel], input[type=password], input[type=number], select, textarea),
.ls-tunnel .select2-container .select2-selection,
.ls-tunnel :is(.wc-block-components-text-input input, .wc-block-components-textarea, .wc-block-components-combobox .components-combobox-control__input, .wc-block-components-select-input select, .wc-blocks-components-select__select) {
	min-height: 48px;
	border: 1.5px solid var(--lsw-field-border);
	border-radius: var(--ls-r-field);
	background-color: var(--lsw-field-bg);
	color: var(--lsw-ink);
	font-family: var(--ls-font-body);
}
.ls-tunnel :is(.woocommerce-cart-form, #customer_details, #order_review, .woocommerce-form-login, .woocommerce-form-register, .woocommerce-ResetPassword, .woocommerce-MyAccount-content, .cart_totals) :is(input, select, textarea):focus,
.ls-tunnel :is(.wc-block-components-text-input input, .wc-block-components-textarea, .wc-block-components-combobox .components-combobox-control__input, .wc-blocks-components-select__select):focus {
	border-color: var(--ls-olive-ink);
	border-width: 2px;
	outline: 3px solid var(--ls-forest);
	outline-offset: 2px;
	box-shadow: none;
}
.ls-tunnel ::placeholder { color: #7d6f5c; opacity: 1; } /* 4,6:1 sur #fffaf0 */
.ls-tunnel :is(.form-row label, .wc-block-components-text-input label, .wc-block-components-checkbox__label, .wc-block-components-radio-control__label) { color: var(--lsw-ink); font-weight: 600; }
.ls-tunnel .wc-block-components-text-input.is-active label,
.ls-tunnel .wc-block-components-text-input label { color: #6b5c47; font-weight: 400; } /* libellé flottant des blocs : 5,5:1 */
.ls-tunnel .required { color: var(--ls-error); text-decoration: none; }
.ls-tunnel :is(.woocommerce-invalid input, .has-error input, [aria-invalid="true"]) { border-color: var(--ls-error) !important; }
.ls-tunnel :is(.checkout-inline-error-message, .wc-block-components-validation-error, .woocommerce-error) { color: var(--ls-error); }
.ls-tunnel .wc-block-components-validation-error > p { display: flex; gap: .35rem; align-items: center; font-size: .8125rem; }
.ls-tunnel :is(.wc-block-components-checkbox__input, .wc-block-components-radio-control__input, input[type=checkbox], input[type=radio]) { border-color: var(--lsw-field-border); accent-color: var(--ls-olive-ink); }
.ls-tunnel .wc-block-components-checkbox__mark { fill: var(--ls-olive-ink); }
.ls-tunnel .wc-block-components-radio-control__input:checked::before { background: var(--ls-olive-ink); }

/* Focus sur papier : anneau forest (le rose sur crème = 1,6:1, interdit). */
.ls-tunnel :is(.woocommerce-cart-form, .cart_totals, #customer_details, #order_review, .woocommerce-form-login, .woocommerce-form-register, .woocommerce-ResetPassword, .woocommerce-MyAccount-content, .woocommerce-MyAccount-navigation, .woocommerce-order-details, .woocommerce-customer-details, .woocommerce-order-overview, .wc-block-cart__main, .wc-block-cart__sidebar, .wc-block-checkout__main, .wc-block-components-sidebar, .wc-block-checkout__sidebar) :focus-visible,
.ls-paper-surface :focus-visible,
.woocommerce-checkout :focus-visible {
	outline: 3px solid var(--ls-forest);
	outline-offset: 3px;
	box-shadow: 0 0 0 6px var(--ls-cream);
}

/* Tableaux du panier classique */
.ls-tunnel .woocommerce-cart-form table,
.ls-tunnel .shop_table { border: 0; background: none; border-collapse: collapse; width: 100%; }
.ls-tunnel .shop_table :is(th, td) { text-align: start; padding-block: .9rem; border-block-end: 1px solid var(--lsw-hair); background: none; color: var(--lsw-ink); }
.ls-tunnel .shop_table thead th { font: 700 var(--ls-fs-eyebrow)/1.3 var(--ls-font-body); letter-spacing: .16em; text-transform: uppercase; color: var(--ls-olive-ink); }
.ls-tunnel .shop_table .product-name a { font: italic 600 1.125rem/1.2 var(--ls-font-serif); text-decoration: none; }
.ls-tunnel .shop_table .product-thumbnail img,
.ls-tunnel .wc-block-cart-item__image img,
.ls-tunnel .wc-block-components-order-summary-item__image img { padding: 4px; background: #fffaf0; box-shadow: var(--ls-shadow-flat); border-radius: var(--ls-r-photo); }
.ls-tunnel .shop_table .remove,
.ls-tunnel .wc-block-cart-item__remove-link { color: var(--ls-error) !important; min-width: 44px; min-height: 44px; display: inline-grid; place-items: center; }
.ls-tunnel .quantity[data-type] {
	--quantity-initial-color: var(--lsw-field-bg);
	--quantity-hover-color: #f3e8cc;
	--quantity-arrows-initial-color: var(--lsw-ink);
	--quantity-arrows-hover-color: var(--lsw-ink);
	--theme-form-text-initial-color: var(--lsw-ink);
	--theme-form-field-border-initial-color: var(--lsw-field-border);
}
.ls-tunnel .actions .coupon { display: flex; flex-wrap: wrap; gap: .5rem; }
.ls-tunnel .woocommerce-cart-form .actions .button,
.ls-tunnel :is(#customer_details, #order_review, .woocommerce-MyAccount-content, .wc-block-cart__main, .wc-block-checkout__main) .button:not(#place_order, .checkout-button, .woocommerce-Button),
.ls-tunnel .wc-block-components-button.outlined {
	--ls-btn-bg: transparent;
	--ls-btn-bg-hover: rgb(92 97 24 / .08);
	--ls-btn-fg: var(--ls-olive-ink);
	--ls-btn-bd: var(--ls-olive-ink);
	--ls-btn-bd-hover: var(--lsw-ink);
	--ls-btn-notch: 0px;
	--ls-btn-glow: none;
	min-height: 44px;
}

/* Blocs Cart/Checkout : la mise en page des blocs reste, seules les surfaces changent. */
.ls-tunnel :is(.wc-block-cart, .wc-block-checkout) { gap: clamp(1rem, 3vw, 2rem); }
.ls-tunnel .wc-block-components-sidebar-layout { gap: clamp(1rem, 3vw, 2rem); }
.ls-tunnel .wc-block-components-sidebar-layout .wc-block-components-main { padding-inline-end: 0; }
.ls-tunnel :is(.wc-block-components-totals-wrapper, .wc-block-components-order-summary, .wc-block-components-panel, .wc-block-components-checkout-step) { border-color: var(--lsw-hair); }
.ls-tunnel .wc-block-components-radio-control-accordion-option,
.ls-tunnel .wc-block-components-radio-control__option { border-color: var(--lsw-hair) !important; box-shadow: none; }
.ls-tunnel .wc-block-components-radio-control--highlight-checked .wc-block-components-radio-control-accordion-option--checked-option-highlighted,
.ls-tunnel .wc-block-components-radio-control--highlight-checked .wc-block-components-radio-control__option--checked-option-highlighted { box-shadow: inset 0 0 0 2px var(--ls-olive-ink); }
.ls-tunnel .wc-block-components-address-card { border-color: var(--lsw-hair); background: var(--lsw-field-bg); }
.ls-tunnel .wc-block-components-checkout-step__description,
.ls-tunnel .wc-block-components-product-metadata { color: #6b5c47; }
.ls-tunnel .wc-block-components-product-name { font: italic 600 1.125rem/1.2 var(--ls-font-serif); color: var(--ls-olive-ink); text-decoration: none; }
.ls-tunnel .wc-block-components-quantity-selector { border-color: var(--lsw-field-border); background: var(--lsw-field-bg); }
.ls-tunnel .wc-block-components-quantity-selector__button { min-width: 44px; color: var(--lsw-ink); }
.ls-tunnel .wc-block-components-quantity-selector__input { color: var(--lsw-ink); }
.ls-tunnel .wc-block-components-button:not(.is-link, .outlined) { min-height: 52px; }

/* Panier vide (classique et bloc) */
.ls-tunnel .cart-empty,
.ls-tunnel .wc-block-checkout-empty,
.ls-tunnel .wp-block-woocommerce-empty-cart-block .wc-block-cart__empty-cart__title {
	font: italic 500 clamp(1.75rem, 1.4rem + 1.5vw, 2.5rem)/1.1 var(--ls-font-serif);
	color: var(--ls-gold);
	text-align: center;
	border: 0;
	background: none;
	box-shadow: none;
}
.ls-tunnel .wp-block-woocommerce-empty-cart-block .wc-block-cart__empty-cart__title { color: var(--ls-olive-ink); }
.ls-tunnel .cart-empty::before { display: none; }
.ls-tunnel .return-to-shop { text-align: center; }

/* Paiement classique : mise en page */
@media (min-width: 1000px) {
	.ls-tunnel form.woocommerce-checkout .ct-woocommerce-checkout,
	.ls-tunnel .ct-woocommerce-cart-form { gap: clamp(1.5rem, 3vw, 2.5rem); align-items: start; }
}
.ls-tunnel #payment { background: none; border-radius: 0; }
.ls-tunnel #payment .payment_methods { border-color: var(--lsw-hair); padding-inline: 0; }
.ls-tunnel #payment .payment_box { background: #f3e8cc; color: var(--lsw-ink); border-radius: var(--ls-r-field); }
.ls-tunnel #payment .payment_box::before { border-bottom-color: #f3e8cc; }
.ls-tunnel .woocommerce-terms-and-conditions-wrapper { font-size: .875rem; }
.ls-tunnel .woocommerce-privacy-policy-text { color: #6b5c47; font-size: .8125rem; }

/* Compte */
.ls-tunnel .woocommerce-MyAccount-navigation ul { margin: 0; padding: 0; list-style: none; }
.ls-tunnel .woocommerce-MyAccount-navigation a { display: flex; align-items: center; min-height: 44px; padding-inline: .75rem; border-radius: var(--ls-r-field); color: var(--lsw-ink); text-decoration: none; font-weight: 600; }
.ls-tunnel .woocommerce-MyAccount-navigation .is-active a { background: rgb(92 97 24 / .1); color: var(--ls-olive-ink); }
.ls-tunnel .ct-woo-unauthorized > h2 { color: var(--ls-gold); font: italic 500 clamp(2rem, 1.6rem + 1.6vw, 3rem)/1 var(--ls-font-serif); }
.ls-tunnel :is(.woocommerce-LostPassword, .lost_password) a { color: var(--ls-olive-ink); }
.ls-tunnel .woocommerce-form-login .button { width: 100%; }

/* Merci */
.ls-tunnel .woocommerce-thankyou-order-received {
	font-size: 1.0625rem;
	line-height: 1.6;
	color: var(--ls-parchment);
}
.ls-thanks__title { display: block; margin-block-end: .5rem; font: 400 clamp(2.75rem, 2rem + 3.5vw, 5rem)/1 var(--ls-font-script); color: var(--ls-gold); }

/* Pas de décor animé dans le tunnel (sérieux = confiance). */
.ls-tunnel:not(:has(.ls-coming-soon)) :is(.ls-firefly, .ls-grain, .ls-float, .ls-parallax, .ls-place) { animation: none !important; }

/* =========================================================================
 * 8. Page « coming soon » habillée (store only)
 * ====================================================================== */
.ls-coming-soon {
	--ls-banner-h: 88svh;
	position: relative;
	display: grid;
	place-items: center;
	min-height: var(--ls-banner-h);
	padding: clamp(6rem, 12vw, 9rem) var(--ls-gutter, clamp(16px, 4vw, 48px)) clamp(3rem, 8vw, 6rem);
	overflow: clip;
	background-color: var(--ls-forest-deep);
	text-align: center;
}
.ls-coming-soon__inner { position: relative; z-index: 2; max-width: 44rem; }
.ls-coming-soon .ls-eyebrow { margin: 0 0 .75rem; color: var(--ls-gold-a75); }
.ls-coming-soon__title { margin: 0; font: 400 var(--ls-fs-h1)/.9 var(--ls-font-script); color: var(--ls-gold); text-wrap: balance; }
.ls-coming-soon .ls-lead { margin: 1rem auto 0; color: var(--ls-parchment); }
.ls-coming-soon__letter {
	display: grid;
	gap: 1.5rem;
	align-items: center;
	margin-block-start: clamp(2rem, 5vw, 3.5rem);
	padding: clamp(1.25rem, 3vw, 2rem);
	background: var(--ls-cream);
	color: var(--lsw-ink);
	border-radius: var(--ls-r-photo);
	box-shadow: var(--ls-shadow-lift);
	rotate: -.6deg;
	text-align: start;
	--theme-text-color: var(--lsw-ink);
	--theme-link-initial-color: var(--ls-olive-ink);
	--theme-form-field-background-initial-color: #fffaf0;
	--theme-form-field-border-initial-color: #b9ae92;
	--theme-form-field-border-focus-color: var(--ls-olive-ink);
	--theme-form-text-initial-color: var(--lsw-ink);
	--theme-form-text-focus-color: var(--lsw-ink);
}
@media (min-width: 640px) { .ls-coming-soon__letter { grid-template-columns: minmax(140px, 220px) 1fr; } }
.ls-coming-soon__envelope svg { display: block; width: 100%; height: auto; overflow: visible; perspective: 600px; }
.ls-coming-soon__letter :is(p, label, legend) { color: var(--lsw-ink); }
.ls-coming-soon .ls-coming-soon__note { margin: 0 0 .75rem; font: italic 600 1.375rem/1.2 var(--ls-font-serif); color: var(--ls-olive-ink); }
.ls-coming-soon__letter :focus-visible { outline: 3px solid var(--ls-forest); outline-offset: 3px; }
.ls-coming-soon__letter label { color: var(--lsw-ink); }
.ls-coming-soon__letter input:not([type=checkbox], [type=radio]) { min-height: 48px; background: #fffaf0; color: var(--lsw-ink); border: 1.5px solid #b9ae92; border-radius: var(--ls-r-field); }
.ls-coming-soon__letter { --ls-btn-bg: var(--ls-forest); --ls-btn-bg-hover: var(--ls-moss); --ls-btn-fg: var(--ls-gold); --ls-focus: var(--ls-forest); --ls-c-head: var(--ls-olive-ink); }
/* Enveloppe : rabat qui s'ouvre au survol / focus (SVG inliné, classes .ls-env-*). */
.ls-coming-soon .ls-env-flap { transform-box: fill-box; transform-origin: 50% 0; transition: transform .4s var(--ls-ease-io) .15s; }
.ls-coming-soon .ls-env-letter { transform-box: fill-box; transition: transform .4s var(--ls-ease-out); }
.ls-coming-soon .ls-env-seal { transform-box: fill-box; transform-origin: center; }
.ls-coming-soon .ls-envelope:is(:hover, :focus-within) .ls-env-flap,
.ls-coming-soon .ls-newsletter.is-open ~ * .ls-env-flap { transform: rotateX(180deg); transition-delay: 0s; }
.ls-coming-soon .ls-envelope:is(:hover, :focus-within) .ls-env-letter { transform: translateY(-40%); transition-delay: .2s; }
.ls-coming-soon .is-sent .ls-env-seal,
.ls-coming-soon .ls-envelope:has(.is-sent) .ls-env-seal { animation: lsw-seal .6s var(--ls-spring) both; }
@keyframes lsw-seal { from { transform: scale(1.6); opacity: 0; } }

/* =========================================================================
 * 9. Mouvement réduit : pas de déplacement, retours de couleur/opacité conservés
 * ====================================================================== */
@media (prefers-reduced-motion: reduce) {
	.ls-shop [data-products] .product,
	.ls-shop [data-products] figure,
	.ls-shop [data-products] figure img,
	.ls-shop .flexy-pills .ct-media-container,
	.ls-accordion__summary .ls-icon,
	.ls-coming-soon :is(.ls-env-flap, .ls-env-letter) { transition: opacity 120ms ease, color 120ms ease, background-color 120ms ease; transform: none; scale: none; translate: none; }
	.ls-accordion::details-content { transition: none; }
	.ls-atc-bar { transition: visibility 0s; }
	.ls-coming-soon .ls-env-seal { animation: none !important; }
}
