/* =========================================================
   La Licorne — feuille de style principale

    1. Jetons de design        7. Chambres
    2. Base                    8. Réservation (Reservit)
    3. Utilitaires             9. Contact & formulaires
    4. En-tête & navigation   10. Contenu éditorial
    5. Accueil                11. Pied de page
    6. Bandeaux               12. Responsive
   ========================================================= */

/* 1. Jetons de design ----------------------------------- */
:root {
	/* Encre : l'ancrage sombre, repris du logo. */
	--encre: #12161c;
	--encre-doux: #1e242d;
	--encre-voile: rgba(18, 22, 28, .06);

	/* Sable : l'accent décoratif (filets, surtitres, chiffres). */
	--sable: #c9b896;
	--sable-fonce: #9a8862;
	--sable-pale: #e8e0d1;

	/* Marine : la couleur d'action, distincte du décor. */
	--marine: #1d4b52;
	--marine-clair: #2a6b74;

	/* Papier : les fonds. */
	--papier: #fbf9f5;
	--papier-chaud: #f3efe7;
	--blanc: #fff;

	--texte: #262b33;
	--texte-doux: #5d646e;
	--bordure: #e3ddd1;

	--titres: Antonio, "Arial Narrow", Helvetica, sans-serif;
	--corps: "Asap Condensed", "Helvetica Neue", Arial, sans-serif;

	--conteneur: 1240px;
	--etroit: 760px;
	--gouttiere: clamp(1.25rem, 4vw, 3.5rem);
	--section: clamp(4rem, 8vw, 8rem);
	--entete-hauteur: 78px;

	--transition: 260ms cubic-bezier(.22, .61, .36, 1);
	--ombre-douce: 0 14px 34px -24px rgba(18, 22, 28, .5);
	--ombre: 0 24px 60px -32px rgba(18, 22, 28, .55);
	--ombre-forte: 0 34px 80px -34px rgba(18, 22, 28, .7);
}

/* 2. Base ----------------------------------------------- */
*, *::before, *::after { box-sizing: border-box; }

html { scroll-behavior: smooth; }

@media (prefers-reduced-motion: reduce) {
	html { scroll-behavior: auto; }
	*, *::before, *::after {
		animation-duration: .01ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: .01ms !important;
	}
}

body {
	margin: 0;
	background: var(--blanc);
	color: var(--texte);
	font-family: var(--corps);
	font-size: 1.125rem;
	line-height: 1.75;
	-webkit-font-smoothing: antialiased;
	overflow-x: hidden;
}

img, video, iframe { max-width: 100%; }
img { height: auto; display: block; }

a { color: var(--marine); text-underline-offset: .2em; }
a:hover { color: var(--encre); }

h1, h2, h3, h4, h5, h6 {
	font-family: var(--titres);
	font-weight: 400;
	line-height: 1.08;
	color: var(--encre);
	margin: 0 0 .55em;
	letter-spacing: -.005em;
}

h1 { font-size: clamp(2.6rem, 1.4rem + 4.4vw, 4.75rem); }
h2 { font-size: clamp(2.1rem, 1.3rem + 2.9vw, 3.4rem); }
h3 { font-size: clamp(1.4rem, 1.15rem + 1vw, 1.85rem); }
h4 { font-size: 1.2rem; }

p { margin: 0 0 1.15em; }
p:last-child { margin-bottom: 0; }
ul, ol { padding-left: 1.2em; }

::selection { background: var(--sable); color: var(--encre); }

:focus-visible {
	outline: 2px solid var(--marine);
	outline-offset: 3px;
	border-radius: 2px;
}

/* 3. Utilitaires ---------------------------------------- */
.conteneur {
	width: min(100% - (var(--gouttiere) * 2), var(--conteneur));
	margin-inline: auto;
}
.conteneur--etroit { width: min(100% - (var(--gouttiere) * 2), var(--etroit)); }

.sr-only {
	position: absolute !important;
	width: 1px; height: 1px;
	padding: 0; margin: -1px;
	overflow: hidden;
	clip: rect(0 0 0 0);
	white-space: nowrap; border: 0;
}

.lien-evitement {
	position: absolute; left: -9999px; top: 0; z-index: 300;
	background: var(--encre); color: var(--blanc);
	padding: .9rem 1.5rem;
}
.lien-evitement:focus { left: 1rem; top: 1rem; color: var(--blanc); }

.texte-centre { text-align: center; }

/* Surtitre : petit label sable au-dessus des titres. */
.surtitre {
	display: flex;
	align-items: center;
	gap: .75rem;
	font-family: var(--corps);
	text-transform: uppercase;
	letter-spacing: .26em;
	font-size: .75rem;
	font-weight: 600;
	color: var(--sable-fonce);
	margin: 0 0 1rem;
}
.surtitre::before {
	content: "";
	width: 34px; height: 1px;
	background: var(--sable);
	flex: none;
}
.section__entete--centre .surtitre { justify-content: center; }

.note { font-size: .9375rem; color: var(--texte-doux); }

.section { padding-block: var(--section); }
.section--papier { background: var(--papier); }
.section--chaud { background: var(--papier-chaud); }
.section--encre { background: var(--encre); color: rgba(255, 255, 255, .82); }
.section--encre h2, .section--encre h3 { color: var(--blanc); }

.section__entete { margin-bottom: clamp(2.25rem, 4vw, 3.5rem); max-width: 46ch; }
.section__entete--centre { text-align: center; margin-inline: auto; }
.section__entete--large { max-width: none; }

.section__titre { margin: 0; color: var(--encre); }
.section__titre + .section__chapo { margin-top: 1rem; }
.section__chapo { color: var(--texte-doux); font-size: 1.1875rem; }
.section__titre--petit { font-size: clamp(1.6rem, 1.2rem + 1.4vw, 2.2rem); }

.section__pied {
	margin-top: clamp(2.25rem, 4vw, 3.25rem);
	display: flex; flex-wrap: wrap; gap: .85rem; justify-content: center;
}

/* Boutons ------------------------------------------------ */
.bouton {
	display: inline-flex;
	align-items: center; justify-content: center;
	gap: .55rem;
	font-family: var(--corps);
	font-size: .9375rem;
	font-weight: 600;
	letter-spacing: .1em;
	text-transform: uppercase;
	text-decoration: none;
	padding: 1rem 2.1rem;
	border: 1px solid transparent;
	border-radius: 2px;
	cursor: pointer;
	white-space: nowrap;
	transition: background var(--transition), color var(--transition), border-color var(--transition), transform var(--transition);
}
.bouton:active { transform: translateY(1px); }

/* Action principale : marine, la seule couleur qui appelle au clic. */
.bouton--action { background: var(--marine); color: var(--blanc); border-color: var(--marine); }
.bouton--action:hover,
.bouton--action:focus-visible { background: var(--marine-clair); border-color: var(--marine-clair); color: var(--blanc); }

/* Action secondaire sur fond clair. */
.bouton--encre { background: var(--encre); color: var(--blanc); border-color: var(--encre); }
.bouton--encre:hover { background: var(--marine); border-color: var(--marine); color: var(--blanc); }

.bouton--ligne { background: transparent; color: var(--encre); border-color: var(--bordure); }
.bouton--ligne:hover { background: var(--encre); border-color: var(--encre); color: var(--blanc); }

.bouton--fantome { background: transparent; color: var(--blanc); border-color: rgba(255, 255, 255, .45); }
.bouton--fantome:hover { background: var(--blanc); color: var(--encre); border-color: var(--blanc); }

.bouton--compact { padding: .62rem 1.25rem; font-size: .8125rem; }

.lien-fleche {
	display: inline-flex; align-items: center; gap: .45rem;
	font-size: .875rem; font-weight: 600;
	text-transform: uppercase; letter-spacing: .14em;
	text-decoration: none; color: var(--encre);
}
.lien-fleche::after { content: "→"; transition: transform var(--transition); }
.lien-fleche:hover::after { transform: translateX(4px); }

/* Fil d'Ariane */
.fil-ariane { margin-bottom: 1.1rem; }
.fil-ariane ol {
	display: flex; flex-wrap: wrap; gap: .5rem;
	list-style: none; margin: 0; padding: 0;
	font-size: .75rem; text-transform: uppercase; letter-spacing: .16em;
	color: var(--texte-doux);
}
.fil-ariane li + li::before { content: "/"; margin-right: .5rem; opacity: .45; }
.fil-ariane a { color: inherit; text-decoration: none; }
.fil-ariane a:hover { color: var(--sable-fonce); }
.bandeau--illustre .fil-ariane { color: rgba(255, 255, 255, .8); }

/* 4. En-tête & navigation -------------------------------- */
.offre { background: var(--marine); color: var(--blanc); position: relative; z-index: 80; }
.offre__interieur {
	display: flex; align-items: center; gap: 1.25rem;
	padding-block: .7rem; flex-wrap: wrap;
}
.offre__contenu { margin: 0; display: flex; flex-wrap: wrap; align-items: baseline; gap: .15rem .9rem; flex: 1 1 320px; }
.offre__surtitre { text-transform: uppercase; letter-spacing: .2em; font-size: .7rem; color: var(--sable); }
.offre__titre { font-family: var(--titres); font-size: 1.25rem; }
.offre__texte { color: rgba(255, 255, 255, .8); flex: 1 1 100%; font-size: .875rem; }
.offre__fermer {
	background: none; border: 0; color: rgba(255, 255, 255, .7);
	font-size: 1.5rem; line-height: 1; cursor: pointer; padding: 0 .25rem;
}
.offre__fermer:hover { color: var(--blanc); }
.offre[hidden] { display: none; }

.entete {
	position: sticky; top: 0; z-index: 70;
	background: var(--encre);
	transition: background var(--transition), box-shadow var(--transition);
}
.entete__interieur {
	display: flex; align-items: center; justify-content: space-between;
	gap: 1.5rem; min-height: var(--entete-hauteur);
}

.entete-transparente .entete {
	position: fixed; inset-inline: 0;
	background: linear-gradient(to bottom, rgba(18, 22, 28, .78), rgba(18, 22, 28, 0));
}
.entete-transparente .entete.est-fixe {
	background: var(--encre);
	box-shadow: 0 12px 34px -26px rgba(0, 0, 0, .9);
}

/* La marque : le logo porte déjà la signature, on ne la répète pas. */
.marque { display: inline-flex; align-items: center; text-decoration: none; color: var(--blanc); padding-block: .5rem; }
.marque__image { width: auto; height: 44px; max-height: 44px; }
.marque__texte {
	font-family: var(--titres); font-size: 1.5rem;
	letter-spacing: .06em; text-transform: uppercase;
}

.navigation { display: flex; align-items: center; gap: clamp(1.25rem, 2.5vw, 2.5rem); }
.navigation__liste {
	display: flex; align-items: center; gap: clamp(1rem, 2vw, 2rem);
	list-style: none; margin: 0; padding: 0;
}
.navigation__liste a {
	position: relative; display: inline-block;
	color: rgba(255, 255, 255, .88); text-decoration: none;
	font-size: .875rem; letter-spacing: .12em; text-transform: uppercase;
	padding-block: .45rem; white-space: nowrap;
}
.navigation__liste a::after {
	content: ""; position: absolute; left: 0; right: 0; bottom: 0;
	height: 1px; background: var(--sable);
	transform: scaleX(0); transform-origin: left;
	transition: transform var(--transition);
}
.navigation__liste a:hover::after,
.navigation__liste .current-menu-item > a::after,
.navigation__liste .current_page_item > a::after { transform: scaleX(1); }
.navigation__liste a:hover,
.navigation__liste .current-menu-item > a,
.navigation__liste .current_page_item > a { color: var(--sable); }

.navigation__liste li { position: relative; }
.navigation__liste .sub-menu {
	position: absolute; top: 100%; left: 0; min-width: 230px;
	background: var(--encre-doux); list-style: none; margin: 0; padding: .4rem 0;
	display: none; box-shadow: var(--ombre-forte);
}
.navigation__liste li:hover > .sub-menu,
.navigation__liste li:focus-within > .sub-menu { display: block; }
.navigation__liste .sub-menu a { display: block; padding: .5rem 1.1rem; text-transform: none; letter-spacing: .03em; }

.navigation__actions { display: flex; align-items: center; gap: 1rem; }
.navigation__tel {
	display: inline-flex; align-items: center; gap: .4rem;
	color: rgba(255, 255, 255, .88); text-decoration: none;
	font-size: .875rem; letter-spacing: .03em; white-space: nowrap;
}
.navigation__tel:hover { color: var(--sable); }
.navigation__tel svg { width: 15px; height: 15px; }

.burger { display: none; background: none; border: 0; padding: .6rem; cursor: pointer; }
.burger__barres { display: grid; gap: 5px; width: 26px; }
.burger__barres span { display: block; height: 2px; background: var(--blanc); transition: transform var(--transition), opacity var(--transition); }
.burger[aria-expanded="true"] .burger__barres span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
.burger[aria-expanded="true"] .burger__barres span:nth-child(2) { opacity: 0; }
.burger[aria-expanded="true"] .burger__barres span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }

/* 5. Accueil -------------------------------------------- */
.hero {
	position: relative;
	min-height: min(100svh, 900px);
	display: grid;
	grid-template-rows: 1fr auto;
	color: var(--blanc);
	overflow: hidden;
	background: var(--encre);
	isolation: isolate;
}
.hero__media { position: absolute; inset: 0; z-index: -1; }

/* Photo et vidéo se superposent : sans position absolue, la vidéo se
   placerait sous la photo, hors du cadre visible du bandeau. */
.hero__video, .hero__image {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
}
.hero__video { z-index: 1; }
.hero__voile {
	position: absolute; inset: 0; z-index: 2;
	background:
		radial-gradient(ellipse 70% 55% at 50% 42%, rgba(18, 22, 28, .55) 0%, rgba(18, 22, 28, 0) 100%),
		linear-gradient(180deg, rgba(18, 22, 28, .72) 0%, rgba(18, 22, 28, .42) 40%, rgba(18, 22, 28, .88) 100%);
}

.hero__contenu {
	align-self: center;
	display: grid; justify-items: center; gap: 1.5rem;
	text-align: center;
	padding: calc(var(--entete-hauteur) + 3rem) var(--gouttiere) 2rem;
	width: min(100%, 860px);
	margin-inline: auto;
}
.hero__logo { width: min(430px, 70vw); height: auto; filter: drop-shadow(0 2px 20px rgba(18, 22, 28, .45)); }
.hero__titre {
	font-family: var(--titres); font-size: clamp(2.6rem, 8vw, 5rem);
	margin: 0; text-transform: uppercase; color: var(--blanc);
}
.hero__accroche {
	margin: 0;
	font-size: clamp(1.05rem, .85rem + .7vw, 1.4rem);
	color: rgba(255, 255, 255, .94);
	max-width: 32ch;
	line-height: 1.55;
	text-shadow: 0 1px 18px rgba(18, 22, 28, .6);
}
.hero__lieu {
	margin: 0; display: flex; align-items: center; gap: .8rem;
	font-size: .75rem; font-weight: 600; letter-spacing: .3em; text-transform: uppercase;
	color: #e0d5bd;
	text-shadow: 0 1px 14px rgba(18, 22, 28, .7);
}
.hero__lieu::before, .hero__lieu::after { content: ""; width: 28px; height: 1px; background: rgba(201, 184, 150, .5); }

.hero__reservation { padding: 0 var(--gouttiere) clamp(2rem, 5vw, 3.5rem); width: 100%; }

/* Chiffres clés sous le héros */
.reperes {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
	gap: 1px;
	background: var(--bordure);
	border-block: 1px solid var(--bordure);
}
.reperes__item { background: var(--blanc); padding: clamp(1.5rem, 3vw, 2.25rem) 1rem; text-align: center; }
.reperes__valeur {
	display: block; font-family: var(--titres); font-size: clamp(1.9rem, 1.4rem + 1.6vw, 2.6rem);
	color: var(--encre); line-height: 1;
}
.reperes__label {
	display: block; margin-top: .5rem;
	font-size: .75rem; text-transform: uppercase; letter-spacing: .18em; color: var(--texte-doux);
}

/* Réassurance réservation directe */
.arguments {
	display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
	gap: clamp(1.75rem, 3.5vw, 3rem);
	list-style: none; margin: 0; padding: 0;
}
.arguments__item { display: grid; gap: .65rem; justify-items: start; }
.arguments__item h3 { margin: 0; font-size: 1.3rem; }
.arguments__item p { margin: 0; color: var(--texte-doux); font-size: 1rem; }
.icone--grande { width: 32px; height: 32px; color: var(--sable); }
.section--encre .arguments__item p { color: rgba(255, 255, 255, .7); }

/* Duo texte / image */
.duo { display: grid; grid-template-columns: 1fr 1fr; align-items: stretch; }
.duo--serre { gap: clamp(2rem, 5vw, 4.5rem); align-items: center; }
.duo__media { position: relative; overflow: hidden; }
.duo__media img { width: 100%; height: 100%; object-fit: cover; }
.duo--serre .duo__media img { height: auto; }
.duo__texte { display: grid; align-items: center; background: var(--papier); }
.duo--serre .duo__texte { background: transparent; }
.duo__interieur { padding: clamp(2.5rem, 6vw, 5.5rem); max-width: 620px; }
.duo--serre .duo__interieur { padding: 0; }

.section--pdj { padding: 0; }
.section--pdj .duo__media { min-height: 460px; }

/* Bande photo pleine largeur */
.bande {
	position: relative;
	min-height: clamp(340px, 46vw, 560px);
	display: grid; align-items: center;
	color: var(--blanc);
	overflow: hidden;
	isolation: isolate;
}
.bande__media { position: absolute; inset: 0; z-index: -1; }
.bande__media img { width: 100%; height: 100%; object-fit: cover; }
.bande__voile { position: absolute; inset: 0; background: linear-gradient(90deg, rgba(18, 22, 28, .82) 0%, rgba(18, 22, 28, .45) 55%, rgba(18, 22, 28, .25) 100%); }
.bande__contenu { max-width: 46ch; padding-block: clamp(2.5rem, 5vw, 4rem); }
.bande__contenu h2 { color: var(--blanc); }
.bande__contenu p { color: rgba(255, 255, 255, .84); }

/* Partenaires */
.partenaires {
	display: flex; flex-wrap: wrap; align-items: center; justify-content: center;
	gap: clamp(2rem, 5vw, 4.5rem);
	list-style: none; margin: 0; padding: 0;
}
.partenaires__item img {
	max-height: 68px; width: auto;
	filter: grayscale(1); opacity: .55;
	transition: filter var(--transition), opacity var(--transition);
}
.partenaires__item a:hover img { filter: grayscale(0); opacity: 1; }

/* 6. Bandeaux ------------------------------------------- */
.bandeau { position: relative; background: var(--papier); }
.bandeau--compact { padding-block: clamp(3rem, 6vw, 5.5rem) clamp(2rem, 4vw, 3rem); }
.bandeau--illustre {
	min-height: clamp(340px, 46vw, 540px);
	display: grid; align-items: end;
	color: var(--blanc); overflow: hidden; isolation: isolate;
}
.bandeau--illustre .bandeau__interieur { position: relative; padding-block: clamp(2.5rem, 5vw, 4.5rem); }
.bandeau--illustre .bandeau__titre { color: var(--blanc); }
.bandeau--illustre .bandeau__sous-titre { color: rgba(255, 255, 255, .85); }
.bandeau__media { position: absolute; inset: 0; z-index: -1; }
.bandeau__media img { width: 100%; height: 100%; object-fit: cover; }
.bandeau__voile { position: absolute; inset: 0; background: linear-gradient(180deg, rgba(18, 22, 28, .3) 0%, rgba(18, 22, 28, .8) 100%); }
.bandeau__titre { margin: 0; }
.bandeau__sous-titre { margin: .9rem 0 0; font-size: 1.1875rem; max-width: 52ch; color: var(--texte-doux); }
.bandeau__intro { margin-top: 1.5rem; max-width: 68ch; color: var(--texte-doux); }

/* 7. Chambres ------------------------------------------- */
/* Chambre mise en avant : grande, asymétrique. */
.chambre-vedette {
	display: grid;
	grid-template-columns: 1.35fr 1fr;
	align-items: stretch;
	background: var(--papier);
	margin-bottom: clamp(1.5rem, 3vw, 2.5rem);
	overflow: hidden;
}
.chambre-vedette__media { position: relative; overflow: hidden; min-height: 420px; }
.chambre-vedette__media img { width: 100%; height: 100%; object-fit: cover; transition: transform 800ms cubic-bezier(.22, .61, .36, 1); }
.chambre-vedette:hover .chambre-vedette__media img { transform: scale(1.04); }
.chambre-vedette__corps {
	display: flex; flex-direction: column; justify-content: center; gap: 1rem;
	padding: clamp(2rem, 4vw, 3.5rem);
}
.chambre-vedette__titre { margin: 0; font-size: clamp(1.9rem, 1.4rem + 1.8vw, 2.8rem); }

/* Grille des autres chambres */
.grille-chambres {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
	gap: clamp(1.5rem, 3vw, 2.5rem);
}

.carte-chambre {
	position: relative;
	display: flex; flex-direction: column;
	background: var(--blanc);
	transition: transform var(--transition);
}
.carte-chambre:hover { transform: translateY(-5px); }
.carte-chambre__lien { position: absolute; inset: 0; z-index: 2; }
.carte-chambre__media { position: relative; aspect-ratio: 4 / 3; overflow: hidden; background: var(--papier-chaud); }
.carte-chambre__media img { width: 100%; height: 100%; object-fit: cover; transition: transform 700ms cubic-bezier(.22, .61, .36, 1); }
.carte-chambre:hover .carte-chambre__media img { transform: scale(1.05); }
.carte-chambre__placeholder { display: block; width: 100%; height: 100%; background: var(--papier-chaud); }

/* Étiquette de prix posée sur la photo */
.carte-chambre__etiquette,
.chambre-vedette__etiquette {
	position: absolute; left: 0; bottom: 0;
	background: var(--blanc);
	padding: .7rem 1.1rem;
	font-size: .875rem; color: var(--texte-doux);
	display: flex; align-items: baseline; gap: .4rem;
}
.carte-chambre__etiquette strong,
.chambre-vedette__etiquette strong {
	font-family: var(--titres); font-size: 1.45rem; font-weight: 500; color: var(--encre);
}

.carte-chambre__corps { display: flex; flex-direction: column; gap: .7rem; padding: 1.4rem 0 0; flex: 1; }
.carte-chambre__titre { margin: 0; font-size: 1.55rem; }
.carte-chambre__texte { margin: 0; color: var(--texte-doux); flex: 1; font-size: 1rem; }

/* Caractéristiques : petites pastilles factuelles */
.caracteristiques {
	display: flex; flex-wrap: wrap; gap: .4rem;
	list-style: none; margin: 0; padding: 0;
}
.caracteristiques li {
	font-size: .75rem; text-transform: uppercase; letter-spacing: .1em;
	color: var(--texte-doux);
	background: var(--papier-chaud);
	padding: .3rem .65rem; border-radius: 2px;
}
.chambre-vedette .caracteristiques li { background: var(--blanc); }

.carte-chambre__cta { align-self: flex-start; }

/* Page d'une chambre */
.chambre__presentation { padding-block: clamp(2.5rem, 5vw, 4.5rem); }
.chambre__presentation .duo--serre { grid-template-columns: 1.15fr 1fr; }
.chambre__presentation .duo__media img {
	width: 100%;
	aspect-ratio: 4 / 3;
	object-fit: cover;
}
.chambre__titre { margin-bottom: .7rem; }
.chambre__contenu { color: var(--texte-doux); font-size: 1.125rem; }
.chambre__prix {
	margin: 1.6rem 0 0; display: flex; align-items: baseline; gap: .45rem;
	font-size: 1rem; color: var(--texte-doux);
}
.chambre__prix strong { font-family: var(--titres); font-size: 2rem; font-weight: 500; color: var(--encre); }
.chambre__actions { margin: 1.5rem 0 0; display: flex; flex-wrap: wrap; gap: .75rem; }
.chambre__photo { width: 100%; }
.prix__note { color: var(--sable-fonce); }

.details {
	display: grid; grid-template-columns: repeat(auto-fit, minmax(170px, 1fr));
	gap: 1px; margin: 0;
	background: var(--bordure); border: 1px solid var(--bordure);
}
.details__item { background: var(--blanc); padding: 1.5rem 1.2rem; text-align: center; }
.details dt { font-size: .7rem; text-transform: uppercase; letter-spacing: .2em; color: var(--texte-doux); margin-bottom: .45rem; }
.details dd { margin: 0; font-family: var(--titres); font-size: 1.2rem; color: var(--encre); line-height: 1.3; }

.commodites {
	display: grid; grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
	gap: clamp(1.5rem, 3vw, 2.5rem);
	list-style: none; margin: 0; padding: 0;
}
.commodites__item { display: grid; justify-items: center; gap: .7rem; text-align: center; }
.commodites__item span { font-size: .8125rem; text-transform: uppercase; letter-spacing: .1em; color: var(--texte-doux); max-width: 16ch; }
.icone { width: 30px; height: 30px; color: var(--sable-fonce); }

.galerie {
	display: grid; grid-template-columns: repeat(auto-fill, minmax(230px, 1fr));
	gap: .6rem; list-style: none; margin: 0; padding: 0;
}
.galerie__bouton { display: block; width: 100%; padding: 0; border: 0; background: none; cursor: zoom-in; overflow: hidden; }
.galerie__bouton img { width: 100%; aspect-ratio: 1; object-fit: cover; transition: transform 700ms cubic-bezier(.22, .61, .36, 1); }
.galerie__bouton:hover img { transform: scale(1.06); }

.visionneuse {
	position: fixed; inset: 0; z-index: 200;
	display: grid; place-items: center;
	background: rgba(12, 14, 18, .95);
	padding: clamp(1rem, 4vw, 3rem);
}
.visionneuse img { max-width: 100%; max-height: 82vh; object-fit: contain; }
.visionneuse__fermer, .visionneuse__nav {
	position: absolute; background: none;
	border: 1px solid rgba(255, 255, 255, .3); color: var(--blanc);
	width: 48px; height: 48px; font-size: 1.4rem; cursor: pointer; border-radius: 50%;
}
.visionneuse__fermer { top: 1.5rem; right: 1.5rem; }
.visionneuse__nav--prec { left: 1.5rem; top: 50%; transform: translateY(-50%); }
.visionneuse__nav--suiv { right: 1.5rem; top: 50%; transform: translateY(-50%); }
.visionneuse__fermer:hover, .visionneuse__nav:hover { background: rgba(255, 255, 255, .14); }
.visionneuse__compteur { position: absolute; bottom: 1.5rem; left: 50%; transform: translateX(-50%); color: rgba(255, 255, 255, .7); font-size: .875rem; letter-spacing: .1em; }

.services {
	display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
	gap: clamp(1.75rem, 3vw, 2.75rem);
	list-style: none; margin: 2.5rem 0 0; padding: 0;
}
.services h3 { font-size: 1.25rem; margin-bottom: .35rem; }
.services p { color: var(--texte-doux); font-size: 1rem; margin: 0; }
.section--services .note { display: block; margin-top: 2.5rem; }

/* 8. Réservation (Reservit) ------------------------------ */
.reservation {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr)) auto;
	gap: .75rem;
	align-items: end;
	background: rgba(255, 255, 255, .97);
	backdrop-filter: blur(8px);
	padding: 1.1rem;
	border-radius: 3px;
	box-shadow: var(--ombre);
	width: min(100%, 980px);
	margin-inline: auto;
}
.reservation__champ { display: grid; gap: .3rem; min-width: 0; }
.reservation__champ label {
	font-size: .6875rem; font-weight: 600;
	text-transform: uppercase; letter-spacing: .16em;
	color: var(--texte-doux);
}
.reservation__champ input,
.reservation__champ select {
	font: inherit; font-size: 1rem;
	color: var(--encre); background: var(--blanc);
	border: 1px solid var(--bordure); border-radius: 2px;
	padding: .7rem .8rem; width: 100%;
	min-height: 48px;
	transition: border-color var(--transition), box-shadow var(--transition);
}
.reservation__champ input:focus,
.reservation__champ select:focus {
	border-color: var(--marine);
	box-shadow: 0 0 0 3px rgba(29, 75, 82, .18);
	outline: none;
}
.reservation__envoi { min-height: 48px; padding-inline: 1.7rem; }
.reservation__note {
	grid-column: 1 / -1; margin: .1rem 0 0;
	font-size: .8125rem; color: var(--texte-doux); text-align: center;
}
.reservation__note::before { content: "✓ "; color: var(--marine); font-weight: 700; }

/* Variante posée dans le héros */
.reservation--hero { box-shadow: var(--ombre-forte); }

/* Variante compacte dans la barre collante */
.reservation--barre {
	box-shadow: none; background: transparent; padding: 0;
	width: auto; margin: 0; backdrop-filter: none;
	grid-template-columns: repeat(3, minmax(0, 150px)) auto;
	gap: .5rem;
}
.reservation--barre .reservation__note { display: none; }
.reservation--barre .reservation__champ label { display: none; }
.reservation--barre .reservation__champ input,
.reservation--barre .reservation__champ select { min-height: 44px; padding: .5rem .65rem; font-size: .9375rem; }
.reservation--barre .reservation__envoi { min-height: 44px; }

/* Variante dans le tiroir mobile */
.reservation--tiroir {
	grid-template-columns: 1fr; box-shadow: none; padding: 0; background: transparent; backdrop-filter: none;
}
.reservation--tiroir .reservation__envoi { width: 100%; margin-top: .4rem; }

/* Barre collante de bureau */
.barre-resa {
	position: fixed; inset-inline: 0; bottom: 0; z-index: 75;
	background: var(--blanc);
	border-top: 1px solid var(--bordure);
	box-shadow: 0 -18px 40px -32px rgba(18, 22, 28, .6);
	transform: translateY(100%);
	transition: transform var(--transition);
}
.barre-resa.est-visible { transform: translateY(0); }
.barre-resa[hidden] { display: block; }
.barre-resa__interieur {
	display: flex; align-items: center; justify-content: space-between;
	gap: 1.5rem; padding-block: .85rem;
}
.barre-resa__identite { display: grid; gap: .1rem; min-width: 0; }
.barre-resa__nom { font-family: var(--titres); font-size: 1.35rem; color: var(--encre); line-height: 1.2; }
.barre-resa__lieu { font-size: .75rem; text-transform: uppercase; letter-spacing: .16em; color: var(--texte-doux); }
.barre-resa__prix { margin: 0; font-size: .875rem; color: var(--texte-doux); }
.barre-resa__prix strong { font-family: var(--titres); font-size: 1.1rem; color: var(--encre); }

/* Barre mobile fixe */
.barre-mobile {
	display: none;
	position: fixed; inset-inline: 0; bottom: 0; z-index: 75;
	background: var(--blanc);
	border-top: 1px solid var(--bordure);
	padding: .6rem var(--gouttiere) calc(.6rem + env(safe-area-inset-bottom));
	gap: .6rem;
	box-shadow: 0 -18px 40px -32px rgba(18, 22, 28, .6);
}
.barre-mobile__icone,
.barre-mobile__resa {
	display: inline-flex; align-items: center; justify-content: center; gap: .45rem;
	min-height: 50px; border-radius: 2px;
	font-family: var(--corps); font-size: .9375rem; font-weight: 600;
	letter-spacing: .1em; text-transform: uppercase;
	cursor: pointer; text-decoration: none;
}
.barre-mobile__icone {
	flex: 0 0 auto; width: 52px; padding: 0;
	border: 1px solid var(--bordure); color: var(--encre); background: var(--blanc);
}
.barre-mobile__icone svg { width: 20px; height: 20px; }
.barre-mobile__icone--wa { color: #25d366; border-color: #25d366; }
.barre-mobile__resa { flex: 1; border: 0; background: var(--marine); color: var(--blanc); }

/* Tiroir de réservation mobile */
.tiroir-resa { position: fixed; inset: 0; z-index: 210; }
.tiroir-resa[hidden] { display: none; }
.tiroir-resa__voile { position: absolute; inset: 0; background: rgba(12, 14, 18, .6); }
.tiroir-resa__panneau {
	position: absolute; inset-inline: 0; bottom: 0;
	background: var(--blanc);
	padding: 1.5rem var(--gouttiere) calc(1.75rem + env(safe-area-inset-bottom));
	border-radius: 10px 10px 0 0;
	max-height: 88vh; overflow-y: auto;
}
.tiroir-resa__titre {
	font-family: var(--titres); font-size: 1.6rem; color: var(--encre);
	margin: 0 0 1.1rem;
}
.tiroir-resa__fermer {
	position: absolute; top: .8rem; right: .9rem;
	background: none; border: 0; font-size: 1.8rem; line-height: 1;
	color: var(--texte-doux); cursor: pointer; padding: .25rem .5rem;
}

/* 9. Contact & formulaires ------------------------------- */
.contact {
	display: grid;
	grid-template-columns: minmax(260px, .85fr) minmax(0, 1.15fr);
	gap: clamp(2rem, 5vw, 5rem);
	align-items: start;
}
.contact__bloc + .contact__bloc { margin-top: 1.9rem; }
.contact__bloc h2 {
	font-family: var(--corps); font-size: .75rem; font-weight: 600;
	text-transform: uppercase; letter-spacing: .2em;
	color: var(--sable-fonce); margin-bottom: .4rem;
}
.contact__bloc p { margin: 0; }
.contact__bloc a { color: var(--encre); text-decoration: none; }
.contact__bloc a:hover { color: var(--marine); }

.contact__formulaire { background: var(--papier); padding: clamp(1.75rem, 4vw, 3rem); }

.formulaire__piege { position: absolute; left: -9999px; }

.champ { display: grid; gap: .4rem; margin-bottom: 1.2rem; }
.champ label { font-size: .75rem; font-weight: 600; text-transform: uppercase; letter-spacing: .14em; color: var(--texte-doux); }
.champ input, .champ textarea, .recherche__champ {
	width: 100%; font: inherit; color: var(--texte); background: var(--blanc);
	border: 1px solid var(--bordure); border-radius: 2px;
	padding: .8rem .9rem; min-height: 48px;
	transition: border-color var(--transition), box-shadow var(--transition);
}
.champ textarea { min-height: 140px; }
.champ input:focus, .champ textarea:focus, .recherche__champ:focus {
	border-color: var(--marine); box-shadow: 0 0 0 3px rgba(29, 75, 82, .18); outline: none;
}
.champ--captcha { max-width: 280px; }
.formulaire__mentions { font-size: .8125rem; color: var(--texte-doux); }
.formulaire__envoi { margin: 1.4rem 0 0; }

.message { padding: 1rem 1.2rem; border-left: 3px solid; margin-bottom: 1.6rem; }
.message ul { margin: .5rem 0 0; }
.message--succes { background: #edf5f0; border-color: #2f6b4f; color: #1f4a37; }
.message--erreur { background: #fbeeee; border-color: #a8443f; color: #772d2a; }

.recherche { display: flex; gap: .6rem; margin-top: 2rem; }
.carte { width: 100%; height: clamp(320px, 45vw, 460px); border: 0; display: block; }

/* 10. Contenu éditorial ---------------------------------- */
.texte-riche > * + * { margin-top: 1.25em; }
.texte-riche h2 { margin-top: 2.2em; }
.texte-riche h3 { margin-top: 1.8em; }
.texte-riche ul, .texte-riche ol { padding-left: 1.3em; }
.texte-riche li + li { margin-top: .4em; }
.texte-riche table { width: 100%; border-collapse: collapse; }
.texte-riche th, .texte-riche td { border: 1px solid var(--bordure); padding: .7rem .9rem; text-align: left; }

.accueil-editorial > .wp-block-group { padding-block: var(--section); }
.accueil-editorial .wp-block-columns { gap: clamp(1.5rem, 3vw, 3rem); }

.atouts .wp-block-column {
	text-align: center; display: flex; flex-direction: column; align-items: center; gap: .4rem;
}
.atouts .wp-block-image img { width: 52px; height: 52px; object-fit: contain; }
.atouts h3 { font-size: 1.25rem; margin: .4rem 0 .2rem; }
.atouts p { color: var(--texte-doux); font-size: .9375rem; }

.cadre-video iframe,
.cadre-video .wp-block-embed__wrapper iframe {
	width: 100%; aspect-ratio: 16 / 9; height: auto; border: 0; display: block;
}

.liste-articles { display: grid; gap: 2.5rem; }
.article-resume { display: grid; grid-template-columns: minmax(0, 320px) 1fr; gap: 1.8rem; align-items: start; }
.article-resume__media img { width: 100%; }
.article-resume__titre { margin-bottom: .3rem; font-size: 1.6rem; }
.article-resume__titre a { color: var(--encre); text-decoration: none; }
.article-resume__titre a:hover { color: var(--marine); }
.article-resume__meta { font-size: .75rem; text-transform: uppercase; letter-spacing: .14em; color: var(--texte-doux); }

.pagination { margin-top: 3rem; }
.pagination .nav-links { display: flex; gap: .5rem; justify-content: center; flex-wrap: wrap; }
.pagination .page-numbers {
	display: grid; place-items: center; min-width: 44px; height: 44px; padding: 0 .6rem;
	border: 1px solid var(--bordure); text-decoration: none; color: var(--texte);
}
.pagination .page-numbers.current,
.pagination .page-numbers:hover { background: var(--encre); border-color: var(--encre); color: var(--blanc); }

/* 11. Pied de page --------------------------------------- */
.pied { background: var(--encre); color: rgba(255, 255, 255, .72); }
.pied__haut {
	display: grid;
	grid-template-columns: 1.4fr 1fr 1fr;
	gap: clamp(2rem, 4vw, 4.5rem);
	padding-block: clamp(3.5rem, 6vw, 5rem);
	align-items: start;
}
.pied .marque { color: var(--blanc); margin-bottom: 1.4rem; }
.pied__colonne--marque { max-width: 38ch; }
.pied__titre + .pied__texte + .pied__titre { margin-top: 1.6rem; }
.pied__mention {
	font-size: .8125rem; text-transform: uppercase;
	letter-spacing: .14em; color: var(--sable);
}
.pied__liens { list-style: none; margin: 0 0 1.4rem; padding: 0; line-height: 2; }
.pied__texte--horaires { font-size: .9375rem; color: rgba(255, 255, 255, .58); }
.pied__signature { margin: 0; max-width: 34ch; color: rgba(255, 255, 255, .6); font-size: 1rem; }
.pied__titre {
	font-family: var(--corps); font-size: .7rem; font-weight: 600;
	text-transform: uppercase; letter-spacing: .22em;
	color: var(--sable); margin-bottom: .8rem;
}
.pied__texte { margin: 0 0 1.2rem; line-height: 1.9; }
.pied a { color: rgba(255, 255, 255, .85); text-decoration: none; }
.pied a:hover { color: var(--sable); }
.pied .bouton--ligne { color: var(--blanc); border-color: rgba(255, 255, 255, .28); }
.pied .bouton--ligne:hover { background: var(--blanc); border-color: var(--blanc); color: var(--encre); }

.pied__paiements {
	display: flex; flex-wrap: wrap; align-items: center; gap: 1rem 2rem;
	padding-block: 1.5rem; border-top: 1px solid rgba(255, 255, 255, .1);
}
.pied__paiements-titre, .paiements li, .reseaux li {
	font-size: .7rem; text-transform: uppercase; letter-spacing: .16em; color: rgba(255, 255, 255, .5);
}
.paiements, .reseaux { display: flex; flex-wrap: wrap; gap: 1rem 1.6rem; list-style: none; margin: 0; padding: 0; }
.reseaux { margin-left: auto; }

.pied__bas { border-top: 1px solid rgba(255, 255, 255, .1); }
.pied__bas-interieur {
	display: flex; flex-wrap: wrap; gap: 1rem 2rem;
	align-items: center; justify-content: space-between; padding-block: 1.3rem;
}
.pied__copyright { margin: 0; font-size: .8125rem; color: rgba(255, 255, 255, .5); }
.pied__legal-liste { display: flex; flex-wrap: wrap; gap: 1rem 1.6rem; list-style: none; margin: 0; padding: 0; font-size: .8125rem; }

.widget__titre { font-family: var(--corps); font-size: .7rem; text-transform: uppercase; letter-spacing: .22em; color: var(--sable); }

/* Apparition progressive */
.apparait { opacity: 0; transform: translateY(20px); transition: opacity 750ms ease, transform 750ms cubic-bezier(.22, .61, .36, 1); }
.apparait.est-visible { opacity: 1; transform: none; }
@media (prefers-reduced-motion: reduce) { .apparait { opacity: 1; transform: none; } }

/* 12. Responsive ----------------------------------------- */
@media (max-width: 1180px) {
	.reservation--barre { grid-template-columns: repeat(3, minmax(0, 130px)) auto; }
	.barre-resa__identite { display: none; }
	.barre-resa__interieur { justify-content: center; }
}

@media (max-width: 1024px) {
	.navigation__tel { display: none; }
	.contact { grid-template-columns: 1fr; }
	.chambre-vedette { grid-template-columns: 1fr; }
	.chambre-vedette__media { min-height: 300px; }
	.pied__haut { grid-template-columns: 1fr 1fr; }
}

@media (max-width: 900px) {
	.burger { display: block; }

	.navigation {
		position: fixed; inset: 0 0 0 auto;
		width: min(340px, 86vw);
		background: var(--encre);
		flex-direction: column; align-items: flex-start; justify-content: flex-start;
		gap: 1.5rem;
		padding: calc(var(--entete-hauteur) + 1.5rem) var(--gouttiere) 2rem;
		transform: translateX(100%);
		transition: transform var(--transition);
		overflow-y: auto; box-shadow: var(--ombre-forte);
	}
	.navigation.est-ouvert { transform: translateX(0); }
	.navigation__liste { flex-direction: column; align-items: flex-start; gap: .25rem; width: 100%; }
	.navigation__liste a { display: block; width: 100%; padding: .75rem 0; font-size: 1.05rem; }
	.navigation__liste .sub-menu { position: static; display: block; background: none; box-shadow: none; padding-left: .8rem; }
	.navigation__actions { flex-direction: column; align-items: stretch; width: 100%; gap: .75rem; }
	.navigation__tel { display: flex; justify-content: center; }
	.navigation__actions .bouton { width: 100%; }

	.duo { grid-template-columns: 1fr; }
	.section--pdj .duo__media { min-height: 300px; order: -1; }
	.article-resume { grid-template-columns: 1fr; }

	/* La barre de bureau laisse place à la barre mobile. */
	.barre-resa { display: none; }
	.barre-mobile { display: flex; }
	body { padding-bottom: 68px; }

	.bande__voile { background: linear-gradient(180deg, rgba(18, 22, 28, .45) 0%, rgba(18, 22, 28, .85) 100%); }
}

@media (max-width: 700px) {
	.reservation { grid-template-columns: 1fr 1fr; padding: 1rem; }
	.reservation__champ--personnes { grid-column: 1 / -1; }
	.reservation__envoi { grid-column: 1 / -1; width: 100%; }
	.hero__reservation { display: none; }
	.hero { min-height: 86svh; }
	.hero__contenu { padding-bottom: 4rem; }
	.pied__haut { grid-template-columns: 1fr; }
	.reseaux { margin-left: 0; }
	.recherche { flex-direction: column; }
	.details__item { padding: 1.2rem .8rem; }
}

@media print {
	.entete, .pied, .offre, .barre-resa, .barre-mobile, .tiroir-resa, .reservation, .bouton { display: none !important; }
	body { color: #000; padding-bottom: 0; }
}

/* Lien WhatsApp ------------------------------------------ */
.lien-whatsapp,
.pied__whatsapp {
	display: inline-flex; align-items: center; gap: .45rem;
	text-decoration: none;
}
.icone-whatsapp { width: 17px; height: 17px; color: #25d366; flex: none; }
.pied__whatsapp { margin-bottom: .1rem; }
.contact__whatsapp { margin-top: .5rem; }
.lien-whatsapp span { border-bottom: 1px solid currentColor; }

/* Avis clients -------------------------------------------- */
.avis {
	margin-top: clamp(2.5rem, 5vw, 4rem);
	padding-top: clamp(2rem, 4vw, 3rem);
	border-top: 1px solid rgba(255, 255, 255, .12);
	display: grid;
	gap: clamp(1.25rem, 3vw, 2rem);
	justify-items: center;
}

.avis__sources {
	display: flex; flex-wrap: wrap; justify-content: center;
	gap: clamp(1.5rem, 4vw, 3.5rem);
	list-style: none; margin: 0; padding: 0;
}
.avis__source a { text-decoration: none; }
.avis__source a,
.avis__source > span { display: inline-flex; align-items: baseline; gap: .65rem; }
.avis__source a:hover .avis__note { color: var(--sable); }

.avis__note {
	font-family: var(--titres);
	font-size: clamp(1.9rem, 1.5rem + 1.2vw, 2.5rem);
	font-weight: 500;
	line-height: 1;
	color: var(--blanc);
	transition: color var(--transition);
}
.avis__bareme { font-size: .5em; color: rgba(255, 255, 255, .5); margin-left: .1em; }

.avis__detail { display: inline-grid; gap: .1rem; text-align: left; }
.avis__plateforme {
	font-size: .8125rem; font-weight: 600;
	text-transform: uppercase; letter-spacing: .14em;
	color: var(--sable);
}
.avis__nombre { font-size: .8125rem; color: rgba(255, 255, 255, .55); }

.avis__criteres {
	display: flex; flex-wrap: wrap; justify-content: center;
	gap: .6rem 1.75rem;
	list-style: none; margin: 0; padding: 0;
}
.avis__criteres li { display: inline-flex; align-items: baseline; gap: .45rem; }
.avis__critere-libelle {
	font-size: .75rem; text-transform: uppercase; letter-spacing: .16em;
	color: rgba(255, 255, 255, .55);
}
.avis__critere-note { font-family: var(--titres); font-size: 1.15rem; color: var(--blanc); }

/* Variante claire, sur fond papier */
.avis--compact {
	margin-top: 2rem; padding-top: 1.75rem;
	border-top: 1px solid var(--bordure);
}
.avis--compact .avis__note { color: var(--encre); font-size: 1.7rem; }
.avis--compact .avis__bareme { color: var(--texte-doux); }
.avis--compact .avis__plateforme { color: var(--sable-fonce); }
.avis--compact .avis__nombre { color: var(--texte-doux); }
.avis--compact .avis__source a:hover .avis__note { color: var(--marine); }

@media (max-width: 560px) {
	.avis__sources { gap: 1.25rem 2rem; }
	.avis__criteres { gap: .5rem 1.25rem; }
}

/* Contacts du pied de page ------------------------------- */
.pied__contacts {
	list-style: none; margin: 0 0 1rem; padding: 0;
	display: grid; gap: .5rem;
}
.pied__contacts a { display: inline-flex; align-items: center; gap: .5rem; }
.pied .pied__mention {
	display: block; margin: 0;
	font-size: .75rem; text-transform: uppercase;
	letter-spacing: .14em; color: var(--sable);
}

/* WhatsApp dans la barre de navigation */
.navigation__tel .icone-whatsapp { width: 16px; height: 16px; }
.navigation__tel span { border-bottom: none; }

/* WhatsApp en bouton */
.bouton .icone-whatsapp { width: 17px; height: 17px; }

/* En-tête illustré de la liste des chambres --------------- */
.bandeau--duo { padding-block: clamp(2.5rem, 5vw, 4rem) 0; background: var(--papier); }

.bandeau__duo {
	display: grid;
	grid-template-columns: minmax(0, 1.05fr) minmax(0, .95fr);
	gap: clamp(2rem, 5vw, 4.5rem);
	align-items: center;
}
.bandeau--duo .bandeau__texte { padding-bottom: clamp(2.5rem, 5vw, 4rem); }
.bandeau--duo .bandeau__intro { margin-top: 1.4rem; max-width: 56ch; }

.bandeau__illustration { align-self: stretch; display: flex; }
.bandeau__illustration img {
	width: 100%;
	height: 100%;
	min-height: clamp(320px, 38vw, 480px);
	object-fit: cover;
}

/* Sans photo, on retombe sur le bandeau simple. */
.bandeau--duo.bandeau--compact .bandeau__duo { grid-template-columns: 1fr; }
.bandeau--duo.bandeau--compact .bandeau__texte { padding-bottom: 0; }

@media (max-width: 900px) {
	.bandeau__duo { grid-template-columns: 1fr; gap: 0; }
	.bandeau--duo .bandeau__texte { padding-bottom: clamp(1.75rem, 4vw, 2.5rem); }
	.bandeau__illustration img { min-height: 260px; }
}

/* Animations ---------------------------------------------- */

/* Entrée du bandeau d'accueil, en cascade. */
@keyframes lalicorne-monte {
	from { opacity: 0; transform: translateY(22px); }
	to   { opacity: 1; transform: none; }
}

.hero__logo,
.hero__lieu,
.hero__accroche,
.hero__reservation {
	animation: lalicorne-monte 900ms cubic-bezier(.22, .61, .36, 1) both;
}
.hero__logo       { animation-delay: 120ms; }
.hero__lieu       { animation-delay: 320ms; }
.hero__accroche   { animation-delay: 460ms; }
.hero__reservation { animation-delay: 620ms; }

/* Lent rapprochement de l'image de fond, qui donne du souffle. */
@keyframes lalicorne-respire {
	from { transform: scale(1); }
	to   { transform: scale(1.09); }
}
.hero__image { animation: lalicorne-respire 26s ease-out both; }

/* Flèche de défilement discrète, sous le bandeau. */
.hero__invite {
	position: absolute;
	bottom: 1.1rem; left: 50%;
	width: 1px; height: 38px;
	background: linear-gradient(to bottom, rgba(255, 255, 255, 0), rgba(255, 255, 255, .55));
	transform: translateX(-50%);
	animation: lalicorne-invite 2.4s ease-in-out infinite;
	pointer-events: none;
}
@keyframes lalicorne-invite {
	0%, 100% { opacity: .25; transform: translateX(-50%) scaleY(.6); transform-origin: bottom; }
	50%      { opacity: 1;   transform: translateX(-50%) scaleY(1);  transform-origin: bottom; }
}

/* Chiffres clés : léger relief au survol. */
.reperes__item { transition: background var(--transition); }
.reperes__item:hover { background: var(--papier); }
.reperes__valeur { font-variant-numeric: tabular-nums; }

/* Bande photo en parallaxe : l'image est agrandie pour couvrir le décalage. */
.bande__media img { will-change: transform; }

/* Soulignement animé des titres de section centrés. */
.section__entete--centre .surtitre::before {
	transition: width 900ms cubic-bezier(.22, .61, .36, 1) 200ms;
}
.section__entete--centre.apparait .surtitre::before { width: 0; }
.section__entete--centre.apparait.est-visible .surtitre::before { width: 34px; }

/* Photos des cartes : léger fondu d'entrée en plus du décalage. */
.carte-chambre.apparait .carte-chambre__media img,
.chambre-vedette.apparait .chambre-vedette__media img {
	transform: scale(1.06);
	transition: transform 1100ms cubic-bezier(.22, .61, .36, 1);
}
.carte-chambre.est-visible .carte-chambre__media img,
.chambre-vedette.est-visible .chambre-vedette__media img { transform: none; }

@media (prefers-reduced-motion: reduce) {
	.hero__logo, .hero__lieu, .hero__accroche, .hero__reservation,
	.hero__image, .hero__invite { animation: none; }
	.bande__media img { transform: none !important; }
}
