/*
Theme Name: Hotel de France
Description: A custom block theme.
Requires at least: 6.7
Tested up to: 6.9
Requires PHP: 7.2
Version: 0.1.3
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: hotel-de-france
Tags: full-site-editing, block-patterns, block-styles, wide-blocks, accessibility-ready, style-variations
*/

/* === variables === */
:root {
	--hdf-noir:       #313533;
	--hdf-creme:      #efe8d8;
	--hdf-or:         #c48934;
	--hdf-rouge:      #bc4237;
	--hdf-bleu:       #3f60a4;
	--hdf-vert:       #21562f;
	--hdf-marron:     #5b270c;
	--hdf-blanc:      #FFFFFF;
	--hdf-header-h:   80px;
	--hdf-transition: 0.35s ease;
	--hdf-shadow:     0 4px 32px rgba(49,53,51,0.18);
}

/* === reset === */
*, *::before, *::after { box-sizing: border-box; }
body { margin: 0; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; }
img { max-width: 100%; height: auto; display: block; }
a { text-decoration: none; color: inherit; }
a:hover { color: var(--hdf-or); }
ul { list-style: none; margin: 0; padding: 0; }
.wp-site-blocks { padding-top: 0 !important; padding-bottom: 0 !important; }
.wp-site-blocks > * + * { margin-block-start: 0; }

html {
	scroll-behavior: smooth;
}

/* typography helpers removed — now expressed as native Gutenberg block attributes */

/* === header === */

.hdf-header {
	position: sticky;
	top: 0;
	z-index: 100;
	height: var(--hdf-header-h);
	padding: 0 2.5rem;
	background: var(--hdf-noir);
	border-bottom: 1px solid rgba(196, 137, 52, 0.2);
	transition: box-shadow var(--hdf-transition);
}

.hdf-header.scrolled {
	box-shadow: 0 2px 20px rgba(49, 53, 51, 0.4);
}

/* =========================================================
   HEADER — RÉPARTITION DES TROIS ZONES
   ========================================================= */

.hdf-header__inner {
	display: grid !important;
	/* Les zones latérales suivent leur contenu ; la navigation reçoit tout l’espace restant. */
	grid-template-columns: auto minmax(0, 1fr) auto;
	align-items: center;
	gap: 1rem;
	width: 100%;
	height: 100%;
	margin: 0;
}

/* Logo à gauche */
.hdf-header__brand {
	display: flex;
	gap: 0.5rem;
	min-width: 0;
}

/* Navigation parfaitement centrée */
.hdf-nav {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 0;
	min-width: 0;
}

/* Boutons et langue à droite */
.hdf-header__actions {
	display: flex !important;
	align-items: center !important;
	justify-content: flex-end !important;
	flex-wrap: nowrap !important;
	gap: 0.75rem !important;
	min-width: 0;
	margin: 0 !important;
}

.hdf-header__actions > * {
	flex: 0 0 auto;
	margin-block-start: 0 !important;
	margin-block-end: 0 !important;
}

/* Le logo lui-même ne prend pas toute la colonne */
.hdf-header__logo {
	flex: 0 0 auto;
	margin: 0;
}


/* Neutralisation des espacements automatiques Gutenberg */
.hdf-header__inner > *,
.hdf-header__actions > * {
	margin-block-start: 0 !important;
	margin-block-end: 0 !important;
}

/* Logo */

.hdf-header__logo a {
	display: flex;
	align-items: center;
	gap: 0.75rem;
	text-decoration: none;
}

.hdf-header__logo-img {
	display: block;
	flex-shrink: 0;
	width: auto;
	max-width: none;
	height: 44px;
}

.hdf-header__logo-img--full {
	display: block;
}

.hdf-header__logo-img--icon {
	display: none;
	height: 36px;
}

/* Navigation principale */



.hdf-nav__item {
	position: relative;
}

.hdf-nav__link {
	display: flex;
	align-items: center;
	gap: 0.3rem;
	height: var(--hdf-header-h);
	padding: 0 1rem;
	color: var(--hdf-creme);
	font-family: var(
		--wp--preset--font-family--ibm-plex-sans,
		"IBM Plex Sans",
		Arial,
		sans-serif
	);
	font-size: 0.8rem;
	font-weight: 600;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	white-space: nowrap;
	cursor: pointer;
	transition: color var(--hdf-transition);
}

.hdf-nav__link:hover,
.hdf-nav__item:hover > .hdf-nav__link {
	color: var(--hdf-or);
}

/* Page courante */
.hdf-nav__link.is-current,
.hdf-nav__item--current > .hdf-nav__link {
	position: relative;
	color: var(--hdf-or);
}

.hdf-nav__link.is-current::after {
	content: "";
	position: absolute;
	right: 1rem;
	bottom: 0;
	left: 1rem;
	height: 2px;
	background: var(--hdf-or);
}

.hdf-mega__item.is-current .hdf-mega__item-title {
	color: var(--hdf-or);
}

.hdf-nav__link-arrow {
	width: 10px;
	height: 10px;
	opacity: 0.6;
	transition: transform var(--hdf-transition);
}

.hdf-nav__item:hover > .hdf-nav__link .hdf-nav__link-arrow {
	transform: rotate(180deg);
}

/* Groupe de boutons Gutenberg */
.hdf-header__actions .hdf-btn-group {
	display: flex;
	align-items: stretch;
	flex-wrap: nowrap;
	gap: 0.5rem;
	margin: 0;
}

.hdf-header__actions .wp-block-button {
	margin: 0;
}

/* Base commune aux boutons du header */
.hdf-header__actions .wp-block-button__link {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 36px;
	padding: 0 1.25rem;
	border: 1px solid transparent;
	border-radius: 0;
	box-shadow: none;
	font-family: var(
		--wp--preset--font-family--jost,
		"Jost",
		Arial,
		sans-serif
	);
	font-size: 0.72rem;
	font-weight: 500;
	line-height: 1;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	text-decoration: none;
	white-space: nowrap;
}

/* Réserver */
.hdf-header__actions .hdf-btn--reserver .wp-block-button__link {
	background: var(--hdf-rouge);
	color: var(--hdf-blanc);
}

.hdf-header__actions .hdf-btn--reserver .wp-block-button__link:hover,
.hdf-header__actions .hdf-btn--reserver .wp-block-button__link:focus-visible {
	background: #a8372d;
	color: var(--hdf-blanc);
}



/* Offrir */
.hdf-header__actions .hdf-btn--offrir .wp-block-button__link {
	background: rgba(196, 137, 52, 0.12);
	color: var(--hdf-or);
	border-color: rgba(196, 137, 52, 0.65);
}

.hdf-header__actions .hdf-btn--offrir .wp-block-button__link:hover,
.hdf-header__actions .hdf-btn--offrir .wp-block-button__link:focus-visible {
	background: rgba(196, 137, 52, 0.22);
	color: var(--hdf-or);
	border-color: var(--hdf-or);
}

/* Le bouton cadeau ne revient que lorsque le header dispose réellement d’assez de place. */
@media (max-width: 1700px) {
	.hdf-header__actions .hdf-btn--offrir {
		display: none;
	}
}

/* Palier desktop intermédiaire : compacter progressivement les trois zones du header. */
@media (min-width: 1201px) and (max-width: 1700px) {
	.hdf-header {
		padding-right: 1.5rem;
		padding-left: 1.5rem;
	}

	.hdf-header__inner {
		gap: 0.75rem;
	}

	.hdf-header__logo-img--full {
		height: 38px;
	}

	.hdf-nav__link {
		padding-right: 0.65rem;
		padding-left: 0.65rem;
		font-size: 0.74rem;
		letter-spacing: 0.06em;
	}

	.hdf-header__actions .wp-block-button__link {
		padding-right: 1rem;
		padding-left: 1rem;
		font-size: 0.68rem;
	}
}

/* Sélecteur de langue */
.hdf-header__actions .hdf-lang-switcher {
	display: flex;
	align-items: center;
	margin: 0;
	padding: 0;
	border: 0;
	background: none;
}

.hdf-lang-switcher ul {
	display: flex;
	align-items: center;
	margin: 0;
	padding: 0;
	list-style: none;
}

.hdf-lang-switcher li {
	margin: 0;
	padding: 0;
}

.hdf-lang-switcher a {
	display: flex;
	align-items: center;
	padding: 0;
	line-height: 0;
}

.hdf-lang-switcher img {
	display: block;
	width: 24px;
	height: auto;
}

.hdf-nav--en {
	display: none;
}

html[lang^="en"] .hdf-nav--fr {
	display: none;
}

html[lang^="en"] .hdf-nav--en {
	display: flex;
}

/* Français : masquer les boutons anglais */
html[lang^="fr"] .hdf-actions-en {
	display: none !important;
}

/* Anglais : masquer les boutons français */
html[lang^="en"] .hdf-actions-fr {
	display: none !important;
}

/* Afficher le bon groupe */
html[lang^="fr"] .hdf-actions-fr,
html[lang^="en"] .hdf-actions-en {
	display: flex !important;
}

/* Burger */
.hdf-burger {
	display: none;
	padding: 0.5rem;
	color: var(--hdf-creme);
	background: none;
	border: none;
	cursor: pointer;
}

.hdf-burger span {
	display: block;
	width: 24px;
	height: 2px;
	margin: 5px 0;
	background: currentColor;
	transition:
		transform 0.3s ease,
		opacity 0.3s ease;
}

.hdf-burger.is-active span:nth-child(1) {
	transform: translateY(7px) rotate(45deg);
}

.hdf-burger.is-active span:nth-child(2) {
	opacity: 0;
}

.hdf-burger.is-active span:nth-child(3) {
	transform: translateY(-7px) rotate(-45deg);
}

/* === menu mobile (panneau plein écran) === */
.hdf-mobile-menu__overlay {
	position: fixed; inset: 0; z-index: 199;
	background: rgba(0,0,0,0.5);
	opacity: 0; visibility: hidden;
	transition: opacity var(--hdf-transition), visibility var(--hdf-transition);
}
.hdf-mobile-menu__overlay.is-open { opacity: 1; visibility: visible; }
.hdf-mobile-menu > :first-child {
	margin-top: 0 !important;
}
.hdf-mobile-menu {
	display: none;
	position: fixed; top: 0; left: 0; bottom: 0; z-index: 200;
	width: min(360px, 85vw);
	background: var(--hdf-noir);
	flex-direction: column;
	padding: var(--wp--preset--spacing--sm) var(--wp--preset--spacing--md) var(--wp--preset--spacing--md);
	transform: translateX(-100%);
	transition: transform var(--hdf-transition);
	overflow-y: auto;
}
.hdf-mobile-menu.is-open { transform: translateX(0); }
.hdf-mobile-menu__close {
	position: absolute; top: var(--wp--preset--spacing--sm); right: var(--wp--preset--spacing--xs);
	background: none; border: none; cursor: pointer; padding: 0.5rem; color: var(--hdf-creme);
}
.hdf-mobile-menu__close svg { width: 22px; height: 22px; }
.hdf-mobile-menu__logo { margin-bottom: var(--wp--preset--spacing--md); }
.hdf-mobile-menu__logo img { width: 100%; max-width: 220px; height: auto; margin: 0; }
.hdf-mobile-menu__nav { display: flex; flex-direction: column; margin-bottom: var(--wp--preset--spacing--sm); }
.hdf-mobile-menu__link {
	font-family: var(--wp--preset--font-family--ibm-plex-sans, 'IBM Plex Sans', Arial, sans-serif); font-weight: 600;
	font-size: 0.9rem; letter-spacing: 0.06em; text-transform: uppercase;
	color: var(--hdf-creme); padding: var(--wp--preset--spacing--xs) 0;
	border-bottom: 1px solid rgba(239,232,216,0.08);
	transition: color var(--hdf-transition);
}
.hdf-mobile-menu__link:hover,
.hdf-mobile-menu__link.is-current { color: var(--hdf-or); }
.hdf-mobile-menu__link--sub {
	padding-left: var(--wp--preset--spacing--sm);
	font-size: 0.8rem;
	color: var(--hdf-creme);
}
.hdf-mobile-menu__label {
	font-family: var(--wp--preset--font-family--zalando-sans-expanded, 'Zalando Sans Expanded', Arial, sans-serif);
	font-size: 0.68rem; font-weight: 600; letter-spacing: 0.12em; text-transform: uppercase;
	color: var(--hdf-or); margin: var(--wp--preset--spacing--xs) 0 0; padding-top: var(--wp--preset--spacing--xs);
}
.hdf-mobile-menu__actions { display: flex; gap: var(--wp--preset--spacing--xs); margin-bottom: var(--wp--preset--spacing--md); }
.hdf-mobile-menu__action {
	flex: 1; display: flex; flex-direction: column; align-items: center; gap: 0.35rem;
	padding: var(--wp--preset--spacing--xs); border: 1px solid rgba(196,137,52,0.4);
	font-family: var(--wp--preset--font-family--ibm-plex-sans, 'IBM Plex Sans', Arial, sans-serif); font-weight: 600;
	color: var(--hdf-or); font-size: 0.68rem; letter-spacing: 0.06em; text-transform: uppercase;
	transition: background var(--hdf-transition), border-color var(--hdf-transition);
}
.hdf-mobile-menu__action:hover { background: rgba(196,137,52,0.12); border-color: var(--hdf-or); color: var(--hdf-or); }
.hdf-mobile-menu__action svg { width: 20px; height: 20px; }
.hdf-mobile-menu__lang { display: flex; justify-content: center; }

.hdf-mobile-menu__actions {
	margin-top: var(--wp--preset--spacing--sm);
}

.is-layout-constrained > .hdf-mobile-menu.is-open {

	margin-block-start: 0 !important;
	margin-block-end: 0 !important;

}

/* === mega-menu === */
.hdf-mega {
	position: absolute; top: var(--hdf-header-h); left: 50%;
	width: 640px; background: var(--hdf-noir);
	border-top: 2px solid var(--hdf-or);
	border-bottom: 1px solid rgba(196,137,52,0.2);
	display: grid; grid-template-columns: 1fr 1fr;
	opacity: 0; visibility: hidden;
	transform: translateX(-50%) translateY(-8px);
	transition: opacity 0.3s ease, transform 0.3s ease, visibility 0.3s ease;
	pointer-events: none; box-shadow: var(--hdf-shadow);
}
.hdf-nav__item:hover .hdf-mega,
.hdf-nav__item:focus-within .hdf-mega { opacity: 1; visibility: visible; transform: translateX(-50%) translateY(0); pointer-events: auto; }
.hdf-mega__list { padding: 2rem; border-right: 1px solid rgba(196,137,52,0.15); }
.hdf-mega__item { padding: 1rem 0; border-bottom: 1px solid rgba(239,232,216,0.06); cursor: pointer; }
.hdf-mega__item:last-child { border-bottom: none; }
.hdf-mega__item:hover .hdf-mega__item-title { color: var(--hdf-or); }
.hdf-mega__item-title { font-family: var(--wp--preset--font-family--zalando-sans-expanded, 'Zalando Sans Expanded', Arial, sans-serif); font-weight: 600; font-size: 1.3rem; color: var(--hdf-creme); margin: 0 0 calc(var(--wp--preset--spacing--xs) / 2); transition: color 0.2s ease; }
.hdf-mega__item-desc { font-size: 0.75rem; color: rgba(239,232,216,0.5); line-height: 1.5; margin: 0; }
.hdf-mega__visual { position: relative; overflow: hidden; min-height: 240px; }
.hdf-mega__visual-img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; opacity: 0; transition: opacity 0.4s ease; }
.hdf-mega__visual-img.is-active { opacity: 1; }


/* Ecran ≤1400px : cacher notre histoire */
@media (max-width: 1400px) {
	.hdf-nav__item a.bigscreen { display: none; }

}

/* === hero === */
/* Hero split : image gauche + panneau noir texte droite */
.wp-block-columns.hdf-hero--split {
	min-height: 420px;
	align-items: stretch !important;
	gap: 0 !important;
	margin-top: 0 !important;
	margin-bottom: 0 !important;
}
/* Colonne gauche : Cover pleine hauteur */
.wp-block-columns.hdf-hero--split > .hdf-hero__left {
	padding: 0 !important;
}
.wp-block-columns.hdf-hero--split > .hdf-hero__left .wp-block-cover {
	height: 100% !important;
	min-height: 100% !important;
}
/* Colonne droite : centrage vertical du texte */
.wp-block-columns.hdf-hero--split > .hdf-hero__right {
	display: flex !important;
	flex-direction: column !important;
	justify-content: center !important;
}
.wp-block-columns.hdf-hero--split > .hdf-hero__right .hdf-hero__title {
	font-size: clamp(1.8rem, 3.5vw, 3rem) !important;
	margin-bottom: 0;
}
/* Page Pratique : hero de moitie moins haut, propre a cette page uniquement */
.page-id-21 .wp-block-columns.hdf-hero--split { min-height: 210px; }
.page-id-21 .wp-block-columns.hdf-hero--split > .hdf-hero__left .wp-block-cover { min-height: 210px !important; }

/* Mobile ≤640px : image en fond plein écran, texte par-dessus */
@media (max-width: 640px) {
	.wp-block-columns.hdf-hero--split {
		position: relative;
		display: block !important;
		min-height: 360px;
	}
	.page-id-21 .wp-block-columns.hdf-hero--split { min-height: 180px; }
	.wp-block-columns.hdf-hero--split > .hdf-hero__left {
		position: absolute !important;
		inset: 0;
		width: 100% !important;
		flex-basis: 100% !important;
	}
	.wp-block-columns.hdf-hero--split > .hdf-hero__left .wp-block-cover {
		height: 100% !important;
	}
	.wp-block-columns.hdf-hero--split > .hdf-hero__left::after {
		content: '';
		position: absolute;
		inset: 0;
		background: rgba(26,23,20,0.6);
		z-index: 1;
	}
	.wp-block-columns.hdf-hero--split > .hdf-hero__right {
		position: relative;
		z-index: 2;
		width: 100% !important;
		background: transparent !important;
		min-height: 360px;
	}
}

/* Hero page d'accueil : bascule image écran / mobile injectée par hero-images.php */
.hdf-hero-bg--mobile { display: none; }

@media (max-width: 1024px) {
	.hdf-hero-bg--screen { display: none; }
	.hdf-hero-bg--mobile { display: block; }
}

.hdf-hero, .wp-block-group.hdf-hero {
	position: relative; width: 100%; height: 100svh; min-height: 600px; max-height: 900px;
	overflow: hidden; display: flex !important; align-items: flex-end; background-color: var(--hdf-noir);
}
.hdf-hero .wp-block-image.hdf-hero__bg img, .hdf-hero figure.hdf-hero__bg img {
	position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: center 30%;
}
.hdf-hero figure.hdf-hero__bg { position: absolute; inset: 0; width: 100%; height: 100%; margin: 0; padding: 0; }
.hdf-hero__overlay, .wp-block-group.hdf-hero__overlay {
	position: absolute; inset: 0;
	background: linear-gradient(to bottom, rgba(49,53,51,0.15) 0%, rgba(49,53,51,0) 40%, rgba(49,53,51,0.6) 100%);
	pointer-events: none; z-index: 1;
}
.hdf-hero__content, .wp-block-group.hdf-hero__content {
	position: relative; z-index: 2; width: 100%; max-width: 1200px;
	margin: 0 auto; padding: 0 2.5rem 5rem; align-self: flex-end;
}
.hdf-hero__eyebrow {
	display: block;
	max-width: none !important;
	font-size: 0.7rem; font-weight: 400; letter-spacing: 0.3em; text-transform: uppercase;
	color: rgba(239,232,216,0.7); margin-bottom: calc(var(--wp--preset--spacing--sm) + var(--wp--preset--spacing--xs) / 2);
	padding: 0 0 0 0.9em;
	background: none; border: none; border-left: 1px solid var(--hdf-or);
}
.hdf-hero__title {
	font-weight: 300; font-size: clamp(2.8rem, 7vw, 5.5rem); line-height: 1.05;
	color: var(--hdf-blanc); margin: 0 0 var(--wp--preset--spacing--md); max-width: 900px;
	text-shadow: 0 2px 12px rgba(0,0,0,0.7), 0 4px 32px rgba(0,0,0,0.5), 0 0 80px rgba(0,0,0,0.4);
}
.hdf-hero__title em { font-style: italic; color: var(--hdf-or); }
.hdf-hero__actions { display: flex; gap: 1rem; flex-wrap: wrap; }
.hdf-hero__actions .hdf-btn--offrir .wp-element-button { color: var(--hdf-blanc); border-color: rgba(255,255,255,0.45); }
.hdf-hero__actions .hdf-btn--offrir .wp-element-button:hover { background: rgba(255,255,255,0.12); border-color: rgba(255,255,255,0.7); }
/* === bienvenue === */
.hdf-bienvenue__inner, .wp-block-columns.hdf-bienvenue__inner {
	max-width: 1200px; margin: 0 auto; display: flex !important; flex-wrap: nowrap; gap: 5rem; align-items: center;
}
.hdf-bienvenue__title { font-size: clamp(2rem, 4vw, 3rem); font-weight: 300; line-height: 1.15; margin: 0 0 calc(var(--wp--preset--spacing--sm) + var(--wp--preset--spacing--xs)); }
.hdf-bienvenue__title em { font-style: italic; }
.home .hdf-bienvenue .wp-block-button__link {
	background-color: var(--wp--preset--color--hdf-rouge) !important;
	color: var(--wp--preset--color--hdf-blanc) !important;
	transition: background-color var(--hdf-transition), color var(--hdf-transition);
}
.home .hdf-bienvenue .wp-block-button__link:hover,
.home .hdf-bienvenue .wp-block-button__link:focus-visible {
	background-color: var(--wp--preset--color--hdf-noir) !important;
	color: var(--wp--preset--color--hdf-blanc) !important;
}
.hdf-bienvenue__text .wp-block-image img {
	transform: rotate(-8deg);
	transform-origin: center center;
}
@media (prefers-reduced-motion: reduce) {
	.hdf-bienvenue__text .wp-block-image img { transform: none; }
}
/* Tampon HDF : repositionnement en debord a partir de 1500px, offset adapte a la marge disponible pour ne jamais depasser l'ecran (ex: MacBook Pro 14") */
@media (min-width: 1500px) {
	.hdf-bienvenue__inner { position: relative; }
	.hdf-bienvenue__text figure.wp-block-image {
		position: absolute !important;
		left: calc(-1 * min(200px, (100vw - 1200px) / 2 - var(--wp--preset--spacing--sm)));
		top: 20%;
		transform: translateY(-50%) rotate(-8deg);
		width: 180px;
		z-index: 2;
		margin: 0 !important;
		height: auto !important;
	}
	.hdf-bienvenue__text.is-layout-flow > figure.wp-block-image { margin-block-end: 0 !important; }
	.hdf-bienvenue__text .wp-block-heading { margin-top: 0 !important; }
}


.hdf-bienvenue__image { position: relative; }
.hdf-bienvenue__image img, .hdf-bienvenue__image .wp-block-image img { width: 100%; aspect-ratio: 4/5; object-fit: cover; max-width: none; }
/* Légende native du bloc image (figcaption) : décalée en débord (offsets négatifs) pour chevaucher le bord de la photo, quelle que soit la taille d'écran. Ciblé via la colonne, aucune classe sur la figure. */
.hdf-bienvenue__image .wp-block-image { position: relative; margin: 0; }
.hdf-bienvenue__image figcaption.wp-element-caption {
	position: absolute;
	bottom: calc(-1 * var(--wp--preset--spacing--lg));
	right: calc(-1 * var(--wp--preset--spacing--md));
	left: auto;
	padding: var(--wp--preset--spacing--md);
	max-width: calc(var(--wp--preset--spacing--lg) * 3);
	line-height: 1.4;
	text-align: left; font-style: italic;
	font-size: var(--wp--preset--font-size--sm);
	color: var(--wp--preset--color--hdf-or);
	background-color: var(--wp--preset--color--hdf-noir);
}
/* === hotel === */
.hdf-hotel { padding: 7rem 0 7rem 2.5rem; overflow: hidden; }
.hdf-hotel__inner { max-width: 1200px; margin: 0 auto; position: relative; padding-left: 80px; }
.hdf-hotel__sidebar { display: flex; flex-direction: column; align-items: center; padding-top: 3rem; gap: 2rem; position: absolute; left: 0; top: 3rem; }
.hdf-hotel__header { margin-bottom: calc(var(--wp--preset--spacing--md) * 1.5); }
.hdf-hotel__title { margin: 0 0 var(--wp--preset--spacing--xs); }
.hdf-rooms-nav { display: flex; gap: 0; border-bottom: 1px solid rgba(196,137,52,0.25); margin-bottom: calc(var(--wp--preset--spacing--md) + var(--wp--preset--spacing--xs)); }
.wp-block-button.hdf-rooms-nav__tab { background: transparent; padding: 0; border: none; flex-shrink: 0; }
.hdf-rooms-nav__tab .wp-element-button {
	padding: 0.6rem 1.2rem; font-size: 0.75rem; letter-spacing: 0.08em; text-transform: uppercase;
	color: rgba(239,232,216,0.45); cursor: pointer;
	border-bottom: 2px solid transparent; margin-bottom: -1px;
	background: transparent; border-top: none; border-left: none; border-right: none;
	transition: color 0.25s ease, border-color 0.25s ease;
}
.hdf-rooms-nav__tab .wp-element-button:hover { color: var(--hdf-creme); }
.hdf-rooms-nav__tab.is-active .wp-element-button { color: var(--hdf-or); border-bottom-color: var(--hdf-or); }
.hdf-room-slide, .wp-block-group.hdf-room-slide { display: none !important; }
.hdf-room-slide.is-active, .wp-block-group.hdf-room-slide.is-active { display: block !important; }
.hdf-room-slide .wp-block-columns { align-items: center; gap: 3rem; }
.hdf-room-slide .wp-block-image.hdf-room-slide__image img, .hdf-room-slide figure.hdf-room-slide__image img {
	width: 100%; aspect-ratio: 4/3; object-fit: cover; transition: transform 0.6s ease;
}
.hdf-room-slide__arrow {
	width: 40px; height: 40px; background: var(--hdf-noir); border: none;
	color: var(--hdf-creme); cursor: pointer; display: flex; align-items: center; justify-content: center;
	transition: background 0.25s ease;
}
.hdf-room-slide__arrow:hover { background: var(--hdf-rouge); }
.hdf-room-slide__name { margin: 0 0 var(--wp--preset--spacing--xs); }
/* hdf-room-slide__desc — color/size/line-height carried natively */
.hdf-room-slide__meta { display: flex; gap: var(--wp--preset--spacing--sm); margin-bottom: var(--wp--preset--spacing--sm); }
.hdf-room-slide__meta-item { display: flex; flex-direction: column; gap: 0.2rem; }
.hdf-room-slide__meta-label { font-size: 0.68rem; letter-spacing: 0.15em; text-transform: uppercase; }
.hdf-room-slide__meta-value { font-size: 1.3rem; }
.hdf-room-controls { display: none; }

/* === page hôtel : chambres (fond crème, sans onglets, ancres) === */
.hdf-room-panel__nav { display: flex; flex-wrap: wrap; gap: 0; border-bottom: 1px solid rgba(26,23,20,0.15); margin-bottom: var(--wp--preset--spacing--md); }
.wp-block-button.hdf-room-panel__nav-tab { background: transparent; padding: 0; border: none; flex-shrink: 0; }
.hdf-room-panel__nav-tab .wp-element-button {
	padding: 0.6rem 1.2rem; font-size: 0.75rem; letter-spacing: 0.08em; text-transform: uppercase;
	color: rgba(26,23,20,0.45); cursor: pointer;
	border-bottom: 2px solid transparent; margin-bottom: -1px;
	background: transparent; border-top: none; border-left: none; border-right: none;
	transition: color var(--hdf-transition), border-color var(--hdf-transition);
}
.hdf-room-panel__nav-tab .wp-element-button:hover { color: var(--hdf-noir); }
.hdf-room-panel__nav-tab.is-active .wp-element-button { color: var(--hdf-or); border-bottom-color: var(--hdf-or); }
.hdf-room-panel { border-bottom: 1px solid rgba(26,23,20,0.08); scroll-margin-top: calc(var(--hdf-header-h) + 3.5rem); }
.hdf-room-panel:last-child { border-bottom: none; }
.hdf-room-panel .wp-block-columns { align-items: flex-start; gap: var(--wp--preset--spacing--sm); }
.hdf-room-panel .wp-block-column.hdf-room-panel__col-photo { flex-basis: 64%; }
.hdf-room-panel .wp-block-column.hdf-room-panel__text { flex-basis: 36%; }
.hdf-room-panel__gallery.wp-block-gallery.is-style-diaporama .wp-block-image img,
.hdf-room-panel__gallery.wp-block-gallery.is-style-diaporama figure.wp-block-image img {
	width: 100%; aspect-ratio: 4/3; object-fit: cover;
}
.hdf-room-panel__text { display: flex; flex-direction: column; justify-content: flex-start; }
.hdf-room-panel__name { margin: 0 0 var(--wp--preset--spacing--xs); }
.hdf-room-panel__col-photo .hdf-room-panel__meta {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: var(--wp--preset--spacing--sm);
	margin: var(--wp--preset--spacing--sm) 0 0;
}
/* Page hôtel alternative : bouton Réserver aligné sur le style du header (couleur + typo), marges inchangées */
.hdf-rooms-content-col .js-open-reserve .wp-block-button__link {
	background: var(--hdf-rouge) !important;
	color: var(--hdf-blanc) !important;
	font-family: var(--wp--preset--font-family--jost, 'Jost', Arial, sans-serif);
	font-size: var(--wp--preset--font-size--xs);
	font-weight: 400;
	line-height: 1;
	letter-spacing: 0.1em;
	text-transform: uppercase;
}
/* Page hôtel alternative : Surface/Capacité déplacées sous le bouton Réserver, avec séparateur */
.hdf-rooms-content-col .hdf-room-panel__text .hdf-room-panel__meta {
	display: flex;
	gap: var(--wp--preset--spacing--lg);
	margin: var(--wp--preset--spacing--sm) 0 0;
	padding-top: var(--wp--preset--spacing--sm);
	border-top: 1px solid rgba(26,23,20,0.12);
}
.hdf-room-panel__meta { display: flex; gap: var(--wp--preset--spacing--sm); margin: var(--wp--preset--spacing--sm) 0; }
.hdf-room-panel__meta-item { display: flex; flex-direction: column; gap: 0.2rem; }
.hdf-room-panel__meta-label { font-size: 0.68rem; letter-spacing: 0.15em; text-transform: uppercase; color: rgba(26,23,20,0.55); }
.hdf-room-panel__meta-value { font-size: 1.3rem; color: var(--hdf-noir); }

/* === page hôtel : alternative (menu vertical fixe + chambres à droite) === */
.hdf-rooms-layout { padding-left: var(--wp--preset--spacing--md); padding-right: var(--wp--preset--spacing--md); max-width: 1440px; margin-left: auto; margin-right: auto; }
.hdf-rooms-layout__cols.wp-block-columns { align-items: flex-start; }
.wp-block-columns.hdf-rooms-layout__cols > .wp-block-column.hdf-rooms-nav-col {
	flex: 0 0 25%;
	flex-grow: 0;
	flex-shrink: 0;
}
.hdf-rooms-nav-col__inner {
	position: sticky;
	top: calc(var(--hdf-header-h) + var(--wp--preset--spacing--lg));
	padding: var(--wp--preset--spacing--lg) var(--wp--preset--spacing--md);
	border-right: 1px solid rgba(26,23,20,0.1);
}
.hdf-rooms-nav-col__title {
	margin: 0 0 var(--wp--preset--spacing--sm);
	font-size: var(--wp--preset--font-size--xs);
	letter-spacing: 0.18em;
	text-transform: uppercase;
}
.hdf-rooms-nav-col__list.wp-block-buttons { gap: 0; width: 100%; }
.wp-block-button.hdf-rooms-nav-col__tab { background: transparent; padding: 0; border: none; width: 100%; }
.hdf-rooms-nav-col__tab .wp-element-button {
	display: block;
	width: 100%;
	padding: var(--wp--preset--spacing--sm) 0;
	font-size: 0.85rem;
	letter-spacing: 0.03em;
	color: rgba(26,23,20,0.5);
	background: transparent;
	border: none;
	border-left: 2px solid transparent;
	padding-left: var(--wp--preset--spacing--sm);
	text-align: left;
	cursor: pointer;
	transition: color var(--hdf-transition), border-color var(--hdf-transition);
}
.hdf-rooms-nav-col__tab .wp-element-button:hover { color: var(--hdf-noir); }
.hdf-rooms-nav-col__tab.is-active .wp-element-button { color: var(--hdf-or); border-left-color: var(--hdf-or); }
.wp-block-columns.hdf-rooms-layout__cols > .wp-block-column.hdf-rooms-content-col { flex: 1 1 75%; flex-grow: 1; min-width: 0; }
.hdf-rooms-content-col .hdf-room-panel { border-bottom: 1px solid rgba(26,23,20,0.08); }
.hdf-rooms-content-col .hdf-room-panel:last-child { border-bottom: none; }
/* Colonne chambres plus étroite qu'en pleine page (menu fixe à gauche) : ratio photo/texte resserré par défaut */
.hdf-rooms-content-col .hdf-room-panel .wp-block-column.hdf-room-panel__col-photo { flex-basis: 58%; }
.hdf-rooms-content-col .hdf-room-panel .wp-block-column.hdf-room-panel__text { flex-basis: 42%; }
/* Très grand écran : la mise en page a plus de place, on revient à un ratio plus généreux pour la photo (structure nav/contenu reste 1/4 - 3/4) */
@media (min-width: 1600px) {
	.hdf-rooms-layout { max-width: 1760px; }
	.hdf-rooms-content-col .hdf-room-panel .wp-block-column.hdf-room-panel__col-photo { flex-basis: 64%; }
	.hdf-rooms-content-col .hdf-room-panel .wp-block-column.hdf-room-panel__text { flex-basis: 36%; }
}

/* === restaurants === */
.hdf-restaurants { padding: 7rem 2.5rem 0; }
.hdf-restaurants__header { text-align: center; margin-bottom: var(--wp--preset--spacing--lg); }
.hdf-restaurants__title { margin: 0; }
.hdf-restaurants__grid, .wp-block-columns.hdf-restaurants__grid {
	display: flex !important; flex-wrap: nowrap; gap: 0;
	width: 100vw; max-width: none;
	margin-left: calc(-1 * (100vw - 100%) / 2) !important;
	margin-right: calc(-1 * (100vw - 100%) / 2) !important;
}
.hdf-resto-card, .wp-block-column.hdf-resto-card { position: relative; overflow: hidden; cursor: pointer; aspect-ratio: 3/4; flex: 1 1 0; }
.hdf-resto-card .wp-block-image.hdf-resto-card__img img, .hdf-resto-card figure.hdf-resto-card__img img {
	width: 100%; aspect-ratio: 3/4; object-fit: cover; transition: transform 0.6s ease; max-width: none;
}
.hdf-resto-card:hover .hdf-resto-card__img { transform: scale(1.05); }
.hdf-resto-card::after {
	content: ''; position: absolute; inset: 0; z-index: 1; pointer-events: none;
	background: linear-gradient(to top, rgba(49,53,51,0.85) 0%, rgba(49,53,51,0.1) 50%, transparent 100%);
	transition: background 0.35s ease;
}
.hdf-resto-card:hover::after { background: linear-gradient(to top, rgba(49,53,51,0.92) 0%, rgba(49,53,51,0.35) 55%, rgba(49,53,51,0.1) 100%); }
.wp-block-group.hdf-resto-card__content { position: absolute; bottom: 0; left: 0; right: 0; padding: var(--wp--preset--spacing--md); z-index: 3; transition: transform 0.35s ease; }
.hdf-resto-card__name, .wp-block-heading.hdf-resto-card__name { margin: 0 0 var(--wp--preset--spacing--xs); }

.hdf-resto-card__desc {
	margin: 0 0 calc(var(--wp--preset--spacing--sm) + var(--wp--preset--spacing--xs) / 2);
	max-height: 0; overflow: hidden; opacity: 0; transition: max-height 0.35s ease, opacity 0.35s ease;
}
.hdf-resto-card:hover .hdf-resto-card__desc { max-height: 100px; opacity: 1; }
.hdf-resto-card__link { display: inline-flex; align-items: center; gap: 0.4rem; opacity: 0; transition: opacity 0.35s ease 0.05s; }
.hdf-resto-card:hover .hdf-resto-card__link { opacity: 1; }
/* === rooftop === */
.hdf-rooftop, .wp-block-group.hdf-rooftop {
	position: relative; width: 100%; min-height: 600px;
	display: flex !important; align-items: center; overflow: hidden; background-color: var(--hdf-noir);
}
.hdf-rooftop figure.hdf-rooftop__bg { position: absolute; inset: 0; width: 100%; height: 100%; margin: 0; padding: 0; z-index: 0; }
.hdf-rooftop .wp-block-image.hdf-rooftop__bg img, .hdf-rooftop figure.hdf-rooftop__bg img {
	width: 100%; height: 100%; max-width: none; object-fit: cover; object-position: center 40%; position: absolute; inset: 0;
}
.hdf-rooftop__overlay {
	position: absolute; inset: 0;
	background: rgba(49,53,51,0.3);
	transition: background var(--hdf-transition);
}
.hdf-rooftop:hover .hdf-rooftop__overlay { background: rgba(49,53,51,0.62); }
.hdf-rooftop__content, .wp-block-group.hdf-rooftop__content {
	position: relative; z-index: 2; width: 100%; max-width: 1200px; margin: 0 auto; padding: 6rem 2.5rem; text-align: center;
}
/* Contenu masqué par défaut, révélé au hover */
.hdf-rooftop__content > *:not(.hdf-rooftop__eyebrow-wrap) {
	opacity: 1; transform: translateY(0);
	transition: opacity 0.45s ease, transform 0.45s ease;
}
.hdf-rooftop:not(:hover) .hdf-rooftop__content > *,
.hdf-rooftop:not(:focus-within) .hdf-rooftop__content > * {
	opacity: 0; transform: translateY(12px);
}
/* Seul l'eyebrow reste toujours visible comme accroche */
.hdf-rooftop__eyebrow { opacity: 1 !important; transform: none !important; }
/* hdf-rooftop__eyebrow — color/size/uppercase carried natively */
.hdf-rooftop__title { line-height: 1.1; margin: 0 0 calc(var(--wp--preset--spacing--sm) + var(--wp--preset--spacing--xs)); max-width: 700px; margin-inline: auto; }
.hdf-rooftop__sub { max-width: 560px; margin: 0 auto calc(var(--wp--preset--spacing--md) + var(--wp--preset--spacing--xs)); }
.hdf-rooftop__content .wp-block-buttons { justify-content: center; }
/* Rooftop btn hover — couleurs portées nativement */
.hdf-rooftop .wp-element-button:hover { background: rgba(255,255,255,0.12) !important; border-color: var(--wp--preset--color--hdf-blanc) !important; }
@media (prefers-reduced-motion: reduce) {
	.hdf-rooftop:not(:hover) .hdf-rooftop__content > * { opacity: 1; transform: none; }
}
/* Bandeau accroche défilant — boucle continue droite → gauche, texte cliquable, fondu sur les bords */
.hdf-rooftop-marquee {
	position: relative; overflow: hidden; width: 100%;
	-webkit-mask-image: linear-gradient(to right, transparent, black var(--wp--preset--spacing--xl), black calc(100% - var(--wp--preset--spacing--xl)), transparent);
	mask-image: linear-gradient(to right, transparent, black var(--wp--preset--spacing--xl), black calc(100% - var(--wp--preset--spacing--xl)), transparent);
}
.hdf-rooftop-marquee__track {
	display: flex; flex-wrap: nowrap; width: max-content;
	animation: hdf-rooftop-marquee-scroll 17s linear infinite;
	will-change: transform;
}
.hdf-rooftop-marquee:hover .hdf-rooftop-marquee__track { animation-play-state: paused; }
.hdf-rooftop-marquee__text { margin: 0 var(--wp--preset--spacing--2-xl) 0 0; white-space: nowrap; flex: 0 0 auto; }
.hdf-rooftop-marquee__text a {
	display: inline-block; color: var(--hdf-blanc); text-decoration: none;
}
.hdf-rooftop-marquee__text a strong {
	font-weight: 600; color: var(--hdf-creme); text-decoration: underline; text-underline-offset: 0.2em;
	transition: color 0.25s ease;
}
.hdf-rooftop-marquee__text a strong::after {
	content: "\2192"; display: inline-block; margin-left: var(--wp--preset--spacing--xs);
	transition: transform 0.25s ease;
}
.hdf-rooftop-marquee__text a:hover strong { color: var(--hdf-or); }
.hdf-rooftop-marquee__text a:hover strong::after { transform: translateX(4px); }
@keyframes hdf-rooftop-marquee-scroll {
	from { transform: translateX(0); }
	to { transform: translateX(-50%); }
}
@media (prefers-reduced-motion: reduce) {
	.hdf-rooftop-marquee__track { animation: none; transform: none; }
}
/* === traiteur === */
.hdf-traiteur { padding: 7rem 2.5rem; }
.hdf-traiteur__inner { max-width: 1200px; margin: 0 auto; }
.hdf-traiteur__header { margin-bottom: var(--wp--preset--spacing--lg); max-width: 560px; }
.hdf-traiteur__title { font-size: clamp(2rem, 4vw, 3rem); font-weight: 300; line-height: 1.15; margin: 0 0 var(--wp--preset--spacing--sm); }
/* hdf-traiteur__sub, hdf-traiteur__title — margin portée nativement */
.hdf-traiteur__grid, .wp-block-columns.hdf-traiteur__grid {
	display: flex !important; flex-wrap: nowrap; gap: 1rem; max-width: 100%; margin-left: 0 !important; margin-right: 0 !important;
}
.hdf-traiteur__grid .wp-block-column.hdf-traiteur-card { flex: 1 1 0; min-width: 0; }
.hdf-traiteur-card, .wp-block-column.hdf-traiteur-card { position: relative; overflow: hidden; aspect-ratio: 2/3; cursor: pointer; flex: 1 1 0; }
.hdf-traiteur-card .wp-block-image img { width: 100%; aspect-ratio: 2/3; object-fit: cover; transition: transform 0.5s ease; max-width: none; }
.hdf-traiteur-card:hover .wp-block-image img { transform: scale(1.06); }
.hdf-traiteur-card::before {
	content: ''; position: absolute; inset: 0; z-index: 1;
	background: linear-gradient(to top, rgba(49,53,51,0.9) 0%, rgba(49,53,51,0.2) 60%, transparent 100%);
}
.wp-block-group.hdf-traiteur-card__label {
	position: absolute;
	inset: 0;
	z-index: 2;
	display: flex;
	flex-direction: column;
	justify-content: flex-end;
	padding: 1.5rem;
}
.hdf-traiteur-card__name { margin: 0 0 calc(var(--wp--preset--spacing--xs) / 2); }

.hdf-traiteur-card {
	position: relative;
}

/* Le lien existant devient le lien de toute la carte */
.hdf-traiteur-card__label a::after {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 10;
}

.wp-block-post-content .hdf-traiteur-card__label a {
	text-decoration: none !important;
}

/* === séminaires — rangées de contenu === */
/* Conteneur centré, respirant, à l’image de la référence (zones coloriées pleine largeur, contenu contraint) */
.hdf-sem-row__container { max-width: calc(var(--wp--style--global--wide-size) + var(--wp--preset--spacing--3-xl) * 2); margin: 0 auto; padding: var(--wp--preset--spacing--2-xl) var(--wp--preset--spacing--md); }
.hdf-sem-row .wp-block-columns { align-items: center; }
.hdf-sem-row__text { display: flex; flex-direction: column; justify-content: center; padding: 0 var(--wp--preset--spacing--sm); }
.hdf-sem-row__visual img { display: block; width: 100%; border-radius: 0.85rem; }
.hdf-sem-row__eyebrow { margin-bottom: var(--wp--preset--spacing--sm); }
.hdf-sem-row__heading { margin: 0 0 var(--wp--preset--spacing--md); }

/* Fiche technique — grille sobre 2 colonnes, sans lignes ni fond */
.hdf-fiche-table table { width: 100%; border-collapse: collapse; }
.hdf-fiche-table tr { border: none; }
.hdf-fiche-table td {
	border: none;
	padding: var(--wp--preset--spacing--xs) 0;
	vertical-align: baseline;
	font-size: var(--wp--preset--font-size--sm);
	line-height: 1.5;
}
.hdf-fiche-table td:first-child {
	width: 25%;
	padding-right: var(--wp--preset--spacing--md);
	font-family: var(--wp--preset--font-family--zalando-sans-expanded);
	font-weight: 600;
	white-space: nowrap;
}
.hdf-fiche-table td:last-child { color: var(--hdf-noir); }

/* Page Pratique : carte umap pleine largeur, peu haute */
.hdf-page-map { padding: var(--wp--preset--spacing--md) 0; }
.hdf-page-map iframe { display: block; }
.hdf-page-map__link a { color: var(--hdf-or); }

/* Rangée 1 : image simple — une seule photo, ratio large et peu haut, coins arrondis */
.hdf-sem-row--simple .hdf-sem-row__visual .wp-block-image img { aspect-ratio: 4 / 3; object-fit: cover; box-shadow: var(--hdf-shadow); }

/* Rangée 2 : deux vignettes côte à côte, arrondies, même hauteur */
.hdf-sem-row--overlap .hdf-sem-row__visual { display: flex; gap: var(--wp--preset--spacing--sm); }
.hdf-sem-row--overlap .hdf-sem-row__visual .wp-block-image { flex: 1 1 50%; margin: 0; }
.hdf-sem-row--overlap .hdf-sem-row__visual .wp-block-image img { aspect-ratio: 3 / 4; object-fit: cover; }
.hdf-sem-row--overlap .hdf-sem-row__visual .wp-block-image:first-child img { aspect-ratio: 4 / 5; }

/* Rangée 3 : collage (grande image + 2 empilées), vignettes arrondies et aérées */
.hdf-sem-row__collage {
  display: grid;
  grid-template-columns: 3fr 2fr;
  grid-template-rows: 1fr 1fr;
  gap: var(--wp--preset--spacing--sm);
  flex: 1 1 0%;
  min-width: 0;
}
.hdf-sem-row__collage .wp-block-image { margin: 0; height: 100%; }
.hdf-sem-row__collage .wp-block-image img { display: block; width: 100%; height: 100%; object-fit: cover; border-radius: 0.85rem; }
.hdf-sem-row__collage .wp-block-image:first-child { grid-row: 1 / 3; }




/* Rangée 4 : bannière plein cadre, plus impactante */
.hdf-sem-row--banner .wp-block-cover { min-height: 32rem; }
.hdf-sem-row--banner .wp-block-cover__inner-container { max-width: 640px; margin-left: auto; margin-right: auto; }

/* === seminaires === */
.hdf-seminaires { padding: 7rem 2.5rem; }
.hdf-seminaires__inner { max-width: 1200px; margin: 0 auto; }
.hdf-seminaires__header { margin-bottom: var(--wp--preset--spacing--lg); text-align: center; }
.hdf-seminaires__sub { max-width: 560px; margin: 0 auto; }
.hdf-seminaires__cards.is-style-snap-carousel > .wp-block-group.hdf-sem-card { flex: 0 0 calc(33.333% - 1rem); min-width: 280px; margin-top: 0 !important; }
.hdf-seminaires__cards:not(.is-style-snap-carousel) { display: flex !important; flex-wrap: wrap; gap: 1rem; }
.hdf-seminaires__cards:not(.is-style-snap-carousel) .hdf-sem-card { flex: 1 1 160px; min-width: 160px; }
.hdf-sem-card { border: 1px solid rgba(196,137,52,0.2); overflow: hidden; }
.hdf-sem-card__img { display: block; width: 100%; aspect-ratio: 16 / 9; object-fit: cover; }
.hdf-sem-card__img img { display: block; width: 100%; height: 100%; object-fit: cover; }
.hdf-sem-card__body { padding: var(--wp--preset--spacing--md) var(--wp--preset--spacing--sm); }
.hdf-sem-card__title { margin: 0 0 var(--wp--preset--spacing--xs); }
.hdf-sem-card__desc { margin: 0; }
/* Séminaires CTA hover — couleurs portées nativement */
.hdf-seminaires .wp-block-buttons .wp-element-button:hover { background: #272b29 !important; }
/* === auch === */
.hdf-auch__inner, .wp-block-columns.hdf-auch__inner { max-width: 1200px; margin: 0 auto; display: flex !important; flex-wrap: nowrap; gap: 5rem; align-items: center; }
.hdf-auch__visual { position: relative; overflow: visible; }
.hdf-auch__visual .wp-block-image { position: relative; margin: 0; }
.hdf-auch__visual img { width: 100%; aspect-ratio: 4/5; object-fit: cover; display: block; }
/* Légende native (figcaption) en badge débordant, ciblée via la colonne — aucune classe sur la figure */
.hdf-auch__visual figcaption.wp-element-caption {
	position: absolute;
	bottom: calc(-1 * var(--wp--preset--spacing--sm));
	right: calc(-1 * var(--wp--preset--spacing--md));
	left: auto;
	background: var(--wp--preset--color--hdf-or);
	color: var(--wp--preset--color--hdf-noir);
	padding: var(--wp--preset--spacing--sm);
	font-size: var(--wp--preset--font-size--sm);
	line-height: 1.4;
	width: calc(var(--wp--preset--spacing--lg) * 2.5);
	text-align: center;
	font-style: italic;
	box-shadow: var(--hdf-shadow);
	z-index: 2;
}
/* hdf-auch__title, hdf-auch__body — portés nativement */
.hdf-auch__highlights { display: flex; flex-wrap: wrap; gap: var(--wp--preset--spacing--xs); margin-bottom: calc(var(--wp--preset--spacing--md) + var(--wp--preset--spacing--xs)); }
.hdf-auch__tag {
	position: relative;
	display: inline-block;
	padding: 0.3em 0.75em 0.3em 1.4em;
	margin-left: 0.5em;
	background: rgba(255,255,255,0.5);
	color: var(--wp--preset--color--hdf-or);
	font-size: var(--wp--preset--font-size--xs);
	font-family: var(--wp--preset--font-family--jost);
	letter-spacing: 0.04em;
	text-transform: none;
	border: none;
	/* Forme étiquette en une seule pièce : pointe gauche + corps rectangulaire, pas de couture */
	clip-path: polygon(0.6em 0, 100% 0, 100% 100%, 0.6em 100%, 0 50%);
	transition: background var(--hdf-transition);
}
/* Petit rond — rivet de l'étiquette, sur la pointe */
.hdf-auch__tag::after {
	content: "";
	position: absolute;
	left: 0.28em;
	top: 50%;
	transform: translateY(-50%);
	width: 4px; height: 4px;
	border-radius: 50%;
	background: var(--wp--preset--color--hdf-or);
	opacity: 0.6;
}
.hdf-auch__tag:hover { background: rgba(255,255,255,0.14); }
/* === actualites === */
.hdf-actu__inner { max-width: 1200px; margin: 0 auto; }
.hdf-actu__header { display: flex; align-items: flex-end; justify-content: space-between; margin-bottom: calc(var(--wp--preset--spacing--md) * 1.75); gap: var(--wp--preset--spacing--sm); }
.hdf-actu__all { font-size: 0.75rem; letter-spacing: 0.12em; text-transform: uppercase; border-bottom: 1px solid currentColor; padding-bottom: 2px; white-space: nowrap; transition: color 0.25s ease; }
.hdf-actu__all:hover { color: var(--hdf-or); }
.hdf-actu__grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 2rem; }
.hdf-actu-card { overflow: hidden; transition: box-shadow 0.3s ease; }
.hdf-actu-card:hover { box-shadow: 0 8px 40px rgba(49,53,51,0.12); }
.hdf-actu-card__img { overflow: hidden; }
.hdf-actu-card__img img { width: 100%; aspect-ratio: 16/10; object-fit: cover; transition: transform 0.5s ease; }
.hdf-actu-card:hover .hdf-actu-card__img img { transform: scale(1.04); }
.hdf-actu-card__body { padding: 1.5rem; }
.hdf-actu-card__subtitle { font-family: var(--wp--preset--font-family--ibm-plex-sans, 'IBM Plex Sans', Arial, sans-serif); font-weight: 600; }
.hdf-actu-card__title { line-height: 1.3; }
/* hdf-actu-card__excerpt — color/size/line-height carried natively */

/* Bouton Lire la suite */
.hdf-actu-card__btn {
	display: inline-block;
	margin-top: var(--wp--preset--spacing--sm);
	padding: 0.5em 1.25em;
	background: var(--wp--preset--color--hdf-or);
	color: var(--wp--preset--color--hdf-blanc);
	border: 1px solid var(--wp--preset--color--hdf-or);
	font-family: var(--wp--preset--font-family--ibm-plex-sans);
	font-size: var(--wp--preset--font-size--xs);
	font-weight: 500;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	cursor: pointer;
	transition: background var(--hdf-transition), border-color var(--hdf-transition);
}
.hdf-actu-card__btn:hover {
	background: var(--wp--preset--color--hdf-noir);
	border-color: var(--wp--preset--color--hdf-noir);
}
/* La card entière est cliquable — curseur pointer */
.hdf-actu-card { cursor: pointer; }

/* === Modal actu === */
.hdf-actu-modal {
	display: none;
	position: fixed;
	inset: 0;
	z-index: 9999;
	background: rgba(49,53,51,0.75);
	backdrop-filter: blur(4px);
	align-items: center;
	justify-content: center;
	padding: var(--wp--preset--spacing--md);
}
.hdf-actu-modal.is-open {
	display: flex;
}
.hdf-actu-modal__panel {
	position: relative;
	background: var(--wp--preset--color--hdf-blanc);
	width: 100%;
	max-width: 600px;
	max-height: 85vh;
	overflow-y: auto;
	box-shadow: var(--hdf-shadow);
}
.hdf-actu-modal__close {
	position: absolute;
	top: var(--wp--preset--spacing--sm);
	right: var(--wp--preset--spacing--sm);
	width: 2.5rem;
	height: 2.5rem;
	background: rgba(49,53,51,0.55);
	border: none;
	display: flex;
	align-items: center;
	justify-content: center;
	cursor: pointer;
	z-index: 3;
	transition: background var(--hdf-transition);
	color: var(--wp--preset--color--hdf-blanc);
}
.hdf-actu-modal__close:hover { background: rgba(49,53,51,0.15); }
.hdf-actu-modal__close svg { width: 1.25rem; height: 1.25rem; }
.hdf-actu-modal__img {
	position: relative;
	width: 100%;
}
.hdf-actu-modal__img img {
	width: 100%;
	aspect-ratio: 16/9;
	object-fit: cover;
	display: block;
}
.hdf-actu-modal__cat {
	position: absolute;
	bottom: var(--wp--preset--spacing--sm);
	left: var(--wp--preset--spacing--sm);
	background: var(--wp--preset--color--hdf-noir);
	color: var(--wp--preset--color--hdf-or);
	font-family: var(--wp--preset--font-family--jost);
	font-size: var(--wp--preset--font-size--xs);
	font-weight: 500;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	padding: 0.3em 0.8em;
}
.hdf-actu-modal__body {
	padding: var(--wp--preset--spacing--md);
}
.hdf-actu-modal__title {
	font-size: var(--wp--preset--font-size--xl);
	font-weight: 300;
	line-height: 1.2;
	margin-top: 0;
	margin-bottom: var(--wp--preset--spacing--sm);
	color: var(--wp--preset--color--hdf-noir);
}
.hdf-actu-modal__content {
	font-size: var(--wp--preset--font-size--base);
	line-height: 1.75;
	color: var(--wp--preset--color--hdf-noir);
}
.hdf-actu-modal__content p { margin-bottom: var(--wp--preset--spacing--xs); }

/* Galerie modale des portraits — même fond que les modales Actus. */
#femmes-hommes .wp-block-image { cursor: zoom-in; }
#femmes-hommes .wp-lightbox-container > button:not(.hdf-portrait-trigger) { display: none; }
#femmes-hommes .hdf-portrait-trigger {
	position: absolute;
	inset: 0;
	z-index: 1;
	display: block;
	width: 100%;
	height: 100%;
	padding: 0;
	border: 0;
	border-radius: 0;
	background: transparent;
	box-shadow: none;
	-webkit-backdrop-filter: none;
	backdrop-filter: none;
	opacity: 1;
	cursor: zoom-in;
}
#femmes-hommes .hdf-traiteur-card__label {
	pointer-events: none;
}
#femmes-hommes .hdf-portrait-trigger:focus-visible {
	outline: 2px solid var(--wp--preset--color--hdf-or);
	outline-offset: -4px;
}
.hdf-portrait-modal__panel {
	max-width: min(900px, calc(100vw - 4rem));
	max-height: 90vh;
	overflow: hidden;
	background: var(--wp--preset--color--hdf-noir);
}
.hdf-portrait-modal__figure {
	display: grid;
	grid-template-rows: minmax(0, 1fr) auto;
	max-height: 90vh;
	margin: 0;
}
.hdf-portrait-modal__image {
	display: block;
	width: 100%;
	height: min(76vh, 760px);
	object-fit: contain;
	background: var(--wp--preset--color--hdf-noir);
}
.hdf-portrait-modal__caption {
	display: flex;
	align-items: baseline;
	gap: 0.75rem;
	min-height: 4rem;
	padding: 1rem 1.25rem;
	background: var(--wp--preset--color--hdf-blanc);
	color: var(--wp--preset--color--hdf-noir);
}
.hdf-portrait-modal__name {
	font-size: var(--wp--preset--font-size--lg);
	font-weight: 500;
}
.hdf-portrait-modal__role {
	font-family: var(--wp--preset--font-family--ibm-plex-sans);
	font-size: var(--wp--preset--font-size--xs);
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--wp--preset--color--hdf-or);
}
.hdf-portrait-modal__status {
	margin-left: auto;
	font-family: var(--wp--preset--font-family--ibm-plex-sans);
	font-size: var(--wp--preset--font-size--xs);
	letter-spacing: 0.08em;
}
.hdf-portrait-modal__arrow {
	position: absolute;
	top: 50%;
	z-index: 4;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 2.75rem;
	height: 2.75rem;
	padding: 0;
	border: 0;
	border-radius: 0;
	background: rgba(49,53,51,0.58);
	color: var(--wp--preset--color--hdf-blanc);
	cursor: pointer;
	opacity: 0.78;
	transform: translateY(-50%);
	transition: opacity 0.25s ease, background 0.25s ease;
}
.hdf-portrait-modal__arrow:hover,
.hdf-portrait-modal__arrow:focus-visible {
	background: rgba(49,53,51,0.88);
	opacity: 1;
}
.hdf-portrait-modal__arrow svg { width: 1.25rem; height: 1.25rem; }
.hdf-portrait-modal__arrow--previous { left: 1rem; }
.hdf-portrait-modal__arrow--next { right: 1rem; }

@media (max-width: 640px) {
	.hdf-portrait-modal { padding: 0.75rem; }
	.hdf-portrait-modal__panel { max-width: calc(100vw - 1.5rem); }
	.hdf-portrait-modal__image { height: 72vh; }
	.hdf-portrait-modal__caption { flex-wrap: wrap; gap: 0.25rem 0.75rem; padding: 0.8rem 1rem; }
	.hdf-portrait-modal__role { flex-basis: 100%; }
	.hdf-portrait-modal__status { position: absolute; right: 1rem; bottom: 1rem; }
	.hdf-portrait-modal__arrow { width: 2.5rem; height: 2.5rem; }
	.hdf-portrait-modal__arrow--previous { left: 0.5rem; }
	.hdf-portrait-modal__arrow--next { right: 0.5rem; }
}

@media (prefers-reduced-motion: reduce) {
	.hdf-actu-modal { backdrop-filter: none; }
	.hdf-portrait-modal__arrow { transition: none; }
}
/* === instagram === */
.hdf-instagram { padding: 5rem 2.5rem; }
.hdf-instagram__inner { max-width: 1200px; margin: 0 auto; }
.hdf-instagram__header { text-align: center; margin-bottom: calc(var(--wp--preset--spacing--md) * 1.5); }
/* hdf-instagram__handle — color/size/uppercase carried natively */
.hdf-instagram__title { margin: 0; }
.hdf-instagram__placeholder { display: grid; grid-template-columns: repeat(6, 1fr); }
.hdf-instagram__placeholder-item { aspect-ratio: 1; background: rgba(239,232,216,0.06); border: 1px solid rgba(239,232,216,0.04); display: flex; align-items: center; justify-content: center; color: rgba(239,232,216,0.15); font-size: 2rem; transition: background 0.3s ease; }
.hdf-instagram__placeholder-item:hover { background: rgba(196,137,52,0.12); }
/* Hover boutons contextuels (couleurs/padding portés nativement par Gutenberg) */
.wp-element-button:is([style*="background:#313533"],[style*="background: #313533"]):hover { background: #272b29 !important; }
.wp-element-button:is([style*="background:#c48934"],[style*="background: #c48934"]):hover { background: #ad7829 !important; }
/* === gift bubble === */
.hdf-gift-bubble { position: fixed; bottom: 2.5rem; right: 2rem; z-index: 90; background: var(--hdf-or); color: var(--hdf-noir); display: flex; align-items: center; gap: 0.75rem; padding: 0.9rem 1.4rem; box-shadow: 0 4px 24px rgba(49,53,51,0.3); text-decoration: none; transition: transform 0.3s ease, box-shadow 0.3s ease; max-width: 220px; }
.hdf-gift-bubble:hover { transform: translateY(-3px); box-shadow: 0 8px 32px rgba(49,53,51,0.4); color: var(--hdf-noir); }
.hdf-gift-bubble svg { width: 20px; height: 20px; flex-shrink: 0; }
.hdf-gift-bubble__text { font-size: 0.75rem; font-weight: 500; letter-spacing: 0.06em; line-height: 1.4; font-family: var(--wp--preset--font-family--ibm-plex-sans);}
/* === sticky reserve === */
.hdf-sticky-reserve { position: fixed; bottom: 2.5rem; right: 14rem; transform: translateY(20px); z-index: 89; opacity: 0; transition: opacity 0.3s ease, transform 0.3s ease; pointer-events: none; }
.hdf-sticky-reserve.is-visible { opacity: 1; transform: translateY(0); pointer-events: auto; }
.hdf-sticky-reserve .hdf-btn--reserver {
	appearance: none;
	-webkit-appearance: none;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 3.05rem;
	border: 0;
	border-radius: 0;
	box-shadow: none;
	cursor: pointer;
}
.hdf-sticky-reserve__panel { background: var(--hdf-noir); border: 1px solid rgba(196,137,52,0.3); box-shadow: 0 8px 40px rgba(49,53,51,0.4); display: flex; align-items: center; }
/* === reserve modal === */
.hdf-reserve-modal { position: fixed; inset: 0; z-index: 9999; background: rgba(49,53,51,0.8); display: flex; align-items: center; justify-content: center; padding: 2rem; opacity: 0; visibility: hidden; transition: opacity 0.3s ease, visibility 0.3s ease; }
.hdf-reserve-modal.is-open { opacity: 1; visibility: visible; }
.hdf-reserve-modal__panel { background: var(--hdf-noir); border: 1px solid rgba(196,137,52,0.25); width: 100%; max-width: 560px; padding: 3rem; position: relative; box-shadow: 0 20px 80px rgba(49,53,51,0.6); }
.hdf-reserve-modal__title { font-weight: 300; font-size: 2rem; color: var(--hdf-creme); margin: 0 0 var(--wp--preset--spacing--xs); }
.hdf-reserve-modal__sub { font-size: 0.85rem; color: rgba(239,232,216,0.45); margin: 0 0 var(--wp--preset--spacing--md); }
.hdf-reserve-modal__close { position: absolute; top: 1rem; right: 1rem; background: none; border: none; cursor: pointer; color: rgba(239,232,216,0.4); transition: color 0.2s ease; padding: 0.5rem; }
.hdf-reserve-modal__close:hover { color: var(--hdf-creme); }
.hdf-reserve-modal__close svg { width: 22px; height: 22px; }
.hdf-reserve-modal__grid { display: grid; grid-template-columns: 1fr 1fr; gap: 0.75rem; }
.hdf-reserve-option { padding: 1.25rem 1rem; border: 1px solid rgba(239,232,216,0.1); cursor: pointer; transition: border-color 0.25s ease, background 0.25s ease; text-decoration: none; }
.hdf-reserve-option:hover { border-color: var(--hdf-or); background: rgba(196,137,52,0.07); }
.hdf-reserve-option__icon { width: 24px; height: 24px; color: var(--hdf-or); margin-bottom: calc(var(--wp--preset--spacing--sm) + var(--wp--preset--spacing--xs) / 2); }
.hdf-reserve-option__label { font-size: 1.1rem; color: var(--hdf-creme); margin: 0; }

@media (max-width: 781px) {

	.hdf-reserve-modal {
		align-items: flex-start;
		justify-content: center;
		min-height: 100dvh;
		overflow-y: auto;
		padding:
			max(1rem, env(safe-area-inset-top))
			1rem
			max(1rem, env(safe-area-inset-bottom));
	}

	.hdf-reserve-modal__panel {
		width: 100%;
		max-width: none;
		margin: auto 0;
		padding: 2.5rem 1.25rem 1.5rem;
	}

	/* On conserve les 2 colonnes */
	.hdf-reserve-modal__grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: .75rem;
	}

	.hdf-reserve-option {
		padding: .9rem .75rem;
		text-align: center;
	}

	.hdf-reserve-option__icon {
		margin: 0 auto var(--wp--preset--spacing--xs);
	}

	.hdf-reserve-option__label {
		font-size: .95rem;
		line-height: 1.3;
	}

}

@media (max-width: 360px) {
	.hdf-reserve-modal__grid {
		grid-template-columns: 1fr;
	}
}


/* === footer === */
.hdf-footer { background: var(--hdf-noir); border-top: 1px solid rgba(196,137,52,0.2); padding: 0 0 0; }

/* Bande partenaires */
.hdf-footer__partners {
	background: var(--wp--preset--color--hdf-creme);
	padding: 1.25rem 2.5rem;
}
.hdf-footer__partners-inner {
	max-width: 1200px;
	margin: 0 auto;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	flex-wrap: wrap;
}
.hdf-footer__partner-link {
	display: flex;
	align-items: center;
	justify-content: center;
	flex: 1 1 auto;
	transition: opacity var(--hdf-transition), transform var(--hdf-transition);
}
.hdf-footer__partner-link:hover {
	opacity: 0.8;
	transform: scale(1.04);
}
.hdf-footer__partner-link img {
	height: 64px;
	width: auto;
	max-width: 130px;
	object-fit: contain;
	filter: none;
}
.hdf-footer__partner-text {
	color: var(--wp--preset--color--hdf-noir);
	font-family: var(--wp--preset--font-family--jost);
	font-size: 0.72rem;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	text-align: center;
	line-height: 1.4;
}
@keyframes hdf-partners-marquee {
	to { transform: translateX(calc(-50% - var(--wp--preset--spacing--sm) / 2)); }
}


/* =========================================================
   FOOTER FSE — PARTIE PRINCIPALE
   ========================================================= */

.hdf-footer__inner {
	width: 100%;
	max-width: 1200px;
	margin: 0 auto;
	padding: 5rem 2.5rem 2.5rem;
	box-sizing: border-box;
}

/* Colonnes principales : identité / menus / menus */
.hdf-footer__top {
	align-items: flex-start;
	gap: var(--wp--preset--spacing--md);
	margin: 0;
	padding: 0 0 var(--wp--preset--spacing--md);
	border-bottom: 1px solid rgb(239 232 216 / 8%);
}

/* Neutralisation des marges Gutenberg */
.hdf-footer__top > .wp-block-column,
.hdf-footer__menu-pair > .wp-block-column {
	min-width: 0;
	margin-block-start: 0;
}

/* =========================================================
   COLONNE IDENTITÉ
   ========================================================= */

.hdf-footer__brand {
	display: flex;
	flex-direction: column;
}

/* Bloc SVG de l’immeuble */
.hdf-footer__brand .wp-block-outermost-icon-block {
	margin: 0 0 var(--wp--preset--spacing--md);
}

.hdf-footer__brand .icon-container {
	display: block;
	max-width: 166px;
	height: auto;
}

.hdf-footer__brand .icon-container svg {
	display: block;
	width: 100%;
	height: auto;
}

/* Réseaux sociaux Gutenberg */
.hdf-footer__brand .wp-block-social-links {
	display: flex;
	align-items: center;
	gap: 0.75rem;
	margin: 0;
	padding: 0;
}

.hdf-footer__brand .wp-social-link {
	display: block;
	margin: 0;
	padding: 0;
	background: transparent;
	color: rgb(239 232 216 / 50%);
	overflow: visible;
		height: 38px;
}

.hdf-footer__brand .wp-block-social-link-anchor {
	display: flex;
	align-items: center;
	justify-content: center;
	box-sizing: border-box;
	width: 36px;
	height: 36px;
	min-height: 36px;
	padding: 0;

	border: 0;
	border-radius: 0;
	outline: 1px solid rgb(239 232 216 / 20%);
	outline-offset: -1px;

	line-height: 1;
	transition:
		color 0.25s ease,
		outline-color 0.25s ease;
}

.hdf-footer__brand .wp-social-link:hover {
	transform: none;
}

.hdf-footer__brand .wp-block-social-link-anchor:hover,
.hdf-footer__brand .wp-block-social-link-anchor:focus-visible {
	color: var(--hdf-or);
	outline-color: var(--hdf-or);
}

.hdf-footer__brand .wp-block-social-link-anchor svg {

	display: block;
	width: 16px;
	height: 16px;

}

/* =========================================================
   PAIRES DE MENUS
   ========================================================= */

.hdf-footer__menu-pair {
	align-items: flex-start;
	gap: var(--wp--preset--spacing--md);
	margin: 0;
}

/* Supprime l’espace Gutenberg entre le titre et le menu */
.hdf-footer__menu-pair .wp-block-column > * {
	margin-block-start: 0;
}

/* Le titre possède déjà son style dans l’éditeur */
.hdf-footer__menu-pair .wp-block-column > p {
	margin-top: 0;
}

/* =========================================================
   NAVIGATIONS GUTENBERG
   ========================================================= */

.hdf-footer .hdf-footer__nav.wp-block-navigation {
	display: block;
	width: 100%;
	margin: 0;
}

/*
La classe hdf-footer__nav est présente à la fois sur <nav>
et sur <ul>. On cible donc précisément le conteneur interne.
*/
.hdf-footer .hdf-footer__nav
.wp-block-navigation__container {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	justify-content: flex-start;
	flex-wrap: nowrap;
	gap: 0.55rem;
	width: 100%;
	margin: 0;
	padding: 0;
	list-style: none;
}

/* Entrées */
.hdf-footer .hdf-footer__nav
.wp-block-navigation-item {
	display: block;
	width: 100%;
	margin: 0;
	padding: 0;
	text-align: left;
}

/* Liens */
.hdf-footer .hdf-footer__nav
.wp-block-navigation-item__content {
	font-family: var(--wp--preset--font-family--cormorant);
	display: inline;
	margin: 0;
	padding: 0;
	font-size: 0.875rem;
	font-weight: 400;
	line-height: 1.55;
	letter-spacing: 0;
	text-align: left;
	text-decoration: none;
	text-transform: none;
	transition: color 0.25s ease;
}

.hdf-footer .hdf-footer__nav
.wp-block-navigation-item__label {
	font: inherit;
	letter-spacing: inherit;
	text-transform: inherit;
}

.hdf-footer .hdf-footer__nav
.wp-block-navigation-item__content:hover,
.hdf-footer .hdf-footer__nav
.wp-block-navigation-item__content:focus-visible {
	color: var(--hdf-creme);
}

/* =========================================================
   TABLETTE
   ========================================================= */

@media (max-width: 900px) {

	.hdf-footer__inner {
		padding: 4rem 2rem 2rem;
	}

	.hdf-footer__top {
		flex-wrap: wrap;
		row-gap: 3rem;
	}

	/* L’identité prend toute la largeur */
	.hdf-footer__brand {
		flex-basis: 100% !important;
	}

	/* Les deux groupes de menus se partagent la ligne */
	.hdf-footer__top > .wp-block-column:nth-child(2),
	.hdf-footer__top > .wp-block-column:nth-child(3) {
		flex-basis: calc(50% - var(--wp--preset--spacing--md)) !important;
	}
}

/* =========================================================
   MOBILE
   ========================================================= */

@media (max-width: 600px) {

	.hdf-footer__inner {
		padding: 3rem 1.25rem 2rem;
	}

	.hdf-footer__top {
		display: flex;
		flex-direction: column;
		gap: 2.75rem;
	}

	.hdf-footer__top > .wp-block-column {
		flex-basis: 100% !important;
		width: 100%;
	}

	.hdf-footer__brand {
		align-items: center;
	}

	.hdf-footer__brand .wp-block-social-links {
		justify-content: center;
	}

	/*
	Les blocs intérieurs portent is-not-stacked-on-mobile :
	ils restent bien sur deux colonnes.
	*/
	.hdf-footer__menu-pair {
		display: flex;
		flex-wrap: nowrap;
		gap: 1.5rem;
		width: 100%;
	}

	.hdf-footer__menu-pair > .wp-block-column {
		flex-basis: calc(50% - 0.75rem) !important;
	}

	.hdf-footer .hdf-footer__nav
	.wp-block-navigation-item__content {
		font-size: 0.82rem;
		line-height: 1.5;
	}
}


.hdf-footer__bottom { display: flex; align-items: center; justify-content: space-between; gap: 2rem; flex-wrap: wrap; }
.hdf-footer__copy { font-size: 0.78rem; color: rgba(239,232,216,0.3); }
.hdf-footer__legal { display: flex; gap: 1.5rem; }
.hdf-footer__legal a { font-size: 0.78rem; color: rgba(239,232,216,0.3); transition: color 0.25s ease; }
.hdf-footer__legal a:hover { color: var(--hdf-creme); }
/* === animations === */
.hdf-reveal { opacity: 1; transform: none; transition: opacity 0.65s ease, transform 0.65s ease; }
@media (prefers-reduced-motion: reduce) {
	.hdf-reveal, .hdf-reveal.is-entering { opacity: 1 !important; transform: none !important; transition: none !important; }
	* { animation-duration: 0.01ms !important; transition-duration: 0.01ms !important; }
}
/* === page intérieure — hero === */
/* Supprimer l'overlay uniforme, remplacer par dégradé en bas uniquement */
.hdf-page-hero .wp-block-cover__background {
	opacity: 0 !important;
}
.hdf-page-hero::after {
	content: '';
	position: absolute;
	inset: 0;
	pointer-events: none;
	z-index: 1;
	background: linear-gradient(
		to top,
		rgba(26,23,20,0.82) 0%,
		rgba(26,23,20,0.45) 25%,
		rgba(26,23,20,0) 55%
	);
}
.hdf-page-hero .wp-block-cover__inner-container {
	position: relative;
	z-index: 2;
	padding: 0 var(--wp--preset--spacing--md) var(--wp--preset--spacing--lg);
}
.hdf-page-hero__content { max-width: var(--wp--style--global--content-size); }
.hdf-page-hero__logo { margin: 0 0 var(--wp--preset--spacing--md) !important; }
.hdf-page-hero__logo img { height: 70px; width: auto; object-fit: contain; }
.hdf-page-hero__title { margin: 0 0 var(--wp--preset--spacing--sm); }
.hdf-page-hero__sub { margin: 0; font-size: var(--wp--preset--font-size--md); }

/* === page offrir — mise en forme type Schlumberger === */
.hdf-offrir-intro {
	overflow: visible !important;
	position: relative;
	z-index: 1;
}
/* Titre agrandi */
.hdf-offrir-intro .has-2-xl-font-size {
	font-size: clamp(2rem, 4vw, 3rem) !important;
	line-height: 1.15 !important;
}
/* Photo débordante : sort de la section crème, chevauche la section blanche */
.hdf-offrir-intro__img-col {
	align-self: flex-start;
	position: relative;
}

.hdf-offrir-intro__img img {
	width: 100%;
	height: auto;
	display: block;
}
/* Section s1 : padding compensatoire pour accueillir le débordement */
.hdf-offrir-s1 {
	position: relative;
	z-index: 0;
	padding-top: 10rem !important;
}

/* === page intérieure — intro === */
.hdf-page-intro__inner { padding: 0 var(--wp--preset--spacing--sm); }

/* === page intérieure — rows === */
.hdf-page-row .wp-block-columns { min-height: 560px; align-items: stretch; }

/* Accordéons (core/details) dans les rangées de page */
.hdf-page-accordion {
	border-top: 1px solid rgba(196,137,52,0.25);
	padding-top: var(--wp--preset--spacing--xs);
	padding-bottom: var(--wp--preset--spacing--xs);
}
.hdf-page-accordion summary {
	cursor: pointer;
	font-family: var(--wp--preset--font-family--zalando-sans-expanded);
	font-weight: 600;
	font-size: var(--wp--preset--font-size--sm);
	text-transform: uppercase;
	letter-spacing: 0.08em;
	color: var(--hdf-noir);
	list-style: none;
	display: flex;
	width: 100%;
	align-items: center;
	justify-content: space-between;
	gap: var(--wp--preset--spacing--xs);
}
.hdf-page-accordion summary::-webkit-details-marker { display: none; }
.hdf-page-accordion summary::after {
	content: "+";
	font-size: var(--wp--preset--font-size--lg);
	color: var(--hdf-or);
	transition: var(--hdf-transition);
}
.hdf-page-accordion[open] summary::after { content: "\2212"; }
.hdf-page-accordion summary + * { margin-top: var(--wp--preset--spacing--xs); }

/* FAQ (bloc SEOPress) : accordéon habillé façon hdf-page-accordion */
.wp-block-wpseopress-faq-block-v2 {
	max-width: var(--wp--style--global--content-size);
	margin-left: auto;
	margin-right: auto;
	display: flex;
	flex-direction: column;
	gap: var(--wp--preset--spacing--xs);
}
.wp-block-wpseopress-faq-block-v2 .wp-block-details {
	border: 1px solid rgba(196,137,52,0.25);
	background: var(--wp--preset--color--hdf-creme);
	padding: var(--wp--preset--spacing--sm) var(--wp--preset--spacing--md);
	transition: var(--hdf-transition);
}
.wp-block-wpseopress-faq-block-v2 .wp-block-details:hover { border-color: var(--hdf-or); }
.wp-block-wpseopress-faq-block-v2 .wp-block-details[open] {
	background: var(--wp--preset--color--hdf-blanc);
	box-shadow: var(--hdf-shadow);
}
.wp-block-wpseopress-faq-block-v2 summary {
	cursor: pointer;
	list-style: none;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: var(--wp--preset--spacing--xs);
	font-family: var(--wp--preset--font-family--zalando-sans-expanded);
	font-weight: 600 !important;
	font-size: var(--wp--preset--font-size--base);
	color: var(--hdf-noir);
}
.wp-block-wpseopress-faq-block-v2 summary strong { font-weight: 600; }
.wp-block-wpseopress-faq-block-v2 summary::-webkit-details-marker { display: none; }
.wp-block-wpseopress-faq-block-v2 summary::after {
	content: "+";
	flex-shrink: 0;
	font-size: var(--wp--preset--font-size--lg);
	color: var(--hdf-or);
	transition: var(--hdf-transition);
}
.wp-block-wpseopress-faq-block-v2 .wp-block-details[open] summary::after { content: "\2212"; }
.wp-block-wpseopress-faq-block-v2 summary + * {
	margin-top: var(--wp--preset--spacing--xs);
	padding-top: var(--wp--preset--spacing--xs);
	border-top: 1px solid rgba(196,137,52,0.15);
	color: var(--hdf-noir);
	line-height: 1.7;
}
.hdf-page-row__slideshow {
	display: flex;
	flex-direction: column;
	overflow: hidden;
}
.hdf-page-row__slideshow > .wp-block-gallery {
	flex: 1;
	min-height: 0;
}
.hdf-page-row__text { display: flex; flex-direction: column; justify-content: center; }

/* Padding dynamique aligné sur la grille du thème :
   — bord extérieur = max(md, 50vw - wideSize/2 + md) séaligne sur le footer
   — bord intérieur (vers l'image) = lg constant
   Utilise les variables WordPress du thème pour s'adapter si les valeurs changent. */

/* Row salle : texte à gauche, bord externe = gauche */
.hdf-page-row--salle .hdf-page-row__text {
	padding-top:    var(--wp--preset--spacing--xl) !important;
	padding-bottom: var(--wp--preset--spacing--xl) !important;
	padding-left:   max(var(--wp--preset--spacing--md), calc(50vw - var(--wp--style--global--wide-size) / 2 + var(--wp--preset--spacing--md))) !important;
	padding-right:  var(--wp--preset--spacing--lg) !important;
	align-items: flex-start;
}

/* Row cuisine : texte à droite, bord externe = droite */
.hdf-page-row--cuisine .hdf-page-row__text {
	padding-top:    var(--wp--preset--spacing--xl) !important;
	padding-bottom: var(--wp--preset--spacing--xl) !important;
	padding-right:  max(var(--wp--preset--spacing--md), calc(50vw - var(--wp--style--global--wide-size) / 2 + var(--wp--preset--spacing--md))) !important;
	padding-left:   var(--wp--preset--spacing--lg) !important;
	align-items: flex-start;
}

/* Séparateur horizontal court (or) */
.hdf-page-row .hdf-sep { max-width: 60px; margin-left: 0 !important; }

/* Infos pratiques */
.hdf-page-row__infos p { margin: 0 0 calc(var(--wp--preset--spacing--xs) / 1.5); }
.hdf-page-row__infos a { text-decoration: none; }
.hdf-page-row__infos a:hover { text-decoration: underline; }

/* Formules menu */
.hdf-page-row__menu { margin-top: 0; }
.hdf-page-row__menu .wp-block-list {
	list-style: none; padding: 0;
	margin: var(--wp--preset--spacing--xs) 0 var(--wp--preset--spacing--sm);
	font-size: var(--wp--preset--font-size--base);
}
.hdf-page-row__menu .wp-block-list li { padding: 0.3rem 0; border-bottom: 1px solid rgba(196,137,52,0.15); }
.hdf-page-row__menu .wp-block-list li:last-child { border-bottom: none; }

/* ===================================================================
   Style de bloc : Diaporama (is-style-diaporama sur core/gallery)
   Par défaut (sans JS / dans l'éditeur) : galerie normale visible.
   Avec JS : .hdf-diaporama--ready active le mode carrousel.
=================================================================== */

/* — État de base (fallback / éditeur) —
   Toutes les images visibles en grille normale.
   On force display:block pour écraser la grille flex native */
.wp-block-gallery.is-style-diaporama {
	display: block !important;
	margin: 0 !important;
	padding: 0 !important;
	position: relative;
}
.wp-block-gallery.is-style-diaporama .wp-block-image {
	display: block;
	margin: 0 !important;
}
.wp-block-gallery.is-style-diaporama .wp-block-image img {
	width: 100%; display: block; object-fit: cover;
}

/* — Mode carrousel actif (classe ajoutée par JS après init) — */
.wp-block-gallery.is-style-diaporama.hdf-diaporama--ready {
	overflow: hidden;
}
.wp-block-gallery.is-style-diaporama.hdf-diaporama--ready .wp-block-image {
	position: absolute;
	inset: 0;
	opacity: 0;
	transition: opacity 0.8s cubic-bezier(0.4, 0, 0.2, 1);
	pointer-events: none;
	margin: 0 !important;
}
.wp-block-gallery.is-style-diaporama.hdf-diaporama--ready .wp-block-image.hdf-dia--active {
	opacity: 1;
	pointer-events: auto;
}
.wp-block-gallery.is-style-diaporama.hdf-diaporama--ready .wp-block-image img {
	width: 100%; height: 100%; object-fit: cover; display: block;
}

/* — Boutons ronds bas-droite avec effet relief — */
.hdf-dia-controls {
	position: absolute;
	bottom: 1.5rem;
	right: 1.5rem;
	display: flex;
	gap: 0.5rem;
	z-index: 20;
}
.hdf-dia-btn {
	width: 44px;
	height: 44px;
	border-radius: 50%;
	border: none;
	cursor: pointer;
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 1.15rem;
	line-height: 1;
	color: var(--hdf-noir);
	/* Effet relief : gradient clair-à-sombre + ombres multicouches */
	background: linear-gradient(160deg, #f5efe3 0%, #ddd3bc 100%);
	box-shadow:
		0 1px 0 rgba(255,255,255,0.7) inset,
		0 -1px 0 rgba(0,0,0,0.12) inset,
		0 4px 12px rgba(0,0,0,0.35),
		0 2px 4px rgba(0,0,0,0.2);
	transition: transform 0.15s ease, box-shadow 0.15s ease, background 0.2s ease;
}
.hdf-dia-btn:hover {
	background: linear-gradient(160deg, var(--hdf-or) 0%, #a6701c 100%);
	color: #fff;
	box-shadow:
		0 1px 0 rgba(255,255,255,0.5) inset,
		0 -1px 0 rgba(0,0,0,0.2) inset,
		0 6px 18px rgba(0,0,0,0.4),
		0 2px 6px rgba(0,0,0,0.25);
	transform: translateY(-1px);
}
.hdf-dia-btn:active {
	transform: translateY(1px);
	box-shadow:
		0 1px 0 rgba(0,0,0,0.15) inset,
		0 2px 6px rgba(0,0,0,0.25);
}

/* === page intérieure — CTA === */
.hdf-page-cta .wp-block-heading { margin-bottom: var(--wp--preset--spacing--xs); }



/* === responsive === */

/* Palier intermédiaire : logo icône, nav comprimée, boutons conservés */
@media (max-width: 1200px) {
	.hdf-header { padding: 0 1.5rem; gap: 0; }
	.hdf-nav { gap: 0; }
	.hdf-nav__link { padding: 0 0.6rem; font-size: 0.72rem; }
	.hdf-header__logo-img--full { display: none; }
	.hdf-header__logo-img--icon { display: block; }
	.home .hdf-hero__content > h1 {
		position: absolute !important;
		inline-size: 0;
		block-size: 0;
		overflow: hidden;
		clip-path: inset(50%);
		white-space: nowrap;
	}
	/* Page hôtel alternative : menu vertical resserré (padding réduit, structure 1/4-3/4 conservée) */
	.hdf-rooms-nav-col__inner { padding: var(--wp--preset--spacing--md) var(--wp--preset--spacing--sm); }
	.hdf-rooms-nav-col__tab .wp-element-button { font-size: 0.78rem; }
	/* Espace resserré : la colonne texte gagne de la place */
	.hdf-rooms-content-col .hdf-room-panel .wp-block-columns { gap: var(--wp--preset--spacing--md); }
	.hdf-rooms-content-col .hdf-room-panel .wp-block-column.hdf-room-panel__col-photo { flex-basis: 54%; }
	.hdf-rooms-content-col .hdf-room-panel .wp-block-column.hdf-room-panel__text { flex-basis: 46%; }
}

/* Mobile : burger, logo centré, bouton Réserver + FR uniquement */
@media (max-width: 1024px) {
	/* position: fixed (et non sticky) : évite un bug de rendu sur certains navigateurs
	   où un sticky transformé (translateY) ne redevient plus jamais visible au scroll up */
	body:not(.mce-content-body):not(.block-editor-iframe__body) { padding-top: var(--hdf-header-h); }
	.hdf-header { position: fixed; top: 0; left: 0; right: 0; width: 100%; padding: 0 1rem; justify-content: space-between; transition: transform var(--hdf-transition), box-shadow var(--hdf-transition); }
	/* La grille desktop redevient une rangée sur mobile */
	.hdf-header__inner {
		display: flex !important;
		align-items: center;
		justify-content: space-between;
		gap: 0.75rem;
		width: 100%;
	}

	/* Burger + logo à gauche */
	.hdf-header__brand {
		display: flex;
		flex: 1 1 auto;
		align-items: center;
		justify-content: flex-start;
		gap: 0.5rem;
	}

	/* Bouton Réserver à droite */
	.hdf-header__actions {
		flex: 0 0 auto;
		margin-left: auto !important;
	}
	
	.hdf-header--hidden { transform: translateY(-100%); }
	/* Bouton Réserver flottant masqué : redondant avec le bouton Réserver du header + burger. Offrir un moment reste seul visible. */
	.hdf-sticky-reserve { display: none !important; }
	.hdf-nav { display: none; }
	.hdf-burger { display: flex; flex-direction: column; }
	/* Logo juste à droite du burger, dans le flux normal */
	.hdf-header__logo {
		margin: 0;
	}
	.hdf-header__logo-img--full { display: none !important; }
	.hdf-header__logo-img--icon { display: block !important; }
	/* Offrir est repris dans le menu mobile */
	.hdf-header__actions .hdf-btn--offrir {
		display: none !important;
	}
	.hdf-header__actions .hdf-btn-group {
		gap: 0;
	}
	/* Le panneau ne suit pas la règle display:none de .hdf-nav */
	.hdf-mobile-menu { display: flex; }
	.hdf-bienvenue__inner, .wp-block-columns.hdf-bienvenue__inner { flex-wrap: wrap !important; gap: 2rem; }
	/* Colonne plus étroite : débord réduit mais toujours négatif pour rester lisible sans sortir du conteneur */
	.hdf-bienvenue__image figcaption.wp-element-caption {
		bottom: calc(-1 * var(--wp--preset--spacing--md));
		right: calc(-1 * var(--wp--preset--spacing--xs));
		max-width: calc(var(--wp--preset--spacing--lg) * 2.5);
	}
	.hdf-hotel__inner { padding-left: 0; }
	.hdf-hotel__sidebar { position: static; flex-direction: row; padding-top: 0; }
	.hdf-restaurants__grid, .wp-block-columns.hdf-restaurants__grid { flex-wrap: wrap !important; margin-left: 0 !important; margin-right: 0 !important; width: 100%; }
	.wp-block-column.hdf-resto-card { flex: 1 1 280px; }
	.hdf-traiteur__grid, .wp-block-columns.hdf-traiteur__grid { flex-wrap: wrap !important; }
	.wp-block-column.hdf-traiteur-card { flex: 1 1 160px; }
	.hdf-seminaires__cards, .wp-block-columns.hdf-seminaires__cards { flex-wrap: wrap !important; }
	.hdf-seminaires__cards .wp-block-column.hdf-sem-card { flex: 1 1 200px; }
	.hdf-auch__inner, .wp-block-columns.hdf-auch__inner { flex-wrap: wrap !important; gap: 2rem; }
	.hdf-footer__top { grid-template-columns: 1fr 1fr; }
	.hdf-instagram__placeholder { grid-template-columns: repeat(3, 1fr); }
	.hdf-room-slide .wp-block-columns { flex-wrap: wrap !important; }
	.hdf-mega { width: 100%; left: 0; transform: none; }
	/* Page intérieure rows : slideshow h réduite */
	.hdf-page-row .wp-block-columns { min-height: 420px; }
	.hdf-page-hero .wp-block-cover__inner-container { padding: 0 var(--wp--preset--spacing--sm) var(--wp--preset--spacing--md); }
	.hdf-page-hero__logo img { height: 52px; }
	/* Page hôtel alternative : menu vertical devient horizontal pleine largeur, au-dessus des chambres */
	.hdf-rooms-layout { padding-left: 0; padding-right: 0; }
	.hdf-rooms-layout__cols.wp-block-columns { flex-wrap: wrap !important; }
	.wp-block-columns.hdf-rooms-layout__cols > .wp-block-column.hdf-rooms-nav-col { flex-basis: 100%; width: 100%; }
	.hdf-rooms-nav-col__inner {
		position: sticky;
		top: var(--hdf-header-h);
		z-index: 20;
		background: var(--hdf-creme);
		border-right: none;
		border-bottom: 1px solid rgba(26,23,20,0.1);
		padding: var(--wp--preset--spacing--sm) var(--wp--preset--spacing--md);
		width: 100%;
	}
	.hdf-rooms-nav-col__title { display: none; }
	.hdf-rooms-nav-col__list.wp-block-buttons {
		flex-direction: row !important;
		flex-wrap: nowrap;
		overflow-x: auto;
		gap: var(--wp--preset--spacing--sm);
	}
	.wp-block-button.hdf-rooms-nav-col__tab { flex-shrink: 0; width: auto; }
	.hdf-rooms-nav-col__tab .wp-element-button {
		padding: var(--wp--preset--spacing--xs) 0;
		border-left: none;
		border-bottom: 2px solid transparent;
		white-space: nowrap;
	}
	.hdf-rooms-nav-col__tab.is-active .wp-element-button { border-left-color: transparent; border-bottom-color: var(--hdf-or); }
	.hdf-rooms-content-col .hdf-room-panel .wp-block-columns { flex-wrap: wrap !important; }
}
@media (max-width: 640px) {
	.home .entry-content > .wp-block-cover:first-child {
		aspect-ratio: 3 / 4 !important;
		min-height: 0 !important;
		height: auto !important;
	}
	.hdf-hero__content { padding: 0 1.25rem 4rem; }
	.home .hdf-hero__content > p.hdf-hero__title {
		font-size: var(--wp--preset--font-size--3-xl) !important;
		text-align: center;
	}
	.home .hdf-bienvenue { padding-top: var(--wp--preset--spacing--md) !important; }
	.home .hdf-bienvenue__text > .wp-block-image:first-child { margin-bottom: var(--wp--preset--spacing--sm) !important; }
	/* Petit écran : débord négatif accentué des deux côtés, bloc élargi à la moitié de l'image */
	.hdf-bienvenue__image figcaption.wp-element-caption {
		bottom: calc(-1 * var(--wp--preset--spacing--md));
		right: calc(-1 * var(--wp--preset--spacing--sm));
		width: 50%;
		padding: var(--wp--preset--spacing--sm);
	}
	.hdf-hero__title { font-size: 2.4rem; }
	/* Page rows — sur mobile : toujours en colonne unique (texte puis image) */
	.hdf-page-row .wp-block-columns.is-not-stacked-on-mobile { flex-wrap: wrap !important; }
	.hdf-page-row .wp-block-column { width: 100% !important; flex-basis: 100% !important; }
	.hdf-page-row__text { padding: var(--wp--preset--spacing--lg) var(--wp--preset--spacing--md) !important; }
	.hdf-page-row__slideshow { min-height: 280px; }
	/* Rangee cuisine : sur mobile, l'image passe SOUS le texte en inversant l'ordre */
	.hdf-page-row--cuisine .hdf-page-row__slideshow { order: 2; }
	.hdf-page-row--cuisine .hdf-page-row__text { order: 1; }
	.hdf-hero__actions { flex-direction: column; }
	.hdf-room-panel__col-photo .hdf-room-panel__meta { grid-template-columns: repeat(2, 1fr); }
	/* Rangées séminaires : pile unique sur mobile */
	.hdf-sem-row__container { padding: var(--wp--preset--spacing--xl) var(--wp--preset--spacing--md); }
	.hdf-sem-row .wp-block-columns.is-not-stacked-on-mobile { flex-wrap: wrap !important; }
	.hdf-sem-row .wp-block-column { width: 100% !important; flex-basis: 100% !important; }
	.hdf-sem-row__text { padding: var(--wp--preset--spacing--lg) 0 0; }
	.hdf-sem-row--overlap .hdf-sem-row__visual { gap: var(--wp--preset--spacing--xs); }
	.hdf-sem-row__collage { grid-template-columns: 1fr 1fr; grid-template-rows: 1fr 1fr; min-height: 320px; }
	.hdf-sem-row--banner .wp-block-cover { min-height: 20rem; }
	.hdf-bienvenue, .hdf-hotel, .hdf-restaurants, .hdf-rooftop, .hdf-traiteur, .hdf-seminaires, .hdf-auch, .hdf-actu, .hdf-instagram, .hdf-footer { padding-left: 1.25rem; padding-right: 1.25rem; }
	/* Accueil — restaurants : rail tactile compact, avec la carte suivante visible */
	.hdf-restaurants {
		padding-top: var(--wp--preset--spacing--lg) !important;
		padding-right: 0 !important;
		padding-left: 0 !important;
	}
	.hdf-restaurants__header {
		padding-right: var(--wp--preset--spacing--sm);
		padding-left: var(--wp--preset--spacing--sm);
		margin-bottom: var(--wp--preset--spacing--md);
	}
	.hdf-restaurants__grid,
	.wp-block-columns.hdf-restaurants__grid {
		box-sizing: border-box;
		width: 100%;
		margin-right: 0 !important;
		margin-left: 0 !important;
		padding-right: var(--wp--preset--spacing--lg);
		padding-left: var(--wp--preset--spacing--sm);
		display: flex !important;
		flex-wrap: nowrap !important;
		gap: var(--wp--preset--spacing--xs);
		overflow-x: auto;
		overflow-y: hidden;
		scroll-snap-type: x mandatory;
		scroll-padding-left: var(--wp--preset--spacing--sm);
		scrollbar-width: none;
		-webkit-overflow-scrolling: touch;
	}
	.hdf-restaurants__grid::-webkit-scrollbar { display: none; }
	.wp-block-columns.hdf-restaurants__grid > .wp-block-column.hdf-resto-card {
		flex: 0 0 calc(100% - var(--wp--preset--spacing--lg));
		width: calc(100% - var(--wp--preset--spacing--lg));
		aspect-ratio: 4 / 5;
		scroll-snap-align: start;
		scroll-snap-stop: always;
	}
	.hdf-resto-card .wp-block-image.hdf-resto-card__img img,
	.hdf-resto-card figure.hdf-resto-card__img img { aspect-ratio: 4 / 5; }
	.wp-block-group.hdf-resto-card__content { padding: var(--wp--preset--spacing--sm); }
	/* Accueil — chambres : carrousel piloté, compact et entièrement accessible au toucher */
	.hdf-hotel {
		padding-top: var(--wp--preset--spacing--lg) !important;
		padding-right: var(--wp--preset--spacing--sm) !important;
		padding-bottom: var(--wp--preset--spacing--lg) !important;
		padding-left: var(--wp--preset--spacing--sm) !important;
	}
	.hdf-hotel__header { margin-bottom: var(--wp--preset--spacing--md); }
	.hdf-rooms-nav {
		width: calc(100% + var(--wp--preset--spacing--sm));
		overflow-x: auto;
		overflow-y: hidden;
		scroll-snap-type: x proximity;
		scrollbar-width: none;
		-webkit-overflow-scrolling: touch;
		padding-right: var(--wp--preset--spacing--sm);
		margin-bottom: var(--wp--preset--spacing--md);
		-webkit-mask-image: linear-gradient(to right, black 0%, black calc(100% - var(--wp--preset--spacing--lg)), transparent 100%);
		mask-image: linear-gradient(to right, black 0%, black calc(100% - var(--wp--preset--spacing--lg)), transparent 100%);
	}
	.hdf-rooms-nav::-webkit-scrollbar { display: none; }
	.wp-block-button.hdf-rooms-nav__tab { scroll-snap-align: start; }
	.hdf-rooms-nav__tab .wp-element-button {
		padding-left: var(--wp--preset--spacing--sm);
		padding-right: var(--wp--preset--spacing--sm);
		white-space: nowrap;
	}
	.hdf-rooms-nav__tab:first-child .wp-element-button { padding-left: 0; }
	.hdf-room-slide .wp-block-columns {
		gap: var(--wp--preset--spacing--sm);
	}
	.hdf-room-controls {
		display: flex;
		align-items: center;
		justify-content: space-between;
		gap: var(--wp--preset--spacing--sm);
		margin-top: var(--wp--preset--spacing--md);
	}
	.hdf-room-controls__status {
		color: var(--wp--preset--color--hdf-or);
		font-family: var(--wp--preset--font-family--ibm-plex-sans);
		font-size: var(--wp--preset--font-size--xs);
		letter-spacing: 0.12em;
	}
	.hdf-room-controls__buttons { display: flex; gap: var(--wp--preset--spacing--xs); }

	/* Accueil — traiteur et événements : rail tactile compact sans bloquer le scroll vertical */
	.hdf-traiteur {
		padding-top: var(--wp--preset--spacing--lg) !important;
		padding-right: 0 !important;
		padding-bottom: var(--wp--preset--spacing--lg) !important;
		padding-left: 0 !important;
	}
	.hdf-traiteur__header {
		padding-right: var(--wp--preset--spacing--sm);
		padding-left: var(--wp--preset--spacing--sm);
		margin-bottom: var(--wp--preset--spacing--md);
	}
	.hdf-traiteur__grid,
	.wp-block-columns.hdf-traiteur__grid {
		box-sizing: border-box;
		width: 100%;
		max-width: none;
		margin-right: 0 !important;
		margin-left: 0 !important;
		padding-right: var(--wp--preset--spacing--lg);
		padding-left: var(--wp--preset--spacing--sm);
		display: flex !important;
		flex-wrap: nowrap !important;
		gap: var(--wp--preset--spacing--xs);
		overflow-x: auto;
		overflow-y: hidden;
		scroll-snap-type: x mandatory;
		scroll-padding-left: var(--wp--preset--spacing--sm);
		scrollbar-width: none;
		-webkit-overflow-scrolling: touch;
	}
	.hdf-traiteur__grid::-webkit-scrollbar { display: none; }
	.hdf-traiteur__grid > .wp-block-column.hdf-traiteur-card {
		flex: 0 0 calc(100% - var(--wp--preset--spacing--lg));
		width: calc(100% - var(--wp--preset--spacing--lg));
		min-width: 0;
		aspect-ratio: 4 / 5;
		scroll-snap-align: start;
		scroll-snap-stop: always;
	}
	.hdf-traiteur-card .wp-block-image img { aspect-ratio: 4 / 5; }
	.wp-block-group.hdf-traiteur-card__label {
		right: var(--wp--preset--spacing--sm);
		bottom: var(--wp--preset--spacing--sm);
		left: var(--wp--preset--spacing--sm);
	}
	/* Accueil — professionnels et groupes : restaurer le carrousel natif du plugin */
	.hdf-seminaires {
		padding-top: var(--wp--preset--spacing--lg) !important;
		padding-right: var(--wp--preset--spacing--sm) !important;
		padding-bottom: var(--wp--preset--spacing--lg) !important;
		padding-left: var(--wp--preset--spacing--sm) !important;
	}
	.hdf-seminaires__header { margin-bottom: var(--wp--preset--spacing--md); }
	.hdf-seminaires__cards.is-style-snap-carousel {
		flex-wrap: nowrap !important;
		grid-template-columns: none;
	}
	.hdf-seminaires__cards.is-style-snap-carousel > .wp-block-group.hdf-sem-card {
		flex-basis: calc(88% - var(--wp--preset--spacing--xs));
		min-width: 0;
	}
	.hdf-seminaires .snap-carousel-wrapper { padding-top: calc(var(--wp--preset--spacing--md) + var(--wp--preset--spacing--sm)); }
	/* Accueil — actualités : même rail tactile que les restaurants */
	.hdf-actu {
		padding-top: var(--wp--preset--spacing--lg) !important;
		padding-right: 0 !important;
		padding-left: 0 !important;
	}
	.hdf-actu__header { padding-right: 0; padding-left: 0; }
	.hdf-actu__header > .wp-block-group:first-child {
		width: calc(100% - (var(--wp--preset--spacing--md) + var(--wp--preset--spacing--xs)) * 2);
		margin-right: calc(var(--wp--preset--spacing--md) + var(--wp--preset--spacing--xs)) !important;
		margin-left: calc(var(--wp--preset--spacing--md) + var(--wp--preset--spacing--xs)) !important;
	}
	.hdf-actu__grid {
		box-sizing: border-box;
		width: 100%;
		margin-right: 0 !important;
		margin-left: 0 !important;
		padding-right: var(--wp--preset--spacing--lg);
		padding-left: var(--wp--preset--spacing--sm);
		display: flex !important;
		flex-wrap: nowrap !important;
		gap: var(--wp--preset--spacing--xs);
		overflow-x: auto;
		overflow-y: hidden;
		scroll-snap-type: x mandatory;
		scroll-padding-left: var(--wp--preset--spacing--sm);
		scrollbar-width: none;
		-webkit-overflow-scrolling: touch;
	}
	.hdf-actu__grid::-webkit-scrollbar { display: none; }
	.hdf-actu__grid > .hdf-actu-card {
		flex: 0 0 calc(100% - var(--wp--preset--spacing--lg));
		width: calc(100% - var(--wp--preset--spacing--lg));
		scroll-snap-align: start;
		scroll-snap-stop: always;
	}
	/* Footer — partenaires : ruban pleine largeur, manuel sans JS et animé après initialisation */
	.hdf-footer__partners {
		box-sizing: border-box;
		width: 100vw;
		margin-left: calc(50% - 50vw);
		padding: var(--wp--preset--spacing--sm) 0;
		overflow-x: auto;
		overflow-y: hidden;
		scrollbar-width: none;
	}
	.hdf-footer__partners::-webkit-scrollbar { display: none; }
	.hdf-footer__partners-inner {
		width: max-content;
		max-width: none;
		margin: 0;
		display: flex;
		flex-wrap: nowrap;
		justify-content: flex-start;
		gap: var(--wp--preset--spacing--md);
	}
	.hdf-footer__partners-inner > .hdf-footer__partner-link,
	.hdf-footer__partners-set > .hdf-footer__partner-link {
		flex: 0 0 calc(var(--wp--preset--spacing--lg) * 2);
	}
	.hdf-footer__partner-link img { height: var(--wp--preset--spacing--lg); }
	.hdf-footer__partners-set {
		display: flex;
		align-items: center;
		flex: 0 0 auto;
		gap: var(--wp--preset--spacing--md);
	}
	.hdf-footer__partners.is-auto-scrolling { overflow: hidden; }
	.hdf-footer__partners.is-auto-scrolling .hdf-footer__partners-inner {
		animation: hdf-partners-marquee 28s linear infinite;
	}
	.hdf-footer__partners.is-auto-scrolling:hover .hdf-footer__partners-inner,
	.hdf-footer__partners.is-auto-scrolling:focus-within .hdf-footer__partners-inner { animation-play-state: paused; }
	/* Marque sur toute la largeur, puis les 4 colonnes nav en grille 2x2 (Maison/Lieux, Services/Pratique) */
	.hdf-footer__top { grid-template-columns: 1fr 1fr; }
	.hdf-footer__brand {
		grid-column: 1 / -1;
		display: flex;
		flex-direction: column;
		align-items: center;
		justify-content: flex-start;
		gap: var(--wp--preset--spacing--md);
		width: 100%;
	}
	.hdf-footer__brand .hdf-footer__logo { margin-bottom: 0; }
	.hdf-footer__brand .hdf-footer__social {
		width: auto;
		flex: 0 0 auto;
		justify-content: flex-end;
	}
	.hdf-footer__bottom { flex-direction: column; text-align: center; }
	.hdf-gift-bubble { bottom: 1rem; right: 1rem; padding: 0.75rem 1rem; }
	.hdf-sticky-reserve { bottom: 1rem; }
}
/* === editor === */
.block-editor-block-pattern-setup, .block-editor-block-pattern-setup__toolbar,
.block-editor-block-pattern-setup__grid, .block-editor-block-pattern-setup__carousel { display: none !important; }

/* Dans l'éditeur, les galeries diaporama restent visibles en colonne (JS inactif) */
.editor-styles-wrapper .wp-block-gallery.is-style-diaporama { display: block !important; }
.editor-styles-wrapper .wp-block-gallery.is-style-diaporama .wp-block-image { display: block !important; position: static !important; opacity: 1 !important; margin-bottom: var(--wp--preset--spacing--xs) !important; }
.editor-styles-wrapper .wp-block-gallery.is-style-diaporama .wp-block-image img { height: auto !important; object-fit: cover; }
.editor-styles-wrapper .hdf-page-row .wp-block-columns { min-height: 0 !important; }
.editor-styles-wrapper .hdf-page-row__slideshow { min-height: 0 !important; }



/* Sous-menu éditorial du hero */
nav.sous-menu .wp-block-navigation__container {

	column-gap: 0 !important;
	gap: 0 !important;

}

nav.sous-menu .wp-block-navigation {
	width: 100%;
	max-width: 420px;
	margin-top: 2rem;
}

/* Liste verticale */
nav.sous-menu .wp-block-navigation ul,
nav.sous-menu .wp-block-navigation .wp-block-navigation__container {
	display: flex;
	flex-direction: column;
	align-items: stretch;
	gap: 0;
	width: 100%;
	margin: 0;
	padding: 0;
	list-style: none;
}

/* Chaque entrée */
nav.sous-menu .wp-block-navigation li,
nav.sous-menu .wp-block-navigation .wp-block-navigation-item {
	position: relative;
	width: 100%;
	margin: 0;
	border-top: 1px solid rgb(255 255 255 / 18%);
}

/* Dernière bordure */
nav.sous-menu .wp-block-navigation li:last-child,
nav.sous-menu .wp-block-navigation .wp-block-navigation-item:last-child {
	border-bottom: 1px solid rgb(255 255 255 / 18%);
}

/* Liens */
nav.sous-menu .wp-block-navigation a,
nav.sous-menu .wp-block-navigation .wp-block-navigation-item__content {
	display: flex;
	align-items: center;
	justify-content: space-between;
	width: 100%;
	padding: 0.9rem 2.5rem 0.9rem 1.15rem;
	color: rgb(255 255 255 / 72%);
	font-size: 0.78rem;
	font-weight: 500;
	line-height: 1.35;
	letter-spacing: 0.08em;
	text-decoration: none;
	text-transform: uppercase;
	transition:
		color 0.2s ease,
		background-color 0.2s ease,
		padding-left 0.2s ease;
}

/* Flèche */
nav.sous-menu .wp-block-navigation a::after,
nav.sous-menu .wp-block-navigation .wp-block-navigation-item__content::after {
	content: "→";
	position: absolute;
	right: 0.5rem;
	color: rgb(255 255 255 / 45%);
	font-size: 1rem;
	transition:
		transform 0.2s ease,
		color 0.2s ease;
}

/* Survol et focus clavier */
nav.sous-menu .wp-block-navigation a:hover,
nav.sous-menu .wp-block-navigation a:focus-visible,
nav.sous-menu .wp-block-navigation .wp-block-navigation-item__content:hover,
nav.sous-menu .wp-block-navigation .wp-block-navigation-item__content:focus-visible {
	padding-left: 1.45rem;
	color: #fff;
	background: rgb(255 255 255 / 5%);
	outline: none;
}

nav.sous-menu .wp-block-navigation a:hover::after,
nav.sous-menu .wp-block-navigation a:focus-visible::after,
nav.sous-menu .wp-block-navigation .wp-block-navigation-item__content:hover::after,
nav.sous-menu .wp-block-navigation .wp-block-navigation-item__content:focus-visible::after {
	color: #c9a85c;
	transform: translateX(0.2rem);
}

/* Page en cours */
nav.sous-menu .wp-block-navigation .current-menu-item > a,
nav.sous-menu .wp-block-navigation .current-menu-item > .wp-block-navigation-item__content,
nav.sous-menu .wp-block-navigation .current-menu-ancestor > a,
nav.sous-menu .wp-block-navigation .current-menu-ancestor > .wp-block-navigation-item__content {
	padding-left: 1.45rem;
	color: #fff;
	font-weight: 650;
	background: rgb(255 255 255 / 7%);
	box-shadow: inset 2px 0 0 #c9a85c;
}

/* Flèche active */
nav.sous-menu .wp-block-navigation .current-menu-item > a::after,
nav.sous-menu .wp-block-navigation .current-menu-item > .wp-block-navigation-item__content::after,
nav.sous-menu .wp-block-navigation .current-menu-ancestor > a::after,
nav.sous-menu .wp-block-navigation .current-menu-ancestor > .wp-block-navigation-item__content::after {
	color: #c9a85c;
}

/* =========================================================
   SOUS-MENU ÉDITORIAL DU HERO - MOBILE
   ========================================================= */

@media (max-width: 781px) {

	/* Hero moins haut */
	.wp-block-cover:has(nav.sous-menu) {
		min-height: auto !important;
		padding-top: 2rem !important;
		padding-bottom: 2rem !important;
	}

	/* Réduction de l'espace après le titre */
	.wp-block-cover:has(nav.sous-menu) h1 {
		margin-bottom: 1.25rem !important;
	}

	/* Le nav ne rajoute pas d'espace autour du bloc */
	nav.sous-menu {
		margin: 0;
		padding: 0;
	}

	/* Bloc sombre du menu */
	nav.sous-menu .wp-block-navigation {
		width: 100%;
		max-width: none;
		margin: 0;
		padding: 0.75rem 1rem;
		border-radius: 1.25rem;
		background: rgb(20 20 20 / 72%);
		backdrop-filter: blur(10px);
		-webkit-backdrop-filter: blur(10px);
	}

	/* Liens moins hauts */
	nav.sous-menu
	.wp-block-navigation-item__content {
		padding: 0.85rem 0.75rem;
	}
	.hdf-hero__right {
		padding-top: var(--wp--preset--spacing--md) !important;
		padding-bottom: var(--wp--preset--spacing--md) !important;
	}	

}


/* =========================================================
   7. TIMELINE GUTENBERG

   Groupe parent : .timeline
   Enfants : groupes contenant un <p class="timeline-date">
   ========================================================= */

.wp-block-group.timeline {
	--timeline-spacing: 50px;
	--timeline-radius: 4px;
	--timeline-date-width: 120px;
	--timeline-left-gap: 60px;
	--timeline-dot-border: 4px;
	--timeline-dot-size: 11px;
	--timeline-line-width: 4px;
	--timeline-primary: var(--hdf-or);

	position: relative;

	max-width: 30rem;
	margin:
		var(--timeline-spacing)
		0
		var(--timeline-spacing)
		calc(var(--timeline-date-width) + var(--timeline-left-gap));

	padding: var(--timeline-spacing);

	border-left:
		var(--timeline-line-width)
		solid
		var(--timeline-primary);

	border-top-right-radius: var(--timeline-radius);
	border-bottom-right-radius: var(--timeline-radius);

	background: rgba(255, 255, 255, 0.03);

	font-size: 1.03em;
	line-height: 1.4;
	text-align: left;
}


/* Étape */

.wp-block-group.timeline > .wp-block-group {
	position: relative;

	margin-bottom: var(--timeline-spacing);
	padding-bottom: calc(var(--timeline-spacing) * 0.5);

	border-bottom: 1px dashed rgba(0, 0, 0, 0.1);
}


/* Dernière étape */

.wp-block-group.timeline > .wp-block-group:last-of-type {
	margin-bottom: 0;
	padding-bottom: 0;
	border-bottom: none;
}


/* Pastille */

.wp-block-group.timeline > .wp-block-group::after {
	content: "";

	position: absolute;
	top: 25px;
	left: -3.6rem;

	width: var(--timeline-dot-size);
	height: var(--timeline-dot-size);

	border-radius: 50%;

	background: #fff;

	box-shadow:
		0 0 0
		var(--timeline-dot-border)
		var(--timeline-primary);
}


/* Date */

.wp-block-group.timeline .timeline-date {
	position: absolute;
	top: 20px;
	left: -200px;

	min-width: var(--timeline-date-width);
	margin: 0;

	font-size: 0.9em;
	line-height: 1.3;
	text-align: right;

	opacity: 0.6;
}


/* =========================================================
   TIMELINE GUTENBERG — MOBILE

   Date au-dessus du contenu
   ========================================================= */

@media (max-width: 781px) {

	.wp-block-group.timeline {
		--timeline-spacing: 32px;

		max-width: none;
		margin: var(--timeline-spacing) 0;

		padding:
			var(--timeline-spacing)
			1rem
			var(--timeline-spacing)
			1.5rem;

		font-size: 1em;
	}

	.wp-block-group.timeline > .wp-block-group {
		margin-bottom: var(--timeline-spacing);
		padding-bottom: var(--timeline-spacing);
	}

	.wp-block-group.timeline .timeline-date {
		position: static;

		min-width: 0;
		margin: 0 0 0.75rem;

		font-size: 0.9em;
		line-height: 1.25;
		text-align: left;

		opacity: 0.7;
	}

	.wp-block-group.timeline .timeline-date + * {
		margin-top: 0;
	}

	.wp-block-group.timeline > .wp-block-group::after {
		top: 0.25rem;

		left:
			calc(
				-1.5rem
				- (var(--timeline-dot-size) / 2)
				- (var(--timeline-line-width) / 2)
			);
	}
}


/* =========================================================
   CONTENU ÉDITORIAL
   Listes et liens
   ========================================================= */
/* =========================================================
   LISTES DANS LE CONTENU
   ========================================================= */

.wp-block-post-content ul,
.wp-block-post-content ul.wp-block-list {
	list-style-type: disc;
	list-style-position: outside;
	padding-left: 1.5em;
	margin-block: 1em;
}

.wp-block-post-content ol,
.wp-block-post-content ol.wp-block-list {
	list-style-type: decimal;
	list-style-position: outside;
	padding-left: 1.5em;
	margin-block: 1em;
}

/* Force la réapparition des marqueurs */
.wp-block-post-content li {
	display: list-item;
}

/* Espacement entre les éléments */
.wp-block-post-content li + li {
	margin-top: 0.4em;
}

/* Listes imbriquées */
.wp-block-post-content ul ul {
	list-style-type: circle;
	margin-block: 0.4em;
}

.wp-block-post-content ul ul ul {
	list-style-type: square;
}

/* Liens dans le contenu uniquement */
.wp-block-post-content a:not(
	.wp-element-button,
	.wp-block-button__link,
	.wp-block-file__button
) {
	text-decoration-line: underline;
	text-decoration-thickness: 1px;
	text-underline-offset: 0.18em;
	text-decoration-skip-ink: auto;
}

/* Renforcement au survol et au clavier */
.wp-block-post-content a:not(
	.wp-element-button,
	.wp-block-button__link,
	.wp-block-file__button
):hover,
.wp-block-post-content a:not(
	.wp-element-button,
	.wp-block-button__link,
	.wp-block-file__button
):focus-visible {
	text-decoration-thickness: 2px;
}


/* =========================================
   MENUS DESKTOP PAR LANGUE
   ========================================= */

/* Les deux menus partagent la même mise en page */
.hdf-mobile-nav {
	flex-direction: column;
	width: 100%;
}

/* Menu anglais masqué par défaut */
.hdf-mobile-nav--en {
	display: none;
}

/* Français */
html[lang^="fr"] .hdf-mobile-nav--fr {
	display: flex;
}

html[lang^="fr"] .hdf-mobile-nav--en {
	display: none;
}

/* Anglais */
html[lang^="en"] .hdf-mobile-nav--fr {
	display: none;
}

html[lang^="en"] .hdf-mobile-nav--en {
	display: flex;
}

/* Boutons mobiles anglais masqués par défaut */
.hdf-mobile-actions--en {
	display: none;
}

/* Version française */
html[lang^="fr"] .hdf-mobile-actions--fr {
	display: flex;
}

html[lang^="fr"] .hdf-mobile-actions--en {
	display: none;
}

/* Version anglaise */
html[lang^="en"] .hdf-mobile-actions--fr {
	display: none;
}

html[lang^="en"] .hdf-mobile-actions--en {
	display: flex;
}


/* =========================================
   TABLETTE ET MOBILE
   ========================================= */

@media (max-width: 1024px) {

	html[lang] .hdf-nav--fr,
	html[lang] .hdf-nav--en {
		display: none !important;
	}

}

/* =========================================================
   MEILLEUR TARIF GARANTI
   ========================================================= */

.hdf-best-rate {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 0.8rem;

	margin: 1.5rem auto 0;

	font-size: 0.75rem;
	line-height: 1.3;
	font-weight: 600;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	text-align: center;

	color: var(--wp--preset--color--hdf-or, #c59a4a);
}

.hdf-best-rate::before,
.hdf-best-rate::after {
	content: "";
	width: 1.5rem;
	height: 1px;
	background: currentColor;
	opacity: 0.7;
}

@media (max-width: 600px) {
	.hdf-best-rate {
		gap: 0.6rem;
		font-size: 0.68rem;
		letter-spacing: 0.08em;
	}

	.hdf-best-rate::before,
	.hdf-best-rate::after {
		width: 1rem;
	}
}