/*
Theme Name:  Lilly des Bulles
Description: Thème enfant de Blocksy pour la boutique Lilly des Bulles.
Template:    blocksy
Version:     1.15.0
Text Domain: lillydesbulles
*/

/*
 * Les couleurs, typographies et mises en page se règlent d'abord dans
 * Apparence → Personnaliser (Blocksy). Ce fichier sert aux retouches
 * que le personnalisateur ne permet pas.
 */

/* ---------- Accueil : bandeau en deux calques (inc/accueil.php) ---------- */

:root {
	--ldb-bleu: #1c6e8c;
	--ldb-or: #a5803f;        /* grands titres */
	--ldb-or-fonce: #8a6a2f;  /* petits textes : contraste suffisant */
	--ldb-creme: #faf8f3;
}

body {
	overflow-x: clip; /* le bandeau occupe toute la largeur de la fenêtre */
}

.ldb-avec-bandeau .hero-section {
	display: none;
}

/* Le bandeau touche l'en-tête. */
.ldb-avec-bandeau main [data-vertical-spacing*="top"] {
	padding-top: 0;
}

.ldb-bandeau {
	position: relative;
	width: 100vw;
	margin-inline: calc(50% - 50vw);
	margin-block: 0 3rem;
	min-height: clamp(320px, 55vh, 620px);
	display: grid;
	place-items: center;
	padding: 3rem 1rem;
	background: var(--ldb-creme);
	text-align: center;
	isolation: isolate;
}

.ldb-bandeau__fond {
	position: absolute;
	inset: 0;
	z-index: -1;
	width: 100%;
	height: 100%;
	max-width: none;
	object-fit: cover;
}

/* Voile clair pour que le logo reste lisible sur la photo. */
.ldb-bandeau::before {
	content: "";
	position: absolute;
	inset: 0;
	background: radial-gradient(ellipse at center, rgb(250 248 243 / 0.85) 0%, rgb(250 248 243 / 0.55) 45%, rgb(250 248 243 / 0) 75%);
}

.ldb-bandeau__contenu {
	position: relative;
	max-width: 640px;
}

.ldb-bandeau__logo {
	margin: 0;
	font-size: clamp(2rem, 6vw, 3.5rem);
	color: var(--ldb-or);
}

.ldb-bandeau__logo img {
	width: min(560px, 85vw);
	height: auto;
}

/* Titre principal de l'accueil (H1), sous le logo. */
.ldb-bandeau__titre {
	margin: 0.75rem 0 0;
	font-size: clamp(1.15rem, 3vw, 1.6rem);
	font-weight: 600;
	line-height: 1.3;
	color: var(--theme-palette-color-4, #1f3640);
}

.ldb-bandeau__texte {
	margin: 0.5rem 0 0;
	font-size: 1.15rem;
	letter-spacing: 0.04em;
	color: var(--ldb-bleu);
}

.ldb-bandeau__offre {
	display: inline-block;
	margin: 1.5rem 0 0;
	padding: 0.4rem 1rem;
	border-radius: 999px;
	background: var(--ldb-bleu);
	color: #fff;
	font-size: 0.95rem;
}

.ldb-bandeau__boutons {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	align-items: center;
	gap: 0.75rem;
	margin: 1.25rem 0 0;
}

.ldb-bandeau__lien {
	display: inline-block;
	padding: 0.4rem 1rem;
	border: 1px solid var(--ldb-bleu);
	border-radius: 999px;
	background: rgb(255 255 255 / 0.9);
	color: var(--ldb-bleu);
	font-size: 0.95rem;
	font-weight: 600;
	text-decoration: none;
}

.ldb-bandeau__lien:hover,
.ldb-bandeau__lien:focus-visible {
	background: var(--ldb-bleu);
	color: #fff;
}

/* Bouton principal (bandeau, encarts de l'accueil). */
.ldb-bouton {
	display: inline-block;
	padding: 0.7rem 1.4rem;
	border-radius: 6px;
	background: var(--ldb-bleu);
	color: #fff;
	font-weight: 600;
	text-decoration: none;
}

.ldb-bouton:hover,
.ldb-bouton:focus-visible {
	background: var(--theme-palette-color-4, #1f3640);
	color: #fff;
}

.tax-product_cat .woocommerce-breadcrumb {
	margin-bottom: 0;
	font-size: 0.9rem;
}

/* Pages catégories et Boutique : en-tête resserré pour que les produits
   apparaissent plus haut. */
body.tax-product_cat .hero-section[data-type="type-2"],
body.post-type-archive-product .hero-section[data-type="type-2"] {
	--container-padding: 1.5rem 0;
	--min-height: 0; /* Blocksy impose 250 px par défaut */
}

body.post-type-archive-product .hero-section .page-title {
	margin-bottom: 0.5rem;
}

/* Catégories : titre seul dans l'en-tête (description plus bas). */
body.tax-product_cat .hero-section .page-title {
	margin-bottom: 0;
}

body.tax-product_cat .hero-section .page-description,
body.post-type-archive-product .hero-section .page-description {
	margin-top: 0;
}

body.tax-product_cat .ct-container[data-vertical-spacing*="top"],
body.post-type-archive-product .ct-container[data-vertical-spacing*="top"] {
	padding-top: 1.25rem;
}

/* Fiches produits : fil d'Ariane près de l'en-tête, produit juste
   dessous (Blocksy : 60 px de marge intérieure puis 40 px sous le fil
   d'Ariane). */
body.single-product main > [data-vertical-spacing*="top"] {
	padding-top: 1.25rem;
}

body.single-product .hero-section[data-type="type-1"] {
	margin-bottom: 1.25rem;
}

@media (max-width: 640px) {
	body.single-product main > [data-vertical-spacing*="top"] {
		padding-top: 0.75rem;
	}

	body.single-product .hero-section[data-type="type-1"] {
		margin-bottom: 0.75rem;
	}
}

/* Les cartes suivent directement le fil d'Ariane. */
.tax-product_cat .ldb-produits {
	margin-top: 1rem;
}

/* Textes avant les produits dans le code source (gabarit
   taxonomy-product_cat.php), replacés ici : description au-dessus des
   produits sur ordinateur, sous les produits sur mobile ; texte de bas de
   page toujours en dessous. */
.ldb-categorie {
	display: flex;
	flex-direction: column;
}

.ldb-categorie-intro {
	max-width: 46rem;
	margin: 1rem auto 0;
	text-align: center;
	font-size: 1.05rem;
}

.ldb-categorie-intro > :last-child {
	margin-bottom: 0;
}

.ldb-categorie-texte {
	order: 2;
}

@media (max-width: 640px) {
	/* En-tête et fil d'Ariane resserrés : les produits d'abord. */
	body.tax-product_cat .hero-section[data-type="type-2"] {
		--container-padding: 0.75rem 0;
	}

	body.tax-product_cat .hero-section .page-title {
		--theme-font-size: 26px;
	}

	body.tax-product_cat .ct-container[data-vertical-spacing*="top"] {
		padding-top: 0.75rem;
	}

	.ldb-categorie-intro {
		order: 1;
		margin-top: 2.5rem;
		padding-top: 2rem;
		border-top: 1px solid #e6dfcf;
	}
}

/* ---------- Accueil : textes ---------- */

.ldb-intro {
	max-width: 46rem;
	margin-inline: auto;
	text-align: center;
	font-size: 1.1rem;
}

.ldb-infos {
	max-width: 46rem;
	margin: 4rem auto 2rem;
	padding-top: 3rem;
	border-top: 1px solid #e6dfcf;
	text-align: center;
}

.ldb-infos h2 {
	margin-top: 2.5rem;
	color: var(--ldb-or);
}

.ldb-infos h2:first-child {
	margin-top: 0;
}

.ldb-infos h3 {
	margin-top: 2rem;
	font-size: 1.2rem;
	color: var(--ldb-bleu);
}

.ldb-portrait {
	margin: 1.5rem auto;
}

.ldb-portrait img {
	display: block;
	width: 144px;
	height: 144px;
	margin: 0 auto 0.5rem;
	border-radius: 50%;
	object-fit: cover;
	box-shadow: 0 0 0 4px #fff, 0 0 0 5px #e6dfcf;
}

.ldb-plan {
	margin: 1.5rem 0;
}

.ldb-plan__carte {
	width: 100%;
	height: 320px;
	overflow: hidden;
	border-radius: 8px;
	background: var(--theme-palette-color-6, #f3efe6);
}

.ldb-plan__carte iframe {
	display: block;
	border: 0;
}

.ldb-plan__bouton {
	display: inline-block;
	margin-top: 1rem;
	padding: 0.6rem 1.5rem;
	border-radius: 4px;
	background: var(--theme-palette-color-1);
	color: #fff;
	text-decoration: none;
}

.ldb-plan__bouton:hover,
.ldb-plan__bouton:focus-visible {
	background: var(--theme-palette-color-2);
	color: #fff;
}

.ldb-signature {
	font-style: italic;
	color: var(--ldb-or-fonce);
}

/* ---------- Accueil : catégories, vedettes, encart (inc/accueil.php) ---------- */

.ldb-categories ul {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 200px), 1fr));
	gap: 1.25rem;
	margin: 3rem 0 0;
	padding: 0;
	list-style: none;
}

.ldb-categories a {
	display: flex;
	flex-direction: column;
	height: 100%;
	border-radius: 10px;
	overflow: hidden;
	background: #fff;
	box-shadow: 0 1px 3px rgb(0 0 0 / 0.06);
	color: inherit;
	text-align: center;
	text-decoration: none;
	transition: box-shadow 0.2s, transform 0.2s;
}

.ldb-categories a:hover,
.ldb-categories a:focus-visible {
	box-shadow: 0 6px 18px rgb(0 0 0 / 0.1);
	transform: translateY(-2px);
}

.ldb-categories__image {
	display: block;
	aspect-ratio: 4 / 3;
	overflow: hidden;
	background: var(--theme-palette-color-6, #f3efe6);
}

.ldb-categories__image img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.ldb-categories__nom {
	margin: 0.9rem 1rem 0.25rem;
	font-size: 1.15rem;
	font-weight: 700;
	color: var(--ldb-or);
}

.ldb-categories__texte {
	margin: 0 1rem 1.1rem;
	font-size: 0.9rem;
}

.ldb-vedettes {
	margin-top: 4rem;
}

.ldb-vedettes__liste {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 1.25rem;
	margin: 0;
	padding: 0;
	list-style: none;
}

.ldb-vedette {
	display: flex;
	flex-direction: column;
	height: 100%;
	padding-bottom: 1.1rem;
	border-radius: 10px;
	overflow: hidden;
	background: #fff;
	box-shadow: 0 1px 3px rgb(0 0 0 / 0.06);
	text-align: center;
}

.ldb-vedette__image {
	display: block;
	aspect-ratio: 1;
	overflow: hidden;
	background: var(--theme-palette-color-6, #f3efe6);
}

.ldb-vedette__image img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.ldb-vedette__nom {
	margin: 0.9rem 1rem 0.2rem;
	font-size: 1.05rem;
}

.ldb-vedette__nom a {
	color: inherit;
	text-decoration: none;
}

.ldb-vedette__prix {
	margin: 0 1rem 0.75rem;
	color: var(--ldb-bleu);
	font-weight: 700;
}

.ldb-vedette__format {
	font-size: 0.85em;
	font-weight: 400;
	color: var(--theme-palette-color-3, #3d4a52);
}

.ldb-vedette__achat {
	margin: auto 1rem 0;
}

.ldb-vedette__achat .button,
.ldb-vedette > .button {
	width: calc(100% - 2rem);
	margin-inline: auto;
}

.ldb-vedette__achat .button {
	width: 100%;
}

.ldb-vedette__formats {
	margin-top: 0.5rem;
	font-size: 0.85rem;
}

@media (max-width: 1000px) {
	.ldb-vedettes__liste {
		grid-template-columns: repeat(2, 1fr);
	}
}

@media (max-width: 480px) {
	/* Catégories sur deux colonnes, nom seul. */
	.ldb-categories ul {
		grid-template-columns: 1fr 1fr;
		gap: 0.75rem;
		margin-top: 2rem;
	}

	.ldb-categories__nom {
		margin: 0.6rem 0.5rem 0.7rem;
		font-size: 1rem;
	}

	.ldb-categories__texte {
		display: none;
	}

	.ldb-vedettes__liste {
		gap: 0.75rem;
	}

	.ldb-vedette__achat .button {
		padding: 0.6rem 0.4rem;
		font-size: 0.85rem;
	}

	.ldb-vedette__nom {
		font-size: 0.95rem;
	}

	.ldb-vedette__achat {
		margin-inline: 0.6rem;
	}
}

.ldb-encart {
	display: grid;
	grid-template-columns: 1fr 1fr;
	align-items: center;
	gap: 2rem;
	margin-top: 4rem;
	padding: 2rem;
	border-radius: 12px;
	background: var(--theme-palette-color-6, #f3efe6);
}

.ldb-encart__image {
	display: block;
	aspect-ratio: 4 / 3;
	overflow: hidden;
	border-radius: 8px;
	background: var(--theme-palette-color-6, #f3efe6);
}

.ldb-encart__image img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	border-radius: 8px;
}

.ldb-encart__texte h2 {
	margin-top: 0;
	color: var(--ldb-or);
}

@media (max-width: 760px) {
	.ldb-encart {
		grid-template-columns: 1fr;
		padding: 1.25rem;
	}
}

.ldb-lien-page {
	margin-top: 1rem;
	font-weight: 600;
}

/* ---------- Pages catégories : produits présentés en entier ---------- */

.ldb-produits {
	margin-block: 3rem;
	scroll-margin-top: 100px;
}

.ldb-produits__titre {
	margin-bottom: 2rem;
	text-align: center;
	color: var(--ldb-or);
}

/* Cartes centrées (une section d'un seul produit reste au milieu). */
.ldb-produits__liste {
	--ldb-ecart: 2rem;
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 2.5rem var(--ldb-ecart);
}

.ldb-produit {
	flex: 0 1 calc((100% - 2 * var(--ldb-ecart)) / 3);
	min-width: min(100%, 280px);
	display: flex;
	flex-direction: column;
	padding: 0 0 1.25rem;
	border-radius: 8px;
	background: #fff;
	box-shadow: 0 1px 3px rgb(0 0 0 / 0.06);
	text-align: center;
	scroll-margin-top: 100px;
}

/* Tablette : deux cartes par rangée ; téléphone : une, sur toute la largeur. */
@media (max-width: 1000px) {
	.ldb-produit {
		flex-basis: calc((100% - var(--ldb-ecart)) / 2);
	}
}

@media (max-width: 640px) {
	.ldb-produit {
		flex-basis: 100%;
	}

	.ldb-bandeau::before {
		background: rgb(250 248 243 / 0.7);
	}

	.ldb-bandeau__offre {
		font-size: 0.85rem;
	}
}

.ldb-produit__image img {
	display: block;
	width: 100%;
	aspect-ratio: 1;
	object-fit: cover;
	border-radius: 8px 8px 0 0;
}

/* Texte et achat : le bloc d'achat est poussé en bas de la carte, pour que
   tous les boutons d'une rangée soient à la même hauteur. */
.ldb-produit__texte {
	flex: 1;
	display: flex;
	flex-direction: column;
	padding: 0 1.25rem;
}

.ldb-produit__nom {
	margin: 1rem 0 0.25rem;
	font-size: 1.25rem;
}

.ldb-produit__nom a {
	color: inherit;
	text-decoration: none;
}

.ldb-produit__prix {
	margin: 0 0 0.5rem;
	font-weight: 600;
	color: var(--ldb-bleu);
}

.ldb-produit__presentation p {
	margin: 0 0 0.5rem;
}

.ldb-produit__details {
	margin-bottom: 1rem;
	font-size: 0.9rem;
	text-align: left;
}

.ldb-produit__details summary {
	cursor: pointer;
	text-align: center;
	color: var(--ldb-bleu);
}

.ldb-produit__details hr {
	display: none;
}

.ldb-produit__achat {
	margin-top: auto;
	text-align: left;
}

.ldb-produit__achat form.cart {
	margin: 0;
}

.ldb-produit__achat .variations {
	margin-bottom: 0.5rem;
}

.ldb-produit__achat .variations select {
	width: 100%;
}

.ldb-produit__achat .reset_variations {
	display: none !important;
}

.ldb-produit__achat .stock {
	margin: 0 0 0.5rem;
	font-size: 0.85rem;
	text-align: center;
}

/* ---------- Pages catégories : texte sous les produits, autres catégories ---------- */

.ldb-categorie-texte {
	margin: 4rem 0 0;
	padding: 3rem clamp(1rem, 4vw, 3rem);
	border-radius: 12px;
	background: var(--theme-palette-color-6, #f3efe6);
	text-align: center;
}

.ldb-categorie-texte h2 {
	margin: 0 0 0.75rem;
	color: var(--ldb-or);
}

.ldb-chapeau {
	max-width: 40rem;
	margin: 0 auto 2rem;
	font-size: 1.1rem;
}

.ldb-gammes {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 240px), 1fr));
	gap: 1.5rem;
	margin-top: 2rem;
}

.ldb-chapeau + .ldb-gammes {
	margin-top: 0;
}

.ldb-gamme {
	padding: 1.75rem 1.5rem;
	border-top: 3px solid var(--ldb-or);
	border-radius: 8px;
	background: #fff;
	box-shadow: 0 1px 3px rgb(0 0 0 / 0.06);
}

.ldb-gamme h3 {
	margin: 0 0 0.75rem;
	font-size: 1.2rem;
	color: var(--ldb-bleu);
}

.ldb-gamme p {
	margin: 0 0 0.75rem;
}

.ldb-gamme p:last-child {
	margin-bottom: 0;
}

.ldb-gamme__savons {
	font-weight: 600;
	line-height: 1.8;
}

.ldb-gamme__savons a {
	white-space: nowrap;
}

.ldb-autres-categories {
	margin: 3rem 0 1rem;
	text-align: center;
}

.ldb-autres-categories h2 {
	margin: 0 0 1rem;
	font-size: 1.3rem;
	color: var(--ldb-or);
}

.ldb-autres-categories ul {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 0.75rem;
	margin: 0;
	padding: 0;
	list-style: none;
}

.ldb-autres-categories a {
	display: inline-block;
	padding: 0.5rem 1.25rem;
	border: 1px solid var(--ldb-bleu);
	border-radius: 999px;
	color: var(--ldb-bleu);
	font-weight: 600;
	text-decoration: none;
	transition: background 0.2s, color 0.2s;
}

.ldb-autres-categories a:hover,
.ldb-autres-categories a:focus-visible {
	background: var(--ldb-bleu);
	color: #fff;
}

/* ---------- Réseaux sociaux ([ldb_reseaux], pied de page) ---------- */

.ldb-reseaux {
	display: flex;
	justify-content: center;
	gap: 0.75rem;
	margin: 1rem 0;
	padding: 0;
	list-style: none;
}

.ldb-reseaux a {
	display: grid;
	place-items: center;
	width: 44px;
	height: 44px;
	border-radius: 50%;
	background: var(--ldb-bleu);
	color: #fff;
	transition: background 0.2s, transform 0.2s;
}

.ldb-reseaux a:hover,
.ldb-reseaux a:focus-visible {
	background: var(--ldb-or-fonce);
	transform: translateY(-2px);
}

/* ---------- En-tête et pied de page ---------- */

/* Le logo dit déjà le nom : le titre texte à côté est masqué. */
[data-id="logo"] .site-logo-container + .site-title-container {
	display: none;
}

[data-id="logo"] {
	--logo-max-height: 64px;
}

/* Les liens du menu vers les sections de l'accueil ne sont pas « la page en
   cours » : même couleur que les autres liens tant qu'on ne les survole pas. */
[data-id="menu"] .current-menu-item > a[href*="#ldb-"]:not(:hover):not(:focus-visible) {
	color: var(--theme-palette-color-3);
}

.ldb-pied {
	padding: 2.5rem 1rem 1rem;
	background: var(--ldb-creme);
	border-top: 1px solid #e6dfcf;
	text-align: center;
}

.ldb-pied__nom {
	margin: 0;
	font-size: 1.2rem;
	color: var(--ldb-or-fonce);
}

.ldb-pied__contact {
	margin: 0;
	font-size: 0.95rem;
}

.ldb-pied__contact a {
	color: inherit;
}

.ldb-pied__legal ul {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 0.35rem 1.25rem;
	margin: 1.25rem 0 0;
	padding: 0;
	list-style: none;
	font-size: 0.85rem;
}

.ldb-pied__legal a {
	color: inherit;
}

/* Pages légales : information à compléter (Réglages → Informations légales). */
.ldb-a-completer {
	padding: 0 0.25em;
	background: #fde2e1;
	color: #b32d2e;
	font-weight: 600;
}

.ldb-tarifs {
	width: 100%;
	margin: 1rem 0;
	border-collapse: collapse;
}

.ldb-tarifs th,
.ldb-tarifs td {
	padding: 0.6rem 0.75rem;
	border-bottom: 1px solid #e6dfcf;
	text-align: left;
}

.ldb-tarifs td:last-child,
.ldb-tarifs th:last-child {
	text-align: right;
	white-space: nowrap;
}

.ct-footer-copyright {
	text-align: center;
}

/* ---------- Coffret à composer et carte cadeau (plugin lillydesbulles) ---------- */

.ldb-coffret {
	margin-bottom: 1rem;
}

.ldb-coffret__aide {
	margin: 0 0 0.5rem;
	font-weight: 600;
}

.ldb-coffret__case {
	margin: 0 0 0.5rem;
}

.ldb-coffret__case select {
	width: 100%;
}

.ldb-carte-cadeau input[type="number"] {
	width: 8em;
}

/* ---------- Bandeau cookies (tarteaucitron, plugin lillydesbulles) ---------- */

#tarteaucitronRoot #tarteaucitronAlertBig {
	background: var(--ldb-creme) !important;
	color: var(--theme-palette-color-3, #3d4a52) !important;
	border-top: 1px solid #e6dfcf;
	box-shadow: 0 -4px 16px rgb(0 0 0 / 0.08);
}

#tarteaucitronRoot #tarteaucitronAlertBig #tarteaucitronDisclaimerAlert {
	color: inherit !important;
}

/* « Tout accepter » et « Tout refuser » : même poids visuel (CNIL). */
#tarteaucitronRoot #tarteaucitronPersonalize2,
#tarteaucitronRoot #tarteaucitronAllDenied2 {
	background: var(--ldb-bleu) !important;
	color: #fff !important;
	border-radius: 4px;
}

#tarteaucitronRoot #tarteaucitronCloseAlert {
	background: transparent !important;
	color: var(--ldb-bleu) !important;
	border: 1px solid var(--ldb-bleu) !important;
	border-radius: 4px;
}

#tarteaucitronRoot .tarteaucitronAllow,
#tarteaucitronRoot .tarteaucitronDeny {
	border-radius: 4px;
}

/* Contenu bloqué en attente de consentement (ex. carte Google Maps). */
.tac_activate {
	background: var(--theme-palette-color-6, #f3efe6) !important;
	color: var(--theme-palette-color-3, #3d4a52) !important;
	font-size: 0.95rem !important;
}

.tac_activate .tac_float strong {
	color: inherit !important;
}

.tac_activate .tarteaucitronAllow,
.tac_activate .tac_float .tarteaucitronAllow {
	margin-left: 0.5rem;
	background: var(--ldb-bleu) !important;
	color: #fff !important;
}

/* ---------- Panier : cadeau offert ---------- */

.ldb-cadeau {
	margin: 0.75rem 0;
	padding: 0.75rem 1rem;
	border-radius: 6px;
	background: var(--ldb-creme);
	border: 1px solid #e6dfcf;
}

.ldb-cadeau p {
	margin: 0 0 0.5rem;
}

.ldb-cadeau select {
	width: 100%;
	margin-bottom: 0.5rem;
}

.ldb-cadeau__suivant {
	margin: 0;
	font-size: 0.9rem;
}

/* ---------- Panier : livraison offerte (jauge) ---------- */

.ldb-port {
	margin: 0.75rem 0;
	padding: 0.75rem 1rem;
	border-radius: 6px;
	background: var(--ldb-creme);
	border: 1px solid #e6dfcf;
}

.ldb-port p {
	margin: 0 0 0.5rem;
}

.ldb-port__jauge {
	height: 8px;
	border-radius: 999px;
	background: #e6dfcf;
	overflow: hidden;
}

.ldb-port__jauge span {
	display: block;
	height: 100%;
	border-radius: inherit;
	background: var(--ldb-bleu);
	transition: width 0.4s ease;
}

/* ---------- Produits : prix, variantes en boutons (plugin, fiche-produit.js) ---------- */

.ldb-a-partir-de {
	font-size: 0.8em;
	font-weight: 400;
}

.ldb-choix {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem;
}

.ldb-choix__option {
	padding: 0.55rem 0.9rem;
	border: 1px solid #d8cfbd;
	border-radius: 6px;
	background: #fff;
	color: var(--theme-palette-color-3, #3d4a52);
	font: inherit;
	font-size: 0.95rem;
	line-height: 1.2;
	cursor: pointer;
}

.ldb-choix__option:hover,
.ldb-choix__option:focus-visible {
	border-color: var(--ldb-bleu);
}

.ldb-choix__option.est-choisi {
	border-color: var(--ldb-bleu);
	background: var(--ldb-bleu);
	color: #fff;
}

.ldb-choix__option:disabled {
	opacity: 0.45;
	cursor: not-allowed;
	text-decoration: line-through;
}

/* La liste déroulante d'origine reste dans la page pour WooCommerce. */
select.ldb-choix__liste {
	position: absolute !important;
	width: 1px !important;
	height: 1px !important;
	opacity: 0;
	pointer-events: none;
}

.ldb-produit__achat .ldb-choix {
	justify-content: center;
}

/* ---------- Réassurance : fiche produit et pied de page ---------- */

.ldb-atouts {
	margin: 0;
	padding: 0;
	list-style: none;
}

.ldb-atouts li {
	display: flex;
	align-items: center;
	gap: 0.6rem;
}

.ldb-icone {
	flex: none;
	color: var(--ldb-bleu);
}

.ldb-atouts--fiche {
	display: grid;
	gap: 0.5rem;
	margin: 1.25rem 0 0;
	padding: 1rem 0 0;
	border-top: 1px solid #e6dfcf;
	font-size: 0.92rem;
}

.ldb-reassurance {
	padding: 2rem 1rem;
	background: var(--theme-palette-color-6, #f3efe6);
	border-top: 1px solid #e6dfcf;
}

.ldb-atouts--pied {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(170px, 1fr));
	gap: 1.25rem;
	max-width: var(--theme-normal-container-max-width, 1290px);
	margin-inline: auto;
	font-size: 0.92rem;
}

.ldb-atouts--pied li {
	flex-direction: column;
	text-align: center;
}

.ldb-atouts--pied .ldb-icone {
	width: 32px;
	height: 32px;
}

@media (max-width: 640px) {
	.ldb-atouts--pied {
		grid-template-columns: 1fr 1fr;
	}
}

/* ---------- Fiche produit : barre d'achat fixe (mobile) ---------- */

.ldb-achat-fixe {
	position: fixed;
	inset: auto 0 0;
	z-index: 50;
	display: flex;
	align-items: center;
	gap: 0.75rem;
	padding: 0.6rem 1rem calc(0.6rem + env(safe-area-inset-bottom));
	background: #fff;
	box-shadow: 0 -4px 16px rgb(0 0 0 / 0.1);
}

.ldb-achat-fixe[hidden] {
	display: none;
}

.ldb-achat-fixe__texte {
	display: flex;
	flex-direction: column;
	min-width: 0;
	flex: 1;
	line-height: 1.25;
}

.ldb-achat-fixe__nom {
	overflow: hidden;
	white-space: nowrap;
	text-overflow: ellipsis;
	font-weight: 600;
	font-size: 0.9rem;
}

.ldb-achat-fixe__prix {
	font-size: 0.9rem;
	color: var(--ldb-bleu);
}

.ldb-achat-fixe__bouton {
	flex: none;
}

@media (min-width: 641px) {
	.ldb-achat-fixe {
		display: none !important;
	}
}

@media (max-width: 640px) {
	/* La barre ne masque pas le bas de page. */
	body.ldb-avec-achat-fixe {
		padding-bottom: 72px;
	}
}

/* ---------- Avis ---------- */

.ldb-avis-connexion {
	margin-top: 1.5rem;
}

.ldb-avis-connexion summary {
	cursor: pointer;
	color: var(--ldb-bleu);
	font-weight: 600;
}

/* ------------------------------------------------------------------
 * Panier du menu : bulle du nombre d'articles, aperçu au survol
 * (inc/panier.php).
 * ------------------------------------------------------------------ */
.ldb-panier-menu {
	position: relative;
}

/* Blocksy coupe ce qui dépasse du menu : l'aperçu doit pouvoir en sortir. */
.ct-header .menu-container:has(.ldb-panier-menu) {
	overflow: visible;
}

.ldb-panier-sac {
	fill: none !important;
}

.ldb-panier-menu > a {
	gap: 0.4em;
}

.ldb-panier-icone {
	position: relative;
	display: inline-flex;
	vertical-align: middle;
	margin-right: 0.35em;
}

.ldb-panier-nombre {
	position: absolute;
	top: -7px;
	right: -9px;
	min-width: 18px;
	height: 18px;
	padding: 0 4px;
	border-radius: 999px;
	background: var(--ldb-bleu);
	color: #fff;
	font-size: 11px;
	font-weight: 700;
	line-height: 18px;
	text-align: center;
	letter-spacing: 0;
}

.ldb-panier-nombre--vide {
	display: none;
}

.ldb-panier-apercu {
	position: absolute;
	top: 100%;
	right: 0;
	z-index: 100;
	width: 330px;
	padding: 1rem;
	border: 1px solid #e6dfcf;
	border-radius: 8px;
	background: #fff;
	box-shadow: 0 10px 30px rgba(0, 0, 0, 0.12);
	color: var(--theme-palette-color-3);
	font-size: 0.9rem;
	font-weight: 400;
	letter-spacing: 0;
	text-align: left;
	text-transform: none;
	visibility: hidden;
	opacity: 0;
	transform: translateY(6px);
	transition: opacity 0.15s, transform 0.15s, visibility 0.15s;
}

@media (hover: hover) and (min-width: 1000px) {
	.ldb-panier-menu:hover > .ldb-panier-apercu,
	.ldb-panier-menu:focus-within > .ldb-panier-apercu {
		visibility: visible;
		opacity: 1;
		transform: none;
	}
}

/* Écrans tactiles et menu mobile : la bulle suffit, le lien mène au panier. */
@media (hover: none), (max-width: 999px) {
	.ldb-panier-apercu {
		display: none;
	}
}

.ldb-panier-apercu p {
	margin: 0;
}

.ldb-panier-apercu__articles {
	margin: 0 0 0.75rem;
	padding: 0;
	list-style: none;
}

.ldb-panier-apercu__articles li {
	display: grid;
	grid-template-columns: 48px 1fr auto;
	gap: 0.75rem;
	align-items: center;
	padding: 0.5rem 0;
	border-bottom: 1px solid #f0ebe0;
}

.ldb-panier-apercu__articles img {
	width: 48px;
	height: 48px;
	object-fit: cover;
	border-radius: 4px;
}

.ldb-panier-apercu__nom {
	line-height: 1.3;
}

.ldb-panier-apercu__nom a {
	color: inherit;
}

.ldb-panier-apercu__nom small {
	display: block;
	color: #6b6b6b;
}

.ldb-panier-apercu__prix {
	font-weight: 600;
	white-space: nowrap;
}

.ldb-panier-apercu__autres {
	margin-bottom: 0.5rem !important;
	color: #6b6b6b;
	font-size: 0.85em;
}

.ldb-panier-apercu__total {
	display: flex;
	justify-content: space-between;
	font-size: 1.05em;
	font-weight: 700;
}

.ldb-panier-apercu__port {
	margin-top: 0.4rem !important;
	color: var(--ldb-or-fonce);
	font-size: 0.85em;
}

.ldb-panier-apercu__boutons {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 0.5rem;
	margin-top: 0.9rem !important;
}

.ldb-panier-apercu__boutons .button {
	justify-content: center;
	min-height: 40px;
	padding: 0 0.75rem;
	font-size: 0.85rem;
	text-align: center;
}

.ldb-panier-apercu__voir {
	background: #fff !important;
	color: var(--ldb-bleu) !important;
	border: 1px solid var(--ldb-bleu) !important;
}

.ldb-panier-apercu__vide {
	text-align: center;
	color: #6b6b6b;
}

/* Icône du panier à côté du menu « hamburger » (en-tête mobile). */
.ldb-panier-mobile {
	display: inline-flex;
	align-items: center;
	margin-right: 18px;
	color: var(--theme-palette-color-3);
}

.ldb-panier-mobile .ldb-panier-icone {
	margin: 0;
}

.ldb-panier-mobile .ldb-panier-sac {
	width: 24px;
	height: 24px;
}

/* ------------------------------------------------------------------
 * Fenêtre « Ajouté à votre panier » (inc/panier.php).
 * ------------------------------------------------------------------ */
.ldb-ajout {
	width: min(440px, calc(100% - 32px));
	max-height: calc(100% - 32px);
	padding: 1.5rem;
	border: 0;
	border-radius: 10px;
	box-shadow: 0 20px 50px rgba(0, 0, 0, 0.25);
	color: var(--theme-palette-color-3);
}

.ldb-ajout:focus {
	outline: none;
}

.ldb-ajout::backdrop {
	background: rgba(20, 30, 35, 0.45);
}

.ldb-ajout[open] {
	animation: ldb-ajout-entree 0.2s ease-out;
}

@keyframes ldb-ajout-entree {
	from { opacity: 0; transform: translateY(12px); }
	to { opacity: 1; transform: none; }
}

.ldb-ajout p {
	margin: 0;
}

.ldb-ajout__fermer {
	position: absolute;
	top: 0.5rem;
	right: 0.5rem;
	width: 36px;
	height: 36px;
	padding: 0;
	border: 0;
	background: none;
	color: #6b6b6b;
	font-size: 26px;
	line-height: 1;
	cursor: pointer;
}

.ldb-ajout__titre {
	display: flex;
	align-items: center;
	gap: 0.5rem;
	margin-bottom: 1rem !important;
	padding-right: 2rem;
	color: var(--ldb-bleu);
	font-size: 1.15rem;
	font-weight: 700;
}

.ldb-ajout__articles {
	margin: 0 0 1rem;
	padding: 0;
	list-style: none;
}

.ldb-ajout__articles li {
	display: grid;
	grid-template-columns: 64px 1fr auto;
	gap: 0.85rem;
	align-items: center;
	padding: 0.6rem 0;
	border-top: 1px solid #f0ebe0;
	border-bottom: 1px solid #f0ebe0;
}

.ldb-ajout__articles img {
	width: 64px;
	height: 64px;
	object-fit: cover;
	border-radius: 6px;
}

.ldb-ajout__nom {
	line-height: 1.3;
	font-weight: 600;
}

.ldb-ajout__nom small {
	display: block;
	margin-top: 0.2rem;
	color: #6b6b6b;
	font-weight: 400;
}

.ldb-ajout__prix {
	font-weight: 600;
	white-space: nowrap;
}

.ldb-ajout__total {
	display: flex;
	justify-content: space-between;
	gap: 1rem;
	font-weight: 700;
}

.ldb-ajout__port {
	margin-top: 0.35rem !important;
	color: var(--ldb-or-fonce);
	font-size: 0.9rem;
}

.ldb-ajout__boutons {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 0.6rem;
	margin-top: 1.25rem !important;
}

.ldb-ajout__boutons .button {
	justify-content: center;
	min-height: 46px;
	text-align: center;
}

.ldb-ajout__voir {
	background: #fff !important;
	color: var(--ldb-bleu) !important;
	border: 1px solid var(--ldb-bleu) !important;
}

.ldb-ajout__continuer {
	grid-column: 1 / -1;
	padding: 0.5rem;
	border: 0;
	background: none;
	color: var(--theme-palette-color-3);
	font-size: 0.95rem;
	text-decoration: underline;
	text-underline-offset: 3px;
	cursor: pointer;
}

@media (max-width: 480px) {
	.ldb-ajout__boutons {
		grid-template-columns: 1fr;
	}
}
