/*
Theme Name: Aupilhac Domaine
Theme URI: https://www.aupilhac.com/
Author: FBInfo
Author URI: https://fbinfo.info/
Description: Thème vitrine du Domaine d'Aupilhac (Montpeyroux) : thème à blocs léger, polices hébergées sur le site, pensé pour FB Page Builder, FB Header & Footer et Vertex Gallery.
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: aupilhac-domaine
*/

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

:root {
	--dom-nuit: var(--wp--preset--color--nuit);
	--dom-or: var(--wp--preset--color--or);
	--dom-or-clair: var(--wp--preset--color--or-clair);
	--dom-vin: var(--wp--preset--color--vin);
	--dom-creme: var(--wp--preset--color--creme);
	--dom-titre: var(--wp--preset--font-family--titre);
	--dom-texte: var(--wp--preset--font-family--texte);
	--dom-entete: 92px;
	--dom-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; }

/* Pas d'espace automatique entre en-tête, contenu et pied de page (il laissait une barre en haut des grandes photos) */
.wp-site-blocks > * { margin-block-start: 0; }

strong, b { font-weight: 600; }

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

::selection { background: var(--dom-vin); color: #fff; }

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

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

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

/*
 * Pages sans grande image : l'en-tête est fixe lui aussi, et sa hauteur déployée est réservée en haut
 * de la page (mesurée par domaine.js). Sans cela, son compactage au défilement raccourcit la page,
 * qui remonte et le redéploie : l'en-tête « vibre ».
 */
body.dom-sans-visuel:not(:has(.fbbd)) .fbhf-header {
	position: fixed;
	left: 0;
	right: 0;
}
body.dom-sans-visuel:not(:has(.fbbd)) { padding-top: var(--dom-entete-plein, 90px); }

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

/* … puis devient opaque dès qu'on fait défiler la page. */
body.dom-visuel.dom-defile .fbhf-header,
body.dom-visuel .fbhf-header:has(.fbpb-nav.is-open) {
	background: rgb(22 18 15 / 96%);
	box-shadow: 0 1px 0 rgb(180 149 95 / 25%);
}

.fbhf-header .fbpb-section { transition: padding var(--dom-transition); }
body.dom-defile .fbhf-header .fbpb-section { padding-top: 10px !important; padding-bottom: 10px !important; }

.fbhf-header .fbpb-logo img {
	transition: max-height var(--dom-transition);
}
body.dom-defile .fbhf-header .fbpb-logo img { max-height: 46px !important; }

/* Liens du menu : petites capitales espacées, filet doré au survol */
.fbhf-header .fbpb-menu > li > a {
	position: relative;
	display: inline-block;
	padding: 8px 0;
	font-family: var(--dom-texte);
	font-size: 11.5px;
	font-weight: 500;
	letter-spacing: .16em;
	text-transform: uppercase;
	color: #fff;
	white-space: nowrap;
}

.fbhf-header .fbpb-menu > li > a::after {
	content: "";
	position: absolute;
	left: 0;
	right: 0;
	bottom: 2px;
	height: 1px;
	background: var(--dom-or);
	transform: scaleX(0);
	transform-origin: left;
	transition: transform var(--dom-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: 230px;
	padding: 14px 0;
	background: var(--dom-nuit);
	border-top: 1px solid var(--dom-or);
	border-radius: 0;
	box-shadow: 0 24px 40px -18px rgb(0 0 0 / 60%);
}

.fbhf-header .fbpb-menu .sub-menu a {
	padding: 9px 24px;
	font-size: 14px;
	font-weight: 300;
	letter-spacing: .04em;
	color: rgb(255 255 255 / 82%);
	transition: color var(--dom-transition), padding var(--dom-transition);
}

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

/* Bouton « Boutique » de l'en-tête */
.fbhf-header .fbpb-button { white-space: nowrap; }

/* Écrans moyens : menu un peu plus serré */
@media (max-width: 1600px) {
	.fbhf-header .fbpb-menu { gap: 20px !important; }
	.fbhf-header .fbpb-menu > li > a { letter-spacing: .13em; }
}
@media (max-width: 1440px) {
	.fbhf-header .fbpb-menu { gap: 16px !important; }
	.fbhf-header .fbpb-menu > li > a { letter-spacing: .1em; font-size: 11px; }
}

/* Menu replié (« hamburger ») jusqu'aux écrans de 1365 px */
@media (max-width: 1365px) {
	.fbhf-header .fbpb-nav--collapse { flex-wrap: wrap; justify-content: flex-end !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(--dom-nuit);
		border-top: 1px solid rgb(180 149 95 / 35%);
		box-shadow: 0 24px 40px -18px rgb(0 0 0 / 60%);
	}
	.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-family: var(--dom-titre);
		font-size: 26px;
		font-weight: 400;
		letter-spacing: .02em;
		text-transform: none;
	}
	.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 (domaine.js) */
	.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(180 149 95 / 40%);
		box-shadow: none;
		background: transparent;
	}
	.fbhf-header .fbpb-nav--collapse .fbpb-menu li.dom-sous-ouvert > .sub-menu { display: block !important; }
	.fbhf-header .fbpb-nav--collapse .fbpb-menu .sub-menu a { padding: 6px 0; font-size: 13px; letter-spacing: .14em; text-transform: uppercase; white-space: normal; }
	.fbhf-header .fbpb-nav--collapse .fbpb-menu .sub-menu a:hover { padding-left: 6px; }

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

/* Bouton chevron des sous-menus (menu mobile uniquement) */
.fbhf-header .dom-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 .dom-sous-bouton::before {
	content: "";
	width: 10px;
	height: 10px;
	margin-top: -5px;
	border-right: 1px solid currentColor;
	border-bottom: 1px solid currentColor;
	transform: rotate(45deg);
	transition: transform var(--dom-transition), margin var(--dom-transition);
}
.fbhf-header li.dom-sous-ouvert > .dom-sous-bouton::before { transform: rotate(-135deg); margin-top: 5px; }
.fbhf-header .dom-sous-bouton:hover,
.fbhf-header .dom-sous-bouton:focus { background: transparent; color: var(--dom-or-clair); }

@media (max-width: 767px) {
	.fbhf-header .dom-entete-boutique { display: none; }
}

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

.fbhf-footer { background: var(--dom-nuit); color: rgb(255 255 255 / 72%); }

.fbhf-footer a { color: rgb(255 255 255 / 80%); text-decoration: none; transition: color var(--dom-transition); }
.fbhf-footer a:hover { color: var(--dom-or-clair); }

.fbhf-footer .fbpb-menu { gap: 10px; align-items: flex-start; }
.fbhf-footer .fbpb-menu a { font-size: 14px; font-weight: 300; }
.fbhf-footer .fbpb-menu a:hover { text-decoration: none; }
.fbhf-footer .fbpb-il-icon { color: var(--dom-or); }

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

/* Colonnes du pied de page empilées : on les espace */
@media (max-width: 1024px) {
	.fbhf-footer .fbpb-section:not(.dom-pied-bas) .fbpb-column { margin-bottom: 44px; }
}

/* 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.dom-page {
	padding-top: var(--wp--preset--spacing--50);
	padding-bottom: var(--wp--preset--spacing--60);
}

.dom-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.dom-page:has(.fbpb-fullwidth) {
	padding: 0 !important;
	max-width: none !important;
}
main.dom-page:has(.fbpb-fullwidth) > .wp-block-post-content,
main.dom-page .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.dom-page .wp-block-post-content:has(> .fbpb-fullwidth) { margin-top: 0; }
main.dom-page > .wp-block-post-content:has(> .fbpb-fullwidth) ~ * { display: none; }

/* Pages sans grande image : on laisse la place de l'en-tête */
body.dom-sans-visuel main.dom-page { padding-top: var(--wp--preset--spacing--50); }

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

/* Titres du builder : Cormorant fin, comme sur les étiquettes */
:where(.fbpb-page) :where(h1, h2, h3, h4).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(--dom-titre);
	font-weight: 400;
}

: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) { font-weight: 300; line-height: 1.8; }

/* Surtitre : petites capitales dorées et très espacées, avec un filet */
.fbpb-page .dom-surtitre .fbpb-text p {
	display: inline-flex;
	align-items: center;
	gap: 14px;
	margin: 0;
	font-family: var(--dom-texte);
	font-size: 11px;
	font-weight: 500;
	line-height: 1.5;
	letter-spacing: .38em;
	text-transform: uppercase;
	color: var(--dom-or);
}

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

.dom-surtitre.dom-clair .fbpb-text p { color: var(--dom-or-clair); }

/* Grand titre éditorial */
.dom-titre .fbpb-heading {
	font-size: clamp(2.4rem, 5vw, 4.25rem);
	font-weight: 300 !important;
	line-height: 1.04;
	letter-spacing: .005em;
}

.dom-titre .fbpb-heading em,
.dom-titre-italique .fbpb-heading { font-style: italic; }

/* Texte d'introduction, un cran plus grand */
.dom-chapeau .fbpb-text,
.dom-chapeau .fbpb-text p {
	font-family: var(--dom-titre);
	font-size: clamp(1.35rem, 2.2vw, 1.75rem) !important;
	font-weight: 400 !important;
	line-height: 1.45 !important;
}

/* Héros plein écran */
.dom-hero {
	min-height: 100vh;
	min-height: 100svh;
	justify-content: flex-end;
	color: #fff;
	overflow: hidden;
}

.dom-hero::after {
	content: "";
	position: absolute;
	inset: 0;
	background:
		linear-gradient(to top, rgb(12 9 7 / 78%) 0%, rgb(12 9 7 / 20%) 45%, rgb(12 9 7 / 35%) 100%);
	pointer-events: none;
}

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

.dom-hero--page { min-height: 72vh; min-height: 72svh; }
.dom-hero--court { min-height: 58vh; min-height: 58svh; }

.dom-hero .dom-hero__titre .fbpb-heading {
	font-size: clamp(3rem, 8.5vw, 7.75rem);
	font-weight: 300 !important;
	line-height: .95;
	letter-spacing: -.005em;
	color: #fff;
	text-wrap: balance;
}

.dom-hero--page .dom-hero__titre .fbpb-heading { font-size: clamp(2.75rem, 7vw, 6rem); }

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

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

@keyframes dom-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 du domaine : rectangles fins, capitales espacées */
.fbpb-page .fbpb-button,
.fbhf-header .fbpb-button,
.fbhf-footer .fbpb-button {
	border-radius: 0;
	font-family: var(--dom-texte);
	font-weight: 500;
	letter-spacing: .24em;
	text-transform: uppercase;
	transition: background-color var(--dom-transition), color var(--dom-transition), border-color var(--dom-transition);
}

/* Groupe de boutons (héros, appels à l'action) */
.dom-boutons { display: flex; flex-wrap: wrap; gap: 14px; }
.dom-boutons--centre { justify-content: center; }

.dom-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 52px;
	padding: 16px 34px;
	border: 1px solid var(--dom-vin);
	background: var(--dom-vin);
	color: #fff !important;
	font-family: var(--dom-texte);
	font-size: 11px;
	font-weight: 500;
	letter-spacing: .26em;
	text-transform: uppercase;
	text-decoration: none !important;
	transition: background-color var(--dom-transition), color var(--dom-transition), border-color var(--dom-transition);
}

.dom-btn:hover { background: var(--dom-or); border-color: var(--dom-or); color: var(--dom-nuit) !important; }

.dom-btn--clair { background: transparent; border-color: rgb(255 255 255 / 70%); }
.dom-btn--sombre { background: var(--dom-nuit); border-color: var(--dom-nuit); }
.dom-btn--clair:hover { background: #fff; border-color: #fff; color: var(--dom-nuit) !important; }

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

.dom-btn--trait { background: transparent; border-color: var(--wp--preset--color--encre); color: var(--wp--preset--color--encre) !important; }
.dom-btn--trait:hover { background: var(--wp--preset--color--encre); border-color: var(--wp--preset--color--encre); color: #fff !important; }

/*
 * Chevron « › » dans les boutons et liens d'action : dessiné en masque, il prend la couleur du texte
 * et glisse légèrement au survol. Vers le bas pour les liens qui descendent dans la page (#ancre).
 */
:root {
	--dom-chevron: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M9 5l7 7-7 7'/%3E%3C/svg%3E");
}

.dom-btn::after,
.fbpb-button::after,
.fbpb-post-more::after,
.fbcf button[type="submit"]::after {
	content: "";
	display: inline-block;
	flex: none;
	width: .95em;
	height: .95em;
	margin-left: .75em;
	vertical-align: -.12em;
	background-color: currentColor;
	-webkit-mask: var(--dom-chevron) center / contain no-repeat;
	mask: var(--dom-chevron) center / contain no-repeat;
	transition: transform var(--dom-transition);
}

.dom-btn:hover::after,
.fbpb-button:hover::after,
.fbpb-post-more:hover::after,
.fbcf button[type="submit"]:hover::after { transform: translateX(4px); }

.dom-btn[href^="#"]::after,
.fbpb-button[href^="#"]::after { transform: rotate(90deg); }
.dom-btn[href^="#"]:hover::after,
.fbpb-button[href^="#"]:hover::after { transform: rotate(90deg) translateX(3px); }

/* Les ancres (#gite-aupilhac, #trailade…) ne passent pas sous l'en-tête fixe (hauteurs mesurées par domaine.js) */
.fbpb-section[id] { scroll-margin-top: var(--dom-entete-h, 80px); }

/* Barre des rubriques de la galerie, collée juste sous l'en-tête */
.dom-ancres-section { position: sticky; top: var(--dom-entete-h, 70px); z-index: 50; }
body.admin-bar .dom-ancres-section { top: calc(var(--dom-entete-h, 70px) + var(--wp-admin--admin-bar--height, 32px)); }
@media (min-width: 768px) {
	body:has(.dom-ancres-section) .fbpb-section[id] { scroll-margin-top: calc(var(--dom-entete-h, 70px) + var(--dom-ancres-h, 60px)); }
}
.dom-ancres {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 8px 36px;
}
.dom-ancres a {
	padding: 4px 0;
	border-bottom: 1px solid transparent;
	color: rgb(255 255 255 / 80%);
	font-size: 11px;
	font-weight: 500;
	letter-spacing: .26em;
	text-transform: uppercase;
	text-decoration: none;
	transition: color var(--dom-transition), border-color var(--dom-transition);
}
.dom-ancres a:hover { color: var(--dom-or-clair); border-bottom-color: var(--dom-or); }
@media (max-width: 767px) {
	.dom-ancres-section { position: static; }
	.dom-ancres { gap: 6px 22px; }
}

/* Équipements des gîtes */
.dom-equipements .fbpb-il { row-gap: 30px; }

/* Guillemet décoratif des citations */
.dom-guillemet {
	font-family: var(--dom-titre);
	font-size: 120px;
	line-height: .7;
	text-align: center;
	color: var(--dom-or);
	height: 60px;
}

.dom-lien .fbpb-button {
	padding: 6px 0 !important;
	border: 0 !important;
	border-bottom: 1px solid currentColor !important;
	background: transparent !important;
}

.dom-lien .fbpb-button:hover { color: var(--dom-or) !important; }

/* Image d'un bloc image + texte : pleine largeur de sa colonne (classe dom-cadre : plus de cadre décoratif) */
.dom-cadre .fbpb-image img,
.dom-zoom .fbpb-image img { display: block; width: 100%; }

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

/* Fond sombre : textes clairs, liens dorés */
.dom-sombre .fbpb-text a { color: var(--dom-or-clair); }

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

/* ==========================================================================
   Cartes (vins, terroirs, équipe)
   ========================================================================== */

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

.dom-carte:hover > .fbpb-column-inner {
	transform: translateY(-6px);
	box-shadow: 0 30px 50px -30px rgb(22 18 15 / 45%);
}

/* Bouteille sur fond crème */
.dom-bouteille .fbpb-image {
	display: grid;
	place-items: center;
	aspect-ratio: 3 / 4;
	padding: 28px 0 10px;
	/* pas de fond : la bouteille se pose directement sur la couleur de la section */
}

/*
 * Le mélange « produit » qui efface le fond blanc des photos de bouteilles a besoin d'une couleur
 * derrière l'image : on fait descendre la couleur de la section jusqu'à elle (invisible à l'œil).
 */
.fbpb-section:has(.dom-bouteille) > .fbpb-container,
.fbpb-section:has(.dom-bouteille) > .fbpb-container > .fbpb-row,
.fbpb-row > .fbpb-column:has(.dom-bouteille),
.fbpb-column:has(.dom-bouteille) > .fbpb-column-inner,
.dom-bouteille,
.dom-bouteille > .fbpb-widget-inner,
.dom-bouteille .fbpb-image { background-color: inherit; }

/* Même principe pour le carrousel « Nos cuvées » de l'accueil */
.fbpb-section:has(.dom-carrousel-vins) > .fbpb-container,
.fbpb-section:has(.dom-carrousel-vins) > .fbpb-container > .fbpb-row,
.fbpb-row > .fbpb-column:has(.dom-carrousel-vins),
.fbpb-column:has(.dom-carrousel-vins) > .fbpb-column-inner,
.dom-carrousel-vins,
.dom-carrousel-vins > .fbpb-widget-inner,
.dom-carrousel-vins .fbpb-slider,
.dom-carrousel-vins .fbpb-slider-viewport,
.dom-carrousel-vins .fbpb-slider-track,
.dom-carrousel-vins .fbpb-slide,
.dom-carrousel-vins .fbpb-logo-card,
.dom-carrousel-vins .fbpb-logo-card a { background-color: inherit; }
.dom-carrousel-vins .fbpb-logo-card img { mix-blend-mode: multiply; }

.dom-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);
}

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

.dom-appellation .fbpb-text {
	font-size: 11px !important;
	font-weight: 500 !important;
	letter-spacing: .3em;
	text-transform: uppercase;
	color: var(--dom-or) !important;
}

.dom-fiche .fbpb-text p { margin-bottom: .5em; }
.dom-fiche .fbpb-text strong {
	display: block;
	margin-top: .6em;
	font-size: 10.5px;
	font-weight: 600;
	letter-spacing: .26em;
	text-transform: uppercase;
	color: var(--dom-vin);
}

/* Portraits de l'équipe */
.dom-portrait .fbpb-image { overflow: hidden; }
.dom-portrait .fbpb-image img {
	display: block;
	width: 100%;
	aspect-ratio: 4 / 5;
	object-fit: cover;
	filter: grayscale(.35);
	transition: filter .8s ease, transform 1.2s cubic-bezier(.2, .6, .2, 1);
}
.dom-carte:hover .dom-portrait .fbpb-image img { filter: none; transform: scale(1.03); }

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

/* Compteurs */
.dom-chiffres .fbpb-counter-num {
	font-family: var(--dom-titre);
	font-weight: 300;
	line-height: 1;
}
.dom-chiffres .fbpb-counter-label {
	font-size: 11px;
	font-weight: 500;
	letter-spacing: .3em;
	text-transform: uppercase;
}

/* Frise chronologique */
.dom-frise .fbpb-tl-date { font-family: var(--dom-titre); font-weight: 300; }
.dom-frise .fbpb-tl-label {
	display: block;
	font-family: var(--dom-texte);
	font-size: 10.5px;
	font-weight: 500;
	letter-spacing: .3em;
	text-transform: uppercase;
	color: var(--dom-or);
}
.dom-frise .fbpb-tl-card { border-radius: 0; font-weight: 300; line-height: 1.75; }
.dom-frise .fbpb-tl-title { font-size: 1.6rem; margin: 0 0 .5em; }

/* Accordéon */
.dom-accordeon .fbpb-acc-item { border-left: 0; border-right: 0; border-top: 0; border-radius: 0; }
.dom-accordeon .fbpb-acc-label { font-family: var(--dom-titre); font-weight: 400; }

/* 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-size: 11px;
	font-weight: 500;
	letter-spacing: .26em;
	text-transform: uppercase;
	color: var(--dom-or);
}
.fbpb-page .fbpb-post-more {
	font-size: 11px;
	font-weight: 500;
	letter-spacing: .24em;
	text-transform: uppercase;
	text-decoration: none;
	border-bottom: 1px solid currentColor;
}

/* Carrousels : pastilles des flèches (la couleur du chevron reste celle réglée dans le builder) */
.fbpb-page .fbpb-slider button.fbpb-slider-btn { box-shadow: 0 6px 18px -8px rgb(22 18 15 / 45%); }
.fbpb-page .fbpb-slider button.fbpb-slider-btn svg { width: 18px; height: 18px; }

/* Carte Google : un peu désaturée pour rester dans la palette */
.fbpb-page .fbpb-map iframe { filter: grayscale(.6) contrast(1.05); 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(--wp--preset--color--gris) !important;
	font-family: var(--dom-texte);
	font-size: 11.5px !important;
	font-weight: 500;
	letter-spacing: .24em;
	text-transform: uppercase;
	box-shadow: none !important;
}

.fbpb-page .vg-filter-btn:hover { color: var(--dom-vin) !important; }
.fbpb-page .vg-filter-btn.active { color: var(--wp--preset--color--encre) !important; border-bottom-color: var(--dom-or) !important; }

.fbpb-page .vg-loadmore-btn,
.fbpb-page .vg-page-btn {
	border-radius: 0 !important;
	font-size: 11.5px !important;
	font-weight: 500;
	letter-spacing: .24em;
	text-transform: uppercase;
}

.fbpb-page .vg-loadmore-btn {
	padding: 15px 34px !important;
	border: 1px solid var(--wp--preset--color--encre) !important;
	background: transparent !important;
	color: var(--wp--preset--color--encre) !important;
}

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

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

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

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

.fbcf label {
	font-size: 11px;
	font-weight: 500;
	letter-spacing: .24em;
	text-transform: uppercase;
	color: var(--wp--preset--color--gris);
}

.fbcf button[type="submit"],
.fbcf .fbcf-submit {
	border-radius: 0 !important;
	padding: 16px 38px !important;
	background: var(--dom-vin) !important;
	color: #fff !important;
	font-size: 11.5px !important;
	font-weight: 500 !important;
	letter-spacing: .26em !important;
	text-transform: uppercase;
	border: 0 !important;
	transition: background-color var(--dom-transition);
}

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

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

.dom-bandeau {
	position: relative;
	display: flex;
	align-items: flex-end;
	min-height: 62vh;
	min-height: 62svh;
	margin: 0 !important;
	padding-bottom: var(--wp--preset--spacing--50) !important;
	color: #fff;
}

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

.dom-bandeau h1 { margin: .2em 0 0; color: #fff; font-weight: 300; text-wrap: balance; }

.dom-surtitre-bloc {
	margin: 0;
	font-size: 11px;
	font-weight: 500;
	letter-spacing: .38em;
	text-transform: uppercase;
	color: var(--dom-or-clair);
}

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

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

.dom-actu .wp-block-post-featured-image { overflow: hidden; margin-bottom: 1.25rem; }
.dom-actu .wp-block-post-featured-image img { aspect-ratio: 4 / 3; object-fit: cover; transition: transform 1.2s cubic-bezier(.2, .6, .2, 1); }
.dom-actu:hover .wp-block-post-featured-image img { transform: scale(1.04); }
.dom-actu .wp-block-post-date {
	font-size: 11px;
	font-weight: 500;
	letter-spacing: .26em;
	text-transform: uppercase;
	color: var(--dom-or);
}
.dom-actu .wp-block-post-title { margin: .35rem 0 .6rem; font-size: 1.75rem; line-height: 1.15; }
.dom-actu .wp-block-post-excerpt { font-size: .95rem; color: var(--wp--preset--color--gris); }

.dom-article { padding-top: var(--wp--preset--spacing--50); padding-bottom: var(--wp--preset--spacing--60); }
.dom-article .wp-block-post-content > p:first-child { font-family: var(--dom-titre); font-size: 1.6rem; line-height: 1.45; }

.dom-article__retour a {
	font-size: 11px;
	font-weight: 500;
	letter-spacing: .26em;
	text-transform: uppercase;
	text-decoration: none;
	border-bottom: 1px solid currentColor;
}

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

/* ==========================================================================
   Page 404
   ========================================================================== */

.dom-404 { min-height: 60vh; display: grid; place-content: center; text-align: center; }
.dom-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.dom-visuel:has(.fbbd) .fbhf-header { position: sticky; background: var(--dom-nuit); }
