/* ==========================================================
 * MLV Theme — main.css
 * Extraction + factorisation des styles inline de la maquette.
 * Ordre : reset > layout > composants > pages (complété en C2-C5)
 * ========================================================== */

/* ---------- 1. RESET ---------- */
*, *::before, *::after { box-sizing: border-box; }
body { margin: 0; }
h1, h2, h3, h4, h5, h6, p, ul, ol, figure { margin: 0; }
ul, ol { padding: 0; list-style: none; }
img, svg { display: block; max-width: 100%; height: auto; }
button { background: none; border: 0; padding: 0; cursor: pointer; }
[hidden] { display: none !important; }

/* ---------- 2. LAYOUT ---------- */
.mlv-main { min-height: 60vh; }
.mlv-container,
.mlv-header__inner,
.mlv-hero__inner,
.mlv-story,
.mlv-collections,
.mlv-destinations,
.mlv-services,
.mlv-how,
.mlv-footer__inner,
.mlv-faq__inner {
	max-width: var(--mlv-max);
	margin-inline: auto;
	padding-inline: 24px;
}

.mlv-grid { display: grid; gap: 24px; }
.mlv-grid--dest { grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); }
.mlv-grid--services { grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); }

.mlv-section-head { display: flex; flex-direction: column; align-items: center; text-align: center; gap: 14px; margin-bottom: 36px; }
.mlv-section-intro { max-width: 640px; font-size: 17px; line-height: 1.75; color: var(--mlv-texte); }
.mlv-section-cta { display: flex; justify-content: center; margin-top: 40px; }

/* ---------- 3. TYPO ---------- */
.mlv-h1 { font-family: var(--mlv-font-serif); font-weight: 500; font-size: 80px; line-height: 1.02; color: var(--mlv-blanc); }
.mlv-h2 { font-family: var(--mlv-font-serif); font-weight: 500; font-size: 54px; line-height: 1.08; color: var(--mlv-nuit); }
.mlv-h3 { font-family: var(--mlv-font-serif); font-weight: 500; font-size: 32px; line-height: 1.15; color: var(--mlv-nuit); }
.mlv-eyebrow {
	font-family: var(--mlv-font-label);
	font-size: 13px;
	font-weight: 600;
	letter-spacing: 0.3em;
	text-transform: uppercase;
	color: var(--mlv-or-2);
}
.mlv-line { display: block; width: 32px; height: 2px; background: var(--mlv-or); transition: width .4s var(--mlv-ease); }

/* ---------- 4. BOUTONS ---------- */
.mlv-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 52px;
	padding: 0 28px;
	border-radius: var(--mlv-radius-pill);
	font-family: var(--mlv-font-label);
	font-size: 13px;
	font-weight: 600;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	text-decoration: none;
	transition: background .3s var(--mlv-ease), color .3s var(--mlv-ease), border-color .3s var(--mlv-ease);
}
.mlv-btn--primary { background: var(--mlv-nuit); color: var(--mlv-blanc); border: 1px solid var(--mlv-nuit); }
.mlv-btn--primary:hover { background: var(--mlv-or); border-color: var(--mlv-or); color: var(--mlv-nuit); }
.mlv-btn--ghost { background: transparent; color: var(--mlv-nuit); border: 1px solid var(--mlv-nuit); }
.mlv-btn--ghost:hover { background: var(--mlv-nuit); color: var(--mlv-blanc); }
.mlv-btn--gold { background: var(--mlv-or); color: var(--mlv-nuit); border: 1px solid var(--mlv-or); }
.mlv-btn--gold:hover { background: var(--mlv-or-2); border-color: var(--mlv-or-2); color: var(--mlv-blanc); }

/* ---------- 5. HEADER ---------- */
.mlv-header { position: sticky; top: 0; z-index: 50; background: var(--mlv-nuit); color: var(--mlv-blanc); }
.mlv-header__inner { display: flex; align-items: center; justify-content: space-between; padding-block: 16px; gap: 16px; }
.mlv-header__brand { display: flex; align-items: center; gap: 12px; color: inherit; }
.mlv-header__logo { height: 46px; width: auto; }
.mlv-header__brand-text { font-family: var(--mlv-font-serif); font-size: 24px; color: var(--mlv-blanc); }
.mlv-header__actions { display: flex; align-items: center; gap: 12px; }

.mlv-header__cart {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	min-height: 40px;
	padding: 0 16px;
	border: 1px solid rgba(255, 255, 255, 0.55);
	border-radius: var(--mlv-radius-pill);
	color: var(--mlv-blanc);
	font-family: var(--mlv-font-label);
	font-size: 12px;
	font-weight: 600;
	letter-spacing: 0.14em;
	text-transform: uppercase;
}
.mlv-header__cart:hover { border-color: var(--mlv-or-clair); color: var(--mlv-or-clair); }
.mlv-header__cart-count { min-width: 22px; height: 22px; border-radius: 50%; background: var(--mlv-or); color: var(--mlv-nuit); display: inline-flex; align-items: center; justify-content: center; font-size: 11px; }

.mlv-header__burger {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	height: 48px;
	padding: 0 18px;
	border-radius: var(--mlv-radius-pill);
	border: 1px solid rgba(255, 255, 255, 0.55);
	color: var(--mlv-blanc);
	font-family: var(--mlv-font-label);
	font-size: 13px;
	letter-spacing: 0.14em;
	text-transform: uppercase;
}
.mlv-header__burger:hover { border-color: var(--mlv-or-clair); }
.mlv-header__burger-label { display: inline; }

/* ---------- 6. MENU ---------- */
.mlv-menu {
	position: absolute;
	left: 0; right: 0; top: 100%;
	background: var(--mlv-nuit);
	border-top: 1px solid var(--mlv-nuit-3);
	box-shadow: 0 30px 60px rgba(18, 24, 43, 0.35);
	z-index: 40;
}
.mlv-menu__inner {
	max-width: var(--mlv-max);
	margin-inline: auto;
	padding: 32px 24px 40px;
	display: flex;
	flex-wrap: wrap;
	gap: 32px 64px;
}
.mlv-menu__nav { flex: 1 1 320px; display: flex; flex-direction: column; gap: 4px; }
.mlv-menu__link { font-family: var(--mlv-font-serif); font-size: 34px; color: var(--mlv-blanc); padding: 6px 0; }
.mlv-menu__link:hover { color: var(--mlv-or-clair); }
.mlv-menu__link--small { font-family: var(--mlv-font-sans); font-size: 15px; }
.mlv-menu__services { flex: 1 1 320px; display: flex; flex-direction: column; gap: 10px; }
.mlv-menu__services-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 6px 24px; }
.mlv-menu__services-link { font-size: 15px; color: #E3E7EE; padding: 8px 0; }
.mlv-menu__services-link:hover { color: var(--mlv-or-clair); }
.mlv-menu__meta { flex: 1 1 220px; display: flex; flex-direction: column; gap: 12px; }
.mlv-menu__eyebrow {
	font-family: var(--mlv-font-label);
	font-size: 12px;
	letter-spacing: 0.24em;
	text-transform: uppercase;
	color: var(--mlv-or-clair);
}
.mlv-lang { display: inline-flex; align-items: center; gap: 4px; font-family: var(--mlv-font-label); font-size: 15px; letter-spacing: 0.12em; color: var(--mlv-blanc); }
.mlv-lang a { color: var(--mlv-blanc); }
.mlv-lang a:hover { color: var(--mlv-or-clair); }
.mlv-lang a.is-current { color: var(--mlv-or-clair); }
.mlv-menu__cta {
	align-self: flex-start;
	margin-top: 4px;
	padding: 14px 22px;
	border: 1px solid var(--mlv-blanc);
	border-radius: var(--mlv-radius-pill);
	font-family: var(--mlv-font-label);
	font-size: 12px;
	font-weight: 600;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--mlv-blanc);
}
.mlv-menu__cta:hover { background: var(--mlv-blanc); color: var(--mlv-nuit); }

/* ---------- 7. HERO ---------- */
.mlv-hero {
	position: relative;
	min-height: 640px;
	margin: 20px 24px 0;
	border-radius: var(--mlv-radius-xl);
	overflow: hidden;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	text-align: center;
	padding: 96px 24px 112px;
	max-width: var(--mlv-max);
	margin-inline: auto;
}
.mlv-hero__bg { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.mlv-hero__overlay { position: absolute; inset: 0; background: rgba(18, 24, 43, 0.42); }
.mlv-hero__inner { position: relative; z-index: 2; width: 100%; max-width: 720px; display: flex; flex-direction: column; gap: 14px; align-items: center; }
.mlv-hero__sub { font-family: var(--mlv-font-label); font-size: 14px; letter-spacing: 0.26em; text-transform: uppercase; color: #F1E4C6; margin: 0 0 22px; }

/* ---------- 8. SEARCH ---------- */
.mlv-search { position: relative; width: 100%; }
.mlv-search__form { display: flex; align-items: center; gap: 10px; background: var(--mlv-blanc); border-radius: var(--mlv-radius-pill); padding: 6px 6px 6px 22px; box-shadow: var(--mlv-shadow-lg); transition: box-shadow .3s var(--mlv-ease); }
.mlv-search__form:focus-within { box-shadow: 0 0 0 3px var(--mlv-or), var(--mlv-shadow-lg); }
.mlv-search__icon { flex-shrink: 0; color: var(--mlv-or-2); }
.mlv-search__input { flex: 1 1 auto; min-width: 0; height: 52px; border: 0; background: transparent; font: inherit; font-size: 17px; color: var(--mlv-nuit); outline: none; }
.mlv-search__submit { flex-shrink: 0; width: 64px; height: 52px; border-radius: var(--mlv-radius-pill); background: var(--mlv-nuit); color: var(--mlv-blanc); display: flex; align-items: center; justify-content: center; }
.mlv-search__submit:hover { background: var(--mlv-or); color: var(--mlv-nuit); }

.mlv-search__sugg { position: absolute; z-index: 5; top: calc(100% + 10px); left: 0; right: 0; background: var(--mlv-blanc); border-radius: var(--mlv-radius-md); box-shadow: 0 24px 60px rgba(18, 24, 43, 0.22); padding: 10px; text-align: left; max-height: 420px; overflow-y: auto; }
.mlv-search__sugg-head { padding: 10px 14px 6px; font-family: var(--mlv-font-label); font-size: 11px; letter-spacing: 0.2em; text-transform: uppercase; color: var(--mlv-texte-2); }
.mlv-sug { display: flex; align-items: center; gap: 14px; padding: 10px 14px; border-radius: var(--mlv-radius-sm); color: var(--mlv-nuit); min-height: 44px; }
.mlv-sug:hover, .mlv-sug:focus { background: var(--mlv-sable); outline: none; }
.mlv-sug__icon { width: 38px; height: 38px; border-radius: 50%; background: #F3EEE4; color: var(--mlv-or-2); display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.mlv-sug__body { display: flex; flex-direction: column; gap: 2px; flex: 1 1 auto; min-width: 0; }
.mlv-sug__label { font-size: 16px; font-weight: 500; }
.mlv-sug__sub { font-size: 13px; color: var(--mlv-texte-2); }
.mlv-sug__tag { font-family: var(--mlv-font-label); font-size: 11px; letter-spacing: 0.14em; text-transform: uppercase; color: var(--mlv-or-2); }

/* ---------- 9. STORY ---------- */
.mlv-story { display: flex; flex-wrap: wrap; align-items: center; gap: 56px 72px; padding-block: 112px 96px; }
.mlv-story__text { flex: 1 1 440px; min-width: 0; display: flex; flex-direction: column; gap: 22px; }
.mlv-story__content p { font-size: 17px; line-height: 1.85; color: var(--mlv-texte); margin: 0 0 1em; }
.mlv-story__content p:last-child { margin-bottom: 0; }
.mlv-story__media { flex: 1 1 440px; min-width: 0; }
.mlv-story__media img { width: 100%; aspect-ratio: 10 / 9; object-fit: cover; border-radius: var(--mlv-radius-lg); }

/* ---------- 10. COLLECTIONS (rail) ---------- */
.mlv-collections { padding-block: 96px; border-top: 1px solid var(--mlv-creme); }
.mlv-rail { display: grid; grid-auto-flow: column; grid-auto-columns: minmax(250px, calc((100% - 72px) / 4)); gap: 24px; overflow-x: auto; scroll-snap-type: x mandatory; padding-bottom: 14px; scrollbar-width: thin; scrollbar-color: var(--mlv-creme-2) transparent; }
.mlv-rail__item { scroll-snap-align: start; }

/* ---------- 11. TABS ---------- */
.mlv-destinations { padding-block: 96px 72px; border-top: 1px solid var(--mlv-creme); }
.mlv-tabs { display: flex; flex-wrap: wrap; justify-content: center; gap: 4px 28px; border-bottom: 1px solid var(--mlv-creme); margin-bottom: 40px; }
.mlv-tabs__btn {
	min-height: 48px;
	padding: 0 4px;
	border-bottom: 2px solid transparent;
	margin-bottom: -1px;
	font-family: var(--mlv-font-label);
	font-size: 13px;
	font-weight: 600;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: var(--mlv-texte-2);
}
.mlv-tabs__btn.is-active { border-color: var(--mlv-or); color: var(--mlv-nuit); }
.mlv-tabs__panel { animation: mlvFade .25s var(--mlv-ease); }
@keyframes mlvFade { from { opacity: 0; transform: translateY(4px); } to { opacity: 1; transform: none; } }

/* ---------- 12. SERVICES ---------- */
.mlv-services { padding-block: 96px 104px; border-top: 1px solid var(--mlv-creme); }

/* ---------- 13. HOW ---------- */
.mlv-how { padding-block: 104px; }
.mlv-how__grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 48px; }
.mlv-how__step { display: flex; flex-direction: column; align-items: center; text-align: center; gap: 12px; }
.mlv-how__num { font-family: var(--mlv-font-serif); font-size: 64px; line-height: 1; color: var(--mlv-or); }
.mlv-how__label { font-family: var(--mlv-font-label); font-size: 15px; font-weight: 600; letter-spacing: 0.12em; text-transform: uppercase; }
.mlv-how__text { font-size: 16px; line-height: 1.7; color: var(--mlv-texte); max-width: 320px; }

/* ---------- 14. CARDS ---------- */
.mlv-card {
	position: relative;
	display: block;
	overflow: hidden;
	border-radius: var(--mlv-radius-md);
	background: var(--mlv-nuit-2);
	text-decoration: none;
	color: var(--mlv-blanc);
}
.mlv-card:focus-visible { outline: 3px solid var(--mlv-or); outline-offset: 4px; }
.mlv-card__img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: transform .6s var(--mlv-ease); }
.mlv-card:hover .mlv-card__img { transform: scale(1.05); }
.mlv-card__overlay { position: absolute; inset: 0; background: rgba(18, 24, 43, 0.34); }
.mlv-card__body { position: absolute; inset: auto 0 0 0; padding: 22px; display: flex; flex-direction: column; gap: 8px; z-index: 2; }
.mlv-card__meta { font-family: var(--mlv-font-label); font-size: 11px; letter-spacing: 0.2em; text-transform: uppercase; color: #E9D9B6; }
.mlv-card__title { font-family: var(--mlv-font-serif); font-size: 30px; font-weight: 500; line-height: 1.05; color: var(--mlv-blanc); }
.mlv-card__hook { font-size: 15px; line-height: 1.55; color: rgba(255, 255, 255, 0.85); }
.mlv-card__price { font-family: var(--mlv-font-serif); font-size: 22px; color: var(--mlv-blanc); }
.mlv-card__places { font-family: var(--mlv-font-label); font-size: 11px; letter-spacing: 0.14em; text-transform: uppercase; color: #E9D9B6; line-height: 1.6; }
.mlv-card__cta { align-self: flex-start; margin-top: 6px; border: 1px solid var(--mlv-blanc); padding: 10px 18px; border-radius: var(--mlv-radius-pill); font-family: var(--mlv-font-label); font-size: 11px; font-weight: 600; letter-spacing: 0.14em; text-transform: uppercase; transition: background .3s, color .3s; }
.mlv-card:hover .mlv-card__cta { background: var(--mlv-blanc); color: var(--mlv-nuit); }
.mlv-card__badge { position: absolute; top: 14px; left: 14px; z-index: 2; background: var(--mlv-blanc); color: var(--mlv-nuit); font-family: var(--mlv-font-label); font-size: 10px; font-weight: 600; letter-spacing: 0.18em; text-transform: uppercase; padding: 7px 11px; border-radius: var(--mlv-radius-pill); }
.mlv-card__arrow { position: absolute; right: 18px; bottom: 20px; width: 42px; height: 42px; border-radius: 50%; border: 1px solid var(--mlv-or); background: rgba(18, 24, 43, 0.35); color: var(--mlv-blanc); display: flex; align-items: center; justify-content: center; transition: background .3s, color .3s, transform .3s; }
.mlv-card:hover .mlv-card__arrow { background: var(--mlv-or); color: var(--mlv-nuit); transform: translateX(4px); }
.mlv-card:hover .mlv-line { width: 72px; }

.mlv-card--dest, .mlv-card--hotel, .mlv-card--produit, .mlv-card--service { aspect-ratio: 4 / 3; }
.mlv-card--collection { aspect-ratio: 8 / 15; }
.mlv-card--collection .mlv-card__title { font-size: 38px; }

.mlv-card--chambre { background: transparent; display: flex; flex-direction: column; gap: 16px; border-radius: 0; color: var(--mlv-nuit); }
.mlv-card--chambre .mlv-card__media { position: relative; display: block; aspect-ratio: 16 / 11; border-radius: var(--mlv-radius-md); overflow: hidden; }
.mlv-card--chambre .mlv-card__img { position: static; width: 100%; height: 100%; object-fit: cover; }
.mlv-card--chambre .mlv-card__badge { top: 14px; left: 14px; }
.mlv-card__body--chambre { position: static; padding: 0; display: flex; flex-direction: row; align-items: flex-start; justify-content: space-between; gap: 16px; }
.mlv-card__body-main { display: flex; flex-direction: column; gap: 6px; min-width: 0; }
.mlv-card__add { flex-shrink: 0; width: 46px; height: 46px; border-radius: 50%; border: 1px solid var(--mlv-or); color: var(--mlv-or-2); display: flex; align-items: center; justify-content: center; transition: background .3s, color .3s; }
.mlv-card__add:hover, .mlv-card__add.is-added { background: var(--mlv-or); color: var(--mlv-nuit); }

/* ---------- 15. GALERIE ---------- */
.mlv-galerie { max-width: var(--mlv-max); margin-inline: auto; padding: 20px 24px 0; }
.mlv-galerie__grid { display: flex; flex-wrap: wrap; gap: 12px; }
.mlv-galerie__item { display: block; position: relative; overflow: hidden; border-radius: var(--mlv-radius-md); }
.mlv-galerie__item img { width: 100%; height: 100%; object-fit: cover; }
.mlv-galerie__item--main { flex: 2 1 520px; aspect-ratio: 16 / 10; max-height: 520px; border-radius: var(--mlv-radius-lg); }
.mlv-galerie__side { flex: 1 1 300px; display: grid; grid-template-columns: repeat(auto-fit, minmax(140px, 1fr)); gap: 12px; }
.mlv-galerie__side .mlv-galerie__item { aspect-ratio: 4 / 3; }
.mlv-galerie__more { position: absolute; right: 10px; bottom: 10px; min-height: 44px; padding: 0 16px; border-radius: var(--mlv-radius-pill); background: var(--mlv-blanc); color: var(--mlv-nuit); font-family: var(--mlv-font-label); font-size: 12px; font-weight: 600; letter-spacing: 0.12em; text-transform: uppercase; display: inline-flex; align-items: center; }

/* ---------- 16. FAQ ---------- */
.mlv-faq { padding-block: 96px; }
.mlv-faq__inner { display: flex; flex-wrap: wrap; gap: 32px 72px; }
.mlv-faq__head { flex: 1 1 300px; display: flex; flex-direction: column; gap: 12px; }
.mlv-faq__list { flex: 2 1 560px; min-width: 0; border-top: 1px solid var(--mlv-creme); }
.mlv-faq__item { border-bottom: 1px solid var(--mlv-creme); }
.mlv-faq__q { width: 100%; display: flex; justify-content: space-between; align-items: center; gap: 16px; padding: 22px 0; cursor: pointer; list-style: none; font-family: var(--mlv-font-serif); font-size: 24px; font-weight: 500; color: var(--mlv-nuit); }
.mlv-faq__q::-webkit-details-marker { display: none; }
.mlv-faq__sign { font-family: var(--mlv-font-sans); font-size: 22px; color: var(--mlv-or-2); }
.mlv-faq__a { padding: 0 0 22px; max-width: 760px; }
.mlv-faq__a p { font-size: 16px; line-height: 1.8; color: var(--mlv-texte); }
.mlv-faq__item:hover .mlv-faq__q { color: var(--mlv-or-2); }

/* ---------- 17. FIL D'ARIANE ---------- */
.mlv-fil-ariane { max-width: var(--mlv-max); margin-inline: auto; padding: 28px 24px 0; display: flex; gap: 10px; flex-wrap: wrap; font-family: var(--mlv-font-label); font-size: 12px; letter-spacing: 0.16em; text-transform: uppercase; color: var(--mlv-texte-2); }
.mlv-fil-ariane__link { color: var(--mlv-texte-2); }
.mlv-fil-ariane__link:hover { color: var(--mlv-or-2); }
.mlv-fil-ariane__current { color: var(--mlv-or-2); }
.mlv-fil-ariane__sep { color: var(--mlv-creme-2); }

/* ---------- 18. FORMULAIRES ---------- */
.mlv-form { display: flex; flex-direction: column; gap: 14px; }
.mlv-form__row { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.mlv-form__field { display: flex; flex-direction: column; gap: 6px; }
.mlv-form__label { font-family: var(--mlv-font-label); font-size: 11px; letter-spacing: 0.16em; text-transform: uppercase; color: var(--mlv-texte-2); font-weight: 600; }
.mlv-form__input { height: 48px; border: 1px solid var(--mlv-creme-3); border-radius: var(--mlv-radius-sm); padding: 0 14px; font: inherit; font-size: 15px; min-width: 0; background: var(--mlv-blanc); }
.mlv-form__input--textarea { height: auto; padding: 12px 14px; resize: vertical; }
.mlv-form__input:focus { outline: 2px solid var(--mlv-or); outline-offset: 1px; border-color: var(--mlv-or); }
.mlv-form__consent { display: flex; gap: 10px; align-items: flex-start; font-size: 13px; color: var(--mlv-texte-2); line-height: 1.5; }
.mlv-form__consent input { width: 18px; height: 18px; margin: 0; flex-shrink: 0; accent-color: var(--mlv-nuit); }
.mlv-form__hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.mlv-form__note { font-size: 13px; color: var(--mlv-texte-2); text-align: center; margin: 0; }
.mlv-form__sent { border: 1px solid var(--mlv-creme); border-radius: var(--mlv-radius-lg); padding: 56px 32px; text-align: center; display: flex; flex-direction: column; gap: 14px; align-items: center; }

/* ---------- 19. CTA BAND ---------- */
.mlv-cta-band { max-width: var(--mlv-max); margin-inline: auto; padding: 0 24px 104px; }
.mlv-cta-band__inner { background: var(--mlv-nuit); color: var(--mlv-blanc); border-radius: var(--mlv-radius-xl); padding: 64px 48px; display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 32px; }
.mlv-cta-band__text { display: flex; flex-direction: column; gap: 10px; max-width: 620px; }
.mlv-cta-band__eyebrow { font-family: var(--mlv-font-label); font-size: 13px; letter-spacing: 0.3em; text-transform: uppercase; color: var(--mlv-or-clair); }
.mlv-cta-band__title { font-family: var(--mlv-font-serif); font-size: 42px; line-height: 1.15; }
.mlv-cta-band__actions { display: flex; flex-wrap: wrap; gap: 12px; }
.mlv-cta-band__actions .mlv-btn--ghost { border-color: var(--mlv-blanc); color: var(--mlv-blanc); }
.mlv-cta-band__actions .mlv-btn--ghost:hover { background: var(--mlv-blanc); color: var(--mlv-nuit); }

/* ---------- 20. FOOTER ---------- */
.mlv-footer { background: var(--mlv-blanc); border-top: 1px solid var(--mlv-creme); margin-top: 64px; }
.mlv-footer__inner { display: grid; grid-template-columns: repeat(auto-fit, minmax(190px, 1fr)); gap: 40px; padding-block: 64px 32px; }
.mlv-footer__col { display: flex; flex-direction: column; gap: 12px; font-size: 14px; line-height: 1.7; color: var(--mlv-texte); }
.mlv-footer__col--brand { gap: 18px; }
.mlv-footer__logo { width: 120px; height: auto; }
.mlv-footer__instagram { color: var(--mlv-nuit); }
.mlv-footer__instagram:hover { color: var(--mlv-or-2); }
.mlv-footer__eyebrow { font-family: var(--mlv-font-label); font-size: 12px; letter-spacing: 0.2em; text-transform: uppercase; color: var(--mlv-or-2); font-weight: 600; }
.mlv-footer__links { display: flex; flex-direction: column; gap: 8px; }
.mlv-footer__links a { color: var(--mlv-texte); }
.mlv-footer__links a:hover { color: var(--mlv-or-2); }
.mlv-footer__bottom { max-width: var(--mlv-max); margin-inline: auto; padding: 20px 24px 32px; border-top: 1px solid var(--mlv-creme); font-size: 13px; color: var(--mlv-texte-2); }

/* ---------- 21. UTILITAIRES ---------- */
.screen-reader-text { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }

/* ---------- 22. RESPONSIVE ---------- */
@media (max-width: 1024px) {
	.mlv-h1 { font-size: 64px; }
	.mlv-h2 { font-size: 44px; }
}
@media (max-width: 768px) {
	.mlv-h1 { font-size: 52px; }
	.mlv-h2 { font-size: 38px; }
	.mlv-hero { min-height: 520px; padding: 72px 20px 88px; }
	.mlv-story { padding-block: 72px 64px; }
	.mlv-collections, .mlv-destinations, .mlv-services, .mlv-how, .mlv-faq { padding-block: 72px; }
	.mlv-menu__link { font-size: 26px; }
	.mlv-cta-band__inner { padding: 48px 28px; }
	.mlv-cta-band__title { font-size: 32px; }
	.mlv-galerie__item--main { aspect-ratio: 4 / 3; }
	.mlv-form__row { grid-template-columns: 1fr; }
	.mlv-header__cart-label { display: none; }
}
@media (max-width: 640px) {
	.mlv-h1 { font-size: 46px; }
	.mlv-h2 { font-size: 40px; }
	.mlv-header__burger-label { display: none; }
	.mlv-rail { grid-auto-columns: minmax(220px, 78%); }
	.mlv-faq__q { font-size: 20px; }
}
/* ==========================================================
 * C2 — single-destination + single-hotel
 * ========================================================== */

/* ---------- Hero de page (dest/hotel/chambre/collection/produit) ---------- */
.mlv-hero-page {
	position: relative;
	min-height: 480px;
	margin: 20px 24px 0;
	border-radius: var(--mlv-radius-xl);
	overflow: hidden;
	display: flex;
	flex-direction: column;
	justify-content: flex-end;
	padding: 56px 48px;
	max-width: var(--mlv-max);
	margin-inline: auto;
	box-sizing: border-box;
}
.mlv-hero-page__bg { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.mlv-hero-page__overlay { position: absolute; inset: 0; background: rgba(18, 24, 43, 0.44); }
.mlv-hero-page__inner { position: relative; z-index: 2; display: flex; flex-direction: column; gap: 16px; max-width: 760px; color: var(--mlv-blanc); }
.mlv-hero-page__inner .mlv-h1 { color: var(--mlv-blanc); }
.mlv-hero-page__sub { font-family: var(--mlv-font-label); font-size: 14px; letter-spacing: 0.22em; text-transform: uppercase; color: #F1E4C6; }

.mlv-fil-ariane--on-image { padding: 0; color: #E9D9B6; }
.mlv-fil-ariane--on-image .mlv-fil-ariane__link { color: #E9D9B6; }
.mlv-fil-ariane--on-image .mlv-fil-ariane__link:hover { color: var(--mlv-blanc); }
.mlv-fil-ariane--on-image .mlv-fil-ariane__current { color: var(--mlv-blanc); }
.mlv-fil-ariane--on-image .mlv-fil-ariane__sep { color: #E9D9B6; }

/* ---------- Destination : intro + chips ---------- */
.mlv-dest-intro { max-width: var(--mlv-max); margin-inline: auto; padding: 56px 24px 0; display: flex; flex-wrap: wrap; gap: 32px 72px; align-items: flex-start; }
.mlv-dest-intro__text { flex: 2 1 520px; min-width: 0; }
.mlv-dest-intro__text p { font-size: 19px; line-height: 1.8; color: var(--mlv-texte); margin: 0 0 1em; }
.mlv-chips { flex: 1 1 320px; display: flex; flex-wrap: wrap; gap: 8px; }
.mlv-chip { display: inline-flex; align-items: center; min-height: 44px; padding: 0 18px; border: 1px solid var(--mlv-nuit); border-radius: var(--mlv-radius-pill); font-size: 14px; color: var(--mlv-nuit); transition: background .3s, color .3s; }
.mlv-chip:hover { background: var(--mlv-nuit); color: var(--mlv-blanc); }

/* ---------- Blocs de section ---------- */
.mlv-block { max-width: var(--mlv-max); margin-inline: auto; padding: 88px 24px 0; }
.mlv-block__head { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: flex-end; gap: 16px; margin-bottom: 32px; }
.mlv-block__head > div { display: flex; flex-direction: column; gap: 12px; }
.mlv-block__all { font-family: var(--mlv-font-label); font-size: 12px; font-weight: 600; letter-spacing: 0.14em; text-transform: uppercase; color: var(--mlv-or-2); }
.mlv-block__all:hover { color: var(--mlv-or); }
.mlv-grid--cards { grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); }
.mlv-grid--chambres { grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap: 44px 24px; }

/* ---------- Guide (destination) ---------- */
.mlv-guide__grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 40px; }
.mlv-guide__item { display: flex; flex-direction: column; gap: 12px; }
.mlv-guide__title { font-family: var(--mlv-font-serif); font-weight: 500; font-size: 28px; color: var(--mlv-nuit); }
.mlv-guide__text { font-size: 16px; line-height: 1.8; color: var(--mlv-texte); }

/* ---------- Hôtel : top ---------- */
.mlv-hotel-top { max-width: var(--mlv-max); margin-inline: auto; padding: 56px 24px 88px; display: flex; flex-wrap: wrap; gap: 48px 72px; align-items: flex-start; }
.mlv-hotel-top__main { flex: 999 1 560px; min-width: 0; display: flex; flex-direction: column; gap: 22px; }
.mlv-hotel-top__eyebrow { font-family: var(--mlv-font-label); font-size: 13px; letter-spacing: 0.3em; text-transform: uppercase; color: var(--mlv-or-2); }
.mlv-h1--dark { color: var(--mlv-nuit); font-size: 64px; }
.mlv-tags { display: flex; flex-wrap: wrap; gap: 10px; }
.mlv-tag { display: inline-flex; padding: 9px 16px; border: 1px solid var(--mlv-creme-2); border-radius: var(--mlv-radius-pill); font-size: 14px; color: var(--mlv-nuit); }
.mlv-hotel-top__content p { font-size: 17px; line-height: 1.85; color: var(--mlv-texte); margin: 0 0 1em; }

/* ---------- Hôtel : aside ---------- */
.mlv-hotel-aside { flex: 1 1 340px; border: 1px solid var(--mlv-creme); border-radius: var(--mlv-radius-lg); padding: 32px; display: flex; flex-direction: column; gap: 16px; box-shadow: var(--mlv-shadow-md); background: var(--mlv-blanc); }
.mlv-hotel-aside__eyebrow { font-family: var(--mlv-font-label); font-size: 12px; letter-spacing: 0.24em; text-transform: uppercase; color: var(--mlv-or-2); }
.mlv-hotel-aside__price { font-family: var(--mlv-font-serif); font-size: 38px; color: var(--mlv-nuit); }
.mlv-hotel-aside__meta { font-size: 14px; color: var(--mlv-texte-2); }
.mlv-hotel-aside__note { font-size: 13px; color: var(--mlv-texte-2); text-align: center; }

/* ---------- Filtres chambres ---------- */
.mlv-filters { display: flex; flex-wrap: wrap; gap: 8px; }
.mlv-filter {
	min-height: 44px;
	padding: 0 20px;
	border-radius: var(--mlv-radius-pill);
	font-family: var(--mlv-font-label);
	font-size: 12px;
	font-weight: 600;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	cursor: pointer;
	background: var(--mlv-blanc);
	color: var(--mlv-nuit);
	border: 1px solid var(--mlv-nuit);
	transition: background .3s, color .3s;
}
.mlv-filter.is-active { background: var(--mlv-nuit); color: var(--mlv-blanc); }
.mlv-filter:hover:not(.is-active) { background: var(--mlv-sable); }

/* ---------- Responsive C2 ---------- */
@media (max-width: 1024px) {
	.mlv-h1--dark { font-size: 48px; }
	.mlv-hero-page { min-height: 420px; padding: 48px 32px; }
}
@media (max-width: 768px) {
	.mlv-h1--dark { font-size: 40px; }
	.mlv-hero-page { min-height: 360px; padding: 40px 20px; }
	.mlv-hotel-top, .mlv-dest-intro { padding-inline: 20px; }
	.mlv-block { padding: 72px 20px 0; }
}
/* ==========================================================
 * C3 — chambre / collection / produit
 * ========================================================== */

/* ---------- Chambre : top ---------- */
.mlv-chambre-top { max-width: var(--mlv-max); margin-inline: auto; padding: 56px 24px 88px; display: flex; flex-wrap: wrap; gap: 48px 72px; align-items: flex-start; }
.mlv-chambre-top__main { flex: 999 1 560px; min-width: 0; display: flex; flex-direction: column; gap: 22px; }
.mlv-chambre-top__hotel { font-family: var(--mlv-font-label); font-size: 13px; letter-spacing: 0.3em; text-transform: uppercase; color: var(--mlv-or-2); }
.mlv-chambre-top__hotel:hover { color: var(--mlv-or); }
.mlv-chambre-top__hook { font-family: var(--mlv-font-serif); font-style: italic; font-size: 24px; color: var(--mlv-or-2); }
.mlv-chambre-top__content p { font-size: 17px; line-height: 1.85; color: var(--mlv-texte); margin: 0 0 1em; }

/* ---------- Chambre : faits (vue, surface…) ---------- */
.mlv-chambre-facts { display: grid; grid-template-columns: repeat(auto-fit, minmax(140px, 1fr)); gap: 0; border-top: 1px solid var(--mlv-creme); border-bottom: 1px solid var(--mlv-creme); }
.mlv-chambre-fact { padding: 20px 16px 20px 0; display: flex; flex-direction: column; gap: 6px; }
.mlv-chambre-fact:not(:first-child) { padding-left: 16px; }
.mlv-chambre-fact dt { font-family: var(--mlv-font-label); font-size: 11px; letter-spacing: 0.2em; text-transform: uppercase; color: var(--mlv-or-2); }
.mlv-chambre-fact dd { margin: 0; font-family: var(--mlv-font-serif); font-size: 26px; color: var(--mlv-nuit); }

/* ---------- Chambre : équipements ---------- */
.mlv-chambre-equip { display: flex; flex-direction: column; gap: 18px; margin-top: 8px; }
.mlv-chambre-equip__list { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 14px 24px; }
.mlv-chambre-equip__item { display: flex; align-items: center; gap: 12px; font-size: 15px; color: var(--mlv-nuit); }
.mlv-chambre-equip__item svg { color: var(--mlv-or); flex-shrink: 0; }

/* ---------- Chambre : aside ---------- */
.mlv-chambre-aside { flex: 1 1 340px; border: 1px solid var(--mlv-creme); border-radius: var(--mlv-radius-lg); padding: 32px; display: flex; flex-direction: column; gap: 16px; box-shadow: var(--mlv-shadow-md); background: var(--mlv-blanc); }
.mlv-chambre-aside__eyebrow { font-family: var(--mlv-font-label); font-size: 12px; letter-spacing: 0.24em; text-transform: uppercase; color: var(--mlv-or-2); }
.mlv-chambre-aside__price { font-family: var(--mlv-font-serif); font-size: 36px; color: var(--mlv-nuit); }
.mlv-chambre-aside__note { font-size: 14px; color: var(--mlv-texte-2); }
.mlv-chambre-aside__dates { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }

.mlv-field { display: flex; flex-direction: column; gap: 6px; }
.mlv-field__label { font-family: var(--mlv-font-label); font-size: 11px; letter-spacing: 0.16em; text-transform: uppercase; color: var(--mlv-texte-2); font-weight: 600; }
.mlv-field__input { height: 48px; border: 1px solid var(--mlv-creme-3); border-radius: var(--mlv-radius-sm); padding: 0 14px; font: inherit; font-size: 15px; min-width: 0; background: var(--mlv-blanc); }
.mlv-field__input:focus { outline: 2px solid var(--mlv-or); outline-offset: 1px; border-color: var(--mlv-or); }

/* ---------- Steppers ---------- */
.mlv-steppers { display: flex; flex-direction: column; gap: 0; }
.mlv-stepper { display: flex; justify-content: space-between; align-items: center; padding: 8px 0; border-bottom: 1px solid var(--mlv-sable-2); }
.mlv-stepper:last-child { border-bottom: 0; }
.mlv-stepper__label { font-size: 15px; }
.mlv-stepper__controls { display: flex; align-items: center; gap: 12px; }
.mlv-stepper__btn { width: 44px; height: 44px; border-radius: 50%; border: 1px solid var(--mlv-creme-2); background: var(--mlv-blanc); color: var(--mlv-nuit); font: inherit; font-size: 18px; cursor: pointer; transition: background .2s; }
.mlv-stepper__btn:hover { background: var(--mlv-sable); }
.mlv-stepper__value { min-width: 20px; text-align: center; font-weight: 500; }

/* ---------- Collection : intro ---------- */
.mlv-coll-intro { max-width: 980px; margin: 0 auto; padding: 72px 24px 0; text-align: center; }
.mlv-coll-intro p { font-size: 19px; line-height: 1.85; color: var(--mlv-texte); }

/* ---------- Produit : top ---------- */
.mlv-produit-top { max-width: var(--mlv-max); margin-inline: auto; padding: 56px 24px 88px; display: flex; flex-wrap: wrap; gap: 48px 72px; align-items: flex-start; }
.mlv-produit-top__main { flex: 999 1 560px; min-width: 0; display: flex; flex-direction: column; gap: 22px; }
.mlv-produit-top__main p { font-size: 17px; line-height: 1.85; color: var(--mlv-texte); margin: 0 0 1em; }
.mlv-produit-facts { display: flex; flex-wrap: wrap; gap: 10px; }
.mlv-produit-facts li { display: inline-flex; padding: 9px 16px; border: 1px solid var(--mlv-creme-2); border-radius: var(--mlv-radius-pill); font-size: 14px; color: var(--mlv-nuit); }

.mlv-produit-aside { flex: 1 1 340px; border: 1px solid var(--mlv-creme); border-radius: var(--mlv-radius-lg); padding: 32px; display: flex; flex-direction: column; gap: 16px; box-shadow: var(--mlv-shadow-md); background: var(--mlv-blanc); }
.mlv-produit-aside__eyebrow { font-family: var(--mlv-font-label); font-size: 12px; letter-spacing: 0.24em; text-transform: uppercase; color: var(--mlv-or-2); }
.mlv-produit-aside__price { font-family: var(--mlv-font-serif); font-size: 36px; color: var(--mlv-nuit); }
.mlv-produit-aside__note { font-size: 13px; color: var(--mlv-texte-2); text-align: center; }

/* ---------- City links ---------- */
.mlv-citylinks { padding-bottom: 88px; }
.mlv-citylinks .mlv-chips { margin-top: 20px; }

/* ---------- Responsive C3 ---------- */
@media (max-width: 768px) {
	.mlv-chambre-top, .mlv-produit-top { padding-inline: 20px; }
	.mlv-chambre-facts { grid-template-columns: 1fr; }
	.mlv-chambre-fact { padding: 12px 0; border-bottom: 1px solid var(--mlv-sable-2); }
	.mlv-chambre-fact:last-child { border-bottom: 0; }
	.mlv-chambre-fact:not(:first-child) { padding-left: 0; }
}
/* ==========================================================
 * C4 — pages : services, collections, contact, mon-voyage,
 *       à propos, faq, legal
 * ========================================================== */

/* ---------- Contact ---------- */
.mlv-contact { max-width: var(--mlv-max); margin-inline: auto; padding: 72px 24px 104px; display: flex; flex-wrap: wrap; gap: 48px 72px; align-items: flex-start; }
.mlv-contact__form { flex: 999 1 560px; min-width: 0; display: flex; flex-direction: column; gap: 16px; }
.mlv-contact__form .mlv-h2 { font-size: 40px; }
.mlv-contact__aside { flex: 1 1 340px; display: flex; flex-direction: column; gap: 28px; }
.mlv-contact__card { border: 1px solid var(--mlv-creme); border-radius: var(--mlv-radius-lg); padding: 28px; display: flex; flex-direction: column; gap: 14px; }
.mlv-contact__phone { font-family: var(--mlv-font-serif); font-size: 30px; color: var(--mlv-nuit); }
.mlv-contact__email { font-size: 16px; color: var(--mlv-nuit); }
.mlv-contact__agency { display: flex; flex-direction: column; gap: 4px; margin-top: 8px; }
.mlv-contact__agency-name { font-family: var(--mlv-font-serif); font-size: 26px; }
.mlv-contact__agency-addr { font-size: 15px; line-height: 1.7; color: var(--mlv-texte); }

/* ---------- Mon voyage ---------- */
.mlv-mon-voyage { max-width: var(--mlv-max); margin-inline: auto; padding: 64px 24px 104px; }
.mlv-mon-voyage__intro { display: flex; flex-direction: column; gap: 14px; margin-bottom: 48px; max-width: 760px; }
.mlv-mon-voyage__intro p { font-size: 17px; line-height: 1.75; color: var(--mlv-texte); }
.mlv-mon-voyage__grid { display: flex; flex-wrap: wrap; gap: 48px 64px; align-items: flex-start; }
.mlv-mon-voyage__list { flex: 999 1 560px; min-width: 0; display: flex; flex-direction: column; }
.mlv-mon-voyage__empty { border: 1px dashed var(--mlv-creme-2); border-radius: var(--mlv-radius-md); padding: 40px; text-align: center; color: var(--mlv-texte-2); font-size: 15px; }
.mlv-mon-voyage__empty a { color: var(--mlv-or-2); font-weight: 500; }

.mlv-voyage-step { margin-bottom: 8px; }
.mlv-voyage-step__head { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 8px 16px; padding: 12px 0 10px; border-bottom: 2px solid var(--mlv-nuit); }
.mlv-voyage-step__title { font-family: var(--mlv-font-serif); font-size: 32px; font-weight: 500; color: var(--mlv-nuit); margin: 0; }
.mlv-voyage-step__dates { font-family: var(--mlv-font-label); font-size: 12px; letter-spacing: 0.18em; text-transform: uppercase; color: var(--mlv-or-2); }

.mlv-voyage-item { padding: 24px 0; border-bottom: 1px solid var(--mlv-creme); display: flex; flex-wrap: wrap; gap: 20px 24px; align-items: center; }
.mlv-voyage-item__img { width: 150px; height: 112px; object-fit: cover; border-radius: 14px; flex-shrink: 0; }
.mlv-voyage-item__body { flex: 1 1 220px; min-width: 0; display: flex; flex-direction: column; gap: 4px; }
.mlv-voyage-item__kind { font-family: var(--mlv-font-label); font-size: 11px; letter-spacing: 0.2em; text-transform: uppercase; color: var(--mlv-or-2); }
.mlv-voyage-item__title { font-family: var(--mlv-font-serif); font-size: 27px; font-weight: 500; line-height: 1.15; color: var(--mlv-nuit); margin: 0; }
.mlv-voyage-item__meta { font-size: 14px; color: var(--mlv-texte-2); }
.mlv-voyage-item__dates { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; flex: 1 1 260px; }
.mlv-voyage-item__remove { width: 44px; height: 44px; border-radius: 50%; border: 1px solid var(--mlv-creme-2); background: var(--mlv-blanc); color: var(--mlv-texte-2); display: flex; align-items: center; justify-content: center; }
.mlv-voyage-item__remove:hover { background: var(--mlv-sable); }

/* ---------- À propos ---------- */
.mlv-about-section { max-width: var(--mlv-max); margin-inline: auto; padding: 88px 24px 0; display: flex; flex-wrap: wrap; align-items: center; gap: 48px 72px; }
.mlv-about-section--reverse { flex-direction: row-reverse; }
.mlv-about-section__text { flex: 1 1 440px; min-width: 0; display: flex; flex-direction: column; gap: 20px; }
.mlv-about-section__text p { font-size: 18px; line-height: 1.85; color: var(--mlv-texte); }
.mlv-about-section__media { flex: 1 1 440px; min-width: 0; }
.mlv-about-section__media img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; border-radius: var(--mlv-radius-lg); }
.mlv-about-commitments { max-width: var(--mlv-max); margin: 96px auto 0; padding: 56px 48px; background: var(--mlv-sable); border-radius: var(--mlv-radius-xl); display: flex; flex-wrap: wrap; gap: 32px 64px; align-items: center; }
.mlv-about-commitments__list { flex: 2 1 480px; margin: 0; padding: 0; list-style: none; display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 18px 32px; }
.mlv-about-commitments__list li { position: relative; padding-left: 32px; font-size: 17px; line-height: 1.5; }
.mlv-about-commitments__list li::before { content: "✓"; position: absolute; left: 0; top: 0; color: var(--mlv-or); font-weight: 700; }

/* ---------- Légal ---------- */
.mlv-legal { max-width: 880px; margin: 0 auto; padding: 72px 24px 104px; }
.mlv-legal h1, .mlv-legal h2, .mlv-legal h3 { font-family: var(--mlv-font-serif); font-weight: 500; color: var(--mlv-nuit); margin: 1.4em 0 .6em; }
.mlv-legal p, .mlv-legal li { font-size: 16px; line-height: 1.85; color: var(--mlv-texte); }
.mlv-legal ul { padding-left: 1.2em; list-style: disc; }

/* ---------- FAQ page ---------- */
.mlv-faq__list { width: 100%; }

/* ---------- Responsive C4 ---------- */
@media (max-width: 768px) {
	.mlv-about-section { flex-direction: column; padding-inline: 20px; }
	.mlv-about-section--reverse { flex-direction: column; }
	.mlv-about-commitments { padding: 40px 24px; margin-inline: 20px; }
	.mlv-contact, .mlv-mon-voyage { padding-inline: 20px; }
	.mlv-voyage-item__img { width: 100%; height: 180px; }
	.mlv-voyage-item__dates { flex-basis: 100%; }
}
/* ---------- Card produit avec bouton « Ajouter » (optionnel) ---------- */
.mlv-card-wrap { position: relative; }
.mlv-card-wrap .mlv-card--produit { position: relative; }

.mlv-card__add--outside {
	position: absolute;
	top: 14px;
	right: 14px;
	width: 44px;
	height: 44px;
	border-radius: 50%;
	background: var(--mlv-blanc);
	border: 1px solid var(--mlv-or);
	color: var(--mlv-or-2);
	display: flex;
	align-items: center;
	justify-content: center;
	transition: background .3s, color .3s;
	z-index: 3;
}
.mlv-card__add--outside:hover,
.mlv-card__add--outside.is-added {
	background: var(--mlv-or);
	color: var(--mlv-nuit);
}
/* ==========================================================
 * C5 — 404 / search / search-page
 * ========================================================== */

/* ---------- 404 ---------- */
.mlv-404 { max-width: var(--mlv-max); margin-inline: auto; padding: 96px 24px 64px; }
.mlv-404__inner { max-width: 720px; margin: 0 auto; display: flex; flex-direction: column; gap: 20px; align-items: center; text-align: center; }
.mlv-404__text { font-size: 18px; line-height: 1.8; color: var(--mlv-texte); max-width: 560px; }
.mlv-404__search { width: 100%; max-width: 560px; margin-top: 8px; }
.mlv-404__links { display: flex; flex-wrap: wrap; gap: 12px; justify-content: center; margin-top: 12px; }

/* ---------- Search ---------- */
.mlv-search-page { max-width: var(--mlv-max); margin-inline: auto; padding: 64px 24px 0; }
.mlv-search-page__head { display: flex; flex-direction: column; gap: 14px; align-items: flex-start; margin-bottom: 48px; max-width: 760px; }
.mlv-search-page__count { font-family: var(--mlv-font-label); font-size: 13px; letter-spacing: 0.14em; text-transform: uppercase; color: var(--mlv-texte-2); }
.mlv-search__form--inline { max-width: 480px; margin-top: 8px; }
.mlv-search-pages { display: flex; flex-direction: column; gap: 10px; }
.mlv-search-pages a { color: var(--mlv-nuit); font-size: 16px; }
.mlv-search-pages a:hover { color: var(--mlv-or-2); }
/* Espace entre le dernier bloc et le CTA band */
.mlv-main > .mlv-block:last-of-type {
	padding-bottom: 40px;
}

/* Ou, plus ciblé : espace avant le CTA band */
.mlv-cta-band {
	margin-top: 40px;
}
.mlv-contact__form {
	padding: 32px;
	background: var(--mlv-blanc);
	border-radius: var(--mlv-radius-lg);
	border: 1px solid var(--mlv-creme);
}
/* ==========================================================
 * Corrections espacements (formulaire + CTA)
 * ========================================================== */

/* Formulaire de contact : ajout d'un padding et d'une bordure pour aérer */
.mlv-contact__form {
	background: var(--mlv-blanc);
	border: 1px solid var(--mlv-creme);
	border-radius: var(--mlv-radius-lg);
	padding: 40px;
}
@media (max-width: 768px) {
	.mlv-contact__form { padding: 24px; }
}

/* Espacement avant le bloc CTA en bas de page */
.mlv-cta-band {
	margin-top: 64px;
}

/* Ligne de séparation du formulaire "Mon voyage" */
.mlv-voyage-step:last-child {
	padding-bottom: 40px;
}