/*
Theme Name: Timprod
Theme URI: https://timprod10.fr
Author: Manech Hurelle
Description: Thème de la boutique Timprod. Charte « Le trait et la cote » : le logo dessiné est le seul geste libre, tout le reste se trace comme un patron de modéliste. Couleurs, polices et tailles sont dans theme.json ; ce fichier ne garde que ce que theme.json ne sait pas dire.
Version: 0.3.9
Requires at least: 6.6
Requires PHP: 8.0
License: GPLv2 or later
Text Domain: timprod
*/

:root {
	--barre: 232px;
	--cran: 9px;
	--gout: clamp(16px, 4vw, 48px);
	--admin: var(--wp-admin--admin-bar--height, 0px);
}

/* ——— Archivo change de largeur selon le rôle (axe wdth, absent de theme.json) ——— */
h1, h2, h3, h4, h5, h6 { font-stretch: 62%; text-wrap: balance; }
.wp-element-button, .wp-block-button__link, .wp-block-navigation, .wc-block-mini-cart,
.surtitre, .bandeau, .carte-nom, .is-style-petites-capitales { font-stretch: 112%; }
.wp-element-button, .wp-block-button__link { transition: background-color .2s cubic-bezier(.16, 1, .3, 1); }
a { text-decoration-thickness: 1px; text-underline-offset: 4px; }
:focus-visible { outline: 2px solid var(--wp--preset--color--magenta); outline-offset: 3px; }
.has-encre-background-color :focus-visible, .has-bleu-background-color :focus-visible { outline-color: var(--wp--preset--color--ivoire); }
/* Mouvement réduit : chaque geste s'affiche déjà fait. `*` ne touche pas ::before/::after, où vivent l'aiguille, les
   coutures et les crans : couture tracée et aiguille couchée au départ au survol du bouton d'achat, cran déjà posé,
   panneau du poinçon ouvert d'un coup. Le fil de lecture garde sa couture (la position lue), sans aiguille qui file. */
@media (prefers-reduced-motion: reduce) {
	*, ::before, ::after { transition: none !important; animation: none !important; }
	.fil-lecture span { display: none; }
}

/* Les parties du gabarit se touchent : pas d'écart entre en-tête et contenu. */
.wp-site-blocks > * { margin-block-start: 0; }

/* ——— Petites capitales larges : surtitre, légendes de navigation ——— */
.surtitre, .is-style-petites-capitales {
	font-size: 12.5px; font-weight: 500; line-height: 1.3; letter-spacing: .06em; text-transform: uppercase;
}

/* ——— Bandeau de livraison ——— */
.bandeau { text-align: center; font-size: 11.5px; font-weight: 500; line-height: 1.2; letter-spacing: .08em; text-transform: uppercase; }
.bandeau p { margin: 0; }

/* ——— Barre : logo, menu, panier ——— */
.barre { gap: 16px; }
.barre .wp-block-site-logo img { height: auto; }
.barre .wp-block-navigation,
.barre .wc-block-mini-cart__button { font-size: 12.5px; font-weight: 500; letter-spacing: .06em; text-transform: uppercase; }
.barre .wp-block-navigation-item__content { text-decoration: none; position: relative; }
.barre .wp-block-navigation-item__content:hover { color: var(--wp--preset--color--bleu); }

/* Cran magenta devant la page active */
/* Journal : un lien libre, le cran se pose par la page (journal, article, catégorie) */
.barre .current-menu-item > .wp-block-navigation-item__content::before,
:is(.blog, .single-post, .category) .barre a[href="/journal/"]::before {
	content: ""; position: absolute; left: -17px; top: 50%; width: var(--cran); height: var(--cran);
	margin-top: calc(var(--cran) / -2); background: var(--wp--preset--color--magenta);
	clip-path: polygon(0 0, 100% 50%, 0 100%);
}

/* Bouton « Menu » du téléphone : ligne de coupe */
.barre .wp-block-navigation__responsive-container-open {
	height: 44px; padding: 0 16px; border: 1px solid currentColor; font-size: 12px; letter-spacing: .06em; text-transform: uppercase;
}
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content { font-size: 20px; }
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container .wp-block-navigation-item__content { font-size: 16px; text-transform: none; letter-spacing: .02em; }
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container { padding: 8px 0 8px 16px !important; gap: 10px; }
.wp-block-navigation__responsive-container.is-menu-open { padding: 24px var(--gout); }

/* Panier : le mot et le nombre, sans pictogramme (« PANIER (2) ») */
.barre .wc-block-mini-cart__button { padding: 0; min-height: 0; color: inherit; gap: 0; }
.barre .wc-block-mini-cart__button:hover { color: var(--wp--preset--color--bleu); opacity: 1; }
.barre .wc-block-mini-cart__icon { display: none; }
.barre .wc-block-mini-cart__quantity-badge { display: inline-flex; align-items: center; gap: .4em; }
.barre .wc-block-mini-cart__quantity-badge::before { content: "Panier"; }
.barre .wc-block-mini-cart__badge {
	position: static !important; transform: none !important; display: inline !important; min-width: 0 !important; height: auto !important;
	padding: 0 !important; border: 0 !important; border-radius: 0 !important; background: none !important; color: inherit !important;
	font: inherit !important; visibility: visible !important; margin: 0 !important;
}
.barre .wc-block-mini-cart__badge::before { content: "("; }
.barre .wc-block-mini-cart__badge::after { content: ")"; }

/* Mention de prix : en bas de la colonne, à la place du pied de page (ordinateur seulement) */
.barre-note { display: none; margin: 0; font-size: 11px; line-height: 1.5; color: var(--wp--preset--color--encre-2); }

/* Téléphone et tablette : barre fixe en haut */
@media (max-width: 959px) {
	header.wp-block-template-part { display: contents; } /* la barre colle à toute la page, pas à l'en-tête */
	.barre { position: sticky; top: var(--admin); z-index: 20; padding: 12px var(--gout); border-bottom: 1px solid var(--wp--preset--color--filet); }
	.barre .wp-block-site-logo { margin-right: auto; }
	.barre .wp-block-site-logo img { width: 84px !important; }
}
/* Téléphone et tablette : le panier se touche du pouce (44 px) */
@media (max-width: 959px) {
	.barre .wc-block-mini-cart__button { min-height: 44px; padding: 0 6px; }
}
/* Téléphone : bouton Menu à droite, sous le pouce ; la barre d'admin n'y est pas fixe.
   Ouvert, le menu se déplie SOUS la barre (logo et panier restent) : la barre fait 80 px (logo 55 + 2 × 12 + filet),
   le bandeau s'efface pour qu'elle soit en haut, et « Fermer » se pose à la place de « Menu ». */
@media (max-width: 599px) {
	.barre { top: 0; }
	.barre .wp-block-navigation { order: 2; }
	.barre .wp-block-navigation__responsive-container-open { display: flex; align-items: center; }
	.has-modal-open :is(.bandeau, .poincon, .barre-achat) { display: none !important; }
	.barre .wp-block-navigation__responsive-container.is-menu-open {
		inset: 80px 0 0 0; z-index: 1 !important; padding: 28px var(--gout) 40px; animation: none;
		border-top: 0; overflow-y: auto; overscroll-behavior: contain;
	}
	.barre .is-menu-open .wp-block-navigation__responsive-container-close {
		position: fixed; top: 17px; right: var(--gout); height: 44px; padding: 0 16px;
		background: var(--wp--preset--color--ivoire); border: 1px solid currentColor;
		font-size: 12px; letter-spacing: .06em; text-transform: uppercase;
	}
	.is-menu-open .wp-block-navigation-item__content { padding-block: 8px; }
	.barre .is-menu-open .wp-block-navigation__responsive-container-content { padding-top: 0 !important; }
}
/* Tablette : le menu tient sur une ligne (sept rubriques à 768 px), Aide, Légal et Suivre en listes déroulantes */
@media (min-width: 600px) and (max-width: 959px) {
	.barre .wp-block-navigation { font-size: 12px; }
	.barre .wp-block-navigation__container { flex-direction: row; align-items: center; gap: 12px; }
	.barre .wp-block-navigation__submenu-container { background: var(--wp--preset--color--ivoire) !important; border: 1.5px solid var(--wp--preset--color--encre) !important; padding: 8px 14px !important; }
}

/* Ordinateur : colonne verticale à gauche, comme garconsjeunes.com et Stüssy */
@media (min-width: 960px) {
	.wp-site-blocks { padding-left: var(--barre); }
	.barre {
		position: fixed; top: var(--admin); bottom: 0; left: 0; width: var(--barre); z-index: 20;
		flex-direction: column !important; align-items: flex-start !important; justify-content: flex-start !important; gap: 40px !important;
		padding: 32px 24px 28px 45px; border-right: 1px solid var(--wp--preset--color--filet); overflow-y: auto;
	}
	.barre .wp-block-site-logo { margin-left: -17px; }
	.barre .wp-block-site-logo img { width: 132px !important; }
	.barre-note { display: block; margin-top: auto; }
	.barre .wp-block-navigation__container { flex-direction: column; align-items: flex-start; gap: 14px; }
	/* Le tiret de couture qui sépare les rubriques de l'aide */
	.barre .wp-block-navigation-link + .wp-block-navigation-submenu { margin-top: 18px; }
	.barre .wp-block-navigation-link + .wp-block-navigation-submenu::before {
		content: ""; position: absolute; top: -17px; left: 0; width: 24px; border-top: 1px dashed var(--wp--preset--color--encre-2);
	}
	/* Sous-menus Aide et Légal : dépliés dans la colonne, pas en surimpression */
	.barre .wp-block-navigation-submenu { flex-wrap: wrap; }
	.barre .wp-block-navigation__submenu-container {
		position: static !important; min-width: 0 !important; border: 0 !important; background: none !important;
		padding: 0 0 0 12px !important; gap: 10px; flex-basis: 100%;
	}
	.barre .wp-block-navigation-submenu__toggle[aria-expanded="true"] ~ .wp-block-navigation__submenu-container { padding-top: 12px !important; }
	.barre .wp-block-navigation__submenu-container .wp-block-navigation-item__content { padding: 0 !important; text-transform: none; letter-spacing: .02em; font-size: 13.5px; }
}

/* ——— Sections : ligne de couture en haut, cran magenta au départ ——— */
.is-style-section { position: relative; border-top: 1px dashed var(--wp--preset--color--encre-2); }
.is-style-section::before {
	content: ""; position: absolute; top: -1px; left: var(--gout); width: 14px; height: 10px;
	background: var(--wp--preset--color--magenta); clip-path: polygon(0 0, 100% 0, 50% 100%);
}
.is-style-section.has-bleu-background-color, .is-style-section.has-encre-background-color { border-top: 0; }
.is-style-section.has-bleu-background-color::before, .is-style-section.has-encre-background-color::before { display: none; }

/* ——— Pièces : la photo entière (2:3, le format de l'appareil : des épaules aux chaussures), nom en capitales, prix dessous ——— */
.pieces .wc-block-product-template { display: grid; list-style: none; margin: 0; padding: 0; grid-template-columns: repeat(2, minmax(0, 1fr)) !important; gap: clamp(16px, 3vw, 40px) !important; }
.pieces .wc-block-components-product-image,
.pieces .wc-block-components-product-image img { aspect-ratio: 2 / 3; width: 100%; object-fit: contain !important; /* le bloc écrit cover en ligne */ background: var(--wp--preset--color--ivoire-2); margin: 0 !important; }
.pieces .carte-nom { margin: 10px 0 0 !important; font-size: 12.5px !important; font-weight: 500; line-height: 1.5; letter-spacing: .05em; text-align: left !important; }
.pieces .carte-nom a { text-decoration: none; }
.pieces .wc-block-components-product-price { margin: 0 !important; font-size: 12.5px !important; font-stretch: 112%; letter-spacing: .05em; text-align: left !important; }

/* ——— Accueil : une colonne de photos au centre, comme Stüssy et garconsjeunes.com ; chacune ouvre la boutique ——— */
.vitrine { display: grid; justify-items: center; gap: 6px; }
.vitrine > * { margin: 0 !important; }
/* Une photo 2:3 remplit l'écran sous le bandeau ; les autres gardent leur format. */
.vitrine .wp-block-image { width: min(100%, calc((100svh - var(--admin) - 32px) * 2 / 3)); }
.vitrine .wp-block-image a { display: block; } /* en inline-block, le lien laisse 8 px sous la photo */
.vitrine .wp-block-image img { display: block; width: 100%; height: auto; }
/* La pièce sur la première photo : étiquette en ligne de coupe posée dans le coin, cran magenta sur le bord droit.
   Le lien de l'étiquette couvre toute la photo. */
.vitrine-piece { position: relative; width: min(100%, calc((100svh - var(--admin) - 32px) * 2 / 3)); }
.vitrine-piece > .wp-block-image { width: 100%; margin: 0; }
.vitrine .etiquette-piece {
	position: absolute; left: 16px; bottom: 16px; margin: 0; padding: 16px 28px 16px 18px; max-width: calc(100% - 32px); box-sizing: border-box;
	background: var(--wp--preset--color--ivoire); border: 1.5px solid var(--wp--preset--color--encre);
}
.etiquette-piece::after {
	content: ""; position: absolute; right: -1.5px; top: 18px; width: 10px; height: 14px;
	background: var(--wp--preset--color--magenta); clip-path: polygon(100% 0, 0 50%, 100% 100%);
}
.etiquette-piece > * { margin: 0; }
.etiquette-piece > * + * { margin-block-start: 6px; }
.etiquette-piece h2 { font-size: var(--wp--preset--font-size--sous-titre); line-height: 1; }
.etiquette-piece .is-style-donnee { color: var(--wp--preset--color--encre-2); }
.etiquette-piece .etiquette-prix { font-size: 17px; font-stretch: 112%; letter-spacing: .03em; }
.etiquette-piece .is-style-fleche { margin-block-start: 12px; font-size: 13.5px; font-weight: 600; font-stretch: 112%; letter-spacing: .07em; text-transform: uppercase; }
.etiquette-piece .is-style-fleche a { text-decoration: none; }
.etiquette-piece .is-style-fleche a::before { content: ""; position: absolute; inset: -9999px; } /* toute la photo ouvre la fiche (le groupe coupe ce qui dépasse) */
.vitrine-piece { overflow: hidden; }
.vitrine-piece:hover .etiquette-piece .is-style-fleche a { text-decoration: underline; }
/* La fin de la colonne : la pièce et son bouton, à gauche, sous la dernière photo */
.vitrine-achat { width: min(100%, calc((100svh - var(--admin) - 32px) * 2 / 3)); box-sizing: border-box; padding: 40px 0 var(--wp--preset--spacing--60); }
.vitrine-achat > * { margin: 0; }
.vitrine-achat > * + * { margin-block-start: 12px; }
.vitrine-achat .wp-block-buttons { margin-block-start: 24px; }
.vitrine-achat .is-style-fleche { margin-block-start: 20px; }

/* ——— Boutique : quatre pièces de front ; une seule pièce a la place d'une collection ——— */
.boutique-titre { margin: 0 0 var(--wp--preset--spacing--40); }
.boutique .carte-resume, .boutique .carte-suite { display: none; }
.boutique { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 48px clamp(16px, 2.4vw, 32px); }
.boutique > * { margin: 0 !important; }
.boutique .wc-block-product-template { display: contents !important; } /* les pièces se rangent dans la grille du bloc */
.boutique > .wc-block-components-notices { grid-column: 1 / -1; }
.boutique > .wc-block-components-notices:not(:has(*)) { display: none; } /* vide, il prendrait la place de la première pièce */
@media (min-width: 960px) { .boutique { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
/* Tant qu'il n'y a qu'une pièce : la photo haute de l'écran, le nom en titre, le résumé et l'appel à côté.
   Dès la deuxième pièce, la grille reprend. */
.boutique:not(:has(.wc-block-product ~ .wc-block-product)) .wc-block-product {
	grid-column: 1 / -1; display: grid; grid-template-columns: minmax(0, 1fr); row-gap: 12px;
}
.boutique:not(:has(.wc-block-product ~ .wc-block-product)) .wc-block-product > * { margin: 0 !important; }
.boutique:not(:has(.wc-block-product ~ .wc-block-product)) .carte-nom { margin-top: 8px !important; font-size: var(--wp--preset--font-size--sous-titre) !important; font-weight: 800; font-stretch: 62%; line-height: 1; letter-spacing: 0; }
.boutique:not(:has(.wc-block-product ~ .wc-block-product)) .wc-block-components-product-price { font-size: 20px !important; letter-spacing: .03em; }
.boutique:not(:has(.wc-block-product ~ .wc-block-product)) .carte-resume { display: block; max-width: 34em; }
.boutique .carte-resume p { margin: 0; font-size: 17px; line-height: 1.6; }
.boutique:not(:has(.wc-block-product ~ .wc-block-product)) .carte-suite { display: inline-block; justify-self: start; margin-top: 8px !important; }
.carte-suite {
	padding: 0 28px; line-height: 52px; background: var(--wp--preset--color--bleu); color: var(--wp--preset--color--ivoire);
	font-size: 13.5px; font-weight: 600; font-stretch: 112%; letter-spacing: .07em; text-transform: uppercase; text-decoration: none;
	transition: background-color .2s cubic-bezier(.16, 1, .3, 1);
}
.carte-suite::after { content: " →"; }
.carte-suite:hover { background: var(--wp--preset--color--bleu-appui); }
@media (min-width: 782px) {
	.boutique:not(:has(.wc-block-product ~ .wc-block-product)) .wc-block-product {
		grid-template-columns: min(58%, calc((100svh - var(--admin) - 240px) * 2 / 3)) minmax(0, 1fr); column-gap: clamp(28px, 5vw, 72px);
		grid-template-rows: repeat(4, auto) 1fr; align-items: start;
	}
	.boutique:not(:has(.wc-block-product ~ .wc-block-product)) .wc-block-components-product-image { grid-column: 1; grid-row: 1 / -1; }
	.boutique:not(:has(.wc-block-product ~ .wc-block-product)) .wc-block-product > :not(.wc-block-components-product-image) { grid-column: 2; }
	.boutique:not(:has(.wc-block-product ~ .wc-block-product)) .carte-nom { font-size: var(--wp--preset--font-size--titre) !important; line-height: .92; }
}

/* ——— Légende en donnée : Source Code Pro ——— */
/* ——— Encadré de texte légal (garantie des CGV) ——— */
.encadre { padding: 4px 24px; }

.is-style-donnee, .donnee { font-family: var(--wp--preset--font-family--donnee); font-size: 13px; line-height: 1.6; letter-spacing: .02em; }

/* ——— Citation de Timothé ——— */
.wp-block-quote { border-left: 1.5px solid var(--wp--preset--color--magenta); margin: 0; padding-left: 20px; }
.wp-block-quote p { font-size: var(--wp--preset--font-size--chapeau); line-height: 1.45; }
.wp-block-quote cite { font-style: normal; font-size: 14px; color: var(--wp--preset--color--encre-2); }

/* ——— Lien qui mène quelque part : flèche du droit-fil ——— */
.is-style-fleche a::after { content: " →"; }

/* ——— Fiche produit : les photos défilent à gauche, l'achat reste à droite ——— */
.woocommerce-breadcrumb { margin: 0 0 24px; font-size: 13px; color: var(--wp--preset--color--encre-2); }
.woocommerce-breadcrumb a { color: inherit; }
.fiche-colonnes { gap: clamp(24px, 4vw, 56px); }

.photos { display: grid; grid-template-columns: 1fr 1fr; gap: 6px; }
.photos img { display: block; width: 100%; height: auto; aspect-ratio: 2 / 3; object-fit: cover; background: var(--wp--preset--color--ivoire-2); }
/* La première aussi large que les deux du dessous réunies ; la dernière aussi quand elle resterait seule sur sa ligne. */
.photos img:first-child, .photos img:last-child:nth-child(even) { grid-column: 1 / -1; aspect-ratio: auto; }

.fiche-achat > * { margin-block: 0; }
.fiche-achat > * + * { margin-block-start: 20px; }
.fiche-achat h1 { margin: 0; }
.fiche-achat .wp-block-woocommerce-product-price { margin-block-start: 12px; font-size: 20px; font-stretch: 112%; letter-spacing: .03em; }
.fiche-achat .wp-block-post-excerpt__excerpt { margin: 0; }
.fiche-achat .fiche-volet { margin-block-start: 0; }
.fiche-achat > :not(.fiche-volet) + .fiche-volet { margin-block-start: 32px; }

/* Pastilles de variation (DESIGN.md, Chips) : une case de 52 × 46 en ligne de coupe, la valeur en chasse fixe. Choisie =
   aplat encre et cran magenta ; épuisée (WooCommerce pose disabled) = trait en diagonale, non cliquable. C'est le sélecteur
   de taille, et celui de tout attribut à venir ; la broderie a le sien plus bas. */
.wp-block-woocommerce-add-to-cart-with-options .wp-block-woocommerce-add-to-cart-with-options-variation-selector-attribute-name {
	font-size: 12.5px; font-weight: 500; font-stretch: 112%; letter-spacing: .06em; text-transform: uppercase;
}
.wp-block-woocommerce-add-to-cart-with-options .wc-block-product-filter-chips__fieldset { border: 0; margin: 0; padding: 0; min-width: 0; }
.wp-block-woocommerce-add-to-cart-with-options .wc-block-product-filter-chips__items { display: flex; flex-wrap: wrap; gap: 10px; }
.wp-block-woocommerce-add-to-cart-with-options .wc-block-product-filter-chips__item {
	position: relative; display: flex; align-items: center; justify-content: center; min-width: 52px; height: 46px; margin: 0; padding: 0 12px;
	background: var(--wp--preset--color--ivoire) !important; border: 1.5px solid var(--wp--preset--color--encre) !important; border-radius: 0;
	color: var(--wp--preset--color--encre) !important; cursor: pointer; font: 14px/1 var(--wp--preset--font-family--donnee); letter-spacing: .02em;
	transition: background-color .2s cubic-bezier(.16, 1, .3, 1);
}
.wp-block-woocommerce-add-to-cart-with-options .wc-block-product-filter-chips__item[hidden] { display: none; }
.wp-block-woocommerce-add-to-cart-with-options .wc-block-product-filter-chips__item:hover { background: var(--wp--preset--color--ivoire-2) !important; }
.wp-block-woocommerce-add-to-cart-with-options .wc-block-product-filter-chips__item[aria-checked="true"] {
	background: var(--wp--preset--color--encre) !important; color: var(--wp--preset--color--ivoire) !important;
}
.wp-block-woocommerce-add-to-cart-with-options .wc-block-product-filter-chips__item:disabled {
	opacity: 1; cursor: not-allowed; border-color: var(--wp--preset--color--filet) !important; color: var(--wp--preset--color--encre-2) !important;
	background: linear-gradient(to top right, transparent calc(50% - .5px), var(--wp--preset--color--encre-2) calc(50% - .5px) calc(50% + .5px), transparent calc(50% + .5px)) var(--wp--preset--color--ivoire) !important;
}
/* WooCommerce pose un contour d'un pixel au clic : seul le focus clavier en garde un, celui de la charte. */
.wp-block-woocommerce-add-to-cart-with-options .wc-block-product-filter-chips__item:focus { outline: none; }
.wp-block-woocommerce-add-to-cart-with-options .wc-block-product-filter-chips__item:focus-visible { outline: 2px solid var(--wp--preset--color--magenta); outline-offset: 3px; }
.wp-block-woocommerce-add-to-cart-with-options .wc-block-product-filter-chips__label { display: contents; }
.wp-block-woocommerce-add-to-cart-with-options .wc-block-product-filter-chips__label::before {
	content: ""; position: absolute; top: -1.5px; left: calc(50% - 7px); width: 14px; height: 10px; pointer-events: none;
	background: var(--wp--preset--color--magenta); clip-path: polygon(0 0, 100% 0, 50% 100%);
	transform: scaleY(0); transform-origin: top; transition: transform .3s cubic-bezier(.16, 1, .3, 1);
}
.wp-block-woocommerce-add-to-cart-with-options [aria-checked="true"] .wc-block-product-filter-chips__label::before { transform: none; }

/* Couleur de broderie et de biais (attribut WooCommerce pa_broderie) : chaque choix montre le 22BB brodé dans sa
   couleur sur un carré de denim brut. Une couleur ajoutée dans l'admin sans ligne ici garde un carré vide. */
.wp-block-woocommerce-add-to-cart-with-options [id^="attribute_pa_broderie-"] {
	flex-direction: column; gap: 8px; min-width: 0; height: auto; padding: 0;
	border: 0 !important; color: var(--wp--preset--color--encre-2) !important; font-size: 12px;
}
.wp-block-woocommerce-add-to-cart-with-options [id^="attribute_pa_broderie-"],
.wp-block-woocommerce-add-to-cart-with-options [id^="attribute_pa_broderie-"]:is(:hover, [aria-checked="true"], :disabled) { background: none !important; }
.wp-block-woocommerce-add-to-cart-with-options [id^="attribute_pa_broderie-"]::before {
	content: ""; width: 48px; height: 60px; background: #232c45; /* denim brut, pris sur les photos */
	outline: 1.5px solid transparent; outline-offset: 8px;
	transition: outline-color .3s cubic-bezier(.16, 1, .3, 1), outline-offset .3s cubic-bezier(.16, 1, .3, 1);
}
.wp-block-woocommerce-add-to-cart-with-options [id^="attribute_pa_broderie-"]::after {
	content: ""; position: absolute; top: 14px; left: calc(50% - 10px); width: 20px; height: 32px;
	background: var(--fil, transparent); mask: url(assets/images/22bb.svg) center / contain no-repeat;
}
/* Choisir, c'est tracer la ligne de coupe autour du carré : elle se resserre sur lui, le cran magenta tombe dessus. */
.wp-block-woocommerce-add-to-cart-with-options [id^="attribute_pa_broderie-"]:hover::before { outline-color: var(--wp--preset--color--filet); outline-offset: 3px; }
.wp-block-woocommerce-add-to-cart-with-options [id^="attribute_pa_broderie-"][aria-checked="true"] { color: var(--wp--preset--color--encre) !important; }
.wp-block-woocommerce-add-to-cart-with-options [id^="attribute_pa_broderie-"][aria-checked="true"]::before { outline-color: var(--wp--preset--color--encre); outline-offset: 3px; }
.wp-block-woocommerce-add-to-cart-with-options [id^="attribute_pa_broderie-"] .wc-block-product-filter-chips__label::before { top: -4.5px; }
/* Le contour du focus vit sur le carré, pas sur tout le bouton. */
.wp-block-woocommerce-add-to-cart-with-options [id^="attribute_pa_broderie-"]:focus-visible { outline: none; }
.wp-block-woocommerce-add-to-cart-with-options [id^="attribute_pa_broderie-"]:focus-visible::before { outline: 2px solid var(--wp--preset--color--magenta); outline-offset: 3px; }
/* Épuisée : le carré barré d'un fil ivoire, plus de ligne de coupe au survol. */
.wp-block-woocommerce-add-to-cart-with-options [id^="attribute_pa_broderie-"]:disabled::before {
	outline-color: transparent;
	background: linear-gradient(to top right, transparent calc(50% - .75px), var(--wp--preset--color--ivoire) calc(50% - .75px) calc(50% + .75px), transparent calc(50% + .75px)) #232c45;
}
/* Fils sur denim : le bleu de la charte (#0F16AF) disparaîtrait sur l'indigo, le fil bleu est donc plus vif. */
.wp-block-woocommerce-add-to-cart-with-options [value="bleu"] { --fil: #3a5bff; }
.wp-block-woocommerce-add-to-cart-with-options [value="rose"] { --fil: #db0b6e; }
.wp-block-woocommerce-add-to-cart-with-options [value="rouge"] { --fil: #e0261b; }
.wp-block-woocommerce-add-to-cart-with-options [value="noir"] { --fil: #0a0b10; }
.wp-block-woocommerce-add-to-cart-with-options [value="blanc"] { --fil: #faf9f4; }

/* Tant que broderie et taille ne sont pas choisies, le bouton reste désactivé (DESIGN.md) : aplat filet, pas de transparence. */
.wc-block-add-to-cart-with-options.is-invalid .wc-block-components-product-button__button {
	opacity: 1; background: var(--wp--preset--color--filet); color: var(--wp--preset--color--encre-2);
}
/* Cliqué quand même : l'erreur passe sous le bouton (elle précède le formulaire dans le code) et chaque liste
   sans choix passe en magenta, « à choisir ». Le choix fait, l'erreur s'efface. */
.wc-block-components-notices:has(> .wc-block-add-to-cart-with-options) { display: flex; flex-direction: column; }
.wc-block-components-notices:has(> .wc-block-add-to-cart-with-options) > .wc-block-components-notice-banner { order: 1; margin: 16px 0 0; }
/* ponytail: l'erreur d'attribut ne se distingue pas d'une erreur serveur ; une erreur rendue alors que le formulaire est
   complet (stock épuisé entre-temps) serait masquée aussi. Un filtre JS sur le texte si ça arrive. */
.wc-block-components-notices:has(> .wc-block-add-to-cart-with-options:not(.is-invalid)) > .wc-block-components-notice-banner.is-error { display: none; }
.wc-block-components-notices:has(> .is-error) .wp-block-woocommerce-add-to-cart-with-options-variation-selector-attribute:not(:has([aria-checked="true"])) .wp-block-woocommerce-add-to-cart-with-options-variation-selector-attribute-name { color: var(--wp--preset--color--magenta); }
.wc-block-components-notices:has(> .is-error) .wp-block-woocommerce-add-to-cart-with-options-variation-selector-attribute:not(:has([aria-checked="true"])) .wp-block-woocommerce-add-to-cart-with-options-variation-selector-attribute-name::after { content: " · à choisir"; }

/* Volets : Description, Guide des tailles, Livraison */
.fiche-volet { border-top: 1px solid var(--wp--preset--color--filet); }
.fiche-volet:last-child { border-bottom: 1px solid var(--wp--preset--color--filet); }
.fiche-volet > summary {
	display: flex; justify-content: space-between; align-items: center; gap: 16px; padding: 16px 0; cursor: pointer; list-style: none;
	font-size: 12.5px; font-weight: 500; font-stretch: 112%; letter-spacing: .06em; text-transform: uppercase;
}
.fiche-volet > summary::-webkit-details-marker { display: none; }
.fiche-volet > summary::after { content: "+"; font-family: var(--wp--preset--font-family--donnee); font-size: 17px; line-height: 1; }
.fiche-volet[open] > summary::after { content: "−"; }
.fiche-volet > :not(summary) { margin-block: 0 16px; }
.fiche-volet p { font-size: 15px; line-height: 1.6; margin-block: 0 12px; }
/* Guide des tailles : déplié d'office, son titre prend la place du volet */
.fiche-tailles > h2 { margin: 0; padding: 16px 0; }

/* Étiquette de la pièce (liste en chasse fixe dans la description) */
ul.donnee { list-style: none; margin: 0; padding: 12px 0 0; border-top: 1px dashed var(--wp--preset--color--filet); color: var(--wp--preset--color--encre-2); }
ul.donnee li + li { margin-top: 2px; }

.fiche .autres-pieces { margin-top: var(--wp--preset--spacing--80); }
.fiche .autres-pieces h2 { margin: 0 0 16px; font-size: 12.5px; }

/* Ordinateur : la colonne d'achat suit la lecture tant qu'elle tient dans l'écran (classe .tient, posée par functions.php) ;
   plus haute, elle défile avec la page, sans barre de défilement à elle. */
@media (min-width: 960px) {
	.fiche-achat { align-self: flex-start; }
	.fiche-achat.tient { position: sticky; top: calc(var(--admin) + 24px); }
}
/* Téléphone : les photos glissent du doigt, la suivante dépasse pour le montrer. */
@media (max-width: 781px) {
	.photos {
		display: flex; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none;
		margin-inline: calc(-1 * var(--wp--style--root--padding-left)); padding-inline: var(--wp--style--root--padding-left);
		scroll-padding-inline: var(--wp--style--root--padding-left);
	}
	.photos::-webkit-scrollbar { display: none; }
	.photos img { flex: 0 0 84%; scroll-snap-align: start; aspect-ratio: 2 / 3 !important; }
}

/* Pages de texte : de l'air avant chaque intertitre */
.wp-block-post-content > h2:not(:first-child) { margin-block-start: var(--wp--preset--spacing--60); }

/* ——— Guide des tailles : un tableau par pièce (page Guide des tailles et volet de la fiche) ——— */
.tailles .wp-block-table { margin: 0; overflow-x: auto; }
.tailles table { width: 100%; table-layout: auto; border-collapse: collapse; font-family: var(--wp--preset--font-family--donnee); font-size: 13px; }
.tailles .wp-block-table thead { border: 0; }
.tailles .wp-block-table th, .tailles .wp-block-table td { border: 0; border-bottom: 1px solid var(--wp--preset--color--filet); padding: 9px 8px; text-align: center; white-space: nowrap; }
.tailles .wp-block-table thead th {
	border-bottom: 1.5px solid var(--wp--preset--color--encre); font-family: var(--wp--preset--font-family--archivo);
	font-size: 12px; font-weight: 600; font-stretch: 112%; letter-spacing: .06em; text-transform: uppercase;
}
.tailles .wp-block-table th:first-child, .tailles .wp-block-table td:first-child { text-align: left; padding-left: 0; white-space: normal; font-family: var(--wp--preset--font-family--archivo); }
.tailles .wp-block-table + p { margin: 12px 0 0; font-size: 13px; color: var(--wp--preset--color--encre-2); }

/* ——— Bouton secondaire : ligne de coupe, aplat encre au survol ——— */
.wp-block-buttons .wp-block-button.is-style-outline > .wp-block-button__link {
	background: transparent; color: var(--wp--preset--color--encre); border: 1.5px solid var(--wp--preset--color--encre); padding: 17.5px 26.5px;
}
.wp-block-buttons .wp-block-button.is-style-outline > .wp-block-button__link:hover { background: var(--wp--preset--color--encre); color: var(--wp--preset--color--ivoire); }

/* ——— Atelier : ouverture ——— */
/* Le thème n'active pas l'écart entre blocs (blockGap) : les colonnes de la page posent le leur. */
.atelier-tete .wp-block-column > *, .sur-mesure .wp-block-column > *, .formulaire .wp-block-column > *, .questions .wp-block-column > * { margin-block: 0; }
.atelier-tete .wp-block-column > * + *, .sur-mesure .wp-block-column > * + *, .formulaire .wp-block-column > * + * { margin-block-start: 24px; }
.atelier-tete .wp-block-column > .wp-block-buttons { margin-block-start: 32px; }
.parcours > h2, .etabli > h2 { margin-block-start: 0; }
.etabli > h2 { margin-block-end: 24px; }
.atelier-tete .wp-block-columns { gap: clamp(28px, 5vw, 72px); }
.atelier-tete h1 { margin-block-start: 10px; }
.atelier-tete .has-chapeau-font-size { max-width: 32em; }
.atelier-tete .wp-block-image img { width: 100%; }

/* Étiquette de pièce : données en chasse fixe dans une ligne de coupe, cran magenta sur le bord droit */
:is(.etiquette, .is-style-etiquette) {
	position: relative; list-style: none; margin: 0; padding: 16px 22px; max-width: 36em;
	border: 1.5px solid var(--wp--preset--color--encre);
	font-family: var(--wp--preset--font-family--donnee); font-size: 13px; line-height: 1.6; letter-spacing: .02em;
}
:is(.etiquette, .is-style-etiquette)::after {
	content: ""; position: absolute; right: -1.5px; top: 18px; width: 10px; height: 14px;
	background: var(--wp--preset--color--magenta); clip-path: polygon(100% 0, 0 50%, 100% 100%);
}
:is(.etiquette, .is-style-etiquette) li { display: grid; grid-template-columns: 7em minmax(0, 1fr); gap: 12px; }
:is(.etiquette, .is-style-etiquette) li + li { margin-top: 7px; padding-top: 7px; border-top: 1px dashed var(--wp--preset--color--filet); }
:is(.etiquette, .is-style-etiquette) strong { font-weight: 400; text-transform: uppercase; color: var(--wp--preset--color--encre-2); }
/* Sous le bouton d'achat : les mêmes lignes, sans le cadre */
.fiche-conditions.is-style-etiquette { padding: 0; border: 0; font-size: 12.5px; }
.fiche-conditions.is-style-etiquette::after { content: none; }
/* Dans l'éditeur, chaque ligne est enveloppée d'un div.rich-text : pas de grille, le libellé garde sa largeur. */
.editor-styles-wrapper :is(.etiquette, .is-style-etiquette) li { display: block; }
.editor-styles-wrapper :is(.etiquette, .is-style-etiquette) strong { display: inline-block; min-width: 7em; margin-right: 12px; }
@media (max-width: 599px) {
	:is(.etiquette, .is-style-etiquette) { padding: 14px 18px; }
	:is(.etiquette, .is-style-etiquette) li { grid-template-columns: minmax(0, 1fr); gap: 0; }
}

/* ——— Atelier : le parcours, une étape par cote ——— */
.parcours > h2 { margin-block-end: var(--wp--preset--spacing--40); }
.parcours > .etape { margin-block-start: 40px; padding-top: 28px; border-top: 1px dashed var(--wp--preset--color--filet); }
.parcours .etape { display: grid; grid-template-columns: minmax(0, 1fr); row-gap: 14px; }
.parcours .etape > * { margin-block: 0; }
.etape-cote { color: var(--wp--preset--color--magenta); }
.parcours > .rangee { margin-block-start: 32px; max-width: 760px; }
.parcours-suite { margin-block-start: var(--wp--preset--spacing--60) !important; max-width: 66ch; }
.parcours-suite cite a { color: inherit; }
@media (min-width: 782px) {
	.parcours .etape { grid-template-columns: 11rem minmax(0, 66ch); column-gap: 32px; }
	.parcours .etape > * { grid-column: 2; }
	.parcours .etape > .etape-cote { grid-column: 1; grid-row: 1; padding-top: 6px; }
	.parcours > .rangee, .parcours > .parcours-suite { margin-left: calc(11rem + 32px) !important; }
}

/* Rangées de photos 4:5, légende en donnée dessous */
.rangee { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px 6px; }
.rangee > * { margin: 0 !important; }
.rangee img { display: block; width: 100%; height: auto; aspect-ratio: 4 / 5; object-fit: cover; background: var(--wp--preset--color--ivoire-2); }
.rangee figcaption { margin: 8px 0 0; }
@media (min-width: 960px) { .rangee-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); } }

/* ——— Sur fond bleu : texte ivoire, légendes et liens lisibles ——— */
.has-bleu-background-color figcaption { color: var(--wp--preset--color--sur-bleu-2); }
.has-bleu-background-color a { color: var(--wp--preset--color--ivoire); }
.has-bleu-background-color a:hover { color: var(--wp--preset--color--sur-bleu-2); }
.etabli .has-chapeau-font-size { max-width: 36em; }
.etabli > .rangee { margin-block-start: var(--wp--preset--spacing--40); }

/* ——— Contact ——— */
/* Bouton « Étiquette volante » (style de bouton dans l'éditeur) : un moyen de joindre Timothé = une étiquette percée.
   Trou à gauche, couture à 6 px de la coupe, cran magenta sur le bord haut, flèche du droit-fil à droite.
   Le libellé en Archivo étroite ; la coordonnée en donnée (texte « Code en ligne » dans l'éditeur). */
.wp-block-buttons.volantes { display: grid; grid-template-columns: minmax(0, 1fr); gap: 12px; }
.volantes > .wp-block-button { width: 100%; margin: 0; }
.wp-block-button.is-style-volante { position: relative; }
.wp-block-buttons .wp-block-button.is-style-volante > .wp-block-button__link {
	position: relative; display: block; width: 100%; box-sizing: border-box; padding: 22px 64px 20px 58px;
	border: 1.5px solid var(--wp--preset--color--encre); border-radius: 0; background: var(--wp--preset--color--ivoire); color: var(--wp--preset--color--encre);
	text-align: left; font-size: var(--wp--preset--font-size--sous-titre); font-weight: 800; font-stretch: 62%; line-height: 1; letter-spacing: 0; text-transform: uppercase;
	transition: background-color .2s cubic-bezier(.16, 1, .3, 1), color .2s cubic-bezier(.16, 1, .3, 1);
}
.wp-block-buttons .wp-block-button.is-style-volante > .wp-block-button__link:hover { background: var(--wp--preset--color--encre); color: var(--wp--preset--color--ivoire); }
/* Le trou : il laisse voir l'ivoire de la page, même quand l'étiquette passe en encre */
.is-style-volante > .wp-block-button__link::before {
	content: ""; position: absolute; left: 22px; top: 50%; width: 14px; height: 14px; margin-top: -7px; box-sizing: border-box;
	border: 1.5px solid currentColor; border-radius: 50%; background: var(--wp--preset--color--ivoire);
}
.is-style-volante > .wp-block-button__link::after { content: ""; position: absolute; inset: 6px; border: 1px dashed var(--wp--preset--color--encre-2); pointer-events: none; }
.is-style-volante > .wp-block-button__link:hover::after { border-color: var(--wp--preset--color--filet); }
.wp-block-button.is-style-volante::before {
	content: ""; position: absolute; z-index: 1; top: 0; right: 58px; width: 14px; height: 10px; pointer-events: none;
	background: var(--wp--preset--color--magenta); clip-path: polygon(0 0, 100% 0, 50% 100%);
}
.wp-block-button.is-style-volante::after {
	content: "→"; position: absolute; right: 24px; top: 50%; transform: translateY(-50%); pointer-events: none;
	font-size: 22px; font-weight: 400; line-height: 1; color: var(--wp--preset--color--encre);
	transition: transform .2s cubic-bezier(.16, 1, .3, 1), color .2s cubic-bezier(.16, 1, .3, 1);
}
.wp-block-button.is-style-volante:hover::after { transform: translate(5px, -50%); color: var(--wp--preset--color--ivoire); }
.is-style-volante code {
	display: block; margin-top: 10px; padding: 0; background: none; color: var(--wp--preset--color--encre-2);
	font-family: var(--wp--preset--font-family--donnee); font-size: 14px; font-weight: 400; font-stretch: 100%; line-height: 1.3; letter-spacing: .02em; text-transform: none;
}
.is-style-volante > .wp-block-button__link:hover code { color: var(--wp--preset--color--filet); }
@media (max-width: 599px) {
	.wp-block-buttons .wp-block-button.is-style-volante > .wp-block-button__link { padding: 20px 52px 18px 50px; }
	.is-style-volante > .wp-block-button__link::before { left: 18px; }
	.wp-block-button.is-style-volante::before { right: 46px; }
	.wp-block-button.is-style-volante::after { right: 18px; }
}

/* Ce qui aide à répondre, sujet par sujet */
.sujets { list-style: none; margin: 0; padding: 0; }
.sujets li { padding: 12px 0; border-top: 1px dashed var(--wp--preset--color--encre-2); font-size: 15px; line-height: 1.55; }
.sujets li:last-child { border-bottom: 1px dashed var(--wp--preset--color--encre-2); }
.sujets strong { display: block; margin-bottom: 4px; font-size: 12.5px; font-weight: 500; font-stretch: 112%; letter-spacing: .06em; line-height: 1.3; text-transform: uppercase; }

/* Questions fréquentes : les volets de la fiche, la question en clair */
.questions .fiche-volet > summary { padding: 20px 0; font-size: clamp(18px, 1.5vw, 20px); font-weight: 600; font-stretch: 100%; letter-spacing: 0; line-height: 1.3; text-transform: none; }
.questions .fiche-volet p { max-width: 62ch; font-size: 17px; }
.questions .wp-block-column > h2 + p { margin-block-start: 24px; }

/* Renvois, sur l'aplat bleu : les pages qui répondent avant qu'on écrive, repérées A, B, C… comme les pièces d'un patron */
.a-lire > h2 { margin-block: 0 24px; }
.a-lire > p { margin: 0; max-width: 36em; }
.renvois {
	display: grid; grid-template-columns: minmax(0, 1fr); column-gap: clamp(24px, 4vw, 56px); counter-reset: renvoi;
	list-style: none; margin: var(--wp--preset--spacing--60) 0 0; padding: 0; border-top: 1px dashed var(--wp--preset--color--sur-bleu-2);
}
@media (min-width: 782px) { .renvois { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.renvois li { counter-increment: renvoi; border-bottom: 1px dashed var(--wp--preset--color--sur-bleu-2); }
.renvois a { position: relative; display: block; height: 100%; box-sizing: border-box; padding: 24px 44px 24px 2.4em; color: var(--wp--preset--color--sur-bleu-2); font-size: 15px; line-height: 1.5; text-decoration: none; }
.renvois a::before { content: counter(renvoi, upper-alpha); position: absolute; left: 0; top: 27px; font-family: var(--wp--preset--font-family--donnee); font-size: 13px; line-height: 1; }
.renvois a::after {
	content: "→"; position: absolute; right: 4px; top: 22px; color: var(--wp--preset--color--ivoire); font-size: 22px; line-height: 1;
	transition: transform .2s cubic-bezier(.16, 1, .3, 1);
}
.renvois a:hover::after { transform: translateX(5px); }
.renvois strong { display: block; margin-bottom: 8px; color: var(--wp--preset--color--ivoire); font-size: var(--wp--preset--font-size--sous-titre); font-weight: 800; font-stretch: 62%; line-height: 1; text-transform: uppercase; }
.renvois a:hover strong { text-decoration: underline; text-decoration-thickness: 1.5px; text-underline-offset: 5px; }

/* ——— Sur-mesure : quatre temps, puis le formulaire (Contact : .formulaire, même mise en page) ——— */
.sur-mesure .wp-block-columns, .formulaire .wp-block-columns, .questions .wp-block-columns { gap: clamp(28px, 5vw, 72px); }
.etapes-demande { list-style: none; counter-reset: temps; margin: 0; padding: 0; }
.etapes-demande li { counter-increment: temps; display: grid; grid-template-columns: 2.6em minmax(0, 1fr); padding: 11px 0; border-top: 1px dashed var(--wp--preset--color--encre-2); }
.etapes-demande li:last-child { border-bottom: 1px dashed var(--wp--preset--color--encre-2); }
.etapes-demande li::before {
	content: counter(temps, decimal-leading-zero); padding-top: 3px;
	font-family: var(--wp--preset--font-family--donnee); font-size: 13px; color: var(--wp--preset--color--magenta);
}

.demande { scroll-margin-top: 96px; }
.demande-formulaire { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px 16px; }
.demande-formulaire > p { margin: 0; }
.demande-large { grid-column: 1 / -1; }
@media (max-width: 599px) { .demande-formulaire { grid-template-columns: minmax(0, 1fr); } }
.demande-champ label, .demande-choix legend { display: block; margin-bottom: 7px; padding: 0; font-size: 12.5px; font-weight: 500; font-stretch: 112%; letter-spacing: .06em; line-height: 1.3; text-transform: uppercase; }
.demande-champ label span { text-transform: none; letter-spacing: .02em; font-weight: 400; color: var(--wp--preset--color--encre-2); }
/* Choix de la pièce : des étiquettes dans une ligne de coupe, l'étiquette choisie passe en encre */
.demande-choix { min-width: 0; margin: 0; padding: 0; border: 0; }
.demande-choix label {
	display: inline-flex; align-items: center; gap: 10px; min-height: 48px; margin: 0 6px 8px 0; padding: 0 16px;
	border: 1.5px solid var(--wp--preset--color--encre); cursor: pointer; font-size: 15px; line-height: 1.2;
}
.demande-choix label:has(:checked) { background: var(--wp--preset--color--encre); color: var(--wp--preset--color--ivoire); }
.demande-choix input { width: 16px; height: 16px; margin: 0; accent-color: var(--wp--preset--color--magenta); }
.demande-champ input, .demande-champ textarea {
	display: block; width: 100%; box-sizing: border-box; min-height: 48px; margin: 0; padding: 11px 14px;
	border: 1.5px solid var(--wp--preset--color--encre); border-radius: 0; background: var(--wp--preset--color--ivoire); color: var(--wp--preset--color--encre);
	font-family: var(--wp--preset--font-family--donnee); font-size: 16px; line-height: 1.5;
}
.demande-champ textarea { min-height: 148px; resize: vertical; }
.demande-champ input::placeholder { color: var(--wp--preset--color--encre-2); opacity: 1; }
.demande-champ input:focus-visible, .demande-champ textarea:focus-visible { outline: 2px solid var(--wp--preset--color--bleu); outline-offset: 2px; }
.demande-champ :user-invalid { border: 2px solid var(--wp--preset--color--magenta); }
.demande-aide { display: block; margin-top: 7px; font-size: 14px; line-height: 1.5; color: var(--wp--preset--color--encre-2); }
.demande-note { font-size: 14px; color: var(--wp--preset--color--encre-2); }
.demande-formulaire button { border: 0; cursor: pointer; font-family: inherit; font-stretch: 112%; }
.demande-piege { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.demande-erreur { display: flex; gap: 10px; align-items: baseline; margin: 0 0 20px; padding: 12px 16px; border: 2px solid var(--wp--preset--color--magenta); color: var(--wp--preset--color--magenta); }
.demande-erreur::before {
	content: "!"; flex: none; display: inline-grid; place-items: center; width: 18px; height: 18px; border: 1.5px solid; border-radius: 50%;
	font-family: var(--wp--preset--font-family--donnee); font-size: 12px; font-weight: 700; line-height: 1;
}
/* Téléphone : tant que le bouton d'achat n'est pas à l'écran, une barre d'achat attend en bas, à gauche du poinçon */
.barre-achat { display: none; }
@media (max-width: 781px) {
	.barre-achat:not([hidden]) {
		position: fixed; z-index: 29; left: 16px; right: calc(16px + 56px + 8px); bottom: calc(16px + env(safe-area-inset-bottom));
		display: flex; align-items: center; justify-content: space-between; gap: 12px; height: 56px; padding: 0 18px;
		background: var(--wp--preset--color--encre); color: var(--wp--preset--color--ivoire); text-decoration: none;
		font-size: 13px; font-weight: 600; font-stretch: 112%; letter-spacing: .07em; text-transform: uppercase;
	}
	.barre-achat .barre-achat-prix { font-family: var(--wp--preset--font-family--donnee); font-weight: 400; letter-spacing: .02em; text-transform: none; }
	.single-product main { padding-bottom: calc(var(--wp--preset--spacing--80) + 72px) !important; }
	#achat { scroll-margin-top: 96px; }
}
.demande-merci { padding: 24px; border: 1.5px solid var(--wp--preset--color--encre); }
.demande-merci p { margin: 0; }
.demande-merci p + p { margin-top: 12px; }
.demande-merci-titre { font-size: var(--wp--preset--font-size--sous-titre); font-weight: 800; font-stretch: 62%; line-height: 1; text-transform: uppercase; }

/* ——— Poinçon Ti, en bas à droite : il se déplie sur la newsletter et sur une question à Timprod ——— */
.poincon { position: fixed; z-index: 30; right: max(16px, env(safe-area-inset-right)); bottom: calc(16px + env(safe-area-inset-bottom)); }
/* Le poinçon : étiquette tissée magenta, Ti ivoire, couture à 5 px du bord */
.poincon-lanceur {
	position: relative; display: grid; place-items: center; width: 56px; height: 56px; cursor: pointer; list-style: none;
	background: var(--wp--preset--color--magenta); transition: background-color .2s cubic-bezier(.16, 1, .3, 1);
}
.poincon-lanceur::-webkit-details-marker { display: none; }
.poincon-lanceur::after { content: ""; position: absolute; inset: 5px; border: 1px dashed var(--wp--preset--color--ivoire); pointer-events: none; }
.poincon-lanceur img { display: block; width: 22px; height: auto; transition: transform .3s cubic-bezier(.16, 1, .3, 1); }
.poincon-lanceur:hover img { transform: rotate(-6deg); }
.poincon[open] > .poincon-lanceur { background: var(--wp--preset--color--encre); }
/* Le panneau : une étiquette en ligne de coupe, tête bleue au logo ivoire */
.poincon-panneau {
	position: absolute; right: 0; bottom: calc(100% + 12px); width: min(360px, calc(100vw - 32px)); box-sizing: border-box;
	max-height: calc(100svh - var(--admin) - 100px); overflow-y: auto; overscroll-behavior: contain;
	background: var(--wp--preset--color--ivoire); border: 1.5px solid var(--wp--preset--color--encre);
	animation: poincon-ouvre .35s cubic-bezier(.16, 1, .3, 1);
}
@keyframes poincon-ouvre { from { opacity: 0; transform: translateY(12px); } }
.poincon-tete {
	display: flex; align-items: center; justify-content: space-between; gap: 16px; margin: 0; padding: 16px 16px 14px 20px;
	background: var(--wp--preset--color--bleu); color: var(--wp--preset--color--ivoire);
}
.poincon-tete img { display: block; width: 96px; height: auto; }
.poincon-reduire {
	min-height: 32px; padding: 0 2px; border: 0; background: none; color: inherit; cursor: pointer;
	font: 500 11.5px/1 var(--wp--preset--font-family--archivo); font-stretch: 112%; letter-spacing: .07em; text-transform: uppercase;
}
.poincon-reduire::after { content: " −"; font-family: var(--wp--preset--font-family--donnee); font-size: 15px; }
.poincon-reduire:hover { text-decoration: underline; }
.poincon-corps { padding: 4px 20px 20px; }
.poincon .fiche-volet:first-child { border-top: 0; }
.poincon .fiche-volet > :not(summary) { margin-block: 0 14px; }
.poincon .fiche-volet p { font-size: 14.5px; }
.poincon form { display: grid; gap: 12px; }
.poincon form > p { margin: 0; }
.poincon .demande-champ textarea { min-height: 104px; }
.poincon .wp-element-button { width: 100%; border: 0; cursor: pointer; font-family: inherit; font-stretch: 112%; }
.poincon .demande-note, .poincon .demande-erreur { font-size: 13px; }
.poincon .demande-merci { padding: 16px; }
.poincon .demande-merci-titre { font-size: 22px; }

/* ——— Ajouter au panier : au survol, l'aiguille coud une couture ivoire tout autour du bouton ———
   La couture (::after) se découvre par un éventail qui suit l'aiguille (::before) : mêmes étapes, mêmes temps, elles
   avancent ensemble. Les étapes (41, 50, 91 %) suivent les côtés du bouton de la fiche (232 × 60 px) ; un bouton d'une
   autre forme garde l'aiguille au bout du fil, seule la vitesse par côté change. Elle ralentit à chaque coin, comme on
   pivote le tissu aiguille plantée. Rien sur un bouton grisé (variante pas encore choisie). */
.wc-block-components-product-button:has(> .single_add_to_cart_button) { position: relative; }
.wc-block-components-product-button:has(> .single_add_to_cart_button)::before,
.wc-block-components-product-button:has(> .single_add_to_cart_button)::after { content: ""; position: absolute; z-index: 1; pointer-events: none; opacity: 0; }
.wc-block-components-product-button:has(> .single_add_to_cart_button)::after { inset: 6px; border: 1px dashed var(--wp--preset--color--ivoire); transition: opacity .2s; }
.wc-block-components-product-button:has(> .single_add_to_cart_button)::before {
	left: 6px; top: 6px; width: 32px; height: 4px; margin: -2px 0 0 -4px; transform-origin: 4px 50%;
	background: var(--wp--preset--color--ivoire); mask: url(assets/images/aiguille.svg) center / 100% 100% no-repeat;
}
.wc-block-components-product-button:has(> .single_add_to_cart_button:not(.disabled, :disabled):is(:hover, :focus-visible))::after {
	opacity: 1; animation: couture-trace 1.1s cubic-bezier(.45, 0, .55, 1) both;
}
.wc-block-components-product-button:has(> .single_add_to_cart_button:not(.disabled, :disabled):is(:hover, :focus-visible))::before {
	opacity: 1; animation: couture-aiguille 1.1s cubic-bezier(.45, 0, .55, 1) both;
}
@keyframes couture-trace {
	0%   { clip-path: polygon(50% 50%, 0 0, 0 0, 0 0, 0 0, 0 0); }
	41%  { clip-path: polygon(50% 50%, 0 0, 100% 0, 100% 0, 100% 0, 100% 0); }
	50%  { clip-path: polygon(50% 50%, 0 0, 100% 0, 100% 100%, 100% 100%, 100% 100%); }
	91%  { clip-path: polygon(50% 50%, 0 0, 100% 0, 100% 100%, 0 100%, 0 100%); }
	100% { clip-path: polygon(50% 50%, 0 0, 100% 0, 100% 100%, 0 100%, 0 0); }
}
@keyframes couture-aiguille {
	0%   { left: 6px; top: 6px; rotate: 0deg; }
	40%  { rotate: 0deg; }
	41%  { left: calc(100% - 6px); top: 6px; }
	42%  { rotate: 90deg; }
	49%  { rotate: 90deg; }
	50%  { left: calc(100% - 6px); top: calc(100% - 6px); }
	51%  { rotate: 180deg; }
	90%  { rotate: 180deg; }
	91%  { left: 6px; top: calc(100% - 6px); }
	92%  { rotate: 270deg; }
	97%  { rotate: 270deg; }
	100% { left: 6px; top: 6px; rotate: 360deg; } /* la couture fermée, l'aiguille se couche sur le départ */
}

/* ——— Journal : la page des articles et ses vignettes ——— */
.journal-tete > * { margin-block: 0; }
.journal-tete > * + * { margin-block-start: 16px; }
.journal-tete h1 { margin-block-start: 10px; }
.journal-tete .has-chapeau-font-size { max-width: 32em; }
.journal-tete a { text-decoration: none; }
.journal-liste { margin-block-start: var(--wp--preset--spacing--60); }

.vignettes { display: grid; grid-template-columns: minmax(0, 1fr); gap: 56px clamp(16px, 2.4vw, 32px); margin: 0; padding: 0; list-style: none; }
@media (min-width: 600px) { .vignettes { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 960px) { .vignettes { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.vignettes > li { position: relative; margin: 0; }
/* La photo : 4:5 sur ivoire seconde. Au survol, la couture se pose à 8 px du bord et le cran magenta tombe dessus. */
.vignettes .wp-block-post-featured-image { position: relative; margin: 0; }
.vignettes .wp-block-post-featured-image img { display: block; width: 100%; height: auto; background: var(--wp--preset--color--ivoire-2); }
.vignettes .wp-block-post-featured-image::after {
	content: ""; position: absolute; inset: 16px; border: 1px dashed var(--wp--preset--color--ivoire); opacity: 0; pointer-events: none;
	transition: inset .35s cubic-bezier(.16, 1, .3, 1), opacity .35s cubic-bezier(.16, 1, .3, 1);
}
.vignettes .wp-block-post-featured-image::before {
	content: ""; position: absolute; z-index: 1; top: 0; left: 24px; width: 14px; height: 10px; pointer-events: none;
	background: var(--wp--preset--color--magenta); clip-path: polygon(0 0, 100% 0, 50% 100%);
	transform: scaleY(0); transform-origin: top; transition: transform .3s cubic-bezier(.16, 1, .3, 1);
}
.vignettes > li:is(:hover, :focus-within) .wp-block-post-featured-image::after { inset: 8px; opacity: 1; }
.vignettes > li:is(:hover, :focus-within) .wp-block-post-featured-image::before { transform: none; }
/* Le texte : date en donnée, catégorie en petites capitales, titre en Archivo étroite, l'extrait et la flèche du droit-fil */
.vignette-texte > * { margin-block: 0; }
.vignette-texte > * + * { margin-block-start: 10px; }
.vignettes .wp-block-post-featured-image + .vignette-texte { margin-block-start: 14px; }
.vignette-meta { gap: 6px 14px; align-items: baseline; color: var(--wp--preset--color--encre-2); }
.vignette-meta > * { margin: 0; }
.vignette-meta a { position: relative; z-index: 1; color: inherit; text-decoration: none; } /* au-dessus du lien de la vignette */
.vignette-meta a:hover { color: var(--wp--preset--color--bleu); }
.vignette-titre { line-height: 1; }
.vignette-titre a { text-decoration: none; }
.vignette-titre a::after { content: ""; position: absolute; inset: 0; } /* toute la vignette ouvre l'article */
.vignettes > li:hover .vignette-titre a { text-decoration: underline; text-decoration-thickness: 1.5px; text-underline-offset: 5px; }
.vignettes .wp-block-post-excerpt__excerpt { margin: 0; max-width: 34em; font-size: 15px; line-height: 1.55; color: var(--wp--preset--color--encre-2); }
.vignettes .wp-block-post-excerpt__excerpt::after { content: " →"; color: var(--wp--preset--color--encre); }
/* Le dernier article, en tête du journal : photo et texte côte à côte, titre en grand */
@media (min-width: 782px) {
	body:not(.paged) .journal-liste .vignettes > li:first-child {
		grid-column: 1 / -1; display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); column-gap: clamp(16px, 2.4vw, 32px); align-items: end;
	}
	body:not(.paged) .journal-liste .vignettes > li:first-child .vignette-texte { margin: 0; padding-bottom: 8px; }
	body:not(.paged) .journal-liste .vignettes > li:first-child .vignette-titre { font-size: var(--wp--preset--font-size--titre) !important; }
	body:not(.paged) .journal-liste .vignettes > li:first-child .wp-block-post-excerpt__excerpt { font-size: var(--wp--preset--font-size--chapeau); line-height: 1.45; }
}
/* Sur trois colonnes, la photo garde la largeur d'une vignette, le texte prend les deux autres. */
@media (min-width: 960px) {
	body:not(.paged) .journal-liste .vignettes > li:first-child { grid-template-columns: minmax(0, 1fr) minmax(0, 2fr); }
	body:not(.paged) .journal-liste .vignettes > li:first-child .vignette-texte { padding-left: clamp(0px, 2vw, 40px); }
}
/* Pages suivantes */
.journal-liste .wp-block-query-pagination { margin-block-start: var(--wp--preset--spacing--60); gap: 20px; font-size: 12.5px; font-weight: 500; font-stretch: 112%; letter-spacing: .06em; text-transform: uppercase; }
.journal-liste .wp-block-query-pagination a { text-decoration: none; }
.journal-liste .wp-block-query-pagination .current { font-family: var(--wp--preset--font-family--donnee); color: var(--wp--preset--color--magenta); }

/* ——— Article ——— */
/* La tête : catégorie et date, le titre, la photo. Sur ordinateur, le titre à gauche, la photo à droite. */
.article-tete { display: grid; grid-template-columns: minmax(0, 1fr); row-gap: 20px; }
.article-tete > * { margin: 0; }
.article-meta { gap: 6px 16px; align-items: baseline; color: var(--wp--preset--color--encre-2); }
.article-meta > * { margin: 0; }
.article-meta a { color: inherit; text-decoration: none; }
.article-meta a:hover { color: var(--wp--preset--color--bleu); }
.article-tete .wp-block-post-featured-image img { display: block; width: 100%; height: auto; background: var(--wp--preset--color--ivoire-2); }
@media (min-width: 782px) {
	.article-tete { grid-template-columns: minmax(0, 1fr) 42%; grid-template-rows: 1fr auto; column-gap: clamp(28px, 5vw, 72px); align-items: end; }
	.article-tete .article-meta { grid-column: 1; grid-row: 1; align-self: end; }
	.article-tete .wp-block-post-title { grid-column: 1; grid-row: 2; }
	.article-tete .wp-block-post-featured-image { grid-column: 2; grid-row: 1 / 3; }
}
/* Le texte : 66 signes de large, à gauche. Le premier paragraphe sert de chapeau, sans rien à régler.
   Les mêmes règles valent dans l'éditeur d'articles (.post-type-post), pour que Timothé voie ce qu'il publie. */
.article-corps { margin-block-start: var(--wp--preset--spacing--60); }
:is(.article-corps, .post-type-post .is-root-container) > * { margin-block: 0; }
:is(.article-corps, .post-type-post .is-root-container) > * + * { margin-block-start: 24px; }
:is(.article-corps, .post-type-post .is-root-container) > p:first-child { font-size: var(--wp--preset--font-size--chapeau); line-height: 1.45; }
.article-corps > :is(p, h2, h3, h4):empty { display: none; } /* une case du motif laissée vide */
/* Chaque intertitre ouvre une section : ligne de couture au-dessus, cran magenta au départ */
:is(.article-corps, .post-type-post .is-root-container) > h2 {
	position: relative; margin-block-start: var(--wp--preset--spacing--60); padding-top: 28px;
	border-top: 1px dashed var(--wp--preset--color--encre-2); font-size: var(--wp--preset--font-size--sous-titre); line-height: 1;
}
:is(.article-corps, .post-type-post .is-root-container) > h2::before {
	content: ""; position: absolute; top: -1px; left: 0; width: 14px; height: 10px;
	background: var(--wp--preset--color--magenta); clip-path: polygon(0 0, 100% 0, 50% 100%);
}
:is(.article-corps, .post-type-post .is-root-container) > h3 { margin-block-start: 40px; font-size: 20px; line-height: 1.1; }
:is(.article-corps, .post-type-post .is-root-container) > h2 + *, :is(.article-corps, .post-type-post .is-root-container) > h3 + * { margin-block-start: 16px; }
:is(.article-corps, .post-type-post .is-root-container) .wp-block-image img { display: block; width: 100%; height: auto; }
:is(.article-corps, .post-type-post .is-root-container) .wp-block-image figcaption { margin: 8px 0 0; }
:is(.article-corps, .post-type-post .is-root-container) > :is(.wp-block-image, .wp-block-gallery, .rangee, .article-piece, .is-style-etiquette) { margin-block-start: 40px; }
:is(.article-corps, .post-type-post .is-root-container) > :is(.wp-block-image, .wp-block-gallery, .rangee, .article-piece) + * { margin-block-start: 40px; }
:is(.article-corps, .post-type-post .is-root-container) .is-style-etiquette { max-width: none; }
/* La pièce dans l'article : une étiquette en ligne de coupe, la photo et l'achat côte à côte */
.article-piece { position: relative; display: grid; grid-template-columns: minmax(0, 1fr); gap: 20px; padding: 20px; border: 1.5px solid var(--wp--preset--color--encre); }
.article-piece::after {
	content: ""; position: absolute; right: -1.5px; top: 22px; width: 10px; height: 14px;
	background: var(--wp--preset--color--magenta); clip-path: polygon(100% 0, 0 50%, 100% 100%);
}
@media (min-width: 600px) { .article-piece { grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); align-items: end; } }
.article-piece .wc-block-components-product-image { margin: 0; }
.article-piece .wc-block-components-product-image img { display: block; width: 100%; height: auto; aspect-ratio: 2 / 3; object-fit: cover; background: var(--wp--preset--color--ivoire-2); }
.article-piece-achat > * { margin-block: 0; }
.article-piece-achat > * + * { margin-block-start: 16px; }
.article-piece-achat .wp-block-post-title { margin-block-start: 8px; }
.article-piece-achat .wp-block-post-title a { text-decoration: none; }
.article-piece-achat .wp-block-post-title a:hover { text-decoration: underline; text-decoration-thickness: 1.5px; text-underline-offset: 5px; }
.article-piece-achat .wp-block-woocommerce-product-price { margin-block-start: 8px; font-size: 20px; font-stretch: 112%; letter-spacing: .03em; }
/* La fin : signature, renvoi vers l'atelier, les autres articles */
.article-fin { position: relative; max-width: 720px; margin-block-start: var(--wp--preset--spacing--60); padding-top: 20px; border-top: 1.5px solid var(--wp--preset--color--encre); }
.article-fin > * { margin: 0; }
.article-fin > * + * { margin-block-start: 8px; }
.a-lire-aussi { margin-block-start: var(--wp--preset--spacing--80); }
.a-lire-aussi:not(:has(.wp-block-post)) { display: none; } /* le seul article du journal : rien d'autre à proposer */
.a-lire-aussi > h2 { margin: 0 0 24px; }
.article-retour { margin-block-start: var(--wp--preset--spacing--60); }

/* Le fil de lecture : sur un galon ivoire, la couture magenta (tirets de 6 sur 4) se découvre derrière l'aiguille, sans s'étirer.
   --lu va de 0 à 1 (functions.php) ; l'aiguille n'apparaît qu'une fois la lecture commencée. */
.fil-lecture {
	--lu: 0; --x: calc(var(--lu) * (100% - 44px));
	position: fixed; z-index: 25; top: var(--admin); left: 0; right: 0; height: 12px; pointer-events: none;
	background: var(--wp--preset--color--ivoire); border-bottom: 1px solid var(--wp--preset--color--filet); /* un galon : fil et aiguille restent lisibles sur les photos */
	opacity: min(1, calc(var(--lu) * 40));
}
@media (max-width: 599px) { .fil-lecture { top: 0; } }
@media (min-width: 960px) { .fil-lecture { left: var(--barre); } }
.fil-lecture::before {
	content: ""; position: absolute; left: 0; top: 5px; width: calc(var(--x) + 7px); height: 2px;
	background: repeating-linear-gradient(90deg, var(--wp--preset--color--magenta) 0 6px, transparent 6px 10px);
}
/* L'aiguille : le fil sort de son chas (à 7 px de la tête) */
.fil-lecture span {
	position: absolute; left: var(--x); top: 3px; width: 44px; height: 6px;
	background: var(--wp--preset--color--encre); mask: url(assets/images/aiguille.svg) center / 100% 100% no-repeat;
}

/* ——— Maillage : encarts, « Au journal », renvois ——— */
/* L'encart (motif « Encart de renvoi ») : une pièce de patron posée dans le texte. Couture pointillée, cran magenta au survol,
   toute la carte mène au lien du titre. Sans image, le texte prend toute la largeur ; sur l'aplat bleu, il passe en ivoire. */
.encart {
	position: relative; display: grid; grid-template-columns: minmax(0, 1fr); gap: 16px; padding: 16px 48px 16px 16px;
	border: 1px dashed var(--wp--preset--color--encre-2); background: var(--wp--preset--color--ivoire);
	transition: border-color .25s cubic-bezier(.16, 1, .3, 1);
}
.encart:has(> .wp-block-image) { grid-template-columns: 96px minmax(0, 1fr); align-items: center; }
@media (min-width: 600px) { .encart:has(> .wp-block-image) { grid-template-columns: 132px minmax(0, 1fr); } }
.encart > * { margin: 0 !important; }
.encart > .wp-block-image img { display: block; width: 100%; height: auto; aspect-ratio: 4 / 5; object-fit: cover; background: var(--wp--preset--color--ivoire-2); }
.encart-texte > * { margin: 0; }
.encart-texte > * + * { margin-block-start: 8px; }
.encart-texte .is-style-petites-capitales { color: var(--wp--preset--color--encre-2); }
.encart h3 { font-size: clamp(20px, 2vw, 24px); line-height: 1.05; }
.encart h3 a { text-decoration: none; }
.encart h3 a::after { content: ""; position: absolute; inset: 0; } /* toute la carte ouvre le lien */
.encart-texte p:not(.is-style-petites-capitales) { font-size: 15px; line-height: 1.5; color: var(--wp--preset--color--encre-2); }
.encart::before {
	content: ""; position: absolute; top: -1px; left: 20px; width: 14px; height: 10px; pointer-events: none;
	background: var(--wp--preset--color--magenta); clip-path: polygon(0 0, 100% 0, 50% 100%);
	transform: scaleY(0); transform-origin: top; transition: transform .3s cubic-bezier(.16, 1, .3, 1);
}
.encart::after {
	content: "→"; position: absolute; right: 16px; top: 50%; margin-top: -12px; font-size: 22px; line-height: 1;
	transition: transform .2s cubic-bezier(.16, 1, .3, 1);
}
.encart:hover, .encart:focus-within { border-style: solid; border-color: var(--wp--preset--color--encre); }
.encart:hover::before, .encart:focus-within::before { transform: none; }
.encart:hover::after, .encart:focus-within::after { transform: translateX(5px); }
.encart:hover h3 a { text-decoration: underline; text-decoration-thickness: 1.5px; text-underline-offset: 5px; }
.encart h3 a:focus-visible { outline: 0; } /* le contour passe sur la carte */
.encart:has(h3 a:focus-visible) { outline: 2px solid var(--wp--preset--color--magenta); outline-offset: 3px; }
.encart.has-bleu-background-color { border-color: var(--wp--preset--color--sur-bleu-2); background: var(--wp--preset--color--bleu); }
.encart.has-bleu-background-color:is(:hover, :focus-within) { border-color: var(--wp--preset--color--ivoire); }
.encart.has-bleu-background-color :is(h3 a, h3 a:hover) { color: var(--wp--preset--color--ivoire); }
.encart.has-bleu-background-color .encart-texte p { color: var(--wp--preset--color--sur-bleu-2); }
.encart.has-bleu-background-color::after { color: var(--wp--preset--color--ivoire); }
:is(.article-corps, .post-type-post .is-root-container) > .encart { margin-block-start: 40px; }
:is(.article-corps, .post-type-post .is-root-container) > .encart + * { margin-block-start: 40px; }
:is(.article-corps, .post-type-post .is-root-container) > .encart + .encart { margin-block-start: 12px; }
.etape .encart { margin-block-start: 6px !important; max-width: 560px; }

/* « Au journal » : sous une fiche, les articles qui montrent la pièce (functions.php) ; sous la boutique, les derniers.
   Rien à montrer : la section et son lien d'appel disparaissent. */
.au-journal { margin-block-start: var(--wp--preset--spacing--80); scroll-margin-top: 96px; }
.au-journal > h2 { margin: 0 0 24px; }
.au-journal:not(:has(.wp-block-post)) { display: none; }
.fiche:not(:has(.au-journal .wp-block-post)) .vers-journal { display: none; }
.vers-journal a { text-decoration: none; }
.vers-journal a:hover { text-decoration: underline; }
.au-journal .article-retour { margin-block-start: 32px; }

/* Renvois sous un article et sous le journal : l'aplat bleu de la page Contact, posé en fin de page */
.wp-site-blocks > .a-lire { margin-block-start: 0; }

/* ——— Messages de WooCommerce (fiche, panier, commande) : à angles vifs, sans fond ni pictogramme d'origine ———
   Erreur = bordure magenta de 2 px, texte magenta, le cercle et le point d'exclamation dessinés (DESIGN.md, Inputs) ;
   information et succès = ligne de coupe encre. */
.wc-block-components-notice-banner {
	display: flex; gap: 10px; align-items: baseline; padding: 12px 16px; border: 1.5px solid var(--wp--preset--color--encre) !important;
	border-radius: 0 !important; background: var(--wp--preset--color--ivoire) !important; color: var(--wp--preset--color--encre) !important;
	font-size: 15px; line-height: 1.5;
}
.wc-block-components-notice-banner > svg { display: none; }
.wc-block-components-notice-banner.is-error { border: 2px solid var(--wp--preset--color--magenta) !important; color: var(--wp--preset--color--magenta) !important; }
.wc-block-components-notice-banner.is-error::before {
	content: "!"; flex: none; display: inline-grid; place-items: center; width: 18px; height: 18px; box-sizing: border-box; border: 1.5px solid; border-radius: 50%;
	font-family: var(--wp--preset--font-family--donnee); font-size: 12px; font-weight: 700; line-height: 1; transform: translateY(3px);
}
.wc-block-components-notice-banner__content { flex: 1; }
.wc-block-components-notice-banner__dismiss { align-self: center; padding: 0 !important; min-height: 0 !important; background: none !important; color: inherit !important; opacity: 1 !important; }
.wc-block-components-notice-banner__dismiss svg { width: 18px; height: 18px; fill: currentColor; }

/* ——— Tiroir du panier : il s'ouvre après chaque ajout (header.html). Pas de voile sur la page : une ligne de coupe le borde. ——— */
.wc-block-components-drawer__screen-overlay { background: none !important; }
.wc-block-components-drawer { border-left: 1.5px solid var(--wp--preset--color--encre); box-shadow: none !important; }
.wc-block-mini-cart__title { font-size: var(--wp--preset--font-size--sous-titre) !important; }
.wc-block-components-quantity-selector { border-radius: 0 !important; }
.wc-block-components-quantity-selector__button { min-width: 44px !important; min-height: 44px !important; }
.wc-block-components-quantity-selector::after { border-radius: 0 !important; border-color: var(--wp--preset--color--encre) !important; opacity: 1 !important; }
.wc-block-components-product-details { color: var(--wp--preset--color--encre-2); }

/* ——— Panier vide (contenu de la page Panier) ——— */
.panier-vide { max-width: 36em; }
.panier-vide > * { margin: 0; }
.panier-vide > * + * { margin-block-start: 16px; }
.panier-vide .wp-block-buttons { margin-block-start: 28px; }
.wp-block-woocommerce-empty-cart-block .pieces { margin-block-start: var(--wp--preset--spacing--80); }
.wp-block-woocommerce-empty-cart-block .pieces > h2 { margin: 0 0 16px; }
@media (min-width: 960px) { .wp-block-woocommerce-empty-cart-block .pieces .wc-block-product-template { grid-template-columns: repeat(4, minmax(0, 1fr)) !important; } }
