/* ==========================================================================
   Atelier des Papillons — styles complémentaires à theme.json
   ========================================================================== */

:root {
	--adp-papillon: url("../images/papillon.svg");
	--adp-ease: cubic-bezier(0.22, 1, 0.36, 1);
}

html { scroll-behavior: smooth; }
body { -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility; }

::selection { background: var(--wp--preset--color--mauve-pale); }

/* Milk Script (police de la charte) : réservée aux accents.
   Un mot en italique dans un titre s'affiche en manuscrit. */
:where(h1, h2, h3) em {
	font-family: var(--wp--preset--font-family--milk-script);
	font-style: normal;
	font-weight: 400;
	font-size: 1.22em;
	line-height: 0.9;
	letter-spacing: 0;
	text-transform: none;
	color: var(--wp--preset--color--or);
}

/* Style de bloc « Manuscrit » pour les titres */
.wp-block-heading.is-style-manuscrit {
	font-family: var(--wp--preset--font-family--milk-script);
	font-weight: 400;
	font-size: clamp(2.4rem, 4.6vw, 3.6rem);
	line-height: 1.1;
	letter-spacing: 0;
	text-transform: none;
}

/* ---------- Styles de blocs ---------------------------------------------- */

/* Surtitre */
.is-style-surtitre {
	font-family: var(--wp--preset--font-family--syne);
	font-size: 0.75rem !important;
	font-weight: 600;
	letter-spacing: 0.22em;
	text-transform: uppercase;
	color: var(--wp--preset--color--or-fonce);
	margin-bottom: 0.25rem !important;
}
.is-style-surtitre::before {
	content: "";
	display: inline-block;
	width: 1.9em;
	height: 1.25em;
	margin-right: 0.6em;
	vertical-align: -0.35em;
	background: currentColor;
	-webkit-mask: var(--adp-papillon) center / contain no-repeat;
	mask: var(--adp-papillon) center / contain no-repeat;
}
.has-text-align-center.is-style-surtitre::before { display: block; margin: 0 auto 0.6em; width: 2.4em; height: 1.6em; }

/* Image arche / ronde */
.wp-block-image.is-style-arche img {
	width: 100%;
	aspect-ratio: 4 / 5;
	object-fit: cover;
	border-radius: 999px 999px var(--wp--custom--radius--small) var(--wp--custom--radius--small) / 999px 999px var(--wp--custom--radius--small) var(--wp--custom--radius--small);
}
.wp-block-image.is-style-rond img {
	aspect-ratio: 1;
	object-fit: cover;
	border-radius: 50%;
}
.wp-block-cover.is-style-arche {
	border-radius: 999px 999px var(--wp--custom--radius--small) var(--wp--custom--radius--small);
	overflow: hidden;
}

/* Bouton contour */
.wp-block-button.is-style-contour .wp-block-button__link {
	background: transparent;
	color: var(--wp--preset--color--anthracite);
	box-shadow: inset 0 0 0 1.5px currentColor;
}
.wp-block-button.is-style-contour .wp-block-button__link:hover {
	background: var(--wp--preset--color--anthracite);
	color: var(--wp--preset--color--blanc);
}
.wp-block-button__link { transition: background-color 0.3s var(--adp-ease), color 0.3s var(--adp-ease), transform 0.3s var(--adp-ease); }
.wp-block-button__link:hover { transform: translateY(-2px); }

/* Carte */
.is-style-carte {
	background: var(--wp--preset--color--blanc);
	border-radius: var(--wp--custom--radius--medium);
	padding: var(--wp--preset--spacing--40);
	box-shadow: var(--wp--preset--shadow--douce);
}

/* Séparateur papillon */
hr.wp-block-separator.is-style-papillon {
	border: 0;
	height: 26px;
	width: 180px;
	max-width: 100%;
	margin: 1rem auto 2.5rem;
	opacity: 1;
	background:
		linear-gradient(currentColor, currentColor) left center / 62px 1px no-repeat,
		linear-gradient(currentColor, currentColor) right center / 62px 1px no-repeat;
	color: var(--wp--preset--color--or);
	position: relative;
}
hr.wp-block-separator.is-style-papillon::after {
	content: "";
	position: absolute;
	inset: 0;
	margin: auto;
	width: 38px;
	height: 26px;
	background: currentColor;
	-webkit-mask: var(--adp-papillon) center / contain no-repeat;
	mask: var(--adp-papillon) center / contain no-repeat;
}

/* ---------- En-tête -------------------------------------------------------- */

.adp-site-header {
	position: sticky;
	top: 0;
	z-index: 50;
}
.admin-bar .adp-site-header { top: var(--wp-admin--admin-bar--height, 32px); }

.adp-topbar { padding-block: 0.45rem; }
.adp-topbar p {
	margin: 0;
	font-family: var(--wp--preset--font-family--syne);
	letter-spacing: 0.06em;
}

.adp-header {
	background: color-mix(in srgb, var(--wp--preset--color--creme) 88%, transparent);
	-webkit-backdrop-filter: blur(12px);
	backdrop-filter: blur(12px);
	border-bottom: 1px solid color-mix(in srgb, var(--wp--preset--color--or) 25%, transparent);
	padding-block: 0.5rem;
}
.adp-header__inner { gap: 1.5rem; }
.adp-header__logo img { transition: transform 0.4s var(--adp-ease); }
.adp-header__logo:hover img { transform: rotate(-4deg) scale(1.03); }

/* Menu principal */
.adp-header__nav .wp-block-navigation__container { gap: clamp(0.8rem, 1.8vw, 1.8rem); }
.adp-header__nav .wp-block-navigation-item__content {
	position: relative;
	padding-block: 0.4rem;
	text-decoration: none;
	color: var(--wp--preset--color--anthracite);
}
.adp-header__nav .wp-block-navigation-item__content::after {
	content: "";
	position: absolute;
	left: 0;
	right: 0;
	bottom: 0;
	height: 1.5px;
	background: var(--wp--preset--color--or);
	transform: scaleX(0);
	transition: transform 0.35s var(--adp-ease);
}
.adp-header__nav .wp-block-navigation-item__content:hover::after,
.adp-header__nav .wp-block-navigation-item__content.is-active::after,
.post-type-archive-product .adp-nav-boutique .wp-block-navigation-item__content::after,
.tax-product_cat .adp-nav-boutique .wp-block-navigation-item__content::after,
.single-product .adp-nav-boutique .wp-block-navigation-item__content::after { transform: scaleX(1); }
.adp-header__nav .wp-block-navigation-item__content.is-active { color: var(--wp--preset--color--or-fonce); }

/* Menu ouvert (mobile et tablette) */
.adp-header__nav .wp-block-navigation__responsive-container.is-menu-open {
	background: var(--wp--preset--color--creme) !important;
	padding: var(--wp--preset--spacing--50) var(--wp--preset--spacing--40);
}
.adp-header__nav .is-menu-open .wp-block-navigation__container { gap: 1.1rem; }
.adp-header__nav .is-menu-open .wp-block-navigation-item__content { font-size: 1.15rem; }
.adp-header__nav .wp-block-navigation__responsive-container-open svg,
.adp-header__nav .wp-block-navigation__responsive-container-close svg { width: 28px; height: 28px; }

/* Entre 600 et 1100 px, sept liens ne tiennent pas : bouton « menu » comme sur mobile. */
@media (min-width: 600px) and (max-width: 1100px) {
	.adp-header__nav .wp-block-navigation__responsive-container-open:not(.always-shown) { display: flex !important; }
	.adp-header__nav .wp-block-navigation__responsive-container:not(.hidden-by-default):not(.is-menu-open) { display: none !important; }
}
/* En mode bouton : logo à gauche, puis compte, panier et bouton menu à droite. */
@media (max-width: 1100px) {
	.adp-header__inner { justify-content: flex-start !important; }
	.adp-header__actions { margin-left: auto !important; }
	.adp-header__nav { order: 3; flex: 0 0 auto; }
}

/* Pas d'espace entre le contenu et le pied de page. */
.wp-site-blocks > .adp-site-footer { margin-block-start: 0; }

/* One page : les ancres s'arrêtent sous l'en-tête collant. */
.adp-onepage [id] { scroll-margin-top: var(--adp-header-h, 150px); }

.adp-header__actions { gap: 0.4rem; }
.adp-header__actions .wc-block-mini-cart__button,
.adp-header__actions .wc-block-customer-account a { color: var(--wp--preset--color--anthracite); }
.adp-header__actions .wc-block-mini-cart__badge {
	background: var(--wp--preset--color--or) !important;
	color: var(--wp--preset--color--anthracite) !important;
	font-family: var(--wp--preset--font-family--syne);
}

/* ---------- Bandeau d'accueil ---------------------------------------------- */

.adp-hero { position: relative; overflow: hidden; }
.adp-hero::before {
	content: "";
	position: absolute;
	width: min(60vw, 720px);
	aspect-ratio: 1;
	right: -12%;
	top: -18%;
	border-radius: 50%;
	background: radial-gradient(circle, color-mix(in srgb, var(--wp--preset--color--mauve-pale) 90%, transparent) 0%, transparent 68%);
	pointer-events: none;
}
.adp-hero h1 { margin-block: 0.4em 0.5em; }
.adp-hero__meta {
	margin-top: var(--wp--preset--spacing--40) !important;
	color: var(--wp--preset--color--gris);
}
.adp-hero__meta strong {
	font-family: var(--wp--preset--font-family--syne);
	font-size: 0.72rem;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--wp--preset--color--sauge);
	margin-right: 0.5em;
}
.adp-hero__meta strong::before {
	content: "";
	display: inline-block;
	width: 8px;
	height: 8px;
	margin-right: 0.5em;
	border-radius: 50%;
	background: var(--wp--preset--color--vert);
	box-shadow: 0 0 0 4px color-mix(in srgb, var(--wp--preset--color--vert) 25%, transparent);
}

.adp-hero__visuel { position: relative; }
.adp-hero__image { margin: 0 0 0 auto !important; max-width: 440px; position: relative; }
.adp-hero__image::before {
	content: "";
	position: absolute;
	inset: -14px -14px 14px 14px;
	border: 1px solid var(--wp--preset--color--or);
	border-radius: 999px 999px var(--wp--custom--radius--small) var(--wp--custom--radius--small);
	pointer-events: none;
}
.adp-hero__image-secondaire {
	position: absolute !important;
	width: 38%;
	max-width: 190px;
	left: 2%;
	bottom: 9%;
	margin: 0 !important;
}
.adp-hero__image-secondaire img {
	border: 6px solid var(--wp--preset--color--creme);
	box-shadow: var(--wp--preset--shadow--douce);
}
.adp-hero__etiquette {
	position: absolute;
	right: -2%;
	bottom: 4%;
	padding: 0.85rem 1.2rem !important;
	background: var(--wp--preset--color--blanc);
	border-radius: var(--wp--custom--radius--small);
	box-shadow: var(--wp--preset--shadow--douce);
	max-width: 220px;
}
.adp-hero__etiquette p { margin: 0; line-height: 1.35; }
.adp-hero__etiquette p:first-child {
	font-family: var(--wp--preset--font-family--syne);
	font-weight: 600;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: var(--wp--preset--color--or-fonce);
}
.adp-hero__etiquette p:last-child { font-family: var(--wp--preset--font-family--cinzel); font-size: 0.95rem; }

/* ---------- Engagements ---------------------------------------------------- */

.adp-engagements { border-block: 1px solid color-mix(in srgb, var(--wp--preset--color--or) 22%, transparent); }
.adp-engagements .wp-block-column { position: relative; padding-left: 2.6rem; }
.adp-engagements .wp-block-column::before {
	content: "";
	position: absolute;
	left: 0;
	top: 0.1rem;
	width: 1.9rem;
	height: 1.9rem;
	border-radius: 50%;
	background: color-mix(in srgb, var(--wp--preset--color--mauve) 45%, white);
}
.adp-engagements .wp-block-column:nth-child(2)::before { background: color-mix(in srgb, var(--wp--preset--color--vert) 40%, white); }
.adp-engagements .wp-block-column:nth-child(3)::before { background: color-mix(in srgb, var(--wp--preset--color--or) 45%, white); }
.adp-engagements .wp-block-column:nth-child(4)::before { background: color-mix(in srgb, var(--wp--preset--color--rose) 60%, white); }
.adp-engagements h3 { margin: 0 0 0.2rem; font-weight: 600; }
.adp-engagements p { margin: 0; color: var(--wp--preset--color--gris); line-height: 1.5; }

/* ---------- Sections ------------------------------------------------------- */

.adp-section h2 { margin-block: 0.3em 0.5em; }
.adp-section__entete { margin-bottom: var(--wp--preset--spacing--50) !important; gap: 1.5rem; }
.adp-section__entete p { margin-bottom: 0; }

/* Cartes univers */
.adp-carte-univers { transition: transform 0.5s var(--adp-ease); }
.adp-carte-univers .wp-block-cover__image-background { transition: transform 0.9s var(--adp-ease); }
.adp-carte-univers:hover { transform: translateY(-6px); }
.adp-carte-univers:hover .wp-block-cover__image-background { transform: scale(1.06); }
.adp-carte-univers .wp-block-cover__background {
	background: linear-gradient(180deg, transparent 40%, rgba(28, 28, 28, 0.75) 100%) !important;
	opacity: 1 !important;
}
.adp-carte-univers h3 { margin-bottom: 0.2rem; letter-spacing: 0.06em; }
.adp-carte-univers h3 a { color: inherit; text-decoration: none; }
.adp-carte-univers h3 a::after { content: ""; position: absolute; inset: 0; z-index: 2; }
.adp-carte-univers p { margin-top: 0; opacity: 0.92; }

/* Sur mesure */
/* Ateliers */
.adp-ateliers__dates { margin-top: var(--wp--preset--spacing--60) !important; }
.adp-ateliers__dates > h3 { margin-bottom: var(--wp--preset--spacing--30); }
.adp-ateliers__visuel .wp-block-image { max-width: 460px; margin-inline: auto; }

.adp-liste-papillon { list-style: none; padding-left: 0; }
.adp-liste-papillon li { position: relative; padding-left: 2.2rem; margin-bottom: 0.45rem; }
.adp-liste-papillon li::before {
	content: "";
	position: absolute;
	left: 0;
	top: 0.3em;
	width: 1.4rem;
	height: 1rem;
	background: var(--wp--preset--color--or);
	-webkit-mask: var(--adp-papillon) center / contain no-repeat;
	mask: var(--adp-papillon) center / contain no-repeat;
}

/* À propos */
.adp-citation {
	margin-block: 1.5rem !important;
	padding-left: 1.4rem !important;
	color: var(--wp--preset--color--sauge);
	line-height: 1.45;
}
.adp-citation p { margin: 0; }
.adp-apropos__visuel .wp-block-image { max-width: 420px; margin-inline: auto; }

/* Mariage */
.adp-mariage__visuel .wp-block-image { max-width: 440px; margin-inline: auto; position: relative; }
.adp-mariage__visuel .wp-block-image::before {
	content: "";
	position: absolute;
	inset: -14px 14px 14px -14px;
	border: 1px solid var(--wp--preset--color--mauve);
	border-radius: 999px 999px var(--wp--custom--radius--small) var(--wp--custom--radius--small);
	pointer-events: none;
}

/* Deuil : ton sobre, sans couleur vive */
.adp-deuil__texte { position: sticky; top: calc(var(--adp-header-h, 150px) + 1rem); align-self: flex-start; }
.adp-deuil .adp-produits .wc-block-product-template { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.adp-deuil .wc-block-product .wc-block-components-product-image img { filter: saturate(0.85); }

/* Occasions */
.adp-occasions__grille {
	margin-top: var(--wp--preset--spacing--50) !important;
	gap: var(--wp--preset--spacing--30) !important;
	grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
}
@media (max-width: 900px) { .adp-occasions__grille { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; } }
@media (max-width: 560px) { .adp-occasions__grille { grid-template-columns: 1fr !important; } }
.adp-occasion {
	padding: var(--wp--preset--spacing--30) var(--wp--preset--spacing--30) var(--wp--preset--spacing--30) calc(var(--wp--preset--spacing--30) + 2.4rem) !important;
	position: relative;
	box-shadow: none;
	border: 1px solid color-mix(in srgb, var(--wp--preset--color--or) 22%, transparent);
	transition: transform 0.3s var(--adp-ease), box-shadow 0.3s var(--adp-ease);
}
.adp-occasion:hover { transform: translateY(-3px); box-shadow: var(--wp--preset--shadow--douce); }
.adp-occasion::before {
	content: "";
	position: absolute;
	left: var(--wp--preset--spacing--30);
	top: calc(var(--wp--preset--spacing--30) + 0.2rem);
	width: 1.6rem;
	height: 1.1rem;
	background: var(--wp--preset--color--or);
	-webkit-mask: var(--adp-papillon) center / contain no-repeat;
	mask: var(--adp-papillon) center / contain no-repeat;
}
.adp-occasion h3 { margin: 0 0 0.2rem; font-weight: 600; }
.adp-occasion p { margin: 0; color: var(--wp--preset--color--gris); line-height: 1.5; }

/* Contact */
.adp-contact__carte { padding: var(--wp--preset--spacing--40) !important; }
.adp-contact__carte h3 { margin: 0 0 0.3rem; font-weight: 600; }
.adp-contact__carte h3:not(:first-child) { margin-top: var(--wp--preset--spacing--30); }
.adp-contact__carte p { margin: 0; }

/* ---------- Commander : fleurs du moment ---------------------------------- */

.adp-commander__intro h2 { margin-bottom: 0.6em; }
.adp-commander__autre { color: var(--wp--preset--color--gris); margin-top: var(--wp--preset--spacing--40) !important; }
.adp-commander__carte { padding: var(--wp--preset--spacing--40) !important; }

.adp-saison {
	margin-top: var(--wp--preset--spacing--40);
	padding: var(--wp--preset--spacing--30);
	border-radius: var(--wp--custom--radius--medium);
	background: color-mix(in srgb, var(--wp--preset--color--blanc) 70%, transparent);
	border: 1px dashed color-mix(in srgb, var(--wp--preset--color--mauve) 45%, transparent);
}
.adp-saison__titre { margin: 0 0 0.6rem; display: flex; flex-wrap: wrap; align-items: baseline; gap: 0.2rem 0.6rem; }
.adp-saison__titre span {
	font-family: var(--wp--preset--font-family--syne);
	font-size: 0.72rem;
	font-weight: 600;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: var(--wp--preset--color--sauge);
}
.adp-saison__titre em {
	font-family: var(--wp--preset--font-family--milk-script);
	font-style: normal;
	font-size: 1.9rem;
	line-height: 1;
	color: var(--wp--preset--color--or);
}
.adp-saison__fleurs { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 0.4rem; }
.adp-saison__fleurs li {
	padding: 0.3rem 0.75rem;
	border-radius: 999px;
	background: var(--wp--preset--color--blanc);
	border: 1px solid color-mix(in srgb, var(--wp--preset--color--vert) 30%, transparent);
	font-size: 0.88rem;
	color: var(--wp--preset--color--anthracite);
}
.adp-saison--printemps .adp-saison__fleurs li { border-color: color-mix(in srgb, var(--wp--preset--color--rose) 55%, transparent); }
.adp-saison--ete .adp-saison__fleurs li { border-color: color-mix(in srgb, var(--wp--preset--color--or) 50%, transparent); }
.adp-saison--hiver .adp-saison__fleurs li { border-color: color-mix(in srgb, var(--wp--preset--color--mauve) 50%, transparent); }
.adp-saison__note { margin: 0.6rem 0 0; font-size: 0.78rem; color: var(--wp--preset--color--gris); }

/* ---------- Commander : formulaire en trois choix ------------------------- */

.adp-commande { display: grid; gap: var(--wp--preset--spacing--40); }
.adp-etape { border: 0; margin: 0; padding: 0; min-width: 0; }
.adp-etape legend {
	display: flex;
	align-items: center;
	gap: 0.6rem;
	padding: 0;
	margin-bottom: 0.9rem;
	font-family: var(--wp--preset--font-family--cinzel);
	font-size: 1.15rem;
	font-weight: 600;
}
.adp-etape__num {
	display: inline-grid;
	place-items: center;
	width: 1.9rem;
	height: 1.9rem;
	border-radius: 50%;
	background: var(--wp--preset--color--or);
	color: var(--wp--preset--color--encre);
	font-family: var(--wp--preset--font-family--syne);
	font-size: 0.85rem;
	font-weight: 700;
}

.adp-choix { display: grid; gap: 0.7rem; }
.adp-choix--tailles { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.adp-choix--couleurs { grid-template-columns: repeat(auto-fit, minmax(8rem, 1fr)); }
.adp-choix__input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.adp-choix__carte {
	position: relative;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 0.2rem;
	padding: 1rem 0.8rem 0.9rem;
	border-radius: var(--wp--custom--radius--small);
	border: 1.5px solid color-mix(in srgb, var(--wp--preset--color--anthracite) 14%, transparent);
	background: var(--wp--preset--color--creme);
	text-align: center;
	cursor: pointer;
	transition: border-color 0.2s, background-color 0.2s, transform 0.2s var(--adp-ease), box-shadow 0.2s;
}
.adp-choix__carte:hover { border-color: var(--wp--preset--color--or); transform: translateY(-2px); }
.adp-choix__input:checked + .adp-choix__carte {
	border-color: var(--wp--preset--color--or);
	background: var(--wp--preset--color--blanc);
	box-shadow: 0 0 0 3px color-mix(in srgb, var(--wp--preset--color--or) 22%, transparent);
}
.adp-choix__input:checked + .adp-choix__carte::after {
	content: "";
	position: absolute;
	top: 0.5rem;
	right: 0.5rem;
	width: 1.1rem;
	height: 1.1rem;
	border-radius: 50%;
	background: var(--wp--preset--color--or) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M4 8.5l2.5 2.5L12 5.5' fill='none' stroke='%23262626' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / 80% no-repeat;
}
.adp-choix__input:focus-visible + .adp-choix__carte { outline: 2px solid var(--wp--preset--color--mauve); outline-offset: 3px; }
.adp-choix__nom { font-weight: 600; line-height: 1.25; }
.adp-choix__prix { font-family: var(--wp--preset--font-family--syne); font-weight: 700; color: var(--wp--preset--color--or-fonce); }
.adp-choix__desc { font-size: 0.8rem; color: var(--wp--preset--color--gris); line-height: 1.35; }

/* Taille : un bouquet qui grandit */
.adp-taille__visuel {
	width: 2.2rem;
	height: 2.2rem;
	margin-bottom: 0.3rem;
	border-radius: 50%;
	background:
		radial-gradient(circle at 35% 35%, var(--wp--preset--color--rose) 0 22%, transparent 23%),
		radial-gradient(circle at 68% 40%, var(--wp--preset--color--mauve) 0 20%, transparent 21%),
		radial-gradient(circle at 50% 70%, var(--wp--preset--color--or) 0 20%, transparent 21%),
		color-mix(in srgb, var(--wp--preset--color--vert) 35%, white);
}
.adp-taille--2 .adp-taille__visuel { width: 2.9rem; height: 2.9rem; margin-bottom: 0; }
.adp-taille--3 .adp-taille__visuel { width: 3.6rem; height: 3.6rem; margin-top: -0.7rem; margin-bottom: -0.1rem; }

/* Couleurs : pastilles */
.adp-couleur__pastille {
	width: 2.4rem;
	height: 2.4rem;
	margin-bottom: 0.3rem;
	border-radius: 50%;
	box-shadow: inset 0 0 0 1px rgba(0, 0, 0, 0.06);
}
.adp-couleur__pastille--tendre { background: conic-gradient(var(--wp--preset--color--rose-pale), #f7c9dc, var(--wp--preset--color--mauve-pale), #fff, var(--wp--preset--color--rose-pale)); }
.adp-couleur__pastille--vive { background: conic-gradient(var(--wp--preset--color--or), var(--wp--preset--color--rose), #e2562f, var(--wp--preset--color--prune), var(--wp--preset--color--or)); }
.adp-couleur__pastille--blanc-vert { background: conic-gradient(#fff, var(--wp--preset--color--vert-pale), var(--wp--preset--color--vert), #fff); }
.adp-couleur__pastille--surprise,
.adp-couleur__pastille--defaut {
	background:
		var(--adp-papillon) center / 60% no-repeat,
		conic-gradient(var(--wp--preset--color--rose-pale), var(--wp--preset--color--vert-pale), var(--wp--preset--color--mauve-pale), var(--wp--preset--color--rose-pale));
}

/* Champs « petit mot » (accueil et fiche produit) */
.adp-champs-commande { display: grid; gap: 0.8rem; }
.adp-champ { margin: 0; }
.adp-champ label,
.adp-form__champ label { display: block; margin-bottom: 0.3rem; font-weight: 600; font-size: 0.92rem; }
.adp-champ label span { font-weight: 400; color: var(--wp--preset--color--gris); }
.adp-champ textarea,
.adp-form input:not([type="checkbox"]),
.adp-form select,
.adp-form textarea {
	box-sizing: border-box;
	width: 100%;
	padding: 0.7rem 0.9rem;
	border: 1px solid color-mix(in srgb, var(--wp--preset--color--anthracite) 18%, transparent);
	border-radius: var(--wp--custom--radius--small);
	background: var(--wp--preset--color--creme);
	font: inherit;
	font-size: 0.95rem;
	color: var(--wp--preset--color--anthracite);
	resize: vertical;
}
.adp-champ textarea:focus,
.adp-form input:focus,
.adp-form select:focus,
.adp-form textarea:focus { outline: 2px solid var(--wp--preset--color--mauve); outline-offset: 1px; background: var(--wp--preset--color--blanc); }
.single-product .adp-champs-commande { margin: 1rem 0 1.2rem; width: 100%; }

.adp-commande__valider {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 0.8rem 1.2rem;
	padding-top: var(--wp--preset--spacing--30);
	border-top: 1px solid color-mix(in srgb, var(--wp--preset--color--anthracite) 10%, transparent);
}
.adp-commande__recap { margin: 0; flex: 1 1 16rem; font-size: 0.95rem; }
.adp-commande__recap strong { font-family: var(--wp--preset--font-family--syne); color: var(--wp--preset--color--or-fonce); }
.adp-commande__bouton { font-size: 0.9rem !important; padding: 1.05rem 2rem !important; }
.adp-commande__note { flex-basis: 100%; margin: 0; font-size: 0.8rem; color: var(--wp--preset--color--gris); }

/* ---------- Formulaires de contact ---------------------------------------- */

.adp-form { display: grid; gap: var(--wp--preset--spacing--30); }
.adp-form__grille { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0.9rem 1rem; }
.adp-form__champ { margin: 0; }
.adp-form__champ.is-large { grid-column: 1 / -1; }
.adp-form__champ label span { color: var(--wp--preset--color--or-fonce); }
.adp-form__piege { position: absolute !important; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.adp-form__rgpd { display: flex; gap: 0.6rem; align-items: flex-start; margin: 0; font-size: 0.82rem; color: var(--wp--preset--color--gris); }
.adp-form__rgpd input { margin-top: 0.25rem; accent-color: var(--wp--preset--color--or); }
.adp-form button { justify-self: start; }
.adp-form__erreur,
.adp-form__merci { margin: 0; padding: 1rem 1.2rem; border-radius: var(--wp--custom--radius--small); }
.adp-form__erreur { background: color-mix(in srgb, var(--wp--preset--color--rose) 22%, white); }
.adp-form__merci { background: var(--wp--preset--color--vert-pale); }
.adp-form__merci p { margin: 0; }
.adp-form__merci p + p { margin-top: 0.3rem; }

.adp-mariage__demande { margin-top: var(--wp--preset--spacing--60) !important; padding: var(--wp--preset--spacing--50) !important; }
.adp-mariage__demande h3 { margin-bottom: 0.3rem; }
.adp-contact__infos { position: sticky; top: calc(var(--adp-header-h, 150px) + 1rem); align-self: flex-start; }
.adp-contact__infos .wp-block-buttons { margin-bottom: var(--wp--preset--spacing--30); }

/* Signature manuscrite */
.adp-signature {
	margin: -0.4rem 0 1rem !important;
	font-family: var(--wp--preset--font-family--milk-script);
	font-size: 2.6rem;
	line-height: 1;
	color: var(--wp--preset--color--or);
	transform: rotate(-4deg);
	transform-origin: left center;
}

@media (max-width: 781px) {
	.adp-form__grille { grid-template-columns: 1fr; }
	.adp-choix { gap: 0.5rem; }
	.adp-choix__carte { padding: 0.8rem 0.4rem 0.7rem; }
	.adp-choix__nom { font-size: 0.9rem; }
	.adp-choix__desc { font-size: 0.72rem; }
	.adp-contact__infos { position: static; }
	.adp-commande__bouton { width: 100%; }
}

/* ---------- Page boutique -------------------------------------------------- */

.adp-boutique-entete h1 { margin-block: 0.3em 0.4em; }
.adp-boutique-entete .is-style-surtitre a { color: inherit; text-decoration: none; }
.adp-boutique-entete .wp-block-term-description p { margin: 0; }

.adp-categories ul { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 0.5rem; }
.adp-categories a {
	display: inline-block;
	padding: 0.5rem 1.1rem;
	border-radius: 999px;
	border: 1.5px solid color-mix(in srgb, var(--wp--preset--color--anthracite) 18%, transparent);
	background: var(--wp--preset--color--blanc);
	font-family: var(--wp--preset--font-family--syne);
	font-size: 0.78rem;
	font-weight: 600;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	text-decoration: none;
	color: var(--wp--preset--color--anthracite);
	transition: border-color 0.2s, background-color 0.2s;
}
.adp-categories a:hover { border-color: var(--wp--preset--color--or); }
.adp-categories a[aria-current="page"] {
	background: var(--wp--preset--color--or);
	border-color: var(--wp--preset--color--or);
	color: var(--wp--preset--color--encre);
}

.adp-boutique-page .adp-produits .wc-block-product .wp-block-post-title { font-size: var(--wp--preset--font-size--medium) !important; }
.adp-pagination { margin-top: var(--wp--preset--spacing--50) !important; gap: 0.4rem; font-family: var(--wp--preset--font-family--syne); }
.adp-pagination a, .adp-pagination .current { padding: 0.35rem 0.75rem; border-radius: 999px; text-decoration: none; }
.adp-pagination .current { background: var(--wp--preset--color--or); color: var(--wp--preset--color--encre); }

.adp-boutique-cta {
	margin-top: var(--wp--preset--spacing--40) !important;
	padding: var(--wp--preset--spacing--40) var(--wp--preset--spacing--50) !important;
	gap: 1rem 2rem;
	background:
		radial-gradient(circle at 100% 0%, var(--wp--preset--color--mauve-pale) 0, transparent 50%),
		var(--wp--preset--color--blanc) !important;
}
.adp-boutique-cta h2 { margin: 0 0 0.3rem; }
.adp-boutique-cta p { margin: 0; }

/* ---------- Zone de livraison --------------------------------------------- */

.adp-zone-carte {
	padding: var(--wp--preset--spacing--50) !important;
	background:
		radial-gradient(circle at 100% 0%, color-mix(in srgb, var(--wp--preset--color--vert-pale) 90%, transparent) 0, transparent 45%),
		var(--wp--preset--color--blanc) !important;
}
.adp-zone__label {
	display: block;
	font-family: var(--wp--preset--font-family--syne);
	font-size: 0.75rem;
	font-weight: 600;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	margin-bottom: 0.5rem;
}
.adp-zone__row {
	display: flex;
	gap: 0.5rem;
	padding: 0.4rem;
	border-radius: 999px;
	background: var(--wp--preset--color--creme);
	box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--wp--preset--color--anthracite) 15%, transparent);
}
.adp-zone__row:focus-within { box-shadow: inset 0 0 0 2px var(--wp--preset--color--mauve); }
.adp-zone__input {
	flex: 1;
	min-width: 0;
	border: 0;
	background: transparent;
	padding: 0 1rem;
	font: inherit;
	font-size: 1.15rem;
	letter-spacing: 0.1em;
	color: var(--wp--preset--color--anthracite);
}
.adp-zone__input:focus { outline: none; }
.adp-zone__result { min-height: 3em; margin: 0.9rem 0 0 1rem; line-height: 1.45; }
.adp-zone.is-ok .adp-zone__result { color: var(--wp--preset--color--sauge); }
.adp-zone.is-ko .adp-zone__result { color: var(--wp--preset--color--or-fonce); }

/* ---------- WooCommerce ---------------------------------------------------- */

.adp-badge-unique {
	position: absolute;
	top: 0.8rem;
	left: 0.8rem;
	z-index: 3;
	display: inline-flex;
	align-items: center;
	gap: 0.4em;
	padding: 0.35rem 0.75rem 0.35rem 0.6rem;
	border-radius: 999px;
	background: var(--wp--preset--color--creme);
	color: var(--wp--preset--color--or-fonce);
	font-family: var(--wp--preset--font-family--syne);
	font-size: 0.66rem;
	font-weight: 700;
	letter-spacing: 0.14em;
	line-height: 1;
	text-transform: uppercase;
	box-shadow: 0 4px 14px -6px rgba(28, 28, 28, 0.35);
}
.adp-badge-unique::before {
	content: "";
	width: 1.5em;
	height: 1em;
	background: currentColor;
	-webkit-mask: var(--adp-papillon) center / contain no-repeat;
	mask: var(--adp-papillon) center / contain no-repeat;
}
.wc-block-components-product-image,
.woocommerce ul.products li.product { position: relative; }

.adp-notice-unique {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.6rem;
	padding: 0.9rem 1rem;
	border-radius: var(--wp--custom--radius--small);
	background: var(--wp--preset--color--mauve-pale);
	font-size: 0.95rem;
}
.adp-notice-unique .adp-badge-unique { position: static; box-shadow: none; }
.adp-notice-unique.is-vendue { background: color-mix(in srgb, var(--wp--preset--color--or) 18%, white); }

/* Grilles produits */
.adp-produits .wc-block-product-template {
	display: grid !important;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: var(--wp--preset--spacing--40) var(--wp--preset--spacing--30) !important;
}
.adp-produits .wc-block-product { width: auto !important; margin: 0 !important; text-align: left; }
@media (max-width: 1000px) { .adp-produits .wc-block-product-template { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.wc-block-product .wc-block-components-product-image {
	border-radius: var(--wp--custom--radius--medium);
	overflow: hidden;
	margin-bottom: 0.9rem !important;
}
.wc-block-product .wc-block-components-product-image img {
	transition: transform 0.8s var(--adp-ease);
	aspect-ratio: 4 / 5;
	object-fit: cover;
}
.wc-block-product:hover .wc-block-components-product-image img { transform: scale(1.05); }
.wc-block-product .wp-block-post-title { margin: 0 0 0.25rem !important; line-height: 1.3; }
.wc-block-product .wp-block-post-title a { text-decoration: none; color: var(--wp--preset--color--anthracite); }
.wc-block-product .wc-block-components-product-price { color: var(--wp--preset--color--or-fonce); margin-bottom: 0.7rem !important; }
.wc-block-product .wp-block-button__link {
	background: transparent !important;
	color: var(--wp--preset--color--anthracite) !important;
	box-shadow: inset 0 0 0 1.5px var(--wp--preset--color--anthracite);
	padding: 0.7rem 1.2rem !important;
}
.wc-block-product .wp-block-button__link:hover {
	background: var(--wp--preset--color--anthracite) !important;
	color: var(--wp--preset--color--blanc) !important;
}

/* ---------- Pied de page --------------------------------------------------- */

.adp-footer a { color: var(--wp--preset--color--creme); text-decoration-color: color-mix(in srgb, var(--wp--preset--color--or) 70%, transparent); text-underline-offset: 3px; }
.adp-footer a:hover { color: var(--wp--preset--color--or); }
.adp-footer h3 { font-family: var(--wp--preset--font-family--syne); letter-spacing: 0.18em; text-transform: uppercase; font-weight: 600; }
.adp-footer__logo img { background: var(--wp--preset--color--creme); border-radius: 50%; padding: 6px; }
.adp-footer__liens { list-style: none; padding: 0; }
.adp-footer__liens li { margin-bottom: 0.35rem; }
.adp-footer__sep { border-color: color-mix(in srgb, var(--wp--preset--color--creme) 18%, transparent) !important; margin-block: var(--wp--preset--spacing--40) var(--wp--preset--spacing--20) !important; }
.adp-footer p { color: color-mix(in srgb, var(--wp--preset--color--creme) 85%, transparent); }

/* ---------- Mobile --------------------------------------------------------- */

@media (max-width: 781px) {
	.adp-hero__text { text-align: left; }
	.adp-hero__visuel { margin-top: var(--wp--preset--spacing--40); padding-inline: 8%; }
	.adp-hero__image { margin-inline: auto !important; }
	.adp-hero__etiquette { right: 0; }
	.adp-engagements .wp-block-columns { display: grid !important; grid-template-columns: 1fr 1fr; gap: 1.5rem 1rem; }
	.adp-univers__grille { display: grid !important; grid-template-columns: 1fr 1fr; gap: 1rem; }
	.adp-univers__grille .wp-block-cover { min-height: 280px !important; }
	.adp-apropos .wp-block-columns { flex-direction: column-reverse; }
	.adp-deuil__texte { position: static; }
	.adp-deuil .adp-produits .wc-block-product-template { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.adp-zone-carte { padding: var(--wp--preset--spacing--40) !important; }
}

@media (max-width: 600px) {
	:root { --adp-header-h: 140px; }
	.adp-topbar p { font-size: 0.68rem !important; }
	.adp-header__logo img { width: 64px !important; }
	.adp-engagements .wp-block-columns,
	.adp-univers__grille { grid-template-columns: 1fr; }
	.adp-engagements .wp-block-column { padding-left: 2.4rem; }
	.adp-univers__grille .wp-block-cover { min-height: 340px !important; }
}

@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after { transition: none !important; animation: none !important; scroll-behavior: auto !important; }
}
