/*
 * Carrousel « Rituel de l’Orient » — page Expériences, section #rituels-orient
 * (fond uni navy). Complète le style du layout service-2 de Serava
 * (.pxl-service-carousel2) : pleine largeur, libellés, couleurs de la charte ;
 * sous 768 px, carte en flux et pastilles de durée (voir en fin de feuille).
 */

:root {
	--vv-orient-bleed: 650px;
	--vv-orient-navy: #0F1F34;
	--vv-orient-gold: #C39A6B;
	--vv-orient-gold-light: #E8C89F;
}

/* ---------------------------------------------------------- pleine largeur -- */

/*
 * Comme sur la démo Serava (Home 2), le carrousel déborde de la fenêtre de
 * 650 px de chaque côté : la slide centrale mesure (100vw + 1300px) / 3 et ses
 * voisines dépassent à gauche et à droite. Le conteneur Elementor reste boxed
 * pour le titre de la section ; seul le widget s'élargit.
 */
@media (min-width: 768px) {
	.e-con .elementor-widget.vv-orient-carousel,
	.e-con-inner > .elementor-widget.vv-orient-carousel {
		/* Elementor fixe width / max-width des widgets de conteneur avec la même
		   spécificité et après cette feuille : on force. */
		--container-widget-width: calc(100vw + 2 * var(--vv-orient-bleed));
		width: calc(100vw + 2 * var(--vv-orient-bleed)) !important;
		max-width: none !important;
		flex: 0 0 auto;
		margin-left: calc(50% - 50vw - var(--vv-orient-bleed));
		margin-right: 0;
	}
}

.vv-orient .pxl-swiper-slide {
	padding: 0 15px;
}

/* ------------------------------------------------------------- encart navy -- */

/* Navy secondaire de la charte : sur la section unie #0F1F34, l'encart reste
   un bloc distinct (sur mobile il touche le fond de section). */
.vv-orient .pxl-item--content-left {
	background-color: #162C4A;
	padding: 38px 44px;
}

.vv-orient-accroche {
	color: var(--vv-orient-gold-light);
	font-family: 'Jost', sans-serif;
	font-size: 12px;
	font-weight: 600;
	letter-spacing: 2.4px;
	line-height: 1.3;
	text-transform: uppercase;
	margin-bottom: 14px;
}

.vv-orient .pxl-item--title {
	font-family: 'Melodrama', serif;
	font-size: 32px;
	font-weight: 400;
	line-height: 1.08;
	letter-spacing: -0.3px;
	text-transform: none;
	color: #fff;
	margin-bottom: 12px;
}

.vv-orient-meta {
	color: #fff;
	font-family: 'Jost', sans-serif;
	font-size: 15px;
	font-weight: 600;
	margin-bottom: 14px;
}

.vv-orient .pxl-item--excerpt {
	color: rgba(255, 255, 255, 0.78);
	font-family: 'Jost', sans-serif;
	font-size: 16px;
	line-height: 1.72;
	margin-bottom: 26px;
}

/* Bouton « Ajouter au panier » : doré plein comme les autres CTA de la page,
   remplissage blanc au survol (effet .btn-outline:before du thème). */
.vv-orient .pxl-item--button a.btn-outline {
	background-color: var(--vv-orient-gold);
	border-color: var(--vv-orient-gold);
	color: var(--vv-orient-navy);
	font-family: 'Jost', sans-serif;
	font-size: 13px;
	font-weight: 600;
	letter-spacing: 1.2px;
	text-transform: uppercase;
	height: 52px;
	padding: 0 28px;
}

/* Le triangle d'angle du thème (8 px au repos) prend la couleur du bouton
   pour disparaître au repos, puis devient blanc et s'étend au survol. */
.vv-orient .pxl-item--button a.btn-outline:before {
	background-color: var(--vv-orient-gold);
}

.vv-orient .pxl-item--button a.btn-outline:hover:before {
	background-color: #fff;
}

.vv-orient .pxl-item--button a.btn-outline:hover {
	color: var(--vv-orient-navy);
	border-color: #fff;
}

/* ------------------------------------------------------------ encart blanc -- */

.vv-orient .pxl-item--content-right {
	padding: 38px 40px;
}

.vv-orient .pxl-item--title-feature {
	font-family: 'Melodrama', serif;
	font-size: 24px;
	font-weight: 400;
	line-height: 1.15;
	color: var(--vv-orient-navy);
	padding-bottom: 18px;
	margin: 0;
}

.vv-orient .pxl-item--divider {
	background-color: #DBE3EE;
}

.vv-orient .pxl-item--feature {
	list-style: none;
	padding-left: 0;
	margin: 20px 0 0;
	gap: 10px;
	color: var(--vv-orient-navy);
	font-family: 'Jost', sans-serif;
	font-size: 15px;
	line-height: 1.5;
}

/* Puce dorée dessinée : les lignes longues se replient proprement sous le texte
   (le marqueur natif se décale dans une liste en flex). */
.vv-orient .pxl-item--feature-item {
	position: relative;
	padding-left: 18px;
}

.vv-orient .pxl-item--feature-item::before {
	content: '';
	position: absolute;
	left: 0;
	top: 0.62em;
	width: 6px;
	height: 6px;
	border-radius: 50%;
	background-color: var(--vv-orient-gold);
}

.vv-orient-detail {
	align-self: flex-start;
	margin-top: auto;
	padding-top: 22px;
	font-family: 'Jost', sans-serif;
	font-size: 12px;
	font-weight: 600;
	letter-spacing: 1.6px;
	text-transform: uppercase;
	color: var(--vv-orient-navy);
	text-decoration: none;
	box-shadow: inset 0 -1px 0 var(--vv-orient-gold);
	transition: color 0.3s ease, box-shadow 0.3s ease;
}

.vv-orient-detail:hover {
	color: var(--vv-orient-gold);
	box-shadow: inset 0 -1px 0 var(--vv-orient-navy);
}

/* ----------------------------------------------------------------- flèches -- */

.vv-orient .pxl-swiper-arrow-wrap .pxl-swiper-arrow {
	color: #fff;
	font-family: 'Jost', sans-serif;
	font-size: 13px;
	font-weight: 600;
	letter-spacing: 1.2px;
	text-transform: uppercase;
}

.vv-orient .pxl-swiper-arrow-wrap .pxl-swiper-arrow .pxl-item--arrow-circle {
	border-color: rgba(255, 255, 255, 0.45);
}

.vv-orient .pxl-swiper-arrow-wrap .pxl-swiper-arrow:hover {
	color: var(--vv-orient-gold);
}

.vv-orient .pxl-swiper-arrow-wrap .pxl-swiper-arrow:hover .pxl-item--arrow-circle {
	border-color: var(--vv-orient-gold);
}

.vv-orient .pxl-swiper-arrow-wrap .pxl-swiper-arrow.swiper-button-disabled {
	opacity: 0.35;
}

/* --------------------------------------------------------------- réactif -- */

@media (max-width: 1600px) {
	.vv-orient .pxl-item--content-left {
		padding: 30px 32px;
	}

	.vv-orient .pxl-item--content-right {
		padding: 30px 30px;
	}

	.vv-orient .pxl-item--title {
		font-size: 28px;
	}
}

@media (max-width: 1024px) {
	.vv-orient .pxl-item--content-left,
	.vv-orient .pxl-item--content-right {
		padding: 26px 26px;
	}

	.vv-orient .pxl-item--title {
		font-size: 26px;
	}

	.vv-orient .pxl-item--title-feature {
		font-size: 21px;
	}
}

/* ---------------------------------------------- pastilles de durée (mobile) -- */

/*
 * Sous 768 px, une seule formule est à l'écran : les flèches Précédent / Suivant
 * cèdent la place à trois pastilles « 1 h · 80 € », « 1 h 30 · 120 € »,
 * « 2 h · 150 € » (même dessin que les formats de la carte des massages),
 * posées entre le texte d'introduction et la carte. La pastille active suit le
 * glissement du doigt ; un appui fait glisser jusqu'à la formule choisie
 * (vv-orient-carousel.js).
 */
.vv-orient-tabs {
	display: none;
	gap: 8px;
	margin: 0 0 16px;
}

.vv-orient-tab {
	flex: 1 1 0;
	min-width: 0;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 2px;
	margin: 0;
	padding: 10px 6px 11px;
	border: 1px solid rgba(255, 255, 255, 0.32);
	border-radius: 0;
	background: transparent;
	color: #fff;
	font-family: 'Jost', sans-serif;
	line-height: 1.2;
	text-align: center;
	cursor: pointer;
	-webkit-tap-highlight-color: transparent;
	transition: background-color 0.25s ease, border-color 0.25s ease, color 0.25s ease;
}

.vv-orient-tab__duree {
	font-size: 15px;
	font-weight: 600;
	white-space: nowrap;
}

.vv-orient-tab__prix {
	font-size: 13px;
	font-weight: 400;
	white-space: nowrap;
	opacity: 0.72;
}

.vv-orient-tab.is-active {
	background: #fff;
	border-color: #fff;
	color: var(--vv-orient-navy);
}

.vv-orient-tab.is-active .vv-orient-tab__prix {
	opacity: 0.8;
}

.vv-orient-tab:focus-visible {
	outline: 2px solid var(--vv-orient-gold);
	outline-offset: 2px;
}

/* ------------------------------------------------------------ mobile -- */

@media (max-width: 767px) {
	.vv-orient-tabs {
		display: flex;
	}

	/*
	 * Une carte en flux : photo 4:3, encart navy, encart blanc, l'un sous
	 * l'autre, sans superposition ni bande de photo qui dépasse. Les effets du
	 * gabarit service-2 (découpe clip-path des slides voisines, encarts absolus
	 * qui montent au changement de slide, photo agrandie) n'ont pas de sens avec
	 * une seule slide à l'écran et retardaient l'affichage du contenu au
	 * glissement : neutralisés ici, à la spécificité des règles du thème.
	 */
	.vv-orient .pxl-swiper-slide,
	.vv-orient .pxl-swiper-slide.swiper-slide-active {
		padding: 0;
		clip-path: none;
	}

	/* Le thème élargit le conteneur de 15 px de chaque côté (margin: 0 -15px)
	   et le compense par le padding des slides ; sans ce padding, la carte
	   déborderait du widget et serait rognée par .pxl-carousel-inner. */
	.vv-orient .pxl-swiper-container {
		margin: 0;
	}

	/* Les slides sont étirées à la hauteur de la plus haute (flex du Swiper) :
	   la carte remplit sa slide et l'encart blanc absorbe la différence, pour
	   que la section garde la même hauteur d'une formule à l'autre. */
	.vv-orient .pxl-item--inner {
		height: 100%;
		display: flex;
		flex-direction: column;
		overflow: hidden;
		transition: none;
	}

	.vv-orient .pxl-swiper-slide .pxl-item--inner img,
	.vv-orient .pxl-swiper-slide.swiper-slide-active .pxl-item--inner img {
		display: block;
		flex: 0 0 auto;
		width: 100%;
		height: auto;
		aspect-ratio: 4 / 3;
		min-height: 0;
		object-fit: cover;
		transform: none;
		transition: none;
	}

	.vv-orient .pxl-swiper-slide .pxl-item--inner .pxl-item--content,
	.vv-orient .pxl-swiper-slide.swiper-slide-active .pxl-item--inner .pxl-item--content {
		position: static;
		left: auto;
		right: auto;
		bottom: auto;
		flex: 1 1 auto;
		flex-direction: column;
		gap: 0;
		opacity: 1;
		transform: none;
		transition: none;
	}

	/* Le thème donne height:100 % aux deux encarts (utile quand ils sont côte à
	   côte) : empilés, le premier prendrait toute la hauteur et cacherait le
	   second. */
	.vv-orient .pxl-item--content-left {
		flex: 0 0 auto;
		max-width: none;
		height: auto;
		min-height: 0;
		padding: 24px 22px 26px;
	}

	.vv-orient .pxl-item--content-right {
		flex: 1 1 auto;
		height: auto;
		min-height: 0;
		padding: 24px 22px 26px;
	}

	.vv-orient .pxl-item--title {
		font-size: 26px;
	}

	.vv-orient-meta {
		margin-bottom: 0;
	}

	/* Bouton pleine largeur, 54 px de haut : une zone d'appui confortable. */
	.vv-orient .pxl-item--button {
		margin-top: 22px;
	}

	.vv-orient .pxl-item--button a.btn-outline {
		display: flex;
		width: 100%;
		justify-content: center;
		height: 54px;
		padding: 0 20px;
	}

	.vv-orient .pxl-item--feature {
		flex-direction: column;
	}

	.vv-orient-detail {
		margin-top: 16px;
		padding: 14px 0 2px;
	}

	/* Les pastilles remplacent les flèches. */
	.vv-orient .pxl-swiper-arrow-wrap {
		display: none;
	}
}

/* 20 septembre 2026 — système de boutons de la Villa : sur l'encart navy, aplat blanc à texte
   navy ; le doré n'est plus qu'une couleur de survol (comme les autres boutons de la page). */
.vv-orient .pxl-item--button a.btn-outline {
	background-color: #fff;
	border-color: #fff;
	color: var(--vv-orient-navy);
}
.vv-orient .pxl-item--button a.btn-outline:before {
	background-color: #fff;
}
.vv-orient .pxl-item--button a.btn-outline:hover {
	background-color: var(--vv-orient-gold);
	border-color: var(--vv-orient-gold);
	color: var(--vv-orient-navy);
}
.vv-orient .pxl-item--button a.btn-outline:hover:before {
	background-color: var(--vv-orient-gold);
}
