/*
Theme Name: Château de Jonquières
Theme URI: https://www.chateau-jonquieres.com/
Author: FBInfo
Author URI: https://fbinfo.info/
Description: Thème du Château de Jonquières (Terrasses du Larzac) : thème à blocs léger reprenant l'identité de new.chateau-jonquieres.com (olive, lin, Barlow Condensed, Ibarra Real Nova), pensé pour FB Page Builder, FB Header & Footer, Vertex Gallery et WooCommerce.
Version: 1.0.0
Requires at least: 6.6
Tested up to: 7.1
Requires PHP: 8.1
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: chateau-jonquieres
*/

/* ==========================================================================
   Base
   ========================================================================== */

:root {
	--cj-olive: var(--wp--preset--color--olive);
	--cj-nuit: var(--wp--preset--color--olive-nuit);
	--cj-sauge: var(--wp--preset--color--sauge);
	--cj-sauge-claire: var(--wp--preset--color--sauge-claire);
	--cj-bronze: var(--wp--preset--color--bronze);
	--cj-lin: var(--wp--preset--color--lin);
	--cj-creme: var(--wp--preset--color--creme);
	--cj-encre: var(--wp--preset--color--encre);
	--cj-gris: var(--wp--preset--color--gris);
	--cj-filet: 1px solid var(--wp--preset--color--ligne);
	--cj-etiquette: var(--wp--preset--font-family--etiquette);
	--cj-titre: var(--wp--preset--font-family--titre);
	--cj-texte: var(--wp--preset--font-family--texte);
	--cj-transition: 260ms cubic-bezier(.2, .6, .2, 1);
}

html { scroll-behavior: smooth; -webkit-text-size-adjust: 100%; }

@media (prefers-reduced-motion: reduce) {
	html { scroll-behavior: auto; }
	/* Le bandeau défilant (FB) garde son propre réglage « Toujours défiler ». */
	*:not(.fbbd-track), *::before, *::after { transition: none !important; animation: none !important; }
}

body {
	text-rendering: optimizeLegibility;
	-webkit-font-smoothing: antialiased;
	overflow-x: clip;
}

img { max-width: 100%; height: auto; }

strong, b { font-weight: 600; }

:where(a, button, input, select, textarea, summary):focus-visible {
	outline: 1px solid var(--cj-bronze);
	outline-offset: 3px;
}

::selection { background: var(--cj-olive); color: #fff; }

/* Champs de formulaire communs (WooCommerce classique, FB Contact…) */
:where(input[type="text"], input[type="email"], input[type="tel"], input[type="number"], input[type="password"], input[type="search"], select, textarea) {
	max-width: 100%;
	padding: .7rem .85rem;
	border: 1px solid #cdc7ae;
	border-radius: 0;
	background: #fff;
	color: var(--cj-encre);
	font: inherit;
	transition: border-color var(--cj-transition), box-shadow var(--cj-transition);
}

:where(input, select, textarea):focus {
	border-color: var(--cj-olive);
	box-shadow: 0 0 0 3px rgb(36 51 5 / 12%);
	outline: none;
}

/* ==========================================================================
   En-tête (FB Header & Footer)
   ========================================================================== */

.fbhf-header {
	position: sticky;
	top: 0;
	z-index: 100;
	color: #fff;
	background: var(--cj-olive);
	transition: background-color var(--cj-transition), box-shadow var(--cj-transition);
}

body.admin-bar .fbhf-header { top: var(--wp-admin--admin-bar--height, 32px); }

/* Sur une page qui s'ouvre par une grande image ou une vidéo, l'en-tête se pose dessus, transparent… */
body.cj-visuel .fbhf-header {
	position: fixed;
	left: 0;
	right: 0;
	background: linear-gradient(to bottom, rgb(18 24 6 / 55%), rgb(18 24 6 / 0%));
}

/* … puis devient opaque dès qu'on fait défiler la page. */
body.cj-visuel.cj-defile .fbhf-header,
body.cj-visuel .fbhf-header:has(.fbpb-nav.is-open) {
	background: rgb(36 51 5 / 97%);
	box-shadow: 0 1px 0 rgb(217 211 184 / 22%);
}

/* Barre du haut : blanche, comme sur new. (italique à gauche, coordonnées à droite) */
.fbhf-header .cj-barre {
	background: #fff;
	color: var(--cj-encre);
	transition: margin var(--cj-transition), opacity var(--cj-transition);
}

.fbhf-header .cj-barre .fbpb-text,
.fbhf-header .cj-barre .fbpb-text p {
	margin: 0;
	font-family: var(--cj-titre);
	font-size: 14px;
	font-style: italic;
	letter-spacing: .02em;
	color: var(--cj-encre);
}

.fbhf-header .cj-barre a { color: inherit; text-decoration: none; }
.fbhf-header .cj-barre a:hover { color: var(--cj-bronze); }

/* En faisant défiler : la barre blanche se replie et le logo rapetisse */
body.cj-defile .fbhf-header .cj-barre { margin-top: -40px !important; opacity: 0; pointer-events: none; }

.fbhf-header .cj-logo .fbpb-logo img { transition: max-height var(--cj-transition); }
body.cj-defile .fbhf-header .cj-logo .fbpb-logo img { max-height: 54px !important; }
.fbhf-header .cj-tete { transition: padding var(--cj-transition); }
body.cj-defile .fbhf-header .cj-tete { padding-top: 8px !important; padding-bottom: 2px !important; }
body.cj-defile .fbhf-header .cj-menu-ligne { padding-bottom: 8px !important; }

/* Icônes du haut (compte, panier) */
.fbhf-header .cj-icones .fbpb-il-icon { color: #fff; }
.fbhf-header .cj-icones a:hover .fbpb-il-icon { color: var(--cj-lin); }

@media (max-width: 767px) {
	.fbhf-header .cj-icones .fbpb-il { gap: 14px !important; padding-right: 4px; }
}

/* Liens du menu : Barlow Condensed, capitales espacées, filet lin au survol */
.fbhf-header .fbpb-menu > li > a {
	position: relative;
	display: inline-block;
	padding: 8px 0;
	font-family: var(--cj-etiquette);
	font-size: 13.5px;
	font-weight: 500;
	letter-spacing: .2em;
	text-transform: uppercase;
	color: #fff;
}

.fbhf-header .fbpb-menu > li > a::after {
	content: "";
	position: absolute;
	left: 0;
	right: 0;
	bottom: 3px;
	height: 1px;
	background: var(--cj-lin);
	transform: scaleX(0);
	transform-origin: left;
	transition: transform var(--cj-transition);
}

.fbhf-header .fbpb-menu a:hover { text-decoration: none; }
.fbhf-header .fbpb-menu > li > a:hover::after,
.fbhf-header .fbpb-menu > li.current-menu-item > a::after,
.fbhf-header .fbpb-menu > li.current-menu-ancestor > a::after { transform: scaleX(1); }

.fbhf-header .fbpb-menu > li.menu-item-has-children > a { padding-right: 14px; }
.fbhf-header .fbpb-menu > li.menu-item-has-children > a::before {
	content: "";
	position: absolute;
	right: 0;
	top: 50%;
	width: 5px;
	height: 5px;
	margin-top: -4px;
	border-right: 1px solid currentColor;
	border-bottom: 1px solid currentColor;
	transform: rotate(45deg);
	opacity: .7;
}

.fbhf-header .fbpb-menu .sub-menu {
	min-width: 240px;
	padding: 14px 0;
	background: var(--cj-olive);
	border-top: 1px solid var(--cj-lin);
	border-radius: 0;
	box-shadow: 0 24px 40px -18px rgb(0 0 0 / 55%);
}

.fbhf-header .fbpb-menu .sub-menu a {
	padding: 9px 24px;
	font-family: var(--cj-etiquette);
	font-size: 15px;
	font-weight: 400;
	letter-spacing: .12em;
	text-transform: uppercase;
	color: rgb(255 255 255 / 84%);
	transition: color var(--cj-transition), padding var(--cj-transition);
}

.fbhf-header .fbpb-menu .sub-menu a:hover {
	background: transparent;
	color: var(--cj-lin);
	padding-left: 30px;
}

/* Menu replié (« hamburger ») jusqu'aux écrans de 1100 px */
@media (max-width: 1100px) {
	.fbhf-header .cj-menu-ligne { position: static; }
	.fbhf-header .fbpb-nav--collapse { flex-wrap: wrap; justify-content: center !important; }
	.fbhf-header .fbpb-nav--collapse .fbpb-nav-toggle { display: inline-flex; color: #fff; }
	.fbhf-header .fbpb-nav--collapse .fbpb-menu {
		display: none;
		flex-direction: column !important;
		align-items: stretch;
		gap: 0 !important;
		position: absolute;
		left: 0;
		right: 0;
		top: 100%;
		z-index: 60;
		max-height: calc(100vh - 80px);
		overflow-y: auto;
		padding: 12px clamp(20px, 6vw, 48px) 28px;
		background: var(--cj-olive);
		border-top: 1px solid rgb(217 211 184 / 35%);
		box-shadow: 0 24px 40px -18px rgb(0 0 0 / 60%);
		text-align: left;
	}
	.fbhf-header .fbpb-nav--collapse.is-open .fbpb-menu { display: flex; }
	/* Une seule colonne : sans « nowrap », un menu plus haut que l'écran se répartit en colonnes qui débordent à droite */
	.fbhf-header .fbpb-nav--collapse .fbpb-menu { flex-wrap: nowrap !important; box-sizing: border-box; width: auto; }
	.fbhf-header .fbpb-nav--collapse .fbpb-menu > li { width: 100%; padding: 6px 0; border-bottom: 1px solid rgb(255 255 255 / 10%); }
	.fbhf-header .fbpb-nav--collapse .fbpb-menu > li > a { font-size: 22px; letter-spacing: .12em; }
	.fbhf-header .fbpb-nav--collapse .fbpb-menu > li > a::after,
	.fbhf-header .fbpb-nav--collapse .fbpb-menu > li.menu-item-has-children > a::before { display: none; }

	/* Entrée avec sous-menu : le lien et le bouton chevron sur une ligne, le sous-menu en dessous */
	.fbhf-header .fbpb-nav--collapse .fbpb-menu > li.menu-item-has-children {
		display: flex;
		flex-wrap: wrap;
		align-items: center;
		justify-content: space-between;
	}
	.fbhf-header .fbpb-nav--collapse .fbpb-menu > li.menu-item-has-children > a { flex: 1 1 auto; padding-right: 0; }

	/* Sous-menus fermés par défaut, ouverts au clic */
	.fbhf-header .fbpb-nav--collapse .fbpb-menu .sub-menu {
		display: none !important;
		flex-basis: 100%;
		position: static;
		min-width: 0;
		padding: 0 0 10px 14px;
		border: 0;
		border-left: 1px solid rgb(217 211 184 / 35%);
		box-shadow: none;
		background: transparent;
	}
	.fbhf-header .fbpb-nav--collapse .fbpb-menu li.cj-sous-ouvert > .sub-menu { display: block !important; }
	.fbhf-header .fbpb-nav--collapse .fbpb-menu .sub-menu a { padding: 7px 0; font-size: 16px; white-space: normal; }
	.fbhf-header .fbpb-nav--collapse .fbpb-menu .sub-menu a:hover { padding-left: 6px; }

	.fbhf-header .fbpb-nav--collapse .cj-sous-bouton { display: inline-grid; }
}

/* Bouton chevron des sous-menus (menu mobile uniquement) */
.fbhf-header .cj-sous-bouton {
	display: none;
	place-items: center;
	flex: none;
	width: 44px;
	height: 44px;
	margin: 0;
	padding: 0;
	border: 0;
	background: transparent;
	color: #fff;
	cursor: pointer;
}
.fbhf-header .cj-sous-bouton::before {
	content: "";
	width: 10px;
	height: 10px;
	margin-top: -5px;
	border-right: 1.5px solid currentColor;
	border-bottom: 1.5px solid currentColor;
	transform: rotate(45deg);
	transition: transform var(--cj-transition), margin var(--cj-transition);
}
.fbhf-header li.cj-sous-ouvert > .cj-sous-bouton::before { transform: rotate(-135deg); margin-top: 5px; }
.fbhf-header .cj-sous-bouton:hover,
.fbhf-header .cj-sous-bouton:focus { background: transparent; color: var(--cj-lin); }

/* ==========================================================================
   Pied de page
   ========================================================================== */

.fbhf-footer { background: var(--cj-olive); color: rgb(255 255 255 / 76%); }

.fbhf-footer a { color: rgb(255 255 255 / 84%); text-decoration: none; transition: color var(--cj-transition); }
.fbhf-footer a:hover { color: var(--cj-lin); }

.fbhf-footer .fbpb-heading { font-family: var(--cj-etiquette); letter-spacing: .2em; }
.fbhf-footer .fbpb-menu { gap: 9px; align-items: flex-start; }
.fbhf-footer .fbpb-menu a { font-family: var(--cj-etiquette); font-size: 15px; letter-spacing: .12em; text-transform: uppercase; }
.fbhf-footer .fbpb-menu a:hover { text-decoration: none; }
.fbhf-footer .fbpb-il-icon { color: var(--cj-lin); }
.fbhf-footer .fbpb-text p { margin: 0 0 .4em; }

.cj-pied-bas .fbpb-text p { margin: 0; }

@media (max-width: 1024px) {
	.fbhf-footer .fbpb-section:not(.cj-pied-bas) .fbpb-column { margin-bottom: 40px; }
}

/* Les fonds fixes (parallaxe) ne sont pas gérés par les navigateurs mobiles : fond normal */
@media (max-width: 1024px), (hover: none) {
	.fbpb-section { background-attachment: scroll !important; }
}

/* ==========================================================================
   Mise en page : gabarits du thème
   ========================================================================== */

main.cj-page {
	padding-top: var(--wp--preset--spacing--50);
	padding-bottom: var(--wp--preset--spacing--60);
}

.cj-page__titre {
	margin-bottom: var(--wp--preset--spacing--40);
	text-align: center;
}

/*
 * Page construite avec FB Page Builder en pleine largeur : la page sort du conteneur du thème.
 * Pas de 100vw (qui inclut la barre de défilement et décale tout vers la gauche) : on annule
 * simplement les marges latérales du gabarit et la largeur maximale du contenu.
 */
main.cj-page:has(.fbpb-fullwidth) {
	padding: 0 !important;
	max-width: none !important;
}
main.cj-page:has(.fbpb-fullwidth) > .wp-block-post-content,
main.cj-page .wp-block-post-content > .fbpb-page.fbpb-fullwidth,
.wp-block-post-content > .fbpb-page.fbpb-fullwidth {
	width: auto;
	max-width: none !important;
	margin-left: 0 !important;
	margin-right: 0 !important;
	margin-top: 0;
}
main.cj-page .wp-block-post-content:has(> .fbpb-fullwidth) { margin-top: 0; }
main.cj-page > .wp-block-post-content:has(> .fbpb-fullwidth) ~ * { display: none; }

/* Pages de texte (CGV, mentions…) */
.cj-page .wp-block-post-content :where(h2) { margin-top: 2.5rem; font-size: 1.9rem; }
.cj-page .wp-block-post-content :where(h3) { margin-top: 2rem; font-size: 1.4rem; }

/* ==========================================================================
   Éléments réutilisables dans le builder (classes CSS des sections / widgets)
   ========================================================================== */

/* Titres du builder : Barlow Condensed en capitales, olive, comme sur new. */
:where(.fbpb-page) :where(h1, h2, h3, h4, h5, h6).fbpb-heading,
:where(.fbpb-page) .fbpb-fh-title,
:where(.fbpb-page) .fbpb-icon-title,
:where(.fbpb-page) .fbpb-tl-title,
:where(.fbpb-page) .fbpb-post-title {
	font-family: var(--cj-etiquette);
	font-weight: 400;
	text-transform: uppercase;
	letter-spacing: .02em;
	color: var(--cj-olive);
}

:where(.fbpb-page) .fbpb-text p { margin: 0 0 1.05em; }
:where(.fbpb-page) .fbpb-text p:last-child { margin-bottom: 0; }
:where(.fbpb-page .fbpb-text) { line-height: 1.8; }
:where(.fbpb-page .fbpb-text) a { color: var(--cj-olive); }
:where(.fbpb-page .fbpb-text) ul { padding-left: 1.2em; }
:where(.fbpb-page .fbpb-text) li { margin-bottom: .35em; }

/* Surtitre : petites capitales espacées, couleur sauge, avec un filet */
.fbpb-page .cj-surtitre .fbpb-text p {
	display: inline-flex;
	align-items: center;
	gap: 14px;
	margin: 0;
	font-family: var(--cj-etiquette);
	font-size: 15px;
	font-weight: 500;
	line-height: 1.4;
	letter-spacing: .32em;
	text-transform: uppercase;
	color: var(--cj-sauge);
}

.cj-surtitre .fbpb-text p::before,
.cj-surtitre.cj-centre .fbpb-text p::after {
	content: "";
	width: 34px;
	height: 1px;
	background: currentColor;
	flex: none;
}

.cj-surtitre.cj-clair .fbpb-text p { color: var(--cj-lin); }

/* Grand titre de section */
.cj-titre .fbpb-heading {
	font-size: clamp(2.3rem, 4.6vw, 3.9rem);
	line-height: 1.02;
	letter-spacing: .01em;
}

/* Chapeau / texte d'introduction en Ibarra italique (comme l'accroche de new.) */
.cj-chapeau .fbpb-text,
.cj-chapeau .fbpb-text p {
	font-family: var(--cj-titre);
	font-size: clamp(1.25rem, 2vw, 1.55rem) !important;
	font-style: italic;
	line-height: 1.5 !important;
	color: var(--cj-mousse, #535947);
}

/* Héros plein écran (vidéo ou photo) */
.cj-hero {
	min-height: 100vh;
	min-height: 100svh;
	justify-content: center;
	color: #fff;
	overflow: hidden;
}

.cj-hero::after {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(to top, rgb(14 20 4 / 62%) 0%, rgb(14 20 4 / 12%) 50%, rgb(14 20 4 / 38%) 100%);
	pointer-events: none;
}

.cj-hero > .fbpb-container { z-index: 2; }

/* Bandeaux des pages : assez hauts pour que le titre passe toujours sous l'en-tête (~200 px) */
.cj-hero--page { min-height: max(68vh, 620px); min-height: max(68svh, 620px); justify-content: flex-end; }
.cj-hero--court { min-height: max(52vh, 540px); min-height: max(52svh, 540px); justify-content: flex-end; }

@media (max-width: 767px) {
	.cj-hero--page { min-height: max(60svh, 460px); }
	.cj-hero--court { min-height: max(50svh, 420px); }
}

.cj-hero .cj-hero__titre .fbpb-heading {
	font-size: clamp(2.8rem, 7.5vw, 6.4rem);
	line-height: .98;
	letter-spacing: .02em;
	color: #fff;
	text-wrap: balance;
}

/* Accueil : le titre tient aussi sur les écrans peu hauts (portables) */
.cj-hero--accueil .cj-hero__titre .fbpb-heading { font-size: clamp(2.8rem, min(7.5vw, 11vh), 6.4rem); }

.cj-hero--page .cj-hero__titre .fbpb-heading,
.cj-hero--court .cj-hero__titre .fbpb-heading { font-size: clamp(2.5rem, 6vw, 5rem); }

.cj-hero .fbpb-text { color: rgb(255 255 255 / 88%); }

.cj-hero .cj-hero__sur .fbpb-text p {
	margin: 0;
	font-family: var(--cj-etiquette);
	font-size: clamp(16px, 1.6vw, 22px);
	font-weight: 500;
	letter-spacing: .3em;
	text-transform: uppercase;
	color: #fff;
}

/* Indication de défilement en bas du héros */
.cj-hero--accueil > .fbpb-container::after {
	content: "";
	position: absolute;
	left: 50%;
	bottom: -18vh;
	width: 1px;
	height: 48px;
	background: linear-gradient(to bottom, var(--cj-lin), transparent);
	animation: cj-descente 2.4s ease-in-out infinite;
}

@keyframes cj-descente {
	0% { transform: scaleY(0); transform-origin: top; }
	50% { transform: scaleY(1); transform-origin: top; }
	51% { transform: scaleY(1); transform-origin: bottom; }
	100% { transform: scaleY(0); transform-origin: bottom; }
}

/* Boutons : rectangles, Barlow Condensed en capitales */
.fbpb-page .fbpb-button,
.fbhf-header .fbpb-button,
.fbhf-footer .fbpb-button {
	border-radius: 0;
	font-family: var(--cj-etiquette);
	font-weight: 500;
	letter-spacing: .2em;
	text-transform: uppercase;
	transition: background-color var(--cj-transition), color var(--cj-transition), border-color var(--cj-transition);
}

.cj-boutons { display: flex; flex-wrap: wrap; gap: 14px; }
.cj-boutons--centre { justify-content: center; }

.cj-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 50px;
	padding: 14px 32px;
	border: 1px solid var(--cj-olive);
	background: var(--cj-olive);
	color: #fff !important;
	font-family: var(--cj-etiquette);
	font-size: 15px;
	font-weight: 500;
	letter-spacing: .2em;
	text-transform: uppercase;
	text-decoration: none !important;
	transition: background-color var(--cj-transition), color var(--cj-transition), border-color var(--cj-transition);
}

.cj-btn:hover { background: var(--cj-bronze); border-color: var(--cj-bronze); }
.cj-btn--clair { background: transparent; border-color: rgb(255 255 255 / 75%); }
.cj-btn--clair:hover { background: #fff; border-color: #fff; color: var(--cj-olive) !important; }
.cj-btn--contour { background: transparent; color: var(--cj-olive) !important; }
.cj-btn--contour:hover { background: var(--cj-olive); color: #fff !important; }

@media (max-width: 480px) {
	.cj-boutons .cj-btn { flex: 1 1 100%; }
}

/* Lien souligné façon « En savoir plus » */
.cj-lien .fbpb-button {
	padding: 6px 0 !important;
	border: 0 !important;
	border-bottom: 1px solid currentColor !important;
	background: transparent !important;
	color: var(--cj-olive) !important;
}
.cj-lien .fbpb-button:hover { color: var(--cj-bronze) !important; }
.cj-sombre .cj-lien .fbpb-button { color: #fff !important; }

/* Guillemet décoratif */
.cj-guillemet {
	font-family: var(--cj-titre);
	font-size: 110px;
	line-height: .7;
	text-align: center;
	color: var(--cj-sauge-claire);
	height: 56px;
}

/* Image avec un cadre lin décalé */
.cj-cadre .fbpb-image { position: relative; isolation: isolate; }
.cj-cadre .fbpb-image::before {
	content: "";
	position: absolute;
	inset: 22px -22px -22px 22px;
	border: 1px solid var(--cj-sauge-claire);
	z-index: -1;
	pointer-events: none;
}
.cj-cadre--gauche .fbpb-image::before { inset: 22px 22px -22px -22px; }
.cj-cadre .fbpb-image img { display: block; width: 100%; }

@media (max-width: 767px) {
	.cj-cadre .fbpb-image::before { inset: 12px -10px -12px 12px; }
	.cj-cadre--gauche .fbpb-image::before { inset: 12px 12px -12px -10px; }
}

/* Image qui grossit doucement au survol */
.cj-zoom .fbpb-image { overflow: hidden; }
.cj-zoom .fbpb-image img { transition: transform 1.2s cubic-bezier(.2, .6, .2, 1); }
.cj-zoom:hover .fbpb-image img { transform: scale(1.04); }

/* Fond sombre (olive) : textes clairs */
.cj-sombre .fbpb-text a { color: var(--cj-lin); }
.cj-sombre :where(h1, h2, h3, h4, h5, h6).fbpb-heading { color: #fff; }

/* Filet vertical décoratif centré */
.cj-filet .fbpb-divider-wrap { justify-content: center; }
.cj-filet .fbpb-divider { width: 1px !important; height: 60px; border: 0 !important; background: var(--cj-sauge-claire); }

/* ==========================================================================
   Cartes (oenotourisme, vins, équipe, chambres)
   ========================================================================== */

.cj-carte > .fbpb-column-inner {
	transition: transform var(--cj-transition), box-shadow var(--cj-transition);
}

.cj-carte:hover > .fbpb-column-inner {
	transform: translateY(-6px);
	box-shadow: 0 30px 50px -30px rgb(24 34 10 / 45%);
}

/* Vignette oenotourisme : photo + titre posé dessous en capitales */
.cj-vignette .fbpb-image { overflow: hidden; }
.cj-vignette .fbpb-image img {
	display: block;
	width: 100%;
	aspect-ratio: 3 / 4;
	object-fit: cover;
	transition: transform 1.2s cubic-bezier(.2, .6, .2, 1);
}
.cj-carte:hover .cj-vignette .fbpb-image img { transform: scale(1.05); }

/* Bouteille sur fond crème */
.cj-bouteille .fbpb-image {
	display: grid;
	place-items: center;
	aspect-ratio: 3 / 4;
	padding: 26px 0 10px;
	background: radial-gradient(ellipse at 50% 62%, #fff 0%, var(--cj-creme) 72%);
}

.cj-bouteille .fbpb-image img {
	width: auto !important;
	max-height: 100%;
	object-fit: contain;
	mix-blend-mode: multiply; /* le fond blanc des photos de bouteilles disparaît */
	transition: transform .9s cubic-bezier(.2, .6, .2, 1);
}

.cj-carte:hover .cj-bouteille .fbpb-image img { transform: translateY(-6px) scale(1.03); }

.cj-appellation .fbpb-text,
.cj-appellation .fbpb-text p {
	font-family: var(--cj-etiquette);
	font-size: 14px !important;
	font-weight: 500 !important;
	letter-spacing: .24em;
	text-transform: uppercase;
	color: var(--cj-sauge) !important;
}

.cj-prix .fbpb-text p {
	font-family: var(--cj-etiquette);
	font-size: 20px;
	letter-spacing: .06em;
	color: var(--cj-olive);
}

/* Fiche technique d'un vin */
.cj-fiche .fbpb-text p { margin-bottom: .55em; }
.cj-fiche .fbpb-text strong {
	display: block;
	margin-top: .7em;
	font-family: var(--cj-etiquette);
	font-size: 14px;
	font-weight: 500;
	letter-spacing: .22em;
	text-transform: uppercase;
	color: var(--cj-olive);
}

/* Citation de presse sous un vin */
.cj-presse .fbpb-text p {
	font-family: var(--cj-titre);
	font-style: italic;
	font-size: 1.15rem;
	line-height: 1.55;
	color: var(--cj-mousse, #535947);
}

/* Portraits */
.cj-portrait .fbpb-image { overflow: hidden; }
.cj-portrait .fbpb-image img {
	display: block;
	width: 100%;
	aspect-ratio: 4 / 5;
	object-fit: cover;
	transition: transform 1.2s cubic-bezier(.2, .6, .2, 1);
}
.cj-carte:hover .cj-portrait .fbpb-image img { transform: scale(1.03); }

/* Logos de presse : en niveaux de gris, colorés au survol */
.cj-logos-presse .fbpb-logo-card img {
	filter: grayscale(1) contrast(.9);
	opacity: .7;
	transition: filter var(--cj-transition), opacity var(--cj-transition);
}
.cj-logos-presse .fbpb-logo-card:hover img { filter: none; opacity: 1; }

/* ==========================================================================
   Widgets du builder : réglages de style communs
   ========================================================================== */

/* Compteurs (comme sur new. : grands chiffres blancs sur photo) */
.cj-chiffres .fbpb-counter-num {
	font-family: var(--cj-etiquette);
	font-weight: 400;
	line-height: 1;
}
.cj-chiffres .fbpb-counter-label {
	font-family: var(--cj-etiquette);
	font-size: 16px;
	font-weight: 500;
	letter-spacing: .24em;
	text-transform: uppercase;
}

/* Frise chronologique (l'histoire) */
.cj-frise .fbpb-tl-date { font-family: var(--cj-etiquette); font-weight: 400; }
.cj-frise .fbpb-tl-label {
	display: block;
	font-family: var(--cj-etiquette);
	font-size: 14px;
	font-weight: 500;
	letter-spacing: .26em;
	text-transform: uppercase;
	color: var(--cj-sauge);
}
.cj-frise .fbpb-tl-card { border-radius: 0; line-height: 1.75; }
.cj-frise .fbpb-tl-title { font-size: 1.6rem; margin: 0 0 .5em; }

/* Accordéon */
.cj-accordeon .fbpb-acc-item { border-left: 0; border-right: 0; border-top: 0; border-radius: 0; }
.cj-accordeon .fbpb-acc-label { font-family: var(--cj-etiquette); font-weight: 400; letter-spacing: .08em; text-transform: uppercase; }

/* Liste à icônes (informations pratiques) */
.cj-infos .fbpb-il-icon { color: var(--cj-sauge); }

/* Liste d'articles (actualités) */
.fbpb-page .fbpb-post { border-radius: 0; overflow: hidden; }
.fbpb-page .fbpb-post-img { display: block; overflow: hidden; }
.fbpb-page .fbpb-post-img img { transition: transform 1.2s cubic-bezier(.2, .6, .2, 1); }
.fbpb-page .fbpb-post:hover .fbpb-post-img img { transform: scale(1.04); }
.fbpb-page .fbpb-post-title a { text-decoration: none; color: inherit; }
.fbpb-page .fbpb-post-date {
	font-family: var(--cj-titre);
	font-size: 15px;
	font-style: italic;
	color: var(--cj-sauge);
}
.fbpb-page .fbpb-post-more {
	font-family: var(--cj-etiquette);
	font-size: 14px;
	font-weight: 500;
	letter-spacing: .2em;
	text-transform: uppercase;
	text-decoration: none;
	border-bottom: 1px solid currentColor;
	color: var(--cj-olive);
}

/* Carrousels : flèches fines */
.fbpb-page .fbpb-slider { --fbpb-arrow: #fff; }

/* Carte Google : un peu désaturée pour rester dans la palette */
.fbpb-page .fbpb-map iframe { filter: grayscale(.5) sepia(.15) contrast(1.02); display: block; }

/* ==========================================================================
   Vertex Gallery
   ========================================================================== */

.fbpb-page .vg-filters { gap: 6px 24px; justify-content: center; margin-bottom: 36px; }

.fbpb-page .vg-filter-btn {
	padding: 6px 0 !important;
	border: 0 !important;
	border-bottom: 1px solid transparent !important;
	border-radius: 0 !important;
	background: transparent !important;
	color: var(--cj-gris) !important;
	font-family: var(--cj-etiquette);
	font-size: 15px !important;
	font-weight: 500;
	letter-spacing: .2em;
	text-transform: uppercase;
	box-shadow: none !important;
}

.fbpb-page .vg-filter-btn:hover { color: var(--cj-olive) !important; }
.fbpb-page .vg-filter-btn.active { color: var(--cj-olive) !important; border-bottom-color: var(--cj-olive) !important; }

.fbpb-page .vg-loadmore-btn,
.fbpb-page .vg-page-btn {
	border-radius: 0 !important;
	font-family: var(--cj-etiquette);
	font-size: 15px !important;
	font-weight: 500;
	letter-spacing: .2em;
	text-transform: uppercase;
}

.fbpb-page .vg-loadmore-btn {
	padding: 14px 34px !important;
	border: 1px solid var(--cj-olive) !important;
	background: transparent !important;
	color: var(--cj-olive) !important;
}

.fbpb-page .vg-loadmore-btn:hover { background: var(--cj-olive) !important; color: #fff !important; }

/* ==========================================================================
   Formulaire de contact (FB Contact)
   ========================================================================== */

.fbcf .fbcf-control {
	border: 0 !important;
	border-bottom: 1px solid #c9c2a6 !important;
	border-radius: 0 !important;
	background: transparent !important;
	padding: 12px 2px !important;
	font: inherit;
	box-shadow: none !important;
	transition: border-color var(--cj-transition);
}

.fbcf .fbcf-control:focus { border-bottom-color: var(--cj-olive) !important; outline: none; }

.fbcf label {
	font-family: var(--cj-etiquette);
	font-size: 14px;
	font-weight: 500;
	letter-spacing: .2em;
	text-transform: uppercase;
	color: var(--cj-gris);
}

.fbcf button[type="submit"],
.fbcf .fbcf-submit {
	border-radius: 0 !important;
	padding: 15px 38px !important;
	background: var(--cj-olive) !important;
	color: #fff !important;
	font-family: var(--cj-etiquette) !important;
	font-size: 15px !important;
	font-weight: 500 !important;
	letter-spacing: .22em !important;
	text-transform: uppercase;
	border: 0 !important;
	transition: background-color var(--cj-transition);
}

.fbcf button[type="submit"]:hover,
.fbcf .fbcf-submit:hover { background: var(--cj-bronze) !important; }

/* ==========================================================================
   Actualités : liste et article (gabarits du thème)
   ========================================================================== */

/* Bandeau des actualités : assez haut pour que le titre (même sur 2-3 lignes) passe sous l'en-tête (~200 px) */
.cj-bandeau {
	position: relative;
	display: flex;
	align-items: flex-end;
	min-height: max(72vh, 620px);
	min-height: max(72svh, 620px);
	margin: 0 !important;
	padding-top: 260px !important;
	padding-bottom: var(--wp--preset--spacing--50) !important;
	color: #fff;
}

@media (max-width: 1100px) {
	.cj-bandeau { min-height: max(60vh, 480px); padding-top: 200px !important; }
}

@media (max-width: 767px) {
	.cj-bandeau { min-height: max(60svh, 420px); padding-top: 160px !important; }
}

.cj-bandeau .wp-block-post-title { margin: .25em 0 .35em; }
.cj-bandeau .cj-surtitre-bloc a { color: var(--cj-lin); text-decoration: none; }
.cj-bandeau .cj-surtitre-bloc a:hover { color: #fff; }

.cj-bandeau .wp-block-cover__inner-container { max-width: 1240px; margin-inline: auto; width: 100%; }

.cj-bandeau h1 { margin: .2em 0 0; color: #fff; text-wrap: balance; }

.cj-surtitre-bloc {
	margin: 0;
	font-family: var(--cj-etiquette);
	font-size: 15px;
	font-weight: 500;
	letter-spacing: .32em;
	text-transform: uppercase;
	color: var(--cj-lin);
}

.cj-404 .cj-surtitre-bloc { color: var(--cj-sauge); }

.cj-actus { padding-top: var(--wp--preset--spacing--50); padding-bottom: var(--wp--preset--spacing--60); }

.cj-actus .wp-block-post-template { gap: clamp(2rem, 4vw, 3.5rem) clamp(1.5rem, 3vw, 2.5rem); }

.cj-actu .wp-block-post-featured-image { overflow: hidden; margin-bottom: 1.1rem; }
.cj-actu .wp-block-post-featured-image img { aspect-ratio: 4 / 3; object-fit: cover; transition: transform 1.2s cubic-bezier(.2, .6, .2, 1); }
.cj-actu:hover .wp-block-post-featured-image img { transform: scale(1.04); }
.cj-actu .wp-block-post-date {
	font-family: var(--cj-titre);
	font-size: 15px;
	font-style: italic;
	color: var(--cj-sauge);
}
.cj-actu .wp-block-post-title { margin: .3rem 0 .6rem; font-size: 1.7rem; line-height: 1.1; }
.cj-actu .wp-block-post-excerpt { font-size: .95rem; color: var(--cj-gris); }

.cj-article { padding-top: var(--wp--preset--spacing--50); padding-bottom: var(--wp--preset--spacing--60); }
.cj-article .wp-block-post-content > p:first-child { font-family: var(--cj-titre); font-size: 1.45rem; font-style: italic; line-height: 1.5; color: #535947; }
.cj-article .wp-block-post-content :where(h2, h3) { margin-top: 2rem; }
.cj-article .wp-block-post-content figure.wp-block-image img { width: 100%; }
.cj-article .wp-block-gallery { margin-top: 2rem; }

.cj-article__retour a {
	font-family: var(--cj-etiquette);
	font-size: 15px;
	font-weight: 500;
	letter-spacing: .2em;
	text-transform: uppercase;
	text-decoration: none;
	border-bottom: 1px solid currentColor;
}

/* Lien vers la publication d'origine (Instagram / Facebook) */
.cj-source { font-size: .875rem; color: var(--cj-gris); }

/* Article sans image : titre sous l'en-tête */
body.cj-sans-visuel .cj-article-tete { padding-top: var(--wp--preset--spacing--50); text-align: center; }

/* Page 404 */
.cj-404 { min-height: 60vh; display: grid; place-content: center; text-align: center; }
.cj-404 .wp-block-buttons { justify-content: center; }

/* ==========================================================================
   Bandeau défilant (FB) au-dessus de l'en-tête
   ========================================================================== */

.fbbd { position: relative; z-index: 101; }
body.cj-visuel:has(.fbbd) .fbhf-header { position: sticky; background: var(--cj-olive); }

/* ==========================================================================
   WooCommerce — mise en page générale
   ========================================================================== */

main.cj-boutique,
main.cj-produit {
	padding-top: var(--wp--preset--spacing--40);
	padding-bottom: var(--wp--preset--spacing--60);
}

.woocommerce-breadcrumb,
.wc-block-breadcrumbs {
	margin-bottom: 1.25rem;
	font-size: .8125rem;
	color: var(--cj-gris);
}

.woocommerce-breadcrumb a,
.wc-block-breadcrumbs a { color: inherit; text-decoration: none; }
.woocommerce-breadcrumb a:hover,
.wc-block-breadcrumbs a:hover { color: var(--cj-olive); text-decoration: underline; }
.cj-fil__sep { margin: 0 .5em; opacity: .5; }

.cj-boutique__tete {
	margin-bottom: var(--wp--preset--spacing--30);
	padding-bottom: var(--wp--preset--spacing--30);
	border-bottom: var(--cj-filet);
}

.cj-boutique__tete .wp-block-query-title { margin: 0; font-size: var(--wp--preset--font-size--titre-geant); }

.cj-boutique__tete .wp-block-term-description {
	max-width: 46rem;
	margin-top: .75rem;
	color: var(--cj-gris);
}

.cj-boutique__outils {
	margin-bottom: var(--wp--preset--spacing--30);
	font-size: .875rem;
	color: var(--cj-gris);
}

.cj-boutique__outils .woocommerce-ordering select { padding-block: .5rem; }

/* Cartes produit (grilles en blocs et grilles classiques) */
.wc-block-product-template,
ul.products {
	gap: clamp(1rem, 2.5vw, 2rem) !important;
}

.wc-block-product,
ul.products li.product {
	position: relative;
	display: flex;
	flex-direction: column;
	padding: 0 0 1.25rem !important;
	background: #fff;
	border: var(--cj-filet);
	text-align: center;
	transition: box-shadow var(--cj-transition), transform var(--cj-transition), border-color var(--cj-transition);
}

.wc-block-product:hover,
ul.products li.product:hover {
	border-color: var(--cj-lin);
	box-shadow: 0 26px 44px -30px rgb(24 34 10 / 40%);
	transform: translateY(-3px);
}

/* Le fond crème est porté par le conteneur : l'image (fond blanc) s'y fond grâce au mode « produit ». */
.wc-block-product .wc-block-components-product-image,
ul.products li.product a.woocommerce-LoopProduct-link {
	display: block;
	margin: 0 0 1rem !important;
	padding: 1.25rem 1rem .5rem;
	background: radial-gradient(ellipse at 50% 62%, #fff 0%, var(--cj-creme) 80%);
	isolation: isolate;
}

ul.products li.product a.woocommerce-LoopProduct-link img { margin: 0 0 1rem !important; }

.wc-block-product .wc-block-components-product-image img,
ul.products li.product a img {
	width: 100%;
	aspect-ratio: 3 / 4;
	object-fit: contain !important;
	background: transparent !important;
	mix-blend-mode: multiply;
	transition: transform 400ms ease;
}

.wc-block-product:hover .wc-block-components-product-image img,
ul.products li.product:hover a img { transform: scale(1.03); }

.wc-block-product .wp-block-post-title,
ul.products li.product .woocommerce-loop-product__title {
	margin: 0 1rem .35rem !important;
	padding: 0 !important;
	font-family: var(--cj-etiquette);
	font-size: 1.45rem !important;
	font-weight: 400;
	line-height: 1.1;
	text-transform: uppercase;
	letter-spacing: .04em;
	color: var(--cj-olive);
}

.wc-block-product .wp-block-post-title a { text-decoration: none; color: inherit; }

.wc-block-product .wc-block-components-product-price,
ul.products li.product .price {
	display: block;
	margin: 0 1rem 1rem !important;
	color: var(--cj-encre) !important;
	font-size: 1rem !important;
	font-weight: 500;
}

.cj-prix-des {
	font-size: .75rem;
	font-weight: 400;
	letter-spacing: .04em;
	color: var(--cj-gris);
}

.wc-block-product .wp-block-button,
.wc-block-product .wc-block-components-product-button,
ul.products li.product .button { margin-top: auto !important; }

.wc-block-product .wc-block-components-product-button__button,
ul.products li.product .button {
	margin-inline: 1rem;
	padding: .75rem 1rem !important;
	border: 1px solid var(--cj-olive) !important;
	border-radius: 0 !important;
	background: transparent !important;
	color: var(--cj-olive) !important;
	font-family: var(--cj-etiquette) !important;
	font-size: .9rem !important;
	font-weight: 500 !important;
	letter-spacing: .16em;
	text-transform: uppercase;
	transition: background var(--cj-transition), color var(--cj-transition);
}

.wc-block-product .wc-block-components-product-button__button:hover,
ul.products li.product .button:hover {
	background: var(--cj-olive) !important;
	color: #fff !important;
}

.wc-block-components-product-sale-badge,
ul.products li.product .onsale {
	border: 0 !important;
	border-radius: 0 !important;
	background: var(--cj-bronze) !important;
	color: #fff !important;
	font-size: .7rem !important;
	letter-spacing: .1em;
	text-transform: uppercase;
}

ul.products li.product .added_to_cart {
	display: block;
	margin-top: .5rem;
	font-size: .8125rem;
}

ul.products {
	display: grid !important;
	grid-template-columns: repeat(auto-fill, minmax(min(100%, 220px), 1fr));
	margin: 0 !important;
	padding: 0 !important;
	list-style: none;
}

ul.products::before,
ul.products::after { display: none !important; }

ul.products li.product {
	width: auto !important;
	margin: 0 !important;
	float: none !important;
}

ul.products li.product > a { text-decoration: none; color: inherit; }

.wp-block-query-pagination { margin-top: var(--wp--preset--spacing--40); gap: .5rem; }
.wp-block-query-pagination a,
.wp-block-query-pagination .page-numbers {
	display: inline-grid;
	place-items: center;
	min-width: 2.5rem;
	height: 2.5rem;
	border: var(--cj-filet);
	text-decoration: none;
}
.wp-block-query-pagination .current { background: var(--cj-olive); color: #fff; border-color: transparent; }

.wp-block-query-pagination-numbers { display: flex; gap: .5rem; }

/* Actualités : flèches en chevrons, carrées comme les numéros */
.cj-pagination .wp-block-query-pagination-previous,
.cj-pagination .wp-block-query-pagination-next { margin: 0 !important; color: var(--cj-olive); transition: background-color var(--cj-transition), color var(--cj-transition); }
/* WordPress écrit « et » : on les remplace par un chevron fin dessiné en CSS */
.cj-pagination .wp-block-query-pagination-previous-arrow,
.cj-pagination .wp-block-query-pagination-next-arrow {
	display: block;
	width: 9px;
	height: 9px;
	margin: 0 !important;
	font-size: 0;
	border-top: 1.5px solid currentColor;
	border-right: 1.5px solid currentColor;
}
.cj-pagination .wp-block-query-pagination-next-arrow { transform: translateX(-2px) rotate(45deg); }
.cj-pagination .wp-block-query-pagination-previous-arrow { transform: translateX(2px) rotate(-135deg); }
.cj-pagination a:hover { background: var(--cj-olive); border-color: var(--cj-olive); color: #fff; }

@media (max-width: 599px) {
	.wc-block-product-template.is-flex-container,
	ul.products { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
	.wc-block-product-template.is-flex-container > .wc-block-product { width: auto !important; }
	.wc-block-product .wp-block-post-title,
	ul.products li.product .woocommerce-loop-product__title { font-size: 1.15rem !important; margin-inline: .6rem !important; }
	.wc-block-product .wc-block-components-product-button__button,
	ul.products li.product .button { margin-inline: .6rem; padding-inline: .5rem !important; font-size: .75rem !important; letter-spacing: .06em; }
}

/* ==========================================================================
   WooCommerce — fiche produit
   ========================================================================== */

.cj-produit__haut {
	gap: clamp(1.5rem, 5vw, 4.5rem) !important;
	align-items: flex-start !important;
}

.cj-produit__visuel .woocommerce-product-gallery {
	position: sticky;
	top: 9rem;
	margin: 0;
	padding: clamp(1rem, 4vw, 3rem);
	background: radial-gradient(ellipse at 50% 62%, #fff 0%, var(--cj-creme) 80%);
	border: var(--cj-filet);
}

.cj-produit__visuel .woocommerce-product-gallery img {
	max-height: 72vh;
	width: 100%;
	object-fit: contain;
	mix-blend-mode: multiply;
}

.cj-produit__visuel .flex-control-thumbs {
	display: flex;
	gap: .5rem;
	margin: 1rem 0 0;
	padding: 0;
	list-style: none;
}

.cj-produit__visuel .flex-control-thumbs li { width: 4.5rem; cursor: pointer; }
.cj-produit__visuel .woocommerce-product-gallery__trigger { display: none; }

.cj-produit__categorie {
	margin-bottom: .25rem;
	font-family: var(--cj-etiquette);
	font-size: .95rem;
	font-weight: 500;
	letter-spacing: .24em;
	text-transform: uppercase;
}

.cj-produit__categorie a { color: var(--cj-sauge); text-decoration: none; }

.cj-produit__titre {
	margin: 0 0 .75rem;
	font-size: var(--wp--preset--font-size--titre-geant);
}

.cj-produit__accroche {
	margin-bottom: 1.25rem;
	font-family: var(--cj-titre);
	font-size: 1.3rem;
	font-style: italic;
	line-height: 1.45;
	color: #535947;
}

.cj-produit__accroche p { margin: 0; }

.cj-produit__prix,
.cj-produit__prix .amount {
	font-family: var(--cj-etiquette);
	font-size: 1.8rem;
	font-weight: 500;
	color: var(--cj-olive);
}

.cj-produit__achat form.cart {
	margin: 1.5rem 0;
	padding: 1.5rem;
	background: var(--cj-creme);
	border: var(--cj-filet);
}

.cj-produit__achat .wp-block-woocommerce-add-to-cart-form form.variations_form.cart { display: block; }

.cj-produit__achat form.cart table.variations {
	display: block;
	width: 100%;
	margin: 0 0 .75rem;
	border-collapse: collapse;
}

.cj-produit__achat table.variations :where(tbody, tr) { display: block; }
.cj-produit__achat table.variations :where(th, td) { display: block; padding: 0; text-align: left; }

.cj-produit__achat table.variations th.label {
	margin-bottom: .35rem;
	font-family: var(--cj-etiquette);
	font-size: .9rem;
	font-weight: 500;
	letter-spacing: .18em;
	text-transform: uppercase;
	color: var(--cj-gris);
}

.cj-produit__achat form.cart table.variations td.value { width: 100%; margin-bottom: 1.1rem; padding: 0; }
.cj-produit__achat form.cart table.variations tr:last-child td.value { margin-bottom: 0; }

/* WooCommerce impose une hauteur fixe (3em) qui coupe le texte : on la neutralise. */
.cj-produit__achat form.cart table.variations td.value select {
	display: block;
	width: 100%;
	min-width: 0;
	max-width: none;
	height: auto;
	min-height: 3rem;
	margin: 0;
	padding: .75rem 2.75rem .75rem 1rem;
	border: 1px solid #cdc7ae;
	background-color: #fff;
	background-position: right 1rem center;
	color: var(--cj-encre);
	font-family: var(--cj-texte);
	font-size: 1rem;
	font-weight: 500;
	line-height: 1.4;
	cursor: pointer;
}

.cj-produit__achat form.cart table.variations td.value select:hover { border-color: var(--cj-olive); }

.cj-produit__achat .reset_variations {
	display: inline-block;
	margin-top: .5rem;
	font-size: .8125rem;
	color: var(--cj-gris);
}

.cj-produit__achat .woocommerce-variation-price .price {
	display: block;
	margin-bottom: .5rem;
	font-family: var(--cj-etiquette);
	font-size: 1.6rem;
	font-weight: 500;
	color: var(--cj-olive);
}

.cj-produit__achat .stock { margin: 0 0 1rem; font-size: .875rem; color: var(--cj-olive); }
.cj-produit__achat .stock.out-of-stock { color: #8a2b2b; }

.cj-produit__achat .woocommerce-variation-add-to-cart,
.cj-produit__achat form.cart:not(.variations_form) {
	display: flex;
	flex-wrap: wrap;
	align-items: stretch;
	gap: .75rem;
}

.cj-produit__achat .quantity .qty {
	width: 5rem;
	height: 100%;
	min-height: 3.1rem;
	text-align: center;
}

.cj-produit__achat .single_add_to_cart_button {
	flex: 1 1 12rem;
	min-height: 3.1rem;
	padding: .9rem 1.5rem;
	border: 0;
	border-radius: 0;
	background: var(--cj-olive);
	color: #fff;
	font-family: var(--cj-etiquette);
	font-size: 1rem;
	font-weight: 500;
	letter-spacing: .18em;
	text-transform: uppercase;
	cursor: pointer;
	transition: background var(--cj-transition);
}

.cj-produit__achat .single_add_to_cart_button:hover { background: var(--cj-bronze); }
.cj-produit__achat .single_add_to_cart_button.disabled { opacity: .45; cursor: not-allowed; }

.cj-produit__garanties {
	margin: 0;
	padding: 0;
	list-style: none;
	font-size: .875rem;
	color: var(--cj-gris);
}

.cj-produit__garanties li {
	position: relative;
	padding: .55rem 0 .55rem 1.6rem;
	border-top: var(--cj-filet);
}

.cj-produit__garanties li::before {
	content: "";
	position: absolute;
	top: 1.05rem;
	left: .2rem;
	width: .55rem;
	height: .3rem;
	border-left: 2px solid var(--cj-olive);
	border-bottom: 2px solid var(--cj-olive);
	transform: rotate(-45deg);
}

.cj-produit__detail {
	margin-top: var(--wp--preset--spacing--50) !important;
	padding-top: var(--wp--preset--spacing--40);
	border-top: var(--cj-filet);
}

.cj-produit__detail-titre { text-align: center; }

/* Fiche technique d'un vin (générée à l'import) */
.cj-fiche-vin {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 300px), 1fr));
	gap: 1px;
	margin: 1.5rem 0 0;
	background: var(--wp--preset--color--ligne);
	border: var(--cj-filet);
}

.cj-fiche-vin > div { padding: 1.25rem 1.5rem; background: #fff; }

.cj-fiche-vin dt {
	margin-bottom: .35rem;
	font-family: var(--cj-etiquette);
	font-size: .9rem;
	font-weight: 500;
	letter-spacing: .2em;
	text-transform: uppercase;
	color: var(--cj-olive);
}

.cj-fiche-vin dd { margin: 0; }

.cj-produit__suggestions { margin-top: var(--wp--preset--spacing--50) !important; }

@media (max-width: 781px) {
	.cj-produit__visuel .woocommerce-product-gallery { position: static; }
	.cj-produit__visuel .woocommerce-product-gallery img { max-height: 55vh; }
}

/* ==========================================================================
   WooCommerce — notices, panier, commande, compte
   ========================================================================== */

.woocommerce-message,
.woocommerce-info,
.woocommerce-error,
.wc-block-components-notice-banner {
	margin: 0 0 1.5rem !important;
	padding: 1rem 1.25rem !important;
	border: var(--cj-filet) !important;
	border-left: 3px solid var(--cj-olive) !important;
	border-radius: 0 !important;
	background: var(--cj-creme) !important;
	list-style: none;
}

.woocommerce-error,
.wc-block-components-notice-banner.is-error { border-left-color: #8a2b2b !important; }

.wc-block-cart,
.wc-block-checkout { margin-top: 1rem; }

.wc-block-components-sidebar .wc-block-components-panel,
.wc-block-components-totals-wrapper { border-color: var(--wp--preset--color--ligne) !important; }

.wc-block-components-button:not(.is-link) {
	border-radius: 0 !important;
	background: var(--cj-olive) !important;
	color: #fff !important;
	font-family: var(--cj-etiquette) !important;
	font-weight: 500;
	letter-spacing: .14em;
	text-transform: uppercase;
}

.wc-block-components-button:not(.is-link):hover { background: var(--cj-bronze) !important; }

.wc-block-components-text-input input,
.wc-block-components-combobox .components-combobox-control__input,
.wc-blocks-components-select__select { border-radius: 0 !important; }

.woocommerce-account .woocommerce {
	display: grid;
	grid-template-columns: minmax(0, 14rem) minmax(0, 1fr);
	gap: clamp(1.5rem, 4vw, 3rem);
}

.woocommerce-account .woocommerce > :only-child,
.woocommerce-account .woocommerce > .woocommerce-notices-wrapper { grid-column: 1 / -1; }

.woocommerce-MyAccount-navigation ul { margin: 0; padding: 0; list-style: none; border-top: var(--cj-filet); }
.woocommerce-MyAccount-navigation li { border-bottom: var(--cj-filet); }
.woocommerce-MyAccount-navigation a { display: block; padding: .7rem 0; color: inherit; text-decoration: none; }
.woocommerce-MyAccount-navigation .is-active a { color: var(--cj-olive); font-weight: 600; }

.woocommerce-account .u-columns { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 280px), 1fr)); gap: 2rem; }
.woocommerce-account .u-columns > div { width: auto !important; float: none !important; }

.woocommerce form .form-row { margin: 0 0 1rem; }
.woocommerce form .form-row label { display: block; margin-bottom: .35rem; font-size: .875rem; font-weight: 500; }
.woocommerce form .form-row .input-text { width: 100%; }

.woocommerce :where(button.button, a.button, input.button) {
	padding: .8rem 1.4rem;
	border: 0;
	border-radius: 0;
	background: var(--cj-olive);
	color: #fff;
	font-family: var(--cj-etiquette);
	font-size: .95rem;
	font-weight: 500;
	letter-spacing: .14em;
	text-transform: uppercase;
	text-decoration: none;
	cursor: pointer;
}

.woocommerce :where(button.button, a.button, input.button):hover { background: var(--cj-bronze); color: #fff; }

@media (max-width: 781px) {
	.woocommerce-account .woocommerce { grid-template-columns: 1fr; }
}

/* ==========================================================================
   Impression
   ========================================================================== */

@media print {
	.fbhf-header, .fbhf-footer, .fbbd, .cj-produit__suggestions, form.cart { display: none !important; }
	body { background: #fff; }
}
