/* =========================================================================
   AtypikHouse — feuille de style principale
   1.  Variables et base
   2.  Utilitaires et composants génériques
   3.  En-tête et navigation
   4.  Barre de recherche
   5.  Cartes hébergement et article
   6.  Page d'accueil
   7.  Listing des hébergements
   8.  Fiche hébergement
   9.  Blog et pages éditoriales
   10. Formulaires, réservation et compte
   11. Pied de page
   12. Responsive
   ========================================================================= */

/* 1. Variables et base
   ---------------------------------------------------------------------- */

:root {
	--ah-vert: #6e8b63;
	--ah-vert-fonce: #56714c;
	--ah-vert-nuit: #3c4f35;
	--ah-vert-pale: #e6ede2;
	--ah-creme: #faf8f4;
	--ah-beige: #f1ece2;
	--ah-blanc: #ffffff;
	--ah-encre: #2b3228;
	--ah-gris: #6d7468;
	--ah-gris-clair: #9aa093;
	--ah-bordure: #e4dfd4;
	--ah-or: #e2a12c;
	--ah-rouge: #b3453a;

	--ah-radius-s: 10px;
	--ah-radius: 16px;
	--ah-radius-l: 24px;

	--ah-ombre: 0 2px 10px rgba(43, 50, 40, 0.06);
	--ah-ombre-forte: 0 12px 32px rgba(43, 50, 40, 0.12);

	--ah-largeur: 1200px;
	--ah-gouttiere: 24px;

	--ah-titre: "Poppins", "Trebuchet MS", sans-serif;
	--ah-texte: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

*,
*::before,
*::after {
	box-sizing: border-box;
}

body {
	background: var(--ah-blanc);
	color: var(--ah-encre);
	font-family: var(--ah-texte);
	font-size: 16px;
	line-height: 1.6;
	margin: 0;
	overflow-x: hidden;
	-webkit-font-smoothing: antialiased;
}

h1,
h2,
h3,
h4 {
	font-family: var(--ah-titre);
	font-weight: 600;
	line-height: 1.2;
	margin: 0 0 0.6em;
}

h1 { font-size: clamp(2rem, 4vw, 3rem); }
h2 { font-size: clamp(1.6rem, 2.8vw, 2.25rem); }
h3 { font-size: 1.2rem; }

p { margin: 0 0 1em; }

a {
	color: inherit;
	text-decoration: none;
	transition: color 0.18s ease, opacity 0.18s ease;
}

a:hover { color: var(--ah-vert); }

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

button { font-family: inherit; }

:focus-visible {
	outline: 2px solid var(--ah-vert);
	outline-offset: 2px;
}

.ah-icon { flex: none; }

.screen-reader-text {
	clip: rect(1px, 1px, 1px, 1px);
	clip-path: inset(50%);
	height: 1px;
	overflow: hidden;
	position: absolute;
	width: 1px;
}

/* 2. Utilitaires et composants génériques
   ---------------------------------------------------------------------- */

.ah-conteneur {
	margin: 0 auto;
	max-width: var(--ah-largeur);
	padding: 0 var(--ah-gouttiere);
	width: 100%;
}

.ah-conteneur--etroit { max-width: 820px; }

.ah-section { padding: 72px 0; }
.ah-section--creme { background: var(--ah-creme); }
.ah-section--beige { background: var(--ah-beige); }
.ah-section--compacte { padding: 48px 0; }

.ah-section__entete {
	margin: 0 auto 44px;
	max-width: 680px;
	text-align: center;
}

.ah-section__entete p {
	color: var(--ah-gris);
	margin: 0;
}

.ah-btn {
	align-items: center;
	background: var(--ah-vert);
	border: 1px solid var(--ah-vert);
	border-radius: 999px;
	color: #fff;
	cursor: pointer;
	display: inline-flex;
	font-size: 0.95rem;
	font-weight: 600;
	gap: 8px;
	justify-content: center;
	line-height: 1;
	padding: 13px 26px;
	text-align: center;
	transition: background 0.18s ease, border-color 0.18s ease, color 0.18s ease;
}

.ah-btn:hover {
	background: var(--ah-vert-fonce);
	border-color: var(--ah-vert-fonce);
	color: #fff;
}

.ah-btn--fantome {
	background: transparent;
	border-color: var(--ah-bordure);
	color: var(--ah-encre);
}

.ah-btn--fantome:hover {
	background: var(--ah-vert-pale);
	border-color: var(--ah-vert);
	color: var(--ah-vert-fonce);
}

.ah-btn--blanc {
	background: #fff;
	border-color: #fff;
	color: var(--ah-vert-fonce);
}

.ah-btn--blanc:hover {
	background: rgba(255, 255, 255, 0.86);
	border-color: transparent;
	color: var(--ah-vert-nuit);
}

.ah-btn--contour-blanc {
	background: transparent;
	border-color: rgba(255, 255, 255, 0.8);
	color: #fff;
}

.ah-btn--contour-blanc:hover {
	background: rgba(255, 255, 255, 0.15);
	border-color: #fff;
	color: #fff;
}

.ah-btn--large {
	padding: 15px 30px;
	width: 100%;
}

.ah-etiquette {
	background: var(--ah-vert-pale);
	border-radius: 999px;
	color: var(--ah-vert-fonce);
	display: inline-block;
	font-size: 0.72rem;
	font-weight: 600;
	letter-spacing: 0.02em;
	padding: 5px 12px;
}

.ah-note {
	align-items: center;
	color: var(--ah-encre);
	display: inline-flex;
	font-size: 0.85rem;
	gap: 4px;
}

.ah-note__etoile { color: var(--ah-or); }
.ah-note__avis { color: var(--ah-gris-clair); }

.ah-lien-fleche {
	align-items: center;
	color: var(--ah-vert-fonce);
	display: inline-flex;
	font-size: 0.88rem;
	font-weight: 600;
	gap: 6px;
}

.ah-lien-fleche:hover .ah-icon { transform: translateX(3px); }
.ah-lien-fleche .ah-icon { transition: transform 0.18s ease; }

.ah-message {
	border-radius: var(--ah-radius-s);
	font-size: 0.92rem;
	margin-bottom: 22px;
	padding: 14px 18px;
}

.ah-message--erreur {
	background: #fbeceb;
	border-left: 3px solid var(--ah-rouge);
	color: #8b3229;
}

.ah-message--succes {
	background: var(--ah-vert-pale);
	border-left: 3px solid var(--ah-vert);
	color: var(--ah-vert-nuit);
}

.ah-vide {
	background: var(--ah-creme);
	border: 1px dashed var(--ah-bordure);
	border-radius: var(--ah-radius);
	color: var(--ah-gris);
	padding: 56px 24px;
	text-align: center;
}

.ah-image-absente {
	align-items: center;
	background: var(--ah-beige);
	color: var(--ah-gris-clair);
	display: flex;
	font-size: 0.85rem;
	height: 100%;
	justify-content: center;
	width: 100%;
}

/* 3. En-tête et navigation
   ---------------------------------------------------------------------- */

.ah-entete {
	background: #fff;
	border-bottom: 1px solid var(--ah-bordure);
	position: sticky;
	top: 0;
	z-index: 40;
}

.ah-entete__inner {
	align-items: center;
	display: flex;
	gap: 28px;
	justify-content: space-between;
	min-height: 76px;
}

.ah-logo {
	align-items: center;
	display: flex;
	flex: none;
	gap: 10px;
}

.ah-logo img { max-height: 54px; width: auto; }

.ah-logo__texte {
	display: flex;
	flex-direction: column;
	line-height: 1.05;
}

.ah-logo__marque {
	font-family: var(--ah-titre);
	font-size: 0.82rem;
	font-weight: 700;
	letter-spacing: 0.14em;
	text-transform: uppercase;
}

.ah-logo__baseline {
	color: var(--ah-gris-clair);
	font-size: 0.6rem;
	letter-spacing: 0.16em;
	text-transform: uppercase;
}

.ah-nav { flex: 1 1 auto; }

.ah-nav__liste {
	display: flex;
	flex-wrap: wrap;
	gap: 26px;
	list-style: none;
	margin: 0;
	padding: 0;
}

.ah-nav__liste a {
	display: inline-block;
	font-size: 0.9rem;
	font-weight: 500;
	max-width: 8em;
}

.ah-nav__liste .current-menu-item > a,
.ah-nav__liste .current_page_item > a {
	color: var(--ah-vert-fonce);
	font-weight: 600;
}

.ah-actions {
	align-items: center;
	display: flex;
	flex: none;
	gap: 14px;
}

.ah-actions__icone {
	align-items: center;
	border-radius: 50%;
	color: var(--ah-encre);
	display: inline-flex;
	height: 38px;
	justify-content: center;
	position: relative;
	width: 38px;
}

.ah-actions__icone:hover { background: var(--ah-vert-pale); }

.ah-actions__pastille {
	background: var(--ah-vert);
	border-radius: 999px;
	color: #fff;
	font-size: 0.62rem;
	font-weight: 700;
	line-height: 1;
	padding: 3px 5px;
	position: absolute;
	right: 0;
	top: 2px;
}

.ah-burger {
	background: none;
	border: 0;
	cursor: pointer;
	display: none;
	padding: 8px;
}

/* Bouton « Réserver » repris dans le menu déroulant mobile. */
.ah-nav__cta {
	display: none;
	margin-top: 14px;
	width: 100%;
}

.ah-burger span {
	background: var(--ah-encre);
	border-radius: 2px;
	display: block;
	height: 2px;
	margin: 4px 0;
	transition: transform 0.2s ease, opacity 0.2s ease;
	width: 22px;
}

.ah-entete.est-ouvert .ah-burger span:nth-child(1) { transform: translateY(6px) rotate(45deg); }
.ah-entete.est-ouvert .ah-burger span:nth-child(2) { opacity: 0; }
.ah-entete.est-ouvert .ah-burger span:nth-child(3) { transform: translateY(-6px) rotate(-45deg); }

/* 4. Barre de recherche
   ---------------------------------------------------------------------- */

.ah-recherche {
	background: #fff;
	border-bottom: 1px solid var(--ah-bordure);
}

.ah-recherche__form {
	align-items: center;
	display: flex;
	gap: 12px;
	padding: 16px 0;
}

.ah-recherche__champ {
	align-items: center;
	background: var(--ah-creme);
	border: 1px solid var(--ah-bordure);
	border-radius: 999px;
	display: flex;
	flex: 1 1 auto;
	gap: 10px;
	/* Sans min-width, la largeur intrinsèque du champ de recherche
	   empêche le flex de rétrécir et fait déborder la page sur mobile. */
	min-width: 0;
	padding: 0 18px;
}

.ah-recherche__champ .ah-icon { color: var(--ah-gris-clair); }

.ah-recherche__champ input {
	background: none;
	border: 0;
	color: var(--ah-encre);
	flex: 1 1 auto;
	font-family: inherit;
	font-size: 0.94rem;
	min-width: 0;
	padding: 13px 0;
	width: 100%;
}

.ah-recherche__champ input:focus { outline: none; }

.ah-recherche__filtres {
	align-items: center;
	background: #fff;
	border: 1px solid var(--ah-bordure);
	border-radius: 999px;
	cursor: pointer;
	display: inline-flex;
	font-size: 0.9rem;
	font-weight: 500;
	gap: 8px;
	padding: 12px 20px;
}

.ah-recherche__filtres:hover {
	border-color: var(--ah-vert);
	color: var(--ah-vert-fonce);
}

.ah-panneau {
	border-top: 1px solid var(--ah-bordure);
	display: none;
	padding: 22px 0 26px;
}

.ah-panneau.est-ouvert { display: block; }

.ah-panneau__grille {
	display: grid;
	gap: 18px;
	grid-template-columns: repeat(auto-fit, minmax(190px, 1fr));
}

.ah-panneau__champ label {
	color: var(--ah-gris);
	display: block;
	font-size: 0.78rem;
	font-weight: 600;
	letter-spacing: 0.04em;
	margin-bottom: 6px;
	text-transform: uppercase;
}

.ah-panneau__champ select,
.ah-panneau__champ input {
	background: #fff;
	border: 1px solid var(--ah-bordure);
	border-radius: var(--ah-radius-s);
	font-family: inherit;
	font-size: 0.92rem;
	padding: 11px 12px;
	width: 100%;
}

.ah-panneau__actions {
	align-items: center;
	display: flex;
	gap: 14px;
	margin-top: 20px;
}

/* 5. Cartes hébergement et article
   ---------------------------------------------------------------------- */

.ah-grille {
	display: grid;
	gap: 26px;
	grid-template-columns: repeat(3, 1fr);
}

.ah-grille--4 { grid-template-columns: repeat(4, 1fr); }
.ah-grille--2 { grid-template-columns: repeat(2, 1fr); }

.ah-carte {
	display: flex;
	flex-direction: column;
	position: relative;
}

.ah-carte__media {
	border-radius: var(--ah-radius);
	overflow: hidden;
	position: relative;
}

.ah-carte__media::before {
	content: "";
	display: block;
	padding-top: 74%;
}

.ah-carte__media img,
.ah-carte__media .ah-image-absente {
	height: 100%;
	left: 0;
	object-fit: cover;
	position: absolute;
	top: 0;
	transition: transform 0.4s ease;
	width: 100%;
}

.ah-carte:hover .ah-carte__media img { transform: scale(1.04); }

.ah-favori {
	align-items: center;
	background: rgba(255, 255, 255, 0.92);
	border: 0;
	border-radius: 50%;
	color: var(--ah-encre);
	cursor: pointer;
	display: flex;
	height: 34px;
	justify-content: center;
	padding: 0;
	position: absolute;
	right: 12px;
	top: 12px;
	transition: transform 0.16s ease, color 0.16s ease;
	width: 34px;
	z-index: 2;
}

.ah-favori:hover { transform: scale(1.08); }
.ah-favori.est-actif { color: var(--ah-rouge); }
.ah-favori.est-actif .ah-icon { fill: currentColor; }

.ah-carte__corps { padding: 14px 2px 0; }

.ah-carte__titre {
	font-family: var(--ah-titre);
	font-size: 1.02rem;
	font-weight: 600;
	margin: 6px 0 4px;
}

.ah-carte__titre a::after {
	content: "";
	inset: 0;
	position: absolute;
}

.ah-carte__lieu {
	align-items: center;
	color: var(--ah-gris);
	display: flex;
	font-size: 0.84rem;
	gap: 5px;
}

.ah-carte__prix {
	font-family: var(--ah-titre);
	font-size: 1.02rem;
	font-weight: 600;
	margin-top: 10px;
}

.ah-carte__prix span {
	color: var(--ah-gris);
	font-family: var(--ah-texte);
	font-size: 0.82rem;
	font-weight: 400;
}

.ah-article {
	background: #fff;
	border: 1px solid var(--ah-bordure);
	border-radius: var(--ah-radius);
	display: flex;
	flex-direction: column;
	overflow: hidden;
	position: relative;
	transition: box-shadow 0.2s ease, transform 0.2s ease;
}

.ah-article:hover {
	box-shadow: var(--ah-ombre-forte);
	transform: translateY(-3px);
}

.ah-article__media { position: relative; }

.ah-article__media::before {
	content: "";
	display: block;
	padding-top: 62%;
}

.ah-article__media img,
.ah-article__media .ah-image-absente {
	height: 100%;
	left: 0;
	object-fit: cover;
	position: absolute;
	top: 0;
	width: 100%;
}

.ah-article__corps {
	display: flex;
	flex: 1 1 auto;
	flex-direction: column;
	padding: 18px 20px 22px;
}

.ah-article__titre {
	font-size: 1.05rem;
	margin: 10px 0 8px;
}

.ah-article__titre a::after {
	content: "";
	inset: 0;
	position: absolute;
}

.ah-article__extrait {
	color: var(--ah-gris);
	font-size: 0.88rem;
	margin-bottom: 14px;
}

.ah-article__meta {
	align-items: center;
	color: var(--ah-gris-clair);
	display: flex;
	flex-wrap: wrap;
	font-size: 0.78rem;
	gap: 14px;
	margin-top: auto;
}

.ah-article__meta span {
	align-items: center;
	display: inline-flex;
	gap: 5px;
}

/* 6. Page d'accueil
   ---------------------------------------------------------------------- */

.ah-hero {
	align-items: center;
	color: #fff;
	display: flex;
	justify-content: center;
	min-height: 520px;
	position: relative;
	text-align: center;
}

.ah-hero__fond {
	inset: 0;
	object-fit: cover;
	position: absolute;
	width: 100%;
	height: 100%;
	z-index: 0;
}

.ah-hero::after {
	background: linear-gradient(180deg, rgba(43, 50, 40, 0.35) 0%, rgba(43, 50, 40, 0.62) 100%);
	content: "";
	inset: 0;
	position: absolute;
	z-index: 1;
}

.ah-hero__contenu {
	max-width: 760px;
	padding: 90px 24px;
	position: relative;
	z-index: 2;
}

.ah-hero__contenu h1 {
	color: #fff;
	text-shadow: 0 2px 18px rgba(0, 0, 0, 0.2);
}

.ah-hero__contenu p {
	color: rgba(255, 255, 255, 0.92);
	font-size: 1.05rem;
	margin: 0 auto 28px;
	max-width: 560px;
}

.ah-hero__actions {
	display: flex;
	flex-wrap: wrap;
	gap: 14px;
	justify-content: center;
}

.ah-hero--page { min-height: 340px; }

.ah-banniere {
	background: var(--ah-vert);
	color: #fff;
	padding: 74px 0;
	text-align: center;
}

.ah-banniere h1,
.ah-banniere h2 { color: #fff; }

.ah-banniere p {
	color: rgba(255, 255, 255, 0.9);
	margin: 0 auto;
	max-width: 620px;
}

.ah-chiffres {
	display: grid;
	gap: 20px;
	grid-template-columns: repeat(4, 1fr);
	text-align: center;
}

.ah-chiffres strong {
	color: var(--ah-vert-fonce);
	display: block;
	font-family: var(--ah-titre);
	font-size: 2rem;
}

.ah-chiffres span {
	color: var(--ah-gris);
	font-size: 0.88rem;
}

.ah-types {
	display: grid;
	gap: 18px;
	grid-template-columns: repeat(6, 1fr);
}

.ah-type {
	align-items: center;
	background: #fff;
	border: 1px solid var(--ah-bordure);
	border-radius: var(--ah-radius);
	display: flex;
	flex-direction: column;
	gap: 10px;
	padding: 22px 12px;
	text-align: center;
	transition: border-color 0.2s ease, transform 0.2s ease;
}

.ah-type:hover {
	border-color: var(--ah-vert);
	color: var(--ah-encre);
	transform: translateY(-3px);
}

.ah-type__icone {
	align-items: center;
	background: var(--ah-vert-pale);
	border-radius: 50%;
	color: var(--ah-vert-fonce);
	display: flex;
	height: 46px;
	justify-content: center;
	width: 46px;
}

.ah-type strong { font-size: 0.9rem; }
.ah-type span { color: var(--ah-gris-clair); font-size: 0.76rem; }

.ah-experiences {
	display: grid;
	gap: 20px;
	grid-template-columns: repeat(3, 1fr);
}

.ah-experience {
	border-radius: var(--ah-radius);
	color: #fff;
	display: flex;
	flex-direction: column;
	justify-content: flex-end;
	min-height: 250px;
	overflow: hidden;
	padding: 24px;
	position: relative;
}

.ah-experience img {
	inset: 0;
	height: 100%;
	object-fit: cover;
	position: absolute;
	width: 100%;
}

.ah-experience::after {
	background: linear-gradient(180deg, rgba(20, 26, 18, 0.08) 30%, rgba(20, 26, 18, 0.78) 100%);
	content: "";
	inset: 0;
	position: absolute;
}

.ah-experience > * { position: relative; z-index: 2; }

.ah-experience__pastille {
	align-items: center;
	background: var(--ah-vert);
	border-radius: 50%;
	display: flex;
	height: 34px;
	justify-content: center;
	margin-bottom: auto;
	width: 34px;
}

.ah-experience h3 { color: #fff; margin-bottom: 6px; }

.ah-experience p {
	color: rgba(255, 255, 255, 0.86);
	font-size: 0.86rem;
	margin-bottom: 10px;
}

.ah-experience:hover { color: #fff; }

.ah-cta {
	background: var(--ah-vert);
	border-radius: var(--ah-radius-l);
	color: #fff;
	padding: 54px 32px;
	text-align: center;
}

.ah-cta h2 { color: #fff; }

.ah-cta p {
	color: rgba(255, 255, 255, 0.9);
	margin: 0 auto 26px;
	max-width: 560px;
}

.ah-cta__actions {
	display: flex;
	flex-wrap: wrap;
	gap: 14px;
	justify-content: center;
}

/* 7. Listing des hébergements
   ---------------------------------------------------------------------- */

.ah-listing__banniere {
	align-items: center;
	color: #fff;
	display: flex;
	justify-content: center;
	min-height: 260px;
	position: relative;
	text-align: center;
}

.ah-listing__banniere img {
	inset: 0;
	height: 100%;
	object-fit: cover;
	position: absolute;
	width: 100%;
}

.ah-listing__banniere::after {
	background: rgba(78, 100, 68, 0.72);
	content: "";
	inset: 0;
	position: absolute;
}

.ah-listing__banniere > div {
	padding: 40px 24px;
	position: relative;
	z-index: 2;
}

.ah-listing__banniere h1 { color: #fff; margin-bottom: 8px; }
.ah-listing__banniere p { color: rgba(255, 255, 255, 0.9); margin: 0; }

.ah-onglets {
	align-items: center;
	border-bottom: 1px solid var(--ah-bordure);
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	padding: 18px 0;
}

.ah-onglets__filtre {
	align-items: center;
	border: 1px solid var(--ah-bordure);
	border-radius: 999px;
	color: var(--ah-gris);
	display: inline-flex;
	font-size: 0.86rem;
	gap: 7px;
	margin-right: 8px;
	padding: 9px 16px;
}

.ah-pilule {
	border: 1px solid var(--ah-bordure);
	border-radius: 999px;
	font-size: 0.86rem;
	padding: 9px 18px;
	transition: background 0.18s ease, border-color 0.18s ease, color 0.18s ease;
	white-space: nowrap;
}

.ah-pilule:hover {
	border-color: var(--ah-vert);
	color: var(--ah-vert-fonce);
}

.ah-pilule.est-actif {
	background: var(--ah-vert);
	border-color: var(--ah-vert);
	color: #fff;
}

.ah-onglets__tri {
	margin-left: auto;
}

.ah-onglets__tri select {
	background: #fff;
	border: 1px solid var(--ah-bordure);
	border-radius: 999px;
	font-family: inherit;
	font-size: 0.86rem;
	padding: 9px 14px;
}

.ah-resultats {
	color: var(--ah-gris);
	font-size: 0.9rem;
	padding: 24px 0 6px;
}

.ah-pagination {
	display: flex;
	gap: 8px;
	justify-content: center;
	margin-top: 48px;
}

.ah-pagination .page-numbers {
	align-items: center;
	border: 1px solid var(--ah-bordure);
	border-radius: 999px;
	display: inline-flex;
	font-size: 0.88rem;
	height: 40px;
	justify-content: center;
	min-width: 40px;
	padding: 0 12px;
}

.ah-pagination .page-numbers.current {
	background: var(--ah-vert);
	border-color: var(--ah-vert);
	color: #fff;
}

/* 8. Fiche hébergement
   ---------------------------------------------------------------------- */

.ah-fiche__entete { padding: 34px 0 20px; }

.ah-fiche__entete h1 { margin-bottom: 10px; }

.ah-fiche__meta {
	align-items: center;
	color: var(--ah-gris);
	display: flex;
	flex-wrap: wrap;
	font-size: 0.88rem;
	gap: 16px;
}

.ah-fiche__meta span {
	align-items: center;
	display: inline-flex;
	gap: 5px;
}

.ah-fiche__outils {
	display: flex;
	gap: 8px;
	margin-left: auto;
}

.ah-fiche__outil {
	align-items: center;
	background: none;
	border: 0;
	color: var(--ah-encre);
	cursor: pointer;
	display: inline-flex;
	font-size: 0.86rem;
	gap: 6px;
	padding: 8px 10px;
	text-decoration: underline;
	text-underline-offset: 3px;
}

.ah-galerie {
	display: grid;
	gap: 8px;
	grid-template-columns: 2fr 1fr 1fr;
	grid-template-rows: 1fr 1fr;
	overflow: hidden;
	border-radius: var(--ah-radius-l);
	position: relative;
}

.ah-galerie__case {
	overflow: hidden;
	position: relative;
	min-height: 150px;
}

.ah-galerie__case:first-child {
	grid-column: 1;
	grid-row: 1 / span 2;
	min-height: 420px;
}

.ah-galerie__case img {
	height: 100%;
	object-fit: cover;
	width: 100%;
	transition: transform 0.4s ease;
}

.ah-galerie__case:hover img { transform: scale(1.03); }

.ah-galerie__plus {
	background: rgba(255, 255, 255, 0.94);
	border-radius: 999px;
	bottom: 18px;
	font-size: 0.82rem;
	font-weight: 600;
	padding: 9px 18px;
	position: absolute;
	right: 18px;
	z-index: 3;
}

.ah-fiche__colonnes {
	align-items: start;
	display: grid;
	gap: 56px;
	grid-template-columns: 1fr 360px;
	padding: 44px 0 72px;
}

.ah-fiche__hote {
	align-items: center;
	border-bottom: 1px solid var(--ah-bordure);
	display: flex;
	flex-wrap: wrap;
	gap: 18px;
	justify-content: space-between;
	padding-bottom: 22px;
}

.ah-fiche__hote h2 { font-size: 1.25rem; margin: 0 0 8px; }

.ah-fiche__specs {
	color: var(--ah-gris);
	display: flex;
	flex-wrap: wrap;
	font-size: 0.88rem;
	gap: 18px;
}

.ah-fiche__specs span {
	align-items: center;
	display: inline-flex;
	gap: 6px;
}

.ah-fiche__tags {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	padding: 22px 0;
}

.ah-bloc { padding: 26px 0; border-bottom: 1px solid var(--ah-bordure); }
.ah-bloc:last-child { border-bottom: 0; }
.ah-bloc h2 { font-size: 1.25rem; }
.ah-bloc p { color: var(--ah-gris); }

.ah-equipements {
	display: grid;
	gap: 14px 24px;
	grid-template-columns: repeat(2, 1fr);
	list-style: none;
	margin: 0;
	padding: 0;
}

.ah-equipements li {
	align-items: center;
	color: var(--ah-encre);
	display: flex;
	font-size: 0.92rem;
	gap: 10px;
}

.ah-equipements .ah-icon { color: var(--ah-vert); }

.ah-eco {
	background: var(--ah-creme);
	border: 1px solid var(--ah-bordure);
	border-radius: var(--ah-radius);
	padding: 22px 24px;
}

.ah-eco__titre {
	align-items: center;
	display: flex;
	font-weight: 600;
	gap: 10px;
	margin-bottom: 12px;
}

.ah-eco__titre .ah-icon { color: var(--ah-vert); }

.ah-eco ul {
	color: var(--ah-gris);
	font-size: 0.9rem;
	margin: 0;
	padding-left: 20px;
}

.ah-eco li { margin-bottom: 5px; }

.ah-reservation {
	background: #fff;
	border: 1px solid var(--ah-bordure);
	border-radius: var(--ah-radius-l);
	box-shadow: var(--ah-ombre-forte);
	padding: 24px;
	position: sticky;
	top: 100px;
}

.ah-reservation__prix {
	align-items: baseline;
	display: flex;
	gap: 6px;
	margin-bottom: 4px;
}

.ah-reservation__prix strong {
	font-family: var(--ah-titre);
	font-size: 1.6rem;
}

.ah-reservation__prix span {
	color: var(--ah-gris);
	font-size: 0.86rem;
}

.ah-reservation__dates {
	border: 1px solid var(--ah-bordure);
	border-radius: var(--ah-radius-s);
	display: grid;
	grid-template-columns: 1fr 1fr;
	margin: 18px 0 12px;
	overflow: hidden;
}

.ah-reservation__champ { padding: 10px 14px; }
.ah-reservation__champ + .ah-reservation__champ { border-left: 1px solid var(--ah-bordure); }

.ah-reservation__champ label {
	color: var(--ah-gris);
	display: block;
	font-size: 0.7rem;
	font-weight: 600;
	letter-spacing: 0.05em;
	text-transform: uppercase;
}

.ah-reservation__champ input,
.ah-reservation__champ select {
	background: none;
	border: 0;
	font-family: inherit;
	font-size: 0.9rem;
	padding: 3px 0 0;
	width: 100%;
}

.ah-reservation__champ input:focus,
.ah-reservation__champ select:focus { outline: none; }

.ah-reservation__voyageurs {
	border: 1px solid var(--ah-bordure);
	border-radius: var(--ah-radius-s);
	margin-bottom: 16px;
	padding: 10px 14px;
}

.ah-reservation__mention {
	color: var(--ah-gris-clair);
	font-size: 0.76rem;
	margin: 12px 0 0;
	text-align: center;
}

.ah-detail-prix {
	border-top: 1px solid var(--ah-bordure);
	margin-top: 18px;
	padding-top: 16px;
}

.ah-detail-prix__ligne {
	color: var(--ah-gris);
	display: flex;
	font-size: 0.88rem;
	justify-content: space-between;
	margin-bottom: 10px;
}

.ah-detail-prix__ligne--total {
	border-top: 1px solid var(--ah-bordure);
	color: var(--ah-encre);
	font-weight: 600;
	margin-bottom: 0;
	padding-top: 12px;
}

.ah-localisation {
	align-items: center;
	background: var(--ah-beige);
	border-radius: var(--ah-radius);
	color: var(--ah-gris);
	display: flex;
	flex-direction: column;
	font-size: 0.86rem;
	gap: 8px;
	justify-content: center;
	min-height: 220px;
	text-align: center;
}

.ah-localisation .ah-icon { color: var(--ah-vert); }

/* 9. Blog et pages éditoriales
   ---------------------------------------------------------------------- */

.ah-une {
	background: #fff;
	border: 1px solid var(--ah-bordure);
	border-radius: var(--ah-radius-l);
	display: grid;
	grid-template-columns: 1.1fr 1fr;
	overflow: hidden;
	position: relative;
}

.ah-une__media { position: relative; min-height: 340px; }

.ah-une__media img {
	height: 100%;
	object-fit: cover;
	width: 100%;
}

.ah-une__badge {
	background: var(--ah-vert);
	border-radius: 999px;
	color: #fff;
	font-size: 0.72rem;
	font-weight: 600;
	left: 18px;
	padding: 6px 14px;
	position: absolute;
	top: 18px;
	z-index: 2;
}

.ah-une__corps {
	display: flex;
	flex-direction: column;
	justify-content: center;
	padding: 40px;
}

.ah-une__corps h2 { font-size: 1.75rem; }
.ah-une__corps p { color: var(--ah-gris); }

.ah-contenu { font-size: 1.02rem; }
.ah-contenu h2 { margin-top: 1.6em; }
.ah-contenu h3 { margin-top: 1.4em; }
.ah-contenu ul, .ah-contenu ol { padding-left: 22px; }
.ah-contenu li { margin-bottom: 8px; }
.ah-contenu img { border-radius: var(--ah-radius); margin: 1.5em 0; }

.ah-contenu blockquote {
	border-left: 3px solid var(--ah-vert);
	color: var(--ah-gris);
	font-size: 1.08rem;
	font-style: italic;
	margin: 1.6em 0;
	padding: 4px 0 4px 22px;
}

.ah-valeurs {
	display: grid;
	gap: 26px;
	grid-template-columns: repeat(4, 1fr);
	text-align: center;
}

.ah-valeur__icone {
	align-items: center;
	background: var(--ah-vert-pale);
	border-radius: 50%;
	color: var(--ah-vert-fonce);
	display: flex;
	height: 52px;
	justify-content: center;
	margin: 0 auto 14px;
	width: 52px;
}

.ah-valeur h3 { font-size: 1rem; }
.ah-valeur p { color: var(--ah-gris); font-size: 0.86rem; }

.ah-engagements {
	background: var(--ah-vert);
	border-radius: var(--ah-radius-l);
	color: #fff;
	padding: 48px 40px;
}

.ah-engagements h2 { color: #fff; text-align: center; }

.ah-engagements__grille {
	display: grid;
	gap: 30px;
	grid-template-columns: repeat(3, 1fr);
	margin-top: 34px;
	text-align: center;
}

.ah-engagements__icone {
	align-items: center;
	background: rgba(255, 255, 255, 0.18);
	border-radius: 50%;
	display: flex;
	height: 46px;
	justify-content: center;
	margin: 0 auto 14px;
	width: 46px;
}

.ah-engagements h3 { color: #fff; font-size: 0.98rem; }
.ah-engagements p { color: rgba(255, 255, 255, 0.88); font-size: 0.85rem; margin: 0; }

.ah-equipe {
	display: grid;
	gap: 34px;
	grid-template-columns: repeat(3, 1fr);
	text-align: center;
}

.ah-equipe__photo {
	border-radius: 50%;
	height: 130px;
	margin: 0 auto 16px;
	object-fit: cover;
	width: 130px;
}

.ah-equipe h3 { font-size: 1rem; margin-bottom: 2px; }
.ah-equipe__role { color: var(--ah-vert-fonce); font-size: 0.84rem; font-weight: 600; }
.ah-equipe p { color: var(--ah-gris); font-size: 0.85rem; }

.ah-histoire {
	align-items: center;
	display: grid;
	gap: 50px;
	grid-template-columns: 1fr 1fr;
}

.ah-histoire img { border-radius: var(--ah-radius-l); }
.ah-histoire p { color: var(--ah-gris); }

/* 10. Formulaires, réservation et compte
   ---------------------------------------------------------------------- */

.ah-form__grille {
	display: grid;
	gap: 18px;
	grid-template-columns: repeat(2, 1fr);
}

.ah-form__champ--plein { grid-column: 1 / -1; }

.ah-form__champ label {
	display: block;
	font-size: 0.84rem;
	font-weight: 600;
	margin-bottom: 6px;
}

.ah-form__champ input,
.ah-form__champ select,
.ah-form__champ textarea {
	background: #fff;
	border: 1px solid var(--ah-bordure);
	border-radius: var(--ah-radius-s);
	font-family: inherit;
	font-size: 0.94rem;
	padding: 12px 14px;
	width: 100%;
}

.ah-form__champ textarea { min-height: 130px; resize: vertical; }

.ah-form__champ input:focus,
.ah-form__champ select:focus,
.ah-form__champ textarea:focus {
	border-color: var(--ah-vert);
	outline: none;
}

.ah-form__aide { color: var(--ah-gris-clair); font-size: 0.78rem; margin: 6px 0 0; }

.ah-panneau-blanc {
	background: #fff;
	border: 1px solid var(--ah-bordure);
	border-radius: var(--ah-radius-l);
	padding: 32px;
}

.ah-recap {
	background: var(--ah-creme);
	border: 1px solid var(--ah-bordure);
	border-radius: var(--ah-radius-l);
	overflow: hidden;
	position: sticky;
	top: 100px;
}

.ah-recap__media { height: 170px; }
.ah-recap__media img { height: 100%; object-fit: cover; width: 100%; }
.ah-recap__corps { padding: 22px 24px 26px; }
.ah-recap h3 { font-size: 1.05rem; margin-bottom: 4px; }

.ah-recap__ligne {
	border-top: 1px dashed var(--ah-bordure);
	display: flex;
	font-size: 0.88rem;
	justify-content: space-between;
	padding: 10px 0;
}

.ah-recap__ligne--total {
	border-top: 1px solid var(--ah-bordure);
	font-family: var(--ah-titre);
	font-size: 1rem;
	font-weight: 600;
}

.ah-colonnes-resa {
	align-items: start;
	display: grid;
	gap: 44px;
	grid-template-columns: 1fr 360px;
}

.ah-confirmation {
	margin: 0 auto;
	max-width: 640px;
	text-align: center;
}

.ah-confirmation__icone {
	align-items: center;
	background: var(--ah-vert-pale);
	border-radius: 50%;
	color: var(--ah-vert-fonce);
	display: flex;
	height: 76px;
	justify-content: center;
	margin: 0 auto 22px;
	width: 76px;
}

.ah-confirmation__ref {
	background: var(--ah-creme);
	border: 1px dashed var(--ah-bordure);
	border-radius: var(--ah-radius-s);
	display: inline-block;
	font-family: var(--ah-titre);
	letter-spacing: 0.08em;
	margin-bottom: 24px;
	padding: 10px 22px;
}

.ah-onglets-compte {
	border-bottom: 1px solid var(--ah-bordure);
	display: flex;
	gap: 6px;
	margin-bottom: 30px;
}

.ah-onglets-compte a {
	border-bottom: 2px solid transparent;
	font-size: 0.94rem;
	font-weight: 500;
	padding: 12px 18px;
}

.ah-onglets-compte a.est-actif {
	border-bottom-color: var(--ah-vert);
	color: var(--ah-vert-fonce);
	font-weight: 600;
}

.ah-resa-liste { display: grid; gap: 16px; }

.ah-resa {
	align-items: center;
	background: #fff;
	border: 1px solid var(--ah-bordure);
	border-radius: var(--ah-radius);
	display: grid;
	gap: 20px;
	grid-template-columns: 110px 1fr auto;
	padding: 16px;
}

.ah-resa__media {
	border-radius: var(--ah-radius-s);
	height: 86px;
	object-fit: cover;
	width: 110px;
}

.ah-resa h3 { font-size: 1rem; margin-bottom: 4px; }
.ah-resa__infos { color: var(--ah-gris); font-size: 0.86rem; }

.ah-statut {
	border-radius: 999px;
	display: inline-block;
	font-size: 0.76rem;
	font-weight: 600;
	padding: 5px 14px;
	white-space: nowrap;
}

.ah-statut--en_attente { background: #fcf3d6; color: #8a6116; }
.ah-statut--confirmee { background: var(--ah-vert-pale); color: var(--ah-vert-nuit); }
.ah-statut--annulee { background: #f6dedc; color: #8a2f27; }

.ah-auth {
	display: grid;
	gap: 40px;
	grid-template-columns: repeat(2, 1fr);
}

.ah-auth h2 { font-size: 1.35rem; }

/* 11. Pied de page
   ---------------------------------------------------------------------- */

.ah-pied {
	background: var(--ah-vert);
	color: rgba(255, 255, 255, 0.9);
	padding: 60px 0 0;
}

.ah-pied a { color: rgba(255, 255, 255, 0.9); }
.ah-pied a:hover { color: #fff; }

.ah-pied__grille {
	display: grid;
	gap: 40px;
	grid-template-columns: 1.4fr 1fr 1fr 1.3fr;
}

.ah-pied__marque .ah-logo__marque,
.ah-pied__marque .ah-logo__baseline { color: #fff; }

.ah-pied__intro {
	color: rgba(255, 255, 255, 0.82);
	font-size: 0.86rem;
	margin-top: 18px;
	max-width: 250px;
}

.ah-pied h3 {
	color: #fff;
	font-size: 0.95rem;
	margin-bottom: 16px;
}

.ah-pied ul {
	font-size: 0.88rem;
	list-style: none;
	margin: 0;
	padding: 0;
}

.ah-pied li { margin-bottom: 10px; }

.ah-newsletter p { color: rgba(255, 255, 255, 0.82); font-size: 0.86rem; }

.ah-newsletter__form { display: grid; gap: 10px; max-width: 260px; }

.ah-newsletter__form input {
	background: rgba(255, 255, 255, 0.14);
	border: 1px solid rgba(255, 255, 255, 0.32);
	border-radius: 999px;
	color: #fff;
	font-family: inherit;
	font-size: 0.88rem;
	padding: 11px 18px;
}

.ah-newsletter__form input::placeholder { color: rgba(255, 255, 255, 0.6); }

.ah-reseaux {
	display: flex;
	gap: 14px;
	margin-top: 26px;
}

.ah-reseaux a {
	align-items: center;
	border: 1px solid rgba(255, 255, 255, 0.35);
	border-radius: 50%;
	display: flex;
	height: 34px;
	justify-content: center;
	width: 34px;
}

.ah-reseaux a:hover { background: rgba(255, 255, 255, 0.16); }

.ah-pied__bas {
	border-top: 1px solid rgba(255, 255, 255, 0.22);
	font-size: 0.82rem;
	margin-top: 48px;
	padding: 22px 0;
	text-align: center;
}

/* 12. Responsive
   ---------------------------------------------------------------------- */

@media (max-width: 1080px) {
	.ah-fiche__colonnes,
	.ah-colonnes-resa { grid-template-columns: 1fr; }

	.ah-reservation,
	.ah-recap { position: static; }

	.ah-types { grid-template-columns: repeat(3, 1fr); }
	.ah-pied__grille { grid-template-columns: 1fr 1fr; }
}

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

	/* L'en-tête ne peut pas afficher tous ses éléments sur une seule
	   ligne : la baseline et le bouton Réserver passent dans le menu. */
	.ah-entete__inner { gap: 10px; }
	.ah-logo__baseline { display: none; }
	.ah-logo img { max-height: 40px; }
	.ah-actions { gap: 2px; margin-left: auto; order: 2; }
	.ah-actions .ah-btn { display: none; }
	.ah-nav { order: 4; }
	.ah-nav__cta { display: inline-flex; }

	.ah-nav {
		background: #fff;
		border-bottom: 1px solid var(--ah-bordure);
		display: none;
		left: 0;
		padding: 16px var(--ah-gouttiere) 22px;
		position: absolute;
		right: 0;
		top: 100%;
	}

	.ah-entete.est-ouvert .ah-nav { display: block; }

	.ah-entete__inner { position: relative; }

	.ah-nav__liste { flex-direction: column; gap: 4px; }
	.ah-nav__liste a { max-width: none; padding: 8px 0; }

	.ah-grille,
	.ah-grille--4,
	.ah-experiences,
	.ah-valeurs,
	.ah-equipe,
	.ah-engagements__grille { grid-template-columns: repeat(2, 1fr); }

	.ah-chiffres { grid-template-columns: repeat(2, 1fr); }
	.ah-histoire { grid-template-columns: 1fr; gap: 28px; }
	.ah-une { grid-template-columns: 1fr; }
	.ah-galerie { grid-template-columns: 1fr 1fr; }
	.ah-galerie__case:first-child { grid-column: 1 / -1; grid-row: auto; min-height: 260px; }
	.ah-galerie__case:nth-child(n + 4) { display: none; }
	.ah-auth { grid-template-columns: 1fr; }
	.ah-section { padding: 56px 0; }
}

@media (max-width: 640px) {
	.ah-grille,
	.ah-grille--2,
	.ah-grille--4,
	.ah-experiences,
	.ah-valeurs,
	.ah-equipe,
	.ah-types,
	.ah-engagements__grille,
	.ah-form__grille,
	.ah-pied__grille { grid-template-columns: 1fr; }

	.ah-recherche__form { flex-wrap: wrap; }
	.ah-recherche__champ { flex: 1 1 100%; }
	.ah-recherche__filtres,
	.ah-recherche__form > .ah-btn { flex: 1 1 auto; justify-content: center; }
	.ah-onglets { overflow-x: auto; flex-wrap: nowrap; }
	.ah-onglets__tri { margin-left: 0; }
	.ah-resa { grid-template-columns: 1fr; }
	.ah-resa__media { width: 100%; }
	.ah-fiche__outils { margin-left: 0; }
	.ah-engagements { padding: 34px 22px; }
	.ah-panneau-blanc { padding: 22px; }
	.ah-une__corps { padding: 26px 22px 32px; }
}
