/* ==========================================================================
   Escale — composants du moteur (fonctionnent avec n'importe quel thème).
   Les couleurs, polices et arrondis reprennent ceux du thème quand ils existent.
   ========================================================================== */

:root {
	--esc-c-bg: var(--wp--preset--color--fond, #F6F7F5);
	--esc-c-surface: var(--wp--preset--color--surface, #FFFFFF);
	--esc-c-ink: var(--wp--preset--color--encre, #182024);
	--esc-c-muted: var(--wp--preset--color--ardoise, #525D61);
	--esc-c-line: var(--wp--preset--color--ligne, #DDE2E0);
	--esc-c-accent: var(--wp--preset--color--lagune, #0D5C63);
	--esc-c-accent-dark: var(--wp--preset--color--lagune-fonce, #08454B);
	--esc-c-accent-soft: var(--wp--preset--color--lagune-pale, #E2EEED);
	--esc-c-danger: var(--wp--preset--color--alerte, #A3312A);
	--esc-c-success: var(--wp--preset--color--succes, #2D6A3E);
	--esc-c-pending: #8A5300;
	--esc-f-title: var(--wp--preset--font-family--titres, Georgia, serif);
	--esc-f-text: var(--wp--preset--font-family--texte, system-ui, sans-serif);
	--esc-r-s: var(--wp--custom--radius--petit, 6px);
	--esc-r-m: var(--wp--custom--radius--moyen, 10px);
	--esc-r-l: var(--wp--custom--radius--grand, 16px);
	--esc-shadow: var(--wp--preset--shadow--flottant, 0 2px 6px rgba(24, 32, 36, .06), 0 18px 44px -12px rgba(24, 32, 36, .2));
	--esc-shadow-s: var(--wp--preset--shadow--leger, 0 1px 2px rgba(24, 32, 36, .05), 0 2px 8px rgba(24, 32, 36, .04));
	--esc-ease: cubic-bezier(.2, .7, .2, 1);
}

.esc-icon {
	flex: none;
	vertical-align: middle;
}

.screen-reader-text:not(:focus) {
	border: 0;
	clip: rect(1px, 1px, 1px, 1px);
	clip-path: inset(50%);
	height: 1px;
	margin: -1px;
	overflow: hidden;
	padding: 0;
	position: absolute;
	width: 1px;
	word-wrap: normal !important;
}

/* Champ piège anti-robots : hors écran, jamais annoncé. */
.esc-hp {
	position: absolute !important;
	left: -9999px !important;
	width: 1px;
	height: 1px;
	overflow: hidden;
}

.esc-block {
	margin-block: 0;
}

/* --------------------------------------------------------------------------
   Boutons et liens
   -------------------------------------------------------------------------- */

.esc-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: .5rem;
	min-height: 2.875rem;
	padding: .7rem 1.25rem;
	border: 1px solid transparent;
	border-radius: var(--esc-r-m);
	font: 600 .9375rem/1.2 var(--esc-f-text);
	text-decoration: none;
	cursor: pointer;
	transition: background-color .16s var(--esc-ease), border-color .16s var(--esc-ease), color .16s var(--esc-ease), transform .16s var(--esc-ease);
	-webkit-tap-highlight-color: transparent;
}

.esc-btn:active {
	transform: translateY(1px);
}

.esc-btn[disabled],
.esc-btn[aria-busy="true"] {
	opacity: .55;
	cursor: not-allowed;
}

.esc-btn--primary {
	background: var(--esc-c-accent);
	color: #fff;
}

.esc-btn--primary:hover:not([disabled]) {
	background: var(--esc-c-accent-dark);
	color: #fff;
}

.esc-btn--ghost {
	background: var(--esc-c-surface);
	border-color: var(--esc-c-line);
	color: var(--esc-c-ink);
}

.esc-btn--ghost:hover {
	border-color: var(--esc-c-ink);
	color: var(--esc-c-ink);
}

.esc-btn--light {
	background: rgba(255, 255, 255, .94);
	color: var(--esc-c-ink);
	box-shadow: var(--esc-shadow-s);
}

.esc-btn--light:hover {
	background: #fff;
}

.esc-btn--danger {
	background: var(--esc-c-danger);
	color: #fff;
}

.esc-btn--danger:hover {
	background: #861f19;
	color: #fff;
}

.esc-btn--large {
	min-height: 3.25rem;
	padding-inline: 1.75rem;
	font-size: 1rem;
}

.esc-btn--block {
	width: 100%;
}

.esc-icon-btn {
	display: inline-grid;
	place-items: center;
	width: 2.75rem;
	height: 2.75rem;
	border: 0;
	border-radius: 999px;
	background: transparent;
	color: inherit;
	cursor: pointer;
}

.esc-icon-btn:hover {
	background: var(--esc-c-accent-soft);
}

.esc-link {
	color: var(--esc-c-accent);
	font-weight: 600;
}

.esc-count {
	display: inline-grid;
	place-items: center;
	min-width: 1.35rem;
	height: 1.35rem;
	padding: 0 .35rem;
	border-radius: 999px;
	background: var(--esc-c-accent);
	color: #fff;
	font-size: .75rem;
	font-weight: 700;
}

/* --------------------------------------------------------------------------
   Champs de formulaire
   -------------------------------------------------------------------------- */

.esc-field {
	display: flex;
	flex-direction: column;
	gap: .4rem;
	margin-bottom: 1.1rem;
}

.esc-field > label,
.esc-avail__field > label,
.esc-search__field > label,
.esc-search__label {
	font-size: .875rem;
	font-weight: 600;
	color: var(--esc-c-ink);
}

.esc-optional {
	font-weight: 400;
	color: var(--esc-c-muted);
}

.esc-field input,
.esc-field textarea,
.esc-field select,
.esc-avail input,
.esc-filter input[type="number"],
.esc-filter select,
.esc-sort select,
.esc-room__qty select {
	width: 100%;
	min-height: 2.875rem;
	padding: .65rem .85rem;
	border: 1px solid var(--esc-c-line);
	border-radius: var(--esc-r-m);
	background: var(--esc-c-surface);
	color: var(--esc-c-ink);
	font: 400 1rem/1.4 var(--esc-f-text);
	transition: border-color .16s var(--esc-ease), box-shadow .16s var(--esc-ease);
}

.esc-field input:focus,
.esc-field textarea:focus,
.esc-field select:focus,
.esc-avail input:focus,
.esc-filter input:focus,
.esc-sort select:focus,
.esc-room__qty select:focus {
	outline: none;
	border-color: var(--esc-c-accent);
	box-shadow: 0 0 0 3px var(--esc-c-accent-soft);
}

.esc-field input[aria-invalid="true"] {
	border-color: var(--esc-c-danger);
}

.esc-field__help {
	margin: 0;
	font-size: .8125rem;
	color: var(--esc-c-muted);
}

.esc-field__error {
	margin: 0;
	font-size: .8125rem;
	font-weight: 600;
	color: var(--esc-c-danger);
}

.esc-fields {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(14rem, 1fr));
	column-gap: 1rem;
}

.esc-check {
	display: flex;
	align-items: flex-start;
	gap: .65rem;
	margin: .55rem 0;
}

.esc-check input {
	flex: none;
	width: 1.15rem;
	height: 1.15rem;
	margin: .15rem 0 0;
	accent-color: var(--esc-c-accent);
}

.esc-check label {
	display: inline-flex;
	flex-wrap: wrap;
	align-items: center;
	gap: .4rem;
	font-size: .9375rem;
	cursor: pointer;
}

.esc-check__count {
	color: var(--esc-c-muted);
	font-size: .8125rem;
}

/* Choix en cartes (mode de règlement, moyen de paiement) */
.esc-choices {
	display: grid;
	gap: .6rem;
	margin: 0;
	padding: 0;
	border: 0;
}

.esc-choices legend {
	margin-bottom: .5rem;
	font-weight: 600;
	font-size: .9375rem;
}

.esc-choices--gateways {
	margin-top: 1.1rem;
}

.esc-choice {
	position: relative;
}

.esc-choice input {
	position: absolute;
	opacity: 0;
	inset: 0;
}

.esc-choice label {
	display: grid;
	gap: .2rem;
	padding: .9rem 1rem .9rem 2.9rem;
	border: 1px solid var(--esc-c-line);
	border-radius: var(--esc-r-m);
	background: var(--esc-c-surface);
	cursor: pointer;
	transition: border-color .16s var(--esc-ease), background-color .16s var(--esc-ease);
}

.esc-choice label::before {
	content: "";
	position: absolute;
	left: 1rem;
	top: 1.05rem;
	width: 1.1rem;
	height: 1.1rem;
	border: 1.5px solid var(--esc-c-muted);
	border-radius: 50%;
	background: var(--esc-c-surface);
}

.esc-choice input:checked + label {
	border-color: var(--esc-c-accent);
	background: var(--esc-c-accent-soft);
}

.esc-choice input:checked + label::before {
	border-color: var(--esc-c-accent);
	box-shadow: inset 0 0 0 4px var(--esc-c-surface);
	background: var(--esc-c-accent);
}

.esc-choice input:focus-visible + label {
	outline: 2px solid var(--esc-c-accent);
	outline-offset: 2px;
}

.esc-choice label span {
	font-size: .875rem;
	color: var(--esc-c-muted);
}

/* --------------------------------------------------------------------------
   Formulaire de recherche
   -------------------------------------------------------------------------- */

.esc-search {
	display: grid;
	grid-template-columns: 1.5fr 1fr 1fr 1.25fr auto;
	align-items: stretch;
	gap: 0;
	padding: .45rem;
	border-radius: var(--esc-r-l);
	background: var(--esc-c-surface);
	color: var(--esc-c-ink);
	box-shadow: var(--esc-shadow);
	text-align: left;
}

.esc-search__field {
	position: relative;
	display: flex;
	flex-direction: column;
	justify-content: center;
	gap: .15rem;
	min-width: 0;
	padding: .45rem .95rem;
	border-radius: var(--esc-r-m);
	transition: background-color .16s var(--esc-ease);
}

.esc-search__field + .esc-search__field::before {
	content: "";
	position: absolute;
	left: 0;
	top: 22%;
	bottom: 22%;
	width: 1px;
	background: var(--esc-c-line);
}

.esc-search__field:hover,
.esc-search__field:focus-within {
	background: var(--esc-c-bg);
}

.esc-search__field > label,
.esc-search__label {
	font-size: .75rem;
	font-weight: 700;
	color: var(--esc-c-muted);
	letter-spacing: .01em;
}

.esc-search__control {
	display: flex;
	align-items: center;
	gap: .5rem;
	min-width: 0;
	color: var(--esc-c-ink);
}

.esc-search__control .esc-icon {
	color: var(--esc-c-muted);
}

.esc-search input[type="search"],
.esc-search input[type="date"] {
	width: 100%;
	min-width: 0;
	padding: .2rem 0;
	border: 0;
	background: transparent;
	color: var(--esc-c-ink);
	font: 500 1rem/1.3 var(--esc-f-text);
}

.esc-search input:focus {
	outline: none;
}

.esc-search input::placeholder {
	color: var(--esc-c-muted);
	opacity: 1;
}

.esc-search__submit {
	min-height: 3.5rem;
	margin-left: .35rem;
	padding-inline: 1.5rem;
	border-radius: var(--esc-r-m);
	font-size: 1rem;
}

.esc-search--bar {
	box-shadow: none;
	border: 1px solid var(--esc-c-line);
}

.esc-guests > summary {
	list-style: none;
	cursor: pointer;
	padding: .2rem 0;
	font-weight: 500;
}

.esc-guests > summary::-webkit-details-marker {
	display: none;
}

.esc-guests > summary span[data-esc-guests-summary] {
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}

.esc-guests__panel {
	position: absolute;
	right: 0;
	top: calc(100% + .6rem);
	z-index: 40;
	width: min(21rem, 92vw);
	padding: 1rem 1.1rem;
	border: 1px solid var(--esc-c-line);
	border-radius: var(--esc-r-l);
	background: var(--esc-c-surface);
	box-shadow: var(--esc-shadow);
	animation: esc-pop .18s var(--esc-ease);
}

.esc-guests__done {
	width: 100%;
	margin-top: .5rem;
}

.esc-counter {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	padding: .65rem 0;
	border-bottom: 1px solid var(--esc-c-line);
}

.esc-counter label {
	display: grid;
	font-weight: 600;
	font-size: .9375rem;
}

.esc-counter label small {
	font-weight: 400;
	font-size: .8125rem;
	color: var(--esc-c-muted);
}

.esc-counter input {
	width: 3.5rem;
	padding: .4rem;
	border: 1px solid var(--esc-c-line);
	border-radius: var(--esc-r-s);
	font: 600 1rem var(--esc-f-text);
	text-align: center;
}

.esc-stepper {
	display: flex;
	align-items: center;
	gap: .4rem;
}

.esc-stepper input {
	width: 2.5rem;
	border: 0;
	background: transparent;
	-moz-appearance: textfield;
}

.esc-stepper input::-webkit-outer-spin-button,
.esc-stepper input::-webkit-inner-spin-button {
	-webkit-appearance: none;
	margin: 0;
}

.esc-stepper__btn {
	display: grid;
	place-items: center;
	width: 2.25rem;
	height: 2.25rem;
	border: 1px solid var(--esc-c-line);
	border-radius: 50%;
	background: var(--esc-c-surface);
	color: var(--esc-c-ink);
	font-size: 1.15rem;
	line-height: 1;
	cursor: pointer;
}

.esc-stepper__btn:hover:not(:disabled) {
	border-color: var(--esc-c-ink);
}

.esc-stepper__btn:disabled {
	opacity: .35;
	cursor: not-allowed;
}

@media (max-width: 899px) {
	.esc-search {
		grid-template-columns: 1fr 1fr;
		gap: .25rem;
		padding: .6rem;
	}

	.esc-search__field {
		padding: .6rem .75rem;
		border: 1px solid var(--esc-c-line);
	}

	.esc-search__field + .esc-search__field::before {
		display: none;
	}

	.esc-search__field--dest,
	.esc-search__field--guests,
	.esc-search__submit {
		grid-column: 1 / -1;
	}

	.esc-search__submit {
		margin: .25rem 0 0;
		min-height: 3.25rem;
	}

	.esc-guests__panel {
		left: 0;
		right: auto;
	}
}

/* --------------------------------------------------------------------------
   Cartes d'établissements
   -------------------------------------------------------------------------- */

.esc-grid--cards {
	display: grid;
	grid-template-columns: repeat(var(--esc-cols, 3), minmax(0, 1fr));
	gap: 2rem 1.5rem;
}

@media (max-width: 1023px) {
	.esc-grid--cards {
		grid-template-columns: repeat(min(var(--esc-cols, 3), 2), minmax(0, 1fr));
	}
}

@media (max-width: 599px) {
	.esc-grid--cards {
		grid-template-columns: minmax(0, 1fr);
		gap: 1.75rem;
	}
}

.esc-card {
	position: relative;
	display: flex;
	flex-direction: column;
	min-width: 0;
}

.esc-card__media {
	position: relative;
	display: block;
	overflow: hidden;
	aspect-ratio: 4 / 3;
	border-radius: var(--esc-r-l);
	background: var(--esc-c-accent-soft);
}

.esc-card__media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform .7s var(--esc-ease), opacity .52s var(--esc-ease);
}

.esc-card:hover .esc-card__media img {
	transform: scale(1.035);
}

.esc-card__body {
	display: flex;
	flex: 1;
	flex-direction: column;
	gap: .55rem;
	padding-top: .9rem;
}

.esc-card__meta {
	display: flex;
	align-items: center;
	gap: .55rem;
	margin: 0;
	font-size: .8125rem;
	color: var(--esc-c-muted);
}

.esc-card__title {
	margin: .1rem 0 0;
	font-family: var(--esc-f-title);
	font-size: 1.375rem;
	font-weight: 470;
	line-height: 1.2;
	letter-spacing: -.01em;
}

.esc-card__title a {
	color: var(--esc-c-ink);
	text-decoration: none;
}

/* Toute la carte est cliquable via le titre (le lien de l'image est masqué aux lecteurs d'écran). */
.esc-card__title a::after {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 1;
}

.esc-card__title a:focus-visible {
	outline: none;
}

.esc-card:has(.esc-card__title a:focus-visible) {
	outline: 2px solid var(--esc-c-accent);
	outline-offset: 6px;
	border-radius: var(--esc-r-l);
}

.esc-card__place {
	margin: .15rem 0 0;
	font-size: .9375rem;
	color: var(--esc-c-muted);
}

.esc-card__excerpt {
	margin: 0;
	font-size: .9375rem;
	color: var(--esc-c-muted);
}

.esc-card__amenities {
	display: flex;
	flex-wrap: wrap;
	gap: .4rem .9rem;
	margin: 0;
	padding: 0;
	list-style: none;
	font-size: .8125rem;
	color: var(--esc-c-muted);
}

.esc-card__amenities li {
	display: inline-flex;
	align-items: center;
	gap: .3rem;
}

.esc-card__foot {
	display: flex;
	flex-wrap: wrap;
	align-items: flex-end;
	justify-content: space-between;
	gap: .5rem;
	margin-top: auto;
	padding-top: .25rem;
}

.esc-card__price {
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	gap: .2rem .35rem;
	margin: 0 0 0 auto;
	text-align: right;
}

.esc-card__amount {
	font-size: 1.125rem;
	font-weight: 700;
	color: var(--esc-c-ink);
	font-variant-numeric: tabular-nums;
}

.esc-card__from,
.esc-card__per {
	font-size: .8125rem;
	color: var(--esc-c-muted);
}

.esc-card__scarce {
	margin: 0;
	font-size: .8125rem;
	font-weight: 600;
	color: var(--esc-c-danger);
}

.esc-badge {
	position: absolute;
	left: .75rem;
	top: .75rem;
	z-index: 2;
	padding: .3rem .6rem;
	border-radius: 999px;
	background: var(--esc-c-surface);
	color: var(--esc-c-ink);
	font-size: .75rem;
	font-weight: 700;
	box-shadow: var(--esc-shadow-s);
}

.esc-badge--demo {
	background: var(--esc-c-ink);
	color: var(--esc-c-surface);
}

.esc-badge + .esc-badge {
	left: auto;
	right: .75rem;
}

.esc-badge.esc-badge--video {
	top: auto;
	right: auto;
	bottom: .75rem;
	left: .75rem;
	display: inline-flex;
	align-items: center;
	gap: .3rem;
	background: rgba(0, 0, 0, .66);
	color: #fff;
	box-shadow: none;
}

.esc-stars {
	display: inline-flex;
	gap: 1px;
	color: var(--esc-c-ink);
}

.esc-rating {
	display: inline-flex;
	align-items: center;
	gap: .45rem;
	font-size: .8125rem;
	color: var(--esc-c-muted);
}

.esc-rating__score {
	padding: .2rem .45rem;
	border-radius: var(--esc-r-s);
	background: var(--esc-c-accent);
	color: #fff;
	font-weight: 700;
}

/* Liste (résultats de recherche) */
.esc-grid--list {
	display: grid;
	gap: 1rem;
}

.esc-card--list {
	display: grid;
	grid-template-columns: minmax(12rem, 18rem) minmax(0, 1fr);
	gap: 1.25rem;
	padding: .75rem;
	border: 1px solid var(--esc-c-line);
	border-radius: var(--esc-r-l);
	background: var(--esc-c-surface);
	transition: border-color .2s var(--esc-ease), box-shadow .2s var(--esc-ease);
}

.esc-card--list:hover {
	border-color: color-mix(in srgb, var(--esc-c-ink) 30%, var(--esc-c-line));
	box-shadow: var(--esc-shadow-s);
}

.esc-card--list .esc-card__media {
	aspect-ratio: auto;
	min-height: 12rem;
	border-radius: var(--esc-r-m);
}

.esc-card--list .esc-card__body {
	padding: .35rem .5rem .35rem 0;
}

.esc-card--list .esc-card__title {
	font-size: 1.5rem;
}

@media (max-width: 699px) {
	.esc-card--list {
		grid-template-columns: minmax(0, 1fr);
		padding: 0 0 1rem;
		gap: .25rem;
	}

	.esc-card--list .esc-card__media {
		aspect-ratio: 16 / 10;
		min-height: 0;
		border-radius: var(--esc-r-l) var(--esc-r-l) 0 0;
	}

	.esc-card--list .esc-card__body {
		padding: .6rem 1rem 0;
	}
}

/* Image manquante */
.esc-ph {
	display: grid;
	place-items: center;
	width: 100%;
	height: 100%;
	min-height: 8rem;
	background:
		radial-gradient(circle at 30% 20%, rgba(255, 255, 255, .55), transparent 55%),
		var(--esc-c-accent-soft);
	color: color-mix(in srgb, var(--esc-c-accent) 55%, transparent);
}

/* --------------------------------------------------------------------------
   Destinations
   -------------------------------------------------------------------------- */

.esc-dest {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(13rem, 1fr));
	gap: 1rem;
	margin: 0;
	padding: 0;
	list-style: none;
}

.esc-dest__item a {
	position: relative;
	display: block;
	overflow: hidden;
	aspect-ratio: 5 / 4;
	border-radius: var(--esc-r-l);
	background: var(--esc-c-accent-dark);
	color: #fff;
	text-decoration: none;
}

.esc-dest__item img,
.esc-dest__ph {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform .7s var(--esc-ease);
}

.esc-dest__ph {
	background:
		radial-gradient(120% 90% at 85% 0%, rgba(255, 255, 255, .16), transparent 60%),
		linear-gradient(160deg, var(--esc-c-accent) 0%, var(--esc-c-accent-dark) 100%);
}

.esc-dest__item a::after {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(to top, rgba(10, 18, 20, .82) 0%, rgba(10, 18, 20, .35) 45%, rgba(10, 18, 20, 0) 75%);
}

.esc-dest__item a:hover img {
	transform: scale(1.04);
}

.esc-dest__text {
	position: absolute;
	left: 1.1rem;
	right: 1.1rem;
	bottom: 1rem;
	z-index: 1;
	display: grid;
	gap: .15rem;
}

.esc-dest__name {
	font-family: var(--esc-f-title);
	font-size: 1.625rem;
	font-weight: 470;
	line-height: 1.1;
}

.esc-dest__count {
	font-size: .875rem;
	opacity: .9;
}

/* --------------------------------------------------------------------------
   Résultats de recherche
   -------------------------------------------------------------------------- */

.esc-results__search {
	margin-bottom: 1.75rem;
}

.esc-results__layout {
	display: grid;
	grid-template-columns: 17.5rem minmax(0, 1fr);
	gap: 2rem;
	align-items: start;
}

.esc-results__head {
	display: flex;
	flex-wrap: wrap;
	align-items: flex-end;
	justify-content: space-between;
	gap: 1rem;
	margin-bottom: 1.25rem;
}

.esc-results__title {
	margin: 0;
	font-family: var(--esc-f-title);
	font-size: clamp(1.625rem, 3vw, 2.125rem);
	font-weight: 460;
	line-height: 1.15;
}

.esc-results__sub {
	margin: .35rem 0 0;
	color: var(--esc-c-muted);
}

.esc-results__tools {
	display: flex;
	align-items: center;
	gap: .5rem;
}

.esc-results__filter-btn {
	display: none;
}

.esc-sort select {
	width: auto;
	min-width: 12rem;
}

.esc-filters-inline {
	position: sticky;
	top: calc(var(--esc-header-h, 4.25rem) + 1rem);
	max-height: calc(100vh - var(--esc-header-h, 4.25rem) - 2rem);
	overflow: auto;
	padding: 1.25rem;
	border: 1px solid var(--esc-c-line);
	border-radius: var(--esc-r-l);
	background: var(--esc-c-surface);
	scrollbar-width: thin;
}

.esc-filters__title {
	margin: 0 0 .5rem;
	font-family: var(--esc-f-text);
	font-size: 1.0625rem;
	font-weight: 700;
}

.esc-filter {
	margin: 0;
	padding: 1rem 0;
	border: 0;
	border-top: 1px solid var(--esc-c-line);
}

.esc-filter:first-child {
	border-top: 0;
}

.esc-filter legend {
	float: left;
	width: 100%;
	padding: 0;
	margin-bottom: .4rem;
	font-weight: 700;
	font-size: .9375rem;
}

.esc-filter legend + * {
	clear: both;
}

.esc-filter .esc-check label {
	flex-wrap: nowrap;
}

.esc-filter__range {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: .6rem;
}

.esc-filter__range label {
	display: grid;
	gap: .25rem;
	font-size: .8125rem;
	color: var(--esc-c-muted);
}

.esc-filter__help {
	margin: .5rem 0 0;
	font-size: .75rem;
	color: var(--esc-c-muted);
}

.esc-filters__foot {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	padding-top: 1rem;
	border-top: 1px solid var(--esc-c-line);
}

.esc-filters-inline .esc-filters__foot .esc-btn {
	display: none;
}

.no-js .esc-filters-inline .esc-filters__foot .esc-btn,
html:not(.js) .esc-filters-inline .esc-filters__foot .esc-btn {
	display: inline-flex;
}

.esc-filters__head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding-bottom: .5rem;
}

.esc-filters__head h2 {
	margin: 0;
	font-size: 1.375rem;
}

/* Fenêtres modales (filtres, visionneuse) */
.esc-filters-dialog {
	width: min(32rem, 100vw);
	max-width: 100vw;
	max-height: 100dvh;
	height: 100dvh;
	margin: 0 0 0 auto;
	padding: 1.25rem;
	border: 0;
	background: var(--esc-c-surface);
	color: var(--esc-c-ink);
	overflow: auto;
}

.esc-filters-dialog[open] {
	animation: esc-slide-in .26s var(--esc-ease);
}

.esc-filters-dialog .esc-filters__foot {
	position: sticky;
	bottom: -1.25rem;
	margin: 0 -1.25rem -1.25rem;
	padding: 1rem 1.25rem;
	background: var(--esc-c-surface);
}

dialog::backdrop {
	background: rgba(12, 18, 20, .55);
	-webkit-backdrop-filter: blur(2px);
	backdrop-filter: blur(2px);
}

html.esc-modal-open {
	overflow: hidden;
}

@media (max-width: 899px) {
	.esc-results__layout {
		grid-template-columns: minmax(0, 1fr);
	}

	.esc-results__filters .esc-filters-inline {
		display: none;
	}

	.esc-results__filter-btn {
		display: inline-flex;
	}

	.esc-results__tools {
		width: 100%;
	}

	.esc-sort {
		flex: 1;
	}

	.esc-sort select {
		min-width: 0;
	}
}

/* Pagination */
.esc-pages {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: center;
	gap: .5rem;
	margin-top: 2rem;
}

.esc-pages ol {
	display: flex;
	gap: .3rem;
	margin: 0;
	padding: 0;
	list-style: none;
}

.esc-pages a,
.esc-pages span[aria-current] {
	display: inline-grid;
	place-items: center;
	min-width: 2.75rem;
	height: 2.75rem;
	padding: 0 .5rem;
	border-radius: var(--esc-r-m);
	color: var(--esc-c-ink);
	text-decoration: none;
	font-weight: 600;
}

.esc-pages a:hover {
	background: var(--esc-c-surface);
}

.esc-pages span[aria-current] {
	background: var(--esc-c-ink);
	color: var(--esc-c-surface);
}

.esc-pages__nav {
	display: inline-flex !important;
	gap: .3rem;
}

.esc-pages__gap {
	display: inline-grid;
	place-items: center;
	min-width: 1.5rem;
	color: var(--esc-c-muted);
}

/* États vides */
.esc-empty {
	display: grid;
	justify-items: center;
	gap: .75rem;
	padding: 3rem 1.5rem;
	border: 1px dashed var(--esc-c-line);
	border-radius: var(--esc-r-l);
	background: var(--esc-c-surface);
	text-align: center;
	color: var(--esc-c-muted);
}

.esc-empty p {
	max-width: 34rem;
	margin: 0;
	font-size: 1.0625rem;
	color: var(--esc-c-ink);
}

.esc-empty__actions {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: .5rem;
	margin-top: .5rem;
}

.esc-editor-note {
	padding: .9rem 1rem;
	border: 1px dashed var(--esc-c-line);
	border-radius: var(--esc-r-m);
	color: var(--esc-c-muted);
	font-size: .875rem;
}

/* --------------------------------------------------------------------------
   Fil d'Ariane
   -------------------------------------------------------------------------- */

.esc-crumbs ol {
	display: flex;
	flex-wrap: wrap;
	gap: .35rem;
	margin: 0;
	padding: 0;
	list-style: none;
	font-size: .8125rem;
	color: var(--esc-c-muted);
}

.esc-crumbs li + li::before {
	content: "/";
	margin-right: .35rem;
	color: var(--esc-c-line);
}

.esc-crumbs a {
	color: var(--esc-c-muted);
	text-decoration: none;
}

.esc-crumbs a:hover {
	color: var(--esc-c-ink);
	text-decoration: underline;
}

/* --------------------------------------------------------------------------
   Fiche d'un établissement
   -------------------------------------------------------------------------- */

.esc-estab-head__meta {
	display: flex;
	align-items: center;
	gap: .6rem;
	margin: 0 0 .4rem;
	font-size: .875rem;
	color: var(--esc-c-muted);
}

.esc-estab-head__title {
	margin: 0;
	font-family: var(--esc-f-title);
	font-size: clamp(2rem, 4.5vw, 3.25rem);
	font-weight: 450;
	line-height: 1.05;
	letter-spacing: -.02em;
}

.esc-estab-head__place {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: .4rem;
	margin: .7rem 0 0;
	color: var(--esc-c-muted);
}

.esc-estab-head .esc-rating {
	margin-top: .5rem;
}

.esc-demo-note {
	display: flex;
	align-items: flex-start;
	gap: .5rem;
	margin: 0 0 1rem;
	padding: .65rem .9rem;
	border-radius: var(--esc-r-m);
	background: var(--esc-c-accent-soft);
	color: var(--esc-c-accent-dark);
	font-size: .875rem;
}

/* Galerie en mosaïque */
.esc-gallery {
	position: relative;
	display: grid;
	gap: .5rem;
	overflow: hidden;
	border-radius: var(--esc-r-l);
	height: clamp(16rem, 48vw, 32rem);
}

.esc-gallery--1 {
	grid-template-columns: 1fr;
}

.esc-gallery--2 {
	grid-template-columns: 2fr 1fr;
}

.esc-gallery--3 {
	grid-template-columns: 2fr 1fr;
	grid-template-rows: 1fr 1fr;
}

.esc-gallery--4,
.esc-gallery--5 {
	grid-template-columns: 2fr 1fr 1fr;
	grid-template-rows: 1fr 1fr;
}

.esc-gallery--3 .esc-gallery__tile:first-child,
.esc-gallery--4 .esc-gallery__tile:first-child,
.esc-gallery--5 .esc-gallery__tile:first-child {
	grid-row: 1 / 3;
}

.esc-gallery--4 .esc-gallery__tile:nth-child(4) {
	grid-column: 2 / 4;
}

.esc-gallery__tile {
	position: relative;
	display: block;
	overflow: hidden;
	padding: 0;
	border: 0;
	background: var(--esc-c-accent-soft);
	cursor: zoom-in;
}

.esc-gallery__tile img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform .7s var(--esc-ease), filter .3s var(--esc-ease), opacity .52s var(--esc-ease);
}

.esc-gallery__tile:hover img {
	transform: scale(1.03);
	filter: brightness(.94);
}

.esc-gallery__all {
	position: absolute;
	right: 1rem;
	bottom: 1rem;
}

.esc-gallery--empty {
	height: clamp(12rem, 30vw, 20rem);
}

@media (max-width: 699px) {
	.esc-gallery {
		grid-template-columns: 1fr !important;
		grid-template-rows: 1fr !important;
		height: 62vw;
		margin-inline: calc(-1 * clamp(1rem, 4vw, 2.5rem));
		border-radius: 0;
	}

	.esc-gallery__tile:not(:first-child) {
		display: none;
	}
}

/* Visionneuse */
.esc-lightbox {
	width: 100vw;
	max-width: 100vw;
	height: 100dvh;
	max-height: 100dvh;
	margin: 0;
	padding: 0;
	border: 0;
	background: #0c1214;
	color: #fff;
}

.esc-lightbox[open] {
	display: grid;
	grid-template-rows: auto 1fr;
	animation: esc-fade .2s var(--esc-ease);
}

.esc-lightbox__bar {
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: .75rem 1rem;
	font-size: .875rem;
}

.esc-lightbox__bar .esc-icon-btn:hover {
	background: rgba(255, 255, 255, .12);
}

.esc-lightbox__stage {
	display: grid;
	place-items: center;
	min-height: 0;
	padding: 0 4.5rem 1.5rem;
}

.esc-lightbox__slide {
	display: grid;
	gap: .75rem;
	justify-items: center;
	max-height: 100%;
	margin: 0;
}

.esc-lightbox__slide img {
	max-width: 100%;
	max-height: calc(100dvh - 7rem);
	width: auto;
	height: auto;
	object-fit: contain;
	border-radius: var(--esc-r-s);
	opacity: 1 !important;
}

.esc-lightbox__slide figcaption {
	font-size: .875rem;
	opacity: .8;
}

.esc-lightbox__nav {
	position: absolute;
	top: 50%;
	display: grid;
	place-items: center;
	width: 3rem;
	height: 3rem;
	border: 0;
	border-radius: 50%;
	background: rgba(255, 255, 255, .1);
	color: #fff;
	transform: translateY(-50%);
	cursor: pointer;
}

.esc-lightbox__nav:hover {
	background: rgba(255, 255, 255, .2);
}

.esc-lightbox__nav--prev {
	left: 1rem;
}

.esc-lightbox__nav--next {
	right: 1rem;
}

@media (max-width: 699px) {
	.esc-lightbox__stage {
		padding: 0 0 4.5rem;
	}

	.esc-lightbox__nav {
		top: auto;
		bottom: 1rem;
		transform: none;
	}

	.esc-lightbox__nav--prev {
		left: calc(50% - 3.5rem);
	}

	.esc-lightbox__nav--next {
		right: calc(50% - 3.5rem);
	}
}

/* Sections de la fiche */
.esc-section > h2,
.esc-section-title {
	margin: 0 0 1.1rem;
	font-family: var(--esc-f-title);
	font-size: clamp(1.5rem, 2.6vw, 2rem);
	font-weight: 460;
}

.esc-amenities ul,
.esc-amenities__list {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(12rem, 1fr));
	gap: .75rem 1rem;
	margin: 0;
	padding: 0;
	list-style: none;
}

.esc-amenities li,
.esc-amenities__list li {
	display: flex;
	align-items: center;
	gap: .6rem;
}

.esc-amenities .esc-icon,
.esc-amenities__list .esc-icon {
	color: var(--esc-c-accent);
}

/* Chambres et disponibilités */
.esc-avail {
	display: flex;
	flex-wrap: wrap;
	align-items: flex-end;
	gap: .75rem;
	margin-bottom: 1rem;
	padding: 1rem;
	border-radius: var(--esc-r-l);
	background: var(--esc-c-accent-soft);
}

.esc-avail__field {
	display: grid;
	gap: .3rem;
	flex: 1 1 10rem;
}

.esc-avail__field--n {
	flex: 0 1 6.5rem;
}

.esc-rooms__intro {
	margin: 0 0 .35rem;
	color: var(--esc-c-muted);
}

.esc-rooms__pay {
	display: flex;
	align-items: center;
	gap: .4rem;
	margin: 0 0 1rem;
	font-size: .875rem;
	color: var(--esc-c-muted);
}

.esc-rooms__list {
	display: grid;
	gap: .9rem;
}

.esc-room {
	display: grid;
	grid-template-columns: 13rem minmax(0, 1fr) 15rem;
	gap: 1.25rem;
	padding: .75rem;
	border: 1px solid var(--esc-c-line);
	border-radius: var(--esc-r-l);
	background: var(--esc-c-surface);
}

.esc-room__media {
	display: block;
	overflow: hidden;
	aspect-ratio: 4 / 3;
	border-radius: var(--esc-r-m);
	background: var(--esc-c-accent-soft);
}

.esc-room__media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.esc-room__body {
	padding-block: .25rem;
}

.esc-room__title {
	margin: 0 0 .35rem;
	font-family: var(--esc-f-title);
	font-size: 1.375rem;
	font-weight: 470;
}

.esc-room__title a {
	color: var(--esc-c-ink);
	text-decoration: none;
}

.esc-room__title a:hover {
	text-decoration: underline;
	text-underline-offset: 3px;
}

.esc-room__facts {
	margin: 0 0 .6rem;
	font-size: .9375rem;
	color: var(--esc-c-muted);
}

.esc-room__features {
	display: flex;
	flex-wrap: wrap;
	gap: .4rem .9rem;
	margin: 0;
	padding: 0;
	list-style: none;
	font-size: .8125rem;
	color: var(--esc-c-muted);
}

.esc-room__features li {
	display: inline-flex;
	align-items: center;
	gap: .3rem;
}

.esc-room__aside {
	display: flex;
	flex-direction: column;
	align-items: flex-end;
	justify-content: space-between;
	gap: .75rem;
	padding: .35rem .35rem .35rem 1.25rem;
	border-left: 1px solid var(--esc-c-line);
	text-align: right;
}

.esc-room__price {
	display: grid;
	gap: .15rem;
	margin: 0;
}

.esc-room__price strong {
	font-size: 1.375rem;
	font-variant-numeric: tabular-nums;
}

.esc-room__price span,
.esc-room__price del {
	font-size: .8125rem;
	color: var(--esc-c-muted);
}

.esc-room__unavailable,
.esc-room__hint {
	margin: 0;
	font-size: .875rem;
	color: var(--esc-c-muted);
}

.esc-room__qty {
	display: flex;
	align-items: center;
	gap: .5rem;
	font-size: .875rem;
}

.esc-room__qty select {
	width: 5.5rem;
}

.esc-rooms__bar {
	position: sticky;
	bottom: 0;
	z-index: 20;
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	margin-top: 1rem;
	padding: .9rem 1.1rem;
	border: 1px solid var(--esc-c-line);
	border-radius: var(--esc-r-l);
	background: var(--esc-c-surface);
	box-shadow: var(--esc-shadow);
	transition: border-color .2s var(--esc-ease);
}

.esc-rooms__bar.is-active {
	border-color: var(--esc-c-accent);
}

.esc-rooms__total {
	margin: 0;
	font-weight: 600;
}

@media (max-width: 899px) {
	.esc-room {
		grid-template-columns: 9rem minmax(0, 1fr);
	}

	.esc-room__aside {
		grid-column: 1 / -1;
		flex-direction: row;
		flex-wrap: wrap;
		align-items: center;
		padding: .75rem 0 0;
		border-left: 0;
		border-top: 1px solid var(--esc-c-line);
		text-align: left;
	}
}

@media (max-width: 499px) {
	.esc-room {
		grid-template-columns: minmax(0, 1fr);
	}

	.esc-room__media {
		aspect-ratio: 16 / 9;
	}

	.esc-rooms__bar {
		margin-inline: calc(-1 * clamp(1rem, 4vw, 2.5rem));
		border-radius: 0;
		border-inline: 0;
	}

	.esc-rooms__bar .esc-btn {
		width: 100%;
	}
}

/* Bon à savoir */
.esc-info__grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(17rem, 1fr));
	gap: 1rem;
}

.esc-info__item {
	display: flex;
	gap: .9rem;
	padding: 1.15rem 1.2rem;
	border: 1px solid var(--esc-c-line);
	border-radius: var(--esc-r-l);
	background: var(--esc-c-surface);
}

.esc-info__item > .esc-icon {
	margin-top: .15rem;
	color: var(--esc-c-accent);
}

.esc-info__item h3 {
	margin: 0 0 .4rem;
	font-family: var(--esc-f-text);
	font-size: 1rem;
	font-weight: 700;
	letter-spacing: 0;
}

.esc-info__item p {
	margin: 0 0 .5rem;
	font-size: .9375rem;
	color: var(--esc-c-muted);
}

.esc-fees {
	display: grid;
	gap: .35rem;
	margin: 0;
	padding: 0;
	list-style: none;
	font-size: .9375rem;
}

.esc-fees li {
	display: grid;
	grid-template-columns: 1fr auto;
	gap: 1rem;
	color: var(--esc-c-muted);
}

.esc-contact {
	display: grid;
	gap: .4rem;
}

.esc-contact a {
	display: inline-flex;
	align-items: center;
	gap: .45rem;
	color: var(--esc-c-ink);
}

.esc-map__frame {
	display: grid;
	place-items: center;
	gap: .75rem;
	overflow: hidden;
	aspect-ratio: 21 / 9;
	max-height: 26rem;
	padding: 1rem;
	border-radius: var(--esc-r-l);
	background: var(--esc-c-accent-soft);
	text-align: center;
	color: var(--esc-c-muted);
}

.esc-map__frame iframe {
	width: 100%;
	height: 100%;
	border: 0;
	border-radius: var(--esc-r-m);
}

/* Vidéos : aperçu à l'image de la fiche, lecteur chargé au clic */
.esc-video__list {
	display: grid;
	gap: 1.25rem;
}

.esc-video--one .esc-video__list {
	max-width: 52rem;
}

.esc-video--many .esc-video__list {
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 22rem), 1fr));
}

.esc-video__item {
	margin: 0;
}

.esc-video__item figcaption {
	margin-top: .5rem;
	font-size: .95rem;
	color: var(--esc-c-muted);
}

.esc-video__frame {
	position: relative;
	display: grid;
	place-items: center;
	overflow: hidden;
	aspect-ratio: 16 / 9;
	border-radius: var(--esc-r-l);
	background: var(--esc-c-ink);
}

.esc-video__poster {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	opacity: .72;
	transition: opacity .2s ease;
}

.esc-video__play {
	position: relative;
	display: inline-flex;
	align-items: center;
	gap: .8rem;
	padding: .7rem 1.2rem .7rem .7rem;
	border: 0;
	border-radius: 999px;
	background: rgba(255, 255, 255, .94);
	color: var(--esc-c-ink);
	font: inherit;
	font-weight: 600;
	text-align: left;
	cursor: pointer;
	box-shadow: 0 6px 24px rgba(0, 0, 0, .25);
}

.esc-video__icon {
	display: grid;
	place-items: center;
	color: var(--esc-c-accent);
}

.esc-video__label small {
	display: block;
	font-weight: 400;
	font-size: .8rem;
	color: var(--esc-c-muted);
}

.esc-video__frame:hover .esc-video__poster {
	opacity: .85;
}

.esc-video__play:focus-visible {
	outline: 3px solid var(--esc-c-accent);
	outline-offset: 3px;
}

.esc-video__frame noscript {
	position: absolute;
	bottom: 1rem;
}

.esc-video__frame iframe {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	border: 0;
}

.esc-video__file {
	display: block;
	width: 100%;
	aspect-ratio: 16 / 9;
	border-radius: var(--esc-r-l);
	background: var(--esc-c-ink);
}

.esc-video__note {
	margin-top: .75rem;
	font-size: .9rem;
}

/* Fiche d'une chambre */
.esc-facts {
	display: grid;
	gap: .7rem;
	margin: 0 0 1.5rem;
	padding: 0;
	list-style: none;
}

.esc-facts li {
	display: flex;
	align-items: center;
	gap: .65rem;
}

.esc-facts .esc-icon {
	color: var(--esc-c-accent);
}

.esc-room-details h2 {
	margin: 1.5rem 0 .75rem;
	font-size: 1.25rem;
}

.esc-room-details__cta {
	display: grid;
	gap: .75rem;
	margin-top: 1.5rem;
	padding: 1.25rem;
	border: 1px solid var(--esc-c-line);
	border-radius: var(--esc-r-l);
	background: var(--esc-c-surface);
}

.esc-room-details__cta p {
	margin: 0;
}

/* --------------------------------------------------------------------------
   Tunnel de réservation
   -------------------------------------------------------------------------- */

.esc-steps ol {
	display: flex;
	flex-wrap: wrap;
	gap: .5rem 1.5rem;
	margin: 0 0 1.25rem;
	padding: 0;
	list-style: none;
	counter-reset: esc-step;
	font-size: .875rem;
	color: var(--esc-c-muted);
}

.esc-steps li {
	display: flex;
	align-items: center;
	gap: .5rem;
	counter-increment: esc-step;
}

.esc-steps li::before {
	content: counter(esc-step);
	display: grid;
	place-items: center;
	width: 1.6rem;
	height: 1.6rem;
	border: 1px solid var(--esc-c-line);
	border-radius: 50%;
	font-size: .75rem;
	font-weight: 700;
}

.esc-steps li.is-done::before {
	content: "✓";
	border-color: var(--esc-c-accent);
	background: var(--esc-c-accent);
	color: #fff;
}

.esc-steps li[aria-current="step"] {
	color: var(--esc-c-ink);
	font-weight: 700;
}

.esc-steps li[aria-current="step"]::before {
	border-color: var(--esc-c-ink);
	background: var(--esc-c-ink);
	color: var(--esc-c-surface);
}

.esc-checkout__title {
	margin: 0 0 1.5rem;
	font-family: var(--esc-f-title);
	font-size: clamp(1.875rem, 3.6vw, 2.75rem);
	font-weight: 450;
}

.esc-checkout__layout {
	display: grid;
	grid-template-columns: minmax(0, 1fr) 24rem;
	gap: 2rem;
	align-items: start;
}

.esc-checkout__summary {
	position: sticky;
	top: calc(var(--esc-header-h, 4.25rem) + 1rem);
}

@media (max-width: 999px) {
	.esc-checkout__layout {
		grid-template-columns: minmax(0, 1fr);
	}

	.esc-checkout__summary {
		position: static;
		order: -1;
	}
}

.esc-panel {
	margin-bottom: 1.25rem;
	padding: 1.4rem 1.5rem;
	border: 1px solid var(--esc-c-line);
	border-radius: var(--esc-r-l);
	background: var(--esc-c-surface);
}

.esc-panel > h2 {
	margin: 0 0 1rem;
	font-family: var(--esc-f-text);
	font-size: 1.125rem;
	font-weight: 700;
	letter-spacing: 0;
}

.esc-panel__note {
	margin: -.25rem 0 1rem;
	font-size: .9375rem;
	color: var(--esc-c-muted);
}

.esc-panel--terms .esc-check label {
	display: block;
}

.esc-checkout__submit {
	display: grid;
	gap: .6rem;
	justify-items: start;
}

@media (max-width: 599px) {
	.esc-panel {
		padding: 1.1rem 1rem;
	}

	.esc-checkout__submit .esc-btn {
		width: 100%;
	}
}

/* Récapitulatif */
.esc-summary {
	padding: 1.25rem;
	border: 1px solid var(--esc-c-line);
	border-radius: var(--esc-r-l);
	background: var(--esc-c-surface);
	transition: opacity .2s var(--esc-ease);
}

.esc-summary[aria-busy="true"] {
	opacity: .55;
}

.esc-summary__estab {
	display: flex;
	align-items: center;
	gap: .85rem;
	padding-bottom: 1rem;
	border-bottom: 1px solid var(--esc-c-line);
}

.esc-summary__thumb,
.esc-summary__estab .esc-ph {
	width: 4.5rem !important;
	height: 4.5rem !important;
	min-height: 0;
	flex: none;
	border-radius: var(--esc-r-m);
	object-fit: cover;
}

.esc-summary__name {
	margin: 0;
	font-family: var(--esc-f-title);
	font-size: 1.25rem;
	line-height: 1.2;
}

.esc-summary__place {
	margin: .2rem 0 0;
	font-size: .875rem;
	color: var(--esc-c-muted);
}

.esc-summary__stay {
	display: grid;
	gap: .6rem;
	margin: 1rem 0;
}

.esc-summary__stay div {
	display: grid;
	grid-template-columns: 5.5rem 1fr;
	gap: .5rem;
}

.esc-summary__stay dt {
	color: var(--esc-c-muted);
	font-size: .875rem;
}

.esc-summary__stay dd {
	margin: 0;
	font-weight: 600;
	font-size: .9375rem;
}

.esc-summary__avg {
	margin: 0 0 .75rem;
	padding: 0;
	list-style: none;
	font-size: .8125rem;
	color: var(--esc-c-muted);
}

.esc-summary__lines {
	display: grid;
	gap: .45rem;
	margin: 0;
	padding: .9rem 0;
	border-top: 1px solid var(--esc-c-line);
	list-style: none;
}

.esc-summary__lines li {
	display: flex;
	justify-content: space-between;
	gap: 1rem;
	font-size: .9375rem;
	font-variant-numeric: tabular-nums;
}

.esc-summary__lines li.is-sub {
	font-size: .875rem;
	color: var(--esc-c-muted);
}

.esc-summary__lines li.is-discount {
	color: var(--esc-c-success);
	font-weight: 600;
}

.esc-summary__lines li.is-due {
	font-weight: 700;
}

.esc-summary__lines li.is-total {
	font-weight: 700;
	font-size: 1.0625rem;
}

.esc-summary__total {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	margin: 0;
	padding: 1rem 0;
	border-top: 1px solid var(--esc-c-ink);
	font-size: 1.0625rem;
	font-weight: 700;
}

.esc-summary__total strong {
	font-size: 1.5rem;
	font-variant-numeric: tabular-nums;
}

.esc-summary__due:empty {
	display: none;
}

.esc-summary__cancel {
	display: flex;
	gap: .55rem;
	margin-top: .5rem;
	padding: .8rem .9rem;
	border-radius: var(--esc-r-m);
	background: var(--esc-c-accent-soft);
	color: var(--esc-c-accent-dark);
	font-size: .875rem;
}

.esc-summary__cancel p {
	margin: 0;
}

/* --------------------------------------------------------------------------
   Réservation (confirmation, compte, lien sécurisé)
   -------------------------------------------------------------------------- */

.esc-booking__head {
	margin-bottom: 1.5rem;
}

.esc-booking__title {
	margin: .5rem 0 .4rem;
	font-family: var(--esc-f-title);
	font-size: clamp(1.875rem, 4vw, 2.75rem);
	font-weight: 450;
}

.esc-booking__help {
	max-width: 44rem;
	margin: 0;
	color: var(--esc-c-muted);
}

.esc-booking__ref {
	margin: .9rem 0 0;
}

.esc-booking__ref strong {
	font-size: 1.125rem;
	letter-spacing: .04em;
}

.esc-booking__deadline {
	display: flex;
	align-items: center;
	gap: .5rem;
	margin: .9rem 0 0;
	padding: .7rem .9rem;
	border-radius: var(--esc-r-m);
	background: #FFF4E0;
	color: var(--esc-c-pending);
	font-weight: 600;
	font-size: .9375rem;
}

.esc-booking__grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(19rem, 1fr));
	gap: 1rem;
}

.esc-booking__grid .esc-panel {
	margin: 0;
}

.esc-booking__dl {
	display: grid;
	gap: .9rem;
	margin: 0;
}

.esc-booking__dl dt {
	font-size: .8125rem;
	font-weight: 700;
	color: var(--esc-c-muted);
}

.esc-booking__dl dd {
	margin: .15rem 0 0;
}

.esc-booking__actions {
	display: flex;
	flex-wrap: wrap;
	align-items: flex-start;
	gap: .75rem;
	margin-top: 1.25rem;
}

.esc-cancel {
	position: relative;
}

.esc-cancel > summary {
	list-style: none;
}

.esc-cancel > summary::-webkit-details-marker {
	display: none;
}

.esc-cancel__panel {
	margin-top: .75rem;
	padding: 1.1rem;
	width: min(28rem, 92vw);
	border: 1px solid var(--esc-c-line);
	border-radius: var(--esc-r-l);
	background: var(--esc-c-surface);
	box-shadow: var(--esc-shadow);
}

.esc-status {
	display: inline-flex;
	align-items: center;
	gap: .4rem;
	padding: .3rem .7rem;
	border-radius: 999px;
	font-size: .8125rem;
	font-weight: 700;
	white-space: nowrap;
}

.esc-status::before {
	content: "";
	width: .5rem;
	height: .5rem;
	border-radius: 50%;
	background: currentColor;
}

.esc-status--success {
	background: #E6F2EA;
	color: var(--esc-c-success);
}

.esc-status--pending {
	background: #FFF4E0;
	color: var(--esc-c-pending);
}

.esc-status--muted {
	background: #ECEFEE;
	color: var(--esc-c-muted);
}

.esc-status--danger {
	background: #FBEAE8;
	color: var(--esc-c-danger);
}

/* --------------------------------------------------------------------------
   Comptes
   -------------------------------------------------------------------------- */

.esc-auth {
	max-width: 28rem;
	margin: 0 auto;
	padding: 2rem 0 1rem;
}

.esc-auth h1 {
	margin: 0 0 .5rem;
	font-family: var(--esc-f-title);
	font-size: clamp(1.875rem, 4vw, 2.5rem);
	font-weight: 450;
}

.esc-auth__intro {
	margin: 0 0 1.5rem;
	color: var(--esc-c-muted);
}

.esc-auth__form {
	margin-top: 1.25rem;
}

.esc-auth__form .esc-btn--block {
	margin-top: .75rem;
}

.esc-auth__links {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	gap: .5rem;
	margin: 1rem 0 0;
	font-size: .9375rem;
}

.esc-auth__alt {
	margin: 1.25rem 0 0;
	padding-top: 1.25rem;
	border-top: 1px solid var(--esc-c-line);
	font-size: .9375rem;
	color: var(--esc-c-muted);
}

.esc-auth .esc-notice {
	margin: 1rem 0;
}

.esc-account-head h1 {
	margin: 0 0 1rem;
	font-family: var(--esc-f-title);
	font-size: clamp(1.875rem, 4vw, 2.5rem);
	font-weight: 450;
}

.esc-tabs {
	display: flex;
	gap: .25rem;
	margin-bottom: 1.25rem;
	border-bottom: 1px solid var(--esc-c-line);
	overflow-x: auto;
}

.esc-tabs a {
	padding: .75rem 1rem;
	border-bottom: 2px solid transparent;
	color: var(--esc-c-muted);
	font-weight: 600;
	text-decoration: none;
	white-space: nowrap;
}

.esc-tabs a[aria-current="page"] {
	border-bottom-color: var(--esc-c-ink);
	color: var(--esc-c-ink);
}

.esc-blist {
	display: grid;
	margin: 0;
	padding: 0;
	list-style: none;
}

.esc-blist li + li {
	border-top: 1px solid var(--esc-c-line);
}

.esc-blist a {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: .75rem;
	padding: 1rem .25rem;
	color: var(--esc-c-ink);
	text-decoration: none;
}

.esc-blist a:hover strong {
	text-decoration: underline;
	text-underline-offset: 3px;
}

.esc-blist__main {
	display: grid;
	gap: .2rem;
}

.esc-blist__main span {
	font-size: .875rem;
	color: var(--esc-c-muted);
}

.esc-blist__side {
	display: flex;
	align-items: center;
	gap: 1rem;
	font-weight: 600;
	font-variant-numeric: tabular-nums;
}

.esc-back a {
	display: inline-flex;
	align-items: center;
	gap: .3rem;
	color: var(--esc-c-muted);
	text-decoration: none;
	font-size: .9375rem;
}

.esc-inline-actions {
	display: flex;
	flex-wrap: wrap;
	gap: .5rem;
}

/* --------------------------------------------------------------------------
   Accès aux comptes (en-tête)
   -------------------------------------------------------------------------- */

.esc-account {
	display: flex;
	align-items: center;
	gap: .75rem;
	font-size: .9375rem;
	font-weight: 500;
}

.esc-account a {
	color: var(--esc-c-ink);
	text-decoration: none;
}

.esc-account__link {
	display: inline-flex;
	align-items: center;
	gap: .4rem;
	min-height: 2.75rem;
}

.esc-account__link:hover span {
	text-decoration: underline;
	text-underline-offset: 3px;
}

.esc-account__register {
	display: inline-flex;
	align-items: center;
	min-height: 2.5rem;
	padding: 0 1rem;
	border-radius: 999px;
	background: var(--esc-c-ink);
	color: var(--esc-c-surface) !important;
	transition: background-color .16s var(--esc-ease);
}

.esc-account__register:hover {
	background: var(--esc-c-accent);
}

@media (max-width: 781px) {
	.esc-account__link span,
	.esc-account__register {
		display: none;
	}
}

.esc-account__menu {
	position: relative;
}

.esc-account__menu > summary {
	list-style: none;
	display: inline-flex;
	align-items: center;
	gap: .5rem;
	min-height: 2.75rem;
	padding: .25rem .5rem .25rem .25rem;
	border: 1px solid var(--esc-c-line);
	border-radius: 999px;
	background: var(--esc-c-surface);
	cursor: pointer;
	user-select: none;
}

.esc-account__menu > summary::-webkit-details-marker {
	display: none;
}

.esc-account__menu > summary:hover {
	border-color: var(--esc-c-muted);
}

.esc-account__avatar {
	display: inline-grid;
	place-items: center;
	width: 2rem;
	height: 2rem;
	border-radius: 50%;
	background: var(--esc-c-accent-soft);
	color: var(--esc-c-accent-dark);
	font-weight: 700;
	font-size: .875rem;
}

.esc-account__name {
	max-width: 9rem;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

@media (max-width: 781px) {
	.esc-account__name {
		display: none;
	}
}

.esc-account__menu > summary .esc-icon {
	transition: transform .2s var(--esc-ease);
}

.esc-account__menu[open] > summary .esc-icon {
	transform: rotate(180deg);
}

.esc-account__menu > ul {
	position: absolute;
	right: 0;
	top: calc(100% + .5rem);
	z-index: 60;
	min-width: 15rem;
	margin: 0;
	padding: .4rem;
	list-style: none;
	background: var(--esc-c-surface);
	border: 1px solid var(--esc-c-line);
	border-radius: var(--esc-r-m);
	box-shadow: var(--esc-shadow);
	animation: esc-pop .18s var(--esc-ease);
	transform-origin: top right;
}

.esc-account__menu > ul a {
	display: flex;
	align-items: center;
	gap: .65rem;
	padding: .65rem .75rem;
	border-radius: var(--esc-r-s);
}

.esc-account__menu > ul a:hover {
	background: var(--esc-c-bg);
}

.esc-account__menu > ul li:last-child {
	border-top: 1px solid var(--esc-c-line);
	margin-top: .3rem;
	padding-top: .3rem;
}

/* --------------------------------------------------------------------------
   Messages
   -------------------------------------------------------------------------- */

.esc-notice {
	display: flex;
	gap: .75rem;
	align-items: flex-start;
	margin-bottom: 1rem;
	padding: 1rem 1.15rem;
	border: 1px solid var(--esc-c-line);
	border-left: 3px solid var(--esc-c-accent);
	border-radius: var(--esc-r-m);
	background: var(--esc-c-surface);
}

.esc-notice[hidden] {
	display: none;
}

.esc-notice p {
	margin: 0;
}

.esc-notice--error {
	border-left-color: var(--esc-c-danger);
}

.esc-notice--success {
	border-left-color: var(--esc-c-success);
}

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

@keyframes esc-pop {
	from { opacity: 0; transform: translateY(-4px) scale(.98); }
	to { opacity: 1; transform: none; }
}

@keyframes esc-fade {
	from { opacity: 0; }
	to { opacity: 1; }
}

@keyframes esc-slide-in {
	from { transform: translateX(24px); opacity: 0; }
	to { transform: none; opacity: 1; }
}

@media (prefers-reduced-motion: reduce) {
	.esc-account__menu > ul,
	.esc-guests__panel,
	.esc-filters-dialog[open],
	.esc-lightbox[open] {
		animation: none;
	}

	.esc-card__media img,
	.esc-gallery__tile img,
	.esc-dest__item img {
		transition: none;
	}
}

/* --------------------------------------------------------------------------
   Impression (récapitulatif de réservation)
   -------------------------------------------------------------------------- */

@media print {
	.esc-header,
	.esc-footer,
	header.wp-block-template-part,
	footer.wp-block-template-part,
	.esc-booking__actions,
	.esc-back,
	.esc-tabs,
	#wpadminbar {
		display: none !important;
	}

	.esc-panel,
	.esc-summary {
		border-color: #999;
		break-inside: avoid;
	}

	body {
		background: #fff;
	}
}

@media (max-width: 599px) {
	.esc-dest {
		grid-template-columns: 1fr 1fr;
		gap: .6rem;
	}

	.esc-dest__item a {
		aspect-ratio: 1;
	}

	.esc-dest__name {
		font-size: 1.25rem;
	}

	.esc-dest__text {
		left: .8rem;
		right: .8rem;
		bottom: .75rem;
	}
}

/* --------------------------------------------------------------------------
   Espace propriétaire
   -------------------------------------------------------------------------- */

.esc-desk {
	display: grid;
	grid-template-columns: 15.5rem minmax(0, 1fr);
	gap: 2rem;
	align-items: start;
}

.esc-desk__side,
.esc-desk__main {
	min-width: 0;
}

.esc-desk__side {
	position: sticky;
	top: 1.25rem;
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: 1rem;
}

.esc-desk__estab {
	display: grid;
	gap: .4rem;
	justify-items: start;
	margin: 0;
	font-size: 1.0625rem;
	line-height: 1.3;
}

.esc-desk__nav ul {
	display: grid;
	gap: .15rem;
	margin: 0;
	padding: 0;
	list-style: none;
}

.esc-desk__nav a {
	display: flex;
	align-items: center;
	gap: .7rem;
	min-height: 2.75rem;
	padding: .45rem .75rem;
	border-radius: var(--esc-r-m);
	color: var(--esc-c-muted);
	font-weight: 600;
	font-size: .9375rem;
	text-decoration: none;
}

.esc-desk__nav a:hover {
	background: var(--esc-c-accent-soft);
	color: var(--esc-c-ink);
}

.esc-desk__nav a[aria-current="page"] {
	background: var(--esc-c-ink);
	color: var(--esc-c-surface);
}

.esc-desk__nav .esc-count {
	margin-left: auto;
}

.esc-desk__nav a[aria-current="page"] .esc-count {
	background: var(--esc-c-surface);
	color: var(--esc-c-ink);
}

.esc-desk__switch {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: .5rem .75rem;
	margin-bottom: 1.25rem;
}

.esc-desk__switch label {
	font-size: .875rem;
	font-weight: 600;
}

.esc-desk__switch select {
	min-height: 2.75rem;
	max-width: 100%;
	padding: .5rem .85rem;
	border: 1px solid var(--esc-c-line);
	border-radius: var(--esc-r-m);
	background: var(--esc-c-surface);
	color: var(--esc-c-ink);
	font: inherit;
}

.esc-desk__side .esc-desk__switch {
	margin: 0;
}

.esc-desk__side .esc-desk__switch select {
	width: 100%;
}

.esc-desk__head {
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	justify-content: space-between;
	gap: .5rem 1.5rem;
	margin-bottom: 1.25rem;
}

.esc-desk__head h1 {
	margin: 0;
	font-size: clamp(1.6rem, 1.2rem + 1.2vw, 2.1rem);
}

.esc-desk__note,
.esc-muted {
	color: var(--esc-c-muted);
	font-size: .875rem;
}

.esc-desk__note {
	max-width: 70ch;
	margin: -.25rem 0 1.5rem;
}

.esc-desk__empty {
	margin: 0;
	color: var(--esc-c-muted);
}

.esc-desk__todo {
	margin: 0 0 .5rem;
	padding-left: 1.2rem;
}

.esc-desk__cols {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(19rem, 1fr));
	gap: 0 1.25rem;
	margin-top: 1.5rem;
}

.esc-desk__checks {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(13rem, 1fr));
	gap: 0 1rem;
	margin-bottom: 1rem;
}

.esc-desk__amenity label {
	display: inline-flex;
	align-items: center;
	gap: .45rem;
}

.esc-desk__fieldset {
	margin: 0 0 1.1rem;
	padding: 0;
	border: 0;
}

.esc-desk__fieldset legend {
	margin-bottom: .3rem;
	font-size: .875rem;
	font-weight: 600;
}

.esc-desk__filters {
	display: flex;
	flex-wrap: wrap;
	align-items: flex-end;
	gap: 0 .85rem;
	margin-bottom: .75rem;
}

.esc-desk__filters .esc-field {
	flex: 1 1 11rem;
}

.esc-desk__filters-go {
	margin-bottom: 1.1rem;
}

.esc-desk [hidden] {
	display: none !important;
}

.esc-desk button[aria-busy="true"] {
	opacity: .6;
	pointer-events: none;
}

/* Tuiles de chiffres */
.esc-tiles {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(11.5rem, 1fr));
	gap: .75rem;
	margin: 0 0 1.5rem;
	padding: 0;
	list-style: none;
}

.esc-tiles > li > a,
.esc-tiles > li > span:first-child {
	display: block;
}

.esc-tiles > li {
	border: 1px solid var(--esc-c-line);
	border-radius: var(--esc-r-m);
	background: var(--esc-c-surface);
}

.esc-tiles > li > a,
.esc-tiles > li:not(:has(a)) {
	display: grid;
	gap: .2rem;
	padding: 1rem 1.1rem;
	color: inherit;
	text-decoration: none;
}

.esc-tiles > li:has(a):hover {
	border-color: var(--esc-c-ink);
}

.esc-tile__value {
	font-family: var(--esc-f-title);
	font-size: 1.6rem;
	line-height: 1.1;
	font-variant-numeric: tabular-nums;
}

.esc-tile__label {
	font-size: .875rem;
	color: var(--esc-c-muted);
}

/* Tableaux */
.esc-table-wrap {
	overflow-x: auto;
	margin-bottom: 1rem;
}

.esc-table {
	width: 100%;
	border-collapse: collapse;
	font-size: .9375rem;
}

.esc-table th {
	padding: .6rem .75rem;
	border-bottom: 1px solid var(--esc-c-line);
	color: var(--esc-c-muted);
	font-size: .8125rem;
	font-weight: 600;
	text-align: left;
}

.esc-table td {
	padding: .8rem .75rem;
	border-bottom: 1px solid var(--esc-c-line);
	vertical-align: top;
}

.esc-table td:first-child a strong {
	white-space: nowrap;
}

.esc-table .is-num {
	text-align: right;
	font-variant-numeric: tabular-nums;
	white-space: nowrap;
}

.esc-table__actions {
	white-space: nowrap;
}

.esc-table__actions form,
.esc-inline {
	display: inline-block;
	margin: 0 .25rem .25rem 0;
}

.esc-desk__rows {
	display: grid;
	margin: 0;
	padding: 0;
	list-style: none;
}

.esc-desk__rows li {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: .5rem 1rem;
	padding: .7rem 0;
	border-bottom: 1px solid var(--esc-c-line);
}

.esc-desk__log {
	margin: 0;
	padding-left: 1.2rem;
	font-size: .9375rem;
}

.esc-desk__log li + li {
	margin-top: .35rem;
}

.esc-desk__detail .esc-facts {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(13rem, 1fr));
	gap: 1rem;
	margin: 0 0 1rem;
}

.esc-desk__detail .esc-facts dt {
	font-size: .8125rem;
	color: var(--esc-c-muted);
}

.esc-desk__detail .esc-facts dd {
	margin: .15rem 0 0;
	font-weight: 600;
}

/* Calendrier des disponibilités */
.esc-cal__nav {
	display: flex;
	align-items: center;
	gap: .75rem;
	margin-bottom: .75rem;
}

.esc-cal__nav h2 {
	min-width: 10rem;
	margin: 0;
	font-size: 1.25rem;
	text-align: center;
}

.esc-cal {
	width: 100%;
	min-width: 42rem;
	border-collapse: separate;
	border-spacing: 4px;
	table-layout: fixed;
}

.esc-cal th {
	font-size: .8125rem;
	font-weight: 600;
	color: var(--esc-c-muted);
}

.esc-cal td {
	height: 5.4rem;
	padding: .4rem .5rem;
	border-radius: var(--esc-r-s);
	vertical-align: top;
}

.esc-cal__day {
	border: 1px solid var(--esc-c-line);
	background: var(--esc-c-surface);
}

.esc-cal__day > span {
	display: block;
	line-height: 1.25;
}

.esc-cal__num {
	font-weight: 700;
}

.esc-cal__free,
.esc-cal__detail {
	font-size: .75rem;
	color: var(--esc-c-muted);
}

.esc-cal__price {
	margin-top: .15rem;
	font-size: .8125rem;
	font-variant-numeric: tabular-nums;
}

.esc-cal__price.is-custom {
	font-weight: 700;
	text-decoration: underline dotted;
	text-underline-offset: 3px;
}

.esc-cal .is-partial {
	border-color: #E0C27A;
	background: #FBF5E6;
}

.esc-cal .is-full {
	border-color: #D9A5A0;
	background: #F8E9E7;
}

.esc-cal .is-closed {
	border-style: dashed;
	background: repeating-linear-gradient(135deg, var(--esc-c-surface) 0 6px, var(--esc-c-bg) 6px 12px);
}

.esc-cal .is-past {
	opacity: .5;
}

.esc-cal .is-today {
	outline: 2px solid var(--esc-c-ink);
	outline-offset: -2px;
}

.esc-cal__legend {
	display: flex;
	flex-wrap: wrap;
	gap: .4rem 1.1rem;
	margin: 0;
	padding: 0;
	list-style: none;
	font-size: .8125rem;
	color: var(--esc-c-muted);
}

.esc-cal__legend li::before {
	content: "";
	display: inline-block;
	width: .8rem;
	height: .8rem;
	margin-right: .35rem;
	border: 1px solid var(--esc-c-line);
	border-radius: 3px;
	vertical-align: -1px;
	background: var(--esc-c-surface);
}

.esc-cal__legend .is-partial::before { background: #FBF5E6; border-color: #E0C27A; }
.esc-cal__legend .is-full::before { background: #F8E9E7; border-color: #D9A5A0; }
.esc-cal__legend .is-closed::before { border-style: dashed; }
.esc-cal__legend .is-custom::before { content: none; }
.esc-cal__legend .is-custom { text-decoration: underline dotted; text-underline-offset: 3px; }

/* Photos */
.esc-vlist {
	display: grid;
	gap: .75rem;
	margin: 0 0 1.25rem;
	padding: 0;
	list-style: none;
}

.esc-vlist__item {
	display: grid;
	grid-template-columns: auto 1fr auto;
	align-items: start;
	gap: .75rem;
	padding: .75rem;
	border: 1px solid var(--esc-c-line);
	border-radius: var(--esc-r-m);
	background: var(--esc-c-surface);
}

.esc-vlist__icon {
	display: grid;
	place-items: center;
	width: 2.5rem;
	height: 2.5rem;
	border-radius: var(--esc-r-s, 8px);
	background: var(--esc-c-accent-soft);
	color: var(--esc-c-accent);
}

.esc-vlist__body p {
	margin: 0 0 .5rem;
}

@media (max-width: 599px) {
	.esc-vlist__item {
		grid-template-columns: auto 1fr;
	}

	.esc-vlist__item .esc-photo__tools {
		grid-column: 1 / -1;
	}
}

.esc-photos {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(14rem, 1fr));
	gap: 1rem;
	margin: 0;
	padding: 0;
	list-style: none;
}

.esc-photo {
	position: relative;
	display: grid;
	gap: .5rem;
	padding: .5rem;
	border: 1px solid var(--esc-c-line);
	border-radius: var(--esc-r-m);
	background: var(--esc-c-surface);
}

.esc-photo img {
	width: 100%;
	aspect-ratio: 4 / 3;
	object-fit: cover;
	border-radius: var(--esc-r-s);
}

.esc-photo__main {
	position: absolute;
	top: 1rem;
	left: 1rem;
	padding: .2rem .55rem;
	border-radius: 999px;
	background: var(--esc-c-ink);
	color: var(--esc-c-surface);
	font-size: .75rem;
	font-weight: 700;
}

.esc-photo__tools {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: .25rem;
}

.esc-photo__tools .esc-inline {
	margin: 0;
}

.esc-photo__alt {
	display: flex;
	gap: .4rem;
}

.esc-photo__alt input {
	flex: 1;
	min-width: 0;
	min-height: 2.5rem;
	padding: .4rem .6rem;
	border: 1px solid var(--esc-c-line);
	border-radius: var(--esc-r-s);
	font: inherit;
	font-size: .875rem;
}

/* Notifications */
.esc-notifs {
	display: grid;
	margin: 1rem 0 0;
	padding: 0;
	list-style: none;
}

.esc-notifs li {
	display: grid;
	gap: .2rem;
	padding: .9rem 0 .9rem 1rem;
	border-bottom: 1px solid var(--esc-c-line);
	border-left: 3px solid transparent;
}

.esc-notifs li.is-unread {
	border-left-color: var(--esc-c-accent);
}

.esc-notifs time {
	font-size: .8125rem;
	color: var(--esc-c-muted);
}

.esc-notifs p {
	margin: 0;
	font-size: .9375rem;
	color: var(--esc-c-muted);
}

@media (max-width: 899px) {
	.esc-desk {
		grid-template-columns: minmax(0, 1fr);
		gap: 1rem;
	}

	.esc-desk__side {
		position: static;
	}

	.esc-desk__nav ul {
		display: flex;
		gap: .25rem;
		overflow-x: auto;
		padding-bottom: .25rem;
		scroll-snap-type: x proximity;
	}

	.esc-desk__nav li {
		flex: none;
		scroll-snap-align: start;
	}

	.esc-desk__nav a {
		border: 1px solid var(--esc-c-line);
		white-space: nowrap;
	}

	.esc-tiles {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.esc-tile__value {
		font-size: 1.3rem;
	}
}

@media (max-width: 699px) {
	.esc-table thead {
		position: absolute;
		width: 1px;
		height: 1px;
		overflow: hidden;
		clip: rect(0 0 0 0);
	}

	.esc-table,
	.esc-table tbody,
	.esc-table tr,
	.esc-table td {
		display: block;
		width: 100%;
	}

	.esc-table tr {
		padding: .5rem 0;
		border-bottom: 1px solid var(--esc-c-line);
	}

	.esc-table td {
		display: flex;
		justify-content: space-between;
		gap: 1rem;
		padding: .35rem 0;
		border: 0;
		text-align: right;
	}

	.esc-table td::before {
		content: attr(data-label);
		flex: none;
		color: var(--esc-c-muted);
		font-size: .8125rem;
		text-align: left;
	}

	.esc-table td.esc-table__actions {
		justify-content: flex-start;
	}

	.esc-table td.esc-table__actions::before {
		content: none;
	}

	.esc-cal td {
		height: 4.6rem;
		padding: .3rem;
	}
}

@media (prefers-reduced-motion: reduce) {
	.esc-desk__nav ul {
		scroll-behavior: auto;
	}
}

/* Pilotage (administration de la plateforme) */
.esc-desk__actions {
	display: flex;
	flex-wrap: wrap;
	align-items: flex-start;
	gap: .5rem;
	margin-top: 1rem;
}

.esc-desk__actions > form,
.esc-desk__actions > details {
	margin: 0;
}

.esc-desk__more {
	display: inline-block;
	max-width: 100%;
	vertical-align: top;
}

.esc-desk__more > summary {
	list-style: none;
	cursor: pointer;
}

.esc-desk__more > summary::-webkit-details-marker {
	display: none;
}

.esc-desk__more[open] {
	display: block;
	width: 100%;
	margin: .5rem 0;
	padding: 1rem;
	border: 1px solid var(--esc-c-line);
	border-radius: var(--esc-r-m);
	background: var(--esc-c-bg);
}

.esc-desk__more[open] > summary {
	margin-bottom: .75rem;
}

.esc-desk__stack {
	display: grid;
	gap: .25rem;
	min-width: 14rem;
}

.esc-desk__stack .esc-field {
	margin-bottom: .5rem;
}

.esc-desk__dl {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(14rem, 1fr));
	gap: 1rem;
	margin: 0;
}

.esc-desk__dl dt {
	font-size: .8125rem;
	color: var(--esc-c-muted);
}

.esc-desk__dl dd {
	margin: .15rem 0 0;
	font-weight: 600;
	overflow-wrap: anywhere;
}

.esc-desk__exports {
	display: flex;
	flex-wrap: wrap;
	gap: .5rem;
	margin: 0 0 1.25rem;
}

.esc-desk__exports form {
	margin: 0;
}

.esc-desk__pre {
	max-width: 32rem;
	margin: .5rem 0 0;
	padding: .6rem;
	overflow: auto;
	border-radius: var(--esc-r-s);
	background: var(--esc-c-bg);
	font-size: .75rem;
	white-space: pre-wrap;
	word-break: break-word;
}

.esc-desk__wpadmin {
	margin: 0;
	font-size: .875rem;
}

.esc-desk__estab .esc-muted {
	font-weight: 400;
}

/* Modèle de page légale (brouillon) : bien visible dans l'éditeur et en aperçu. */
.esc-legal-draft {
	padding: 1rem 1.25rem;
	border: 2px dashed var(--esc-c-pending);
	border-radius: var(--esc-r-m);
	background: #FBF5E6;
}

/* ——— Offres ——— */
.esc-grid--offers {
	display: grid;
	grid-template-columns: repeat(var(--esc-cols, 3), minmax(0, 1fr));
	gap: 1.5rem;
}

@media (max-width: 1023px) {
	.esc-grid--offers {
		grid-template-columns: repeat(min(var(--esc-cols, 3), 2), minmax(0, 1fr));
	}
}

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

.esc-offer {
	position: relative;
	display: flex;
	flex-direction: column;
	min-width: 0;
	overflow: hidden;
	border: 1px solid var(--esc-c-line);
	border-radius: var(--esc-r-l);
	background: var(--esc-c-surface);
}

.esc-offer__media {
	position: relative;
	display: block;
	aspect-ratio: 16 / 10;
	background: var(--esc-c-accent-soft);
}

.esc-offer__media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.esc-offer__pct {
	position: absolute;
	right: 1rem;
	bottom: -1.6rem;
	z-index: 2;
	display: grid;
	place-items: center;
	width: 4.4rem;
	height: 4.4rem;
	border: 4px solid var(--esc-c-surface);
	border-radius: 50%;
	background: var(--esc-c-accent);
	color: var(--esc-c-surface);
	font-family: var(--esc-f-title);
	font-size: 1.15rem;
	font-weight: 700;
	letter-spacing: -.02em;
	font-variant-numeric: tabular-nums;
}

.esc-offer__body {
	display: flex;
	flex: 1;
	flex-direction: column;
	gap: .5rem;
	padding: 1.1rem 1.15rem 1.15rem;
}

.esc-offer__estab {
	display: grid;
	margin: 0;
	padding-right: 4.6rem;
	font-size: .9rem;
	line-height: 1.35;
}

.esc-offer__estab span {
	color: var(--esc-c-muted);
}

.esc-offer__title {
	margin: .2rem 0 0;
	font-family: var(--esc-f-title);
	font-size: 1.35rem;
	font-weight: 500;
	line-height: 1.2;
}

.esc-offer__title a {
	color: var(--esc-c-ink);
	text-decoration: none;
}

.esc-offer__title a::after {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 1;
}

.esc-offer:has(.esc-offer__title a:focus-visible) {
	outline: 2px solid var(--esc-c-accent);
	outline-offset: 3px;
}

.esc-offer__terms {
	margin: 0;
	font-size: .95rem;
}

.esc-offer__facts {
	display: grid;
	gap: .3rem;
	margin: 0;
	padding: 0;
	list-style: none;
	font-size: .875rem;
	color: var(--esc-c-muted);
}

.esc-offer__facts li {
	display: flex;
	align-items: flex-start;
	gap: .45rem;
}

.esc-offer__facts .esc-icon {
	flex: none;
	margin-top: .15rem;
}

.esc-offer__foot {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: .75rem;
	margin-top: auto;
	padding-top: .75rem;
	border-top: 1px solid var(--esc-c-line);
}

.esc-offer__foot .esc-btn {
	position: relative;
	z-index: 2;
}

.esc-offer__price {
	margin: 0;
	font-size: .875rem;
	color: var(--esc-c-muted);
}

.esc-offer__price s {
	margin-right: .2rem;
}

.esc-offer__price strong {
	color: var(--esc-c-ink);
	font-size: 1.05rem;
}

.esc-offers__title {
	margin: 0 0 .5rem;
}

.esc-offers__intro {
	max-width: 62ch;
	margin: 0 0 1.5rem;
	color: var(--esc-c-muted);
}

.esc-offers__count {
	margin: 0 0 1rem;
	font-weight: 600;
}

.esc-chips ul {
	display: flex;
	flex-wrap: wrap;
	gap: .5rem;
	margin: 0 0 1.5rem;
	padding: 0;
	list-style: none;
}

.esc-chips a {
	display: inline-block;
	padding: .45rem .95rem;
	border: 1px solid var(--esc-c-line);
	border-radius: 999px;
	background: var(--esc-c-surface);
	color: var(--esc-c-ink);
	font-size: .9rem;
	text-decoration: none;
}

.esc-chips a:hover {
	border-color: var(--esc-c-ink);
}

.esc-chips a[aria-current="page"] {
	border-color: var(--esc-c-ink);
	background: var(--esc-c-ink);
	color: var(--esc-c-surface);
}

.esc-all-link {
	margin: 2rem 0 0;
	text-align: center;
}

/* Offres prêtes à l'emploi (espace propriétaire) */
.esc-presets {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(min(100%, 15rem), 1fr));
	gap: 1rem;
	margin: 0;
	padding: 0;
	list-style: none;
}

.esc-preset {
	display: flex;
	flex-direction: column;
	gap: .4rem;
	padding: 1rem;
	border: 1px solid var(--esc-c-line);
	border-radius: var(--esc-r-m);
	background: var(--esc-c-bg);
}

.esc-preset h3 {
	margin: 0;
	font-size: 1.05rem;
}

.esc-preset p {
	margin: 0;
}

.esc-preset__pct {
	font-family: var(--esc-f-title);
	font-size: 1.6rem;
	font-weight: 700;
	color: var(--esc-c-accent);
}

.esc-preset form {
	display: grid;
	gap: .6rem;
	margin-top: auto;
	padding-top: .5rem;
}
