/*
 * Zestline – styles des éléments de l'extension.
 * Pour personnaliser : Apparence › Personnaliser › CSS additionnel
 * (redéfinissez par exemple --zl-caramel ou --zl-serif dans :root).
 */

:root {
	--zl-forest: #172e1f;
	--zl-oxblood: #290808;
	--zl-wine: #661813;
	--zl-olive: #6f6d5b;
	--zl-caramel: #c48342;
	--zl-cream: #fcf6f0;
	--zl-white: #ffffff;
	--zl-line: rgba(112, 110, 92, 0.35);
	--zl-serif: "Forum", Georgia, "Times New Roman", serif;
	--zl-sans: "Glacial Indifference", "Questrial", "Helvetica Neue", Arial, sans-serif;
	--zl-ease: cubic-bezier(0.65, 0, 0.25, 1);
}

/* ---------- Éléments de base ---------- */

.zl-kicker { font-family: var(--zl-sans); font-size: 0.95rem; color: var(--zl-caramel); margin: 0 0 0.4rem; }
.zl-muted { color: var(--zl-olive); }

.zl-btn {
	display: inline-flex; align-items: center; justify-content: center; gap: 0.6em;
	padding: 0.95em 1.7em; font-family: var(--zl-sans); font-size: 0.78rem; letter-spacing: 0.16em; text-transform: uppercase;
	background: var(--zl-forest); color: var(--zl-white) !important; border: 1px solid var(--zl-forest); text-decoration: none !important;
	transition: background 0.25s, border-color 0.25s;
}
.zl-btn:hover, .zl-btn:focus-visible { background: var(--zl-oxblood); border-color: var(--zl-oxblood); }

/* Soulignement animé : ajoutez la classe « zl-link » à n'importe quel lien (Elementor › Avancé › Classes CSS). */
.zl-link, .zl-link a {
	color: inherit; text-decoration: none !important; padding-bottom: 0.25em;
	background-image: linear-gradient(var(--zl-ul, currentColor), var(--zl-ul, currentColor));
	background-repeat: no-repeat; background-size: 100% 1px; background-position: 100% 100%;
}
.zl-link:hover, .zl-link a:hover { animation: zl-ul-swap 0.75s var(--zl-ease); }
@keyframes zl-ul-swap {
	0% { background-size: 100% 1px; background-position: 100% 100%; }
	48% { background-size: 0 1px; background-position: 100% 100%; }
	52% { background-size: 0 1px; background-position: 0 100%; }
	100% { background-size: 100% 1px; background-position: 0 100%; }
}

/* ---------- Carrousel produits ---------- */

.zl-carousel {
	position: relative; display: grid; place-items: center; min-height: 460px; height: 100%;
	padding: 3rem 3rem 8rem; color: var(--zl-cream); box-sizing: border-box;
}
.zl-carousel__figure { margin: 0; width: min(70%, 300px); aspect-ratio: 1; border-radius: 50%; background: var(--zl-wine); display: grid; place-items: center; }
.zl-carousel--plain .zl-carousel__figure { background: none; width: min(80%, 360px); }
.zl-carousel__img { display: block; width: 84%; }
.zl-carousel__img img, .zl-picker__img img { display: block; width: 100%; height: auto; aspect-ratio: 1; object-fit: contain; filter: drop-shadow(0 14px 22px rgba(41, 8, 8, 0.28)); }
.zl-carousel__caption {
	position: absolute; left: clamp(1.8rem, 3.5vw, 3.2rem); right: clamp(1.8rem, 3.5vw, 3.2rem); bottom: clamp(2.5rem, 5vw, 4rem);
	display: flex; justify-content: space-between; align-items: flex-end; gap: 1rem;
}
.zl-carousel__title { font-family: var(--zl-serif); font-weight: 400; font-size: 1.9rem; line-height: 1.05; color: inherit; margin: 0; }
.zl-carousel__link { --zl-ul: var(--zl-caramel); font-family: var(--zl-sans); font-size: 0.8rem; letter-spacing: 0.12em; text-transform: uppercase; white-space: nowrap; }
.zl-carousel__img, .zl-carousel__caption { transition: transform 0.45s var(--zl-ease), opacity 0.45s; }
.zl-carousel.is-changing .zl-carousel__img { transform: rotate(-90deg) scale(0.85); opacity: 0; }
.zl-carousel.is-changing .zl-carousel__caption { opacity: 0; transform: translateY(6px); }

/* ---------- Slider « Nos produits » ---------- */

.zl-picker { display: grid; grid-template-columns: 220px 1fr 300px; gap: clamp(1rem, 3vw, 3rem); align-items: center; }
.zl-picker__list { display: flex; flex-direction: column; border-top: 1px solid var(--zl-line); }
.zl-picker__tab {
	all: unset; box-sizing: border-box; cursor: pointer; display: flex; justify-content: space-between; align-items: center;
	padding: 1rem 0; border-bottom: 1px solid var(--zl-line); font-family: var(--zl-serif); font-size: 1.5rem; color: var(--zl-olive);
	transition: color 0.2s, padding 0.3s;
}
.zl-picker__tab span { width: 12px; height: 12px; border-radius: 50%; background: var(--zl-caramel); opacity: 0; transition: opacity 0.2s; }
.zl-picker__tab[aria-selected="true"] { color: var(--zl-oxblood); padding-left: 0.6rem; }
.zl-picker__tab[aria-selected="true"] span { opacity: 1; }
.zl-picker__tab:hover { color: var(--zl-wine); }
.zl-picker__tab:focus-visible { outline: 2px solid var(--zl-caramel); outline-offset: 3px; }
.zl-picker__stage { position: relative; aspect-ratio: 1.25; display: grid; place-items: center; overflow: hidden; }
.zl-picker__word {
	position: absolute; inset: 0; display: grid; place-items: center; font-family: var(--zl-serif); font-size: clamp(3.5rem, 10vw, 9rem);
	line-height: 0.9; text-align: center; color: transparent; -webkit-text-stroke: 1px var(--zl-caramel); opacity: 0.55; white-space: nowrap; pointer-events: none;
}
.zl-picker__img { width: 62%; position: relative; transition: transform 0.7s cubic-bezier(0.2, 0.7, 0.2, 1), opacity 0.35s; }
.zl-picker__img.is-swapping { transform: rotate(90deg) scale(0.9); opacity: 0; }
.zl-picker__name { font-family: var(--zl-serif); font-weight: 400; font-size: 2.2rem; line-height: 1.05; color: var(--zl-oxblood); margin: 0 0 0.8rem; }
.zl-picker__desc { color: var(--zl-olive); margin: 0 0 1.2rem; }
.zl-picker__rows { display: grid; grid-template-columns: auto 1fr; gap: 0.35rem 1rem; font-size: 0.9rem; margin: 0 0 1.8rem; padding-top: 1rem; border-top: 1px solid var(--zl-line); }
.zl-picker__rows dt { color: var(--zl-olive); margin: 0; }
.zl-picker__rows dd { color: var(--zl-oxblood); margin: 0; }

/* ---------- Cartes de recettes ---------- */

.zl-cards { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 2.2rem 1.4rem; }
:is(.zl-dark, .zl-forest, .zl-wine, .zl-olive) .zl-card :is(.zl-card__meta, .zl-card__body p) { color: rgba(252, 246, 240, 0.72) !important; }
:is(.zl-dark, .zl-forest, .zl-wine, .zl-olive) .zl-card h3 { color: var(--zl-cream) !important; }
.zl-card { display: flex; flex-direction: column; gap: 1rem; color: inherit; text-decoration: none !important; }
.zl-card__img { position: relative; aspect-ratio: 4 / 3; overflow: hidden; display: grid; place-items: center; background: var(--zl-wine); }
.zl-tone-1 .zl-card__img { background: var(--zl-olive); }
.zl-tone-2 .zl-card__img { background: #a86c33; }
.zl-tone-3 .zl-card__img { background: #23402d; }
.zl-card__img img { width: 100%; height: 100%; object-fit: cover; transition: transform 0.9s cubic-bezier(0.2, 0.7, 0.2, 1); }
.zl-card:hover .zl-card__img img { transform: scale(1.05); }
.zl-card__tag { position: absolute; top: 1rem; left: 1rem; background: var(--zl-cream); color: var(--zl-oxblood); font-size: 0.78rem; padding: 0.25em 0.75em; }
.zl-card__meta { font-size: 0.82rem; color: var(--zl-olive); margin: 0; }
.zl-card h3 { font-family: var(--zl-serif); font-weight: 400; font-size: 1.7rem; line-height: 1.08; color: var(--zl-oxblood); margin: 0.2rem 0 0.35rem; }
.zl-card__body p:not(.zl-card__meta) { color: var(--zl-olive); font-size: 0.95rem; margin: 0; }
.zl-card--big { grid-column: 1 / -1; display: grid; grid-template-columns: 1.3fr 1fr; gap: clamp(1.5rem, 4vw, 4rem); align-items: center; margin-bottom: 1.5rem; }
.zl-card--big .zl-card__img { aspect-ratio: 16 / 11; }
.zl-card--big h3 { font-size: clamp(2.4rem, 4.5vw, 3.8rem); }
.zl-card--big .zl-link { display: inline-block; margin-top: 1.2rem; color: var(--zl-forest); }
.zl-card--big:hover .zl-link { animation: zl-ul-swap 0.75s var(--zl-ease); }

.zl-filters { display: flex; justify-content: space-between; flex-wrap: wrap; gap: 0.8rem; padding: 0 0 2rem; }
.zl-filters > div { display: flex; flex-wrap: wrap; gap: 0.45rem; }
.zl-chip { all: unset; cursor: pointer; padding: 0.5em 1.1em; border: 1px solid var(--zl-line); font-family: var(--zl-sans); font-size: 0.88rem; color: var(--zl-oxblood); transition: background 0.2s, color 0.2s; }
.zl-chip:hover { border-color: var(--zl-oxblood); }
.zl-chip[aria-pressed="true"] { background: var(--zl-oxblood); border-color: var(--zl-oxblood); color: var(--zl-cream); }
.zl-chip:focus-visible { outline: 2px solid var(--zl-caramel); outline-offset: 2px; }
.zl-card.is-hidden { display: none; }

/* ---------- Page d'une recette ---------- */

.zl-facts { display: grid; grid-template-columns: repeat(auto-fit, minmax(120px, 1fr)); border-top: 1px solid var(--zl-line); border-bottom: 1px solid var(--zl-line); margin: 0 0 2rem; }
.zl-facts > div { padding: 1rem 1rem 1rem 0; }
.zl-facts dt { font-size: 0.8rem; color: var(--zl-olive); margin: 0; }
.zl-facts dd { font-family: var(--zl-serif); font-size: 1.3rem; color: var(--zl-oxblood); line-height: 1.2; margin: 0; }
.zl-recipe-h { font-family: var(--zl-serif); font-weight: 400; font-size: 2rem; color: var(--zl-oxblood); margin: 2.2rem 0 0.8rem; }
.zl-ingredients { list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--zl-line); }
.zl-ingredients li { display: flex; justify-content: space-between; gap: 1rem; padding: 0.7rem 0; border-bottom: 1px solid var(--zl-line); margin: 0; }
.zl-ingredients li span:last-child { color: var(--zl-olive); }
.zl-steps ol { list-style: none; counter-reset: zl-step; padding: 0; }
.zl-steps ol > li { counter-increment: zl-step; display: grid; grid-template-columns: 3rem 1fr; padding: 0.6rem 0; }
.zl-steps ol > li::before { content: counter(zl-step, decimal-leading-zero); font-family: var(--zl-serif); font-size: 1.5rem; color: var(--zl-caramel); line-height: 1.2; }
.zl-recipe-product { display: grid; grid-template-columns: 130px 1fr; gap: 1.4rem; align-items: center; margin-top: 2.6rem; background: var(--zl-white); padding: 1.2rem; }
.zl-recipe-product__img img { display: block; width: 100%; height: auto; }
.zl-recipe-product h3 { font-family: var(--zl-serif); font-weight: 400; font-size: 1.6rem; line-height: 1.1; color: var(--zl-oxblood); margin: 0 0 0.3rem; }
.zl-recipe-product .zl-btn { margin-top: 0.8rem; }
.zl-recipes-more { margin-top: 3.5rem; }

/* ---------- Fiche produit WooCommerce ---------- */

.zl-product-page .product_title { font-family: var(--zl-serif); font-weight: 400; font-size: clamp(2.6rem, 5vw, 4.3rem); line-height: 1.02; color: var(--zl-oxblood); }
.zl-product-page .summary .price { font-family: var(--zl-serif); font-size: 2rem; color: var(--zl-oxblood); padding: 1rem 0; border-top: 1px solid var(--zl-line); border-bottom: 1px solid var(--zl-line); }
.zl-product-page .woocommerce-product-details__short-description { color: var(--zl-olive); }
.zl-product-page .summary .single_add_to_cart_button { font-family: var(--zl-sans); letter-spacing: 0.16em; text-transform: uppercase; font-size: 0.78rem; background: var(--zl-forest); border-color: var(--zl-forest); color: var(--zl-white); border-radius: 0; padding: 1em 1.8em; }
.zl-product-page .summary .single_add_to_cart_button:hover { background: var(--zl-oxblood); border-color: var(--zl-oxblood); }

/* Formats en boutons (la liste d'origine reste présente pour WooCommerce). */
.zl-formats { display: grid; grid-template-columns: repeat(3, 1fr); gap: 0.5rem; margin: 0.4rem 0 1rem; }
.zl-format { all: unset; box-sizing: border-box; cursor: pointer; text-align: left; border: 1px solid var(--zl-line); padding: 0.85rem 0.9rem; font-family: var(--zl-serif); font-size: 1.2rem; color: var(--zl-oxblood); transition: border-color 0.2s, background 0.2s; }
.zl-format:hover { border-color: var(--zl-oxblood); }
.zl-format[aria-pressed="true"] { border-color: var(--zl-oxblood); background: var(--zl-white); box-shadow: inset 0 0 0 1px var(--zl-oxblood); }
.zl-format[disabled] { opacity: 0.4; cursor: not-allowed; text-decoration: line-through; }
.zl-format:focus-visible { outline: 2px solid var(--zl-caramel); outline-offset: 2px; }
.zl-visually-hidden { position: absolute !important; width: 1px !important; height: 1px !important; padding: 0 !important; margin: -1px !important; overflow: hidden !important; clip: rect(0, 0, 0, 0) !important; white-space: nowrap !important; border: 0 !important; }

.zl-pro-notice { display: flex; justify-content: space-between; align-items: center; gap: 1rem; margin: 1.2rem 0; padding: 1rem 1.1rem; background: #f3e6d7; font-size: 0.9rem; color: var(--zl-oxblood); }
.zl-pro-notice .zl-link { white-space: nowrap; }

/* Onglets en accordéon (généré par le script, les onglets d'origine servent de repli). */
.zl-accordion { border-top: 1px solid var(--zl-line); margin: 2rem 0; clear: both; }
.zl-accordion details { border-bottom: 1px solid var(--zl-line); }
.zl-accordion summary { list-style: none; cursor: pointer; padding: 1.05rem 0; font-family: var(--zl-serif); font-size: 1.35rem; color: var(--zl-oxblood); display: flex; justify-content: space-between; }
.zl-accordion summary::-webkit-details-marker { display: none; }
.zl-accordion summary::after { content: "+"; color: var(--zl-caramel); }
.zl-accordion details[open] summary::after { content: "–"; }
.zl-accordion .zl-accordion__panel { padding-bottom: 1.2rem; color: var(--zl-olive); }
.zl-accordion .zl-accordion__panel > h2:first-child { display: none; }
.woocommerce-tabs.zl-tabs-replaced { display: none; }

.zl-product-recipes { clear: both; padding: clamp(2.5rem, 6vw, 5rem) 0; }
.zl-product-recipes h2 { font-family: var(--zl-serif); font-weight: 400; font-size: clamp(2.2rem, 4.5vw, 3.4rem); color: var(--zl-oxblood); margin: 0 0 2rem; }

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

@media (max-width: 980px) {
	.zl-picker { grid-template-columns: 1fr; }
	.zl-picker__list { flex-direction: row; overflow-x: auto; border-top: 0; gap: 0.4rem; }
	.zl-picker__tab { white-space: nowrap; padding: 0.6rem 1rem; font-size: 1.2rem; border: 1px solid var(--zl-line); }
	.zl-picker__tab[aria-selected="true"] { padding-left: 1rem; }
	.zl-picker__tab span { display: none; }
	.zl-cards { grid-template-columns: 1fr; }
	.zl-card--big { grid-template-columns: 1fr; }
	.zl-carousel { padding: 2.5rem 1.5rem 7rem; }
	.zl-carousel__caption { left: 1.5rem; right: 1.5rem; bottom: 2.2rem; }
	.zl-formats { grid-template-columns: repeat(2, 1fr); }
	.zl-recipe-product { grid-template-columns: 90px 1fr; }
}

@media (prefers-reduced-motion: reduce) {
	.zl-carousel *, .zl-picker *, .zl-card *, .zl-link { transition: none !important; animation: none !important; }
}

/* ======================================================================
 * Sections de pages (blocs WordPress ou Elementor)
 * Ajoutez ces classes dans « Classe(s) CSS supplémentaire(s) » d'un bloc Groupe ou Colonnes.
 *   zl-section            espacement de section
 *   zl-dark / zl-forest / zl-wine / zl-caramel / zl-olive / zl-cream / zl-white   fonds
 *   zl-split              colonnes collées, hauteur généreuse (hero, damier)
 *   zl-center             texte centré
 *   zl-kicker             petit surtitre (sur un paragraphe)
 *   zl-points             liste d'avantages
 *   zl-tags               boutons en étiquettes
 *   zl-faq                questions/réponses (blocs Détails)
 *   zl-fruit              image de fruit avec ombre
 *   zl-flush              colonne sans marge intérieure
 * ====================================================================== */

.zl-section { padding: clamp(3.5rem, 8vw, 6.5rem) clamp(1rem, 4vw, 3rem) !important; margin-block: 0 !important; box-sizing: border-box; }
.zl-dark { background: var(--zl-oxblood) !important; color: var(--zl-cream) !important; }
.zl-forest { background: var(--zl-forest) !important; color: var(--zl-cream) !important; }
.zl-wine { background: var(--zl-wine) !important; color: var(--zl-cream) !important; }
.zl-olive { background: var(--zl-olive) !important; color: var(--zl-cream) !important; }
.zl-caramel { background: var(--zl-caramel) !important; color: var(--zl-oxblood) !important; }
.zl-cream { background: var(--zl-cream) !important; color: var(--zl-wine) !important; }
.zl-white { background: var(--zl-white) !important; color: var(--zl-wine) !important; }
.zl-center { text-align: center; }
.zl-center .wp-block-buttons { justify-content: center; }

:is(.zl-section, .zl-split) :is(h1, h2, h3, h4) { font-family: var(--zl-serif); font-weight: 400; letter-spacing: -0.01em; line-height: 1.05; color: inherit; }
:is(.zl-section, .zl-split) h1 { font-size: clamp(2.8rem, 5.6vw, 5.6rem); margin: 0 0 1.4rem; }
:is(.zl-section, .zl-split) :is(h1, h2, h3) { word-break: normal; overflow-wrap: normal; hyphens: manual; }
:is(.zl-section, .zl-split) :is(h1, h2, h3) a { text-decoration: none; color: inherit; transition: color 0.25s; }
:is(.zl-section, .zl-split) :is(h1, h2, h3) a:hover { color: var(--zl-caramel); }
:is(.zl-section, .zl-split) h2 { font-size: clamp(2.2rem, 4.5vw, 3.6rem); margin: 0 0 1.2rem; }
:is(.zl-section, .zl-split) h3 { font-size: clamp(1.5rem, 2.4vw, 1.9rem); margin: 0 0 0.5rem; }
:is(.zl-cream, .zl-white, .zl-section:not(.zl-dark):not(.zl-forest):not(.zl-wine):not(.zl-olive)) :is(h1, h2, h3) { color: var(--zl-oxblood); }
:is(.zl-section, .zl-split) :is(p, li) { font-size: 1.05rem; line-height: 1.65; }
.wp-block-column p { max-width: 62ch; }
.zl-center p { max-width: 62ch; margin-left: auto !important; margin-right: auto !important; }
.zl-section.is-layout-constrained > :not(.alignfull):not(.alignwide) { margin-left: auto !important; margin-right: auto !important; }
:is(.zl-dark, .zl-forest, .zl-wine, .zl-olive) p:not(.zl-kicker) { color: rgba(252, 246, 240, 0.85); }
:is(.zl-cream, .zl-white) p:not(.zl-kicker) { color: var(--zl-olive); }
p.zl-kicker { font-size: 0.95rem !important; color: var(--zl-caramel) !important; margin-bottom: 0.6rem; }
.zl-caramel p.zl-kicker { color: var(--zl-oxblood) !important; }
:is(.zl-section, .zl-split) a:not(.wp-block-button__link):not(.zl-btn):not(.zl-card):not(.zl-link) { color: inherit; }

/* Boutons des blocs */
:is(.zl-section, .zl-split) .wp-block-button__link {
	border-radius: 0 !important; font-family: var(--zl-sans); font-size: 0.78rem; letter-spacing: 0.16em; text-transform: uppercase;
	padding: 0.95em 1.7em !important; background: var(--zl-forest); color: var(--zl-white) !important; border: 1px solid var(--zl-forest);
	transition: background 0.25s, color 0.25s, border-color 0.25s;
}
:is(.zl-section, .zl-split) .wp-block-button__link:hover { background: var(--zl-oxblood); border-color: var(--zl-oxblood); }
:is(.zl-dark, .zl-forest, .zl-wine, .zl-olive) .wp-block-button:not(.is-style-outline) .wp-block-button__link { background: var(--zl-caramel); border-color: var(--zl-caramel); }
:is(.zl-dark, .zl-forest, .zl-wine, .zl-olive) .wp-block-button:not(.is-style-outline) .wp-block-button__link:hover { background: var(--zl-cream); border-color: var(--zl-cream); color: var(--zl-oxblood) !important; }
:is(.zl-section, .zl-split) .is-style-outline .wp-block-button__link { background: transparent; color: currentColor !important; border-color: currentColor; }
:is(.zl-section, .zl-split) .is-style-outline .wp-block-button__link:hover { background: var(--zl-oxblood); color: var(--zl-cream) !important; border-color: var(--zl-oxblood); }
:is(.zl-dark, .zl-forest, .zl-wine, .zl-olive) .is-style-outline .wp-block-button__link:hover { background: var(--zl-cream); color: var(--zl-oxblood) !important; border-color: var(--zl-cream); }
.zl-caramel .wp-block-button:not(.is-style-outline) .wp-block-button__link { background: var(--zl-oxblood); border-color: var(--zl-oxblood); }

/* Colonnes collées (hero, damier) */
.wp-block-columns.zl-split { gap: 0 !important; margin-top: 0 !important; margin-bottom: 0 !important; max-width: none !important; }
/* Pleine largeur : annule la marge latérale du thème (Twenty Twenty-Five et thèmes par blocs). */
.wp-block-columns.zl-split.alignfull { margin-left: calc(var(--wp--style--root--padding-left, 0px) * -1) !important; margin-right: calc(var(--wp--style--root--padding-right, 0px) * -1) !important; width: auto !important; }
.zl-designed-page .wp-block-post-content > .alignfull:first-child { margin-top: 0 !important; }
.zl-designed-page .wp-site-blocks > footer, .zl-designed-page footer.wp-block-template-part { margin-block-start: 0 !important; }
.zl-designed-page main { margin-bottom: 0 !important; padding-bottom: 0 !important; }
.zl-split > .wp-block-column { padding: clamp(2rem, 6vw, 5rem); min-height: 560px; display: flex; flex-direction: column; justify-content: center; box-sizing: border-box; }
.zl-split > .wp-block-column.zl-bottom { justify-content: flex-end; }
.zl-split > .wp-block-column.zl-flush { padding: 0; }
.zl-split.zl-hero > .wp-block-column { min-height: min(86vh, 760px); }
.zl-split > .zl-flush > .zl-carousel { flex: 1; }

/* Images de fruits */
.wp-block-image.zl-fruit { margin: 0 auto; max-width: min(78%, 460px); }
.wp-block-image.zl-fruit img { filter: drop-shadow(0 20px 30px rgba(20, 8, 6, 0.4)); }

/* Liste d'avantages */
ul.zl-points { list-style: none; padding: 0; margin: 0 0 2rem; border-top: 1px solid rgba(41, 8, 8, 0.25); }
ul.zl-points li { padding: 0.9rem 0; border-bottom: 1px solid rgba(41, 8, 8, 0.25); margin: 0; }
ul.zl-points li strong { display: block; font-family: var(--zl-serif); font-weight: 400; font-size: 1.6rem; line-height: 1.2; }
:is(.zl-dark, .zl-forest, .zl-wine, .zl-olive) ul.zl-points { border-color: rgba(252, 246, 240, 0.25); }
:is(.zl-dark, .zl-forest, .zl-wine, .zl-olive) ul.zl-points li { border-color: rgba(252, 246, 240, 0.25); }
ol.zl-steps { list-style: none; counter-reset: zls; padding: 0; margin: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(190px, 1fr)); gap: 1.4rem; }
ol.zl-steps li { counter-increment: zls; border-top: 1px solid currentColor; padding-top: 1.2rem; margin: 0; }
ol.zl-steps li::before { content: counter(zls, decimal-leading-zero); display: block; font-family: var(--zl-serif); font-size: 3rem; line-height: 1; color: var(--zl-caramel); margin-bottom: 1rem; }
ol.zl-steps li strong { display: block; font-family: var(--zl-serif); font-weight: 400; font-size: 1.5rem; margin-bottom: 0.4rem; }

/* Étiquettes */
.wp-block-buttons.zl-tags { gap: 13px; }
:is(.zl-section, .zl-split) .zl-tags .wp-block-button__link { background: var(--zl-olive) !important; border-color: var(--zl-olive) !important; color: var(--zl-cream) !important; text-transform: none; letter-spacing: 0; font-size: 0.92rem; padding: 0.5em 1em !important; }
:is(.zl-section, .zl-split) .zl-tags .wp-block-button__link:hover { background: var(--zl-caramel) !important; border-color: var(--zl-caramel) !important; }

/* FAQ (blocs Détails) */
.zl-faq { border-top: 1px solid var(--zl-line); }
.zl-faq details, details.zl-faq-item { border-bottom: 1px solid var(--zl-line); margin: 0 !important; }
.zl-faq summary { list-style: none; cursor: pointer; padding: 1.05rem 0; font-family: var(--zl-serif); font-size: 1.35rem; color: var(--zl-oxblood); display: flex; justify-content: space-between; gap: 1rem; }
.zl-faq summary::-webkit-details-marker { display: none; }
.zl-faq summary::after { content: "+"; color: var(--zl-caramel); }
.zl-faq details[open] summary::after { content: "–"; }
.zl-faq details p { color: var(--zl-olive); padding-bottom: 1rem; margin: 0; }

/* Citation */
.zl-section .wp-block-quote { border-left: 2px solid var(--zl-caramel); padding-left: 1.4rem; margin: 2.4rem 0 0; }
.zl-section .wp-block-quote p { font-family: var(--zl-serif); font-size: clamp(1.6rem, 2.8vw, 2.2rem); line-height: 1.2; color: var(--zl-oxblood); }

/* Lien animé des blocs (paragraphe avec la classe zl-link-p) */
p.zl-link-p a { color: var(--zl-forest); text-decoration: none; padding-bottom: 0.25em; background-image: linear-gradient(currentColor, currentColor); background-repeat: no-repeat; background-size: 100% 1px; background-position: 100% 100%; }
p.zl-link-p a:hover { animation: zl-ul-swap 0.75s var(--zl-ease); }

@media (max-width: 781px) {
	.zl-split > .wp-block-column { min-height: 0; }
	.zl-split.zl-hero > .wp-block-column { min-height: 0; }
	.zl-split > .wp-block-column.zl-flush { min-height: 440px; }
}

/* Titre de page masqué sur les pages construites avec les sections Zestline */
.zl-designed-page .wp-block-post-title, .zl-designed-page .entry-header, .zl-designed-page .page-header { display: none !important; }
.zl-designed-page :is(main, .site-main) > .wp-block-group:first-child { padding-top: 0 !important; margin-top: 0 !important; }

/* ---------- Formulaires ---------- */
.zl-form-wrap{max-width:820px}
.zl-form{display:grid;grid-template-columns:1fr 1fr;gap:1.2rem 1.4rem;margin:0}
.zl-field--full,.zl-form .zl-consent,.zl-form > div.zl-field--full{grid-column:1/-1}
.zl-field{display:grid;gap:.35rem}
.zl-form label{font-family:var(--zl-sans);font-size:.85rem;color:var(--zl-olive)}
.zl-form input[type="text"],.zl-form input[type="email"],.zl-form input[type="tel"],.zl-form select,.zl-form textarea{
	width:100%;border:0;border-bottom:1px solid var(--zl-olive);background:transparent;padding:.65rem 0;font-family:var(--zl-sans);font-size:1rem;color:var(--zl-oxblood);border-radius:0;box-shadow:none}
.zl-form textarea{border:1px solid var(--zl-line);padding:.8rem;min-height:140px;resize:vertical}
.zl-form select{padding:.65rem 0}
.zl-form :is(input,select,textarea):focus{outline:none;border-color:var(--zl-caramel)}
.zl-checks{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:.5rem}
.zl-checks label{display:flex;align-items:center;gap:.5rem;border:1px solid var(--zl-line);padding:.6rem .8rem;color:var(--zl-oxblood);font-size:.95rem;cursor:pointer}
.zl-checks input{accent-color:var(--zl-forest)}
.zl-consent{display:flex;gap:.6rem;align-items:flex-start;font-size:.88rem;color:var(--zl-olive)}
.zl-consent input{margin-top:.3rem;accent-color:var(--zl-forest)}
.zl-consent a{color:var(--zl-forest)}
.zl-form .zl-btn{border:1px solid var(--zl-forest);cursor:pointer}
.zl-hp{position:absolute!important;left:-9999px!important;height:1px;overflow:hidden}
.zl-form-ok{background:var(--zl-forest);color:var(--zl-cream);padding:1rem 1.2rem;margin:0 0 1.4rem;font-size:.95rem}
.zl-form-error{background:#f3e6d7;border-left:3px solid var(--zl-caramel);color:var(--zl-oxblood);padding:1rem 1.2rem;margin:0 0 1.4rem;font-size:.95rem}
@media (max-width:781px){.zl-form{grid-template-columns:1fr}}

/* ---------- Séparateurs entre colonnes et blocs ---------- */
:is(.zl-section,.zl-split) .wp-block-columns:not(.zl-split) > .wp-block-column + .wp-block-column{border-left:1px solid var(--zl-line);padding-left:clamp(1rem,2.5vw,2.2rem)}
:is(.zl-dark,.zl-forest,.zl-wine,.zl-olive) .wp-block-columns:not(.zl-split) > .wp-block-column + .wp-block-column{border-left-color:rgba(252,246,240,.25)}
.zl-section .wp-block-columns + .wp-block-columns{border-top:1px solid var(--zl-line);margin-top:0;padding-top:clamp(1.5rem,3vw,2.5rem)}
:is(.zl-dark,.zl-forest,.zl-wine,.zl-olive) .wp-block-columns + .wp-block-columns{border-top-color:rgba(252,246,240,.25)}
.zl-section .wp-block-separator{border:0;border-top:1px solid var(--zl-line);opacity:1;margin:2rem 0;max-width:none}
:is(.zl-dark,.zl-forest,.zl-wine,.zl-olive) .wp-block-separator{border-top-color:rgba(252,246,240,.25)}
@media (max-width:781px){
	:is(.zl-section,.zl-split) .wp-block-columns:not(.zl-split) > .wp-block-column + .wp-block-column{border-left:0;border-top:1px solid var(--zl-line);padding-left:0;padding-top:1.4rem}
}
