/* ==========================================================================
   CARVER & CO. — Thème enfant Kadence
   Charte graphique appliquée : couleurs, typographie, boutons, navigation,
   WooCommerce, blocs de la maison.
   « Chez Carver & Co., le luxe réside dans la maîtrise du détail. »
   ========================================================================== */

/* 1. JETONS DE LA CHARTE
   « html:root » est volontairement plus spécifique que le « :root » généré
   par Kadence : la palette de la charte s'applique même si le Customizer
   n'a pas encore été réglé. Ordre = rôles Kadence (voir charte, §1).      */
html:root {
	--global-palette1: #000000; /* Accentuation : boutons, liens */
	--global-palette2: #333333; /* Accentuation alt : survol */
	--global-palette3: #000000; /* Texte le plus fort : H1, H2 */
	--global-palette4: #222222; /* Texte fort : paragraphes */
	--global-palette5: #666666; /* Texte moyen */
	--global-palette6: #888888; /* Texte discret */
	--global-palette7: #F5F5F5; /* Arrière-plan discret */
	--global-palette8: #FAFAFA; /* Arrière-plan plus clair */
	--global-palette9: #FFFFFF; /* Fond principal */
	--global-palette-btn-bg: #000000;
	--global-palette-btn-bg-hover: #333333;
	--global-palette-btn: #FFFFFF;
	--global-palette-btn-hover: #FFFFFF;

	--carver-serif: "Cormorant Garamond", "Cormorant", Garamond, "Times New Roman", serif;
	--carver-sans: "Montserrat", "Helvetica Neue", Arial, sans-serif;
	--global-heading-font-family: var(--carver-serif);
	--global-body-font-family: var(--carver-sans);

	--carver-line: #E5E5E5;
	--carver-space: clamp(4rem, 9vw, 7.5rem); /* respiration entre sections */
}

/* 2. TYPOGRAPHIE (charte §2-3) */
body {
	font-family: var(--carver-sans);
	font-size: 17px;
	font-weight: 400;
	line-height: 1.7;
	color: #222222;
	background: #FFFFFF;
	-webkit-font-smoothing: antialiased;
	text-rendering: optimizeLegibility;
}
h1, h2, h3, h4,
.entry-title, .page-title, .product_title, .wp-block-post-title {
	font-family: var(--carver-serif);
	font-weight: 600;
	color: #000000;
	letter-spacing: 0;
	line-height: 1.15;
}
h1, .entry-hero h1, .product_title { font-size: 50px; }
h2 { font-size: 36px; }
h3 { font-size: 28px; }
h4 { font-size: 24px; }
h5, h6 { font-family: var(--carver-sans); font-weight: 500; color: #000000; line-height: 1.4; }
h5 { font-size: 21px; }
h6 { font-size: 18px; }
@media (max-width: 767px) {
	h1, .entry-hero h1, .product_title { font-size: 36px; }
	h2 { font-size: 30px; }
	h3 { font-size: 24px; }
	h4 { font-size: 21px; }
	body { font-size: 16px; }
}
blockquote, .wp-block-quote, .wp-block-pullquote {
	font-family: var(--carver-serif);
	font-size: 1.6em;
	font-style: italic;
	line-height: 1.35;
	border-left: 1px solid #000000;
	color: #000000;
}
a { color: #000000; text-underline-offset: 3px; text-decoration-thickness: 1px; }
a:hover { color: #333333; }
::selection { background: #000000; color: #FFFFFF; }
:focus-visible { outline: 1px solid #000000; outline-offset: 3px; }

/* 3. BOUTONS (charte §7) — angles droits, jamais arrondis */
.button, button, input[type="submit"], input[type="button"], input[type="reset"],
.wp-block-button__link, .wp-element-button,
.woocommerce a.button, .woocommerce button.button, .woocommerce input.button,
.woocommerce #respond input#submit, .woocommerce a.button.alt, .woocommerce button.button.alt,
.wc-block-components-button, .kb-button {
	font-family: var(--carver-sans);
	font-size: 14px;
	font-weight: 600;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	line-height: 1.2;
	border-radius: 0 !important;
	border: 1px solid #000000;
	background: #000000;
	color: #FFFFFF;
	padding: 1.05em 2.2em;
	box-shadow: none !important;
	transition: background-color .2s ease, color .2s ease, border-color .2s ease;
}
.button:hover, button:hover, input[type="submit"]:hover,
.wp-block-button__link:hover, .wp-element-button:hover,
.woocommerce a.button:hover, .woocommerce button.button:hover,
.woocommerce a.button.alt:hover, .woocommerce button.button.alt:hover,
.wc-block-components-button:hover {
	background: #333333;
	border-color: #333333;
	color: #FFFFFF;
}
/* Bouton secondaire (style « Contour » de Gutenberg) */
.wp-block-button.is-style-outline > .wp-block-button__link,
.button.carver-secondaire {
	background: transparent;
	color: #000000;
	border: 1px solid #000000;
}
.wp-block-button.is-style-outline > .wp-block-button__link:hover,
.button.carver-secondaire:hover { background: #000000; color: #FFFFFF; border-color: #000000; }
/* Bouton clair, pour les fonds noirs */
.carver-sombre .wp-block-button__link { background: #FFFFFF; color: #000000; border-color: #FFFFFF; }
.carver-sombre .wp-block-button__link:hover { background: transparent; color: #FFFFFF; border-color: #FFFFFF; }
.carver-sombre .wp-block-button.is-style-outline > .wp-block-button__link { background: transparent; color: #FFFFFF; border-color: #FFFFFF; }
.carver-sombre .wp-block-button.is-style-outline > .wp-block-button__link:hover { background: #FFFFFF; color: #000000; }

/* 4. FORMULAIRES */
input[type="text"], input[type="email"], input[type="tel"], input[type="password"],
input[type="search"], input[type="number"], input[type="url"], select, textarea,
.woocommerce form .form-row input.input-text, .woocommerce form .form-row textarea,
.select2-container--default .select2-selection--single {
	font-family: var(--carver-sans);
	font-size: 15px;
	border: 1px solid #D0D0D0;
	border-radius: 0;
	background-color: #FAFAFA; /* « background » raccourci répétait la flèche des listes déroulantes */
	color: #222222;
	box-shadow: none;
}
input:focus, select:focus, textarea:focus { border-color: #000000; background-color: #FFFFFF; outline: none; }
label, .woocommerce form .form-row label { font-size: 13px; font-weight: 500; letter-spacing: 0.04em; color: #222222; }

/* 5. EN-TÊTE ET NAVIGATION (charte §8) */
.site-header, #masthead { background: #FFFFFF; }
.site-header-row-container-inner { border-bottom: 1px solid var(--carver-line); }
.site-branding .site-title { font-family: var(--carver-serif); font-weight: 600; letter-spacing: 0.04em; }
.main-navigation .primary-menu-container > ul > li.menu-item > a,
.header-navigation .header-menu-container > ul > li.menu-item > a,
.mobile-navigation ul li a {
	font-family: var(--carver-sans);
	font-size: 14px;
	font-weight: 500;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	color: #000000;
}
.main-navigation .primary-menu-container > ul > li.menu-item > a:hover,
.main-navigation .primary-menu-container > ul > li.menu-item.current-menu-item > a {
	color: #000000;
	text-decoration: underline;
	text-decoration-thickness: 1px;
	text-underline-offset: 8px;
}
.header-navigation .header-menu-container ul ul {
	background: #FFFFFF;
	border: 1px solid var(--carver-line);
	box-shadow: none;
}
.header-navigation .header-menu-container ul ul li.menu-item > a {
	font-size: 13px; color: #222222; text-transform: none; letter-spacing: 0.02em;
}
.header-navigation .header-menu-container ul ul li.menu-item > a:hover { background: #F5F5F5; color: #000000; }
/* Pastille du panier : ronde, noire, chiffre blanc (voir section 18) */

/* 6. PIED DE PAGE — version sombre (logo blanc sur fond noir) */
.site-footer, .site-footer-wrap { background: #000000; color: #CCCCCC; }
.site-footer .site-footer-row-container-inner { background: transparent; }
.site-footer a { color: #FFFFFF; text-decoration: none; }
.site-footer a:hover { color: #CCCCCC; text-decoration: underline; }
.site-footer .widget-title, .site-footer h2, .site-footer h3, .site-footer h4 {
	font-family: var(--carver-sans); font-size: 12px; font-weight: 600;
	letter-spacing: 0.12em; text-transform: uppercase; color: #FFFFFF;
}
.site-footer .footer-html, .site-footer .site-info { font-size: 13px; color: #999999; }

/* 7. SIGNATURE (charte §6) */
.carver-signature {
	font-family: var(--carver-sans);
	font-size: 12px;
	font-weight: 400;
	letter-spacing: 0.12em;
	color: inherit;
	margin: 0;
}
.carver-signature--majuscules { text-transform: uppercase; }

/* 8. ÉLÉMENTS ÉDITORIAUX DE LA MAISON (charte §5 et §9) */
.carver-label {
	font-family: var(--carver-sans);
	font-size: 12px;
	font-weight: 500;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: #666666;
	margin-bottom: 0.9rem !important;
}
.carver-sombre .carver-label { color: #AAAAAA; }
.carver-titre { font-family: var(--carver-serif); font-weight: 500; margin-top: 0 !important; }
.carver-intro { font-size: 17px; color: #444444; max-width: 38em; }
.carver-sombre .carver-intro { color: #CCCCCC; }
.has-text-align-center.carver-intro, .carver-centre .carver-intro { margin-left: auto; margin-right: auto; }

/* Ornement ──── ♠& ──── */
.carver-ornement {
	display: flex; align-items: center; justify-content: center; gap: 1.25rem;
	margin: 2.5rem auto; max-width: 420px;
}
.carver-ornement::before, .carver-ornement::after {
	content: ""; flex: 1; height: 1px; background: currentColor; opacity: .35;
}
.carver-ornement img { width: 26px; height: auto; display: block; }
.carver-sombre .carver-ornement { color: #FFFFFF; }

/* Sections */
.carver-section { padding-top: var(--carver-space) !important; padding-bottom: var(--carver-space) !important; }
.carver-fond-clair { background: #F5F5F5; }
.carver-sombre { background: #000000; color: #FFFFFF; }
.carver-sombre h1, .carver-sombre h2, .carver-sombre h3, .carver-sombre h4, .carver-sombre a:not(.wp-block-button__link) { color: #FFFFFF; }

/* Hero de la page d'accueil (charte §10) */
.carver-hero {
	min-height: min(88vh, 760px);
	display: flex; flex-direction: column; justify-content: center; align-items: center;
	text-align: center;
	padding: 6rem 1.5rem !important;
	background-color: #000000;
	background-size: cover; background-position: center;
	position: relative;
}
.carver-hero .carver-hero__logo img { width: min(460px, 78vw); height: auto; margin: 0 auto; }
.carver-hero .carver-signature { margin-top: 1.1rem; font-size: 13px; }
.carver-hero .carver-intro { margin: 2.2rem auto 2.4rem; font-size: 17px; max-width: 30em; }
.carver-hero .wp-block-buttons { justify-content: center; }

/* Les deux gammes */
.carver-gammes { gap: 0 !important; }
.carver-gammes > .wp-block-column { padding: clamp(2.5rem, 6vw, 5rem) !important; }
.carver-gammes > .wp-block-column:first-child { background: #F5F5F5; }
.carver-gammes > .wp-block-column:last-child { background: #000000; color: #FFFFFF; }
.carver-gammes > .wp-block-column:last-child h2,
.carver-gammes > .wp-block-column:last-child h3 { color: #FFFFFF; }
.carver-gammes > .wp-block-column:last-child .carver-label { color: #AAAAAA; }
.carver-gammes > .wp-block-column:last-child .carver-intro { color: #CCCCCC; }
.carver-gammes > .wp-block-column:last-child .wp-block-button__link { background: #FFFFFF; color: #000000; border-color: #FFFFFF; }
.carver-gammes > .wp-block-column:last-child .wp-block-button__link:hover { background: transparent; color: #FFFFFF; }
.carver-symboles { font-size: 14px; letter-spacing: 0.04em; color: #AAAAAA; }

/* Engagements (réassurance) */
.carver-engagements { gap: 0 !important; border-top: 1px solid var(--carver-line); border-bottom: 1px solid var(--carver-line); }
.carver-engagements > .wp-block-column { padding: 2.2rem 1.6rem !important; }
.carver-engagements > .wp-block-column + .wp-block-column { border-left: 1px solid var(--carver-line); }
.carver-engagements h3 { font-size: 22px; margin-bottom: .6rem; }
.carver-engagements p { font-size: 14px; color: #666666; margin: 0; line-height: 1.6; }
@media (max-width: 781px) {
	.carver-engagements > .wp-block-column + .wp-block-column { border-left: 0; border-top: 1px solid var(--carver-line); }
}

/* Encadré gravure */
.carver-gravure { border: 1px solid #000000; padding: clamp(2rem, 5vw, 3.5rem) !important; max-width: 760px; margin-left: auto !important; margin-right: auto !important; background: #FFFFFF; }
.carver-mention { font-size: 13px; color: #666666; }

/* 9. WOOCOMMERCE */
/* Grille produits */
.woocommerce ul.products li.product,
.wc-block-grid__product { text-align: left; }
.woocommerce ul.products li.product a img,
.woocommerce ul.products li.product .woocommerce-loop-product__link img {
	background: #F5F5F5; border-radius: 0; margin-bottom: 1rem;
}
.woocommerce ul.products li.product .woocommerce-loop-product__title,
.woocommerce ul.products li.product h2,
.wc-block-grid__product-title {
	font-family: var(--carver-serif);
	font-size: 21px;
	font-weight: 600;
	line-height: 1.25;
	color: #000000;
	padding: 0;
}
.woocommerce ul.products li.product .price,
.wc-block-grid__product-price {
	font-family: var(--carver-sans);
	font-size: 14px; font-weight: 500; letter-spacing: 0.04em; color: #222222;
}
.woocommerce ul.products li.product .button { font-size: 12px; padding: .9em 1.4em; }
.woocommerce span.onsale, .wc-block-grid__product-onsale {
	background: #000000; color: #FFFFFF; border-radius: 0; min-height: 0; min-width: 0;
	font-family: var(--carver-sans); font-size: 11px; font-weight: 600; letter-spacing: 0.12em;
	text-transform: uppercase; padding: .5em 1em; line-height: 1.4;
}
.woocommerce .star-rating span::before, .woocommerce .star-rating::before { color: #000000; }
.woocommerce-products-header__title.page-title { font-size: 50px; }
.woocommerce .woocommerce-ordering select, .woocommerce .woocommerce-result-count { font-size: 13px; color: #666666; }
.woocommerce nav.woocommerce-pagination ul li a, .woocommerce nav.woocommerce-pagination ul li span {
	border-radius: 0; font-size: 14px;
}
.woocommerce nav.woocommerce-pagination ul li span.current { background: #000000; color: #FFFFFF; }

/* Fiche produit */
.single-product div.product .product_title { margin-bottom: .4rem; }
.single-product div.product p.price, .single-product div.product span.price {
	font-family: var(--carver-sans); font-size: 20px; font-weight: 500; color: #000000;
}
.single-product div.product .woocommerce-product-details__short-description { color: #444444; }
.single-product div.product .product_meta { font-size: 13px; color: #666666; border-top: 1px solid var(--carver-line); padding-top: 1rem; }
.single-product div.product .product_meta a { color: #000000; }
.woocommerce div.product .woocommerce-tabs ul.tabs li { border-radius: 0; background: transparent; border-color: var(--carver-line); }
.woocommerce div.product .woocommerce-tabs ul.tabs li a {
	font-family: var(--carver-sans); font-size: 13px; font-weight: 600; letter-spacing: .08em; text-transform: uppercase;
}
.woocommerce div.product .woocommerce-tabs ul.tabs li.active { border-bottom-color: #FFFFFF; }
.woocommerce .quantity .qty { border-radius: 0; }
.woocommerce div.product form.cart .variations select { border-radius: 0; }
.woocommerce-product-gallery img { background: #F5F5F5; }

/* Encadré d'informations d'achat sous le bouton « Ajouter au panier » */
.carver-infos-achat {
	margin: 1.6rem 0 0; padding: 1.2rem 1.4rem; background: #FAFAFA; border-left: 1px solid #000000;
	font-size: 13px; line-height: 1.65; color: #444444;
}
.carver-infos-achat p { margin: 0 0 .4rem; }
.carver-infos-achat p:last-child { margin-bottom: 0; }
.carver-infos-achat strong { color: #000000; font-weight: 600; }

/* Panier, commande, compte */
.woocommerce table.shop_table { border-radius: 0; border-color: var(--carver-line); }
.woocommerce table.shop_table th {
	font-family: var(--carver-sans); font-size: 12px; font-weight: 600; letter-spacing: .1em; text-transform: uppercase;
}
.woocommerce-cart .cart-collaterals .cart_totals h2,
.woocommerce-checkout h3, #order_review_heading { font-size: 28px; }
.woocommerce-checkout #payment { background: #FAFAFA; border-radius: 0; }
.woocommerce-checkout #payment div.payment_box { background: #F5F5F5; border-radius: 0; }
.woocommerce-checkout #payment div.payment_box::before { border-bottom-color: #F5F5F5; }
.woocommerce-message, .woocommerce-info, .woocommerce-error, .wc-block-components-notice-banner {
	border-radius: 0; border-top-color: #000000; background: #FAFAFA; color: #222222;
}
.woocommerce-message::before, .woocommerce-info::before { color: #000000; }
.carver-rappel-paiement {
	margin: 0 0 1.4rem; padding: 1rem 1.2rem; border: 1px solid #000000; background: #FFFFFF;
	font-size: 13px; line-height: 1.6; color: #222222;
}
.woocommerce-account .woocommerce-MyAccount-navigation ul { list-style: none; padding: 0; border-top: 1px solid var(--carver-line); }
.woocommerce-account .woocommerce-MyAccount-navigation ul li { border-bottom: 1px solid var(--carver-line); }
.woocommerce-account .woocommerce-MyAccount-navigation ul li a { display: block; padding: .8rem 0; font-size: 14px; text-decoration: none; }
.woocommerce-account .woocommerce-MyAccount-navigation ul li.is-active a { font-weight: 600; }

/* 10. DIVERS */
img { border-radius: 0; }
hr, .wp-block-separator { border-color: var(--carver-line); opacity: 1; }
.entry-hero .entry-header { text-align: center; }
.entry-content-wrap, .content-bg { border-radius: 0 !important; box-shadow: none !important; }

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

/* 11. COMPLÉMENTS DES BLOCS DE LA MAISON */
.carver-centre { text-align: center; }
.carver-centre .wp-block-buttons { justify-content: center; }
.carver-centre .carver-intro { margin-left: auto; margin-right: auto; }
.carver-citation {
	font-family: var(--carver-serif);
	font-size: clamp(26px, 3.4vw, 40px);
	font-style: italic;
	font-weight: 400;
	line-height: 1.3;
	max-width: 22em;
	margin: 0 auto 1.6rem !important;
}
.carver-sombre .carver-citation { color: #FFFFFF; }
.carver-nouveautes .woocommerce { margin-top: 2.5rem; margin-bottom: 2.5rem; }
.carver-ornement { max-width: 420px !important; }
.carver-gravure { max-width: 760px !important; }
.carver-sombre .carver-signature { margin-top: 2rem; color: #AAAAAA; }
.carver-section:has(> .carver-engagements:not(.carver-colonnes)) { padding-top: 0 !important; }
.carver-colonnes { margin-top: 2.5rem; }

/* 12. PAGES INSTITUTIONNELLES ET OFFICIELLES */
.carver-entete-page { padding-top: clamp(5rem, 10vw, 8rem) !important; }
.carver-lecture > * { max-width: 720px !important; }
.carver-lecture p { font-size: 17px; line-height: 1.8; color: #222222; }
.carver-piliers { text-align: left; margin-top: 2.5rem; }
.carver-piliers p { font-size: 15px; }
.carver-symbole img { width: 96px; height: auto; margin: 0 auto 1.5rem; display: block; }

.carver-legal > * { max-width: 760px !important; }
.carver-legal h1 { font-size: 44px; margin-bottom: .6rem; }
.carver-legal h2 { font-size: 26px; margin-top: 2.8rem; margin-bottom: .8rem; padding-top: 1.6rem; border-top: 1px solid var(--carver-line); }
.carver-legal h3 { font-family: var(--carver-sans); font-size: 15px; font-weight: 600; letter-spacing: .02em; margin-top: 1.6rem; margin-bottom: .4rem; }
.carver-legal p, .carver-legal li { font-size: 16px; line-height: 1.75; color: #222222; }
.carver-legal ul, .carver-legal ol { padding-left: 1.2em; }
.carver-legal li { margin-bottom: .35rem; }
.carver-legal__date { font-size: 13px; color: #666666; letter-spacing: .04em; }
.carver-legal .carver-intro { font-size: 17px; margin-bottom: 1rem; }
.carver-legal .carver-signature { margin-top: 3rem; color: #666666; }
@media (max-width: 767px) { .carver-legal h1 { font-size: 34px; } .carver-legal h2 { font-size: 23px; } }

/* 13. BANDEAU D'ACCUEIL AVEC PHOTO */
.carver-hero { isolation: isolate; overflow: hidden; }
.carver-hero::before {
	content: ""; position: absolute; inset: 0; z-index: -1;
	background: linear-gradient(180deg, rgba(0,0,0,.35) 0%, rgba(0,0,0,.55) 100%);
}
.carver-hero .carver-label { color: #FFFFFF; opacity: .85; }
.carver-hero .carver-hero__titre {
	font-family: var(--carver-serif); font-weight: 500; color: #FFFFFF;
	font-size: clamp(40px, 6vw, 72px); line-height: 1.05; margin: 0 auto !important; max-width: 12em;
}
.carver-hero .carver-intro { color: #F0F0F0; }

/* 14. LIENS ENTRE FICHE SANS GRAVURE ET FICHE GRAVÉE */
.carver-lien-gravure { display: block; margin: 1.2rem 0 0; }
/* Bouton « Personnaliser cette pièce » : toute la largeur de la ligne quantité + ajout au panier, texte centré */
.carver-lien-gravure .button.carver-secondaire {
	display: flex !important; align-items: center; justify-content: center;
	width: 100% !important; max-width: 100%; box-sizing: border-box;
	text-align: center !important; margin: 0 !important;
}
.carver-lien-gravure span { display: block; margin-top: .7rem; font-size: 13px; color: #666666; text-align: center; }
.carver-lien-version { margin: 1rem 0 0; font-size: 14px; color: #444444; }
.carver-lien-version a { color: #000000; font-weight: 500; }

/* 15. NEUTRALISATION DE RÉGLAGES DU MODÈLE JEWELRY SHOP
   Le modèle met les titres en « capitalize » (« L’Homme. Le Style. »),
   contraire à la typographie française et à la charte. */
h1, h2, h3, h4, h5,
.entry-title, .page-title, .product_title,
.woocommerce ul.products li.product .woocommerce-loop-product__title {
	text-transform: none;
}

/* 16. TITRES DES PRODUITS DANS LES GRILLES — toujours en noir, quelle que soit
   la couleur réglée dans le Customizer (évite un titre blanc sur fond blanc). */
.woocommerce ul.products li.product .product-details .woocommerce-loop-product__title,
.woocommerce ul.products li.product .product-details .woocommerce-loop-product__title a,
.woocommerce ul.products li.product .woocommerce-loop-product__title,
.wc-block-grid__products .wc-block-grid__product .wc-block-grid__product-title,
.wc-block-components-product-name {
	color: #000000 !important;
}

/* 17. MISE EN PAGE DES COMPOSITIONS DANS KADENCE
   - bandeau collé à l'en-tête, sections collées entre elles (aucun espace blanc) ;
   - marges latérales et largeur maximale du contenu de chaque section. */
:root {
	--carver-largeur: 1200px;
	--carver-gouttiere: clamp(20px, 5vw, 64px);
}
/* Espaces entre sections : supprime la marge automatique entre blocs */
.entry-content > .carver-hero,
.entry-content > .carver-section,
.entry-content > .carver-gammes,
.entry-content > .wp-block-group.alignfull[class*="carver-"],
.entry-content > .wp-block-columns.alignfull[class*="carver-"] {
	margin-top: 0 !important;
	margin-bottom: 0 !important;
}
/* Espace entre l'en-tête et le bandeau (et avant le pied de page) */
.content-area:has(.entry-content > .carver-hero:first-child),
.content-area:has(.entry-content > .carver-section:first-child) { margin-top: 0 !important; }
.content-area:has(.entry-content > [class*="carver-"]:last-child) { margin-bottom: 0 !important; }
.entry-content-wrap:has(> .entry-content > [class*="carver-"]) { padding-top: 0 !important; padding-bottom: 0 !important; }
/* Marges latérales et largeur du contenu */
.carver-section, .carver-hero {
	box-sizing: border-box;
	padding-left: var(--carver-gouttiere) !important;
	padding-right: var(--carver-gouttiere) !important;
}
.carver-section > *, .carver-hero > * {
	max-width: var(--carver-largeur);
	margin-left: auto !important;
	margin-right: auto !important;
}
.entry-content .carver-engagements > .wp-block-column { padding: 2.2rem 1.6rem !important; }
.entry-content .carver-gammes > .wp-block-column {
	padding: clamp(2.5rem, 6vw, 5rem) var(--carver-gouttiere) !important;
}

/* 18. PASTILLE DU PANIER — rond noir (1 chiffre), ovale à partir de 10.
   Dimensions fixes en pixels et prioritaires : Kadence impose sa propre
   hauteur et sa taille de texte, ce qui rendait la pastille ovale. */
.header-cart-wrap .header-cart-button .header-cart-total,
.header-cart-button .header-cart-total,
.header-cart-inner-wrap .header-cart-total,
.header-mobile-cart-wrap .header-cart-total {
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
	box-sizing: border-box !important;
	width: auto !important;
	min-width: 18px !important;
	height: 18px !important;
	padding: 0 5px !important;
	border-radius: 9px !important;
	background: #000000 !important;
	color: #FFFFFF !important;
	font-family: var(--carver-sans) !important;
	font-size: 10px !important;
	font-weight: 600 !important;
	line-height: 1 !important;
	letter-spacing: 0 !important;
	text-align: center !important;
}

/* 19. BOUTON « CONTOUR » SUR FOND NOIR — texte et bordure blancs au repos.
   WordPress applique « color: currentColor » aux boutons contour avec un
   sélecteur plus fort : on le surclasse ici. */
.carver-sombre .wp-block-button.is-style-outline > .wp-block-button__link,
.carver-sombre .wp-block-button.is-style-outline > .wp-block-button__link:not(.has-text-color),
.carver-sombre .wp-block-button.is-style-outline > .wp-block-button__link:not(.has-background) {
	background: transparent !important;
	color: #FFFFFF !important;
	border-color: #FFFFFF !important;
}
.carver-sombre .wp-block-button.is-style-outline > .wp-block-button__link:hover,
.carver-sombre .wp-block-button.is-style-outline > .wp-block-button__link:focus-visible {
	background: #FFFFFF !important;
	color: #000000 !important;
	border-color: #FFFFFF !important;
}

/* 20. BANDEAU VIDÉO ÉDITORIAL — même format que le bandeau d'accueil.
   Kadence étant un thème « classique », WordPress ajoute autour du contenu des
   groupes un conteneur .wp-block-group__inner-container : les sélecteurs
   ci-dessous fonctionnent avec ou sans ce conteneur. */
.carver-video {
	position: relative;
	isolation: isolate;
	overflow: hidden;
	min-height: min(88vh, 760px);
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: center;
	text-align: center;
	background: #000000;
	box-sizing: border-box;
	padding: 6rem var(--carver-gouttiere) !important;
}
.carver-video > .wp-block-group__inner-container {
	position: static; width: 100%; max-width: none !important; margin: 0 !important;
}
/* La vidéo couvre tout le bandeau */
.carver-video .carver-video__media {
	position: absolute !important; inset: 0; z-index: -2;
	width: 100% !important; height: 100% !important; max-width: none !important;
	margin: 0 !important; padding: 0 !important;
}
.carver-video .carver-video__media video {
	position: absolute; inset: 0;
	width: 100% !important; height: 100% !important; max-width: none !important;
	object-fit: cover; display: block;
}
.carver-video .carver-video__media figcaption { display: none; }
/* Voile identique au bandeau d'accueil */
.carver-video::after {
	content: ""; position: absolute; inset: 0; z-index: -1; pointer-events: none;
	background: linear-gradient(180deg, rgba(0,0,0,.35) 0%, rgba(0,0,0,.55) 100%);
}
/* Textes par-dessus la vidéo, centrés */
.carver-video .carver-video__contenu,
.carver-video .carver-video__contenu > .wp-block-group__inner-container {
	position: relative; z-index: 1;
	max-width: 960px !important; margin-left: auto !important; margin-right: auto !important;
	text-align: center;
}
.carver-video .carver-video__contenu * { text-align: center; }
.carver-video .carver-video__contenu .carver-video__titre,
.carver-video .carver-video__contenu .wp-block-buttons,
.carver-video .carver-video__contenu .carver-label { max-width: none !important; }
.carver-video .carver-label { color: #FFFFFF; opacity: .85; margin-left: auto; margin-right: auto; }
.carver-video .carver-video__titre {
	font-family: var(--carver-serif); font-weight: 500; color: #FFFFFF;
	font-size: clamp(40px, 6vw, 72px); line-height: 1.05; margin: 0 auto 1rem !important;
}
.carver-video .carver-intro { color: #F0F0F0; margin: 1.6rem auto 2.4rem !important; max-width: 30em; }
.carver-video .wp-block-buttons { justify-content: center; }
.carver-video__pause {
	position: absolute; right: var(--carver-gouttiere); bottom: 1.4rem; z-index: 2;
	background: transparent !important; color: #FFFFFF !important; border: 1px solid rgba(255,255,255,.6) !important;
	font-size: 11px !important; letter-spacing: .12em; padding: .55em 1.1em !important;
}
.carver-video__pause:hover { background: #FFFFFF !important; color: #000000 !important; }
@media (max-width: 767px) {
	.carver-video { min-height: 75vh; padding-top: 4rem !important; padding-bottom: 4rem !important; }
	.carver-video__pause { bottom: 1rem; }
}

/* 21. LISTES DÉROULANTES — une seule flèche, jamais répétée */
select,
.woocommerce .woocommerce-ordering select,
.woocommerce form .form-row select {
	background-repeat: no-repeat !important;
}

/* 22. RECHERCHE — fenêtre claire, discrète et dans la charte */

/* Boutons d'interface de Kadence (loupe, croix, menu mobile) : ils ne doivent
   pas prendre le style des gros boutons noirs du site. */
.search-toggle-open, .search-toggle-close, .drawer-toggle,
.menu-toggle-open, .menu-toggle-close {
	background: transparent !important; border: 0 !important; box-shadow: none !important;
	padding: .3em !important; color: #000000 !important;
	display: inline-flex !important; align-items: center; justify-content: center; line-height: 1 !important;
	text-transform: none !important; letter-spacing: 0 !important; font-size: inherit !important;
}
.search-toggle-open:hover, .menu-toggle-open:hover { background: transparent !important; color: #333333 !important; }

/* Croix native des champs de recherche (bleue dans Chrome) : supprimée */
input[type="search"]::-webkit-search-cancel-button,
input[type="search"]::-webkit-search-decoration { -webkit-appearance: none; appearance: none; display: none; }
input[type="search"]::-ms-clear { display: none; }

/* Fenêtre de recherche plein écran : fond blanc, contenu centré avec marges */
#search-drawer .drawer-inner {
	background: rgba(255,255,255,.98) !important; color: #000000 !important;
}
#search-drawer .drawer-header { padding: 1.2rem var(--carver-gouttiere) 0 !important; justify-content: flex-end; }
#search-drawer .drawer-content {
	display: flex; align-items: center; justify-content: center;
	padding: 0 var(--carver-gouttiere) !important; box-sizing: border-box;
}
#search-drawer .search-form {
	position: relative; width: 100%; max-width: 620px; margin: 0 auto;
	/* Kadence met le formulaire en ligne (flex) : on force l'empilement
	   pour que « Recherche » se place au-dessus du champ, aligné à gauche. */
	display: flex !important; flex-direction: column !important;
	align-items: stretch !important; flex-wrap: nowrap !important;
}
#search-drawer .search-form > * { width: 100%; max-width: 100%; margin-left: 0 !important; }
#search-drawer .search-form::before {
	content: "Recherche"; display: block; margin: 0 0 1.5rem 0 !important; padding: 0 !important;
	width: 100%; text-align: left; flex: 0 0 auto;
	font-family: var(--carver-sans); font-size: 11px; font-weight: 500;
	letter-spacing: .18em; text-transform: uppercase; color: #666666;
}
#search-drawer .search-form label { display: block; width: 100%; }
#search-drawer .search-form .search-field,
#search-drawer .drawer-inner input[type="search"] {
	width: 100% !important; box-sizing: border-box;
	font-family: var(--carver-serif) !important; font-size: 24px !important; font-weight: 400 !important;
	color: #000000 !important; background: transparent !important;
	border: 0 !important; border-bottom: 1px solid #000000 !important; border-radius: 0 !important;
	height: 56px !important; line-height: 1.2 !important; min-height: 0 !important;
	padding: 0 2.4em 0 0 !important; box-shadow: none !important; outline: none !important;
}
#search-drawer .search-form .search-field::placeholder {
	color: #999999; font-style: italic; opacity: 1;
}
#search-drawer .search-form .search-submit {
	width: 2.2em !important;
	position: absolute; right: 0; bottom: 0; width: 2.2em; height: 100%; opacity: 0; cursor: pointer;
}
/* Loupe de la fenêtre : même hauteur que la ligne de saisie (56 px), centrée dessus */
#search-drawer .kadence-search-icon-wrap {
	width: auto !important; position: absolute !important;
	top: auto !important; right: 0 !important; bottom: 0 !important; left: auto !important;
	height: 56px !important; display: flex !important; align-items: center !important;
	transform: none !important; margin: 0 !important; padding: 0 !important;
	color: #000000 !important; pointer-events: none;
}
#search-drawer .kadence-search-icon-wrap .kadence-search-icon { display: flex; align-items: center; }
#search-drawer .kadence-search-icon-wrap svg { width: 16px !important; height: 16px !important; }
/* Croix de fermeture : fine, petite, noire */
#search-drawer .search-toggle-close, #search-drawer .drawer-toggle {
	color: #000000 !important; opacity: .7; transition: opacity .2s ease;
}
#search-drawer .search-toggle-close:hover, #search-drawer .drawer-toggle:hover { opacity: 1; }
#search-drawer .search-toggle-close svg, #search-drawer .drawer-toggle svg {
	width: 18px !important; height: 18px !important; stroke-width: 1.5;
}
@media (max-width: 767px) {
	#search-drawer .search-form .search-field, #search-drawer .drawer-inner input[type="search"] { font-size: 20px !important; height: 48px !important; }
	#search-drawer .kadence-search-icon-wrap { height: 48px !important; }
}

/* 23. LOUPE DE L'EN-TÊTE — même taille que les icônes Facebook et Instagram,
   centrée verticalement sur la même ligne (le modèle Jewelry Shop la mettait à 1,45 em). */
.search-toggle-open-container .search-toggle-open .search-toggle-icon,
.search-toggle-open .search-toggle-icon {
	font-size: 1em !important; display: flex; align-items: center;
}
.search-toggle-open .search-toggle-icon svg,
.header-social-wrap .social-button svg {
	display: block; width: 1em !important; height: 1em !important;
}

/* 24. LOUPE — ajustement vertical mesuré sur l'en-tête réel (centre de la loupe
   2 à 3 px plus haut que Facebook, Instagram et le panier).
   Pour affiner : modifier --carver-loupe-decalage (valeur positive = vers le bas). */
:root { --carver-loupe-decalage: 2.5px; }
.search-toggle-open-container .search-toggle-open,
.search-toggle-open {
	transform: translateY(var(--carver-loupe-decalage));
}

/* 26. FENÊTRE DE RECHERCHE — loupe sur la même ligne que le texte saisi.
   Le formulaire devient une grille : « Recherche » sur la 1re ligne, puis le
   champ et la loupe partagent exactement la même 2e ligne (centrage vertical
   garanti, quelle que soit la position que Kadence donne à la loupe). */
#search-drawer .search-form {
	display: grid !important;
	grid-template-columns: 1fr auto !important;
	grid-template-rows: auto auto !important;
	align-items: center !important;
}
#search-drawer .search-form::before { grid-column: 1 / -1 !important; grid-row: 1 !important; }
#search-drawer .search-form > label { grid-column: 1 / -1 !important; grid-row: 2 !important; }
#search-drawer .search-form > .kadence-search-icon-wrap {
	grid-column: 2 !important; grid-row: 2 !important;
	position: static !important; align-self: center !important; justify-self: end !important;
	height: auto !important; width: auto !important;
	margin: 0 2px 0 0 !important; transform: none !important;
}
#search-drawer .search-form > .search-submit {
	grid-column: 2 !important; grid-row: 2 !important;
	position: relative !important; right: auto !important; bottom: auto !important;
	align-self: stretch !important; justify-self: end !important; z-index: 1;
}

/* 27. CHAMPS D'OPTIONS PRODUIT (Custom Product Addons d'Acowebs) — alignés sur la charte :
   angles droits, bordure grise fine, fond gris très clair, titres noirs en Montserrat. Ciblage large (tout le formulaire d'achat de la
   fiche produit, hors champ quantité) pour ne pas dépendre des classes de l'extension. */
.single-product form.cart select,
.single-product form.cart textarea,
.single-product form.cart input[type="text"],
.single-product form.cart input[type="email"],
.single-product form.cart input[type="tel"],
.single-product form.cart input[type="number"]:not(.qty),
.single-product form.cart input[type="date"],
.single-product [class*="wcpa"] select,
.single-product [class*="wcpa"] textarea,
.single-product [class*="wcpa"] input[type="text"] {
	font-family: var(--carver-sans) !important;
	font-size: 15px !important;
	color: #222222 !important;
	background-color: #FAFAFA !important;
	border: 1px solid #D0D0D0 !important;
	border-radius: 0 !important;
	box-shadow: none !important;
	min-height: 48px;
	padding-left: 14px !important;
	box-sizing: border-box;
}
.single-product form.cart select:focus,
.single-product form.cart textarea:focus,
.single-product form.cart input:not(.qty):focus,
.single-product [class*="wcpa"] select:focus,
.single-product [class*="wcpa"] input:focus,
.single-product [class*="wcpa"] textarea:focus {
	border-color: #000000 !important;
	background-color: #FFFFFF !important;
	outline: none !important;
}
.single-product form.cart label,
.single-product [class*="wcpa"] label,
.single-product [class*="wcpa"] [class*="label"] {
	font-family: var(--carver-sans) !important;
	font-size: 13px !important;
	font-weight: 500 !important;
	letter-spacing: .04em !important;
	color: #000000 !important;
}
/* Astérisque des champs obligatoires : couleur rouge de l'extension conservée (choix de la direction). */
.single-product form.cart ::placeholder { color: #999999; }

/* 28. LISTE D'ENVIES — cœur fin, noir, rempli quand la pièce est choisie */
.woocommerce ul.products li.product { position: relative; }
.carver-coeur {
	display: inline-flex !important; align-items: center; gap: .55em;
	background: transparent !important; border: 0 !important; box-shadow: none !important;
	padding: 0 !important; margin: 0 !important; cursor: pointer;
	color: #000000 !important; text-transform: none !important; letter-spacing: 0 !important;
	font-family: var(--carver-sans) !important; font-weight: 400 !important;
}
.carver-coeur__icone { display: block; width: 18px; height: 18px; transition: transform .2s ease; }
.carver-coeur:hover .carver-coeur__icone { transform: scale(1.08); }
.carver-coeur.est-actif .carver-coeur__icone path { fill: currentColor; }
.carver-coeur:focus-visible { outline: 1px solid #000000; outline-offset: 3px; }
.carver-coeur--grille {
	position: absolute !important; top: 10px; right: 10px; z-index: 5;
	width: 36px; height: 36px; justify-content: center;
	background: rgba(255,255,255,.9) !important; border-radius: 50% !important;
}
.carver-coeur--grille:hover { background: #FFFFFF !important; }
/* Fiche produit : cœur seul, creux et noir, en haut à droite du bloc d'informations */
.single-product div.product .summary, .single-product .entry-summary { position: relative; }
.carver-coeur--fiche {
	position: absolute !important; top: .35rem; right: 0; z-index: 3;
	width: 40px; height: 40px; justify-content: center;
}
.carver-coeur--fiche .carver-coeur__icone { width: 24px; height: 24px; }
.single-product div.product .summary .product_title,
.single-product .entry-summary .product_title { padding-right: 52px; }
.carver-envies-annonce {
	position: fixed; left: 50%; bottom: 24px; z-index: 99999; transform: translate(-50%, 12px);
	background: #000000; color: #FFFFFF; font-family: var(--carver-sans); font-size: 13px; letter-spacing: .04em;
	padding: .8em 1.4em; opacity: 0; pointer-events: none; transition: opacity .25s ease, transform .25s ease;
}
.carver-envies-annonce.est-visible { opacity: 1; transform: translate(-50%, 0); }
.carver-envies { margin-top: 2.5rem; text-align: left; }
.carver-envies__grille {
	display: grid !important; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 32px 24px;
	list-style: none; margin: 0 !important; padding: 0 !important;
}
.carver-envies__grille::before, .carver-envies__grille::after { display: none !important; }
.carver-envies__produit { position: relative; width: auto !important; margin: 0 !important; float: none !important; }
.carver-envies__lien { display: block; text-decoration: none; color: inherit; }
.carver-envies__lien img, .carver-envies__sans-image { display: block; width: 100%; aspect-ratio: 1; object-fit: cover; background: #F5F5F5; margin-bottom: 1rem; }
.carver-envies__voir { margin-top: .9rem; font-size: 12px !important; padding: .9em 1.4em !important; }
.carver-envies__vide { text-align: center; padding: 2rem 0; }
.carver-envies__aide { color: #666666; font-size: 14px; margin-bottom: 1.6rem; }
@media (max-width: 1024px) { .carver-envies__grille { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 767px) { .carver-envies__grille { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px 16px; } }

/* 29. PAGE CONTACT */
.carver-section--serree { padding-top: 0 !important; }
.carver-coordonnees a { color: #000000; }
.carver-coordonnees p { font-size: 15px !important; color: #444444 !important; line-height: 1.7 !important; margin-bottom: .9rem !important; }
.carver-carte {
	position: relative; width: 100%; aspect-ratio: 16 / 7; min-height: 320px; margin-top: 2rem;
	border: 1px solid var(--carver-line); background: #F5F5F5; overflow: hidden;
}
.carver-carte iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.carver-carte__lien { margin-top: 1rem !important; font-size: 13px; letter-spacing: .04em; }
@media (max-width: 767px) { .carver-carte { aspect-ratio: 4 / 5; } }

/* Formulaire (WPForms) aux couleurs de la charte */
.carver-formulaire { max-width: 680px; margin: 2rem auto 0; text-align: left; }
.carver-formulaire .wpforms-container { margin: 0 !important; }
.carver-formulaire .wpforms-field { padding: 0 0 1.2rem !important; }
.carver-formulaire .wpforms-field-label {
	font-family: var(--carver-sans) !important; font-size: 13px !important; font-weight: 500 !important;
	letter-spacing: .04em !important; color: #000000 !important; margin-bottom: .45rem !important;
}
.carver-formulaire input:not([type="checkbox"]):not([type="radio"]):not([type="submit"]),
.carver-formulaire select, .carver-formulaire textarea {
	width: 100% !important; max-width: 100% !important; box-sizing: border-box;
	font-family: var(--carver-sans) !important; font-size: 15px !important; color: #222222 !important;
	background-color: #FAFAFA !important; border: 1px solid #D0D0D0 !important; border-radius: 0 !important;
	box-shadow: none !important; min-height: 48px; padding: .7em 1em !important;
}
.carver-formulaire textarea { min-height: 160px; }
.carver-formulaire input:focus, .carver-formulaire select:focus, .carver-formulaire textarea:focus {
	border-color: #000000 !important; background-color: #FFFFFF !important; outline: none !important;
}
.carver-formulaire .wpforms-submit-container { padding-top: .6rem !important; text-align: center; }
.carver-formulaire button[type="submit"], .carver-formulaire .wpforms-submit {
	background: #000000 !important; color: #FFFFFF !important; border: 1px solid #000000 !important; border-radius: 0 !important;
	font-family: var(--carver-sans) !important; font-size: 14px !important; font-weight: 600 !important;
	letter-spacing: .1em !important; text-transform: uppercase !important; padding: 1.05em 2.6em !important; height: auto !important;
}
.carver-formulaire button[type="submit"]:hover, .carver-formulaire .wpforms-submit:hover { background: #333333 !important; border-color: #333333 !important; }
.carver-formulaire .wpforms-confirmation-container-full {
	background: #FAFAFA !important; border: 1px solid #000000 !important; color: #222222 !important; border-radius: 0 !important;
}
.carver-formulaire--attente { text-align: center; }

/* FAQ */
.carver-faq > .wp-block-group__inner-container, .carver-faq > * { max-width: 820px !important; }
.carver-faq > .wp-block-group__inner-container > * { max-width: 820px !important; }
.carver-faq .carver-label, .carver-faq .carver-titre { text-align: center; }
.carver-faq__theme {
	font-family: var(--carver-sans) !important; font-size: 12px !important; font-weight: 600 !important;
	letter-spacing: .16em; text-transform: uppercase; color: #666666 !important;
	margin: 3rem auto .6rem !important; padding: 0; border: 0;
}
.carver-faq__item { border-top: 1px solid #DCDCDC; margin: 0 auto !important; }
.carver-faq__item:last-of-type { border-bottom: 1px solid #DCDCDC; }
.carver-faq__item summary {
	list-style: none; cursor: pointer; position: relative;
	padding: 1.15rem 2.5rem 1.15rem 0; font-family: var(--carver-serif); font-size: 21px; font-weight: 500; color: #000000;
}
.carver-faq__item summary::-webkit-details-marker { display: none; }
.carver-faq__item summary::after {
	content: ""; position: absolute; right: 4px; top: 50%; width: 11px; height: 11px; margin-top: -8px;
	border-right: 1px solid #000000; border-bottom: 1px solid #000000; transform: rotate(45deg); transition: transform .25s ease, margin .25s ease;
}
.carver-faq__item[open] summary::after { transform: rotate(-135deg); margin-top: -2px; }
.carver-faq__item summary:focus-visible { outline: 1px solid #000000; outline-offset: 4px; }
.carver-faq__item > p { font-size: 15px; color: #444444; line-height: 1.75; margin: 0 0 1.2rem !important; padding-right: 2.5rem; }
@media (max-width: 767px) { .carver-faq__item summary { font-size: 19px; } }

/* 30. SUIVEZ-NOUS (Instagram) — fond blanc, grille carrée sobre */
.carver-instagram { background: #FFFFFF; }
.carver-instagram__fil { margin: 2.2rem auto 2.4rem; max-width: 1200px; }
.carver-instagram #sb_instagram { padding: 0 !important; width: 100% !important; }
.carver-instagram #sb_instagram .sb_instagram_header,
.carver-instagram #sb_instagram #sbi_load,
.carver-instagram #sb_instagram .sbi_follow_btn { display: none !important; }
.carver-instagram #sb_instagram #sbi_images {
	display: grid !important; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 8px !important; padding: 0 !important;
}
.carver-instagram #sb_instagram .sbi_item { width: auto !important; padding: 0 !important; margin: 0 !important; }
.carver-instagram #sb_instagram .sbi_photo_wrap { position: relative; overflow: hidden; aspect-ratio: 1; }
.carver-instagram #sb_instagram .sbi_photo {
	display: block; width: 100%; height: 100% !important; background-size: cover; background-position: center;
	transition: transform .6s ease, filter .6s ease;
}
.carver-instagram #sb_instagram .sbi_photo img { width: 100%; height: 100%; object-fit: cover; }
.carver-instagram #sb_instagram .sbi_item:hover .sbi_photo { transform: scale(1.04); filter: brightness(.88); }
@media (max-width: 1024px) { .carver-instagram #sb_instagram #sbi_images { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 767px) { .carver-instagram #sb_instagram #sbi_images { gap: 4px !important; } }

/* 31. INDICATEUR DE CHARGEMENT — symbole As de pique & dans un cercle fin */
.carver-spinner { position: relative; width: 132px; height: 132px; display: flex; align-items: center; justify-content: center; }
.carver-spinner__cercle { position: absolute; inset: 0; width: 100%; height: 100%; animation: carver-tourne 1.6s linear infinite; }
.carver-spinner__piste { fill: none; stroke: #E2E2E2; stroke-width: 1.2; }
.carver-spinner__arc { fill: none; stroke: #000000; stroke-width: 1.6; stroke-linecap: round; stroke-dasharray: 72 217; }
.carver-spinner__symbole { width: 50px; height: auto; animation: carver-respire 1.8s ease-in-out infinite; }
@keyframes carver-tourne { to { transform: rotate(360deg); } }
@keyframes carver-respire { 0%, 100% { opacity: .75; transform: scale(.97); } 50% { opacity: 1; transform: scale(1); } }
.carver-chargement {
	position: fixed; inset: 0; z-index: 100000; background: #FFFFFF;
	display: flex; align-items: center; justify-content: center;
	transition: opacity .5s ease, visibility .5s ease;
}
.carver-chargement.est-termine { opacity: 0; visibility: hidden; pointer-events: none; }
/* Indicateur de WooCommerce (panier, paiement, variantes) */
.woocommerce .blockUI.blockOverlay::before,
.woocommerce .loader::before,
.blockUI.blockOverlay::before {
	background: var(--carver-symbole) center / contain no-repeat !important;
	width: 34px !important; height: 41px !important; margin: -20px 0 0 -17px !important;
	animation: carver-respire 1.8s ease-in-out infinite !important;
}
.woocommerce .blockUI.blockOverlay::after,
.blockUI.blockOverlay::after {
	content: ""; position: absolute; top: 50%; left: 50%; width: 88px; height: 88px; margin: -44px 0 0 -44px;
	border: 1.5px solid #E2E2E2; border-top-color: #000000; border-radius: 50%;
	animation: carver-tourne 1.6s linear infinite;
}
.blockUI.blockOverlay { background: rgba(255,255,255,.75) !important; opacity: 1 !important; }
@media (prefers-reduced-motion: reduce) {
	.carver-spinner__cercle, .blockUI.blockOverlay::after { animation: none !important; }
	.carver-spinner__symbole, .blockUI.blockOverlay::before { animation: none !important; opacity: 1; }
}

/* 32. ESPACE CLIENT — connexion et création de compte */
.woocommerce-account:not(.logged-in) .woocommerce { max-width: 1040px; margin: 0 auto; }
.carver-compte__entete { text-align: center; margin: 0 auto 2.5rem; max-width: 640px; }
.carver-compte__entete .carver-label { margin-bottom: .8rem !important; }
.carver-compte__titre { font-family: var(--carver-serif) !important; font-weight: 500 !important; font-size: clamp(32px, 4vw, 44px) !important; margin: 0 0 1rem !important; }
.carver-compte__intro { color: #444444; font-size: 16px; margin: 0 auto; }
.carver-compte__entete .carver-ornement { margin: 1.8rem auto 0; max-width: 260px !important; }
#customer_login.u-columns, #customer_login.col2-set {
	display: grid !important; grid-template-columns: 1fr 1fr; gap: 0; border: 1px solid #E5E5E5; width: 100%;
}
#customer_login::before, #customer_login::after { display: none !important; }
#customer_login .u-column1, #customer_login .u-column2, #customer_login .col-1, #customer_login .col-2 {
	width: auto !important; float: none !important; margin: 0 !important; padding: clamp(28px, 4vw, 52px) !important;
}
#customer_login .u-column2, #customer_login .col-2 { background: #F5F5F5; }
#customer_login h2, .woocommerce-account:not(.logged-in) .woocommerce > h2 {
	font-family: var(--carver-serif) !important; font-weight: 500 !important; font-size: 30px !important; margin: 0 0 .5rem !important;
}
.carver-compte__aide { font-size: 14px; color: #666666; line-height: 1.6; margin: 0 0 1.6rem !important; }
.woocommerce-form-login, .woocommerce-form-register, .woocommerce-ResetPassword {
	border: 0 !important; padding: 0 !important; margin: 0 !important; border-radius: 0 !important;
}
.woocommerce-form-login .form-row, .woocommerce-form-register .form-row, .woocommerce-ResetPassword .form-row {
	padding: 0 !important; margin: 0 0 1.1rem !important; width: 100% !important; float: none !important;
}
.woocommerce-form-login input.input-text, .woocommerce-form-register input.input-text, .woocommerce-ResetPassword input.input-text {
	width: 100% !important; max-width: 100% !important; box-sizing: border-box;
	min-height: 48px; padding: .7em 1em !important; background-color: #FFFFFF !important;
}
.woocommerce-form-login .form-row label, .woocommerce-form-register .form-row label { display: block; margin-bottom: .45rem; }
.woocommerce-form-login .password-input, .woocommerce-form-register .password-input { display: block; width: 100%; position: relative; }
.woocommerce-form-register > p:not(.form-row) { font-size: 13px; color: #666666; line-height: 1.6; margin: 0 0 1rem; }
#customer_login .u-column1 input.input-text, #customer_login .col-1 input.input-text { background-color: #FAFAFA !important; }
.woocommerce-form-login input.input-text:focus, .woocommerce-form-register input.input-text:focus { background-color: #FFFFFF !important; }
.woocommerce-form-login .woocommerce-form-login__rememberme { display: inline-flex; align-items: center; gap: .5em; font-size: 13px; margin: .2rem 0 1.2rem; }
.woocommerce-form-login input[type="checkbox"] { accent-color: #000000; width: 16px; height: 16px; }
.woocommerce-form-login .woocommerce-form-login__submit,
.woocommerce-form-register .woocommerce-form-register__submit,
.woocommerce-ResetPassword button[type="submit"] {
	width: 100% !important; float: none !important; margin: 0 !important; padding: 1.15em 1.5em !important;
}
.woocommerce-form-login .lost_password { margin: 1rem 0 0 !important; text-align: center; font-size: 13px; }
.woocommerce-form-login .lost_password a { color: #444444; text-underline-offset: 4px; }
.woocommerce-form-register .woocommerce-privacy-policy-text p { font-size: 12px; color: #666666; line-height: 1.6; }
.woocommerce-password-strength { border: 0 !important; background: transparent !important; font-size: 12px !important; padding: .4em 0 0 !important; text-align: left !important; }
.woocommerce-password-hint { font-size: 12px; color: #666666; }
.show-password-input { filter: grayscale(1); }
.carver-compte__contact { text-align: center; font-size: 13px; color: #666666; margin: 2rem 0 0; }
.carver-compte__contact a { color: #000000; }
.woocommerce-ResetPassword { max-width: 520px; margin: 0 auto !important; }
@media (max-width: 781px) { #customer_login.u-columns, #customer_login.col2-set { grid-template-columns: 1fr; } }

/* 33. FICHE PRODUIT — choix de l'acompte (extension Deposits d'Acowebs) et quantité
   Ciblage large (classes contenant « awcdp » ou « deposit ») faute de pouvoir
   lire les classes exactes de l'extension. */
.single-product form.cart [class*="awcdp"],
.single-product form.cart [class*="deposit"],
.single-product [class*="awcdp"],
.single-product [class*="deposit-option"] {
	border-radius: 0 !important;
	box-shadow: none !important;
}
.single-product form.cart [class*="awcdp"] *:not(input[type="radio"]),
.single-product form.cart [class*="deposit"] *:not(input[type="radio"]) { border-radius: 0 !important; }
.single-product form.cart [class*="awcdp"] label,
.single-product form.cart [class*="deposit"] label {
	font-family: var(--carver-sans) !important; font-size: 14px !important; font-weight: 400 !important;
	color: #222222 !important; letter-spacing: .02em !important; cursor: pointer;
}
/* Boutons radio : cercle fin noir, point noir quand coché (plus de bleu) */
.single-product form.cart input[type="radio"],
.single-product [class*="awcdp"] input[type="radio"] {
	-webkit-appearance: none !important; appearance: none !important;
	width: 18px !important; height: 18px !important; min-width: 18px; margin: 0 .7em 0 0 !important;
	border: 1px solid #000000 !important; border-radius: 50% !important; background: #FFFFFF !important;
	display: inline-grid !important; place-content: center; vertical-align: middle; cursor: pointer; box-shadow: none !important;
}
.single-product form.cart input[type="radio"]::before,
.single-product [class*="awcdp"] input[type="radio"]::before {
	content: ""; width: 8px; height: 8px; border-radius: 50%; background: #000000;
	transform: scale(0); transition: transform .15s ease;
}
.single-product form.cart input[type="radio"]:checked::before,
.single-product [class*="awcdp"] input[type="radio"]:checked::before { transform: scale(1); }
.single-product form.cart input[type="radio"]:focus-visible { outline: 1px solid #000000; outline-offset: 3px; }

/* Quantité : cadre fin à angles droits, boutons – et + sobres, chiffre noir */
.single-product form.cart .quantity,
.woocommerce .quantity,
.woocommerce-cart td.product-quantity .quantity {
	display: inline-flex !important; align-items: stretch !important;
	border: 1px solid #D0D0D0 !important; border-radius: 0 !important; background: #FFFFFF !important;
	box-shadow: none !important; overflow: hidden; min-height: 52px;
}
.single-product form.cart .quantity input.qty,
.woocommerce .quantity input.qty {
	border: 0 !important; border-radius: 0 !important; background: #FFFFFF !important; box-shadow: none !important;
	color: #000000 !important; font-family: var(--carver-sans) !important; font-size: 15px !important; font-weight: 500 !important;
	text-align: center; width: 3.2em !important; min-height: 0 !important; height: auto !important; padding: 0 !important;
	-moz-appearance: textfield;
}
.woocommerce .quantity input.qty::-webkit-inner-spin-button,
.woocommerce .quantity input.qty::-webkit-outer-spin-button { -webkit-appearance: none; margin: 0; }
.single-product form.cart .quantity .minus,
.single-product form.cart .quantity .plus,
.woocommerce .quantity .minus,
.woocommerce .quantity .plus,
.woocommerce .quantity button,
.woocommerce .quantity input[type="button"] {
	background: transparent !important; color: #000000 !important; border: 0 !important; border-radius: 0 !important;
	box-shadow: none !important; width: 2.6em !important; min-width: 2.6em; padding: 0 !important; margin: 0 !important;
	font-family: var(--carver-sans) !important; font-size: 17px !important; font-weight: 400 !important;
	letter-spacing: 0 !important; text-transform: none !important; line-height: 1 !important; height: auto !important; cursor: pointer;
}
.woocommerce .quantity .minus:hover,
.woocommerce .quantity .plus:hover,
.woocommerce .quantity button:hover,
.woocommerce .quantity input[type="button"]:hover { background: #F5F5F5 !important; color: #000000 !important; }
/* Cadre de l'acompte : même largeur que la ligne d'achat */
.single-product form.cart > [class*="awcdp"],
.single-product form.cart > [class*="deposit"] { width: 100% !important; max-width: 100% !important; box-sizing: border-box; }

/* 34. CORRECTIFS FICHE PRODUIT (d'après le rendu réel)
   Le choix de l'acompte n'est pas placé dans le formulaire d'achat : on le cible
   dans tout le bloc d'informations du produit. */
.single-product .summary [class*="deposit"],
.single-product .summary [class*="awcdp"] { border-radius: 0 !important; box-shadow: none !important; }
.single-product .summary [class*="deposit"] *:not(input[type="radio"]),
.single-product .summary [class*="awcdp"] *:not(input[type="radio"]) { border-radius: 0 !important; }
.single-product .summary > [class*="deposit"],
.single-product .summary > [class*="awcdp"],
.single-product .summary [class*="deposit"][class*="wrap"],
.single-product .summary [class*="awcdp"][class*="wrap"] { width: 100% !important; max-width: 100% !important; box-sizing: border-box; }
.single-product .summary input[type="radio"] {
	-webkit-appearance: none !important; appearance: none !important; accent-color: #000000;
	width: 18px !important; height: 18px !important; min-width: 18px; margin: 0 .7em 0 0 !important;
	border: 1px solid #000000 !important; border-radius: 50% !important; background: #FFFFFF !important;
	display: inline-grid !important; place-content: center; vertical-align: middle; cursor: pointer; box-shadow: none !important;
}
.single-product .summary input[type="radio"]::before {
	content: ""; width: 8px; height: 8px; border-radius: 50%; background: #000000;
	transform: scale(0); transition: transform .15s ease;
}
.single-product .summary input[type="radio"]:checked::before { transform: scale(1); }
.single-product .summary [class*="deposit"] label,
.single-product .summary [class*="awcdp"] label {
	font-family: var(--carver-sans) !important; font-size: 14px !important; font-weight: 400 !important; color: #222222 !important;
}

/* Quantité et bouton « Ajouter au panier » : même hauteur (60 px) ; fond gris sous le nombre */
.single-product form.cart .quantity,
.single-product form.cart .single_add_to_cart_button {
	height: 60px !important; min-height: 60px !important; box-sizing: border-box !important;
	margin-top: 0 !important; margin-bottom: 0 !important; vertical-align: top;
}
.single-product form.cart .single_add_to_cart_button { display: inline-flex !important; align-items: center; justify-content: center; padding-top: 0 !important; padding-bottom: 0 !important; }
.single-product form.cart .quantity input.qty,
.woocommerce .quantity input.qty { background: #F5F5F5 !important; height: 100% !important; align-self: stretch; }
.single-product form.cart .quantity .minus,
.single-product form.cart .quantity .plus,
.woocommerce .quantity .minus,
.woocommerce .quantity .plus,
.woocommerce .quantity button,
.woocommerce .quantity input[type="button"] { height: 100% !important; align-self: stretch; background: #FFFFFF !important; }

/* 35. LISTE D'ENVIES — tableau élégant et partage */
.carver-envies__tableau {
	width: 100%; border-collapse: collapse; margin: 0; text-align: left;
	border-top: 1px solid #E5E5E5; font-family: var(--carver-sans);
}
.carver-envies__tableau thead th {
	font-size: 11px; font-weight: 600; letter-spacing: .16em; text-transform: uppercase; color: #222222;
	padding: 1rem .8rem; border-bottom: 1px solid #E5E5E5; background: #F5F5F5; white-space: nowrap;
}
.carver-envies__tableau td { padding: 1.3rem .8rem; border-bottom: 1px solid #E5E5E5; vertical-align: middle; }
.carver-envies__tableau tbody tr { transition: background-color .2s ease; }
.carver-envies__tableau tbody tr:hover { background: #FAFAFA; }
.carver-envies__piece { display: flex; align-items: center; gap: 1.2rem; text-decoration: none; color: #000000; }
.carver-envies__piece img, .carver-envies__piece .carver-envies__sans-image {
	width: 84px; height: 84px; min-width: 84px; object-fit: cover; background: #F5F5F5; margin: 0; aspect-ratio: auto;
}
.carver-envies__nom { font-family: var(--carver-serif); font-size: 21px; font-weight: 500; line-height: 1.25; }
.carver-envies__piece:hover .carver-envies__nom { text-decoration: underline; text-underline-offset: 4px; text-decoration-thickness: 1px; }
.carver-envies__col-prix { font-size: 15px; color: #000000; white-space: nowrap; }
.carver-envies__col-prix del { color: #999999; margin-right: .4em; }
.carver-envies__col-prix ins { text-decoration: none; }
.carver-envies__stock { font-size: 13px; color: #222222; letter-spacing: .02em; }
.carver-envies__stock::before { content: ""; display: inline-block; width: 7px; height: 7px; border-radius: 50%; background: #2E7D32; margin-right: .55em; vertical-align: middle; }
.carver-envies__stock.est-epuise { color: #666666; }
.carver-envies__stock.est-epuise::before { background: #C62828; }
.carver-envies__ajouter.est-indisponible { background: #E5E5E5 !important; border-color: #E5E5E5 !important; color: #888888 !important; cursor: not-allowed; }
.carver-envies__col-action { text-align: right; white-space: nowrap; }
.carver-envies__ajouter, .carver-envies__voir, .carver-envies__options { min-width: 190px; text-align: center; font-size: 11px !important; padding: .9em 1.5em !important; margin: 0 !important; text-decoration: none !important; display: inline-block; }
.carver-envies__voir { background: transparent !important; color: #000000 !important; }
.carver-envies__voir:hover { background: #000000 !important; color: #FFFFFF !important; }
.carver-envies__col-retirer { width: 44px; text-align: right; }
.carver-envies__retirer {
	width: 34px; height: 34px; justify-content: center; font-size: 22px !important; line-height: 1 !important;
	color: #888888 !important; font-weight: 300 !important;
}
.carver-envies__retirer:hover { color: #000000 !important; }
.carver-envies__partagee { text-align: center; font-size: 14px; color: #666666; margin: 0 0 1.4rem; }
.carver-envies__lien-liste { text-align: center; margin-top: 1.6rem; font-size: 13px; }

.carver-partage { margin-top: 3rem; text-align: center; }
.carver-partage__titre {
	font-family: var(--carver-sans); font-size: 11px; font-weight: 600; letter-spacing: .18em;
	text-transform: uppercase; color: #666666; margin: 0 0 1.1rem;
}
.carver-partage__boutons { display: flex; justify-content: center; gap: 14px; flex-wrap: wrap; }
.carver-partage__bouton {
	display: inline-flex !important; align-items: center; justify-content: center;
	width: 48px; height: 48px; padding: 0 !important; margin: 0 !important;
	border: 1px solid #000000 !important; border-radius: 50% !important; background: #FFFFFF !important;
	color: #000000 !important; box-shadow: none !important; transition: background-color .2s ease, color .2s ease; cursor: pointer;
}
.carver-partage__bouton:hover, .carver-partage__bouton:focus-visible { background: #000000 !important; color: #FFFFFF !important; }
.carver-partage__bouton svg { display: block; width: 20px; height: 20px; }

@media (max-width: 767px) {
	.carver-envies__tableau thead { display: none; }
	.carver-envies__tableau, .carver-envies__tableau tbody, .carver-envies__tableau tr, .carver-envies__tableau td { display: block; width: 100%; }
	.carver-envies__tableau { border-top: 0; }
	.carver-envies__tableau tr { position: relative; padding: 1.2rem 0; border-bottom: 1px solid #E5E5E5; }
	.carver-envies__tableau td { border: 0; padding: .3rem 0; text-align: left; }
	.carver-envies__tableau td.carver-envies__col-prix, .carver-envies__tableau td.carver-envies__col-stock { padding-left: calc(72px + 1rem); }
	.carver-envies__piece img, .carver-envies__piece .carver-envies__sans-image { width: 72px; height: 72px; min-width: 72px; }
	.carver-envies__nom { font-size: 19px; padding-right: 40px; }
	.carver-envies__col-action { text-align: left; padding-top: .8rem !important; }
	.carver-envies__ajouter, .carver-envies__voir { width: 100%; }
	.carver-envies__tableau td.carver-envies__col-retirer { position: absolute; top: 1.1rem; right: 0; width: auto; padding: 0 !important; text-align: right; }
	.carver-envies__tableau td.carver-envies__col-action .button { display: block; width: 100%; text-align: center; box-sizing: border-box; }
	.carver-partage__boutons { gap: 10px; flex-wrap: nowrap; }
	.carver-partage__bouton { width: 44px; height: 44px; }
}

.carver-envies__options { background: transparent !important; color: #000000 !important; border: 1px solid #000000 !important; text-decoration: none !important; display: inline-block; padding: .9em 1.5em !important; }
.carver-envies__options:hover { background: #000000 !important; color: #FFFFFF !important; }
.carver-envies__ajouter.est-en-cours { opacity: .7; pointer-events: none; }
.carver-envies__ajouter.est-ajoute { background: #2E7D32 !important; border-color: #2E7D32 !important; }
@media (max-width: 767px) { .carver-envies__tableau td.carver-envies__col-action .carver-envies__options { display: block; width: 100%; box-sizing: border-box; } }

/* 36. OPTIONS OBLIGATOIRES ET MESSAGES — sobres, en français */
.carver-envies__ajouter.est-verification { opacity: .55; pointer-events: none; }
.carver-avis-options {
	margin: 0 0 1.4rem; padding: 1rem 1.25rem; background: #FFFFFF;
	border: 1px solid #E5E5E5; border-left: 2px solid #C62828; font-family: var(--carver-sans);
	animation: carver-apparait .3s ease;
}
.carver-avis-options--erreur { border-left-color: #C62828; }
.carver-avis-options__titre { margin: 0 0 .3rem !important; font-size: 11px; font-weight: 600; letter-spacing: .16em; text-transform: uppercase; color: #C62828; }
.carver-avis-options--erreur .carver-avis-options__titre { color: #C62828; }
.carver-avis-options__texte { margin: 0 !important; font-size: 14px; line-height: 1.6; color: #222222; }
.single-product form.cart input.carver-champ-manquant[class],
.single-product form.cart select.carver-champ-manquant[class],
.single-product form.cart textarea.carver-champ-manquant[class] { border-color: #C62828 !important; background-color: #FFFFFF !important; }
@keyframes carver-apparait { from { opacity: 0; transform: translateY(-4px); } to { opacity: 1; transform: none; } }
/* Messages WooCommerce (erreurs, confirmations) : discrets et élégants */
.woocommerce-notices-wrapper .woocommerce-error,
.woocommerce-notices-wrapper .woocommerce-message,
.woocommerce-notices-wrapper .woocommerce-info,
.woocommerce .woocommerce-error, .woocommerce .woocommerce-message, .woocommerce .woocommerce-info {
	background: #FFFFFF !important; color: #222222 !important; border: 1px solid #E5E5E5 !important;
	border-left: 2px solid #000000 !important; border-radius: 0 !important; box-shadow: none !important;
	font-family: var(--carver-sans) !important; font-size: 14px !important; line-height: 1.6 !important;
	padding: 1rem 1.25rem !important; margin: 0 0 1.4rem !important; list-style: none !important;
}
.woocommerce-notices-wrapper .woocommerce-error, .woocommerce .woocommerce-error { border-left-color: #C62828 !important; }
.woocommerce-notices-wrapper .woocommerce-message, .woocommerce .woocommerce-message { border-left-color: #2E7D32 !important; }
.woocommerce-notices-wrapper .woocommerce-error::before, .woocommerce .woocommerce-error::before,
.woocommerce-notices-wrapper .woocommerce-message::before, .woocommerce .woocommerce-message::before,
.woocommerce-notices-wrapper .woocommerce-info::before, .woocommerce .woocommerce-info::before { display: none !important; }
.woocommerce-error li, .woocommerce-message li, .woocommerce-info li { margin: 0 !important; padding: 0 !important; }
.woocommerce-message .button, .woocommerce-info .button { float: right; font-size: 11px !important; padding: .7em 1.2em !important; margin-left: 1rem; }

/* 37. PANIER, COMMANDE, CONFIRMATION, RECHERCHE, 404 */

/* Tableaux (panier, récapitulatif, détails de commande) */
.woocommerce table.shop_table {
	border: 0 !important; border-top: 1px solid #E5E5E5 !important; border-collapse: collapse !important; border-radius: 0 !important;
}
.woocommerce table.shop_table thead th {
	background: #F5F5F5; color: #222222; padding: 1rem .9rem !important; border-bottom: 1px solid #E5E5E5 !important;
}
.woocommerce table.shop_table td, .woocommerce table.shop_table tfoot th {
	border-top: 0 !important; border-bottom: 1px solid #E5E5E5 !important; padding: 1.1rem .9rem !important; vertical-align: middle;
}
.woocommerce table.shop_table td.product-name a { font-family: var(--carver-serif); font-size: 19px; font-weight: 500; color: #000000; text-decoration: none; }
.woocommerce table.shop_table td.product-name a:hover { text-decoration: underline; text-underline-offset: 4px; }
.woocommerce table.shop_table td.product-name dl.variation, .woocommerce table.shop_table td.product-name .wc-item-meta { font-size: 12px; color: #666666; margin-top: .4rem; }
.woocommerce table.shop_table td.product-thumbnail img { width: 72px !important; height: 72px; object-fit: cover; background: #F5F5F5; }
.woocommerce table.shop_table .product-price, .woocommerce table.shop_table .product-subtotal { white-space: nowrap; }
.woocommerce a.remove {
	color: #888888 !important; font-weight: 300 !important; font-size: 22px !important; border-radius: 0 !important;
	background: transparent !important; width: 28px; height: 28px; line-height: 26px;
}
.woocommerce a.remove:hover { color: #000000 !important; background: transparent !important; }
.woocommerce table.shop_table .order-total th, .woocommerce table.shop_table .order-total td { font-size: 17px; color: #000000; }
.woocommerce table.shop_table .order-total .amount { font-weight: 600; }

/* Panier */
.woocommerce-cart .actions .coupon { display: flex; gap: .6rem; align-items: stretch; }
.woocommerce-cart .actions .coupon .input-text { min-width: 200px; min-height: 46px; }
.woocommerce-cart .actions .button { font-size: 12px !important; }
.woocommerce-cart .actions button[name="update_cart"] { background: transparent !important; color: #000000 !important; }
.woocommerce-cart .actions button[name="update_cart"]:hover { background: #000000 !important; color: #FFFFFF !important; }
.woocommerce-cart .actions button[name="update_cart"]:disabled { opacity: .35; }
.woocommerce .cart-collaterals .cart_totals {
	background: #FAFAFA; border: 1px solid #E5E5E5; padding: clamp(1.4rem, 3vw, 2.2rem);
}
.woocommerce .cart-collaterals .cart_totals h2 { font-size: 26px !important; margin-top: 0; }
.woocommerce .cart-collaterals .cart_totals table.shop_table { border-top: 0 !important; background: transparent; }
.woocommerce .cart-collaterals .cart_totals table.shop_table th, .woocommerce .cart-collaterals .cart_totals table.shop_table td { padding-left: 0 !important; padding-right: 0 !important; background: transparent; }
.woocommerce .wc-proceed-to-checkout { padding: 1.2rem 0 0 !important; }
.woocommerce .wc-proceed-to-checkout a.checkout-button { width: 100%; font-size: 14px !important; padding: 1.2em !important; margin: 0 !important; }
.carver-reassurance { margin-top: 1.4rem; padding-top: 1.2rem; border-top: 1px solid #E5E5E5; }
.carver-reassurance p { font-size: 13px; color: #444444; line-height: 1.6; margin: 0 0 .6rem; }
.carver-reassurance strong { color: #000000; font-weight: 600; }
.carver-reassurance a { color: #000000; }
.cart-empty.woocommerce-info { text-align: center; }
.woocommerce-cart .return-to-shop { text-align: center; margin-top: 1.4rem; }

/* Commande */
.woocommerce-checkout #customer_details h3, .woocommerce-checkout #order_review_heading {
	font-size: 26px !important; margin: 0 0 1.2rem !important;
}
.woocommerce-checkout form.checkout .form-row { margin-bottom: 1rem; }
.woocommerce-checkout form.checkout .form-row .input-text, .woocommerce-checkout form.checkout .form-row select,
.woocommerce-checkout form.checkout .select2-container .select2-selection--single { min-height: 48px; }
.woocommerce-checkout .select2-container .select2-selection--single .select2-selection__rendered { line-height: 46px; padding-left: 14px; }
.woocommerce-checkout .select2-container .select2-selection--single .select2-selection__arrow { height: 46px; }
.woocommerce-checkout #order_review {
	background: #FAFAFA; border: 1px solid #E5E5E5; padding: clamp(1.2rem, 3vw, 2rem);
}
.woocommerce-checkout #order_review table.shop_table { background: transparent; border-top: 0 !important; }
.woocommerce-checkout #order_review table.shop_table th, .woocommerce-checkout #order_review table.shop_table td { background: transparent; padding-left: 0 !important; padding-right: 0 !important; }
.woocommerce-checkout #payment { background: transparent !important; }
.woocommerce-checkout #payment ul.payment_methods { border-bottom: 1px solid #E5E5E5 !important; padding: 0 0 1rem !important; }
.woocommerce-checkout #payment ul.payment_methods li { padding: .6rem 0 !important; font-size: 14px; }
.woocommerce-checkout #payment ul.payment_methods li input[type="radio"] { accent-color: #000000; margin-right: .6em; }
/* Description d'un moyen de paiement : même encadré que les rappels du site */
.woocommerce-checkout #payment div.payment_box {
	background: #FFFFFF !important; border: 1px solid #E5E5E5 !important; border-left: 2px solid #000000 !important;
	border-radius: 0 !important; padding: 1rem 1.25rem !important; margin: .6rem 0 1rem !important;
	font-family: var(--carver-sans); font-size: 14px !important; line-height: 1.6 !important; color: #222222 !important;
}
.woocommerce-checkout #payment div.payment_box p { margin: 0 !important; }
.woocommerce-checkout #payment div.payment_box strong { color: #000000; font-weight: 600; }
.woocommerce-checkout #payment div.payment_box::before { display: none !important; }
.woocommerce-checkout #payment .place-order { padding: 1.2rem 0 0 !important; }
.woocommerce-checkout #payment #place_order { width: 100% !important; float: none !important; font-size: 14px !important; padding: 1.2em !important; }
.woocommerce-checkout .woocommerce-terms-and-conditions-wrapper, .woocommerce-checkout .woocommerce-privacy-policy-text p { font-size: 12px; color: #666666; line-height: 1.6; }
.woocommerce-checkout .woocommerce-form__label-for-checkbox input[type="checkbox"] { accent-color: #000000; }
.carver-commande-securisee { text-align: center; font-size: 11px; letter-spacing: .12em; text-transform: uppercase; color: #666666; margin: 1rem 0 0; }
.woocommerce-checkout .woocommerce-shipping-totals td ul#shipping_method li { font-size: 14px; }
.woocommerce-form-coupon-toggle .woocommerce-info { text-align: center; }

/* Confirmation de commande */
.woocommerce-order { max-width: 880px; margin: 0 auto; }
.woocommerce-order .woocommerce-thankyou-order-received,
.woocommerce-order p.woocommerce-notice--success {
	display: flex; flex-direction: column; align-items: center; text-align: center; gap: .7rem;
	background: transparent !important; border: 0 !important; padding: 1rem 0 2rem !important; margin: 0 !important;
}
.carver-merci__label { font-family: var(--carver-sans); font-size: 12px; font-weight: 500; letter-spacing: .18em; text-transform: uppercase; color: #2E7D32; }
.carver-merci__titre { font-family: var(--carver-serif); font-size: clamp(30px, 4vw, 42px); font-weight: 500; line-height: 1.15; color: #000000; }
.carver-merci__texte { font-family: var(--carver-sans); font-size: 15px; color: #444444; }
.woocommerce-order ul.woocommerce-order-overview {
	display: grid !important; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 0;
	list-style: none; margin: 0 0 2.5rem !important; padding: 0 !important; border: 1px solid #E5E5E5;
}
.woocommerce-order ul.woocommerce-order-overview::before, .woocommerce-order ul.woocommerce-order-overview::after { display: none !important; }
.woocommerce-order ul.woocommerce-order-overview li {
	float: none !important; margin: 0 !important; padding: 1.1rem 1.2rem !important; border: 0 !important; border-right: 1px solid #E5E5E5 !important;
	font-size: 11px !important; letter-spacing: .12em; text-transform: uppercase; color: #666666; line-height: 1.5;
}
.woocommerce-order ul.woocommerce-order-overview li:last-child { border-right: 0 !important; }
.woocommerce-order ul.woocommerce-order-overview li strong {
	display: block; margin-top: .35rem; font-size: 15px !important; letter-spacing: 0; text-transform: none; color: #000000; font-weight: 500;
}
.carver-prochaines-etapes { background: #FAFAFA; border: 1px solid #E5E5E5; padding: clamp(1.4rem, 3vw, 2.2rem); margin: 0 0 2.5rem; }
.carver-prochaines-etapes ol { margin: 0 0 1rem; padding-left: 1.2rem; }
.carver-prochaines-etapes li { font-size: 14px; color: #444444; line-height: 1.7; margin-bottom: .6rem; }
.carver-prochaines-etapes li strong { color: #000000; font-weight: 600; }
.carver-prochaines-etapes__contact { font-size: 13px; color: #666666; margin: 0; }
.carver-prochaines-etapes__contact a { color: #000000; }
.woocommerce-order-details h2, .woocommerce-customer-details h2, .woocommerce-column__title { font-size: 26px !important; }
.woocommerce-customer-details address {
	border: 1px solid #E5E5E5 !important; border-radius: 0 !important; padding: 1.2rem !important; font-style: normal; line-height: 1.7;
}

/* Blocs WooCommerce (si le panier ou la commande utilisent les blocs) */
.wc-block-cart, .wc-block-checkout { font-family: var(--carver-sans); }
.wc-block-components-sidebar .wc-block-components-totals-wrapper, .wp-block-woocommerce-cart-order-summary-block { border-color: #E5E5E5 !important; }
.wc-block-components-button:not(.is-link) { border-radius: 0 !important; }
.wc-block-components-text-input input, .wc-block-components-combobox .wc-block-components-combobox-control input, .wc-blocks-components-select__select { border-radius: 0 !important; border-color: #D0D0D0 !important; }
.wc-block-components-product-name { font-family: var(--carver-serif) !important; font-size: 18px !important; }

/* Résultats de recherche */
.carver-recherche__resume { font-size: 13px; letter-spacing: .08em; text-transform: uppercase; color: #666666; margin: 0 0 1.4rem; }
.carver-recherche-vide { max-width: 640px; margin: 2rem auto 3rem; text-align: center; }
.carver-recherche-vide .carver-titre { font-size: clamp(26px, 3.4vw, 36px); margin-bottom: 1rem !important; }
.carver-recherche-vide .search-form { margin: 1.8rem auto; max-width: 480px; }
.carver-recherche-vide__liens { display: flex; justify-content: center; gap: .8rem; flex-wrap: wrap; }
.carver-recherche-vide__liens .button { text-decoration: none; }

/* Formulaires de recherche intégrés aux pages (404, aucun résultat) */
.carver-404 .search-form, .carver-recherche-vide .search-form { display: flex; position: relative; }
.carver-404 .search-form label, .carver-recherche-vide .search-form label { flex: 1; margin: 0; }
.carver-404 .search-form .search-field, .carver-recherche-vide .search-form .search-field {
	width: 100%; min-height: 50px; background: #FAFAFA; border: 1px solid #D0D0D0; padding: 0 1em;
}
.carver-404 .search-form .search-submit, .carver-recherche-vide .search-form .search-submit { margin-left: -1px !important; padding: 0 1.4em !important; font-size: 12px !important; }
.carver-404 .search-form .kadence-search-icon-wrap, .carver-recherche-vide .search-form .kadence-search-icon-wrap { display: none; }

/* Page 404 */
.carver-404-zone { margin-top: 0 !important; }
.carver-404 { text-align: center; max-width: 680px; margin: 0 auto; padding: clamp(4rem, 9vw, 7rem) var(--carver-gouttiere) clamp(3rem, 6vw, 4.5rem); }
.carver-404__symbole { width: 56px; height: auto; margin: 0 auto 1.8rem; display: block; }
.carver-404__titre { font-family: var(--carver-serif) !important; font-weight: 500 !important; font-size: clamp(36px, 5vw, 56px) !important; margin: .2rem 0 1rem !important; }
.carver-404 .carver-intro { margin: 0 auto 2rem; }
.carver-404__recherche { max-width: 480px; margin: 0 auto 1.8rem; }
.carver-404__boutons { display: flex; justify-content: center; gap: .8rem; flex-wrap: wrap; }
.carver-404__boutons .button { text-decoration: none; }
.carver-404__pieces { border-top: 1px solid #E5E5E5; padding: clamp(3rem, 6vw, 4.5rem) var(--carver-gouttiere); text-align: center; max-width: var(--carver-largeur); margin: 0 auto; }
.carver-404__pieces .woocommerce { margin-top: 2rem; text-align: left; }
@media (max-width: 767px) {
	.woocommerce-order ul.woocommerce-order-overview li { border-right: 0 !important; border-bottom: 1px solid #E5E5E5 !important; }
	.woocommerce-cart .actions .coupon { flex-direction: column; }
	.woocommerce-cart .actions .coupon .input-text { min-width: 0; width: 100%; }
}
.woocommerce table.shop_table th { text-align: left; }

/* 38. CORRECTIFS PANIER ET RÉSUMÉ DE COMMANDE */

/* Quantité : les boutons – et + restent sur la même ligne que le nombre, partout */
.woocommerce .quantity, .woocommerce-cart td.product-quantity .quantity, .woocommerce-checkout .quantity {
	display: inline-flex !important; flex-direction: row !important; flex-wrap: nowrap !important;
	align-items: stretch !important; width: auto !important; max-width: none !important;
	min-height: 46px; border: 1px solid #D0D0D0 !important; border-radius: 0 !important; background: #FFFFFF !important; overflow: hidden;
}
.woocommerce .quantity input.qty {
	order: 2; width: 3.2em !important; min-width: 3.2em; border: 0 !important; background: #F5F5F5 !important;
	color: #000000 !important; text-align: center; font-size: 15px !important; font-weight: 500 !important;
	height: auto !important; min-height: 0 !important; padding: 0 !important; border-radius: 0 !important; box-shadow: none !important;
	-moz-appearance: textfield;
}
.woocommerce .quantity .minus, .woocommerce .quantity input.minus, .woocommerce .quantity button.minus { order: 1; }
.woocommerce .quantity .plus, .woocommerce .quantity input.plus, .woocommerce .quantity button.plus { order: 3; }
.woocommerce .quantity .minus, .woocommerce .quantity .plus,
.woocommerce .quantity input[type="button"], .woocommerce .quantity button {
	position: static !important; float: none !important; display: flex !important; align-items: center; justify-content: center;
	width: 2.4em !important; min-width: 2.4em; height: auto !important; padding: 0 !important; margin: 0 !important;
	background: #FFFFFF !important; color: #000000 !important; border: 0 !important; border-radius: 0 !important;
	font-size: 16px !important; font-weight: 400 !important; line-height: 1 !important; text-transform: none !important; letter-spacing: 0 !important; box-shadow: none !important;
}
.woocommerce .quantity .minus:hover, .woocommerce .quantity .plus:hover { background: #F5F5F5 !important; }

/* Résumé de commande : produit à gauche, quantité au centre, sous-total à droite */
.woocommerce-checkout-review-order-table thead th.product-name { width: auto; }
.woocommerce-checkout-review-order-table thead th.product-total { width: 34%; text-align: right; }
.woocommerce-checkout-review-order-table td.product-name {
	display: grid !important; grid-template-columns: 1fr 56px; align-items: start; column-gap: 1rem; row-gap: .35rem;
	font-family: var(--carver-serif); font-size: 17px; color: #000000; padding-right: 1.2rem !important;
}
.woocommerce-checkout-review-order-table td.product-name .product-quantity {
	grid-column: 2; justify-self: end; font-family: var(--carver-sans) !important; font-size: 13px !important;
	font-weight: 500 !important; color: #444444 !important; white-space: nowrap;
}
.woocommerce-checkout-review-order-table td.product-name dl.variation,
.woocommerce-checkout-review-order-table td.product-name .wc-item-meta {
	grid-column: 1 / -1; margin: .2rem 0 0 !important; font-family: var(--carver-sans); font-size: 12px; color: #666666;
}
.woocommerce-checkout-review-order-table td.product-name dl.variation dt,
.woocommerce-checkout-review-order-table td.product-name .wc-item-meta strong { font-weight: 600; color: #444444; }
.woocommerce-checkout-review-order-table td.product-name dl.variation dd,
.woocommerce-checkout-review-order-table td.product-name dl.variation p { margin: 0 0 .2rem !important; }
.woocommerce-checkout-review-order-table td.product-total,
.woocommerce-checkout-review-order-table tfoot td { text-align: right; white-space: nowrap; }
.woocommerce-checkout-review-order-table tfoot th { text-align: left; }

/* Mention à la place du calculateur d'expédition du panier */
.carver-livraison-note {
	margin: .6rem 0 0; font-size: 13px; line-height: 1.6; color: #444444;
}
.carver-livraison-note strong { color: #000000; }
.woocommerce-checkout-review-order-table ul#shipping_method,
.woocommerce .cart_totals ul#shipping_method {
	list-style: none !important; margin: 0 !important; padding: 0 !important; text-align: right;
}
.woocommerce-checkout-review-order-table ul#shipping_method li,
.woocommerce .cart_totals ul#shipping_method li { margin: 0 0 .3rem !important; padding: 0 !important; font-size: 14px; }
.woocommerce-checkout-review-order-table ul#shipping_method li input[type="radio"] { margin-right: .4em; accent-color: #000000; }

/* Détails de commande : pas de ligne vide avant les champs personnalisés */
.woocommerce-order-details table.shop_table tfoot tr:empty,
.woocommerce-table--order-details tfoot tr:empty { display: none !important; }
.woocommerce-order-details table.shop_table tfoot tr:has(th:empty):has(td:empty),
.woocommerce-table--order-details tfoot tr:has(th:empty):has(td:empty) { display: none !important; }
.woocommerce-order-details table.shop_table tfoot tr th:empty + td:empty { padding: 0 !important; }

/* 39. PANIER EN BLOCS — si la page Panier utilise les blocs WooCommerce,
   le calculateur d'adresse (pays, région, ville, code postal) ne connaît pas
   le champ « Commune » : on le masque et on annonce le calcul à l'étape suivante. */
.wc-block-components-totals-shipping .wc-block-components-shipping-address,
.wc-block-components-totals-shipping__change-address-button,
.wc-block-components-shipping-calculator,
.wp-block-woocommerce-cart .wc-block-components-shipping-rates-control__package,
.wc-block-components-totals-shipping .wc-block-components-totals-item__value,
.wc-block-components-totals-shipping .wc-block-components-totals-item__description { display: none !important; }
.wc-block-components-totals-shipping .wc-block-components-totals-item__label { display: block; }
.wc-block-components-totals-shipping::after {
	content: "Frais de livraison calculés à l’étape suivante, selon la commune que vous indiquerez.";
	display: block; margin-top: .4rem; font-family: var(--carver-sans); font-size: 13px; line-height: 1.6; color: #444444;
}

/* Calculateur d'adresse du panier (version classique) : masqué, il ne connaît pas le champ « Commune » */
.shipping-calculator-button,
.shipping-calculator-form,
.woocommerce-shipping-calculator { display: none !important; }
.woocommerce-shipping-destination { font-size: 13px; color: #666666; }

/* 40. ADRESSES DU COMPTE CLIENT */
.carver-adresse { font-style: normal; display: block; border: 1px solid #E5E5E5; padding: 1.2rem 1.4rem; line-height: 1.75; }
.carver-adresse__ligne { display: block; font-size: 15px; color: #222222; }
.carver-adresse__nom { font-family: var(--carver-serif); font-size: 19px; font-weight: 500; color: #000000; margin-bottom: .3rem; }
.carver-adresse__commune { font-size: 14px; }
.carver-adresse__telephone, .carver-adresse__email { font-size: 14px; color: #444444; }
.carver-adresse__telephone { margin-top: .5rem; }
.carver-adresse__vide { color: #666666; font-style: italic; }
.woocommerce-Address-title { display: flex; align-items: baseline; justify-content: space-between; gap: 1rem; margin-bottom: .8rem; }
.woocommerce-Address-title h2 { font-size: 26px !important; margin: 0 !important; }
.woocommerce-Address-title .edit { font-size: 13px; letter-spacing: .04em; color: #000000; }

/* 41. PANIER : titre, colonne produit et informations de l'acompte */
.entry-content > h1 + .woocommerce, .entry-content > h2 + .woocommerce,
.entry-content > h1 + .wp-block-shortcode, .entry-content > h2 + .wp-block-shortcode { margin-top: 1.8rem; }
.woocommerce > h1, .woocommerce > h2, .entry-content h2:has(+ .woocommerce) { margin-bottom: 1.8rem !important; }
form.woocommerce-cart-form { margin-top: 1.6rem; }
table.shop_table.cart, table.cart { table-layout: auto; }
table.cart td.product-remove { width: 40px; }
table.cart td.product-thumbnail { width: 92px; }
table.cart td.product-name { width: 40%; font-size: 15px; }
table.cart td.product-name > a { font-size: 18px; line-height: 1.3; display: inline-block; }
table.cart td.product-quantity { width: 120px; }
/* Détails d'un article (taille, inscription, acompte…) : plus compacts */
table.shop_table td.product-name dl.variation,
table.shop_table td.product-name .wc-item-meta,
.woocommerce-checkout-review-order-table td.product-name dl.variation,
.woocommerce-checkout-review-order-table td.product-name .wc-item-meta {
	font-family: var(--carver-sans); font-size: 12px !important; line-height: 1.5 !important; color: #666666 !important; margin: .4rem 0 0 !important;
}
table.shop_table td.product-name dl.variation dt,
table.shop_table td.product-name .wc-item-meta strong,
table.shop_table td.product-name .wc-item-meta .wc-item-meta-label {
	display: inline; font-size: 12px !important; font-weight: 600 !important; color: #444444 !important; margin: 0 .25em 0 0 !important;
}
table.shop_table td.product-name dl.variation dd,
table.shop_table td.product-name dl.variation dd p,
table.shop_table td.product-name .wc-item-meta li,
table.shop_table td.product-name .wc-item-meta p {
	display: inline; margin: 0 !important; padding: 0 !important; font-size: 12px !important;
}
table.shop_table td.product-name dl.variation dd::after,
table.shop_table td.product-name .wc-item-meta li::after { content: ""; display: block; }
.carver-adresse__autres { font-size: 14px; color: #444444; }

/* 42. PANIER — d'après le code réel du site (Kadence + Custom Product Addons + Deposits) */

/* Le titre « Résumé du panier » est dans .cart-summary, à l'intérieur du formulaire */
.cart-summary { margin: 0 0 1.6rem !important; }
.cart-summary h1, .cart-summary h2, .cart-summary h3 { margin: 0 !important; }
.kadence-woo-cart-form-wrap form.woocommerce-cart-form { margin-top: 0; }

/* Détails d'un article : options (Custom Product Addons) et acompte (Deposits) */
table.shop_table td.product-name dl.variation,
table.shop_table td.product-name .wc-item-meta,
table.shop_table td.product-name [class*="wcpa"],
table.shop_table td.product-name [class*="awcdp"],
table.shop_table td.product-name [class*="deposit"],
.woocommerce-checkout-review-order-table td.product-name [class*="wcpa"],
.woocommerce-checkout-review-order-table td.product-name [class*="awcdp"],
.woocommerce-checkout-review-order-table td.product-name [class*="deposit"] {
	font-family: var(--carver-sans) !important; font-size: 12px !important; line-height: 1.5 !important;
	color: #666666 !important; margin: .35rem 0 0 !important; padding: 0 !important; list-style: none !important;
}
table.shop_table td.product-name [class*="wcpa"] *,
table.shop_table td.product-name [class*="awcdp"] *,
table.shop_table td.product-name [class*="deposit"] * {
	font-size: 12px !important; line-height: 1.5 !important; margin: 0 !important; padding: 0 !important;
}
/* Intitulé et valeur sur la même ligne */
table.shop_table td.product-name [class*="wcpa"] strong,
table.shop_table td.product-name [class*="wcpa"] b,
table.shop_table td.product-name [class*="wcpa"] dt,
table.shop_table td.product-name [class*="awcdp"] strong,
table.shop_table td.product-name [class*="awcdp"] dt,
table.shop_table td.product-name [class*="deposit"] strong {
	display: inline !important; font-weight: 600 !important; color: #444444 !important; margin-right: .3em !important;
}
table.shop_table td.product-name [class*="wcpa"] dd,
table.shop_table td.product-name [class*="wcpa"] span,
table.shop_table td.product-name [class*="wcpa"] p,
table.shop_table td.product-name [class*="awcdp"] dd,
table.shop_table td.product-name [class*="awcdp"] span,
table.shop_table td.product-name [class*="awcdp"] p,
table.shop_table td.product-name [class*="deposit"] span {
	display: inline !important;
}
table.shop_table td.product-name [class*="wcpa"] li,
table.shop_table td.product-name [class*="awcdp"] li,
table.shop_table td.product-name dl.variation dd { display: block !important; margin-bottom: .1rem !important; }

/* Largeurs : la colonne Produit respire, la quantité reste compacte */
table.shop_table.cart td.product-name, table.shop_table.cart th.product-name { width: 38%; }
.woocommerce table.shop_table td.product-quantity { min-width: 0 !important; width: 120px; }
table.shop_table.cart td.product-name > a { font-family: var(--carver-serif); font-size: 18px; line-height: 1.3; }

/* 43. FICHES PRODUIT — textes importés remis à la charte
   Les descriptions collées depuis un autre outil contiennent parfois leurs
   propres polices, tailles et fonds. On les neutralise, sans toucher au gras,
   à l'italique ni aux listes. */
.single-product .woocommerce-product-details__short-description,
.single-product .woocommerce-Tabs-panel,
.single-product #tab-description,
.single-product .woocommerce-tabs .panel {
	font-family: var(--carver-sans) !important; color: #222222 !important; background: transparent !important;
}
.single-product .woocommerce-product-details__short-description *,
.single-product .woocommerce-Tabs-panel *,
.single-product #tab-description *,
.single-product .woocommerce-tabs .panel * {
	font-family: var(--carver-sans) !important; background-color: transparent !important; letter-spacing: normal !important;
}
.single-product .woocommerce-product-details__short-description p,
.single-product .woocommerce-product-details__short-description span,
.single-product .woocommerce-product-details__short-description li,
.single-product .woocommerce-Tabs-panel p,
.single-product .woocommerce-Tabs-panel span,
.single-product .woocommerce-Tabs-panel li,
.single-product #tab-description p,
.single-product #tab-description span,
.single-product #tab-description li {
	font-size: 15px !important; line-height: 1.75 !important; color: #222222 !important; text-align: left !important;
}
.single-product .woocommerce-Tabs-panel h1, .single-product .woocommerce-Tabs-panel h2,
.single-product .woocommerce-Tabs-panel h3, .single-product .woocommerce-Tabs-panel h4,
.single-product #tab-description h1, .single-product #tab-description h2,
.single-product #tab-description h3, .single-product #tab-description h4 {
	font-family: var(--carver-serif) !important; font-weight: 600 !important; color: #000000 !important;
}
.single-product .woocommerce-Tabs-panel strong, .single-product .woocommerce-Tabs-panel b,
.single-product #tab-description strong, .single-product #tab-description b,
.single-product .woocommerce-product-details__short-description strong { color: #000000 !important; font-weight: 600 !important; }
.single-product .woocommerce-Tabs-panel em, .single-product #tab-description em { font-style: italic !important; }
.single-product .woocommerce-Tabs-panel ul, .single-product #tab-description ul { padding-left: 1.2em; }
.single-product .woocommerce-Tabs-panel li, .single-product #tab-description li { margin-bottom: .35rem; }

/* 44. BANDE DE CLÔTURE (fond blanc, à placer avant le pied de page noir) */
.carver-cloture {
	background: #FFFFFF;
	border-top: 1px solid var(--carver-line);
	padding-top: clamp(3.5rem, 7vw, 5.5rem) !important;
	padding-bottom: clamp(3.5rem, 7vw, 5.5rem) !important;
}
.carver-cloture .carver-ornement { margin-top: 0; }
.carver-cloture .carver-label { margin-bottom: .6rem !important; }
.carver-cloture__titre {
	font-family: var(--carver-serif) !important; font-weight: 500 !important;
	font-size: clamp(26px, 3.4vw, 38px) !important; line-height: 1.2 !important;
	max-width: 18em; margin: 0 auto 1rem !important;
}
.carver-cloture .carver-intro { margin-bottom: 2rem !important; }
.carver-cloture .carver-signature { margin-top: 2.2rem; color: #888888; }

/* 45. BLOC « ÉCRIVEZ-NOUS » — une seule colonne, centrée */
.carver-contact-formulaire .carver-contact-rapide { font-size: 14px; color: #666666; margin: 0 auto 2rem !important; max-width: 34em; }
.carver-contact-formulaire .carver-contact-rapide a { color: #000000; }
.carver-contact-formulaire .carver-formulaire {
	max-width: 680px; margin: 0 auto; text-align: left;
	background: #FAFAFA; border: 1px solid #E5E5E5; padding: clamp(1.5rem, 3.5vw, 2.6rem);
}
.carver-contact-formulaire .carver-formulaire .wpforms-submit-container { text-align: center; }
.carver-contact-formulaire .carver-formulaire button[type="submit"],
.carver-contact-formulaire .carver-formulaire .wpforms-submit { min-width: 260px; }

/* 46. MENU MOBILE ET TABLETTE — écritures blanches sur fond noir */
#mobile-drawer .drawer-inner,
#mobile-drawer .drawer-content,
.popup-drawer-layout-sidepanel#mobile-drawer .drawer-inner { background: #000000 !important; color: #FFFFFF !important; }
#mobile-drawer .drawer-inner *,
#mobile-drawer .mobile-navigation ul li a,
#mobile-drawer .drawer-content a,
#mobile-drawer .drawer-header button,
#mobile-drawer .menu-toggle-close { color: #FFFFFF !important; }
#mobile-drawer .mobile-navigation ul li a {
	font-family: var(--carver-sans) !important; font-size: 15px !important; letter-spacing: .06em; text-transform: uppercase;
	border-bottom: 1px solid rgba(255,255,255,.14) !important;
}
#mobile-drawer .mobile-navigation ul li a:hover,
#mobile-drawer .mobile-navigation ul li.current-menu-item > a { color: #FFFFFF !important; opacity: .75; }
#mobile-drawer .drawer-toggle svg, #mobile-drawer .menu-toggle-close svg { color: #FFFFFF !important; stroke: #FFFFFF !important; }
#mobile-drawer .search-form .search-field { color: #FFFFFF !important; background: transparent !important; border-color: rgba(255,255,255,.4) !important; }
#mobile-drawer .search-form .search-field::placeholder { color: rgba(255,255,255,.6) !important; }
/* Icônes de l'en-tête mobile (menu, loupe, panier) sur fond blanc : elles restent noires */
.mobile-toggle-open-container .menu-toggle-open, .mobile-header-cart .header-cart-button { color: #000000 !important; }

/* 47. PIED DE PAGE — écritures blanches sur fond noir */
.site-footer, .site-footer-wrap, .site-footer .site-footer-row-container-inner,
.site-middle-footer-wrap, .site-top-footer-wrap, .site-bottom-footer-wrap,
.site-middle-footer-inner-wrap, .site-top-footer-inner-wrap, .site-bottom-footer-inner-wrap { background-color: #000000 !important; }
.site-footer, .site-footer p, .site-footer li, .site-footer span, .site-footer div,
.site-footer .widget, .site-footer .widget-title, .site-footer .footer-html,
.site-footer h1, .site-footer h2, .site-footer h3, .site-footer h4, .site-footer h5, .site-footer h6 { color: #FFFFFF !important; }
.site-footer a, .site-footer .footer-navigation a, .site-footer .footer-html a { color: #FFFFFF !important; }
.site-footer a:hover { color: #CCCCCC !important; }
.site-footer .site-info, .site-footer .footer-html small { color: #999999 !important; }
.site-footer .carver-signature { color: #999999 !important; }
.site-footer .widget-title { color: #FFFFFF !important; }
.site-footer .header-cart-total { background: #FFFFFF !important; color: #000000 !important; }
.site-footer .search-form .search-field { color: #FFFFFF !important; background: transparent !important; border-color: rgba(255,255,255,.4) !important; }

/* 48. MON COMPTE — menu latéral : filets fins et texte dégagé */
.woocommerce-MyAccount-navigation ul { border-top: 1px solid #E5E5E5 !important; }
.woocommerce-MyAccount-navigation ul li {
	border: 0 !important; border-bottom: 1px solid #E5E5E5 !important;
	background: transparent !important; margin: 0 !important; padding: 0 !important;
}
.woocommerce-MyAccount-navigation ul li::before,
.woocommerce-MyAccount-navigation ul li::after { display: none !important; content: none !important; }
.woocommerce-MyAccount-navigation ul li a {
	display: block; padding: .9rem 0 .9rem 1.05rem !important; margin: 0 !important;
	border-left: 2px solid transparent !important; border-bottom: 0 !important;
	font-family: var(--carver-sans); font-size: 14px; color: #444444 !important; text-decoration: none;
	transition: color .2s ease, border-color .2s ease;
}
.woocommerce-MyAccount-navigation ul li a:hover { color: #000000 !important; border-left-color: #D0D0D0 !important; }
.woocommerce-MyAccount-navigation ul li.is-active > a,
.woocommerce-MyAccount-navigation ul li.woocommerce-MyAccount-navigation-link--dashboard.is-active > a {
	color: #000000 !important; font-weight: 600; border-left: 2px solid #000000 !important;
}
.carver-formulaire__note { margin-top: 1rem !important; font-size: 12px; color: #C62828; }

/* 49. MON COMPTE — encadré de confirmation, tableau des commandes */
.woocommerce-account .woocommerce-message,
.woocommerce-account .woocommerce-info,
.woocommerce-account .woocommerce-error,
.woocommerce-account .woocommerce-notice {
	display: flex !important; flex-direction: row; align-items: center; justify-content: flex-start;
	gap: 1.6rem; text-align: left;
}
/* Tous les encadrés du compte : bouton à gauche, texte à droite, alignés verticalement */
.woocommerce-account .woocommerce-message .button,
.woocommerce-account .woocommerce-info .button,
.woocommerce-account .woocommerce-error .button,
.woocommerce-account .woocommerce-notice .button {
	float: none !important; margin: 0 !important; flex: 0 0 auto; order: -1; align-self: center;
	min-width: 230px; text-align: center; text-decoration: none !important;
}
.woocommerce-account .woocommerce-message > *:not(.button),
.woocommerce-account .woocommerce-info > *:not(.button) { flex: 1 1 auto; margin: 0 !important; }
@media (max-width: 600px) {
	.woocommerce-account .woocommerce-message,
	.woocommerce-account .woocommerce-info,
	.woocommerce-account .woocommerce-error,
	.woocommerce-account .woocommerce-notice {
		flex-direction: column; align-items: center; text-align: center; gap: 1.1rem;
	}
	.woocommerce-account .woocommerce-message .button,
	.woocommerce-account .woocommerce-info .button,
	.woocommerce-account .woocommerce-error .button { order: 1; align-self: center; width: 100%; min-width: 0; }
}
.woocommerce-orders-table__cell-order-actions { white-space: normal !important; }
.woocommerce-orders-table__cell-order-actions .button {
	display: inline-block !important; float: none !important; position: static !important;
	margin: 0 .5rem .5rem 0 !important; font-size: 11px !important; padding: .8em 1.3em !important; vertical-align: middle;
}
.woocommerce-orders-table__cell-order-actions .button.pay { background: #000000 !important; color: #FFFFFF !important; }
.woocommerce-orders-table__cell-order-actions .button.view,
.woocommerce-orders-table__cell-order-actions .button.cancel {
	background: transparent !important; color: #000000 !important; border: 1px solid #000000 !important;
}
.woocommerce-orders-table__cell-order-actions .button.view:hover,
.woocommerce-orders-table__cell-order-actions .button.cancel:hover { background: #000000 !important; color: #FFFFFF !important; }

/* 50. MOYENS DE PAIEMENT — logos à taille raisonnable */
#payment .wc_payment_method label img,
#payment .payment_box img,
.woocommerce-checkout #payment img,
form#order_review img, .woocommerce-order-pay #payment img {
	max-height: 34px !important; width: auto !important; max-width: 180px !important;
	display: inline-block; vertical-align: middle; margin: 0 0 0 .6em !important; box-shadow: none !important;
}
#payment .payment_box img { margin: 0 0 .6rem !important; display: block; }

/* La destination de livraison est réécrite par le thème (commune, quartier) */
.woocommerce-shipping-destination { display: none !important; }

/* 51. BOUTONS DES PAGES CLIENT — espacés et réactifs au survol */
.woocommerce-account .woocommerce-orders-table__cell-order-actions .button.pay:hover { background: #333333 !important; border-color: #333333 !important; color: #FFFFFF !important; }
.woocommerce-order-details .button,
.woocommerce-order-details a.button,
.woocommerce-account .entry-content .button,
.woocommerce-account [class*="awcdp"] .button,
.woocommerce-account [class*="deposit"] .button {
	margin: .2rem .6rem .4rem 0 !important; display: inline-block; vertical-align: middle;
}
.woocommerce-order-details .button + .button,
.woocommerce-account [class*="awcdp"] .button + .button { margin-left: .2rem !important; }
/* « Régler le solde : [Payer] » : le bouton respire */
.woocommerce-account [class*="awcdp"] .button,
.woocommerce-account [class*="deposit"] .button,
.woocommerce-order-details + * .button { margin-left: .8rem !important; }

/* 52. TOTAUX DU PANIER — libellés et montants mieux séparés */
.woocommerce .cart_totals table.shop_table th { width: 38%; padding-right: 1.6rem !important; vertical-align: top; }
.woocommerce .cart_totals table.shop_table td { padding-left: 0 !important; text-align: right; }
.woocommerce .cart_totals table.shop_table tr > * { padding-top: 1rem !important; padding-bottom: 1rem !important; }
.woocommerce .cart_totals ul#shipping_method li { line-height: 1.5; }

/* 53. PAGE DE PAIEMENT D'UNE COMMANDE — alignement des colonnes */
.woocommerce-order-pay table.shop_table thead th,
.woocommerce-order-pay table.shop_table tbody td,
.woocommerce-order-pay table.shop_table tfoot th,
.woocommerce-order-pay table.shop_table tfoot td { vertical-align: middle; }
.woocommerce-order-pay table.shop_table thead th:last-child,
.woocommerce-order-pay table.shop_table tbody td:last-child,
.woocommerce-order-pay table.shop_table tfoot td:last-child { text-align: right; }
.woocommerce-order-pay table.shop_table { width: 100%; border-collapse: collapse; }
.woocommerce-order-pay table.shop_table thead th { border-bottom: 1px solid #E5E5E5 !important; }

/* Tableau de paiement d'un acompte : plus compact */
.woocommerce-order-pay table.shop_table { max-width: 720px; margin-left: auto; margin-right: auto; }
.woocommerce-order-pay table.shop_table th,
.woocommerce-order-pay table.shop_table td { padding: .75rem .6rem !important; font-size: 14px !important; }
.woocommerce-order-pay table.shop_table thead th { font-size: 11px !important; padding-top: .4rem !important; }
.woocommerce-order-pay table.shop_table tfoot th,
.woocommerce-order-pay table.shop_table tfoot td { font-size: 15px !important; }
.woocommerce-order-pay #payment, .woocommerce-order-pay .woocommerce-terms-and-conditions-wrapper,
.woocommerce-order-pay .woocommerce-privacy-policy-text { max-width: 720px; margin-left: auto; margin-right: auto; }
.woocommerce-order-pay #payment .form-row.place-order { padding-top: .8rem !important; }

/* Page de paiement d'une commande : bloc plus compact */
.woocommerce-order-pay #order_review, .woocommerce-order-pay form#order_review {
	max-width: 720px; margin: 0 auto; padding: clamp(1rem, 2.5vw, 1.6rem) !important;
}
.woocommerce-order-pay table.shop_table { margin-bottom: 1.2rem !important; }
.woocommerce-order-pay table.shop_table thead th { font-size: 10px !important; padding: .7rem .6rem !important; }
.woocommerce-order-pay table.shop_table tbody td, .woocommerce-order-pay table.shop_table tbody th,
.woocommerce-order-pay table.shop_table tfoot td, .woocommerce-order-pay table.shop_table tfoot th {
	font-size: 14px !important; padding: .8rem .6rem !important;
}
.woocommerce-order-pay #payment ul.payment_methods { padding: .4rem 0 .8rem !important; }
.woocommerce-order-pay #payment ul.payment_methods li { padding: .4rem 0 !important; }
.woocommerce-order-pay #payment div.payment_box { margin: .4rem 0 .8rem !important; padding: .8rem 1rem !important; font-size: 13px !important; }
.woocommerce-order-pay #payment .form-row.place-order { padding-top: .8rem !important; }
.woocommerce-order-pay #payment #place_order { padding: 1em !important; }

/* 54. GRILLES DE PRODUITS — l'animation de Kadence au survol est conservée ;
   seul le lien « Voir le panier », qui se superposait au prix, est masqué. */
.woocommerce ul.products li.product .woocommerce-loop-product__title { margin-bottom: .3rem !important; }
.woocommerce ul.products li.product .price { display: block; margin: 0 0 .7rem !important; }
/* Le lien « Voir le panier » est affiché (voir section 58). */
.woocommerce ul.products li.product .added_to_cart {
	font-family: var(--carver-sans); font-size: 12px; letter-spacing: .06em; text-transform: uppercase;
	color: #000000; text-decoration: underline; text-underline-offset: 4px;
}
.woocommerce ul.products li.product .added_to_cart:hover { color: #333333; }

/* 55. MINI-PANIER DE L'EN-TÊTE — effet de survol sur « Voir le panier » */
.woocommerce-mini-cart__buttons .button,
.widget_shopping_cart .buttons .button,
.header-cart-wrap .woocommerce-mini-cart__buttons a {
	display: block !important; width: 100%; text-align: center; margin: 0 0 .5rem !important;
	transition: background-color .2s ease, color .2s ease;
}
.woocommerce-mini-cart__buttons .button:not(.checkout),
.widget_shopping_cart .buttons .button:not(.checkout) {
	background: transparent !important; color: #000000 !important; border: 1px solid #000000 !important;
}
.woocommerce-mini-cart__buttons .button:not(.checkout):hover,
.widget_shopping_cart .buttons .button:not(.checkout):hover {
	background: #000000 !important; color: #FFFFFF !important;
}
.woocommerce-mini-cart__buttons .button.checkout:hover,
.widget_shopping_cart .buttons .button.checkout:hover { background: #333333 !important; }

.carver-mention-frais { display: block; margin-top: .2rem; font-size: 11px; font-weight: 400; letter-spacing: 0; text-transform: none; color: #666666; }

/* 56. NEWSLETTER DU PIED DE PAGE */
.carver-newsletter { max-width: 420px; }
.carver-newsletter__titre {
	font-family: var(--carver-sans); font-size: 11px; font-weight: 600; letter-spacing: .18em;
	text-transform: uppercase; color: #FFFFFF; margin: 0 0 .6rem !important;
}
.carver-newsletter__accroche { font-size: 13px; line-height: 1.6; color: #CCCCCC !important; margin: 0 0 1rem !important; }
.carver-newsletter__attente { font-size: 13px; color: #CCCCCC !important; }
.carver-newsletter .wpforms-container { margin: 0 !important; }
.carver-newsletter .wpforms-field { padding: 0 0 .8rem !important; }
.carver-newsletter .wpforms-field-label { font-size: 12px !important; color: #FFFFFF !important; margin-bottom: .35rem !important; }
.carver-newsletter .wpforms-field-description, .carver-newsletter .wpforms-field-sublabel { color: #999999 !important; font-size: 11px !important; }
.carver-newsletter input[type="text"], .carver-newsletter input[type="email"], .carver-newsletter input[type="tel"] {
	width: 100% !important; min-height: 46px !important; box-sizing: border-box;
	background: transparent !important; border: 1px solid rgba(255,255,255,.45) !important; border-radius: 0 !important;
	color: #FFFFFF !important; font-family: var(--carver-sans) !important; font-size: 14px !important; padding: .6em .9em !important;
}
.carver-newsletter input::placeholder { color: rgba(255,255,255,.55) !important; }
.carver-newsletter input:focus { border-color: #FFFFFF !important; outline: none !important; background: rgba(255,255,255,.06) !important; }
.carver-newsletter .wpforms-submit-container { padding: 0 !important; }
.carver-newsletter button[type="submit"], .carver-newsletter .wpforms-submit {
	width: 100%; background: #FFFFFF !important; color: #000000 !important; border: 1px solid #FFFFFF !important; border-radius: 0 !important;
	font-family: var(--carver-sans) !important; font-size: 12px !important; font-weight: 600 !important;
	letter-spacing: .12em !important; text-transform: uppercase !important; padding: 1em 1.5em !important;
}
.carver-newsletter button[type="submit"]:hover, .carver-newsletter .wpforms-submit:hover { background: transparent !important; color: #FFFFFF !important; }
.carver-newsletter .wpforms-confirmation-container-full {
	background: transparent !important; border: 1px solid rgba(255,255,255,.45) !important; color: #FFFFFF !important; border-radius: 0 !important;
}
.site-footer .carver-newsletter .wpforms-error, .carver-newsletter label.wpforms-error { color: #FFB4B4 !important; font-size: 11px !important; }

/* Formulaire MailPoet du pied de page */
.carver-newsletter .mailpoet_form { padding: 0 !important; background: transparent !important; }
.carver-newsletter .mailpoet_paragraph { margin-bottom: .8rem !important; }
.carver-newsletter .mailpoet_text_label, .carver-newsletter .mailpoet_checkbox_label, .carver-newsletter .mailpoet_segment_label {
	font-family: var(--carver-sans) !important; font-size: 12px !important; color: #FFFFFF !important;
}
.carver-newsletter .mailpoet_text, .carver-newsletter .mailpoet_email, .carver-newsletter input[type="email"] {
	width: 100% !important; min-height: 46px !important; box-sizing: border-box !important;
	background: transparent !important; border: 1px solid rgba(255,255,255,.45) !important; border-radius: 0 !important;
	color: #FFFFFF !important; font-family: var(--carver-sans) !important; font-size: 14px !important; padding: .6em .9em !important;
}
.carver-newsletter .mailpoet_submit {
	width: 100% !important; background: #FFFFFF !important; color: #000000 !important; border: 1px solid #FFFFFF !important;
	border-radius: 0 !important; font-family: var(--carver-sans) !important; font-size: 12px !important; font-weight: 600 !important;
	letter-spacing: .12em !important; text-transform: uppercase !important; padding: 1em 1.5em !important; cursor: pointer;
	transition: background-color .2s ease, color .2s ease;
}
.carver-newsletter .mailpoet_submit:hover { background: transparent !important; color: #FFFFFF !important; }
.carver-newsletter .mailpoet_validate_success { color: #FFFFFF !important; font-size: 13px !important; }
.carver-newsletter .mailpoet_validate_error { color: #FFB4B4 !important; font-size: 12px !important; }
.carver-newsletter .mailpoet_message { margin-top: .6rem; }

/* 57. NEWSLETTER COMPACTE (colonne du pied de page) */
.carver-newsletter--compacte { max-width: 300px; }
.carver-newsletter--compacte .carver-newsletter__titre {
	font-size: 11px !important; font-weight: 600 !important; letter-spacing: .16em !important;
	text-transform: uppercase !important; color: #FFFFFF !important; margin: 0 0 .5rem !important;
}
.carver-newsletter--compacte .carver-newsletter__accroche { font-size: 13px !important; line-height: 1.5 !important; color: #BBBBBB !important; margin: 0 0 .9rem !important; }
/* Champ et bouton sur une seule ligne */
.carver-newsletter--compacte form, .carver-newsletter--compacte .mailpoet_form form, .carver-newsletter--compacte .wpforms-form {
	display: flex !important; align-items: stretch; gap: .5rem; flex-wrap: nowrap;
}
.carver-newsletter--compacte .mailpoet_paragraph, .carver-newsletter--compacte .wpforms-field,
.carver-newsletter--compacte .wpforms-field-container { flex: 1 1 auto; margin: 0 !important; padding: 0 !important; min-width: 0; }
.carver-newsletter--compacte .mailpoet_text_label, .carver-newsletter--compacte .wpforms-field-label,
.carver-newsletter--compacte .mailpoet_form_columns > .mailpoet_form_column:empty { display: none !important; }
.carver-newsletter--compacte input[type="email"], .carver-newsletter--compacte input[type="text"], .carver-newsletter--compacte .mailpoet_text {
	width: 100% !important; min-height: 44px !important; height: 44px !important;
	border: 1px solid rgba(255,255,255,.45) !important; font-size: 13px !important; padding: 0 .9em !important;
}
.carver-newsletter--compacte .mailpoet_submit, .carver-newsletter--compacte .wpforms-submit,
.carver-newsletter--compacte button[type="submit"] {
	flex: 0 0 auto; width: auto !important; min-height: 44px !important; height: 44px !important;
	padding: 0 1.2em !important; font-size: 11px !important; letter-spacing: .1em !important; white-space: nowrap;
}
.carver-newsletter--compacte .mailpoet_paragraph.last, .carver-newsletter--compacte .wpforms-submit-container { flex: 0 0 auto; margin: 0 !important; padding: 0 !important; }
.carver-newsletter--compacte .mailpoet_message, .carver-newsletter--compacte .wpforms-confirmation-container-full { margin-top: .7rem !important; font-size: 12px !important; }
.carver-newsletter--compacte .carver-newsletter__attente { font-size: 12px !important; }
@media (max-width: 767px) {
	.carver-newsletter--compacte { max-width: 100%; }
	.carver-newsletter--compacte form, .carver-newsletter--compacte .mailpoet_form form { flex-wrap: wrap; gap: .5rem; }
	.carver-newsletter--compacte .mailpoet_submit, .carver-newsletter--compacte button[type="submit"] { width: 100% !important; }
}

/* 58. VIGNETTES PRODUITS — confirmation d'ajout sans chevauchement */
.woocommerce ul.products li.product .product-action-wrap:has(.added_to_cart),
.woocommerce ul.products li.product .product-details:has(.added_to_cart) {
	position: static !important; opacity: 1 !important; transform: none !important; visibility: visible !important;
}
.woocommerce ul.products li.product .product-details,
.woocommerce ul.products li.product .product-action-wrap,
.woocommerce ul.products li.product .woocommerce-loop-product__title,
.woocommerce ul.products li.product .price { text-align: left !important; }
.woocommerce ul.products li.product .button.added,
.woocommerce ul.products li.product .added_to_cart {
	display: block !important; position: static !important; float: none !important; clear: both;
	width: auto; max-width: 100%; margin: 0 0 .35rem !important;
	padding-left: 0 !important; padding-right: 0 !important; text-align: left !important;
}
.woocommerce ul.products li.product .product-action-wrap { padding-left: 0 !important; padding-right: 0 !important; }
.woocommerce ul.products li.product .button.added {
	background: transparent !important; color: #444444 !important; border: 0 !important; padding: 0 !important;
	font-size: 10px !important; letter-spacing: .1em !important; text-transform: uppercase !important; cursor: default;
}
.woocommerce ul.products li.product .added_to_cart {
	font-family: var(--carver-sans); font-size: 12px !important; letter-spacing: .08em; text-transform: uppercase;
	color: #000000 !important; text-decoration: underline; text-underline-offset: 4px; text-decoration-thickness: 1px;
}
.woocommerce ul.products li.product .added_to_cart:hover { color: #333333 !important; }

/* 59. PORTFOLIO — grille maçonnée, filtres, survol */
.carver-portfolio { margin-top: 2.5rem; }
.carver-portfolio__filtres { display: flex; justify-content: center; flex-wrap: wrap; gap: .4rem 1.6rem; margin-bottom: 2.4rem; }
.carver-portfolio__filtre {
	background: transparent !important; border: 0 !important; padding: .3rem 0 !important; cursor: pointer;
	font-family: var(--carver-sans); font-size: 11px; font-weight: 600; letter-spacing: .16em; text-transform: uppercase;
	color: #888888 !important; border-bottom: 1px solid transparent !important; transition: color .2s ease, border-color .2s ease;
}
.carver-portfolio__filtre:hover { color: #000000 !important; }
.carver-portfolio__filtre.est-actif { color: #000000 !important; border-bottom-color: #000000 !important; }
.carver-portfolio__grille { columns: 3; column-gap: 18px; }
.carver-portfolio[data-colonnes="2"] .carver-portfolio__grille { columns: 2; }
.carver-portfolio[data-colonnes="4"] .carver-portfolio__grille { columns: 4; }
.carver-portfolio__piece { break-inside: avoid; margin: 0 0 18px; display: block; }
.carver-portfolio__lien { position: relative; display: block; overflow: hidden; background: #F5F5F5; text-decoration: none !important; }
.carver-portfolio__image { display: block; }
.carver-portfolio__image img { display: block; width: 100%; height: auto; transition: transform .7s cubic-bezier(.2,.7,.3,1); }
.carver-portfolio__voile {
	position: absolute; inset: 0; background: linear-gradient(180deg, rgba(0,0,0,.05), rgba(0,0,0,.65));
	opacity: 0; transition: opacity .45s ease;
}
.carver-portfolio__texte {
	position: absolute; left: 0; right: 0; bottom: 0; padding: 1.4rem 1.5rem; text-align: left;
	opacity: 0; transform: translateY(12px); transition: opacity .45s ease, transform .45s ease;
}
.carver-portfolio__categorie {
	display: block; font-family: var(--carver-sans); font-size: 10px; font-weight: 600; letter-spacing: .18em;
	text-transform: uppercase; color: rgba(255,255,255,.8); margin-bottom: .35rem;
}
.carver-portfolio__titre { display: block; font-family: var(--carver-serif); font-size: 22px; font-weight: 500; line-height: 1.2; color: #FFFFFF; }
.carver-portfolio__action {
	display: inline-block; margin-top: .6rem; font-family: var(--carver-sans); font-size: 11px; letter-spacing: .14em;
	text-transform: uppercase; color: #FFFFFF; border-bottom: 1px solid rgba(255,255,255,.6); padding-bottom: 2px;
}
.carver-portfolio__lien:hover .carver-portfolio__image img { transform: scale(1.06); }
.carver-portfolio__lien:hover .carver-portfolio__voile { opacity: 1; }
.carver-portfolio__lien:hover .carver-portfolio__texte { opacity: 1; transform: none; }
.carver-portfolio__lien:focus-visible { outline: 2px solid #000000; outline-offset: 3px; }
.carver-portfolio__lien:focus-visible .carver-portfolio__voile { opacity: 1; }
.carver-portfolio__lien:focus-visible .carver-portfolio__texte { opacity: 1; transform: none; }
@media (max-width: 1024px) { .carver-portfolio__grille, .carver-portfolio[data-colonnes="4"] .carver-portfolio__grille { columns: 2; } }
@media (max-width: 600px) {
	.carver-portfolio__grille, .carver-portfolio[data-colonnes="2"] .carver-portfolio__grille,
	.carver-portfolio[data-colonnes="4"] .carver-portfolio__grille { columns: 1; }
	/* Sur téléphone, le texte reste visible : il n'y a pas de survol */
	.carver-portfolio__voile { opacity: 1; }
	.carver-portfolio__texte { opacity: 1; transform: none; }
}

/* Description de la catégorie de portfolio, sous les filtres */
.carver-portfolio__description {
	max-width: 46em; margin: -1.4rem auto 2.4rem !important; text-align: center;
	font-family: var(--carver-sans); font-size: 14px; line-height: 1.7; color: #666666;
	opacity: 1; transition: opacity .18s ease;
}
.carver-portfolio__description.est-en-transition { opacity: 0; }
.carver-portfolio__description.est-vide { margin-bottom: 0 !important; min-height: 0; }
.carver-portfolio__description.est-vide:empty { display: none; }

/* Newsletter compacte : message de confirmation sur sa propre ligne */
.carver-newsletter--compacte form, .carver-newsletter--compacte .mailpoet_form form, .carver-newsletter--compacte .wpforms-form { flex-wrap: wrap !important; }
.carver-newsletter--compacte .mailpoet_message,
.carver-newsletter--compacte .mailpoet_validate_success,
.carver-newsletter--compacte .mailpoet_validate_error,
.carver-newsletter--compacte .wpforms-confirmation-container-full,
.carver-newsletter--compacte .wpforms-error-container {
	flex: 1 0 100% !important; width: 100% !important; position: static !important;
	margin: .7rem 0 0 !important; padding: 0 !important; text-align: left !important;
	font-size: 12px !important; line-height: 1.5 !important; background: transparent !important; border: 0 !important;
}

/* Newsletter : le message de confirmation suit la colonne, même s'il est
   ajouté en dehors de notre bloc par l'extension */
.site-footer .mailpoet_message,
.site-footer .mailpoet_validate_success,
.site-footer .mailpoet_validate_error,
.carver-newsletter .mailpoet_message,
.carver-newsletter .mailpoet_validate_success,
.carver-newsletter .mailpoet_validate_error {
	position: static !important; float: none !important;
	max-width: 300px; margin: .7rem 0 0 !important; padding: 0 !important;
	text-align: left !important; font-size: 12px !important; line-height: 1.5 !important;
	background: transparent !important; border: 0 !important;
}
.site-footer .mailpoet_validate_success, .carver-newsletter .mailpoet_validate_success { color: #FFFFFF !important; }
.site-footer .mailpoet_validate_error, .carver-newsletter .mailpoet_validate_error { color: #FFB4B4 !important; }
.site-footer .mailpoet_form, .carver-newsletter .mailpoet_form { margin: 0 !important; padding: 0 !important; }

/* Mention sous le bouton « Commander » : tient sur une ligne */
.carver-commande-securisee {
	font-size: 9.5px !important; letter-spacing: .06em !important; line-height: 1.5 !important;
	white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
@media (max-width: 480px) { .carver-commande-securisee { white-space: normal; font-size: 9px !important; } }

/* Le message n'apparaît qu'après l'inscription, puis s'efface */
.carver-newsletter .mailpoet_message:empty, .site-footer .mailpoet_message:empty { display: none !important; }
.carver-newsletter.est-inscrite .mailpoet_form form { display: none !important; }
.carver-newsletter .mailpoet_validate_success, .site-footer .mailpoet_validate_success { transition: opacity .5s ease; }
.carver-newsletter .mailpoet_validate_success.est-effacee, .site-footer .mailpoet_validate_success.est-effacee { opacity: 0; }

/* 60. MOBILE — deux vignettes par ligne et logo centré */
@media (max-width: 767px) {
	.woocommerce ul.products,
	.woocommerce-page ul.products,
	.woocommerce ul.products.products-grid,
	ul.products[class*="columns-"] {
		display: grid !important; grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
		gap: 22px 14px !important; margin: 0 !important;
	}
	.woocommerce ul.products::before, .woocommerce ul.products::after { display: none !important; }
	.woocommerce ul.products li.product {
		width: auto !important; max-width: none !important; margin: 0 !important; float: none !important; clear: none !important;
	}
	.woocommerce ul.products li.product .woocommerce-loop-product__title { font-size: 16px !important; line-height: 1.25 !important; }
	.woocommerce ul.products li.product .price { font-size: 14px !important; }
	.woocommerce ul.products li.product .button,
	.woocommerce ul.products li.product .added_to_cart { font-size: 10px !important; letter-spacing: .08em !important; }
	.woocommerce ul.products li.product .carver-coeur--grille { width: 32px; height: 32px; top: 8px; right: 8px; }
}

/* Logo du pied de page centré sur mobile et tablette */
@media (max-width: 1024px) {
	.site-footer .site-branding, .site-footer .footer-html, .site-footer .widget { text-align: center; }
	.site-footer .site-branding img, .site-footer .footer-html img, .site-footer .widget img,
	.site-footer .footer-html svg, .site-footer .site-branding svg {
		display: block !important; margin-left: auto !important; margin-right: auto !important; max-width: 200px; height: auto;
	}
	.site-footer .carver-signature, .site-footer .footer-html p { text-align: center; }
	.site-footer .carver-newsletter, .site-footer .carver-newsletter--compacte { margin-left: auto; margin-right: auto; text-align: center; }
	.site-footer .carver-newsletter form, .site-footer .carver-newsletter .mailpoet_form form { justify-content: center; }
	.site-footer .carver-newsletter .mailpoet_message,
	.site-footer .carver-newsletter .mailpoet_validate_success,
	.site-footer .carver-newsletter .mailpoet_validate_error { margin-left: auto !important; margin-right: auto !important; text-align: center !important; }
}

/* Grille de produits : 2 par ligne sur mobile, 3 sur tablette, 4 sur ordinateur */
@media (min-width: 768px) and (max-width: 1199px) {
	.woocommerce ul.products,
	.woocommerce-page ul.products,
	.woocommerce ul.products.products-grid,
	ul.products[class*="columns-"] {
		display: grid !important; grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
		gap: 26px 18px !important; margin: 0 !important;
	}
	.woocommerce ul.products li.product { width: auto !important; max-width: none !important; margin: 0 !important; float: none !important; }
}
/* Le prix ne se coupe jamais en deux lignes */
.woocommerce ul.products li.product .price,
.woocommerce ul.products li.product .price .woocommerce-Price-amount,
.woocommerce ul.products li.product .price bdi { white-space: nowrap !important; }
@media (max-width: 767px) {
	.woocommerce ul.products li.product .price { font-size: 13px !important; letter-spacing: 0 !important; }
	.woocommerce ul.products li.product .woocommerce-loop-product__title { font-size: 15px !important; }
}

/* Ordinateur : 4 vignettes par ligne */
@media (min-width: 1200px) {
	.woocommerce ul.products,
	.woocommerce-page ul.products,
	.woocommerce ul.products.products-grid,
	ul.products[class*="columns-"] {
		display: grid !important; grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
		gap: 32px 24px !important; margin: 0 !important;
	}
	.woocommerce ul.products li.product { width: auto !important; max-width: none !important; margin: 0 !important; float: none !important; }
}
/* Pages où la grille est plus étroite (colonne unique, blocs d'accueil) : on garde 3 */
@media (min-width: 1200px) {
	.carver-section .woocommerce ul.products[class*="columns-3"] { grid-template-columns: repeat(3, minmax(0, 1fr)) !important; }
}

/* 61. VIGNETTES — titre, prix et invite alignés, avec la même marge intérieure.
   La photo reste pleine largeur ; seuls les blocs de texte reçoivent la marge. */
.woocommerce ul.products li.product { padding: 0 0 var(--carver-vignette-marge, 16px) !important; text-align: left !important; box-sizing: border-box; }
.woocommerce ul.products li.product .product-details,
.woocommerce ul.products li.product .product-action-wrap {
	padding-left: var(--carver-vignette-marge, 16px) !important;
	padding-right: var(--carver-vignette-marge, 16px) !important;
	margin-left: 0 !important; margin-right: 0 !important; text-align: left !important;
}
/* Sans conteneur intermédiaire : on décale les éléments eux-mêmes, sans élargir les boutons */
.woocommerce ul.products li.product > .woocommerce-loop-product__title,
.woocommerce ul.products li.product > .price,
.woocommerce ul.products li.product > .button,
.woocommerce ul.products li.product > .added_to_cart {
	margin-left: var(--carver-vignette-marge, 16px) !important;
	margin-right: var(--carver-vignette-marge, 16px) !important;
	text-align: left !important;
}
/* Un bloc déjà dans .product-details ne reçoit pas la marge une seconde fois */
.woocommerce ul.products li.product .product-details .product-action-wrap,
.woocommerce ul.products li.product .product-details .woocommerce-loop-product__title,
.woocommerce ul.products li.product .product-details .price,
.woocommerce ul.products li.product .product-details .button,
.woocommerce ul.products li.product .product-action-wrap .button,
.woocommerce ul.products li.product .product-action-wrap .added_to_cart {
	padding-left: 0 !important; padding-right: 0 !important; margin-left: 0 !important; margin-right: 0 !important;
}
.woocommerce ul.products li.product .product-details { padding-top: 1rem !important; padding-bottom: .2rem !important; }
.woocommerce ul.products li.product .product-action-wrap {
	display: flex !important; flex-direction: column; align-items: flex-start !important; padding-top: .6rem !important;
}
.woocommerce ul.products li.product .button,
.woocommerce ul.products li.product .added_to_cart { align-self: flex-start !important; }

:root { --carver-vignette-marge: 16px; }
@media (max-width: 767px) { :root { --carver-vignette-marge: 12px; } }

/* 62. VIGNETTES — invite positionnée par Kadence (affichage au survol)
   Kadence place le bloc de l'invite en position absolue, calé à gauche (left: 0) :
   il ignore alors la marge intérieure du bloc texte et se colle au bord de la vignette.
   On le recale sur la même marge que le titre et le prix. Sans effet si le bloc
   n'est pas positionné (left/right ne s'appliquent qu'aux éléments positionnés). */
.woocommerce ul.products li.product .product-details .product-action-wrap {
	left: var(--carver-vignette-marge, 16px) !important;
	right: var(--carver-vignette-marge, 16px) !important;
	width: auto !important;
}

/* 63. COMMANDE — ligne « Expédition » alignée à droite comme les autres montants
   (une seule méthode : WooCommerce affiche un libellé seul, que Kadence
   laissait décalé vers le centre de la cellule). */
.woocommerce-checkout-review-order-table tr.woocommerce-shipping-totals td,
.woocommerce .cart_totals tr.woocommerce-shipping-totals td {
	text-align: right !important;
}
.woocommerce-checkout-review-order-table ul#shipping_method,
.woocommerce .cart_totals ul#shipping_method {
	display: block !important; width: 100% !important; float: none !important;
}
.woocommerce-checkout-review-order-table ul#shipping_method li,
.woocommerce .cart_totals ul#shipping_method li {
	display: block !important; text-align: right !important; text-indent: 0 !important;
	justify-content: flex-end !important;
}
.woocommerce-checkout-review-order-table ul#shipping_method li label,
.woocommerce .cart_totals ul#shipping_method li label {
	display: inline !important; margin: 0 !important; padding: 0 !important;
}

/* 64. CONNEXION — case « Se souvenir de moi » alignée sur son texte
   (la règle « .form-row label { display: block } » l'emportait et faisait
   remonter la case au-dessus de la ligne de texte). */
.woocommerce-form-login .form-row label.woocommerce-form-login__rememberme {
	display: inline-flex !important; align-items: center; gap: .55em;
	margin: .2rem 0 1.2rem; line-height: 1.3; cursor: pointer;
}
.woocommerce-form-login .woocommerce-form-login__rememberme input[type="checkbox"] {
	margin: 0 !important; position: static !important; top: auto !important;
	vertical-align: middle; flex: 0 0 auto;
}
.woocommerce-form-login .woocommerce-form-login__rememberme span { line-height: 1.3; }

/* 65. BANDEAU D'ACCUEIL ANIMÉ
   À l'ouverture : la photo sort du noir avec un lent zoom arrière, puis les
   textes montent l'un après l'autre. Ensuite, la photo « respire » très
   lentement (zoom de 4 % sur 24 s, aller-retour).
   Le calque animé reprend l'image du bandeau lui-même (background-image:
   inherit) : si ce calque ne reçoit pas d'image, il reste transparent et la
   photo du bandeau reste visible. Le fondu depuis le noir passe par la
   luminosité du calque, jamais par un fond noir posé par-dessus la photo. */
.carver-hero::after {
	content: ""; position: absolute; inset: 0; z-index: -2;
	background-color: transparent;
	background-image: inherit;
	background-size: cover; background-position: center; background-repeat: no-repeat;
	transform-origin: 50% 45%;
	will-change: transform, filter;
	animation:
		carver-hero-fondu 1.8s ease-out both,
		carver-hero-zoom 9s cubic-bezier(.2, .6, .3, 1) both,
		carver-hero-respiration 24s ease-in-out 9s infinite alternate;
}
@keyframes carver-hero-fondu { from { filter: brightness(0); } to { filter: brightness(1); } }
@keyframes carver-hero-zoom { from { transform: scale(1.12); } to { transform: scale(1); } }
@keyframes carver-hero-respiration { from { transform: scale(1); } to { transform: scale(1.04); } }

.carver-hero > :not(.wp-block-group__inner-container),
.carver-hero > .wp-block-group__inner-container > * { animation: carver-hero-texte 1.2s cubic-bezier(.2, .7, .2, 1) both; }
.carver-hero > :nth-child(1):not(.wp-block-group__inner-container),
.carver-hero > .wp-block-group__inner-container > :nth-child(1) { animation-delay: .5s; }
.carver-hero > :nth-child(2):not(.wp-block-group__inner-container),
.carver-hero > .wp-block-group__inner-container > :nth-child(2) { animation-delay: .75s; }
.carver-hero > :nth-child(3):not(.wp-block-group__inner-container),
.carver-hero > .wp-block-group__inner-container > :nth-child(3) { animation-delay: 1s; }
.carver-hero > :nth-child(4):not(.wp-block-group__inner-container),
.carver-hero > .wp-block-group__inner-container > :nth-child(4) { animation-delay: 1.25s; }
.carver-hero > :nth-child(n+5):not(.wp-block-group__inner-container),
.carver-hero > .wp-block-group__inner-container > :nth-child(n+5) { animation-delay: 1.5s; }
@keyframes carver-hero-texte {
	from { opacity: 0; transform: translateY(18px); }
	to   { opacity: 1; transform: none; }
}

/* Visiteurs ayant demandé moins d'animations : image et textes fixes. */
@media (prefers-reduced-motion: reduce) {
	.carver-hero::after, .carver-hero > *, .carver-hero > .wp-block-group__inner-container > * { animation: none !important; }
}

/* 66. FICHE PRODUIT — bouton « Soumettre » du formulaire d'avis
   Une règle plus précise (Kadence / WooCommerce) lui retirait son fond noir :
   le texte blanc devenait invisible sur fond blanc. */
.woocommerce #review_form #respond .form-submit input#submit,
.woocommerce #review_form #respond .form-submit input[type="submit"],
.woocommerce #review_form #respond .form-submit button,
#reviews .comment-form .form-submit input[type="submit"],
.comment-form .form-submit input[type="submit"] {
	background: #000000 !important; background-color: #000000 !important;
	color: #FFFFFF !important; border: 1px solid #000000 !important;
	font-family: var(--carver-sans); font-size: 14px; font-weight: 600;
	letter-spacing: .1em; text-transform: uppercase; line-height: 1.2;
	padding: 1.05em 2.2em; border-radius: 0 !important; cursor: pointer; opacity: 1 !important;
}
.woocommerce #review_form #respond .form-submit input#submit:hover,
.woocommerce #review_form #respond .form-submit input[type="submit"]:hover,
.woocommerce #review_form #respond .form-submit button:hover,
#reviews .comment-form .form-submit input[type="submit"]:hover,
.comment-form .form-submit input[type="submit"]:hover {
	background: #333333 !important; background-color: #333333 !important; border-color: #333333 !important;
}

/* 67. PANIER — colonne photo toujours affichée
   La photo est bien dans la page (vérifié dans le code source) mais restait
   invisible : on neutralise tout ce qui peut masquer ou écraser la case et
   l'image (affichage, taille, rognage, transparence, position). */
.woocommerce-cart-form td.product-thumbnail,
table.cart td.product-thumbnail {
	display: table-cell !important; visibility: visible !important; opacity: 1 !important;
	width: 96px !important; min-width: 96px !important; max-width: none !important;
	overflow: visible !important; font-size: 14px !important; line-height: 1 !important;
	clip: auto !important; clip-path: none !important; position: static !important;
}
.woocommerce-cart-form td.product-thumbnail > a,
table.cart td.product-thumbnail > a {
	display: block !important; width: 72px !important; height: 72px !important;
	visibility: visible !important; opacity: 1 !important; overflow: hidden !important;
	position: static !important; transform: none !important;
}
.woocommerce-cart-form td.product-thumbnail img,
table.cart td.product-thumbnail img {
	display: block !important; visibility: visible !important; opacity: 1 !important;
	width: 72px !important; height: 72px !important; min-width: 72px !important; max-width: none !important;
	max-height: none !important; object-fit: cover !important; position: static !important;
	transform: none !important; filter: none !important; clip: auto !important; clip-path: none !important;
	margin: 0 !important; border: 0 !important; background: #F5F5F5;
}
@media (max-width: 767px) {
	.woocommerce table.shop_table_responsive.cart tr td.product-thumbnail,
	.woocommerce-cart-form table.cart tr td.product-thumbnail { display: block !important; width: auto !important; min-width: 0 !important; text-align: left !important; }
	.woocommerce table.shop_table_responsive.cart tr td.product-thumbnail::before { display: none !important; }
}

/* 68. FICHE PRODUIT MOBILE — « Ajouter au panier » lisible
   Sur téléphone, le bouton était trop étroit à côté de la quantité : son texte
   passait sur deux lignes et débordait de sa hauteur fixe (60 px). Sous 768 px,
   la quantité reste sur sa ligne et le bouton prend toute la largeur dessous. */
@media (max-width: 767px) {
	.single-product form.cart:not(.variations_form),
	.single-product form.cart .woocommerce-variation-add-to-cart {
		display: flex !important; flex-wrap: wrap !important; align-items: stretch !important;
		gap: 12px !important;
	}
	.single-product form.cart .quantity { flex: 0 0 auto !important; margin: 0 !important; float: none !important; }
	.single-product form.cart .single_add_to_cart_button {
		flex: 1 1 100% !important; width: 100% !important; max-width: 100% !important;
		margin: 0 !important; float: none !important;
		white-space: nowrap !important; line-height: 1.2 !important;
		padding-left: 1em !important; padding-right: 1em !important;
	}
	/* Les autres éléments du formulaire (options, inscription…) gardent toute la largeur. */
	.single-product form.cart:not(.variations_form) > *:not(.quantity):not(.single_add_to_cart_button) { flex: 1 1 100%; }
}

/* 69. CONNEXION MOBILE — « Bienvenue chez Carver & Co. » sur une seule ligne
   La taille suit la largeur de l'écran (5,8 % de la largeur), sans passer
   à la ligne ; sur ordinateur, la taille d'origine (44 px max) est conservée. */
@media (max-width: 767px) {
	.carver-compte__titre {
		font-size: min(32px, 5.8vw) !important; white-space: nowrap !important;
		letter-spacing: 0 !important; line-height: 1.2 !important;
	}
}

/* 70. COMMANDE MOBILE — le récapitulatif reste dans son cadre
   Les montants étaient interdits de retour à la ligne (white-space: nowrap) :
   sur téléphone, la ligne « Livraison — Abobo : 2 000 FCFA » et les libellés
   espacés élargissaient le tableau au-delà du cadre gris. Sous 768 px, le
   tableau est bloqué à la largeur du cadre ; les textes peuvent passer à la
   ligne, seuls les montants restent d'un seul tenant. */
@media (max-width: 767px) {
	.woocommerce-checkout #order_review,
	.woocommerce-checkout #order_review > * { max-width: 100% !important; box-sizing: border-box !important; }
	.woocommerce-checkout #order_review table.woocommerce-checkout-review-order-table {
		width: 100% !important; max-width: 100% !important; table-layout: fixed !important;
		margin-left: 0 !important; margin-right: 0 !important;
	}
	.woocommerce-checkout-review-order-table th.product-name,
	.woocommerce-checkout-review-order-table td.product-name,
	.woocommerce-checkout-review-order-table tfoot th { width: 55% !important; }
	.woocommerce-checkout-review-order-table th.product-total,
	.woocommerce-checkout-review-order-table td.product-total,
	.woocommerce-checkout-review-order-table tfoot td { width: 45% !important; }
	.woocommerce-checkout-review-order-table th,
	.woocommerce-checkout-review-order-table td,
	.woocommerce-checkout-review-order-table tfoot td,
	.woocommerce-checkout-review-order-table td.product-total {
		white-space: normal !important; overflow-wrap: anywhere; word-break: normal;
	}
	.woocommerce-checkout-review-order-table th { letter-spacing: .08em !important; }
	.woocommerce-checkout-review-order-table .woocommerce-Price-amount { white-space: nowrap !important; }
	/* Nom du produit sur toute la largeur de sa colonne, quantité juste après. */
	.woocommerce-checkout-review-order-table td.product-name { display: table-cell !important; }
	.woocommerce-checkout-review-order-table td.product-name .product-quantity { display: inline !important; margin-left: .3em; white-space: nowrap; }
}

/* 71. MONTANTS JAMAIS COUPÉS (toutes tailles d'écran)
   Dans le panier, la commande, le mini-panier et la fiche commande, un
   montant (« 2 000 FCFA ») reste toujours sur une seule ligne. Le texte qui
   l'accompagne (« Livraison — Cocody : ») peut, lui, passer à la ligne. */
.woocommerce .woocommerce-Price-amount,
.woocommerce .woocommerce-Price-amount bdi,
.woocommerce-cart .woocommerce-Price-amount,
.woocommerce-checkout .woocommerce-Price-amount,
.widget_shopping_cart .woocommerce-Price-amount,
.woocommerce-order .woocommerce-Price-amount { white-space: nowrap !important; }
.woocommerce .cart_totals ul#shipping_method li label,
.woocommerce-checkout-review-order-table ul#shipping_method li label {
	white-space: normal !important; overflow-wrap: normal !important; word-break: normal !important;
}
.woocommerce .cart_totals ul#shipping_method li label .woocommerce-Price-amount,
.woocommerce-checkout-review-order-table ul#shipping_method li label .woocommerce-Price-amount { display: inline-block; }

/* 72. BANDEAU DE TITRE — description masquée
   Le texte de description des catégories (et l'extrait éventuel des pages)
   s'affichait en gris sombre sur le fond noir du bandeau, peu lisible et
   chargé. Il n'est plus affiché ; il reste enregistré dans WordPress. */
.entry-hero .archive-description,
.entry-hero .term-description,
.entry-hero .title-entry-excerpt,
.entry-hero .taxonomy-description,
.page-title .archive-description,
.page-title .term-description,
.page-title .title-entry-excerpt,
.woocommerce-products-header .term-description,
.woocommerce-products-header .page-description,
.woocommerce-products-header .archive-description { display: none !important; }

/* 73. COMMANDE — cases à cocher centrées sur leur texte
   La case et son texte sont centrés verticalement l’un par rapport à l’autre
   (texte sur une ou deux lignes) : inscription aux e-mails, « Expédier à une
   adresse différente ? », acceptation des conditions générales. */
.woocommerce-checkout .form-row label.checkbox,
.woocommerce-checkout label.woocommerce-form__label-for-checkbox,
.woocommerce-checkout #ship-to-different-address label,
.woocommerce-checkout .woocommerce-terms-and-conditions-wrapper label {
	display: flex !important; align-items: center !important; gap: .65em !important;
	line-height: 1.45 !important; margin: 0 !important; cursor: pointer;
}
.woocommerce-checkout .form-row label.checkbox input[type="checkbox"],
.woocommerce-checkout label.woocommerce-form__label-for-checkbox input[type="checkbox"],
.woocommerce-checkout #ship-to-different-address input[type="checkbox"],
.woocommerce-checkout .woocommerce-terms-and-conditions-wrapper input[type="checkbox"] {
	flex: 0 0 16px !important; width: 16px !important; height: 16px !important;
	margin: 0 !important; position: static !important; top: auto !important; vertical-align: middle !important;
	align-self: center !important; accent-color: #000000;
}
.woocommerce-checkout label.woocommerce-form__label-for-checkbox > span,
.woocommerce-checkout #ship-to-different-address label > span { line-height: 1.45 !important; display: inline !important; }
.woocommerce-checkout .woocommerce-terms-and-conditions-wrapper label abbr.required,
.woocommerce-checkout .woocommerce-terms-and-conditions-wrapper label .required { margin-left: -.35em; text-decoration: none !important; border: 0 !important; }
.woocommerce-checkout #ship-to-different-address { margin: 0 0 1rem !important; line-height: 1.45 !important; }

/* 74. PANIER MOBILE — tableau remis d'aplomb
   Les largeurs de colonnes de l'ordinateur (40 %, 120 px…) s'appliquaient
   aussi au panier « empilé » du téléphone : cases étroites et décalées. */
@media (max-width: 767px) {
	.woocommerce-cart-form table.shop_table_responsive.cart tr td,
	.woocommerce-cart-form table.cart tr td {
		width: 100% !important; min-width: 0 !important; max-width: none !important;
		display: block !important; box-sizing: border-box !important; clear: both;
	}
	.woocommerce-cart-form table.cart tr td.product-remove { text-align: left !important; border-bottom: 0 !important; padding-bottom: 0 !important; }
	.woocommerce-cart-form table.cart tr td.product-thumbnail { padding-top: .4rem !important; border-bottom: 0 !important; }
	.woocommerce-cart-form table.cart tr td.product-name > a { display: inline !important; }
	.woocommerce-cart-form table.cart thead { display: none !important; }
	.woocommerce-cart-form table.cart, .woocommerce-cart-form table.cart tbody, .woocommerce-cart-form table.cart tr { display: block !important; width: 100% !important; }
	.woocommerce-cart-form table.cart tr td[data-title]::before { content: attr(data-title) " :"; float: left; font-weight: 600; font-size: 13px; color: #222222; }
	.woocommerce-cart-form table.cart tr td[data-title] { text-align: right !important; }
	.woocommerce-cart-form table.cart tr td.product-name { text-align: right !important; }
	.woocommerce-cart-form table.cart tr:nth-child(2n) td { background-color: transparent !important; }
	.woocommerce-cart-form table.cart tr.cart_item { display: block; border-bottom: 1px solid #E5E5E5; padding-bottom: .4rem; }
	.woocommerce-cart-form table.cart td.product-quantity .quantity { margin-left: auto; }
}

/* 75. COMMANDE — la case « J'ai lu et j'accepte… » respire après le texte
   sur les données personnelles. */
.woocommerce-checkout .woocommerce-terms-and-conditions-wrapper .woocommerce-privacy-policy-text { margin-bottom: 1.1rem !important; }
.woocommerce-checkout .woocommerce-terms-and-conditions-wrapper .woocommerce-privacy-policy-text p { margin-bottom: 0 !important; }
.woocommerce-checkout .woocommerce-terms-and-conditions-wrapper .validate-required { margin-top: 1.1rem !important; }

/* 76. PANIER MOBILE — photo à gauche, nom du produit à côté (sans « Produit : ») */
@media (max-width: 767px) {
	.woocommerce-cart-form table.cart tr.cart_item {
		display: grid !important; grid-template-columns: 84px minmax(0, 1fr); column-gap: 14px;
		position: relative; padding: 1rem 0 .4rem !important;
	}
	.woocommerce-cart-form table.cart tr.cart_item > td { grid-column: 1 / -1; }
	.woocommerce-cart-form table.cart tr.cart_item > td.product-remove {
		position: absolute !important; top: .4rem; right: 0; width: auto !important; padding: 0 !important; border: 0 !important; z-index: 2;
	}
	.woocommerce-cart-form table.cart tr.cart_item > td.product-remove::before { display: none !important; }
	.woocommerce-cart-form table.cart tr.cart_item > td.product-thumbnail {
		grid-column: 1; grid-row: 1; width: 84px !important; min-width: 0 !important; padding: 0 !important; border: 0 !important; align-self: center;
	}
	.woocommerce-cart-form table.cart tr.cart_item > td.product-thumbnail > a,
	.woocommerce-cart-form table.cart tr.cart_item > td.product-thumbnail img { width: 84px !important; height: 84px !important; }
	.woocommerce-cart-form table.cart tr.cart_item > td.product-name {
		grid-column: 2; grid-row: 1; align-self: center; text-align: left !important;
		padding: 0 28px 0 0 !important; border: 0 !important; width: auto !important;
	}
	.woocommerce-cart-form table.cart tr.cart_item > td.product-name::before { display: none !important; content: none !important; }
	.woocommerce-cart-form table.cart tr.cart_item > td.product-name > a { display: block !important; font-size: 18px; line-height: 1.3; }
	.woocommerce-cart-form table.cart tr.cart_item > td.product-name dl.variation,
	.woocommerce-cart-form table.cart tr.cart_item > td.product-name .wcpa_cart_meta { text-align: left !important; margin-top: .3rem !important; }
	.woocommerce-cart-form table.cart tr.cart_item > td.product-price { margin-top: .9rem; border-top: 1px solid #E5E5E5 !important; }
}

/* 77. CARVER JOURNAL — grille des articles du blog ([carver_journal])
   - page « Carver Journal » : 3 colonnes (PC), 2 (tablette), 1 (mobile) ;
   - bloc « Derniers articles » : 3 articles sur une ligne (PC et tablette),
     2 articles sur une ligne (mobile). Voir aussi la section 78. */
.carver-journal-page, .carver-journal-accueil { background: #FFFFFF; }
.carver-journal-page .carver-journal { margin-top: 0; }
.carver-journal { margin: 2.6rem auto 2.4rem; max-width: var(--carver-largeur, 1200px); text-align: left; }
.carver-journal__grille { display: grid; gap: 2.6rem 1.8rem; grid-template-columns: repeat(3, minmax(0, 1fr)); }
.carver-journal--col-4 .carver-journal__grille { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 2rem 1.4rem; }
.carver-journal--col-2 .carver-journal__grille { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.carver-journal--col-1 .carver-journal__grille { grid-template-columns: minmax(0, 1fr); }
.carver-journal__carte { display: flex; flex-direction: column; min-width: 0; margin: 0; }
.carver-journal__image { display: block; overflow: hidden; aspect-ratio: 4 / 3; background: #000000; text-decoration: none; }
.carver-journal__image img {
	display: block; width: 100% !important; height: 100% !important; max-width: none;
	object-fit: cover; transition: transform .6s ease, filter .6s ease;
}
.carver-journal__carte:hover .carver-journal__image img { transform: scale(1.04); filter: brightness(.9); }
.carver-journal__sans-image { display: flex; width: 100%; height: 100%; align-items: center; justify-content: center; }
.carver-journal__sans-image img { width: 44px !important; height: 44px !important; object-fit: contain; opacity: .85; }
.carver-journal__carte:hover .carver-journal__sans-image img { transform: none; filter: none; }
.carver-journal__texte { padding-top: 1.1rem; display: flex; flex-direction: column; flex: 1; }
.carver-journal .carver-journal__meta {
	font-family: var(--carver-sans); font-size: 11px; font-weight: 500; letter-spacing: .14em;
	text-transform: uppercase; color: #666666; margin: 0 0 .55rem !important;
}
.carver-journal__sep { margin: 0 .5em; }
.carver-journal .carver-journal__titre {
	font-family: var(--carver-serif); font-weight: 500; font-size: 24px; line-height: 1.2;
	margin: 0 0 .6rem !important; padding: 0; border: 0; text-transform: none; letter-spacing: 0;
}
.carver-journal--col-4 .carver-journal__titre { font-size: 21px; }
.carver-journal__titre a { color: #000000 !important; text-decoration: none; }
.carver-journal__titre a:hover { text-decoration: underline; text-underline-offset: 3px; }
.carver-journal .carver-journal__extrait { font-size: 14px; line-height: 1.6; color: #444444; margin: 0 0 1rem !important; }
.carver-journal__lire {
	margin-top: auto; align-self: flex-start; font-family: var(--carver-sans); font-size: 11px; font-weight: 600;
	letter-spacing: .14em; text-transform: uppercase; color: #000000 !important; text-decoration: none;
	border-bottom: 1px solid #000000; padding-bottom: 3px;
}
.carver-journal__lire:hover { opacity: .65; }
.carver-journal__vide { margin: 2.4rem auto; color: #666666; text-align: center; }
/* Pagination */
.carver-journal__pagination { display: flex; flex-wrap: wrap; justify-content: center; gap: .4rem; margin-top: 3.2rem; }
.carver-journal__pagination .page-numbers {
	display: inline-flex; align-items: center; justify-content: center; min-width: 40px; height: 40px; padding: 0 .8rem;
	border: 1px solid var(--carver-line); font-family: var(--carver-sans); font-size: 12px; font-weight: 600;
	letter-spacing: .08em; color: #000000; text-decoration: none; box-sizing: border-box;
}
.carver-journal__pagination .page-numbers.current { background: #000000; border-color: #000000; color: #FFFFFF; }
.carver-journal__pagination a.page-numbers:hover { border-color: #000000; }
.carver-journal__pagination .page-numbers.dots { border: 0; min-width: 0; }
/* Tablette */
@media (max-width: 1024px) {
	.carver-journal--col-3 .carver-journal__grille { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.carver-journal--col-4 .carver-journal__grille { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 2.2rem 1.4rem; }
}
/* Mobile */
@media (max-width: 767px) {
	.carver-journal { margin: 2rem auto; }
	.carver-journal--mobile-1 .carver-journal__grille { grid-template-columns: minmax(0, 1fr); gap: 2.4rem; }
	.carver-journal--mobile-2 .carver-journal__grille { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.8rem 12px; }
	.carver-journal--mobile-2 .carver-journal__image { aspect-ratio: 1 / 1; }
	.carver-journal--mobile-2 .carver-journal__texte { padding-top: .8rem; }
	.carver-journal--mobile-2 .carver-journal__meta { font-size: 10px; letter-spacing: .1em; }
	.carver-journal--mobile-2 .carver-journal__meta > span:first-child,
	.carver-journal--mobile-2 .carver-journal__sep { display: none; }
	.carver-journal--mobile-2 .carver-journal__titre { font-size: 18px; }
	.carver-journal--mobile-2 .carver-journal__extrait { display: none; }
	.carver-journal--mobile-2 .carver-journal__lire { font-size: 10px; letter-spacing: .1em; }
	.carver-journal__pagination .page-numbers.prev, .carver-journal__pagination .page-numbers.next { width: 100%; }
}

/* 78. CARVER JOURNAL — colonnes sur tablette et nombre d'articles sur mobile
   (attributs tablette="…" et mobile_max="…" du code court [carver_journal]). */
@media (min-width: 768px) and (max-width: 1024px) {
	.carver-journal--tab-2 .carver-journal__grille { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.carver-journal--tab-3 .carver-journal__grille { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 2rem 1.2rem; }
	.carver-journal--tab-4 .carver-journal__grille { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 2rem 1rem; }
	.carver-journal--tab-3 .carver-journal__titre, .carver-journal--tab-4 .carver-journal__titre { font-size: 20px; }
}
@media (max-width: 767px) {
	.carver-journal--mobile-max-1 .carver-journal__carte:nth-child(n+2),
	.carver-journal--mobile-max-2 .carver-journal__carte:nth-child(n+3),
	.carver-journal--mobile-max-3 .carver-journal__carte:nth-child(n+4),
	.carver-journal--mobile-max-4 .carver-journal__carte:nth-child(n+5) { display: none; }
}

/* 79. CARTE DE VŒUX — encadré du panier et de la page de paiement */
.carver-carte-voeux {
	border: 1px solid var(--carver-line, #E5E5E5); background: #FAFAFA;
	margin: 0 0 2rem; padding: 0; box-sizing: border-box; max-width: 100%;
}
.woocommerce-cart-form .carver-carte-voeux { margin: 1.5rem 0 0; text-align: left; }
.carver-carte-voeux__titre {
	display: flex; align-items: center; justify-content: space-between; gap: 1rem;
	padding: 1rem 1.25rem; cursor: pointer; list-style: none;
	font-family: var(--carver-sans); font-size: 13px; font-weight: 600; letter-spacing: .1em; text-transform: uppercase; color: #000000;
}
.carver-carte-voeux__titre::-webkit-details-marker { display: none; }
.carver-carte-voeux__titre::after { content: "+"; font-size: 18px; font-weight: 400; line-height: 1; margin-left: .25rem; }
.carver-carte-voeux[open] > .carver-carte-voeux__titre::after { content: "−"; }
.carver-carte-voeux__titre > span:first-child { flex: 1; }
.carver-carte-voeux__prix { font-weight: 500; letter-spacing: .04em; text-transform: none; white-space: nowrap; color: #444444; }
.carver-carte-voeux.est-ajoutee .carver-carte-voeux__titre > span:first-child::before { content: "✓\00a0"; }
.carver-carte-voeux__form { padding: 0 1.25rem 1.25rem; margin: 0; }
.carver-carte-voeux__intro { font-size: 14px; color: #444444; margin: 0 0 1rem !important; }
.carver-carte-voeux__label { display: block; font-size: 13px; font-weight: 600; margin-bottom: .4rem; color: #000000; }
.carver-carte-voeux textarea {
	display: block; width: 100%; box-sizing: border-box; min-height: 84px; resize: vertical;
	padding: .75rem .9rem; border: 1px solid #CCCCCC; border-radius: 0; background: #FFFFFF;
	font-family: var(--carver-sans); font-size: 15px; line-height: 1.5; color: #000000;
}
.carver-carte-voeux textarea:focus { outline: none; border-color: #000000; }
.carver-carte-voeux__aide {
	display: flex; justify-content: space-between; align-items: flex-start; gap: 1rem;
	font-size: 12px; color: #666666; margin: .45rem 0 1rem !important;
}
.carver-carte-voeux__aide > span:first-child { flex: 1; }
.carver-carte-voeux__compteur { white-space: nowrap; }
.carver-carte-voeux__actions { display: flex; flex-wrap: wrap; gap: .6rem; }
.carver-carte-voeux__actions .button {
	border-radius: 0 !important; background: #000000 !important; color: #FFFFFF !important; border: 1px solid #000000 !important;
	font-family: var(--carver-sans); font-size: 13px !important; font-weight: 600 !important; letter-spacing: .08em; text-transform: uppercase;
	padding: .8rem 1.4rem !important; line-height: 1.2 !important; cursor: pointer;
}
.carver-carte-voeux__actions .button:hover { background: #333333 !important; border-color: #333333 !important; }
.carver-carte-voeux__actions .carver-carte-voeux__retirer { background: transparent !important; color: #000000 !important; }
.carver-carte-voeux__actions .carver-carte-voeux__retirer:hover { background: #F5F5F5 !important; border-color: #000000 !important; }
@media (max-width: 767px) {
	.carver-carte-voeux__titre { padding: .9rem 1rem; font-size: 12px; }
	.carver-carte-voeux__form { padding: 0 1rem 1rem; }
	.carver-carte-voeux__actions .button { flex: 1 1 100%; text-align: center; }
}

/* 80. CARTE DE VŒUX — compteur de quantité bloqué à 1 (même cadre que les autres lignes) */
.carver-quantite-fixe {
	display: inline-flex; align-items: stretch; min-height: 48px; box-sizing: border-box;
	border: 1px solid #D0D0D0; background: #FFFFFF; cursor: not-allowed; user-select: none; vertical-align: middle;
}
.carver-quantite-fixe__btn {
	display: inline-flex; align-items: center; justify-content: center; width: 38px; min-width: 38px;
	font-family: var(--carver-sans); font-size: 16px; font-weight: 400; line-height: 1; color: #C4C4C4;
}
.carver-quantite-fixe__val {
	display: inline-flex; align-items: center; justify-content: center; width: 48px; min-width: 48px;
	background: #F5F5F5; font-family: var(--carver-sans); font-size: 15px; font-weight: 500; color: #000000;
}
@media (max-width: 767px) {
	.woocommerce-cart-form table.cart td.product-quantity .carver-quantite-fixe { margin-left: auto; }
}

/* 81. ARTICLES DU CARVER JOURNAL — mise en forme automatique et compositions
   (inc/article.php). Colonne de lecture de 720 px ; les éléments « alignwide »
   s'élargissent à 1 040 px. */
.single-post .entry-content { --carver-lecture: 720px; }
.single-post .entry-content > * { max-width: var(--carver-lecture); margin-left: auto !important; margin-right: auto !important; }
.single-post .entry-content > .alignwide { max-width: 1040px; }
.single-post .entry-content > .alignfull { max-width: none; }
.single-post .entry-content p,
.single-post .entry-content li { font-size: 17px; line-height: 1.75; color: #222222; }
.single-post .entry-content p { margin: 0 0 1.25rem; }
.single-post .entry-content a:not(.wp-block-button__link) { color: #000000; text-decoration: underline; text-underline-offset: 3px; text-decoration-thickness: 1px; }
.single-post .entry-content a:not(.wp-block-button__link):hover { color: #666666; }
/* En-tête de l'article (Kadence) */
.single-post .entry-header .entry-title { font-family: var(--carver-serif); font-weight: 500; line-height: 1.15; }
/* Titres */
.single-post .entry-content h2 {
	font-family: var(--carver-serif); font-weight: 500; font-size: clamp(28px, 3.4vw, 36px); line-height: 1.2;
	color: #000000; margin: .2rem auto 1.1rem !important; text-transform: none; letter-spacing: 0;
}
.single-post .entry-content h3 { font-family: var(--carver-serif); font-weight: 500; font-size: clamp(22px, 2.6vw, 26px); line-height: 1.25; margin: 2rem auto .8rem !important; }
.single-post .entry-content h4 { font-family: var(--carver-sans); font-size: 15px; font-weight: 600; letter-spacing: .02em; margin: 1.6rem auto .5rem !important; }
/* Label au-dessus d'un titre de section : espace avant la section */
.single-post .entry-content > .carver-label { margin-top: 3.2rem !important; margin-bottom: .6rem !important; }
.single-post .entry-content > .carver-label + h2 { margin-top: 0 !important; }
/* Chapô */
.carver-article-chapo {
	font-family: var(--carver-serif) !important; font-size: clamp(21px, 2.4vw, 25px) !important; line-height: 1.5 !important;
	color: #000000 !important; margin-bottom: 2.2rem !important;
}
/* Listes */
.single-post .entry-content ul.wp-block-list { list-style: none; padding-left: 0; margin: 0 auto 1.5rem; }
.single-post .entry-content ul.wp-block-list > li { position: relative; padding-left: 1.6em; margin-bottom: .45rem; }
.single-post .entry-content ul.wp-block-list > li::before {
	content: ""; position: absolute; left: 0; top: .9em; width: .8em; height: 1px; background: #000000;
}
.single-post .entry-content ol.wp-block-list { padding-left: 1.4em; margin: 0 auto 1.5rem; }
.single-post .entry-content ol.wp-block-list > li { padding-left: .3em; margin-bottom: .45rem; }
.single-post .entry-content ol.wp-block-list > li::marker { font-family: var(--carver-serif); font-weight: 600; }
/* Images et légendes */
.single-post .entry-content .wp-block-image { margin-top: 2.2rem !important; margin-bottom: 2.2rem !important; }
.single-post .entry-content .wp-block-image img { display: block; width: 100%; height: auto; border-radius: 0; }
.single-post .entry-content figcaption,
.single-post .entry-content .wp-element-caption {
	font-family: var(--carver-sans); font-size: 12px; line-height: 1.5; color: #666666; text-align: center !important; margin-top: .6rem;
}
/* Tableaux */
.single-post .entry-content .wp-block-table { margin: 2rem auto !important; overflow-x: auto; }
.single-post .entry-content .wp-block-table table { width: 100%; border-collapse: collapse; border: 0; font-size: 15px; }
.single-post .entry-content .wp-block-table th,
.single-post .entry-content .wp-block-table td { border: 0; border-bottom: 1px solid var(--carver-line, #E5E5E5); padding: .8rem 1rem .8rem 0; text-align: left; vertical-align: top; }
.single-post .entry-content .wp-block-table thead th {
	font-family: var(--carver-sans); font-size: 11px; font-weight: 600; letter-spacing: .14em; text-transform: uppercase;
	color: #666666; border-bottom: 1px solid #000000; background: transparent;
}
.single-post .entry-content .wp-block-table thead { border-bottom: 0; }
.single-post .entry-content .wp-block-table.is-style-stripes tbody tr:nth-child(odd) { background: #FAFAFA; }
/* Citation */
.single-post .entry-content .wp-block-quote,
.single-post .entry-content .wp-block-pullquote {
	border: 0; border-top: 1px solid #000000; border-bottom: 1px solid #000000; padding: 2rem 0; margin: 2.6rem auto !important; text-align: center;
}
.single-post .entry-content .wp-block-quote p,
.single-post .entry-content .wp-block-pullquote p {
	font-family: var(--carver-serif); font-style: italic; font-size: clamp(22px, 2.8vw, 28px); line-height: 1.4; color: #000000; margin: 0 auto .8rem;
}
.single-post .entry-content .wp-block-quote cite,
.single-post .entry-content .wp-block-pullquote cite {
	display: block; font-family: var(--carver-sans); font-style: normal; font-size: 11px; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; color: #666666;
}
/* Séparateur */
.single-post .entry-content .wp-block-separator { border: 0; border-top: 1px solid var(--carver-line, #E5E5E5); margin: 2.8rem auto !important; opacity: 1; }
/* Boutons dans un article */
.single-post .entry-content .wp-block-buttons { margin: 1.2rem 0 1.6rem; }
/* Encadré « La pièce » */
.carver-article-piece { box-sizing: border-box; background: #F5F5F5; padding: clamp(1.2rem, 3vw, 2rem) !important; margin: 2.6rem auto !important; }
.carver-article-piece .wp-block-columns { align-items: center !important; gap: clamp(1.2rem, 3vw, 2rem); margin: 0 !important; }
.carver-article-piece .wp-block-image { margin: 0 !important; }
.carver-article-piece .wp-block-image img { aspect-ratio: 1 / 1; object-fit: cover; }
.carver-article-piece h3 { margin-top: 0 !important; }
.carver-article-piece .carver-label { margin-bottom: .4rem !important; }
.carver-article-piece .wp-block-buttons { margin-bottom: 0; }
/* Encadré « En résumé » */
.carver-article-resume { box-sizing: border-box; border-left: 2px solid #000000; padding: .4rem 0 .2rem 1.6rem !important; margin: 2.6rem auto !important; }
.carver-article-resume .carver-label { margin-bottom: .8rem !important; }
.carver-article-resume ul.wp-block-list { margin-bottom: 0 !important; }
/* Signature et sources */
.carver-article-signature { font-family: var(--carver-serif) !important; font-style: italic; font-size: 20px !important; color: #000000 !important; margin-top: 1rem !important; }
.carver-article-sources { font-size: 13px !important; line-height: 1.6 !important; color: #666666 !important; }
.carver-article-sources a { color: #666666 !important; }
/* Carrousel (bloc Galerie, style « Carrousel Carver ») */
.carver-carrousel { position: relative; margin: 2.4rem auto !important; }
.wp-block-gallery.is-style-carver-carrousel {
	display: flex !important; flex-wrap: nowrap !important; gap: 12px !important; overflow-x: auto; scroll-snap-type: x mandatory;
	-webkit-overflow-scrolling: touch; scrollbar-width: none; margin: 0 !important; padding: 0;
}
.wp-block-gallery.is-style-carver-carrousel::-webkit-scrollbar { display: none; }
.wp-block-gallery.is-style-carver-carrousel > figure.wp-block-image {
	flex: 0 0 72% !important; width: 72% !important; max-width: none !important; margin: 0 !important; scroll-snap-align: start;
}
.wp-block-gallery.is-style-carver-carrousel > figure.wp-block-image img {
	width: 100% !important; height: auto !important; aspect-ratio: 4 / 5; object-fit: cover !important;
}
.wp-block-gallery.is-style-carver-carrousel > figure.wp-block-image figcaption {
	position: static !important; background: none !important; color: #666666 !important; padding: .5rem 0 0 !important;
	font-size: 12px !important; text-align: center !important; max-height: none !important; overflow: visible !important;
}
.carver-carrousel__fleche {
	position: absolute; top: calc(50% - 22px); width: 44px !important; height: 44px !important; min-height: 0 !important;
	border-radius: 50% !important; border: 1px solid #000000 !important; background: #FFFFFF !important; color: #000000 !important;
	font-size: 24px !important; line-height: 1 !important; cursor: pointer; padding: 0 0 3px !important; box-shadow: none !important;
	display: flex; align-items: center; justify-content: center; z-index: 2; transition: opacity .2s;
}
.carver-carrousel__fleche--prec { left: -22px; }
.carver-carrousel__fleche--suiv { right: -22px; }
.carver-carrousel__fleche:disabled { opacity: 0; pointer-events: none; }
@media (min-width: 768px) {
	.wp-block-gallery.is-style-carver-carrousel > figure.wp-block-image { flex-basis: 44% !important; width: 44% !important; }
}
@media (max-width: 767px) {
	.single-post .entry-content p, .single-post .entry-content li { font-size: 16px; }
	.carver-carrousel__fleche { display: none; }
	.carver-article-piece .wp-block-columns { flex-direction: column; }
}

/* 82. ARTICLES — repère « [À COMPLÉTER] / [À VALIDER] » (visible tant qu'il n'est pas remplacé) */
.carver-a-completer {
	background: #FFF4CC !important; border-left: 3px solid #C99A00; padding: .7rem 1rem !important;
	font-size: 14px !important; color: #5A4500 !important;
}

/* 83. VARIANTES NATIVES (ex. « Taille ») — même présentation que les champs de l'extension d'options :
   libellé au-dessus, liste sur toute la largeur, astérisque rouge (couleur de l'extension, lue par
   inc/variantes.php), lien « Effacer » masqué quand la fiche n'a qu'un seul choix. */
.single-product form.variations_form table.variations,
.single-product form.variations_form table.variations tbody,
.single-product form.variations_form table.variations tr,
.single-product form.variations_form table.variations th,
.single-product form.variations_form table.variations td {
	display: block !important; width: 100% !important; padding: 0 !important; margin: 0 !important;
	border: 0 !important; background: transparent !important; text-align: left !important; line-height: 1.4 !important;
}
.single-product form.variations_form table.variations { margin: 0 0 1.2rem !important; }
.single-product form.variations_form table.variations tr + tr { margin-top: 1.4rem !important; }
.single-product form.variations_form table.variations th.label { margin-bottom: .5rem !important; }
.single-product form.variations_form table.variations th.label label { display: inline-block; margin: 0 !important; }
.single-product form.variations_form table.variations th.label label::after {
	content: "*"; color: var(--carver-asterisque, #C62828); margin-left: 1px;
}
.single-product form.variations_form table.variations td.value select {
	display: block !important; width: 100% !important; min-width: 0 !important; max-width: none !important; margin: 0 !important;
}
.single-product form.variations_form .reset_variations {
	display: inline-block; margin-top: .5rem; font-size: 12px; color: #666666 !important; text-decoration: underline;
}
.single-product form.variations_form table.variations tr:only-child .reset_variations { display: none !important; }
@media (max-width: 767px) {
	/* Les champs de l'extension (inscription…) placés après la taille gardent toute la largeur. */
	.single-product form.variations_form .woocommerce-variation-add-to-cart > *:not(.quantity):not(.single_add_to_cart_button):not([type="hidden"]) { flex: 1 1 100%; }
}

/* 84. CHAMP « INSCRIPTION » DU THÈME (inc/inscription.php) — même présentation que le champ « Taille » :
   libellé au-dessus, astérisque rouge, champ sur toute la largeur. Le style du champ lui-même
   (fond, bordure, hauteur 48 px) vient de la section 27. */
.single-product form.cart .carver-champ {
	flex: 1 1 100% !important; width: 100% !important; max-width: 100% !important;
	margin: 0 0 1.4rem !important; box-sizing: border-box;
}
.single-product form.cart .carver-champ label { display: block !important; margin: 0 0 .5rem !important; line-height: 1.4 !important; }
.carver-champ__ast { color: var(--carver-asterisque, #C62828); margin-left: 1px; }
.single-product form.cart .carver-champ input[type="text"] { display: block; width: 100% !important; max-width: none !important; margin: 0 !important; }

/* 85. BOUTON « AJOUTER AU PANIER » GRISÉ tant que la taille, l'inscription ou une autre option
   obligatoire n'est pas renseignée (classe posée par inc/options-requises.php), ou quand la taille
   choisie est en rupture (classe « disabled » de WooCommerce). Un clic affiche ce qui manque. */
.single-product form.cart .single_add_to_cart_button.carver-bouton-inactif,
.single-product form.cart .single_add_to_cart_button.disabled {
	background: #E6E6E6 !important; border-color: #E6E6E6 !important; color: #8A8A8A !important;
	opacity: 1 !important; cursor: not-allowed !important; box-shadow: none !important;
}

/* 86. COMPTEUR BLOQUÉ « - 1 + » (inc/quantite-fixe.php) — dernière unité en stock ou pièce vendue à l'unité,
   sur la fiche produit et dans le panier. Le champ normal de WooCommerce reste en place (même mise en page
   que les autres fiches : compteur à côté du bouton) mais il est masqué ; le compteur bloqué prend sa place,
   dans le même cadre : mêmes dimensions, signes - et + grisés, quantité au centre, impossible à modifier. */
.quantity .carver-quantite-fixe {
	border: 0 !important; background: transparent !important; min-height: 0 !important; align-self: stretch;
}
.quantity.carver-qte-bloquee input.qty,
.quantity.carver-qte-bloquee .minus, .quantity.carver-qte-bloquee .plus,
.quantity.carver-qte-bloquee button, .quantity.carver-qte-bloquee input[type="button"],
.quantity:has(> .carver-quantite-fixe) input.qty,
.quantity:has(> .carver-quantite-fixe) .minus, .quantity:has(> .carver-quantite-fixe) .plus,
.quantity:has(> .carver-quantite-fixe) button, .quantity:has(> .carver-quantite-fixe) input[type="button"] { display: none !important; }
/* La bulle doit pouvoir dépasser du cadre du compteur. */
.quantity:has(> .carver-quantite-fixe), .quantity.carver-qte-bloquee { overflow: visible !important; cursor: not-allowed; }
.single-product form.cart .quantity .carver-quantite-fixe__btn { width: 2.6em; min-width: 2.6em; font-size: 17px; }
.single-product form.cart .quantity .carver-quantite-fixe__val { width: 3.2em; min-width: 3.2em; }

/* Bulle d'explication au survol (ordinateur) ou au toucher (téléphone) : « Dernière pièce disponible. » */
.carver-quantite-fixe { position: relative; outline: none; }
.carver-quantite-fixe[data-motif]::after {
	content: attr(data-motif); position: absolute; left: 0; bottom: calc(100% + 8px); z-index: 20;
	background: #000000; color: #FFFFFF; font-family: var(--carver-sans); font-size: 12px; font-weight: 500;
	line-height: 1.3; letter-spacing: .02em; white-space: nowrap; padding: .5rem .75rem;
	opacity: 0; visibility: hidden; transform: translateY(4px); transition: opacity .15s ease, transform .15s ease, visibility .15s;
	pointer-events: none;
}
.carver-quantite-fixe[data-motif]::before {
	content: ""; position: absolute; left: 18px; bottom: calc(100% + 3px); z-index: 20;
	border: 5px solid transparent; border-top-color: #000000; border-bottom-width: 0;
	opacity: 0; visibility: hidden; transition: opacity .15s ease, visibility .15s; pointer-events: none;
}
.carver-quantite-fixe[data-motif]:hover::after, .carver-quantite-fixe[data-motif]:focus::after,
.carver-quantite-fixe[data-motif]:hover::before, .carver-quantite-fixe[data-motif]:focus::before {
	opacity: 1; visibility: visible; transform: none;
}
.carver-quantite-fixe:focus-visible { box-shadow: 0 0 0 1px #000000; }

/* 87. PAIEMENT — texte de consentement de « Cart Abandonment Recovery » sous le champ E-mail
   (classes posées par inc/consentement-panier.php) : lignes resserrées, « Non merci » visiblement cliquable. */
.carver-consentement {
	display: block !important; margin: .5rem 0 0 !important;
	font-family: var(--carver-sans) !important; font-size: 12px !important; line-height: 1.5 !important; color: #666666 !important;
}
.carver-consentement * { font-size: inherit !important; line-height: inherit !important; }
a.carver-consentement__refus {
	font-weight: 600 !important; color: #000000 !important; white-space: nowrap;
	text-decoration: underline !important; text-underline-offset: 2px; cursor: pointer;
}
a.carver-consentement__refus:hover { color: #333333 !important; }

/* 88. EN-TÊTE DES PAGES (Carver Journal, La maison) — sur téléphone, sur-titre plus petit et moins espacé,
   pour qu'il reste nettement plus étroit que le titre principal. */
@media (max-width: 767px) {
	.carver-entete-page .carver-label { font-size: 10.5px; letter-spacing: .14em; }
}

/* 89. CONDITIONS GÉNÉRALES (page de paiement) — astérisque collé au texte
   En ligne flexible (section 73), le texte et l'astérisque étaient deux blocs séparés : dès que le texte
   passait sur deux lignes, l'astérisque partait au bout de la ligne. Ici, le texte et l'astérisque forment
   une seule phrase ; la case reste à gauche, centrée verticalement sur le texte. */
.woocommerce-checkout .woocommerce-terms-and-conditions-wrapper .form-row label.woocommerce-form__label-for-checkbox,
.woocommerce-checkout .woocommerce-terms-and-conditions-wrapper .form-row label.checkbox {
	display: block !important; position: relative !important; padding-left: calc(16px + .65em) !important;
}
.woocommerce-checkout .woocommerce-terms-and-conditions-wrapper .form-row label.woocommerce-form__label-for-checkbox input[type="checkbox"],
.woocommerce-checkout .woocommerce-terms-and-conditions-wrapper .form-row label.checkbox input[type="checkbox"] {
	position: absolute !important; left: 0 !important; top: 50% !important; transform: translateY(-50%) !important;
}
.woocommerce-checkout .woocommerce-terms-and-conditions-wrapper .form-row label.woocommerce-form__label-for-checkbox > span { display: inline !important; }
.woocommerce-checkout .woocommerce-terms-and-conditions-wrapper .form-row label abbr.required,
.woocommerce-checkout .woocommerce-terms-and-conditions-wrapper .form-row label .required { margin-left: .1em !important; white-space: nowrap; }

/* 90. PANIER — mise à jour automatique de la quantité (inc/ajout-panier.php) : le bouton
   « Mettre à jour le panier » n'est plus utile, il est masqué (il reste visible si le script ne se charge pas). */
.woocommerce-cart-form.carver-maj-auto button[name="update_cart"],
.woocommerce-cart-form.carver-maj-auto input[name="update_cart"] { display: none !important; }
/* Sans champ de code promo, la ligne du bouton devient vide : elle est masquée aussi. */
.woocommerce-cart-form.carver-maj-auto tr:has(> td.actions):not(:has(.coupon)) { display: none !important; }
.woocommerce-cart-form.processing { opacity: .6; }
/* Fiche produit : bouton « Ajouter au panier » pendant l'envoi (un second appui est ignoré). */
.single-product form.cart .single_add_to_cart_button.carver-envoi-en-cours { opacity: .6 !important; pointer-events: none; }

/* 91. PAGE « INSCRIPTION CONFIRMÉE » (newsletter MailPoet) — composition carver/confirmation-newsletter */
.carver-confirmation .wp-block-buttons { justify-content: center; gap: .8rem; }
.carver-confirmation .carver-confirmation__note {
	margin: 2.2rem auto 0 !important; max-width: 34em; font-size: 13px; line-height: 1.6; color: #666666; text-align: center;
}

/* 92. PANIER (téléphone) — « Vous serez peut-être intéressé par… » : plus d'espace au-dessus du titre */
@media (max-width: 767px) {
	.woocommerce-cart .cross-sells { clear: both; margin-top: 3.5rem !important; padding-top: 0 !important; }
	.woocommerce-cart .cross-sells > h2 { margin-top: 0 !important; margin-bottom: 1.4rem !important; }
}
