/**
 * Charte « hôtel premium » — surcharge cohérente du thème public.
 * S’appuie sur les variables :root du layout (couleurs admin + tokens locaux).
 */

/* --- Base & typographie --- */
html {
	scroll-behavior: smooth;
}

body {
	font-size: 16px;
	line-height: 1.65;
	background-color: var(--surface-tint);
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
}

p,
label {
	font-size: 1rem;
	line-height: 1.65;
}

h1,
h2,
h3,
h4,
h5,
h6,
.hero-screen .hero-content h1,
.breadcrumb-section .breadcrumb-card h2,
.section-heading h2,
.about-card .about-title h2 {
	font-family: var(--display-font-family);
	font-weight: 600;
	letter-spacing: 0.02em;
}

h1 {
	font-weight: 700;
	font-size: clamp(2.25rem, 4vw, 3.5rem);
}

h2 {
	font-size: clamp(1.85rem, 3vw, 2.5rem);
}

h3 {
	font-size: clamp(1.5rem, 2.5vw, 1.85rem);
}

.section-heading h5 {
	font-family: var(--primary-font-family);
	font-size: 0.75rem;
	font-weight: 600;
	letter-spacing: 0.22em;
	text-transform: uppercase;
	color: var(--theme-color);
}

.section-heading p {
	max-width: 42rem;
	margin-left: auto;
	margin-right: auto;
	color: var(--color-gray-dark);
}

.section {
	padding: 5.5rem 0;
}

.section-heading {
	margin-bottom: 3.25rem;
}

/* --- Accessibilité focus --- */
a:focus-visible,
button:focus-visible,
.btn:focus-visible,
.form-control:focus-visible,
.form-select:focus-visible,
input:focus-visible,
textarea:focus-visible {
	outline: 2px solid var(--theme-color);
	outline-offset: 2px;
}

/* --- Barre supérieure & en-tête --- */
.top-header {
	background-color: var(--topbar-bg) !important;
	padding: 0.55rem 0;
	border-bottom: 1px solid color-mix(in srgb, var(--color-white) 6%, transparent);
}

.top-header ul.top-list li a:hover {
	color: var(--color-white);
	opacity: 0.85;
}

.header-menu {
	padding: 0.65rem 0;
	border-bottom: 1px solid color-mix(in srgb, var(--color-ink) 8%, transparent);
	background-color: var(--color-white);
}

.header-menu.sticky {
	background-color: color-mix(in srgb, var(--color-white) 92%, transparent);
	backdrop-filter: blur(12px);
	-webkit-backdrop-filter: blur(12px);
}

.tp-menu ul li a {
	font-weight: 600;
	font-size: 0.95rem;
	letter-spacing: 0.04em;
	padding: 1.35rem 1.1rem;
}

.tp-menu ul li ul.submenu {
	border-radius: 0 0 var(--radius-md) var(--radius-md);
	box-shadow: var(--shadow-card);
}

.tp-menu ul li .mega-menu {
	border-radius: 0 0 var(--radius-md) var(--radius-md);
	box-shadow: var(--shadow-card);
}

.language-menu ul.dropdown-menu {
	border-radius: var(--radius-sm);
}

/* --- En-tête redesign (site-header) --- */
body.theme-premium .site-header {
	position: relative;
	z-index: 1000;
}

body.theme-premium .top-header-inner {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 0.5rem 1.25rem;
	min-height: 2.35rem;
}

body.theme-premium .top-header-start,
body.theme-premium .top-header-end {
	flex: 1 1 auto;
	min-width: 0;
}

body.theme-premium .top-header-end {
	display: flex;
	justify-content: flex-end;
}

body.theme-premium ul.top-header-contact,
body.theme-premium ul.top-header-toolbar {
	float: none !important;
	margin: 0;
	padding: 0;
	list-style: none;
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.35rem 1rem;
}

body.theme-premium ul.top-header-contact > li,
body.theme-premium ul.top-header-toolbar > li {
	float: none !important;
	padding: 0 !important;
	border: none;
}

body.theme-premium ul.top-header-toolbar > li:last-child {
	padding: 0 !important;
}

body.theme-premium .top-header-chip {
	display: inline-flex;
	align-items: center;
	gap: 0.4rem;
	font-size: 0.8125rem;
	font-weight: 500;
	letter-spacing: 0.03em;
	color: color-mix(in srgb, var(--color-white) 88%, transparent);
	line-height: 1.3;
}

body.theme-premium .top-header-chip i {
	font-size: 0.95rem;
	opacity: 0.9;
	color: var(--lux-gold-bright);
}

body.theme-premium a.top-header-chip--link {
	text-decoration: none;
	color: color-mix(in srgb, var(--color-white) 92%, transparent);
	transition: color 0.2s ease, opacity 0.2s ease;
}

body.theme-premium a.top-header-chip--link:hover {
	color: var(--color-white);
	opacity: 1;
}

body.theme-premium .top-header-toolbar-link {
	display: inline-flex;
	align-items: center;
	gap: 0.35rem;
	font-size: 0.8125rem;
	font-weight: 500;
	letter-spacing: 0.04em;
	text-decoration: none;
	color: color-mix(in srgb, var(--color-white) 90%, transparent) !important;
	transition: color 0.2s ease, opacity 0.2s ease;
}

body.theme-premium .top-header-toolbar-link:hover {
	color: var(--color-white) !important;
	opacity: 0.95;
}

body.theme-premium .top-header-account {
	display: inline-flex !important;
	align-items: center;
	gap: 0.4rem;
	font-size: 0.8125rem !important;
	font-weight: 600 !important;
	letter-spacing: 0.03em;
	color: color-mix(in srgb, var(--color-white) 95%, transparent) !important;
	text-decoration: none !important;
}

body.theme-premium .top-header-account i {
	font-size: 1.1rem;
	color: var(--lux-gold-bright);
}

body.theme-premium .top-header-account-name {
	display: inline-block;
	max-width: 10rem;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
	vertical-align: bottom;
}

body.theme-premium .top-header-lang .dropdown-toggle,
body.theme-premium .top-header-lang a,
body.theme-premium .top-header-lang-toggle {
	font-size: 0.8125rem;
	font-weight: 500;
}

body.theme-premium .lang-label-text {
	white-space: nowrap;
}

/* Réserver : bouton icône uniquement (mobile, à côté du menu) */
body.theme-premium .header-book-btn--icon-only {
	width: 42px;
	height: 42px;
	min-width: 42px;
	padding: 0 !important;
	border-radius: var(--radius-sm);
	line-height: 42px;
	font-size: 1.15rem;
	box-shadow: 0 3px 12px color-mix(in srgb, var(--color-secondary-accent) 32%, transparent);
}

body.theme-premium .header-book-btn--icon-only i {
	line-height: inherit;
	vertical-align: middle;
}

body.theme-premium .header-brand {
	display: flex;
	align-items: center;
	justify-content: space-between;
	width: 100%;
	gap: 1rem;
}

body.theme-premium .header-brand .logo {
	float: none;
	width: clamp(140px, 18vw, 190px);
	padding: 0.65rem 0;
}

body.theme-premium .header-brand .logo img {
	width: 100%;
	height: auto;
	display: block;
}

body.theme-premium .header-main-row {
	--header-pad-y: 0.35rem;
}

body.theme-premium .header-menu {
	padding: var(--header-pad-y) 0;
	box-shadow: 0 4px 24px color-mix(in srgb, var(--color-ink) 6%, transparent);
	border-bottom: 1px solid color-mix(in srgb, var(--color-ink) 7%, transparent);
}

body.theme-premium .header-menu.sticky {
	box-shadow: 0 8px 32px color-mix(in srgb, var(--color-ink) 10%, transparent);
}

body.theme-premium .header-nav-cluster {
	display: flex;
	align-items: center;
	justify-content: flex-end;
	gap: 1rem 1.25rem;
	width: 100%;
	min-height: 3.25rem;
}

body.theme-premium .header-nav-cluster .tp-mega-full {
	flex: 1 1 auto;
	min-width: 0;
}

body.theme-premium .header-book-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 0.5rem;
	padding: 0.65rem 1.35rem;
	font-family: var(--primary-font-family);
	font-size: 0.8125rem;
	font-weight: 700;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	text-decoration: none;
	color: var(--color-white) !important;
	background: linear-gradient(
		135deg,
		var(--lux-gold) 0%,
		var(--lux-gold-bright) 100%
	);
	border: none;
	border-radius: var(--radius-pill);
	box-shadow: 0 4px 16px color-mix(in srgb, var(--color-secondary-accent) 35%, transparent);
	transition: transform 0.2s ease, box-shadow 0.2s ease, filter 0.2s ease;
	white-space: nowrap;
}

body.theme-premium .header-book-btn:hover {
	color: var(--color-white) !important;
	filter: brightness(1.05);
	box-shadow: 0 6px 22px color-mix(in srgb, var(--color-secondary-accent) 45%, transparent);
	transform: translateY(-1px);
}

body.theme-premium .header-book-btn:focus-visible {
	outline: 2px solid var(--theme-color);
	outline-offset: 3px;
}

body.theme-premium .header-book-btn--block {
	border-radius: var(--radius-md);
	padding: 0.85rem 1rem;
}

body.theme-premium .icon-bars-card {
	float: none;
}

body.theme-premium .icon-bars-card a i {
	margin-top: 0;
	width: 42px;
	height: 42px;
	line-height: 42px;
	font-size: 1.35rem;
	border-radius: var(--radius-sm);
	background: linear-gradient(
		135deg,
		var(--lux-charcoal) 0%,
		var(--lux-ink) 100%
	);
	box-shadow: 0 4px 14px color-mix(in srgb, var(--color-ink) 25%, transparent);
}

body.theme-premium .mobile-menu-wrapper .offcanvas-body {
	display: flex;
	flex-direction: column;
	background: linear-gradient(180deg, var(--lux-charcoal) 0%, var(--color-button-gradient-bottom) 100%);
}

body.theme-premium .offcanvas-footer {
	margin-top: auto;
	padding: 1.25rem 1.25rem 1.5rem;
	border-top: 1px solid color-mix(in srgb, var(--color-white) 8%, transparent);
}

body.theme-premium .offcanvas-top {
	border-bottom-color: color-mix(in srgb, var(--color-white) 12%, transparent);
}

body.theme-premium .offcanvas-top .offcanvas-btn-close {
	color: var(--lux-charcoal);
	background: color-mix(in srgb, var(--color-white) 95%, transparent);
	transition: transform 0.2s ease, background 0.2s ease;
}

body.theme-premium .offcanvas-top .offcanvas-btn-close:hover {
	background: var(--color-white);
	transform: scale(1.05);
}

/* Off-canvas : compte + langues */
body.theme-premium .offcanvas-meta {
	flex-shrink: 0;
	padding: 0 1.25rem 1rem;
	border-bottom: 1px solid color-mix(in srgb, var(--color-white) 10%, transparent);
	margin-bottom: 0.5rem;
}

body.theme-premium .offcanvas-meta__section + .offcanvas-meta__section {
	margin-top: 1.15rem;
	padding-top: 1.15rem;
	border-top: 1px solid color-mix(in srgb, var(--color-white) 6%, transparent);
}

body.theme-premium .offcanvas-meta__label {
	font-size: 0.68rem;
	font-weight: 700;
	letter-spacing: 0.2em;
	text-transform: uppercase;
	color: var(--lux-gold-bright);
	margin-bottom: 0.65rem;
}

body.theme-premium .offcanvas-meta__user {
	display: flex;
	align-items: center;
	gap: 0.5rem;
	font-size: 0.95rem;
	font-weight: 600;
	color: color-mix(in srgb, var(--color-white) 95%, transparent);
	margin-bottom: 0.75rem;
}

body.theme-premium .offcanvas-meta__user i {
	font-size: 1.35rem;
	color: var(--lux-gold-bright);
}

body.theme-premium .offcanvas-meta__nav {
	display: flex;
	flex-direction: column;
	gap: 0.35rem;
}

body.theme-premium .offcanvas-meta__nav--guest {
	flex-direction: row;
	flex-wrap: wrap;
	gap: 0.5rem;
}

body.theme-premium .offcanvas-meta__link {
	display: flex;
	align-items: center;
	gap: 0.5rem;
	padding: 0.55rem 0.65rem;
	border-radius: var(--radius-sm);
	font-size: 0.875rem;
	font-weight: 600;
	color: color-mix(in srgb, var(--color-white) 88%, transparent) !important;
	text-decoration: none !important;
	transition: background 0.2s ease, color 0.2s ease;
}

body.theme-premium .offcanvas-meta__link i {
	font-size: 1rem;
	opacity: 0.85;
	color: var(--lux-gold-bright);
}

body.theme-premium .offcanvas-meta__link:hover {
	background: color-mix(in srgb, var(--color-white) 8%, transparent);
	color: var(--color-white) !important;
}

body.theme-premium .offcanvas-meta__btn {
	flex: 1 1 auto;
	min-width: 0;
	text-align: center;
	padding: 0.55rem 0.75rem;
	border-radius: var(--radius-sm);
	font-size: 0.8125rem;
	font-weight: 700;
	letter-spacing: 0.06em;
	text-decoration: none !important;
	transition: filter 0.2s ease, background 0.2s ease, border-color 0.2s ease;
}

body.theme-premium .offcanvas-meta__btn--primary {
	color: var(--color-white) !important;
	background: linear-gradient(
		135deg,
		var(--lux-gold) 0%,
		var(--lux-gold-bright) 100%
	);
	border: 1px solid transparent;
	box-shadow: 0 3px 12px color-mix(in srgb, var(--color-secondary-accent) 25%, transparent);
}

body.theme-premium .offcanvas-meta__btn--primary:hover {
	color: var(--color-white) !important;
	filter: brightness(1.06);
}

body.theme-premium .offcanvas-meta__btn--outline {
	color: color-mix(in srgb, var(--color-white) 92%, transparent) !important;
	background: transparent;
	border: 1px solid color-mix(in srgb, var(--color-white) 35%, transparent);
}

body.theme-premium .offcanvas-meta__btn--outline:hover {
	border-color: color-mix(in srgb, var(--color-white) 55%, transparent);
	background: color-mix(in srgb, var(--color-white) 6%, transparent);
	color: var(--color-white) !important;
}

body.theme-premium .offcanvas-meta__lang {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-wrap: wrap;
	gap: 0.45rem;
}

body.theme-premium .offcanvas-meta__lang li {
	margin: 0;
	padding: 0;
}

body.theme-premium .offcanvas-meta__lang-link {
	display: inline-block;
	padding: 0.4rem 0.85rem;
	border-radius: var(--radius-pill);
	font-size: 0.8125rem;
	font-weight: 600;
	color: color-mix(in srgb, var(--color-white) 88%, transparent) !important;
	text-decoration: none !important;
	border: 1px solid color-mix(in srgb, var(--color-white) 20%, transparent);
	background: color-mix(in srgb, var(--color-white) 4%, transparent);
	transition: border-color 0.2s ease, background 0.2s ease, color 0.2s ease;
}

body.theme-premium .offcanvas-meta__lang-link:hover {
	border-color: color-mix(in srgb, var(--color-secondary-accent-light) 55%, transparent);
	color: var(--color-white) !important;
}

body.theme-premium .offcanvas-meta__lang-link.is-active {
	border-color: var(--lux-gold-bright);
	background: color-mix(in srgb, var(--color-secondary-accent-light) 15%, transparent);
	color: var(--color-white) !important;
}

body.theme-premium .mobile-menu-wrapper .mobile-navigation {
	flex: 1 1 auto;
	min-height: 0;
	overflow-y: auto;
	-webkit-overflow-scrolling: touch;
}

/* -------------------------------------------------------------------------
   Header responsive : une seule ligne défilante, moins de hauteur, plus pro
   ------------------------------------------------------------------------- */
@media (max-width: 991.98px) {
	body.theme-premium .site-header .top-header {
		padding: 0;
	}

	body.theme-premium .top-header .container {
		max-width: 100%;
	}

	body.theme-premium .top-header-inner {
		display: flex;
		flex-wrap: nowrap;
		align-items: center;
		justify-content: flex-start;
		gap: 0.65rem;
		min-height: 0;
		padding: 0.4rem 0;
		overflow-x: auto;
		overflow-y: hidden;
		-webkit-overflow-scrolling: touch;
		scrollbar-width: none;
		text-align: start;
	}

	body.theme-premium .top-header-inner::-webkit-scrollbar {
		display: none;
		height: 0;
		width: 0;
	}

	body.theme-premium .top-header-start,
	body.theme-premium .top-header-end {
		flex: 0 0 auto;
		min-width: min-content;
	}

	body.theme-premium .top-header-end {
		display: flex;
		justify-content: flex-end;
		margin-inline-start: auto;
		width: auto;
	}

	body.theme-premium ul.top-header-contact,
	body.theme-premium ul.top-header-toolbar {
		flex-wrap: nowrap;
		justify-content: flex-start;
		gap: 0.35rem 0.65rem;
	}

	/* Adresse / téléphone : ellipsis pour éviter la seconde ligne */
	body.theme-premium .top-header-chip > span {
		display: inline-block;
		max-width: min(220px, 46vw);
		overflow: hidden;
		text-overflow: ellipsis;
		white-space: nowrap;
		vertical-align: bottom;
	}

	body.theme-premium .top-header-chip {
		font-size: 0.78rem;
		gap: 0.3rem;
	}

	body.theme-premium .top-header-toolbar-link,
	body.theme-premium .top-header-account {
		font-size: 0.78rem !important;
	}
}

@media (max-width: 767.98px) {
	body.theme-premium .top-header-account-name {
		max-width: 5.25rem;
	}

	body.theme-premium .header-brand .logo {
		width: clamp(120px, 42vw, 170px);
		padding: 0.5rem 0;
	}

	body.theme-premium .header-menu {
		padding: 0.25rem 0;
	}

	body.theme-premium .header-nav-cluster {
		min-height: 0;
	}
}

@media (max-width: 575.98px) {
	/* Langue : icône seule pour gagner de la place */
	body.theme-premium .lang-label-text {
		position: absolute;
		width: 1px;
		height: 1px;
		padding: 0;
		margin: -1px;
		overflow: hidden;
		clip: rect(0, 0, 0, 0);
		white-space: nowrap;
		border: 0;
	}

	body.theme-premium .top-header-lang .language-menu > .dropdown-toggle::after {
		display: none;
	}

	body.theme-premium .top-header-lang-toggle {
		padding-inline-end: 0.15rem !important;
	}
}

@media (max-width: 380px) {
	body.theme-premium .top-header-account-name {
		display: none;
	}
}

/* --- Hero & réservation --- */
.hero-overlay::before {
	background: linear-gradient(
		120deg,
		var(--overlay-dark) 0%,
		color-mix(in srgb, var(--color-ink) 25%, transparent) 55%,
		color-mix(in srgb, var(--color-ink) 45%, transparent) 100%
	);
	opacity: 1;
}

.hero-screen .hero-content h1 {
	font-weight: 600;
	letter-spacing: 0.04em;
	text-shadow: 0 2px 24px color-mix(in srgb, var(--color-ink) 25%, transparent);
}

.hero-screen .hero-content p {
	font-size: 1.05rem;
	line-height: 1.75;
	max-width: 36rem;
	margin-left: auto;
	margin-right: auto;
	opacity: 0.95;
}

.hero-section .search-card .search-card-inner {
	padding: 2.25rem 2rem 1.75rem;
	border-radius: var(--radius-md);
	box-shadow: var(--shadow-card);
	border: 1px solid color-mix(in srgb, var(--color-white) 65%, transparent);
}

.hero-section .search-card .form-label {
	font-size: 0.78rem;
	font-weight: 600;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: var(--color-gray-dark);
}

.hero-section .search-card .form-control,
.hero-section .search-card .form-select {
	border-radius: var(--radius-sm);
	border-color: var(--color-gray-400);
	padding: 0.65rem 0.85rem;
}

.hero-section .search-card .search-card-inner .search-btn {
	border-radius: var(--radius-sm);
	margin-top: 1.75rem;
	font-weight: 700;
	letter-spacing: 0.06em;
}

/* --- About & blocs info --- */
.about-section .about-img {
	border-radius: var(--radius-md);
	box-shadow: var(--shadow-soft);
}

.about-section .about-img img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	aspect-ratio: 4 / 3;
}

.about-card .info-card {
	border-radius: var(--radius-md);
	box-shadow: var(--shadow-soft);
	border: 1px solid color-mix(in srgb, var(--color-ink) 6%, transparent);
}

/* --- Chambres & offres --- */
.featured-section {
	background: linear-gradient(180deg, var(--surface-tint) 0%, var(--color-gray-500) 42%, var(--color-gray-500) 100%);
	padding-bottom: 4rem;
}

.item-card {
	border-radius: var(--radius-md);
	overflow: hidden;
	box-shadow: var(--shadow-soft);
	border: 1px solid color-mix(in srgb, var(--color-ink) 6%, transparent);
	transition: transform 0.35s ease, box-shadow 0.35s ease;
}

.item-card:hover {
	transform: translateY(-4px);
	box-shadow: var(--shadow-card);
}

.item-card .item-image {
	aspect-ratio: 4 / 3;
	background: var(--color-gray-500);
}

.item-card .item-image img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

.item-card .item-title a {
	font-family: var(--display-font-family);
	font-size: 1.35rem;
	font-weight: 600;
}

.offer-card {
	border-radius: var(--radius-md);
	overflow: hidden;
	box-shadow: var(--shadow-soft);
	background: var(--color-white);
	border: 1px solid color-mix(in srgb, var(--color-ink) 6%, transparent);
}

.offer-card .offer-image img {
	width: 100%;
	height: 220px;
	object-fit: cover;
	display: block;
}

.offer-card .offer-content {
	padding: 1.25rem 1rem 1.5rem;
}

.offer-card .offer-content h2 {
	font-size: 1.5rem;
}

/* --- Services & témoignages --- */
.service-card {
	border-radius: var(--radius-md);
	padding: 2.25rem 1.75rem;
	background: var(--color-white);
	box-shadow: var(--shadow-soft);
	border: 1px solid color-mix(in srgb, var(--color-ink) 6%, transparent);
	transition: box-shadow 0.3s ease;
	/* alignement vertical : géré avec flex dans style.css + colonnes .service-section */
}

.service-card:hover {
	box-shadow: var(--shadow-card);
}

.service-card h4 {
	font-family: var(--display-font-family);
	font-size: 1.35rem;
}

.testimonial-card {
	border-radius: var(--radius-md);
	padding: 2rem 1.75rem;
	background: var(--color-white);
	box-shadow: var(--shadow-soft);
	border: 1px solid color-mix(in srgb, var(--color-ink) 6%, transparent);
}

/* --- Vidéo preview --- */
.preview-section .preview-content {
	padding: 3rem 2.5rem;
}

.preview-section .preview-content h2 {
	font-size: clamp(1.75rem, 3vw, 2.25rem);
}

.preview-video img {
	border-radius: var(--radius-md);
	object-fit: cover;
	width: 100%;
}

/* --- Blog --- */
.blog-card {
	border-radius: var(--radius-md);
	overflow: hidden;
	background: var(--color-white);
	box-shadow: var(--shadow-soft);
	border: 1px solid color-mix(in srgb, var(--color-ink) 6%, transparent);
	transition: box-shadow 0.3s ease, transform 0.3s ease;
}

.blog-card:hover {
	box-shadow: var(--shadow-card);
	transform: translateY(-3px);
}

.blog-card .blog-img {
	aspect-ratio: 16 / 10;
	background: var(--color-gray-500);
	overflow: hidden;
}

.blog-card .blog-img img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.blog-card .blog-title h4 {
	font-family: var(--display-font-family);
	font-size: 1.25rem;
	font-weight: 600;
}

/* --- Fil d’Ariane --- */
.breadcrumb-section {
	background-color: var(--color-dark-surface);
	min-height: 280px;
}

.breadcrumb-section::before {
	background: linear-gradient(
		135deg,
		var(--overlay-dark) 0%,
		color-mix(in srgb, var(--color-ink) 35%, transparent) 100%
	);
	opacity: 1;
}

.breadcrumb-section .breadcrumb-card h2 {
	font-weight: 600;
	letter-spacing: 0.03em;
}

.breadcrumb-section .breadcrumb-card nav ol li,
.breadcrumb-section .breadcrumb-card nav ol li a {
	font-family: var(--primary-font-family);
	font-weight: 500;
	font-size: 0.95rem;
}

/* --- Pages intérieures --- */
.inner-section-bg {
	background-color: var(--surface-tint);
}

.inner-section {
	padding: 3.5rem 0 4rem;
}

/* --- Fiche chambre --- */
.room-details-slider .item img {
	border-radius: var(--radius-md);
	max-height: 520px;
	object-fit: cover;
	width: 100%;
}

.room-details-card {
	border-radius: var(--radius-md);
	box-shadow: var(--shadow-soft);
	border: 1px solid color-mix(in srgb, var(--color-ink) 6%, transparent);
}

.room-details-card .item-title h3 {
	font-family: var(--display-font-family);
	font-size: 1.5rem;
}

/* --- Fiche chambre : galerie type maquette --- */
.room-gallery-lux {
	margin-bottom: 1.75rem;
}

.room-gallery-lux__stage {
	position: relative;
	border-radius: var(--radius-md);
	overflow: hidden;
	background: var(--color-gray-500);
	box-shadow: var(--shadow-soft);
}

.room-gallery-lux__stage .room-details-slider {
	margin-bottom: 0;
	text-align: center;
}

.room-gallery-lux__stage .room-details-slider .item {
	justify-content: center;
}

.room-gallery-lux__stage .room-details-slider .item img {
	border-radius: 0;
	max-height: min(56vw, 520px);
	width: 100%;
	object-fit: cover;
	display: block;
}

.room-slide-link {
	display: block;
	line-height: 0;
	outline: none;
}

.room-gallery-lux__zoom {
	position: absolute;
	top: 1rem;
	inset-inline-end: 1rem;
	z-index: 4;
	width: 2.75rem;
	height: 2.75rem;
	border: none;
	border-radius: 50%;
	background: var(--color-white);
	color: var(--lux-gold);
	box-shadow: 0 6px 22px color-mix(in srgb, var(--color-ink) 18%, transparent);
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 1.15rem;
	cursor: pointer;
	transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.room-gallery-lux__zoom:hover {
	transform: scale(1.05);
	box-shadow: 0 8px 28px color-mix(in srgb, var(--color-ink) 22%, transparent);
}

.room-gallery-slick-arrow {
	width: 2.65rem !important;
	height: 2.65rem !important;
	border-radius: 50% !important;
	background: color-mix(in srgb, var(--color-ink) 92%, transparent) !important;
	color: var(--color-text-on-dark-muted) !important;
	border: 1px solid color-mix(in srgb, var(--color-white) 35%, transparent) !important;
	box-shadow: 0 8px 24px color-mix(in srgb, var(--color-ink) 25%, transparent) !important;
	z-index: 3 !important;
	display: flex !important;
	align-items: center;
	justify-content: center;
	padding: 0 !important;
}

.room-gallery-slick-arrow i {
	font-size: 1.1rem;
	line-height: 1;
}

.room-gallery-slick-arrow:hover,
.room-gallery-slick-arrow:focus {
	background: var(--color-button-gradient-bottom) !important;
	color: var(--color-white) !important;
}

.room-gallery-lux__stage .room-details-slider button.slick-prev.room-gallery-slick-arrow {
	left: 0.85rem !important;
	right: auto !important;
}

.room-gallery-lux__stage .room-details-slider button.slick-next.room-gallery-slick-arrow {
	right: 0.85rem !important;
	left: auto !important;
}

body.rtl .room-gallery-lux__stage .room-details-slider button.slick-prev.room-gallery-slick-arrow {
	left: auto !important;
	right: 0.85rem !important;
}

body.rtl .room-gallery-lux__stage .room-details-slider button.slick-next.room-gallery-slick-arrow {
	right: auto !important;
	left: 0.85rem !important;
}

.room-gallery-lux__dots-bar {
	position: absolute;
	bottom: 1rem;
	left: 0;
	right: 0;
	display: flex;
	justify-content: center;
	pointer-events: none;
	z-index: 3;
}

.room-gallery-lux__dots {
	pointer-events: auto;
}

.room-gallery-lux__dots ul.slick-dots {
	position: static;
	display: flex !important;
	align-items: center;
	justify-content: center;
	gap: 0.45rem;
	margin: 0;
	padding: 0.4rem 1.1rem;
	list-style: none;
	background: color-mix(in srgb, var(--color-ink) 88%, transparent);
	border-radius: 999px;
	box-shadow: 0 6px 20px color-mix(in srgb, var(--color-ink) 20%, transparent);
}

.room-gallery-lux__dots ul.slick-dots li {
	width: auto;
	height: auto;
	margin: 0;
}

.room-gallery-lux__dots .room-gallery-dot {
	width: 8px;
	height: 8px;
	padding: 0;
	border: none;
	border-radius: 50%;
	background: var(--color-white);
	opacity: 1;
	font-size: 0;
	line-height: 0;
	cursor: pointer;
	transition: box-shadow 0.2s ease, transform 0.2s ease;
}

.room-gallery-lux__dots li.slick-active .room-gallery-dot {
	box-shadow: 0 0 0 2px var(--color-white), 0 0 0 4px var(--lux-gold-bright);
	transform: scale(1.05);
}

.room-gallery-lux__thumbs {
	margin-top: 0.85rem;
	margin-bottom: 0;
}

.room-gallery-lux__thumbs .slick-slide {
	border-radius: var(--radius-sm);
	border-width: 1px;
}

/* Bloc « About » + carte prix */
.room-about-card__eyebrow {
	font-size: 0.72rem;
	font-weight: 600;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: var(--lux-gold);
	margin-bottom: 0.35rem;
}

.room-about-card__title-wrap h3 {
	font-family: var(--display-font-family);
	font-size: clamp(1.35rem, 2.5vw, 1.85rem);
	font-weight: 600;
	color: var(--lux-ink);
	margin-bottom: 0.85rem;
}

.room-spec-strip {
	display: flex;
	flex-wrap: wrap;
	gap: 0.65rem 1.25rem;
	list-style: none;
	padding: 0;
	margin: 0 0 1rem;
}

.room-spec-strip li {
	display: inline-flex;
	align-items: center;
	gap: 0.45rem;
	font-size: 0.875rem;
	color: color-mix(in srgb, var(--color-ink) 65%, transparent);
}

.room-spec-strip li i {
	color: var(--lux-gold);
	font-size: 1.05rem;
}

.room-about-card__category {
	margin-top: 0.25rem;
	font-size: 0.9rem;
}

.room-price-floating-card {
	border-radius: var(--radius-md);
	border: 1px solid color-mix(in srgb, var(--color-ink) 10%, transparent);
	background: var(--color-card-ivory);
	box-shadow: var(--shadow-soft);
	padding: 1.25rem 1.1rem;
	text-align: center;
}

.room-price-floating-card__price {
	font-family: var(--display-font-family);
	margin-bottom: 0.35rem;
}

.room-price-floating-card__amount {
	font-size: clamp(1.5rem, 3vw, 2rem);
	font-weight: 600;
	color: var(--lux-gold-bright);
	letter-spacing: 0.02em;
}

.room-price-floating-card__per {
	display: block;
	font-family: var(--primary-font-family);
	font-size: 0.8rem;
	font-weight: 500;
	color: color-mix(in srgb, var(--color-ink) 55%, transparent);
	margin-top: 0.15rem;
}

.room-price-floating-card__old {
	font-size: 0.9rem;
	text-decoration: line-through;
	color: var(--color-error);
	margin-bottom: 0.5rem;
}

.room-price-floating-card__wishlist {
	display: block;
	margin-top: 0.75rem;
	font-size: 0.68rem;
	font-weight: 700;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--lux-ink);
	text-decoration: none;
	border-top: 1px solid color-mix(in srgb, var(--color-ink) 8%, transparent);
	padding-top: 0.85rem;
}

.room-price-floating-card__wishlist:hover {
	color: var(--lux-gold);
}

.room-about-card__actions {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 1rem 1.5rem;
	margin-top: 1.5rem;
	padding-top: 1.25rem;
	border-top: 1px solid color-mix(in srgb, var(--color-ink) 8%, transparent);
}

.room-about-card__actions .booknow-btn {
	margin: 0 !important;
}

.room-about-card__share {
	margin-top: 0 !important;
}

.room-about-card__share .details-title {
	margin-bottom: 0.35rem;
	font-size: 0.85rem;
}

/* Description + lettrine */
.room-desc-card .room-desc-entry > p:first-of-type::first-letter,
.room-desc-entry > p:first-of-type::first-letter {
	float: left;
	font-family: var(--display-font-family);
	font-size: 3rem;
	line-height: 0.85;
	padding-right: 0.4rem;
	padding-top: 0.08rem;
	font-weight: 600;
	color: var(--lux-gold-bright);
}

.room-desc-card .details-title {
	font-family: var(--display-font-family);
	font-size: 1.15rem;
	margin-bottom: 0.75rem;
}

.room-desc-card {
	padding-bottom: 1.5rem;
	border-bottom: 1px solid color-mix(in srgb, var(--color-ink) 10%, transparent);
}

/* Grille équipements 3 colonnes */
.room-section-head {
	display: flex;
	align-items: center;
	gap: 0.75rem;
	margin-bottom: 1.1rem;
	flex-wrap: wrap;
}

.room-section-head__title {
	margin-bottom: 0 !important;
	font-family: var(--display-font-family);
	font-size: 1.2rem;
	font-weight: 600;
}

.room-section-head__accent {
	flex: 1;
	min-width: 3rem;
	height: 2px;
	background: linear-gradient(90deg, var(--lux-gold-bright), transparent);
	border-radius: 1px;
}

.room-similar-section {
	margin-top: 2.75rem;
	padding-top: 2rem;
	border-top: 1px solid color-mix(in srgb, var(--color-ink) 8%, transparent);
}

.room-similar-section__head {
	width: 100%;
	margin-bottom: 1.35rem;
}

/* Cartes « chambres similaires » : layout flex (évite les floats de style.css sur .pric-card / .book-now-btn / .item-meta) */
.room-similar-card {
	display: flex;
	flex-direction: column;
	height: 100%;
	margin-bottom: 0;
	overflow: hidden;
}

.room-similar-card .item-image {
	flex-shrink: 0;
}

.room-similar-card__body.item-content {
	flex: 1 1 auto;
	display: flex;
	flex-direction: column;
	padding-bottom: 0.85rem;
	overflow: visible;
}

.room-similar-card .item-title {
	flex-shrink: 0;
}

.room-similar-card .item-title a {
	font-size: clamp(1.02rem, 2.4vw, 1.2rem);
	line-height: 1.3;
	display: inline-block;
}

.room-similar-card__price.pric-card,
.room-similar-card .room-similar-card__price {
	float: none !important;
	display: flex !important;
	flex-wrap: wrap;
	align-items: baseline;
	gap: 0.25rem 0.5rem;
	margin-top: 0.65rem;
	width: 100%;
}

.room-similar-card__price .new-price,
.room-similar-card__price .old-price,
.room-similar-card__price .per-day-night {
	float: none !important;
	margin: 0 !important;
	margin-top: 0 !important;
}

.room-similar-card__price .per-day-night {
	font-size: 0.8rem;
	font-weight: 600;
	opacity: 0.75;
}

.room-similar-card__footer {
	flex-shrink: 0;
	margin-top: auto;
	padding: 0 0.95rem 1rem;
	display: flex;
	flex-direction: column;
	gap: 0.75rem;
	align-items: stretch;
}

.room-similar-card__meta.item-meta,
.room-similar-card ul.room-similar-card__meta {
	float: none !important;
	display: flex !important;
	flex-wrap: wrap;
	gap: 0.45rem;
	width: 100%;
	margin: 0 !important;
	padding: 0 !important;
	list-style: none;
	justify-content: flex-start;
}

.room-similar-card__meta li,
.room-similar-card ul.room-similar-card__meta li {
	float: none !important;
	margin: 0 !important;
	flex: 0 0 auto;
	font-size: 0.72rem;
	padding: 0.35rem 0.55rem !important;
}

.room-similar-card__btn.book-now-btn,
.room-similar-card a.room-similar-card__btn {
	float: none !important;
	width: 100%;
	text-align: center;
	border-radius: var(--radius-pill) !important;
	padding: 0.65rem 1rem !important;
	margin: 0 !important;
	align-self: stretch;
}

.details-list--amenities-grid {
	display: grid;
	grid-template-columns: repeat(1, minmax(0, 1fr));
	gap: 0.65rem;
	width: 100%;
	list-style: none;
	padding: 0 !important;
	margin: 0 !important;
}

@media (min-width: 576px) {
	.details-list--amenities-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (min-width: 992px) {
	.details-list--amenities-grid {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}
}

.details-list--amenities-grid li {
	display: flex !important;
	align-items: center;
	gap: 0.65rem;
	margin: 0 !important;
	padding: 0.75rem 0.85rem !important;
	background: color-mix(in srgb, var(--color-card-ivory-surface) 90%, transparent);
	border: 1px solid color-mix(in srgb, var(--color-ink) 8%, transparent);
	border-radius: var(--radius-sm);
	font-size: 0.72rem;
	font-weight: 700;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: var(--lux-ink);
	line-height: 1.35;
}

.details-list--amenities-grid li > i,
.details-list--amenities-grid li > .fa {
	flex-shrink: 0;
	margin: 0 !important;
	font-size: 1.15rem !important;
	color: var(--lux-gold) !important;
	width: 1.35rem;
	text-align: center;
}

.details-list--amenities-grid .room-detail-icon-img {
	flex-shrink: 0;
	width: 1.35rem;
	height: 1.35rem;
	object-fit: contain;
	margin: 0 !important;
}

.details-list--amenities-grid .details-list-label {
	flex: 1;
	min-width: 0;
	font-size: inherit;
	font-weight: inherit;
	letter-spacing: inherit;
	text-transform: inherit;
}

.details-list--amenities-grid .details-list-meta {
	font-weight: 600;
	opacity: 0.72;
	text-transform: none;
	letter-spacing: 0.02em;
}

.room-book-card {
	border-radius: var(--radius-md);
	padding: 1rem;
	background: var(--color-white);
	box-shadow: var(--shadow-soft);
	border: 1px solid color-mix(in srgb, var(--color-ink) 6%, transparent);
}

/* --- Fiche chambre : sidebar sticky + carte contact --- */
@media (min-width: 992px) {
	.room-page-sidebar {
		position: sticky;
		top: 5.75rem;
		z-index: 4;
	}
}

@media (max-width: 991.98px) {
	.room-page-sidebar {
		margin-top: 2rem;
	}
}

.sidebar.room-page-sidebar .widget-card.widget-card--room-contact,
.sidebar.checkout-summary .widget-card.widget-card--room-contact {
	background: linear-gradient(165deg, var(--color-card-ivory) 0%, var(--color-card-ivory-muted) 100%);
	border: 1px solid color-mix(in srgb, var(--color-ink) 8%, transparent);
	border-radius: var(--radius-md);
	box-shadow: var(--shadow-soft);
	margin-bottom: 1.25rem;
	overflow: hidden;
}

.sidebar.room-page-sidebar .widget-card.widget-card--room-contact .widget-title,
.sidebar.checkout-summary .widget-card.widget-card--room-contact .widget-title {
	display: none;
}

.widget-card--room-contact__head {
	display: flex;
	align-items: flex-start;
	gap: 0.9rem;
	padding: 1.15rem 1.15rem 1rem;
	border-bottom: 1px solid color-mix(in srgb, var(--color-ink) 6%, transparent);
	background: linear-gradient(135deg, color-mix(in srgb, var(--color-secondary-accent-light) 14%, transparent) 0%, transparent 58%);
}

.widget-card--room-contact__badge {
	flex-shrink: 0;
	width: 2.65rem;
	height: 2.65rem;
	display: flex;
	align-items: center;
	justify-content: center;
	border-radius: 50%;
	background: linear-gradient(145deg, var(--lux-gold-bright), var(--lux-gold));
	color: var(--color-white);
	font-size: 1.25rem;
	box-shadow: 0 6px 20px color-mix(in srgb, var(--color-secondary-accent) 35%, transparent);
}

.widget-card--room-contact__title {
	font-family: var(--display-font-family);
	font-size: 1.15rem;
	font-weight: 600;
	margin: 0 0 0.35rem;
	color: var(--lux-ink);
}

.widget-card--room-contact__intro {
	margin: 0;
	font-size: 0.82rem;
	line-height: 1.5;
	color: color-mix(in srgb, var(--color-ink) 68%, transparent);
	font-weight: 500;
}

.widget-card--room-contact__body {
	padding: 1rem 1.15rem 1.15rem;
}

.room-contact-lines {
	list-style: none;
	margin: 0 0 1rem;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: 0.5rem;
}

.room-contact-lines__link,
.room-contact-lines__item--static {
	display: flex;
	align-items: flex-start;
	gap: 0.65rem;
	text-decoration: none;
	color: inherit;
	padding: 0.5rem 0.55rem;
	margin: 0 -0.55rem;
	border-radius: var(--radius-sm);
	transition: background 0.2s ease;
}

.room-contact-lines__link:hover {
	background: color-mix(in srgb, var(--color-secondary-accent-light) 10%, transparent);
	color: inherit;
}

.room-contact-lines__link--static {
	cursor: default;
	pointer-events: none;
}

.room-contact-lines__icon {
	flex-shrink: 0;
	width: 2rem;
	height: 2rem;
	display: flex;
	align-items: center;
	justify-content: center;
	border-radius: var(--radius-sm);
	background: color-mix(in srgb, var(--color-white) 92%, transparent);
	border: 1px solid color-mix(in srgb, var(--color-ink) 6%, transparent);
	color: var(--lux-gold);
	font-size: 1rem;
}

.room-contact-lines__text {
	display: flex;
	flex-direction: column;
	gap: 0.1rem;
	min-width: 0;
}

.room-contact-lines__label {
	font-size: 0.68rem;
	font-weight: 700;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: color-mix(in srgb, var(--color-ink) 45%, transparent);
}

.room-contact-lines__value {
	font-size: 0.88rem;
	font-weight: 600;
	color: var(--lux-ink);
	word-break: break-word;
}

.room-contact-wa-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 0.55rem;
	width: 100%;
	padding: 0.85rem 1rem;
	border-radius: var(--radius-pill);
	font-size: 0.78rem;
	font-weight: 700;
	letter-spacing: 0.07em;
	text-transform: uppercase;
	text-decoration: none;
	color: var(--color-white) !important;
	background: linear-gradient(180deg, var(--color-success-1) 0%, var(--color-success-2) 45%, var(--color-success-3) 100%);
	box-shadow: 0 6px 22px color-mix(in srgb, var(--color-success-2) 38%, transparent);
	border: 1px solid color-mix(in srgb, var(--color-white) 22%, transparent);
	transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.room-contact-wa-btn:hover {
	color: var(--color-white) !important;
	transform: translateY(-1px);
	box-shadow: 0 8px 28px color-mix(in srgb, var(--color-success-2) 45%, transparent);
}

.room-contact-wa-btn i {
	font-size: 1.2rem;
}

.sidebar.room-page-sidebar .widget-card.widget-card--room-gallery {
	border-radius: var(--radius-md);
	border: 1px solid color-mix(in srgb, var(--color-ink) 8%, transparent);
	box-shadow: var(--shadow-soft);
	margin-bottom: 0;
}

.sidebar.room-page-sidebar .widget-card.widget-card--room-gallery .widget-title {
	font-family: var(--display-font-family);
	border-bottom-color: color-mix(in srgb, var(--color-ink) 8%, transparent);
}

body.rtl .widget-card--room-contact__head,
body.rtl .room-contact-lines__link,
body.rtl .room-contact-lines__item--static {
	flex-direction: row-reverse;
}

body.rtl .room-contact-wa-btn {
	flex-direction: row-reverse;
}

/* --- Formulaires globaux --- */
.form-control,
.form-select,
input.form-control,
textarea.form-control {
	border-radius: var(--radius-sm);
	border-color: var(--color-gray-400);
	padding: 0.65rem 0.9rem;
	transition: border-color 0.2s ease, box-shadow 0.2s ease;
}

.form-control:focus,
.form-select:focus {
	box-shadow: 0 0 0 3px color-mix(in srgb, var(--theme-color) 22%, transparent);
}

@supports not (color: color-mix(in srgb, red, blue)) {
	.form-control:focus,
	.form-select:focus {
		box-shadow: 0 0 0 3px color-mix(in srgb, var(--color-ink) 6%, transparent);
	}
}

/* --- Boutons --- */
.btn {
	border-radius: var(--radius-pill);
	font-weight: 600;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	font-size: 0.8rem;
	padding: 0.9rem 1.75rem;
}

.btn.theme-btn {
	box-shadow: 0 4px 18px color-mix(in srgb, var(--color-ink) 15%, transparent);
}

/* --- Auth (login / register) --- */
.register {
	max-width: 440px;
	width: 100%;
	border-radius: var(--radius-md);
	box-shadow: var(--shadow-card);
	border: 1px solid color-mix(in srgb, var(--color-ink) 6%, transparent);
}

.register h4 {
	font-family: var(--display-font-family);
	font-size: 1.65rem;
	font-weight: 600;
}

/* --- Checkout & panier --- */
.carttotals-card {
	border-radius: var(--radius-md);
	box-shadow: var(--shadow-soft);
	border-color: color-mix(in srgb, var(--color-ink) 8%, transparent);
}

.payment_card,
.room-book-card {
	margin-bottom: 1.25rem;
}

.inner-section .table {
	border-radius: var(--radius-sm);
	overflow: hidden;
}

.inner-section .table thead {
	background: var(--color-gray-500);
}

/* --- Espace client --- */
.my-dashbord .dashbord-sidebar {
	border-radius: var(--radius-md);
	overflow: hidden;
	border: 1px solid color-mix(in srgb, var(--color-ink) 8%, transparent);
	background: var(--color-white);
}

.sidebar-nav ul li a {
	font-weight: 500;
	transition: background 0.2s ease, color 0.2s ease;
}

.sidebar-nav ul li a:hover,
.sidebar-nav ul li a.active {
	background: color-mix(in srgb, var(--theme-color) 12%, var(--color-white));
	color: var(--theme-color);
}

@supports not (color: color-mix(in srgb, red, blue)) {
	.sidebar-nav ul li a:hover,
	.sidebar-nav ul li a.active {
		background: var(--color-gray-500);
	}
}

.profile-info .avatar {
	font-family: var(--display-font-family);
}

.my_card .pro-image {
	border-radius: var(--radius-sm);
	overflow: hidden;
}

/* --- Contact --- */
.contact-form,
.contact-map {
	border-radius: var(--radius-md);
	border: 1px solid color-mix(in srgb, var(--color-ink) 6%, transparent);
	box-shadow: var(--shadow-soft);
}

.contact_card .heading {
	font-family: var(--display-font-family);
	font-weight: 600;
	font-size: 2rem;
}

.contact-info .info .icon {
	border-width: 2px;
}

/* --- Article / page CMS --- */
.entry h1,
.entry h2,
.entry h3,
.entry h4,
.entry h5,
.entry h6 {
	font-family: var(--display-font-family);
}

/* --- Footer --- */
.footer-middle {
	background-color: var(--color-white);
	border-top: 2px solid color-mix(in srgb, var(--theme-color) 45%, transparent);
}

@supports not (color: color-mix(in srgb, red, blue)) {
	.footer-middle {
		border-top: 2px solid var(--theme-color);
	}
}

.footer-widget .widget-title h4,
.footer-widget .widget-title h3 {
	font-family: var(--display-font-family);
}

.footer-bottom {
	background: var(--surface-tint);
}

/* Footer : grille 4 colonnes + bloc newsletter */
.footer-main-grid {
	align-items: stretch;
}

.footer-main-grid .footer-widget-card {
	padding: 3.25rem 0.75rem 2.5rem;
}

@media (min-width: 992px) {
	.footer-main-grid .footer-widget-card {
		padding-inline: 1rem;
	}
}

/* Écrase responsive.css (padding bas à 0 + 40px) pour marges cohérentes */
body.theme-premium .footer-middle .footer-main-grid .footer-widget-card {
	padding: 2rem 0.85rem 1.85rem !important;
}

@media (min-width: 768px) {
	body.theme-premium .footer-middle .footer-main-grid .footer-widget-card {
		padding: 2.35rem 1rem 2rem !important;
	}
}

@media (min-width: 992px) {
	body.theme-premium .footer-middle .footer-main-grid .footer-widget-card {
		padding: 2.65rem 0.65rem 2.15rem !important;
	}
}

body.theme-premium .footer-main-grid > .footer-col {
	min-width: 0;
}

@media (max-width: 767.98px) {
	/* Colonnes empilées : moins d’air vertical (gouttières gy-2 + padding cartes réduit) */
	body.theme-premium .footer-middle .footer-main-grid .footer-widget-card {
		padding: 1.25rem 0.75rem 0.85rem !important;
	}
	body.theme-premium .footer-main-grid > .footer-col:first-child .footer-widget-card {
		padding-top: 1.5rem !important;
	}
	body.theme-premium .footer-main-grid > .footer-col:last-child .footer-widget-card {
		padding-bottom: 1rem !important;
	}
	body.theme-premium .footer-main-grid > .footer-col:not(:last-child) .footer-widget-card {
		margin-bottom: 0;
	}
}

/* Colonne liens (2/12 en grille 4+3+2+3) : liste un peu plus compacte */
@media (min-width: 992px) {
	.footer-main-grid .footer-col--links .widget-list--footer {
		font-size: 0.9375rem;
	}
}

.footer-widget .widget-title {
	font-size: 1.15rem;
	font-weight: 600;
	margin-bottom: 1.1rem;
	letter-spacing: 0.03em;
}

.footer-widget ul.widget-list.widget-list--footer li {
	width: 100%;
	float: none;
	clear: both;
	margin-bottom: 0.45rem;
}

/* Contact : flex (remplace les floats du thème d’origine) */
.footer-main-grid .footer-widget-contact {
	list-style: none;
	padding: 0;
	margin: 0;
}

.footer-main-grid .footer-widget-contact li {
	margin-bottom: 0rem !important;
}

.footer-main-grid .footer-widget-contact li:last-child {
	margin-bottom: 0;
}

.footer-main-grid .footer-widget-contact .contact-card {
	display: flex;
	align-items: flex-start;
	gap: 0.75rem;
	width: 100%;
}

.footer-main-grid .footer-widget-contact .contact-card::after {
	display: none;
}

.footer-main-grid .footer-widget-contact .contact-icon {
	float: none;
	width: 2.5rem;
	height: 2.5rem;
	min-width: 2.5rem;
	margin: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 1.2rem;
	line-height: 1;
	text-align: center;
}

.footer-main-grid .footer-widget-contact .contact-desc {
	float: none;
	width: auto;
	flex: 1;
	min-width: 0;
	padding-top: 0.15rem;
}

.footer-main-grid .footer-widget-contact .contact-desc p {
	word-break: break-word;
}

.footer-subscribe-lead {
	font-size: 0.8125rem;
	line-height: 1.45;
	margin-bottom: 0.75rem;
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
}

.footer-subscribe-panel {
	width: 100%;
	box-sizing: border-box;
	padding: 0.95rem 0.85rem;
	border-radius: var(--radius-md);
	border: 1px solid color-mix(in srgb, var(--color-ink) 8%, transparent);
	box-shadow: var(--shadow-soft);
	background: color-mix(in srgb, var(--color-white) 65%, transparent);
}

.footer-subscribe-form {
	display: flex;
	flex-direction: column;
	align-items: stretch;
	gap: 0.5rem;
	width: 100%;
	box-sizing: border-box;
}

.footer-subscribe-input {
	display: block;
	width: 100%;
	max-width: 100%;
	box-sizing: border-box;
	padding: 0.5rem 0.75rem !important;
	font-size: 0.875rem !important;
	min-height: 0;
	border-radius: var(--radius-sm) !important;
}

/* Bouton dédié footer : pas de .newsletter-btn (évite position absolute + ::before) */
.footer-subscribe-submit {
	display: block;
	width: 100%;
	max-width: 100%;
	box-sizing: border-box;
	position: relative;
	padding: 0.55rem 1rem !important;
	font-size: 0.75rem !important;
	font-weight: 700 !important;
	letter-spacing: 0.1em !important;
	text-transform: uppercase !important;
	line-height: 1.3 !important;
	border-radius: var(--radius-pill) !important;
	border: 1px solid color-mix(in srgb, var(--color-secondary-accent) 65%, transparent) !important;
	background: linear-gradient(168deg, var(--color-button-gradient-top) 0%, var(--color-dark-surface) 100%) !important;
	color: var(--color-text-on-dark-muted) !important;
	box-shadow: 0 6px 18px color-mix(in srgb, var(--color-ink) 12%, transparent) !important;
	transition: filter 0.2s ease, border-color 0.2s ease;
}

.footer-subscribe-submit:hover {
	filter: brightness(1.08);
	color: var(--color-white) !important;
	border-color: var(--lux-gold-bright) !important;
}

.footer-subscribe-msg {
	margin-top: 0.5rem;
	font-size: 0.8125rem;
	width: 100%;
	text-align: start;
}

.newsletter-card {
	box-shadow: var(--shadow-card);
	border: 1px solid color-mix(in srgb, var(--color-ink) 6%, transparent);
}

.newsletter-card h2 {
	font-family: var(--display-font-family);
	font-weight: 600;
}

/* --- Mobile menu --- */
.mobile-menu-wrapper .offcanvas-body {
	background: linear-gradient(180deg, var(--color-ink) 0%, var(--color-dark-surface) 100%);
}

.mobile-menu li > a {
	color: color-mix(in srgb, var(--color-white) 82%, transparent);
}

.mobile-menu li > a:hover,
.mobile-menu li.has-children-menu.active > a {
	color: var(--color-white);
}

.offcanvas-top .offcanvas-btn-close {
	color: var(--color-black);
}

/* --- Newsletter footer --- */
.footer-top {
	padding: 5rem 0;
}

/* --- Modale inscription --- */
.modal_newsletter_card .modal-content {
	border-radius: var(--radius-md);
	overflow: hidden;
}

.modal_newsletter_card .newsletter-card h2 {
	font-family: var(--display-font-family);
}

/* --- Cookies --- */
.cookie_consent_card {
	border-radius: var(--radius-md);
}

.cookie_consent_card .accept_btn {
	border-radius: var(--radius-pill);
}

/* --- Loader (clé d’hôtel — voir .hotel-preloader dans style.css) --- */
body.theme-premium .tw-loader {
	background: linear-gradient(
		160deg,
		var(--surface-tint) 0%,
		color-mix(in srgb, var(--color-white) 88%, var(--surface-tint)) 45%,
		var(--surface-tint) 100%
	);
}

body.theme-premium .hotel-preloader__mark {
	filter: drop-shadow(0 6px 24px color-mix(in srgb, var(--theme-color) 20%, transparent));
}

/* --- Scroll top --- */
a.scroll-to-top {
	border-radius: var(--radius-sm);
	width: 44px;
	height: 44px;
	line-height: 44px;
	box-shadow: var(--shadow-soft);
}

/* --- Merci / statut --- */
.thank span {
	filter: drop-shadow(0 4px 14px color-mix(in srgb, var(--color-ink) 20%, transparent));
}

/* --- Pagination (Bootstrap 5 ; éviter conflit avec nav flex Laravel) --- */
body.theme-premium .inner-section nav.d-flex.justify-content-between {
	flex-wrap: wrap;
	align-items: center;
	gap: 1rem 1.5rem;
}

body.theme-premium .inner-section nav .pagination {
	margin-bottom: 0;
	flex-wrap: wrap;
	justify-content: center;
}

.pagination .page-link {
	border-radius: var(--radius-sm);
	margin: 0 3px;
	border-color: var(--color-gray-400);
}

.pagination .page-item.active .page-link {
	border-color: var(--theme-color);
}

/* =============================================================================
   Couche finale — priorité absolue sur style.css + responsive.css
   (classe theme-premium sur le <body>, voir layouts/frontend.blade.php)
   ============================================================================= */

body.theme-premium:not(.rtl) {
	font-size: 17px !important;
	line-height: 1.65 !important;
	background-color: var(--surface-tint) !important;
	font-family: var(--primary-font-family) !important;
}

body.theme-premium:not(.rtl) p,
body.theme-premium:not(.rtl) label {
	font-size: 1rem !important;
}

/* Titres LTR : serif display (ne pas écraser les polices RTL) */
body.theme-premium:not(.rtl) h1,
body.theme-premium:not(.rtl) h2,
body.theme-premium:not(.rtl) h3,
body.theme-premium:not(.rtl) h4,
body.theme-premium:not(.rtl) h5,
body.theme-premium:not(.rtl) h6 {
	font-family: var(--display-font-family) !important;
	font-weight: 600 !important;
	letter-spacing: 0.03em !important;
}

body.theme-premium:not(.rtl) h1 {
	font-weight: 700 !important;
	font-size: clamp(2.1rem, 4.5vw, 3.6rem) !important;
}

body.theme-premium:not(.rtl) h2 {
	font-size: clamp(1.75rem, 3.5vw, 2.4rem) !important;
}

body.theme-premium:not(.rtl) .hero-screen .hero-content h1 {
	font-family: var(--display-font-family) !important;
	font-size: clamp(2.25rem, 5vw, 3.85rem) !important;
	font-weight: 600 !important;
	line-height: 1.15 !important;
}

body.theme-premium:not(.rtl) .breadcrumb-section .breadcrumb-card h2 {
	font-family: var(--display-font-family) !important;
	font-size: clamp(1.85rem, 4vw, 3rem) !important;
	font-weight: 600 !important;
}

body.theme-premium .top-header {
	background-color: var(--topbar-bg) !important;
}

body.theme-premium .header-menu {
	background-color: var(--color-white) !important;
	box-shadow: 0 1px 0 color-mix(in srgb, var(--color-ink) 6%, transparent) !important;
}

/* Contraste barre du haut : liens lisibles (pas les .dropdown-item : fond blanc du sous-menu) */
body.theme-premium .top-header ul.top-list-1 li {
	color: color-mix(in srgb, var(--color-white) 92%, transparent);
}

body.theme-premium .top-header ul.top-list li > a:not(.dropdown-item),
body.theme-premium .top-header ul.top-list li a.dropdown-toggle {
	color: color-mix(in srgb, var(--color-white) 92%, transparent) !important;
}

/* Sous-menus compte + langue : texte foncé sur fond clair */
body.theme-premium .top-header .dropdown-menu {
	background-color: var(--color-white);
	border: 1px solid color-mix(in srgb, var(--color-ink) 8%, transparent);
	border-radius: var(--radius-sm);
	box-shadow: var(--shadow-card);
	padding: 0.35rem 0;
}

body.theme-premium .top-header .dropdown-menu .dropdown-item {
	color: var(--color-black) !important;
	font-size: 0.875rem;
	font-weight: 500;
}

body.theme-premium .top-header .dropdown-menu .dropdown-item:hover,
body.theme-premium .top-header .dropdown-menu .dropdown-item:focus {
	color: var(--color-white) !important;
	background-color: var(--theme-color) !important;
}

body.theme-premium .inner-section-bg {
	background-color: var(--surface-tint) !important;
}

/* Sections : alternance légère pour casser le « plat » du thème d’origine */
body.theme-premium .about-section,
body.theme-premium .offer-section,
body.theme-premium .service-section {
	background-color: color-mix(in srgb, var(--color-white) 55%, transparent) !important;
}

body.theme-premium .testimonial-section,
body.theme-premium .blog-section {
	background-color: transparent !important;
}

/* Mobile / tablette : responsive.css fixait des tailles en px — on réapplique la charte */
@media (max-width: 991px) {
	body.theme-premium:not(.rtl) .hero-screen .hero-content h1 {
		font-size: clamp(1.9rem, 8vw, 2.65rem) !important;
	}
}

@media (max-width: 767px) {
	body.theme-premium:not(.rtl) .hero-screen .hero-content h1 {
		font-size: clamp(1.75rem, 9vw, 2.4rem) !important;
	}

	body.theme-premium:not(.rtl) .breadcrumb-section .breadcrumb-card h2 {
		font-size: clamp(1.45rem, 7vw, 1.9rem) !important;
	}
}

body.theme-premium .hero-screen {
	padding-top: 220px !important;
	padding-bottom: 260px !important;
}

@media (max-width: 767px) {
	body.theme-premium .hero-screen {
		padding-top: 100px !important;
		padding-bottom: 120px !important;
	}
}

/* =============================================================================
   Thème premium : toutes les teintes ci-dessous passent par les jetons
   injectés depuis le panel (voir :root dans layouts/frontend.blade.php).
   ============================================================================= */
body.theme-premium {
	/* Alias « luxe » → uniquement les jetons du panel (layouts/frontend.blade.php :root) */
	--lux-ink: var(--color-ink);
	--lux-paper: var(--color-paper);
	--lux-stone: var(--color-stone);
	--lux-gold: var(--color-secondary-accent);
	--lux-gold-bright: var(--color-secondary-accent-light);
	--lux-gold-soft: var(--color-secondary-accent-soft);
	--lux-charcoal: var(--color-dark-surface);
}

/* Fond global = papier (admin) */
body.theme-premium:not(.rtl) {
	background-color: var(--lux-paper) !important;
}

/* Hero : ciel plus cinéma, moins « bleu template » */
body.theme-premium .hero-overlay::before {
	background: linear-gradient(
		118deg,
		color-mix(in srgb, var(--color-ink) 78%, transparent) 0%,
		color-mix(in srgb, var(--color-ink) 45%, transparent) 48%,
		color-mix(in srgb, var(--color-ink) 65%, transparent) 100%
	) !important;
	opacity: 1 !important;
}

body.theme-premium .breadcrumb-section::before {
	background: linear-gradient(
		125deg,
		color-mix(in srgb, var(--color-ink) 75%, transparent) 0%,
		color-mix(in srgb, var(--color-ink) 50%, transparent) 100%
	) !important;
	opacity: 1 !important;
}

body.theme-premium .breadcrumb-section {
	background-color: var(--color-breadcrumb-bg) !important;
}

/* Sous-titres de section : or/bronze, pas le rose vif du thème admin */
body.theme-premium .section-heading h5,
body.theme-premium .about-card .about-title h5 {
	color: var(--lux-gold) !important;
}

/* Menu : hover discret luxe */
body.theme-premium .tp-menu ul li:hover > a,
body.theme-premium .tp-menu ul li.active > a {
	color: var(--lux-gold) !important;
}

body.theme-premium .tp-menu ul > li:hover > a.tp-updown::before {
	color: var(--lux-gold) !important;
}

/* Liens texte (hors boutons) */
body.theme-premium .main a:hover:not(.btn):not(.theme-btn):not(.page-link) {
	color: var(--lux-gold-bright) !important;
}

/* BOUTONS : rupture nette avec l’ancien style coloré */
body.theme-premium .btn.theme-btn,
body.theme-premium a.btn.theme-btn {
	background: linear-gradient(168deg, var(--color-button-gradient-top) 0%, var(--lux-charcoal) 55%, var(--color-button-gradient-bottom) 100%) !important;
	color: var(--color-text-on-dark) !important;
	border: 1px solid var(--lux-gold) !important;
	box-shadow: 0 10px 36px color-mix(in srgb, var(--color-ink) 28%, transparent) !important;
	text-transform: uppercase !important;
	letter-spacing: 0.14em !important;
	font-size: 0.72rem !important;
	font-weight: 700 !important;
}

body.theme-premium .btn.theme-btn::before,
body.theme-premium a.btn.theme-btn::before {
	background: color-mix(in srgb, var(--color-secondary-accent-light) 15%, transparent) !important;
}

body.theme-premium .btn.theme-btn:hover,
body.theme-premium a.btn.theme-btn:hover {
	color: var(--color-white) !important;
	filter: brightness(1.06);
	border-color: var(--lux-gold-bright) !important;
}

/* Badges / pastilles encore lisibles */
body.theme-premium .item-card .item-image .item-label {
	background: var(--lux-charcoal) !important;
	color: var(--color-text-on-dark-muted) !important;
	border: 1px solid var(--lux-gold-soft) !important;
}

/* Carte recherche dates : présence forte (variante claire uniquement) */
body.theme-premium .hero-section .search-card:not(.search-card--lux) .search-card-inner {
	background: var(--color-card-ivory-surface) !important;
	box-shadow: 0 28px 80px color-mix(in srgb, var(--color-ink) 22%, transparent) !important;
	border: 1px solid color-mix(in srgb, var(--color-secondary-accent) 35%, transparent) !important;
}

/* Grille chambres : dégradé pierre / grille / papier (admin) */
body.theme-premium .featured-section {
	background: linear-gradient(
		185deg,
		var(--lux-stone) 0%,
		var(--color-room-grid-mid) 35%,
		var(--lux-paper) 100%
	) !important;
}

body.theme-premium .item-card {
	background: var(--color-card-ivory) !important;
	border: 1px solid color-mix(in srgb, var(--color-ink) 7%, transparent) !important;
	box-shadow: 0 18px 50px color-mix(in srgb, var(--color-ink) 11%, transparent) !important;
}

/* Blog / offres / témoignages */
body.theme-premium .blog-card,
body.theme-premium .offer-card,
body.theme-premium .testimonial-card,
body.theme-premium .service-card {
	background: var(--color-card-ivory-surface) !important;
	border: 1px solid color-mix(in srgb, var(--color-ink) 6%, transparent) !important;
}

/* Offres : overlay sur la photo (style.css utilisait encore du bleu fixe) */
body.theme-premium .offer-card::before {
	background: linear-gradient(
		180deg,
		color-mix(in srgb, var(--color-ink) 70%, transparent) 0%,
		transparent 100%
	) !important;
}

/* Footer : bandeau distinct */
body.theme-premium .footer-middle {
	border-top: 3px solid var(--lux-gold) !important;
	background: var(--color-card-ivory-muted) !important;
}

body.theme-premium .footer-bottom {
	background: var(--color-band-beige) !important;
}

body.theme-premium .footer-subscribe-panel {
	border: 1px solid color-mix(in srgb, var(--color-secondary-accent) 28%, transparent) !important;
	background: color-mix(in srgb, var(--color-card-ivory-surface) 92%, transparent) !important;
}

body.theme-premium .footer-subscribe-lead {
	color: color-mix(in srgb, var(--color-ink) 78%, transparent) !important;
}

body.theme-premium .footer-subscribe-submit {
	background: linear-gradient(168deg, var(--color-button-gradient-top) 0%, var(--lux-charcoal) 100%) !important;
	color: var(--color-text-on-dark-muted) !important;
	border: 1px solid var(--lux-gold) !important;
	box-shadow: 0 8px 22px color-mix(in srgb, var(--color-ink) 20%, transparent) !important;
}

body.theme-premium .footer-subscribe-submit:hover {
	border-color: var(--lux-gold-bright) !important;
}

/* Pagination active */
body.theme-premium .page-item.active .page-link {
	background-color: var(--lux-charcoal) !important;
	border-color: var(--lux-gold) !important;
	color: var(--color-text-on-dark-muted) !important;
}

/* Scroll top */
body.theme-premium a.scroll-to-top {
	background: var(--lux-charcoal) !important;
	color: var(--color-text-on-dark-muted) !important;
	border: 1px solid var(--lux-gold) !important;
}

body.theme-premium a.scroll-to-top:hover {
	background: var(--lux-gold) !important;
	color: var(--lux-ink) !important;
}

/* Newsletter : même ADN que les CTA */
body.theme-premium .newsletter-card .newsletter-form .newsletter-btn,
body.theme-premium .btn.newsletter-btn {
	background: linear-gradient(168deg, var(--color-button-gradient-top) 0%, var(--lux-charcoal) 100%) !important;
	color: var(--color-text-on-dark-muted) !important;
	border: 1px solid var(--lux-gold) !important;
}

body.theme-premium .newsletter-card .newsletter-form input.form-control {
	border-color: color-mix(in srgb, var(--color-secondary-accent) 55%, transparent) !important;
}

body.theme-premium .btn.newsletter-btn::before {
	background: color-mix(in srgb, var(--color-secondary-accent-light) 20%, transparent) !important;
}

/* --- About : mise en page « palace » (texte à gauche, collage à droite) --- */
body.theme-premium .about-section-elegant {
	position: relative;
	background-color: var(--color-page-offwhite) !important;
	overflow: hidden;
}

body.theme-premium .about-section-elegant::before {
	content: '';
	position: absolute;
	inset: -20%;
	background-image:
		repeating-linear-gradient(
			-14deg,
			transparent,
			transparent 52px,
			color-mix(in srgb, var(--color-secondary-accent) 4.5%, transparent) 52px,
			color-mix(in srgb, var(--color-secondary-accent) 4.5%, transparent) 53px
		),
		repeating-linear-gradient(
			11deg,
			transparent,
			transparent 88px,
			color-mix(in srgb, var(--color-ink) 2.5%, transparent) 88px,
			color-mix(in srgb, var(--color-ink) 2.5%, transparent) 89px
		),
		radial-gradient(ellipse 55% 45% at 72% 38%, color-mix(in srgb, var(--color-secondary-accent) 6%, transparent) 0%, transparent 62%);
	pointer-events: none;
	z-index: 0;
}

body.theme-premium .about-section-elegant > .container {
	position: relative;
	z-index: 1;
}

body.theme-premium .about-card-elegant {
	padding: 0 !important;
	max-width: 36rem;
}

body.theme-premium .about-elegant-accent {
	width: 3rem;
	height: 2px;
	background: linear-gradient(90deg, var(--lux-gold-bright), var(--lux-gold));
	margin-bottom: 1.25rem;
	border-radius: 1px;
}

body.theme-premium .about-elegant-subtitle {
	font-family: var(--display-font-family);
	font-size: 1.05rem;
	font-style: italic;
	font-weight: 500;
	color: var(--lux-gold) !important;
	margin-bottom: 0.65rem;
	letter-spacing: 0.02em;
}

body.theme-premium .about-title-elegant h2 {
	font-family: var(--display-font-family);
	font-size: clamp(2rem, 3.5vw, 2.75rem);
	font-weight: 600;
	color: var(--lux-ink) !important;
	line-height: 1.15;
	margin-bottom: 1.35rem;
	letter-spacing: 0.02em;
}

body.theme-premium .about-elegant-body {
	margin-bottom: 1.5rem;
}

body.theme-premium .about-elegant-body p {
	font-family: var(--display-font-family);
	font-size: 1.05rem;
	line-height: 1.75;
	color: color-mix(in srgb, var(--color-ink) 78%, transparent);
	margin-bottom: 1rem;
}

body.theme-premium .about-elegant-body p:last-child {
	margin-bottom: 0;
}

body.theme-premium .about-dropcap::first-letter {
	float: left;
	font-family: var(--display-font-family);
	font-size: 3.5rem;
	line-height: 0.82;
	padding-right: 0.45rem;
	padding-top: 0.12rem;
	font-weight: 600;
	color: var(--lux-gold-bright);
}

body.theme-premium .about-elegant-stats .info-card {
	padding: 14px 8px;
	box-shadow: 0 6px 28px color-mix(in srgb, var(--color-ink) 6%, transparent) !important;
}

body.theme-premium .about-elegant-stats .info-card .content h4 {
	font-size: 15px;
}

body.theme-premium .about-elegant-cta {
	margin-top: 0.25rem;
	padding: 0.85rem 1.5rem !important;
}

/* Collage photos */
body.theme-premium .about-collage {
	position: relative;
	width: 100%;
	min-height: clamp(280px, 42vw, 420px);
	padding: 1.5rem 2.5rem 2rem 0.5rem;
	margin-inline: auto;
	max-width: 540px;
}

body.theme-premium .about-collage__frame {
	position: absolute;
	z-index: 0;
	width: 88%;
	height: 78%;
	left: 50%;
	top: 52%;
	transform: translate(-50%, -50%) translate(10px, 12px);
	border: 1px solid color-mix(in srgb, var(--color-secondary-accent) 22%, transparent);
	border-radius: var(--radius-md);
	pointer-events: none;
}

body.theme-premium .about-collage__main {
	position: relative;
	z-index: 2;
	width: 88%;
	margin-inline: auto;
	border-radius: var(--radius-md);
	overflow: hidden;
	box-shadow: 0 18px 50px color-mix(in srgb, var(--color-ink) 14%, transparent);
	background: var(--color-gray-500);
}

body.theme-premium .about-collage__main img {
	display: block;
	width: 100%;
	height: auto;
	aspect-ratio: 16 / 10;
	object-fit: cover;
}

body.theme-premium .about-collage__sat {
	position: absolute;
	z-index: 3;
	border-radius: var(--radius-md);
	overflow: hidden;
	box-shadow: 0 14px 36px color-mix(in srgb, var(--color-ink) 18%, transparent);
	background: var(--color-gray-500);
}

body.theme-premium .about-collage__sat img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	aspect-ratio: 16 / 10;
}

body.theme-premium .about-collage__sat--tr {
	width: 46%;
	inset-inline-end: 0;
	top: -2%;
}

body.theme-premium .about-collage__sat--bl {
	width: 40%;
	inset-inline-start: 0;
	bottom: -4%;
}

body.theme-premium .about-collage__diamond {
	position: absolute;
	z-index: 4;
	inset-inline-end: 0;
	top: 50%;
	transform: translateY(-50%);
	width: 44px;
	height: 44px;
	display: flex;
	align-items: center;
	justify-content: center;
	border: 1px solid color-mix(in srgb, var(--color-secondary-accent) 45%, transparent);
	border-radius: 50%;
	background: color-mix(in srgb, var(--color-card-ivory) 92%, transparent);
	box-shadow: 0 6px 20px color-mix(in srgb, var(--color-ink) 6%, transparent);
}

body.theme-premium .about-collage__diamond-shape {
	display: block;
	width: 12px;
	height: 12px;
	background: linear-gradient(135deg, var(--lux-gold-bright), var(--lux-gold));
	transform: rotate(45deg);
	border-radius: 1px;
}

@media (max-width: 991px) {
	body.theme-premium .about-collage {
		min-height: 300px;
		padding: 1rem 1rem 2.5rem;
		max-width: 100%;
	}

	body.theme-premium .about-collage__diamond {
		inset-inline-end: 8px;
		top: auto;
		bottom: 0;
		transform: none;
	}
}

@media (max-width: 575px) {
	body.theme-premium .about-collage__sat--tr {
		width: 42%;
		top: 2%;
	}

	body.theme-premium .about-collage__sat--bl {
		width: 36%;
		bottom: 2%;
	}
}

/* --- Hero : carte recherche luxe (dégradé boutons + encre admin) --- */
body.theme-premium .hero-section .search-card--lux .search-card-inner.search-card-lux {
	position: relative;
	padding: 1.75rem 1.5rem 1.5rem !important;
	/* Fond : jetons gradient + surface sombre du panel */
	background: linear-gradient(
		168deg,
		var(--color-button-gradient-top) 0%,
		color-mix(in srgb, var(--color-button-gradient-top) 50%, var(--color-button-gradient-bottom)) 38%,
		var(--lux-charcoal) 72%,
		var(--color-ink) 100%
	) !important;
	border-radius: var(--radius-md) !important;
	border: 2px solid color-mix(in srgb, var(--color-ink) 85%, transparent) !important;
	box-shadow:
		0 22px 56px color-mix(in srgb, var(--color-ink) 34%, transparent),
		0 10px 30px color-mix(in srgb, var(--color-ink) 20%, transparent),
		inset 0 0 0 1px color-mix(in srgb, var(--color-secondary-accent-light) 22%, transparent) !important;
	max-width: 100%;
	box-sizing: border-box;
	overflow: visible;
}

body.theme-premium .search-card-lux__ornament {
	display: flex;
	justify-content: center;
	align-items: center;
	gap: 0.45rem;
	margin: 0 0 1rem;
}

body.theme-premium .search-card-lux__ornament span {
	display: block;
	width: 5px;
	height: 5px;
	border-radius: 50%;
	background: linear-gradient(145deg, var(--lux-gold-bright), var(--lux-gold));
	box-shadow: 0 0 8px color-mix(in srgb, var(--color-secondary-accent-light) 35%, transparent);
}

body.theme-premium .search-lux-form {
	width: 100%;
	max-width: 100%;
	min-width: 0;
	box-sizing: border-box;
}

body.theme-premium .search-lux-grid {
	display: grid;
	grid-template-columns: minmax(0, 1.35fr) minmax(0, 0.82fr) minmax(0, 1.15fr) auto;
	gap: 0.65rem;
	align-items: stretch;
	width: 100%;
	max-width: 100%;
	min-width: 0;
	box-sizing: border-box;
}

/* Grille : min-width auto des enfants provoque débordement < ~500px */
body.theme-premium .search-lux-grid > * {
	min-width: 0;
	max-width: 100%;
}

body.theme-premium .search-lux-field {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 0.65rem;
	min-height: 3.25rem;
	min-width: 0;
	max-width: 100%;
	box-sizing: border-box;
	padding: 0.5rem 0.85rem;
	background: color-mix(in srgb, var(--color-ink) 45%, transparent);
	border: 1px solid color-mix(in srgb, var(--color-secondary-accent-light) 14%, transparent);
	border-radius: var(--radius-sm);
}

body.theme-premium .search-lux-label {
	flex-shrink: 1;
	min-width: 0;
	font-family: var(--primary-font-family);
	font-size: 0.82rem;
	font-weight: 500;
	letter-spacing: 0.04em;
	color: color-mix(in srgb, var(--color-text-on-dark) 88%, transparent);
}

body.theme-premium .search-lux-label::after {
	content: ':';
	margin-inline-start: 1px;
}

body.theme-premium .search-lux-field--dates {
	flex-wrap: wrap;
}

@media (min-width: 992px) {
	body.theme-premium .search-lux-field--dates {
		flex-wrap: nowrap;
	}

	body.theme-premium .search-lux-label {
		flex-shrink: 0;
		min-width: auto;
	}
}

body.theme-premium .search-lux-dates-inputs {
	display: flex;
	align-items: center;
	gap: 0.35rem;
	flex: 1;
	min-width: 0;
}

body.theme-premium .search-lux-input--date {
	flex: 1;
	min-width: 0;
	padding: 0.35rem 0.25rem !important;
	font-size: 0.8rem !important;
	color: color-mix(in srgb, var(--color-text-on-dark) 95%, transparent) !important;
	background: transparent !important;
	border: none !important;
	box-shadow: none !important;
	border-radius: 0 !important;
}

body.theme-premium .search-lux-input--date::placeholder {
	color: color-mix(in srgb, var(--color-text-on-dark) 38%, transparent);
}

body.theme-premium .search-lux-input--date:focus {
	outline: none;
	box-shadow: 0 1px 0 color-mix(in srgb, var(--color-secondary-accent-light) 45%, transparent) !important;
}

body.theme-premium .search-lux-date-sep {
	flex-shrink: 0;
	width: 1px;
	height: 1.1rem;
	background: color-mix(in srgb, var(--color-white) 14%, transparent);
}

body.theme-premium .search-lux-stepper {
	display: inline-flex;
	align-items: center;
	gap: 0.15rem;
	max-width: 100%;
	flex-shrink: 0;
	box-sizing: border-box;
}

body.theme-premium .search-lux-step-btn {
	display: flex;
	align-items: center;
	justify-content: center;
	min-width: 1.65rem;
	padding: 0.2rem 0.35rem;
	font-size: 1.1rem;
	line-height: 1;
	color: color-mix(in srgb, var(--color-white) 45%, transparent);
	background: transparent;
	border: none;
	border-radius: var(--radius-sm);
	cursor: pointer;
	transition: color 0.15s ease, background 0.15s ease;
}

body.theme-premium .search-lux-step-btn:hover {
	color: color-mix(in srgb, var(--color-white) 85%, transparent);
	background: color-mix(in srgb, var(--color-white) 6%, transparent);
}

body.theme-premium .search-lux-step-btn--plus {
	color: var(--lux-gold-bright) !important;
}

body.theme-premium .search-lux-step-btn--plus:hover {
	color: color-mix(in srgb, var(--color-secondary-accent-light) 72%, var(--color-white)) !important;
	background: color-mix(in srgb, var(--color-secondary-accent-light) 12%, transparent);
}

body.theme-premium .search-lux-num {
	width: 2.1rem;
	padding: 0.15rem 0 !important;
	font-size: 0.95rem !important;
	font-weight: 600;
	text-align: center;
	color: var(--color-text-on-dark-muted) !important;
	background: transparent !important;
	border: none !important;
	box-shadow: none !important;
	border-radius: 0 !important;
	-moz-appearance: textfield;
	appearance: textfield;
}

body.theme-premium .search-lux-num::-webkit-outer-spin-button,
body.theme-premium .search-lux-num::-webkit-inner-spin-button {
	-webkit-appearance: none;
	margin: 0;
}

body.theme-premium .search-lux-field--guests {
	align-items: flex-start;
	flex-direction: column;
	justify-content: center;
	gap: 0.35rem;
	min-height: auto;
	padding-block: 0.55rem;
}

@media (min-width: 992px) {
	body.theme-premium .search-lux-field--guests {
		flex-direction: row;
		align-items: center;
		justify-content: space-between;
		gap: 0.5rem;
	}
}

body.theme-premium .search-lux-guests-steppers {
	display: flex;
	flex-direction: row;
	flex-wrap: nowrap;
	align-items: flex-end;
	justify-content: space-between;
	gap: 0.5rem 0.65rem;
	width: 100%;
	min-width: 0;
}

@media (min-width: 992px) {
	body.theme-premium .search-lux-guests-steppers {
		width: auto;
		flex: 1;
		justify-content: flex-end;
	}

	body.theme-premium .search-lux-guest-pair {
		flex: 0 1 auto;
		max-width: none;
		align-items: flex-end;
	}
}

body.theme-premium .search-lux-guest-pair {
	display: flex;
	flex-direction: column;
	align-items: stretch;
	gap: 0.2rem;
	flex: 1 1 0;
	min-width: 0;
	max-width: 50%;
}

body.theme-premium .search-lux-micro {
	font-size: 0.62rem;
	font-weight: 600;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: color-mix(in srgb, var(--color-text-on-dark) 45%, transparent);
}

body.theme-premium .search-lux-action {
	display: flex;
	align-items: stretch;
	min-width: 0;
}

body.theme-premium .search-lux-submit {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	max-width: 100%;
	box-sizing: border-box;
	min-height: 3.25rem;
	padding: 0.75rem 1.35rem !important;
	margin: 0 !important;
	font-family: var(--primary-font-family) !important;
	font-size: 0.72rem !important;
	font-weight: 800 !important;
	letter-spacing: 0.16em !important;
	text-transform: uppercase !important;
	color: var(--color-ink) !important;
	background: color-mix(in srgb, var(--color-secondary-accent-light) 58%, var(--color-white)) !important;
	border: 1px solid color-mix(in srgb, var(--color-ink) 12%, transparent) !important;
	border-radius: var(--radius-md) !important;
	box-shadow: 0 10px 28px color-mix(in srgb, var(--color-ink) 35%, transparent) !important;
	transition: filter 0.15s ease, transform 0.15s ease;
}

body.theme-premium .search-lux-submit:hover {
	filter: brightness(1.06);
	color: var(--color-ink) !important;
}

body.theme-premium .search-lux-submit:focus-visible {
	outline: 2px solid var(--lux-gold-bright);
	outline-offset: 2px;
}

body.theme-premium .hero-section .search-card--lux .search-card-inner .search-btn.search-lux-submit {
	margin-top: 0 !important;
	width: 100%;
	white-space: nowrap;
}

/* Carte recherche sur page catégorie (pas de slider hero) : flux normal, léger chevauchement du breadcrumb */
body.theme-premium .hero-section.category-search-static {
	padding: 0;
	background: transparent;
	min-height: 0;
}

body.theme-premium .hero-section.category-search-static .search-card.search-card--lux {
	position: relative !important;
	bottom: auto !important;
	left: auto;
	right: auto;
	width: 100%;
	margin-top: clamp(-3.25rem, -7vw, -1.75rem);
	padding: 0 0 clamp(1.25rem, 3vw, 2rem);
	overflow: visible;
	box-sizing: border-box;
}

body.theme-premium .hero-section.category-search-static + .inner-section {
	padding-top: clamp(2.5rem, 5vw, 3.75rem);
}

/* Search lux : position / padding (écrase responsive.css 80px sur .hero-section .search-card) */
/* Pas d’overflow-x:hidden : il rognait l’ombre ; marge latérale pour que l’ombre tienne dans la zone */
body.theme-premium .hero-section .search-card.search-card--lux {
	left: 0;
	right: 0;
	max-width: 100%;
	overflow: visible;
	box-sizing: border-box;
	padding-inline: clamp(0.35rem, 2vw, 1rem);
}

@media (max-width: 991.98px) {
	body.theme-premium .hero-section .search-card.search-card--lux {
		position: relative !important;
		bottom: auto !important;
		width: 100%;
		padding: clamp(1.35rem, 3.5vw, 2rem) 0 clamp(1.75rem, 4vw, 2.5rem) !important;
		margin-top: clamp(-2.75rem, -6vw, -1.5rem);
	}

	/* Une colonne < lg : évite champs Rooms / Guests trop étroits côte à côte */
	body.theme-premium .search-lux-grid {
		grid-template-columns: 1fr !important;
		gap: 0.75rem !important;
	}

	body.theme-premium .search-lux-field--dates,
	body.theme-premium .search-lux-action {
		grid-column: 1 / -1 !important;
	}

	body.theme-premium .search-lux-field {
		min-height: 0;
	}

	/* Adult + enfant : une seule ligne, deux colonnes élastiques (min-width: 0 évite le débordement) */
	body.theme-premium .search-lux-field--guests .search-lux-guests-steppers {
		width: 100%;
		flex-direction: row !important;
		flex-wrap: nowrap !important;
		align-items: flex-end !important;
		justify-content: space-between !important;
		gap: 0.35rem 0.45rem !important;
		min-width: 0;
	}

	body.theme-premium .search-lux-field--guests .search-lux-guest-pair {
		flex: 1 1 0 !important;
		min-width: 0 !important;
		max-width: calc(50% - 0.25rem);
		align-items: stretch;
	}

	body.theme-premium .search-lux-field--guests .search-lux-guest-pair .search-lux-stepper {
		max-width: 100%;
		justify-content: center;
		width: 100%;
	}

	body.theme-premium .search-lux-field--guests .search-lux-micro {
		text-align: center;
		letter-spacing: 0.08em;
	}
}

@media (max-width: 575.98px) {
	body.theme-premium .hero-section .search-card.search-card--lux {
		margin-top: -1.25rem;
		padding: 1.1rem 0 1.5rem !important;
	}

	body.theme-premium .hero-section .search-card--lux .search-card-inner.search-card-lux {
		padding: 1.15rem 0.9rem 1.05rem !important;
	}

	body.theme-premium .search-card--lux .container {
		padding-left: max(0.75rem, env(safe-area-inset-left, 0px));
		padding-right: max(0.75rem, env(safe-area-inset-right, 0px));
	}

	body.theme-premium .search-lux-field,
	body.theme-premium .search-lux-field--guests {
		flex-direction: column !important;
		align-items: stretch !important;
		justify-content: flex-start;
		gap: 0.5rem;
		padding: 0.6rem 0.75rem;
	}

	body.theme-premium .search-lux-field:not(.search-lux-field--guests) .search-lux-stepper {
		align-self: flex-start;
	}

	body.theme-premium .search-lux-label {
		width: 100%;
	}

	body.theme-premium .search-lux-label::after {
		display: none;
	}

	body.theme-premium .search-lux-dates-inputs {
		width: 100%;
		flex-wrap: nowrap;
		gap: 0.5rem;
	}

	body.theme-premium .search-lux-input--date {
		flex: 1 1 0;
		min-width: 0;
		font-size: 0.78rem !important;
	}

	/* Steppers invités compacts : rester sur une ligne même < 400px */
	body.theme-premium .search-lux-field--guests .search-lux-guests-steppers {
		gap: 0.25rem 0.35rem !important;
	}

	body.theme-premium .search-lux-field--guests .search-lux-step-btn {
		min-width: 1.3rem;
		padding: 0.1rem 0.18rem;
		font-size: 0.95rem;
	}

	body.theme-premium .search-lux-field--guests .search-lux-num {
		width: 1.55rem;
		font-size: 0.8rem !important;
	}

	body.theme-premium .search-lux-submit {
		min-height: 2.85rem;
		padding: 0.65rem 1rem !important;
		font-size: 0.68rem !important;
		white-space: normal;
		line-height: 1.35;
		text-align: center;
	}
}

/* RTL : éviter le padding générique des inputs de la search-card */
body.theme-premium.rtl .search-card--lux .search-lux-input--date {
	padding: 0.35rem 0.25rem !important;
}

body.theme-premium.rtl .search-card--lux .search-lux-num {
	padding: 0.15rem 0 !important;
}

/* Badges type de chambre — alignés sur les cartes / puces du thème (pilule, rayons, ombre soft) */
.item-card .item-image .item-card-badge,
.room-similar-card .item-image .item-card-badge,
.room-gallery-lux__stage .room-gallery-lux__badge {
	position: absolute;
	top: 14px;
	left: 14px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 2rem;
	padding: 0.45rem 1rem;
	font-family: var(--primary-font-family, inherit);
	font-size: 0.7rem;
	font-weight: 600;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: #fff;
	line-height: 1.2;
	max-width: min(90%, calc(100% - 5.5rem));
	text-align: center;
	text-shadow: 0 1px 1px color-mix(in srgb, #000 35%, transparent);
	border-radius: var(--radius-pill);
	border: 1px solid color-mix(in srgb, #fff 38%, transparent);
	box-shadow:
		0 1px 0 color-mix(in srgb, #fff 22%, transparent) inset,
		0 10px 28px color-mix(in srgb, var(--color-ink) 18%, transparent);
}

.item-card .item-image .item-card-badge,
.room-similar-card .item-image .item-card-badge {
	z-index: 2;
}

.room-gallery-lux__stage .room-gallery-lux__badge {
	z-index: 5;
}

[dir="rtl"] .item-card .item-image .item-card-badge,
[dir="rtl"] .room-similar-card .item-image .item-card-badge,
[dir="rtl"] .room-gallery-lux__stage .room-gallery-lux__badge {
	left: auto;
	right: 14px;
}

.item-card-badge--standard {
	background: linear-gradient(
		160deg,
		color-mix(in srgb, var(--color-gray-500) 88%, var(--color-ink)),
		color-mix(in srgb, var(--color-gray-500) 55%, #2d3748)
	);
}

.item-card-badge--double {
	background: linear-gradient(
		160deg,
		color-mix(in srgb, var(--theme-color) 92%, #fff),
		color-mix(in srgb, var(--blue_color, #004a8f) 75%, var(--theme-color))
	);
}

.item-card-badge--haut_standing {
	background: linear-gradient(
		160deg,
		color-mix(in srgb, var(--theme-color) 45%, #0d9488),
		color-mix(in srgb, #0f766e 80%, var(--color-ink))
	);
}

.item-card-badge--mini_suite {
	background: linear-gradient(
		160deg,
		color-mix(in srgb, #8b5cf6 85%, var(--theme-color)),
		color-mix(in srgb, #5b21b6 90%, var(--color-ink))
	);
}

.item-card-badge--suite_prestige {
	background: linear-gradient(
		160deg,
		color-mix(in srgb, var(--lux-gold-bright, #e8c547) 35%, #b45309),
		color-mix(in srgb, #78350f 85%, var(--color-ink))
	);
}

body.theme-premium .item-card .item-image .item-card-badge,
body.theme-premium .room-similar-card .item-image .item-card-badge,
body.theme-premium .room-gallery-lux__stage .room-gallery-lux__badge {
	backdrop-filter: saturate(1.08);
}
