/* ==========================================================================
   La Kabann - feuille de style unique (site + aperçu dans l'éditeur)
   Préfixe des classes : lk-
   ========================================================================== */

/* 1. Jetons
   ========================================================================== */
:root {
	--lk-nuit: var(--wp--preset--color--nuit, #0d1b2a);
	--lk-sous-bois: var(--wp--preset--color--sous-bois, #13253a);
	--lk-sous-bois-survol: #1a2f48;
	--lk-nuit-rgb: 13, 27, 42;
	--lk-sous-bois-rgb: 19, 37, 58;
	--lk-petrole: var(--wp--preset--color--petrole, #24403c);
	--lk-cuivre: var(--wp--preset--color--cuivre, #b9875a);
	--lk-cuivre-clair: #c99a6c;
	--lk-cuivre-fonce: var(--wp--preset--color--cuivre-fonce, #8a5a33);
	--lk-lin: var(--wp--preset--color--lin, #eee8de);
	--lk-pierre: var(--wp--preset--color--pierre, #a9aba4);
	--lk-graphite: var(--wp--preset--color--graphite, #565a54);
	--lk-trait: rgba(238, 232, 222, 0.14);
	--lk-trait-fort: rgba(238, 232, 222, 0.28);
	--lk-serif: var(--wp--preset--font-family--cormorant, "Cormorant Garamond", Garamond, serif);
	--lk-sans: var(--wp--preset--font-family--jost, Jost, Futura, sans-serif);
	--lk-gutter: clamp(1rem, 4vw, 3.5rem);
	--lk-section: clamp(4.5rem, 3rem + 6vw, 9rem);
	--lk-wide: 1280px;
	--lk-radius: 2px;
	--lk-ease: cubic-bezier(0.22, 0.61, 0.36, 1);
	--lk-ease-out: cubic-bezier(0.16, 1, 0.3, 1);
	--lk-header-h: 76px;
	--lk-mobilebar-h: 64px;
}

/* 2. Base
   ========================================================================== */
html {
	scroll-behavior: smooth;
	scroll-padding-top: 88px;
}

/* Rien ne doit dépasser en largeur (photos zoomées, carrousels) : sinon, sur mobile, l'écran s'élargit
   et la barre fixe Réserver / Offrir sort de l'écran. « clip » ne gêne pas les éléments collants. */
html,
body {
	overflow-x: clip;
}

@media (prefers-reduced-motion: reduce) {
	html {
		scroll-behavior: auto;
	}
}

body {
	background: var(--lk-nuit);
	color: var(--lk-lin);
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
	text-rendering: optimizeLegibility;
}

::selection {
	background: var(--lk-cuivre);
	color: var(--lk-nuit);
}

.wp-site-blocks > * {
	margin-block: 0;
}

.wp-block-post-content > .alignfull,
.wp-block-post-content > * {
	margin-block-start: 0;
}

h1, h2, h3, h4 {
	text-wrap: balance;
	color: inherit;
}

p {
	text-wrap: pretty;
}

a {
	text-decoration-thickness: 1px;
	text-underline-offset: 0.22em;
	transition: color 0.2s var(--lk-ease);
}

:focus-visible {
	outline: 2px solid var(--lk-cuivre);
	outline-offset: 3px;
}

img {
	height: auto;
}

/* Sur-titres */
.lk-eyebrow,
p.lk-eyebrow {
	margin: 0 0 1.25rem;
	font-family: var(--lk-sans);
	font-size: 0.8125rem;
	font-weight: 500;
	letter-spacing: 0.15em;
	line-height: 1.4;
	text-transform: uppercase;
	color: var(--lk-cuivre);
}

/* Sur-titres des sections et visuels : précédés d'un filet cuivré */
.lk-section .lk-eyebrow,
.lk-hero .lk-eyebrow,
.lk-page-hero .lk-eyebrow,
.lk-gift .lk-eyebrow {
	display: flex;
	align-items: center;
	gap: 0.875rem;
}

.lk-section .lk-eyebrow::before,
.lk-hero .lk-eyebrow::before,
.lk-page-hero .lk-eyebrow::before,
.lk-gift .lk-eyebrow::before {
	content: "";
	flex: 0 0 2.25rem;
	height: 1px;
	background: currentColor;
	transform-origin: left center;
	transition: scale 1.4s var(--lk-ease-out) calc(var(--lk-d, 0ms) + 150ms);
}

.lk-head--center .lk-eyebrow,
.lk-cta .lk-eyebrow {
	justify-content: center;
}

/* Chiffres « modernes » dans les titres : les chiffres elzéviriens de Cormorant (1 bas, 0 petit)
   rendaient « 1 h 10 » peu lisible (retour de Gaël du 20/10). */
:where(h1, h2, h3, h4, .lk-proof-num, .lk-stat-num, .lk-menu-price) {
	font-variant-numeric: lining-nums;
}

/* Mots en italique dans les titres : la touche Cormorant */
h1 em,
h2 em,
.lk-statement-text em {
	font-style: italic;
	font-weight: 400;
	color: var(--lk-cuivre-clair);
}

.lk-section--lin h2 em {
	color: var(--lk-cuivre-fonce);
}

.lk-lead {
	font-size: clamp(1.0625rem, 1rem + 0.35vw, 1.25rem);
	line-height: 1.6;
	max-width: 38em;
}

.lk-muted {
	color: var(--lk-pierre);
}

.lk-note {
	font-size: 0.9375rem;
	color: var(--lk-pierre);
}

/* 3. Boutons
   ========================================================================== */
.wp-block-button__link,
.wp-element-button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 0.625rem;
	min-height: 48px;
	text-decoration: none;
	transition: background-color 0.2s var(--lk-ease), color 0.2s var(--lk-ease), border-color 0.2s var(--lk-ease);
}

.wp-block-buttons {
	gap: 1rem 1.25rem;
}

/* Secondaire : contour lin */
.wp-block-button.is-style-outline > .wp-block-button__link {
	background: transparent;
	color: var(--lk-lin);
	border: 1px solid rgba(238, 232, 222, 0.7);
	padding: calc(1rem - 1px) calc(1.75rem - 1px);
}

.wp-block-button.is-style-outline > .wp-block-button__link:hover {
	background: var(--lk-lin);
	border-color: var(--lk-lin);
	color: var(--lk-nuit);
}

/* Lien texte avec flèche */
.wp-block-button.is-style-lk-lien > .wp-block-button__link {
	background: transparent;
	color: var(--lk-lin);
	padding: 0.25rem 0;
	min-height: 44px;
	border-radius: 0;
	box-shadow: inset 0 -1px 0 var(--lk-cuivre);
	gap: 0.75rem;
}

.wp-block-button.is-style-lk-lien > .wp-block-button__link::after {
	content: "";
	width: 1.125rem;
	height: 1.125rem;
	background: currentColor;
	-webkit-mask: url(../icons/fleche.svg) center / contain no-repeat;
	mask: url(../icons/fleche.svg) center / contain no-repeat;
	transition: transform 0.2s var(--lk-ease);
}

.wp-block-button.is-style-lk-lien > .wp-block-button__link:hover {
	color: var(--lk-cuivre);
}

/* Sur fond clair, le texte lin du bouton « lien » se confond avec le fond */
.lk-section--lin .wp-block-button.is-style-lk-lien > .wp-block-button__link {
	color: var(--lk-nuit);
	box-shadow: inset 0 -1px 0 var(--lk-cuivre-fonce);
}

.lk-section--lin .wp-block-button.is-style-lk-lien > .wp-block-button__link:hover {
	color: var(--lk-cuivre-fonce);
}

.wp-block-button.is-style-lk-lien > .wp-block-button__link:hover::after {
	transform: translateX(4px);
}

/* 4. Icônes (masques SVG, couleur = currentColor)
   ========================================================================== */
[class*="lk-ico-"]::before {
	content: "";
	display: inline-block;
	flex: none;
	width: 1.5rem;
	height: 1.5rem;
	background: currentColor;
	-webkit-mask: var(--lk-ico) center / contain no-repeat;
	mask: var(--lk-ico) center / contain no-repeat;
}

.lk-ico-borne { --lk-ico: url(../icons/borne.svg); }
.lk-ico-parking { --lk-ico: url(../icons/parking.svg); }
.lk-ico-wifi { --lk-ico: url(../icons/wifi.svg); }
.lk-ico-douche { --lk-ico: url(../icons/douche.svg); }
.lk-ico-tv { --lk-ico: url(../icons/tv.svg); }
.lk-ico-cadeau { --lk-ico: url(../icons/cadeau.svg); }
.lk-ico-carte { --lk-ico: url(../icons/carte.svg); }
.lk-ico-envoi { --lk-ico: url(../icons/envoi.svg); }
.lk-ico-cle { --lk-ico: url(../icons/cle.svg); }
.lk-ico-cadenas { --lk-ico: url(../icons/cadenas.svg); }
.lk-ico-telephone { --lk-ico: url(../icons/telephone.svg); }
.lk-ico-email { --lk-ico: url(../icons/email.svg); }
.lk-ico-lieu { --lk-ico: url(../icons/lieu.svg); }
.lk-ico-velo { --lk-ico: url(../icons/velo.svg); }
.lk-ico-airbnb { --lk-ico: url(../icons/airbnb.svg); }

/* Texte réservé aux lecteurs d'écran */
.screen-reader-text {
	position: absolute !important;
	width: 1px;
	height: 1px;
	margin: -1px;
	padding: 0;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0;
}

/* 5. En-tête
   ========================================================================== */
.lk-site-header {
	position: fixed;
	top: var(--wp-admin--admin-bar--height, 0px);
	left: 0;
	right: 0;
	z-index: 50;
	color: var(--lk-lin);
}

.lk-announce {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: center;
	gap: 0.25rem 1rem;
	max-height: 80px;
	padding: 0.5rem var(--lk-gutter);
	background: var(--lk-cuivre);
	color: var(--lk-nuit);
	overflow: hidden;
	transition: max-height 0.35s var(--lk-ease), padding 0.35s var(--lk-ease);
}

.lk-announce p {
	margin: 0;
	font-size: 0.875rem;
	line-height: 1.5;
	text-align: center;
}

.lk-announce a {
	color: var(--lk-nuit);
	font-weight: 500;
	text-decoration: underline;
}

.lk-announce a:hover {
	color: var(--lk-nuit);
	text-decoration-thickness: 2px;
}

.lk-scrolled .lk-announce {
	max-height: 0;
	padding-block: 0;
}

.lk-navbar {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1.5rem;
	min-height: var(--lk-header-h);
	padding: 0.75rem var(--lk-gutter);
	background: var(--lk-nuit);
	box-shadow: 0 1px 0 var(--lk-trait);
	transition: background-color 0.3s var(--lk-ease), min-height 0.3s var(--lk-ease), box-shadow 0.3s var(--lk-ease);
}

.lk-has-hero:not(.lk-menu-open) .lk-site-header .lk-navbar {
	background: linear-gradient(180deg, rgba(var(--lk-nuit-rgb), 0.55) 0%, rgba(var(--lk-nuit-rgb), 0) 100%);
	box-shadow: none;
}

.lk-scrolled .lk-has-hero .lk-site-header .lk-navbar,
.lk-scrolled .lk-site-header .lk-navbar {
	background: var(--lk-nuit);
	box-shadow: 0 1px 0 var(--lk-trait);
	min-height: 64px;
}

.lk-brand {
	display: flex;
	align-items: center;
	gap: 0.875rem;
	flex: none;
}

.lk-brand .wp-block-site-logo a {
	display: flex;
	align-items: center;
	min-height: 44px;
}

.lk-brand .wp-block-site-logo img {
	width: auto !important;
	height: 52px;
	transition: height 0.3s var(--lk-ease);
}

.lk-scrolled .lk-brand .wp-block-site-logo img {
	height: 44px;
}

.lk-brand .wp-block-site-title {
	margin: 0;
	font-family: var(--lk-sans);
	font-size: 0.8125rem;
	font-weight: 500;
	letter-spacing: 0.24em;
	line-height: 1;
	text-transform: uppercase;
}

.lk-brand .wp-block-site-title a {
	color: var(--lk-lin);
	text-decoration: none;
}

/* Navigation principale */
.lk-nav {
	flex: 1;
	justify-content: center;
	font-family: var(--lk-sans);
	font-size: 0.9375rem;
}

.lk-nav .wp-block-navigation__container {
	gap: clamp(1.25rem, 2.2vw, 2.25rem);
}

.lk-nav .wp-block-navigation-item__content {
	color: var(--lk-lin);
	text-decoration: none;
	padding-block: 0.5rem;
}

@media (min-width: 1280px) {
	.lk-nav .wp-block-navigation-item__content {
		white-space: nowrap;
	}
}

@media (min-width: 1280px) and (max-width: 1439px) {
	.lk-nav {
		font-size: 0.875rem;
	}

	.lk-nav .wp-block-navigation__container {
		gap: 1.25rem;
	}
}

.lk-nav .wp-block-navigation-item__content:hover,
.lk-nav .current-menu-item > .wp-block-navigation-item__content {
	color: var(--lk-cuivre);
}

.lk-nav .current-menu-item > .wp-block-navigation-item__content {
	text-decoration: underline;
	text-decoration-color: var(--lk-cuivre);
}

/* Éléments présents uniquement dans le panneau mobile */
@media (min-width: 1280px) {
	.lk-nav .wp-block-navigation__responsive-container:not(.is-menu-open) .lk-nav-mobile-only {
		display: none !important;
	}
}

.lk-header-cta {
	flex: none;
	gap: 0.5rem 1.5rem;
	flex-wrap: nowrap;
}

.lk-header-cta .wp-block-button__link {
	padding: 0.75rem 1.25rem;
	min-height: 44px;
	font-size: 0.8125rem;
}

/* « Offrir » : bouton secondaire bien visible (fond cuivré léger, filet cuivre, icône cadeau), retour de Gaël du 20/10 */
.lk-header-cta .is-style-lk-lien .wp-block-button__link,
.lk-mobilebar .is-style-outline .wp-block-button__link,
.wp-block-button.lk-btn-offrir > .wp-block-button__link {
	gap: 0.5rem;
	border: 1px solid var(--lk-cuivre);
	border-radius: var(--lk-radius);
	background: #282c32;
	background: color-mix(in srgb, var(--lk-cuivre) 16%, var(--lk-nuit));
	box-shadow: none;
	color: var(--lk-lin);
	transition: background-color 0.2s var(--lk-ease), color 0.2s var(--lk-ease);
}

.lk-header-cta .is-style-lk-lien .wp-block-button__link {
	padding: calc(0.75rem - 1px) calc(1.25rem - 1px);
}

.lk-header-cta .is-style-lk-lien .wp-block-button__link:hover,
.lk-mobilebar .is-style-outline .wp-block-button__link:hover,
.wp-block-button.lk-btn-offrir > .wp-block-button__link:hover {
	background: var(--lk-cuivre);
	color: var(--lk-nuit);
}

.lk-header-cta .is-style-lk-lien .wp-block-button__link::after {
	display: none;
}

.lk-header-cta .is-style-lk-lien .wp-block-button__link::before,
.wp-block-button.lk-btn-offrir > .wp-block-button__link::before {
	content: "";
	width: 1rem;
	height: 1rem;
	background: var(--lk-cuivre);
	-webkit-mask: url(../icons/cadeau.svg) center / contain no-repeat;
	mask: url(../icons/cadeau.svg) center / contain no-repeat;
	transition: background-color 0.2s var(--lk-ease);
}

.lk-header-cta .is-style-lk-lien .wp-block-button__link:hover::before,
.wp-block-button.lk-btn-offrir > .wp-block-button__link:hover::before {
	background: var(--lk-nuit);
}

/* Bouton burger et panneau plein écran */
.lk-nav .wp-block-navigation__responsive-container-open,
.lk-nav .wp-block-navigation__responsive-container-close {
	width: 44px;
	height: 44px;
	align-items: center;
	justify-content: center;
	color: var(--lk-lin);
}

.lk-nav .wp-block-navigation__responsive-container-open svg,
.lk-nav .wp-block-navigation__responsive-container-close svg {
	width: 30px;
	height: 30px;
}

.lk-nav .wp-block-navigation__responsive-container.is-menu-open {
	padding: 1rem var(--lk-gutter) calc(2rem + env(safe-area-inset-bottom));
	background: var(--lk-nuit);
	color: var(--lk-lin);
}

.lk-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-close {
	top: 1rem;
	right: var(--lk-gutter);
}

.lk-nav .is-menu-open .wp-block-navigation__responsive-container-content {
	padding-top: 4.5rem;
	align-items: flex-start;
	min-height: calc(100% - 4.5rem);
}

.lk-nav .is-menu-open .wp-block-navigation__container {
	gap: 0.25rem;
	width: 100%;
	align-items: flex-start;
}

.lk-nav .is-menu-open .wp-block-navigation-item__content {
	font-family: var(--lk-serif);
	font-size: clamp(1.875rem, 7vw, 2.5rem);
	font-weight: 500;
	line-height: 1.2;
	padding-block: 0.375rem;
}

.lk-nav .is-menu-open .lk-nav-contact {
	margin-top: 0;
}

.lk-nav .is-menu-open .lk-nav-contact:first-of-type,
.lk-nav .is-menu-open .lk-nav-contact.lk-nav-first {
	margin-top: auto;
	padding-top: 2.5rem;
	border-top: 1px solid var(--lk-trait);
	width: 100%;
}

.lk-nav .is-menu-open .lk-nav-contact .wp-block-navigation-item__content {
	font-family: var(--lk-sans);
	font-size: 1rem;
	color: var(--lk-pierre);
	padding-block: 0.5rem;
}

.lk-nav .is-menu-open .lk-nav-social {
	margin-top: 1rem;
}

/* Le menu complet (6 entrées) ne tient qu'au-delà de 1280 px : en dessous, panneau burger */
@media (max-width: 1279px) {
	.lk-nav .wp-block-navigation__responsive-container-open:not(.always-shown) {
		display: flex;
	}

	.lk-nav .wp-block-navigation__responsive-container:not(.hidden-by-default):not(.is-menu-open) {
		display: none;
	}

	.lk-nav {
		flex: none;
		order: 3;
	}

	.lk-navbar .lk-header-cta {
		margin-left: auto !important;
	}
}

@media (max-width: 781px) {
	:root {
		--lk-header-h: 60px;
	}

	.lk-navbar {
		padding-block: 0.5rem;
	}

	.lk-brand .wp-block-site-logo img,
	.lk-scrolled .lk-brand .wp-block-site-logo a {
	display: flex;
	align-items: center;
	min-height: 44px;
}

.lk-brand .wp-block-site-logo img {
		height: 40px;
	}

	.lk-scrolled .lk-site-header .lk-navbar {
		min-height: 56px;
	}

	.wp-block-buttons.lk-header-cta {
		display: none !important;
	}

	.lk-announce p {
		font-size: 0.8125rem;
	}
}

/* Pages sans visuel plein écran : le contenu démarre sous l'en-tête */
body:not(.lk-has-hero) .wp-site-blocks > main,
body:not(.lk-has-hero) main.wp-block-group {
	padding-top: calc(var(--lk-header-h) + 40px);
}

/* 6. Barre mobile fixe (Réserver / Offrir)
   ========================================================================== */
/* Le pied de page qui la contient ne doit jamais être « mis en veille » (rendu différé de WP Rocket). */
.lk-site-footer {
	content-visibility: visible !important;
}

.wp-block-buttons.lk-mobilebar {
	display: none !important;
}

.lk-mobilebar .lk-ico-cadeau::before {
	display: none;
}

@media (max-width: 781px) {
	.wp-block-buttons.lk-mobilebar {
		position: fixed;
		left: 0;
		right: 0;
		bottom: 0;
		z-index: 60;
		display: flex !important;
		flex-wrap: nowrap;
		gap: 0.5rem;
		margin: 0;
		padding: 0.5rem 0.75rem calc(0.5rem + env(safe-area-inset-bottom));
		background: rgba(var(--lk-nuit-rgb), 0.97);
		box-shadow: 0 -1px 0 var(--lk-trait);
	}

	.lk-mobilebar .wp-block-button {
		margin: 0;
	}

	.lk-mobilebar .wp-block-button:first-child {
		flex: 7 1 0;
	}

	.lk-mobilebar .wp-block-button:last-child {
		flex: 3 1 0;
	}

	.lk-mobilebar .wp-block-button__link {
		width: 100%;
		min-height: 48px;
		padding: 0.75rem 0.5rem;
		font-size: 0.8125rem;
	}

	.lk-mobilebar .is-style-outline .wp-block-button__link {
		padding: 0.75rem 0.5rem;
	}

	.lk-mobilebar .lk-ico-cadeau .wp-block-button__link::before {
		content: "";
		width: 1.125rem;
		height: 1.125rem;
		background: var(--lk-cuivre);
		-webkit-mask: url(../icons/cadeau.svg) center / contain no-repeat;
		mask: url(../icons/cadeau.svg) center / contain no-repeat;
	}

	body {
		padding-bottom: calc(var(--lk-mobilebar-h) + env(safe-area-inset-bottom));
	}

	.lk-menu-open .lk-mobilebar,
	html.has-modal-open .lk-mobilebar,
	body:has(.is-menu-open) .lk-mobilebar {
		display: none !important;
	}
}

/* 7. Sections
   ========================================================================== */
.lk-section {
	padding-top: var(--lk-section);
	padding-bottom: var(--lk-section);
	background: var(--lk-nuit);
	color: var(--lk-lin);
}

.lk-section--sous-bois {
	background: var(--lk-sous-bois);
}

.lk-section--lin {
	background: var(--lk-lin);
	color: var(--lk-nuit);
}

.lk-section--lin .lk-eyebrow {
	color: var(--lk-cuivre-fonce);
}

.lk-section--lin a:not(.wp-element-button) {
	color: var(--lk-cuivre-fonce);
}

.lk-section--tight {
	padding-top: clamp(3rem, 2rem + 4vw, 6rem);
	padding-bottom: clamp(3rem, 2rem + 4vw, 6rem);
}

.lk-section--flush-top {
	padding-top: 0;
}

.lk-inner > * {
	margin-block: 0;
}

.lk-inner > * + * {
	margin-block-start: 1.5rem;
}

/* En-tête de section */
.lk-head {
	max-width: 46rem;
	margin-bottom: clamp(2.5rem, 2rem + 2.5vw, 4.5rem) !important;
}

.lk-head > * {
	margin-block: 0;
}

.lk-head h2 + p {
	margin-top: 1.5rem;
}

.lk-head--center {
	margin-inline: auto;
	text-align: center;
}

.lk-head--center .lk-lead {
	margin-inline: auto;
}

/* Rangées en grille ou en ligne : pas de marge verticale héritée de WordPress
   (sinon le premier élément est plus haut que les suivants) */
.lk-stats > *,
.lk-ratings > *,
.lk-features > *,
.lk-contact-list > *,
.lk-footer-bottom > *,
.lk-steps > *,
ul.lk-chips > * {
	margin-block: 0 !important;
}

/* Colonnes : écarts homogènes */
.lk-section .wp-block-columns {
	gap: clamp(1.5rem, 1rem + 2.5vw, 4rem);
	margin-bottom: 0;
}

.lk-split {
	align-items: center !important;
}

/* Images : recadrage et zoom lent au survol */
.lk-section figure.wp-block-image {
	margin: 0;
}

.lk-section .wp-block-image img {
	width: 100%;
	border-radius: var(--lk-radius);
}

.lk-zoom,
.lk-card .wp-block-image,
.lk-occasion .wp-block-image {
	overflow: hidden;
	border-radius: var(--lk-radius);
}

.lk-section .wp-block-image img,
.lk-mosaic img,
.lk-statement-photo img {
	transition: transform 1.2s var(--lk-ease), scale 2.2s var(--lk-ease-out) var(--lk-d, 0ms), clip-path 1.6s var(--lk-ease-out) calc(var(--lk-d, 0ms) + 80ms);
}

@media (hover: hover) {
	.lk-zoom:hover img,
	.lk-card:hover .wp-block-image img,
	.lk-occasion:hover .wp-block-image img,
	.lk-mosaic figure:hover img {
		transform: scale(1.04);
	}
}

/* Apparition au défilement (classes posées par lakabann.js, jamais sans animation autorisée) */
.lk-js .lk-reveal {
	opacity: 0;
	translate: 0 40px;
	transition: opacity 1.1s var(--lk-ease-out) var(--lk-d, 0ms), translate 1.3s var(--lk-ease-out) var(--lk-d, 0ms);
}

.lk-js .lk-reveal.is-in {
	opacity: 1;
	translate: none;
}

/* Photos : levée de rideau et léger dézoom.
   Le rideau est posé sur l'image, jamais sur l'élément observé (sinon il n'est jamais « visible »). */
.lk-js .lk-reveal .wp-block-image img,
.lk-js .lk-reveal.wp-block-image img {
	clip-path: inset(100% 0 0 0);
	scale: 1.22;
}

.lk-js .lk-reveal.is-in .wp-block-image img,
.lk-js .lk-reveal.is-in.wp-block-image img {
	clip-path: inset(0 0 0 0);
	scale: 1;
}

/* Filet des sur-titres qui se trace */
.lk-js .lk-reveal .lk-eyebrow::before {
	scale: 0 1;
}

.lk-js .lk-reveal.is-in .lk-eyebrow::before {
	scale: 1 1;
}

/* Titres découpés en mots (lakabann.js) : chaque mot monte derrière un cache */
.lk-words .lk-w {
	display: inline-block;
	clip-path: inset(-0.4em -0.25em -0.28em -0.25em);
}

.lk-words .lk-w > span {
	display: inline-block;
}

.lk-js .lk-reveal h2 .lk-w > span,
.lk-js h2.lk-reveal .lk-w > span {
	translate: 0 140%;
	transition: translate 1.3s var(--lk-ease-out) calc(var(--lk-d, 0ms) + 120ms + var(--i, 0) * 45ms);
}

.lk-js .lk-reveal.is-in h2 .lk-w > span,
.lk-js h2.lk-reveal.is-in .lk-w > span {
	translate: none;
}

/* 8. Visuel plein écran (accueil) et visuel de page
   ========================================================================== */
.lk-hero.wp-block-cover {
	min-height: 100vh !important;
	min-height: 100svh !important;
	padding: calc(var(--lk-header-h) + 72px) var(--lk-gutter) clamp(2rem, 1.5rem + 2vw, 3.5rem);
	align-items: flex-end;
	color: var(--lk-lin);
}

.lk-hero .wp-block-cover__inner-container,
.lk-page-hero .wp-block-cover__inner-container {
	width: 100% !important;
	max-width: var(--lk-wide);
	margin-inline: auto !important;
	color: var(--lk-lin);
}

.lk-hero .wp-block-cover__inner-container > *,
.lk-page-hero .wp-block-cover__inner-container > * {
	margin-block: 0;
}

.lk-hero.wp-block-cover {
	overflow: hidden;
}

.lk-hero h1 {
	max-width: 12.5em;
	margin-bottom: 1.5rem !important;
	font-size: clamp(2.75rem, 1.4rem + 4.6vw, 6rem);
	line-height: 1;
}

.lk-hero .lk-eyebrow,
.lk-page-hero .lk-eyebrow {
	color: var(--lk-lin);
	opacity: 0.92;
}

.lk-hero .lk-lead {
	max-width: 34rem;
}

.lk-hero .wp-block-buttons {
	margin-top: 2.25rem !important;
}

.lk-proof {
	margin-top: 1.25rem !important;
	font-size: 0.875rem;
	letter-spacing: 0.02em;
	color: rgba(238, 232, 222, 0.88);
}

/* Entrée : la photo sort du noir en se posant, puis le texte monte ligne à ligne */
@media (prefers-reduced-motion: no-preference) {
	.lk-hero .wp-block-cover__image-background,
	.lk-hero .wp-block-cover__video-background,
	.lk-page-hero .wp-block-cover__image-background {
		animation: lk-hero-in 3s var(--lk-ease-out) both;
	}

	.lk-hero .wp-block-cover__inner-container > :not(h1),
	.lk-page-hero .wp-block-cover__inner-container > :not(h1) {
		animation: lk-fade-up 1.3s var(--lk-ease-out) both;
	}

	.lk-hero .wp-block-cover__inner-container > :nth-child(1),
	.lk-page-hero .wp-block-cover__inner-container > :nth-child(1) {
		animation-delay: 0.2s;
	}

	.lk-hero .wp-block-cover__inner-container > :nth-child(3),
	.lk-page-hero .wp-block-cover__inner-container > :nth-child(3) {
		animation-delay: 1s;
	}

	.lk-hero .wp-block-cover__inner-container > :nth-child(4) {
		animation-delay: 1.15s;
	}

	.lk-hero .wp-block-cover__inner-container > :nth-child(5) {
		animation-delay: 1.3s;
	}

	.lk-hero .wp-block-cover__inner-container > :nth-child(n + 6) {
		animation-delay: 1.45s;
	}

	.lk-hero .lk-eyebrow::before,
	.lk-page-hero .lk-eyebrow::before {
		animation: lk-line 1.6s var(--lk-ease-out) 0.45s both;
	}

	.lk-hero .lk-words .lk-w > span,
	.lk-page-hero .lk-words .lk-w > span {
		animation: lk-rise 1.4s var(--lk-ease-out) both;
		animation-delay: calc(0.35s + var(--i, 0) * 0.075s);
	}
}

/* Départ à 0,01 et non 0 : une image totalement transparente au premier affichage n'est pas retenue comme élément principal (LCP) par Chrome. */
@keyframes lk-hero-in {
	from {
		opacity: 0.01;
		scale: 1.18;
	}
	to {
		opacity: 1;
		scale: 1;
	}
}

@keyframes lk-fade-up {
	from {
		opacity: 0;
		translate: 0 28px;
	}
	to {
		opacity: 1;
		translate: none;
	}
}

@keyframes lk-rise {
	from {
		translate: 0 140%;
	}
	to {
		translate: none;
	}
}

@keyframes lk-line {
	from {
		scale: 0 1;
	}
	to {
		scale: 1 1;
	}
}

/* Au défilement (écrans larges) : la photo glisse plus lentement que la page, le texte s'efface */
@media (min-width: 782px) and (prefers-reduced-motion: no-preference) {
	.lk-hero .wp-block-cover__image-background,
	.lk-hero .wp-block-cover__video-background,
	.lk-page-hero .wp-block-cover__image-background {
		translate: 0 calc(var(--lk-hero-p, 0) * 30vh);
	}

	.lk-hero .wp-block-cover__inner-container,
	.lk-page-hero .wp-block-cover__inner-container {
		opacity: calc(1 - var(--lk-hero-p, 0) * 1.6);
		translate: 0 calc(var(--lk-hero-p, 0) * -12vh);
	}
}

.lk-page-hero.wp-block-cover {
	overflow: hidden;
}

.lk-page-hero.wp-block-cover {
	min-height: 68vh !important;
	min-height: 68svh !important;
	padding: calc(var(--lk-header-h) + 72px) var(--lk-gutter) clamp(2.5rem, 2rem + 2vw, 4rem);
	align-items: flex-end;
}

.lk-page-hero h1 {
	font-size: clamp(2.5rem, 1.9rem + 3vw, 4.5rem);
	max-width: 16em;
	margin-bottom: 1.25rem !important;
}

.lk-page-hero .lk-lead {
	max-width: 36rem;
}

/* Barre de réservation (desktop) */
.lk-hero .wp-block-shortcode,
.lk-hero .lk-booking {
	margin-top: 1.25rem !important;
}

.lk-booking {
	display: grid;
	grid-template-columns: 1fr 1fr 1.25fr auto;
	align-items: stretch;
	margin-top: clamp(2rem, 1rem + 3vw, 3.5rem);
	padding: 0.5rem;
	background: rgba(var(--lk-sous-bois-rgb), 0.9);
	border: 1px solid var(--lk-trait);
	border-radius: var(--lk-radius);
	color-scheme: dark;
}

.lk-booking__field {
	display: flex;
	flex-direction: column;
	justify-content: center;
	gap: 0.25rem;
	padding: 0.5rem 1.25rem;
	border-right: 1px solid var(--lk-trait);
}

.lk-booking__field:nth-child(3) {
	border-right: 0;
}

.lk-booking label {
	font-size: 0.75rem;
	font-weight: 500;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--lk-pierre);
}

.lk-booking input,
.lk-booking select {
	width: 100%;
	min-height: 32px;
	padding: 0;
	border: 0;
	background: transparent;
	color: var(--lk-lin);
	font-family: var(--lk-sans);
	font-size: 1rem;
}

.lk-booking select option {
	background: var(--lk-sous-bois);
	color: var(--lk-lin);
}

.lk-booking input:focus-visible,
.lk-booking select:focus-visible {
	outline: none;
}

.lk-booking__field:focus-within {
	box-shadow: inset 0 -2px 0 var(--lk-cuivre);
}

.lk-booking__submit {
	border: 0;
	border-radius: var(--lk-radius);
	padding: 1rem 1.75rem;
	background: var(--lk-cuivre);
	color: var(--lk-nuit);
	font-family: var(--lk-sans);
	font-size: 0.875rem;
	font-weight: 500;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	cursor: pointer;
}

.lk-booking__submit:hover {
	background: var(--lk-cuivre-clair);
}

/* Mobile : la photo occupe le haut de l'écran, nette, et le texte se pose dessous
   (seuls le sur-titre et le début du titre chevauchent le fondu) */
@media (max-width: 781px) {
	.lk-hero.wp-block-cover,
	.lk-page-hero.wp-block-cover {
		display: block;
		min-height: 0 !important;
		background: var(--lk-nuit);
		--lk-photo-h: calc(var(--lk-header-h) + 54svh);
		padding: calc(var(--lk-photo-h) - 10svh) var(--lk-gutter) 3rem;
	}

	.lk-page-hero.wp-block-cover {
		--lk-photo-h: calc(var(--lk-header-h) + 40svh);
		padding-bottom: 2.5rem;
	}

	.lk-hero .wp-block-cover__image-background,
	.lk-hero .wp-block-cover__video-background,
	.lk-page-hero .wp-block-cover__image-background {
		bottom: auto !important;
		height: var(--lk-photo-h) !important;
	}

	.lk-hero .wp-block-cover__image-background,
	.lk-hero .wp-block-cover__video-background {
		object-position: 62% 50% !important;
	}

	/* Au défilement, la photo remonte plus lentement que la page */
	.lk-hero .wp-block-cover__image-background,
	.lk-page-hero .wp-block-cover__image-background {
		translate: 0 calc(var(--lk-hero-p, 0) * -48px);
	}

	/* L'entrée zoome depuis le bas de la photo : rien ne déborde sur le texte */
	.lk-hero .wp-block-cover__image-background,
	.lk-hero .wp-block-cover__video-background,
	.lk-page-hero .wp-block-cover__image-background {
		transform-origin: 50% 100%;
	}

	.lk-hero .wp-block-cover__background,
	.lk-page-hero .wp-block-cover__background {
		bottom: auto !important;
		height: calc(var(--lk-photo-h) + 1px) !important;
		opacity: 1 !important;
		background: linear-gradient(180deg, rgba(var(--lk-nuit-rgb), 0.62) 0%, rgba(var(--lk-nuit-rgb), 0) 24%, rgba(var(--lk-nuit-rgb), 0) 58%, rgba(var(--lk-nuit-rgb), 0.82) 84%, var(--lk-nuit) 100%) !important;
	}

	/* « Offrir un séjour » à droite de « Voir les disponibilités » (retour de Gaël du 20/10) */
	.lk-hero .wp-block-buttons {
		flex-direction: row;
		flex-wrap: wrap;
		align-items: center;
		gap: 0.75rem 1rem;
	}

	.lk-hero .wp-block-button > .wp-block-button__link {
		font-size: 0.78125rem;
		letter-spacing: 0.06em;
	}

	.lk-hero .wp-block-button:not(.is-style-outline) > .wp-block-button__link {
		padding-inline: 0.625rem;
	}

	/* Les deux boutons restent côte à côte dès 375 px (retour de Gaël du 27/10), icône comprise */
	.lk-hero .wp-block-buttons {
		gap: 0.5rem;
	}

	.lk-hero .wp-block-button > .wp-block-button__link {
		padding-inline: 0.625rem;
		font-size: 0.75rem;
		letter-spacing: 0.04em;
		white-space: nowrap;
	}

	.lk-hero .wp-block-button.lk-btn-offrir > .wp-block-button__link {
		gap: 0.375rem;
	}

	/* Deuxième bouton de ligne : lien texte, sauf « Offrir » qui garde le style de l'en-tête (Gaël, 05/11) */
	.lk-hero .wp-block-button.is-style-outline:not(.lk-btn-offrir) > .wp-block-button__link {
		border: 0;
		padding: 0.25rem 0;
		min-height: 44px;
		box-shadow: inset 0 -1px 0 var(--lk-cuivre);
		border-radius: 0;
	}

	.lk-hero .wp-block-button.is-style-outline:not(.lk-btn-offrir) > .wp-block-button__link:hover {
		background: transparent;
		color: var(--lk-cuivre);
	}

	.lk-hero .lk-booking,
	.lk-hero .wp-block-shortcode {
		display: none;
	}
}

/* 8 bis. Bandeau d'avis (sous le visuel d'accueil)
   ========================================================================== */
.lk-proofbar.lk-section {
	padding-top: clamp(2.25rem, 1.75rem + 2vw, 3.5rem);
	padding-bottom: clamp(2.25rem, 1.75rem + 2vw, 3.5rem);
}

.lk-proof-grid {
	display: grid !important;
	grid-template-columns: 1.2fr 1fr 1fr;
	border-top: 1px solid var(--lk-trait);
	border-bottom: 1px solid var(--lk-trait);
}

.lk-proof-grid > * {
	margin-block: 0 !important;
}

.lk-proof-cell {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 0.375rem;
	padding: 1.75rem 1.5rem;
	text-align: center;
}

.lk-proof-cell + .lk-proof-cell {
	border-left: 1px solid var(--lk-trait);
}

.lk-proof-cell > * {
	margin: 0 !important;
}

.lk-stars {
	width: 6.5rem;
	height: 1.1rem;
	background: var(--lk-cuivre);
	-webkit-mask: url(../icons/etoile.svg) 0 50% / 1.1rem 1.1rem space;
	mask: url(../icons/etoile.svg) 0 50% / 1.1rem 1.1rem space;
}

.lk-proof-num {
	font-family: var(--lk-serif);
	font-size: clamp(2.25rem, 1.9rem + 1.4vw, 3rem);
	font-weight: 500;
	line-height: 1;
	color: var(--lk-cuivre);
}

.lk-proof-num span {
	font-size: 0.5em;
	color: var(--lk-pierre);
}

.lk-proof-brand {
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	font-family: var(--lk-sans);
	font-size: 1.0625rem;
	font-weight: 600;
	letter-spacing: 0.01em;
	color: var(--lk-lin);
}

.lk-proof-brand::before {
	width: 1.25rem !important;
	height: 1.25rem !important;
}

.lk-proof-brand--booking {
	font-weight: 700;
	letter-spacing: -0.01em;
}

.lk-proof-label {
	max-width: 18em;
	font-size: 0.875rem;
	line-height: 1.45;
	color: var(--lk-pierre);
}

.lk-proof-cell--total .lk-proof-num {
	font-size: clamp(2.75rem, 2.2rem + 2vw, 3.75rem);
}

.lk-proof-cta {
	justify-content: center;
	margin-top: 1.25rem !important;
}

@media (max-width: 781px) {
	.lk-proof-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.lk-proof-cell {
		padding: 1.5rem 0.75rem;
	}

	.lk-proof-cell--total {
		grid-column: span 2;
		border-bottom: 1px solid var(--lk-trait);
	}

	.lk-proof-cell--total + .lk-proof-cell {
		border-left: 0;
	}
}

/* 8 ter. Carte des options (accueil et Séjours) : lignes fines, prix à droite
   ========================================================================== */
.lk-menu {
	display: grid !important;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	column-gap: clamp(2rem, 1rem + 4vw, 5rem);
}

.lk-menu > * {
	margin-block: 0 !important;
}

.lk-menu-item {
	display: grid;
	grid-template-columns: 2.25rem minmax(0, 1fr) auto;
	column-gap: 1rem;
	align-items: baseline;
	padding: 1.5rem 0;
	border-bottom: 1px solid var(--lk-trait);
}

.lk-menu-item:nth-child(-n + 2) {
	border-top: 1px solid var(--lk-trait);
}

.lk-menu-item > *,
.lk-menu-body > * {
	margin: 0 !important;
}

.lk-menu-num {
	font-size: 0.75rem;
	font-weight: 500;
	letter-spacing: 0.15em;
	color: var(--lk-cuivre);
}

.lk-menu-body h3,
.lk-options .lk-menu-body h3 {
	font-family: var(--lk-serif);
	font-size: clamp(1.25rem, 1.15rem + 0.4vw, 1.4375rem);
	line-height: 1.25;
}

.lk-menu-body p {
	margin-top: 0.375rem !important;
	font-size: 0.9375rem;
	line-height: 1.5;
	color: var(--lk-pierre);
}

.lk-menu-price {
	font-family: var(--lk-serif);
	font-size: 1.25rem;
	font-weight: 500;
	white-space: nowrap;
	text-align: right;
	color: var(--lk-cuivre);
}

@media (max-width: 781px) {
	.lk-menu {
		grid-template-columns: minmax(0, 1fr);
	}

	.lk-menu-item {
		grid-template-columns: 2rem minmax(0, 1fr);
		padding: 1.25rem 0;
	}

	.lk-menu-item:nth-child(2) {
		border-top: 0;
	}

	.lk-menu-price {
		grid-column: 2;
		margin-top: 0.5rem !important;
		text-align: left;
	}
}

/* 9. Accueil - la promesse
   ========================================================================== */
.lk-promesse .lk-promesse-text > * {
	margin-block: 0;
}

.lk-promesse .lk-promesse-text > * + * {
	margin-top: 1.5rem;
}

.lk-promesse .lk-promesse-text p:not(.lk-eyebrow) {
	max-width: 34em;
}

.lk-promesse .wp-block-image img {
	aspect-ratio: 4 / 5;
	object-fit: cover;
}

.lk-stats {
	display: grid !important;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 0 !important;
	margin-top: clamp(3.5rem, 2.5rem + 4vw, 6rem) !important;
	border-top: 1px solid var(--lk-trait);
}

.lk-stat {
	padding: 2rem 1rem 0;
	text-align: center;
}

/* Chiffres centrés dans leur case, séparés par de fines lignes verticales */
@media (min-width: 782px) {
	.lk-stat + .lk-stat {
		border-left: 1px solid var(--lk-trait);
	}
}

.lk-stat > * {
	margin: 0;
}

.lk-stat-num {
	font-variant-numeric: lining-nums tabular-nums;
	font-family: var(--lk-serif);
	font-size: clamp(2.25rem, 1.8rem + 1.6vw, 3.25rem);
	font-weight: 500;
	line-height: 1;
	color: var(--lk-cuivre);
}

.lk-stat-label {
	margin-top: 0.75rem !important;
	font-size: 0.9375rem;
	line-height: 1.45;
	color: var(--lk-pierre);
}

@media (max-width: 781px) {
	.lk-stats {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		row-gap: 0.5rem !important;
	}

	.lk-stat {
		padding: 1.5rem 0.5rem 0;
		text-align: center;
	}

	.lk-stat:nth-child(even) {
		border-left: 1px solid var(--lk-trait);
	}

	.lk-features p {
		flex-direction: column;
		justify-content: flex-start;
		gap: 0.5rem;
		text-align: center;
	}

	.lk-gallery-cta {
		justify-content: center;
	}

	/* Galeries : les vignettes apparaissent en fondu, sans zoom (plus calme au doigt) */
	.lk-js .lk-mosaic .lk-reveal.wp-block-image img,
	.lk-js .lk-grid .lk-reveal.wp-block-image img {
		clip-path: inset(0 0 0 0);
		scale: 1;
	}

	.lk-stat {
		padding-right: 1rem;
	}
}

/* 9 bis. Phrase signature et bandeau photo plein cadre
   ========================================================================== */
.lk-statement.lk-section {
	padding-top: clamp(5rem, 3rem + 8vw, 12rem);
	padding-bottom: clamp(4rem, 2.5rem + 5vw, 8rem);
	text-align: center;
}

.lk-statement-text {
	max-width: 18em;
	margin-inline: auto !important;
	font-family: var(--lk-serif);
	font-size: clamp(2rem, 1.1rem + 3.4vw, 4.5rem);
	font-weight: 400;
	line-height: 1.14;
	letter-spacing: -0.01em;
	text-wrap: balance;
	color: var(--lk-lin);
}

.lk-statement-text .lk-w {
	clip-path: none;
}

.lk-statement-text .lk-w > span {
	color: rgba(238, 232, 222, 0.16);
	transition: color 0.7s var(--lk-ease);
}

.lk-statement-text .lk-w.is-lit > span {
	color: var(--lk-lin);
}

.lk-statement-text em .lk-w.is-lit > span {
	color: var(--lk-cuivre-clair);
}

.wp-block-image.lk-statement-photo {
	position: relative;
	height: 82vh;
	height: 82svh;
	min-height: 420px;
	max-height: 980px;
	margin-top: 0 !important;
	margin-bottom: 0 !important;
	overflow: hidden;
}

.wp-block-image.lk-statement-photo img {
	display: block;
	width: 100%;
	height: calc(100% + 20vh);
	margin-top: -10vh;
	object-fit: cover;
	object-position: 50% 60%;
	translate: 0 var(--lk-par, 0);
}

/* Fondu des bords vers les sections voisines */
.wp-block-image.lk-statement-photo::after {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(180deg, var(--lk-nuit) 0%, rgba(var(--lk-nuit-rgb), 0) 16%, rgba(var(--lk-sous-bois-rgb), 0) 80%, var(--lk-sous-bois) 100%);
	pointer-events: none;
}

@media (max-width: 781px) {
	.wp-block-image.lk-statement-photo {
		height: auto;
		min-height: 0;
		aspect-ratio: 4 / 5;
	}

	.wp-block-image.lk-statement-photo img {
		height: calc(100% + 18vw);
		margin-top: -9vw;
		object-position: 34% 50%;
	}
}

/* 10. Signatures (cartes image + texte, grille décalée)
   ========================================================================== */
.lk-signatures {
	display: grid !important;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: clamp(3rem, 2rem + 3vw, 5rem) clamp(1.5rem, 1rem + 2.5vw, 4rem);
}

.lk-signatures > * {
	margin: 0 !important;
}

@media (min-width: 782px) {
	.lk-signatures {
		padding-bottom: clamp(3rem, 6vw, 7rem);
	}

	.lk-signatures > :nth-child(even) {
		transform: translateY(clamp(3rem, 6vw, 7rem));
	}
}

@media (max-width: 781px) {
	.lk-signatures {
		grid-template-columns: minmax(0, 1fr);
	}
}

.lk-card > * {
	margin-block: 0;
}

.lk-card .wp-block-image img {
	aspect-ratio: 3 / 2;
	object-fit: cover;
}

.lk-card h3 {
	margin-top: 1.75rem !important;
}

.lk-card h3::before {
	content: "";
	display: block;
	width: 2.5rem;
	height: 1px;
	margin-bottom: 1.25rem;
	background: var(--lk-cuivre);
	transition: width 0.8s var(--lk-ease-out);
}

.lk-card:hover h3::before {
	width: 5rem;
}

.lk-card p {
	margin-top: 0.75rem !important;
	max-width: 32em;
	color: var(--lk-pierre);
}

.lk-features {
	display: flex !important;
	flex-wrap: wrap;
	gap: 1.25rem clamp(1.5rem, 3vw, 3rem) !important;
	margin-top: clamp(4rem, 3rem + 4vw, 7rem) !important;
	padding-top: 2.5rem;
	border-top: 1px solid var(--lk-trait);
}

@media (max-width: 781px) {
	.lk-features {
		display: grid !important;
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 1rem 1.25rem !important;
	}
}

.lk-features p {
	display: flex;
	align-items: center;
	gap: 0.75rem;
	margin: 0;
	font-size: 0.9375rem;
	color: var(--lk-pierre);
}

/* 11. Formules
   ========================================================================== */
.lk-formules {
	align-items: stretch !important;
}

.lk-formule {
	display: flex;
	flex-direction: column;
	padding: clamp(2rem, 1.5rem + 1.5vw, 2.75rem) clamp(1.5rem, 1rem + 1.5vw, 2.25rem);
	background: var(--lk-sous-bois);
	border-top: 2px solid var(--lk-cuivre);
	border-radius: 0 0 var(--lk-radius) var(--lk-radius);
	transition: background-color 0.4s var(--lk-ease), translate 0.6s var(--lk-ease-out);
}

.lk-formule:hover {
	background: var(--lk-sous-bois-survol);
}

@media (hover: hover) {
	.lk-formule:hover {
		translate: 0 -6px;
	}
}

.lk-formule > * {
	margin-block: 0;
}

.lk-formule h3 {
	font-size: clamp(2.25rem, 2rem + 1vw, 2.75rem);
	line-height: 1;
}

.lk-formule .lk-formule-meta {
	margin-top: 0.75rem;
	font-size: 0.8125rem;
	font-weight: 500;
	letter-spacing: 0.15em;
	text-transform: uppercase;
	color: var(--lk-cuivre);
}

.lk-formule p:not(.lk-formule-meta) {
	margin-top: 1.25rem;
	color: var(--lk-pierre);
}

.lk-formule .wp-block-buttons {
	margin-top: auto;
	padding-top: 2rem;
}

.lk-formule .wp-block-button,
.lk-formule .wp-block-button__link {
	width: 100%;
}

.lk-formule .wp-block-button__link {
	padding-inline: 1rem;
	letter-spacing: 0.1em;
	white-space: nowrap;
}

.lk-after-cards {
	margin-top: 1.5rem !important;
}

.lk-options {
	margin-top: clamp(3.5rem, 2.5rem + 3vw, 5.5rem) !important;
	padding-top: 2.5rem;
	border-top: 1px solid var(--lk-trait);
}

.lk-options > * {
	margin-block: 0;
}

.lk-options > .wp-block-heading {
	font-size: var(--wp--preset--font-size--large);
	font-family: var(--lk-serif);
}

ul.lk-inline-list {
	display: flex;
	flex-wrap: wrap;
	gap: 0.75rem 0;
	margin: 1.25rem 0 0 !important;
	padding: 0;
	list-style: none;
}

ul.lk-inline-list li {
	display: flex;
	align-items: center;
	color: var(--lk-pierre);
}

ul.lk-inline-list li + li::before {
	content: "";
	width: 4px;
	height: 4px;
	margin: 0 1.125rem;
	border-radius: 50%;
	background: var(--lk-cuivre);
}

@media (max-width: 781px) {
	ul.lk-inline-list {
		flex-direction: column;
		gap: 0.625rem;
	}

	ul.lk-inline-list li::before,
	ul.lk-inline-list li + li::before {
		content: "";
		width: 4px;
		height: 4px;
		margin: 0 0.875rem 0 0;
		border-radius: 50%;
		background: var(--lk-cuivre);
	}
}

/* Carrousel horizontal sur mobile (formules, occasions) */
@media (max-width: 781px) {
	.lk-carousel.wp-block-columns {
		flex-wrap: nowrap !important;
		overflow-x: auto;
		scroll-snap-type: x mandatory;
		scroll-padding-inline: var(--lk-gutter);
		margin-inline: calc(var(--lk-gutter) * -1) !important;
		padding: 0 var(--lk-gutter) 1rem;
		gap: 1rem !important;
		scrollbar-width: thin;
		scrollbar-color: var(--lk-petrole) transparent;
	}

	.lk-carousel.wp-block-columns > .wp-block-column {
		flex: 0 0 82% !important;
		scroll-snap-align: start;
	}
}

/* 12. Galerie mosaïque
   ========================================================================== */
.wp-block-gallery.lk-mosaic.has-nested-images {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	grid-auto-rows: clamp(150px, 15vw, 250px);
	gap: 0.75rem;
}

.wp-block-gallery.lk-mosaic.has-nested-images figure.wp-block-image:not(#individual-image) {
	width: auto;
	height: 100%;
	margin: 0;
	overflow: hidden;
	border-radius: var(--lk-radius);
}

.wp-block-gallery.lk-mosaic.has-nested-images figure.wp-block-image img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.wp-block-gallery.lk-mosaic figure:nth-child(1) {
	grid-column: span 2;
	grid-row: span 2;
}

.wp-block-gallery.lk-mosaic figure:nth-child(4),
.wp-block-gallery.lk-mosaic figure:nth-child(6) {
	grid-column: span 2;
}

.lk-gallery-cta {
	margin-top: 2.5rem !important;
}

@media (max-width: 781px) {
	.wp-block-gallery.lk-mosaic.has-nested-images {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		grid-auto-rows: 42vw;
		gap: 0.5rem;
	}

	.wp-block-gallery.lk-mosaic figure:nth-child(1) {
		grid-row: span 1;
	}

	.wp-block-gallery.lk-mosaic figure:nth-child(4) {
		grid-column: span 1;
	}

	.wp-block-gallery.lk-mosaic figure:nth-child(6) {
		grid-column: span 2;
	}

	.wp-block-gallery.lk-mosaic figure:nth-child(n + 7) {
		display: none;
	}
}

/* Galerie complète (page La maison) */
.wp-block-gallery.lk-grid.has-nested-images {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 0.75rem;
}

.wp-block-gallery.lk-grid.has-nested-images figure.wp-block-image:not(#individual-image) {
	width: auto;
	margin: 0;
	overflow: hidden;
	border-radius: var(--lk-radius);
}

.wp-block-gallery.lk-grid.has-nested-images figure.wp-block-image img {
	width: 100%;
	height: 100%;
	aspect-ratio: 3 / 2;
	object-fit: cover;
}

@media (max-width: 781px) {
	.wp-block-gallery.lk-grid.has-nested-images {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 0.5rem;
	}

	/* Nombre impair de photos : la dernière prend toute la largeur */
	.wp-block-gallery.lk-grid.has-nested-images figure.wp-block-image:last-child:nth-child(odd) {
		grid-column: span 2;
	}
}

/* Bouton d'agrandissement des photos : cible de 44 px */
.wp-lightbox-container button.lightbox-trigger {
	width: 44px;
	height: 44px;
	padding: 12px;
}

/* Visionneuse : fond nuit */
.wp-lightbox-overlay .scrim {
	background-color: var(--lk-nuit) !important;
}

.wp-lightbox-overlay .close-button {
	color: var(--lk-lin);
}

/* 13. Avis (section claire)
   ========================================================================== */
.lk-ratings {
	display: flex !important;
	flex-wrap: wrap;
	gap: 0.75rem !important;
	margin-bottom: clamp(3rem, 2rem + 3vw, 4.5rem) !important;
}

.lk-rating {
	display: flex;
	flex-direction: column;
	justify-content: center;
	gap: 0.25rem;
	min-height: 96px;
	padding: 1.125rem 1.5rem;
	border: 1px solid rgba(var(--lk-nuit-rgb), 0.16);
	border-radius: var(--lk-radius);
}

.lk-rating > * {
	margin: 0 !important;
}

@media (max-width: 781px) {
	.lk-ratings {
		display: grid !important;
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.lk-rating {
		min-height: 0;
		padding: 1rem 1.125rem;
	}
}

.lk-rating-score {
	font-family: var(--lk-serif);
	font-size: 2rem;
	font-weight: 600;
	line-height: 1;
	color: var(--lk-cuivre-fonce);
}

.lk-rating-label {
	font-size: 0.875rem;
	line-height: 1.45;
	color: var(--lk-graphite);
}

.lk-rating-label strong {
	color: var(--lk-nuit);
	font-weight: 500;
}

.lk-rating--label {
	justify-content: center;
}

.lk-rating--label .lk-rating-label {
	font-size: 0.9375rem;
	color: var(--lk-nuit);
}

.lk-reviews > .wp-block-column {
	padding-top: 2rem;
	border-top: 1px solid var(--lk-cuivre-fonce);
}

.lk-review > * {
	margin-block: 0;
}

.lk-review h3 {
	font-size: clamp(1.625rem, 1.4rem + 0.6vw, 2rem);
	color: var(--lk-nuit);
}

.lk-review .wp-block-quote {
	margin: 1rem 0 0;
	padding: 0;
	border: 0;
}

.lk-review .wp-block-quote p {
	font-family: var(--lk-serif);
	font-size: clamp(1.25rem, 1.15rem + 0.35vw, 1.4375rem);
	font-weight: 500;
	line-height: 1.45;
	color: var(--lk-nuit);
}

.lk-review .wp-block-quote cite {
	display: block;
	margin-top: 1.25rem;
	font-family: var(--lk-sans);
	font-size: 0.8125rem;
	font-style: normal;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--lk-graphite);
}

/* Avis voyageurs (extension lk-avis) : liste, note moyenne, bouton « Lire plus d'avis » */
.lk-avis-list {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: clamp(2rem, 3vw, 3rem);
}

.lk-avis-stars {
	display: block;
	max-width: 100%;
	margin-bottom: 0.75rem;
}

.lk-avis-plus-wrap {
	display: flex;
	justify-content: center;
	margin-top: clamp(2rem, 4vw, 3rem);
}

.lk-avis-plus[disabled] {
	opacity: 0.6;
	cursor: progress;
}

.lk-avis-resume {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 1.5rem clamp(2rem, 6vw, 5rem);
	margin-block: clamp(1.5rem, 3vw, 2.5rem) clamp(2rem, 4vw, 3.5rem);
}

.lk-avis-moyenne > * {
	margin: 0;
}

.lk-avis-moyenne .lk-proof-num {
	color: var(--lk-cuivre-fonce);
}

.lk-avis-moyenne .lk-proof-num span {
	color: var(--lk-graphite);
}

.lk-avis-moyenne .lk-avis-stars {
	margin: 0.5rem 0;
}

.lk-avis-compte {
	font-size: 0.875rem;
	color: var(--lk-graphite);
}

.lk-avis-repartition {
	flex: 1 1 16rem;
	max-width: 26rem;
	margin: 0;
	padding: 0;
	list-style: none;
}

.lk-avis-repartition li {
	display: grid;
	grid-template-columns: 1rem 1fr 1.5rem;
	align-items: center;
	gap: 0.75rem;
	font-size: 0.875rem;
	color: var(--lk-graphite);
}

.lk-avis-repartition li + li {
	margin-top: 0.375rem;
}

.lk-avis-repartition li > :last-child {
	text-align: right;
}

.lk-avis-barre {
	height: 4px;
	overflow: hidden;
	border-radius: 2px;
	background: rgba(13, 27, 42, 0.12);
}

.lk-avis-barre i {
	display: block;
	height: 100%;
	background: var(--lk-cuivre-fonce);
}

.lk-avis-mention {
	margin-top: clamp(2rem, 4vw, 3rem) !important;
	text-align: center;
}

@media (max-width: 781px) {
	.lk-avis-list {
		grid-template-columns: minmax(0, 1fr);
	}
}

/* Formulaire de contact (Contact Form 7) */
.lk-form {
	max-width: 46rem;
}

.lk-form p {
	margin: 0;
}

.lk-form-row {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 0 1.5rem;
}

.lk-form label {
	display: block;
	margin-bottom: 1.25rem;
	font-size: 0.875rem;
	letter-spacing: 0.02em;
	color: var(--lk-nuit);
}

.lk-form input[type="text"],
.lk-form input[type="email"],
.lk-form input[type="tel"],
.lk-form select,
.lk-form textarea {
	display: block;
	box-sizing: border-box;
	width: 100%;
	min-height: 48px;
	margin-top: 0.375rem;
	padding: 0.75rem 0.875rem;
	border: 1px solid var(--lk-graphite);
	border-radius: var(--lk-radius);
	background: #fff;
	color: var(--lk-nuit);
	font: inherit;
	font-size: 1rem;
}

.lk-form textarea {
	min-height: 10rem;
	resize: vertical;
}

.lk-form input:focus,
.lk-form select:focus,
.lk-form textarea:focus {
	outline: 2px solid var(--lk-cuivre-fonce);
	outline-offset: 1px;
}

.lk-form-note {
	margin-bottom: 1.25rem !important;
	font-size: 0.8125rem;
	color: var(--lk-graphite);
}

.lk-form-note a {
	color: var(--lk-cuivre-fonce);
}

.lk-form .wpcf7-submit {
	min-height: 48px;
	cursor: pointer;
}

.lk-form .wpcf7-not-valid-tip {
	margin-top: 0.25rem;
	font-size: 0.8125rem;
	color: #9b2c1f;
}

.wpcf7 form .wpcf7-response-output {
	max-width: 46rem;
	margin: 1.25rem 0 0;
	padding: 0.75rem 1rem;
	border-radius: var(--lk-radius);
	color: var(--lk-nuit);
}

@media (max-width: 781px) {
	.lk-form-row {
		grid-template-columns: minmax(0, 1fr);
	}
}

/* 14. Cartes cadeaux
   ========================================================================== */
.lk-gift.wp-block-cover {
	min-height: 0 !important;
	padding: var(--lk-section) var(--lk-gutter);
	align-items: center;
}

.lk-gift .wp-block-cover__inner-container {
	width: 100% !important;
	max-width: var(--lk-wide);
	margin-inline: auto !important;
}

.lk-gift-content {
	max-width: 44rem;
}

.lk-gift-content > * {
	margin-block: 0;
}

.lk-gift-content > * + * {
	margin-top: 1.5rem;
}

.lk-steps {
	margin-top: 2.75rem !important;
	gap: 1.5rem !important;
}

.lk-step > * {
	margin-block: 0;
}

.lk-step .lk-step-icon {
	/* Flex et non grid : le texte masqué (« Étape 1 ») formait une 2e ligne de grille et remontait l'icône. */
	display: flex;
	align-items: center;
	justify-content: center;
	width: 3.25rem;
	height: 3.25rem;
	margin-bottom: 1rem;
	border: 1px solid var(--lk-cuivre);
	border-radius: 50%;
	color: var(--lk-cuivre);
	font-size: 0;
}

.lk-step .lk-step-icon::before {
	width: 1.375rem;
	height: 1.375rem;
}

@media (max-width: 781px) {
	.lk-steps {
		gap: 1.25rem !important;
	}

	.lk-step {
		display: grid;
		grid-template-columns: 3.25rem minmax(0, 1fr);
		align-items: center;
		gap: 1rem;
	}

	.lk-step .lk-step-icon {
		margin-bottom: 0;
	}
}

.lk-steps--page .lk-step p:not(.lk-step-icon) {
	font-size: 1.125rem;
	max-width: 22em;
}

.lk-step p:not(.lk-step-icon) {
	font-size: 0.9875rem;
	line-height: 1.5;
	color: var(--lk-lin);
}

ul.lk-chips {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem;
	margin: 2.25rem 0 0 !important;
	padding: 0;
	list-style: none;
}

ul.lk-chips li {
	margin: 0;
	padding: 0.5rem 0.875rem;
	border: 1px solid var(--lk-trait-fort);
	border-radius: var(--lk-radius);
	font-size: 0.875rem;
	line-height: 1.3;
}

.lk-gift-content .wp-block-buttons {
	margin-top: 2.5rem;
}

.lk-secure {
	display: flex;
	align-items: center;
	gap: 0.5rem;
	margin-top: 1rem !important;
	font-size: 0.875rem;
	color: rgba(238, 232, 222, 0.82);
}

.lk-secure::before {
	width: 1.125rem !important;
	height: 1.125rem !important;
}

/* Mobile : bandeau photo, puis texte sur fond uni */
@media (max-width: 781px) {
	.lk-gift.wp-block-cover {
		display: block;
		padding: calc(80vw - 3.5rem) var(--lk-gutter) var(--lk-section);
		background: var(--lk-nuit);
	}

	.lk-gift .wp-block-cover__image-background {
		bottom: auto !important;
		height: 80vw !important;
	}

	.lk-gift .wp-block-cover__background {
		bottom: auto !important;
		height: calc(80vw + 1px) !important;
		opacity: 1 !important;
		background: linear-gradient(180deg, rgba(var(--lk-nuit-rgb), 0) 40%, rgba(var(--lk-nuit-rgb), 0.8) 80%, var(--lk-nuit) 100%) !important;
	}
}

/* Écrans larges : légère parallaxe de la photo */
@media (min-width: 782px) and (prefers-reduced-motion: no-preference) {
	.lk-gift .wp-block-cover__image-background {
		scale: 1.14;
		translate: 0 var(--lk-par, 0);
	}
}

/* 15. Séjours & occasions (cartes photo cliquables)
   ========================================================================== */
.lk-occasion {
	position: relative;
}

.lk-occasion > * {
	margin-block: 0;
}

.lk-occasion .wp-block-image img {
	aspect-ratio: 3 / 4;
	object-fit: cover;
}

.lk-occasion h3 {
	margin-top: 1.25rem !important;
	font-size: clamp(1.5rem, 1.35rem + 0.5vw, 1.75rem);
}

/* Titres sur deux lignes réservées : les textes des quatre cartes restent alignés */
@media (min-width: 782px) {
	.lk-occasion h3 {
		min-height: 2.3em;
	}
}

.lk-occasion h3 a {
	color: var(--lk-lin);
	text-decoration: none;
}

.lk-occasion h3 a::after {
	content: "";
	position: absolute;
	inset: 0;
}

.lk-occasion:hover h3 a {
	color: var(--lk-cuivre);
}

.lk-occasion p {
	margin-top: 0.5rem !important;
	font-size: 0.9375rem;
	color: var(--lk-pierre);
}

.lk-occasion .lk-occasion-note {
	color: var(--lk-cuivre);
	font-size: 0.875rem;
}

/* 16. Alentours / carte
   ========================================================================== */
/* Deux versions de la carte : écran large, et mobile aux textes agrandis */
.lk-map-wrap > * {
	margin-block: 0 !important;
}

.wp-block-image.lk-map--mobile {
	display: none;
}

@media (max-width: 781px) {
	.wp-block-image.lk-map--large {
		display: none;
	}

	.wp-block-image.lk-map--mobile {
		display: block;
	}
}

.lk-map img {
	width: 100%;
	border: 1px solid var(--lk-trait);
	border-radius: var(--lk-radius);
}

.lk-alentours-text > * {
	margin-block: 0;
}

.lk-alentours-text > * + * {
	margin-top: 1.5rem;
}

/* Villes et sites autour (page Les alentours) */
.lk-towns {
	display: grid !important;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: clamp(2rem, 1.5rem + 2vw, 3.5rem) clamp(1.5rem, 1rem + 1.5vw, 2.5rem);
}

.lk-towns > * {
	margin: 0 !important;
}

.lk-town {
	padding-top: 1.5rem;
	border-top: 1px solid var(--lk-trait);
}

.lk-town > * {
	margin-block: 0;
}

.lk-town .lk-town-time {
	font-size: 0.8125rem;
	font-weight: 500;
	letter-spacing: 0.15em;
	text-transform: uppercase;
	color: var(--lk-cuivre);
}

.lk-town h3 {
	margin-top: 0.75rem !important;
	font-size: clamp(1.625rem, 1.45rem + 0.6vw, 2rem);
}

.lk-town .lk-town-hook {
	margin-top: 0.25rem !important;
	font-family: var(--lk-serif);
	font-size: 1.125rem;
	font-style: italic;
	color: var(--lk-lin);
}

.lk-town p:not(.lk-town-time):not(.lk-town-hook) {
	margin-top: 1rem !important;
	font-size: 0.9375rem;
	color: var(--lk-pierre);
}

.lk-towns + .lk-note {
	margin-top: 2.5rem !important;
}

@media (max-width: 1099px) {
	.lk-towns {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 599px) {
	.lk-towns {
		grid-template-columns: minmax(0, 1fr);
	}
}

/* Bandeau « offrir à votre tour » (cible du QR code dans le gîte) */
.lk-offrir-retour .lk-eyebrow {
	margin-inline: auto;
}

/* 17. Contenu des pages intérieures
   ========================================================================== */
.lk-prose {
	max-width: 44rem;
}

.lk-prose > * {
	margin-block: 0;
}

.lk-prose > * + * {
	margin-top: 1.25rem;
}

.lk-prose h2 {
	margin-top: 3.5rem;
	font-size: clamp(1.875rem, 1.5rem + 1.5vw, 2.75rem);
}

.lk-prose h3 {
	margin-top: 2.25rem;
	font-size: clamp(1.375rem, 1.25rem + 0.6vw, 1.75rem);
}

.lk-prose h2 + *,
.lk-prose h3 + * {
	margin-top: 1rem;
}

.lk-prose a:not(.wp-element-button) {
	color: var(--lk-cuivre);
}

.lk-prose a:not(.wp-element-button):hover {
	color: var(--lk-lin);
}

.lk-prose .wp-block-buttons {
	margin-top: 2rem;
}

.lk-prose ul,
.lk-list {
	padding-left: 1.25rem;
}

.lk-prose li::marker,
.lk-list li::marker {
	color: var(--lk-cuivre);
}

.lk-list li + li {
	margin-top: 0.5rem;
}

@media (min-width: 782px) {
	.lk-options-list {
		columns: 2;
		column-gap: 3rem;
		max-width: 44rem;
	}

	.lk-options-list li {
		break-inside: avoid;
	}

	.lk-options-list li + li {
		margin-top: 0;
	}

	.lk-options-list li {
		margin-bottom: 0.625rem;
	}
}

.lk-text > * {
	margin-block: 0;
}

.lk-text > * + * {
	margin-top: 1.25rem;
}

.lk-text p:not(.lk-eyebrow) {
	max-width: 36em;
}

.lk-text .wp-block-list {
	color: var(--lk-pierre);
}

.lk-text .wp-block-list li {
	color: var(--lk-lin);
}

/* Bloc média + texte des pages intérieures */
.lk-media img {
	aspect-ratio: 4 / 3;
	object-fit: cover;
}

.lk-media--tall img {
	aspect-ratio: 4 / 5;
}

@media (min-width: 782px) {
	.lk-split--reverse > .wp-block-column:first-child {
		order: 2;
	}
}

.lk-duo {
	gap: 0.75rem !important;
}

.lk-duo .wp-block-image img {
	aspect-ratio: 4 / 5;
	object-fit: cover;
}

/* Point de cadrage des photos recadrées (le sujet reste dans le cadre) */
.wp-block-image.lk-fx-0 img {
	object-position: 0% 50%;
}

.wp-block-image.lk-fx-65 img {
	object-position: 65% 50%;
}

.wp-block-image.lk-fx-80 img {
	object-position: 80% 50%;
}

.wp-block-image.lk-fy-65 img {
	object-position: 50% 65%;
}

/* Sur mobile, les rangées de photos défilent à l'horizontale au lieu de s'empiler */
@media (max-width: 781px) {
	.lk-duo.wp-block-columns {
		flex-wrap: nowrap !important;
		overflow-x: auto;
		scroll-snap-type: x mandatory;
		margin-inline: calc(var(--lk-gutter) * -1) !important;
		padding: 0 var(--lk-gutter) 0.75rem;
		gap: 0.75rem !important;
		scrollbar-width: thin;
		scrollbar-color: var(--lk-petrole) transparent;
	}

	.lk-duo.wp-block-columns > .wp-block-column {
		flex: 0 0 72% !important;
		scroll-snap-align: start;
	}
}

/* Pièces de la maison */
.lk-rooms > .wp-block-column > * {
	margin-block: 0;
}

.lk-room .wp-block-image img {
	aspect-ratio: 4 / 3;
	object-fit: cover;
}

.lk-room h3 {
	margin-top: 1.5rem !important;
}

.lk-room p.lk-room-meta {
	margin-top: 0.5rem !important;
	font-size: 0.8125rem;
	font-weight: 500;
	letter-spacing: 0.15em;
	text-transform: uppercase;
	color: var(--lk-cuivre);
}

.lk-room ul {
	margin-top: 1rem !important;
	padding-left: 1.25rem;
	color: var(--lk-pierre);
}

.lk-room ul li::marker {
	color: var(--lk-cuivre);
}

/* Chambres avec plusieurs photos : grande photo et deux vignettes sur ordinateur,
   carrousel horizontal sur mobile comme pour la Suite (retour de Gaël du 18/10). */
.lk-room-slides.wp-block-columns {
	display: grid !important;
	grid-template-columns: 1fr 1fr;
	gap: 0.75rem !important;
	margin: 0 !important;
}

.lk-room-slides.wp-block-columns > .wp-block-column {
	flex-basis: auto !important;
	margin: 0 !important;
}

.lk-room-slides.wp-block-columns > .wp-block-column:first-child {
	grid-column: 1 / -1;
}

@media (max-width: 781px) {
	.lk-room-slides.wp-block-columns {
		display: flex !important;
		margin-inline: calc(var(--lk-gutter) * -1) !important;
	}

	.lk-room-slides.wp-block-columns > .wp-block-column {
		flex: 0 0 86% !important;
	}
}

/* Liste d'équipements par familles */
.lk-equip > .wp-block-column {
	padding-top: 1.5rem;
	border-top: 1px solid var(--lk-trait);
}

.lk-equip h3 {
	font-size: clamp(1.5rem, 1.35rem + 0.5vw, 1.75rem);
	margin: 0 0 1rem !important;
}

.lk-equip ul {
	margin: 0;
	padding-left: 1.125rem;
	color: var(--lk-pierre);
}

.lk-equip li + li {
	margin-top: 0.375rem;
}

.lk-equip li::marker {
	color: var(--lk-cuivre);
}

/* Questions fréquentes */
.lk-faq {
	max-width: 52rem;
}

.lk-faq .wp-block-details {
	margin: 0;
	border-bottom: 1px solid var(--lk-trait);
}

.lk-faq .wp-block-details:first-child {
	border-top: 1px solid var(--lk-trait);
}

.lk-faq summary {
	position: relative;
	display: block;
	padding: 1.375rem 3rem 1.375rem 0;
	font-family: var(--lk-serif);
	font-size: clamp(1.3125rem, 1.2rem + 0.5vw, 1.625rem);
	font-weight: 500;
	line-height: 1.3;
	list-style: none;
	cursor: pointer;
}

.lk-faq summary::-webkit-details-marker {
	display: none;
}

.lk-faq summary::after {
	content: "";
	position: absolute;
	right: 0.25rem;
	top: 50%;
	width: 14px;
	height: 14px;
	margin-top: -7px;
	background:
		linear-gradient(var(--lk-cuivre), var(--lk-cuivre)) center / 14px 1.5px no-repeat,
		linear-gradient(var(--lk-cuivre), var(--lk-cuivre)) center / 1.5px 14px no-repeat;
	transition: transform 0.25s var(--lk-ease);
}

.lk-faq details[open] summary::after {
	transform: rotate(45deg);
}

.lk-faq summary:hover {
	color: var(--lk-cuivre);
}

.lk-faq .wp-block-details > :not(summary) {
	margin: 0 0 1.5rem;
	max-width: 40em;
	color: var(--lk-pierre);
}

/* Bandeau d'appel à l'action */
.lk-cta {
	text-align: center;
}

.lk-cta .lk-inner {
	max-width: 46rem;
	margin-inline: auto;
}

.lk-cta .wp-block-buttons {
	justify-content: center;
	margin-top: 2.25rem !important;
}

.lk-cta .lk-lead {
	margin-inline: auto;
	color: var(--lk-pierre);
}

/* Coordonnées (page contact) */
.lk-contact-list {
	display: flex !important;
	flex-direction: column;
	gap: 1.25rem !important;
}

.lk-contact-list p {
	display: flex;
	align-items: flex-start;
	gap: 1rem;
	margin: 0;
	font-size: 1.0625rem;
}

.lk-contact-list p::before {
	margin-top: 0.125rem;
	color: var(--lk-cuivre);
}

.lk-contact-list a {
	color: var(--lk-lin);
}

.lk-contact-list a:hover {
	color: var(--lk-cuivre);
}

/* Pages légales */
.lk-page-title {
	padding-bottom: clamp(2.5rem, 2rem + 2vw, 4rem);
	border-bottom: 1px solid var(--lk-trait);
}

.lk-page-title h1 {
	font-size: clamp(2.5rem, 2rem + 2.5vw, 4rem);
	margin: 0;
}

.lk-legal {
	padding-top: clamp(2.5rem, 2rem + 2vw, 4rem);
}

.lk-legal .lk-prose {
	color: rgba(238, 232, 222, 0.9);
}

/* 18. Pied de page
   ========================================================================== */
.lk-footer {
	padding: clamp(4rem, 3rem + 4vw, 7rem) var(--lk-gutter) 2rem;
	background: var(--lk-nuit);
	border-top: 1px solid var(--lk-trait);
	color: var(--lk-lin);
}

.lk-footer > .wp-block-group,
.lk-footer > .wp-block-columns {
	max-width: var(--lk-wide);
	margin-inline: auto;
}

.lk-footer-cols {
	gap: clamp(2rem, 1.5rem + 2vw, 4rem) !important;
	margin: 0 auto !important;
}

.lk-footer-cols .wp-block-column > * {
	margin-block: 0;
}

.lk-footer-cols .wp-block-column > * + * {
	margin-top: 1rem;
}

.lk-footer .wp-block-site-logo img {
	width: auto;
	height: 72px;
}

.lk-footer .lk-tagline {
	margin-top: 1.5rem !important;
	font-family: var(--lk-serif);
	font-size: 1.5rem;
	font-weight: 500;
	line-height: 1.25;
	max-width: 14em;
}

.lk-footer .lk-eyebrow {
	color: var(--lk-pierre);
	margin-bottom: 1.25rem;
}

.lk-footer p {
	font-size: 0.9375rem;
	line-height: 1.7;
}

.lk-footer a {
	color: var(--lk-lin);
	text-decoration: none;
}

.lk-footer a:hover {
	color: var(--lk-cuivre);
}

.lk-footer .lk-footer-contact a {
	text-decoration: underline;
	text-decoration-color: var(--lk-trait-fort);
}

.lk-footer-nav .wp-block-navigation__container {
	flex-direction: column;
	align-items: flex-start;
	gap: 0.625rem;
}

.lk-footer-nav .wp-block-navigation-item__content {
	font-size: 0.9375rem;
	padding-block: 0.125rem;
}

.lk-social.wp-block-social-links,
.lk-nav-social.wp-block-social-links {
	gap: 0.5rem;
	margin-top: 1.75rem !important;
}

.lk-social .wp-social-link,
.lk-nav-social .wp-social-link {
	background: transparent !important;
	color: var(--lk-lin) !important;
}

.lk-social .wp-social-link a,
.lk-nav-social .wp-social-link a {
	display: grid;
	place-items: center;
	width: 44px;
	height: 44px;
	padding: 0;
	border: 1px solid var(--lk-trait-fort);
	border-radius: 50%;
}

.lk-social .wp-social-link a:hover,
.lk-nav-social .wp-social-link a:hover {
	border-color: var(--lk-cuivre);
	color: var(--lk-cuivre);
}

.lk-social svg,
.lk-nav-social svg {
	width: 18px;
	height: 18px;
}

.lk-footer-bottom {
	display: flex !important;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 1rem 2rem !important;
	margin-top: clamp(3.5rem, 2.5rem + 3vw, 5rem) !important;
	padding-top: 1.75rem;
	border-top: 1px solid var(--lk-trait);
}

.lk-footer-bottom p,
.lk-footer-legal .wp-block-navigation-item__content {
	margin: 0;
	font-size: 0.875rem;
	color: var(--lk-pierre);
}

.lk-footer-legal .wp-block-navigation__container {
	gap: 0.5rem 1.5rem;
}

.lk-footer-legal .wp-block-navigation-item__content {
	padding-block: 0.625rem;
}

.lk-footer .lk-footer-bottom a {
	color: var(--lk-pierre);
}

.lk-footer .lk-footer-bottom a:hover {
	color: var(--lk-lin);
}

@media (max-width: 781px) {
	/* Pied de page centré sur mobile */
	.lk-footer {
		text-align: center;
	}

	.lk-footer .wp-block-site-logo {
		display: flex;
		justify-content: center;
	}

	.lk-footer .lk-social,
	.lk-footer .wp-block-buttons,
	.lk-footer .wp-block-navigation,
	.lk-footer-legal .wp-block-navigation__container {
		justify-content: center !important;
	}

	.lk-footer .wp-block-navigation,
	.lk-footer-nav .wp-block-navigation__container {
		width: 100%;
	}

	.lk-footer-nav .wp-block-navigation__container {
		align-items: center !important;
	}

	.lk-footer-bottom {
		flex-direction: column;
		align-items: center;
	}

	/* Cibles tactiles de 44 px minimum */
	.lk-footer-nav .wp-block-navigation__container {
		gap: 0;
	}

	.lk-footer-nav .wp-block-navigation-item__content,
	.lk-footer-legal .wp-block-navigation-item__content {
		display: inline-flex;
		align-items: center;
		min-height: 44px;
		padding-block: 0;
	}

	.lk-footer .lk-footer-contact a {
		display: inline-block;
		padding-block: 0.625rem;
	}
}

/* 19. Boutique cartes cadeaux (WooCommerce)
   ========================================================================== */
.lk-shop .product {
	display: grid;
	grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr);
	gap: clamp(2rem, 1rem + 4vw, 4.5rem);
	align-items: start;
	margin: 0;
}

.lk-shop .product > * {
	margin: 0 !important;
}

.lk-shop .woocommerce-product-gallery {
	width: auto !important;
	float: none !important;
	opacity: 1 !important;
}

.lk-shop .woocommerce-product-gallery__trigger,
.lk-shop .onsale {
	display: none !important;
}

.lk-shop .woocommerce-product-gallery img {
	width: 100%;
	aspect-ratio: 4 / 3;
	object-fit: cover;
	border-radius: var(--lk-radius);
}

.lk-shop .summary {
	width: auto !important;
	float: none !important;
}

.lk-shop .summary > * {
	margin-block: 0;
}

.lk-shop .product_title {
	margin: 0 0 1rem !important;
	font-family: var(--lk-serif);
	font-size: clamp(2.25rem, 1.8rem + 1.5vw, 3rem);
	font-weight: 500;
	line-height: 1.05;
}

.lk-shop .summary > .price {
	margin-bottom: 1.25rem !important;
	font-family: var(--lk-serif);
	font-size: 1.5rem;
	color: var(--lk-cuivre);
}

.lk-shop .woocommerce-product-details__short-description {
	max-width: 32em;
	color: var(--lk-pierre);
}

.lk-shop table.variations {
	width: 100%;
	margin: 2rem 0 0;
	border: 0;
	border-collapse: collapse;
}

.lk-shop table.variations tr,
.lk-shop table.variations th,
.lk-shop table.variations td {
	display: block;
	padding: 0;
	border: 0;
	background: none;
	text-align: left;
}

.lk-shop table.variations th label {
	font-size: 0.8125rem;
	font-weight: 500;
	letter-spacing: 0.15em;
	text-transform: uppercase;
	color: var(--lk-pierre);
}

.lk-shop table.variations td {
	margin-top: 0.625rem !important;
}

.lk-shop table.variations th,
.lk-shop table.variations td {
	line-height: 1.4 !important;
	padding: 0 !important;
	margin-bottom: 0 !important;
}

.lk-shop table.variations select {
	width: 100% !important;
	min-width: 0 !important;
	margin: 0 !important;
}

.lk-shop .woocommerce-variation.single_variation {
	margin: 0 !important;
}

.lk-shop table.variations select,
.lk-shop .quantity input.qty {
	min-height: 52px;
	background-color: var(--lk-sous-bois);
	color: var(--lk-lin);
	border: 1px solid var(--lk-trait-fort);
	border-radius: var(--lk-radius);
	font-family: var(--lk-sans);
	font-size: 1.0625rem;
}

.lk-shop table.variations select {
	width: 100%;
	padding: 0.75rem 2.75rem 0.75rem 1rem;
	-webkit-appearance: none;
	appearance: none;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23B9875A' stroke-width='1.5'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: right 1rem center;
	background-size: 16px;
	cursor: pointer;
}

.lk-shop table.variations select:focus-visible,
.lk-shop .quantity input.qty:focus-visible {
	outline: 2px solid var(--lk-cuivre);
	outline-offset: 2px;
}

.lk-shop .reset_variations {
	display: inline-block;
	margin-top: 0.75rem;
	font-size: 0.875rem;
	color: var(--lk-pierre);
}

.lk-shop .single_variation_wrap {
	margin-top: 1.25rem;
}

.lk-shop .woocommerce-variation-price .price {
	font-family: var(--lk-serif);
	font-size: 2.25rem;
	color: var(--lk-cuivre);
}

.lk-shop .woocommerce-variation-add-to-cart,
.lk-shop form.cart:not(.variations_form) {
	display: flex;
	gap: 0.75rem;
	margin-top: 1rem;
}

.lk-shop .quantity input.qty {
	width: 4.75rem;
	text-align: center;
}

.lk-shop .single_add_to_cart_button {
	flex: 1;
	min-height: 52px;
	border: 0;
	cursor: pointer;
}

.lk-shop .single_add_to_cart_button.disabled {
	opacity: 0.5;
	cursor: not-allowed;
}

@media (max-width: 781px) {
	.lk-shop .product {
		grid-template-columns: minmax(0, 1fr);
	}
}

/* Messages WooCommerce (ajout au panier, erreurs) */
.woocommerce-message,
.woocommerce-info,
.woocommerce-error,
.wc-block-components-notice-banner {
	background: var(--lk-sous-bois) !important;
	color: var(--lk-lin) !important;
	border: 1px solid var(--lk-trait-fort) !important;
	border-left: 2px solid var(--lk-cuivre) !important;
	border-radius: var(--lk-radius) !important;
}

.wc-block-components-notice-banner > svg {
	background: transparent !important;
	fill: var(--lk-cuivre) !important;
}

.woocommerce-message a,
.wc-block-components-notice-banner a {
	color: var(--lk-cuivre) !important;
}

/* Panier et commande (blocs WooCommerce) */
.wc-block-components-text-input input,
.wc-block-components-textarea,
.wc-block-components-combobox .wc-block-components-combobox-control input,
.wc-blocks-components-select .wc-blocks-components-select__select,
.wc-block-components-form .wc-block-components-text-input input {
	background-color: var(--lk-sous-bois) !important;
	color: var(--lk-lin) !important;
	border: 1px solid var(--lk-trait-fort) !important;
	border-radius: var(--lk-radius) !important;
}

.wc-blocks-components-select .wc-blocks-components-select__container {
	background-color: var(--lk-sous-bois) !important;
	border-radius: var(--lk-radius) !important;
}

.wc-block-components-text-input label,
.wc-blocks-components-select .wc-blocks-components-select__label,
.wc-block-components-combobox .wc-block-components-combobox-control label {
	color: var(--lk-pierre) !important;
}

.wc-blocks-components-select .wc-blocks-components-select__expand {
	fill: var(--lk-cuivre) !important;
}

.wc-block-components-text-input input:focus,
.wc-blocks-components-select .wc-blocks-components-select__select:focus {
	border-color: var(--lk-cuivre) !important;
	box-shadow: 0 0 0 1px var(--lk-cuivre) !important;
}

.wc-block-components-checkbox .wc-block-components-checkbox__input[type="checkbox"] {
	background: var(--lk-sous-bois) !important;
	border-color: var(--lk-trait-fort) !important;
}

.wc-block-components-checkbox .wc-block-components-checkbox__mark {
	fill: var(--lk-cuivre) !important;
}

.wc-block-components-quantity-selector {
	border-color: var(--lk-trait-fort) !important;
}

.wc-block-components-quantity-selector input,
.wc-block-components-quantity-selector button {
	color: var(--lk-lin) !important;
}

.wc-block-components-totals-wrapper,
.wc-block-components-order-summary,
.wc-block-cart-items,
.wc-block-cart-items td,
.wc-block-cart-items th {
	border-color: var(--lk-trait) !important;
}

.wc-block-components-sidebar .wc-block-components-panel,
.wc-block-checkout__sidebar {
	border-color: var(--lk-trait) !important;
}

.wc-block-components-title.wc-block-components-title,
.wc-block-components-checkout-step__title {
	font-family: var(--lk-serif) !important;
	font-weight: 500 !important;
}

.wc-block-components-product-name {
	color: var(--lk-lin) !important;
}

/* Pas de barre fixe Réserver / Offrir pendant l'achat */
.woocommerce-cart .wp-block-buttons.lk-mobilebar,
.woocommerce-checkout .wp-block-buttons.lk-mobilebar {
	display: none !important;
}

@media (max-width: 781px) {
	body.woocommerce-cart,
	body.woocommerce-checkout {
		padding-bottom: 0;
	}
}

/* Paiement CAWL : le logo générique (foncé) est illisible sur le fond nuit, le libellé suffit */
label[for="radio-control-wc-payment-method-options-cawl-for-woocommerce"] .wc-block-components-payment-method-icons,
.payment_method_cawl-for-woocommerce > label img {
	display: none !important;
}

/* 20. Éditeur : aperçu fidèle
   ========================================================================== */
.editor-styles-wrapper {
	background: var(--lk-nuit);
	color: var(--lk-lin);
}

.editor-styles-wrapper .lk-site-header {
	position: relative;
	top: 0;
}

.editor-styles-wrapper .wp-block-buttons.lk-mobilebar {
	display: flex !important;
	position: static;
	gap: 0.5rem;
}

.editor-styles-wrapper .lk-reveal {
	opacity: 1;
	translate: none;
}

.editor-styles-wrapper .wp-block-image.lk-statement-photo img {
	height: 100%;
	margin-top: 0;
}

/* Vidéo verticale du visuel d'accueil : mobiles uniquement, en fondu au démarrage (l'affiche reprend sa première image) */
.lk-hero .lk-hero-mobile-video {
	display: none;
}

@media (max-width: 781px) {
	/* 3 px plus courte que la photo (invisible sous le dégradé du bas) : la vidéo, qui démarre après le chargement,
	   n'est pas plus grande que la photo et ne remplace donc pas celle-ci comme élément principal mesuré par Google (LCP). */
	.lk-hero .lk-hero-mobile-video {
		display: block;
		height: calc(var(--lk-photo-h) - 3px) !important;
		opacity: 0;
		transition: opacity 0.8s var(--lk-ease);
	}

	.lk-hero .lk-hero-mobile-video.is-playing {
		opacity: 1;
	}
}

/* Vidéo horizontale du visuel d'accueil : ordinateurs uniquement, même fondu, sous le dégradé du visuel */
.lk-hero .lk-hero-desktop-video {
	display: none;
}

@media (min-width: 782px) {
	/* 3 px plus courte que la photo, comme sur mobile : elle ne la remplace pas comme élément principal (LCP) */
	.lk-hero .lk-hero-desktop-video {
		display: block;
		height: calc(100% - 3px) !important;
		opacity: 0;
		transition: opacity 0.8s var(--lk-ease);
	}

	.lk-hero .lk-hero-desktop-video.is-playing {
		opacity: 1;
	}
}

