/* Styles par défaut des blocs OTAREE (surchargables par le thème / Elementor). */

/* --- Neutralisation des styles de bouton hérités ---------------------------
   Les éléments cliquables de la galerie (image principale, miniatures, flèches,
   points) sont de vrais <button>. Beaucoup de thèmes — et les styles globaux
   d'Elementor via `.elementor-kit-N button` — leur appliquent un fond, une
   bordure et un padding colorés : c'est ce qui dessinait un cadre rose autour
   des images, au repos comme au survol.
   Les sélecteurs sont répétés 3x pour passer devant ces règles SANS
   `!important` : les contrôles de style du widget Elementor
   (`.elementor-N .elementor-element.elementor-element-X .otaree-…`, plus
   spécifique) continuent donc de tout piloter. */
.otaree-gallery-showcase__main.otaree-gallery-showcase__main.otaree-gallery-showcase__main,
.otaree-gallery-showcase__thumb.otaree-gallery-showcase__thumb.otaree-gallery-showcase__thumb,
.otaree-gallery-showcase__tnav.otaree-gallery-showcase__tnav.otaree-gallery-showcase__tnav,
.otaree-carousel__nav.otaree-carousel__nav.otaree-carousel__nav,
.otaree-carousel__dot.otaree-carousel__dot.otaree-carousel__dot,
.otaree-lightbox__nav.otaree-lightbox__nav.otaree-lightbox__nav,
.otaree-lightbox__close.otaree-lightbox__close.otaree-lightbox__close {
	-webkit-appearance: none;
	appearance: none;
	margin: 0;
	padding: 0;
	border: 0 solid transparent;
	background: none;
	box-shadow: none;
	outline: none;
	text-shadow: none;
	text-transform: none;
	letter-spacing: normal;
	min-width: 0;
	min-height: 0;
}

/* Certains thèmes ne colorent le bouton qu'au survol / focus : on neutralise
   aussi ces états (uniquement le contour, les fonds et bordures propres à
   chaque élément sont redéclarés plus bas, à partir de variables CSS). */
.otaree-gallery-showcase__main.otaree-gallery-showcase__main.otaree-gallery-showcase__main:hover,
.otaree-gallery-showcase__main.otaree-gallery-showcase__main.otaree-gallery-showcase__main:focus,
.otaree-gallery-showcase__main.otaree-gallery-showcase__main.otaree-gallery-showcase__main:focus-visible,
.otaree-gallery-showcase__main.otaree-gallery-showcase__main.otaree-gallery-showcase__main:active,
.otaree-gallery-showcase__thumb.otaree-gallery-showcase__thumb.otaree-gallery-showcase__thumb:hover,
.otaree-gallery-showcase__thumb.otaree-gallery-showcase__thumb.otaree-gallery-showcase__thumb:focus,
.otaree-gallery-showcase__thumb.otaree-gallery-showcase__thumb.otaree-gallery-showcase__thumb:focus-visible,
.otaree-gallery-showcase__thumb.otaree-gallery-showcase__thumb.otaree-gallery-showcase__thumb:active,
.otaree-gallery-showcase__tnav.otaree-gallery-showcase__tnav.otaree-gallery-showcase__tnav:hover,
.otaree-gallery-showcase__tnav.otaree-gallery-showcase__tnav.otaree-gallery-showcase__tnav:focus,
.otaree-gallery-showcase__tnav.otaree-gallery-showcase__tnav.otaree-gallery-showcase__tnav:focus-visible,
.otaree-gallery-showcase__tnav.otaree-gallery-showcase__tnav.otaree-gallery-showcase__tnav:active,
.otaree-carousel__nav.otaree-carousel__nav.otaree-carousel__nav:hover,
.otaree-carousel__nav.otaree-carousel__nav.otaree-carousel__nav:focus,
.otaree-carousel__nav.otaree-carousel__nav.otaree-carousel__nav:focus-visible,
.otaree-carousel__nav.otaree-carousel__nav.otaree-carousel__nav:active,
.otaree-carousel__dot.otaree-carousel__dot.otaree-carousel__dot:hover,
.otaree-carousel__dot.otaree-carousel__dot.otaree-carousel__dot:focus,
.otaree-carousel__dot.otaree-carousel__dot.otaree-carousel__dot:focus-visible,
.otaree-carousel__dot.otaree-carousel__dot.otaree-carousel__dot:active,
.otaree-lightbox__nav.otaree-lightbox__nav.otaree-lightbox__nav:hover,
.otaree-lightbox__nav.otaree-lightbox__nav.otaree-lightbox__nav:focus,
.otaree-lightbox__nav.otaree-lightbox__nav.otaree-lightbox__nav:focus-visible,
.otaree-lightbox__close.otaree-lightbox__close.otaree-lightbox__close:hover,
.otaree-lightbox__close.otaree-lightbox__close.otaree-lightbox__close:focus,
.otaree-lightbox__close.otaree-lightbox__close.otaree-lightbox__close:focus-visible {
	outline: none;
	text-decoration: none;
	text-shadow: none;
}

.otaree-gallery__item img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	border-radius: 4px;
}

/* Bordure des images (grille + carrousel) : désactivée par défaut. Neutralise
   aussi toute bordure/contour hérités du thème au survol/focus. Pilotée par le
   widget via les variables --otaree-img-bw / -bc / -bc-h. */
.otaree-gallery__item.otaree-gallery__item.otaree-gallery__item,
.otaree-carousel__slide.otaree-carousel__slide.otaree-carousel__slide {
	border: var(--otaree-img-bw, 0) solid var(--otaree-img-bc, transparent);
	outline: none;
	box-shadow: none;
	box-sizing: border-box;
	transition: border-color 0.2s ease;
}

.otaree-gallery__item.otaree-gallery__item.otaree-gallery__item:hover,
.otaree-gallery__item.otaree-gallery__item.otaree-gallery__item:focus,
.otaree-gallery__item.otaree-gallery__item.otaree-gallery__item:focus-visible,
.otaree-carousel__slide.otaree-carousel__slide.otaree-carousel__slide:hover {
	border-color: var(--otaree-img-bc-h, var(--otaree-img-bc, transparent));
	outline: none;
	box-shadow: none;
}

/* --- Carrousel de galerie (scroll-snap, sans dépendance) --- */
.otaree-carousel {
	position: relative;
}

.otaree-carousel__track {
	display: flex;
	flex-wrap: nowrap;
	gap: var(--otaree-gap, 10px);
	overflow-x: auto;
	scroll-snap-type: x mandatory;
	scroll-behavior: smooth;
	-webkit-overflow-scrolling: touch;
	scrollbar-width: none;
}

.otaree-carousel__slide {
	min-width: 0;
}

.otaree-carousel__track::-webkit-scrollbar {
	display: none;
}

.otaree-carousel__slide {
	flex: 0 0 calc((100% - (var(--otaree-spv, 3) - 1) * var(--otaree-gap, 10px)) / var(--otaree-spv, 3));
	scroll-snap-align: start;
	/* Le slide porte la dimension : hauteur fixe si définie, sinon ratio par
	   défaut → toutes les images ont la même taille. */
	height: var(--otaree-img-h, auto);
	aspect-ratio: var(--otaree-ratio, 3 / 2);
	background: var(--otaree-slide-bg, transparent);
	border-radius: var(--otaree-radius, 4px);
	overflow: hidden;
}

.otaree-carousel__img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: var(--otaree-fit, cover);
	border-radius: inherit;
}

.otaree-carousel__nav.otaree-carousel__nav.otaree-carousel__nav {
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	z-index: 2;
	width: 40px;
	height: 40px;
	border-radius: 50%;
	border: 0;
	background: var(--otaree-arrow-bg, rgba(0, 0, 0, 0.5));
	color: var(--otaree-arrow-color, #fff);
	font-size: 22px;
	line-height: 1;
	cursor: pointer;
}

.otaree-carousel__nav.otaree-carousel__nav.otaree-carousel__nav:focus,
.otaree-carousel__nav.otaree-carousel__nav.otaree-carousel__nav:focus-visible,
.otaree-carousel__nav.otaree-carousel__nav.otaree-carousel__nav:active {
	background: var(--otaree-arrow-bg, rgba(0, 0, 0, 0.5));
	color: var(--otaree-arrow-color, #fff);
}

.otaree-carousel__nav--prev {
	left: 8px;
}

.otaree-carousel__nav--next {
	right: 8px;
}

.otaree-carousel__nav.otaree-carousel__nav.otaree-carousel__nav:hover {
	background: var(--otaree-arrow-bg-h, rgba(0, 0, 0, 0.75));
	color: var(--otaree-arrow-color-h, var(--otaree-arrow-color, #fff));
}

.otaree-carousel__dots {
	display: flex;
	justify-content: center;
	align-items: center;
	gap: var(--otaree-dot-gap, 6px);
	margin-top: var(--otaree-dots-mt, 10px);
}

.otaree-carousel__dot.otaree-carousel__dot.otaree-carousel__dot {
	width: var(--otaree-dot-size, 9px);
	height: var(--otaree-dot-size, 9px);
	border-radius: var(--otaree-dot-radius, 50%);
	border: 0;
	background: var(--otaree-dot-color, #ccc);
	cursor: pointer;
	padding: 0;
	transition: background 0.2s ease, width 0.2s ease;
}

.otaree-carousel__dot.otaree-carousel__dot.otaree-carousel__dot.is-active {
	background: var(--otaree-dot-active, #2271b1);
	width: var(--otaree-dot-active-w, var(--otaree-dot-size, 9px));
}

/* Un thème qui colore les <button> au survol/focus ne doit pas repeindre les
   points : on redéclare leur fond dans ces états (hors point actif). */
.otaree-carousel__dot.otaree-carousel__dot.otaree-carousel__dot:not(.is-active):hover,
.otaree-carousel__dot.otaree-carousel__dot.otaree-carousel__dot:not(.is-active):focus,
.otaree-carousel__dot.otaree-carousel__dot.otaree-carousel__dot:not(.is-active):active {
	background: var(--otaree-dot-color, #ccc);
}

/* --- Placeholder « no-perspective » (aucune image) + filigrane --- */
.otaree-gallery-placeholder__figure {
	position: relative;
	margin: 0;
	border-radius: var(--otaree-radius, 8px);
	overflow: hidden;
}

.otaree-gallery-placeholder__img {
	display: block;
	width: 100%;
	height: var(--otaree-img-h, auto);
	aspect-ratio: var(--otaree-ratio, 3 / 2);
	object-fit: cover;
}

.otaree-gallery-placeholder__mark {
	position: absolute;
	inset: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	text-align: center;
	padding: 20px;
	color: #fff;
	font-weight: 700;
	font-size: 1.1em;
	letter-spacing: 0.02em;
	background: rgba(0, 0, 0, 0.35);
	text-shadow: 0 1px 4px rgba(0, 0, 0, 0.6);
}

/* --- Galerie « showcase » : image principale + miniatures --- */
.otaree-gallery-showcase {
	display: flex;
	flex-direction: column;
	gap: var(--otaree-showcase-gap, 10px);
}

.otaree-gallery-showcase__main.otaree-gallery-showcase__main.otaree-gallery-showcase__main {
	position: relative;
	display: block;
	width: 100%;
	padding: 0;
	border: var(--otaree-main-bw, 0) solid var(--otaree-main-bc, transparent);
	background: var(--otaree-slide-bg, #f2f2f2);
	border-radius: var(--otaree-radius, 8px);
	box-sizing: border-box;
	overflow: hidden;
	cursor: zoom-in;
	height: var(--otaree-img-h, auto);
	aspect-ratio: var(--otaree-ratio, 3 / 2);
	transition: border-color 0.2s ease;
}

.otaree-gallery-showcase__main.otaree-gallery-showcase__main.otaree-gallery-showcase__main:hover {
	border-color: var(--otaree-main-bc-h, var(--otaree-main-bc, transparent));
	background: var(--otaree-slide-bg, #f2f2f2);
}

.otaree-gallery-showcase__main.otaree-gallery-showcase__main.otaree-gallery-showcase__main:focus,
.otaree-gallery-showcase__main.otaree-gallery-showcase__main.otaree-gallery-showcase__main:focus-visible,
.otaree-gallery-showcase__main.otaree-gallery-showcase__main.otaree-gallery-showcase__main:active {
	border-color: var(--otaree-main-bc, transparent);
	background: var(--otaree-slide-bg, #f2f2f2);
}

.otaree-gallery-showcase__img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: var(--otaree-fit, cover);
}

.otaree-gallery-showcase__zoom {
	position: absolute;
	right: 10px;
	bottom: 10px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 36px;
	height: 36px;
	border-radius: 50%;
	background: rgba(0, 0, 0, 0.5);
	color: #fff;
	pointer-events: none;
}

.otaree-gallery-showcase__thumbs-wrap {
	position: relative;
	display: flex;
	align-items: center;
	gap: 6px;
}

.otaree-gallery-showcase__thumbs {
	display: flex;
	flex-wrap: nowrap;
	flex: 1 1 auto;
	min-width: 0;
	gap: var(--otaree-thumb-gap, 8px);
	overflow-x: auto;
	scroll-snap-type: x proximity;
	scroll-behavior: smooth;
	-webkit-overflow-scrolling: touch;
	scrollbar-width: none;
}

.otaree-gallery-showcase__thumbs::-webkit-scrollbar {
	display: none;
}

.otaree-gallery-showcase__thumb.otaree-gallery-showcase__thumb.otaree-gallery-showcase__thumb {
	flex: 0 0 calc((100% - (var(--otaree-thumbs-spv, 6) - 1) * var(--otaree-thumb-gap, 8px)) / var(--otaree-thumbs-spv, 6));
	scroll-snap-align: start;
	padding: 0;
	border: var(--otaree-thumb-bw, 2px) solid var(--otaree-thumb-bc, transparent);
	border-radius: var(--otaree-thumb-radius, 6px);
	box-sizing: border-box;
	overflow: hidden;
	background: var(--otaree-thumb-bg, transparent);
	cursor: pointer;
	aspect-ratio: var(--otaree-thumb-ratio, 1);
	opacity: var(--otaree-thumb-op, 0.6);
	transition: opacity 0.2s ease, border-color 0.2s ease, background-color 0.2s ease;
}

.otaree-gallery-showcase__thumb.otaree-gallery-showcase__thumb.otaree-gallery-showcase__thumb:focus,
.otaree-gallery-showcase__thumb.otaree-gallery-showcase__thumb.otaree-gallery-showcase__thumb:focus-visible,
.otaree-gallery-showcase__thumb.otaree-gallery-showcase__thumb.otaree-gallery-showcase__thumb:active {
	border-color: var(--otaree-thumb-bc, transparent);
	background: var(--otaree-thumb-bg, transparent);
}

.otaree-gallery-showcase__tnav.otaree-gallery-showcase__tnav.otaree-gallery-showcase__tnav {
	flex: 0 0 auto;
	width: 30px;
	height: 30px;
	border: 0;
	border-radius: 50%;
	background: var(--otaree-tnav-bg, rgba(0, 0, 0, 0.5));
	color: var(--otaree-tnav-color, #fff);
	font-size: 18px;
	line-height: 1;
	cursor: pointer;
	display: inline-flex;
	align-items: center;
	justify-content: center;
}

.otaree-gallery-showcase__tnav.otaree-gallery-showcase__tnav.otaree-gallery-showcase__tnav:focus,
.otaree-gallery-showcase__tnav.otaree-gallery-showcase__tnav.otaree-gallery-showcase__tnav:focus-visible,
.otaree-gallery-showcase__tnav.otaree-gallery-showcase__tnav.otaree-gallery-showcase__tnav:active {
	background: var(--otaree-tnav-bg, rgba(0, 0, 0, 0.5));
	color: var(--otaree-tnav-color, #fff);
}

.otaree-gallery-showcase__tnav.otaree-gallery-showcase__tnav.otaree-gallery-showcase__tnav:hover {
	background: var(--otaree-tnav-bg-h, rgba(0, 0, 0, 0.75));
	color: var(--otaree-tnav-color-h, var(--otaree-tnav-color, #fff));
}

.otaree-gallery-showcase__tnav.otaree-gallery-showcase__tnav.otaree-gallery-showcase__tnav[hidden] {
	display: none;
}

.otaree-gallery-showcase__thumb img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.otaree-gallery-showcase__thumb.otaree-gallery-showcase__thumb.otaree-gallery-showcase__thumb:hover {
	opacity: 1;
	border-color: var(--otaree-thumb-bc-h, var(--otaree-thumb-bc, transparent));
	background: var(--otaree-thumb-bg-h, var(--otaree-thumb-bg, transparent));
}

.otaree-gallery-showcase__thumb.otaree-gallery-showcase__thumb.otaree-gallery-showcase__thumb.is-active {
	opacity: 1;
	border-color: var(--otaree-thumb-active, transparent);
	background: var(--otaree-thumb-bg-a, var(--otaree-thumb-bg, transparent));
}

/* --- Lightbox (partagé, injecté en fin de <body>) --- */
.otaree-lightbox {
	position: fixed;
	inset: 0;
	z-index: 99999;
	display: none;
	align-items: center;
	justify-content: center;
	padding: 30px;
	background: var(--otaree-lightbox-bg, rgba(0, 0, 0, 0.9));
}

.otaree-lightbox.is-open {
	display: flex;
}

.otaree-lightbox__img {
	max-width: 92vw;
	max-height: 88vh;
	object-fit: contain;
	border-radius: var(--otaree-lb-radius, 4px);
}

.otaree-lightbox__nav.otaree-lightbox__nav.otaree-lightbox__nav,
.otaree-lightbox__close.otaree-lightbox__close.otaree-lightbox__close {
	position: absolute;
	border: 0;
	background: var(--otaree-lb-ctrl-bg, rgba(255, 255, 255, 0.15));
	color: var(--otaree-lb-ctrl-color, #fff);
	cursor: pointer;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	line-height: 1;
}

.otaree-lightbox__nav.otaree-lightbox__nav.otaree-lightbox__nav {
	top: 50%;
	transform: translateY(-50%);
	width: 48px;
	height: 48px;
	border-radius: 50%;
	font-size: 28px;
}

.otaree-lightbox__nav--prev {
	left: 20px;
}

.otaree-lightbox__nav--next {
	right: 20px;
}

.otaree-lightbox__close.otaree-lightbox__close.otaree-lightbox__close {
	top: 20px;
	right: 20px;
	width: 42px;
	height: 42px;
	border-radius: 50%;
	font-size: 26px;
}

.otaree-lightbox__nav.otaree-lightbox__nav.otaree-lightbox__nav:hover,
.otaree-lightbox__close.otaree-lightbox__close.otaree-lightbox__close:hover {
	background: var(--otaree-lb-ctrl-bg-h, rgba(255, 255, 255, 0.3));
}

/* Neutralise le contour de focus/hover coloré ajouté par le navigateur/thème
   sur les éléments du lightbox et le bouton d'agrandissement (le fond des
   boutons reste pilotable via les contrôles « Lightbox »). */
.otaree-lightbox__nav.otaree-lightbox__nav.otaree-lightbox__nav:focus,
.otaree-lightbox__nav.otaree-lightbox__nav.otaree-lightbox__nav:focus-visible,
.otaree-lightbox__nav.otaree-lightbox__nav.otaree-lightbox__nav:active,
.otaree-lightbox__close.otaree-lightbox__close.otaree-lightbox__close:focus,
.otaree-lightbox__close.otaree-lightbox__close.otaree-lightbox__close:focus-visible,
.otaree-lightbox__close.otaree-lightbox__close.otaree-lightbox__close:active {
	background: var(--otaree-lb-ctrl-bg, rgba(255, 255, 255, 0.15));
	color: var(--otaree-lb-ctrl-color, #fff);
}

.otaree-lightbox__img.otaree-lightbox__img.otaree-lightbox__img,
.otaree-gallery-showcase__main.otaree-gallery-showcase__main.otaree-gallery-showcase__main:focus,
.otaree-gallery-showcase__thumb.otaree-gallery-showcase__thumb.otaree-gallery-showcase__thumb:focus {
	outline: none;
	box-shadow: none;
}

/* Accessibilité : la neutralisation ci-dessus supprime aussi l'anneau de focus.
   On le rétablit UNIQUEMENT pour la navigation au clavier (`:focus-visible`,
   jamais déclenché par un clic souris). Couleur réglable via
   `--otaree-focus-ring`. */
.otaree-gallery-showcase__main.otaree-gallery-showcase__main.otaree-gallery-showcase__main:focus-visible,
.otaree-gallery-showcase__thumb.otaree-gallery-showcase__thumb.otaree-gallery-showcase__thumb:focus-visible,
.otaree-gallery-showcase__tnav.otaree-gallery-showcase__tnav.otaree-gallery-showcase__tnav:focus-visible,
.otaree-carousel__nav.otaree-carousel__nav.otaree-carousel__nav:focus-visible,
.otaree-carousel__dot.otaree-carousel__dot.otaree-carousel__dot:focus-visible,
.otaree-gallery__item.otaree-gallery__item.otaree-gallery__item:focus-visible,
.otaree-lightbox__nav.otaree-lightbox__nav.otaree-lightbox__nav:focus-visible,
.otaree-lightbox__close.otaree-lightbox__close.otaree-lightbox__close:focus-visible {
	outline: 2px solid var(--otaree-focus-ring, currentColor);
	outline-offset: 2px;
}

@media (max-width: 480px) {
	.otaree-lightbox__nav {
		width: 38px;
		height: 38px;
		font-size: 22px;
	}
}

.otaree-lot {
	border: 1px solid #e2e2e2;
	border-radius: 6px;
	padding: 16px;
	background: #fff;
}

.otaree-lot__title {
	margin: 0 0 10px;
	font-size: 1.05em;
}

.otaree-lot__row {
	display: flex;
	justify-content: space-between;
	gap: 8px;
	padding: 3px 0;
	font-size: 0.92em;
}

.otaree-lot__label {
	color: #666;
}

.otaree-lot__value {
	font-weight: 600;
}

.otaree-lot__link {
	display: inline-block;
	margin-top: 10px;
	font-size: 0.9em;
}

.otaree-field__label {
	color: #666;
}

.otaree-map iframe {
	display: block;
	width: 100%;
	border-radius: 6px;
}

/* Grilles par défaut (utilisées quand la mise en page est pilotée par Elementor). */
.otaree-programs {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 24px;
}

/* --- Catalogue en slider : défilement horizontal + flèches au-dessus, à droite.
   La piste garde la classe `.otaree-programs` : tous les styles de carte du
   widget continuent de s'appliquer tels quels. --- */
.otaree-programs-slider {
	position: relative;
}

.otaree-programs-slider__head {
	display: flex;
	justify-content: flex-end;
	align-items: center;
	margin-bottom: var(--otaree-parrow-mb, 16px);
}

.otaree-programs-slider__nav {
	display: inline-flex;
	align-items: center;
	gap: var(--otaree-parrow-gap, 10px);
}

/* Les flèches sont de vrais <button> : neutralisation des styles de bouton
   hérités du thème (sélecteurs répétés 3x, sans `!important`), couleurs
   pilotées par variables pour rester stables au survol et au focus. */
.otaree-programs-slider__arrow.otaree-programs-slider__arrow.otaree-programs-slider__arrow {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	flex: 0 0 auto;
	width: var(--otaree-parrow-size, 40px);
	height: var(--otaree-parrow-size, 40px);
	margin: 0;
	padding: 0;
	border: var(--otaree-parrow-bw, 1px) solid var(--otaree-parrow-bc, #d8d8d8);
	border-radius: var(--otaree-parrow-radius, 50%);
	background: var(--otaree-parrow-bg, transparent);
	color: var(--otaree-parrow-color, #222);
	font-family: inherit;
	font-size: var(--otaree-parrow-icon, 20px);
	line-height: 1;
	letter-spacing: normal;
	text-transform: none;
	text-shadow: none;
	box-shadow: none;
	outline: none;
	min-width: 0;
	min-height: 0;
	-webkit-appearance: none;
	appearance: none;
	cursor: pointer;
	transition: background-color 0.2s ease, color 0.2s ease, border-color 0.2s ease, opacity 0.2s ease;
}

.otaree-programs-slider__arrow.otaree-programs-slider__arrow.otaree-programs-slider__arrow:hover {
	background: var(--otaree-parrow-bg-h, var(--otaree-parrow-bg, transparent));
	color: var(--otaree-parrow-color-h, var(--otaree-parrow-color, #222));
	border-color: var(--otaree-parrow-bc-h, var(--otaree-parrow-bc, #d8d8d8));
}

.otaree-programs-slider__arrow.otaree-programs-slider__arrow.otaree-programs-slider__arrow:focus,
.otaree-programs-slider__arrow.otaree-programs-slider__arrow.otaree-programs-slider__arrow:active {
	background: var(--otaree-parrow-bg, transparent);
	color: var(--otaree-parrow-color, #222);
	border-color: var(--otaree-parrow-bc, #d8d8d8);
	outline: none;
	box-shadow: none;
}

.otaree-programs-slider__arrow.otaree-programs-slider__arrow.otaree-programs-slider__arrow:focus-visible {
	outline: 2px solid var(--otaree-focus-ring, currentColor);
	outline-offset: 2px;
}

/* Extrémité atteinte : flèche estompée (masquable via le widget). */
.otaree-programs-slider__arrow.otaree-programs-slider__arrow.otaree-programs-slider__arrow[disabled] {
	opacity: var(--otaree-parrow-disabled-op, 0.35);
	cursor: default;
}

.otaree-programs.otaree-programs--slider {
	display: flex;
	flex-wrap: nowrap;
	grid-template-columns: none;
	overflow-x: auto;
	scroll-snap-type: x mandatory;
	scroll-behavior: smooth;
	-webkit-overflow-scrolling: touch;
	scrollbar-width: none;
}

.otaree-programs.otaree-programs--slider::-webkit-scrollbar {
	display: none;
}

.otaree-programs.otaree-programs--slider > * {
	flex: 0 0 calc(
		(100% - (var(--otaree-programs-spv, 3) - 1) * var(--otaree-programs-gap, 24px))
		/ var(--otaree-programs-spv, 3)
	);
	min-width: 0;
	scroll-snap-align: start;
}

.otaree-lots {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 16px;
}

/* Accordéon de lots groupés par typologie. */
.otaree-lots-acc {
	display: flex;
	flex-direction: column;
	gap: 12px;
}

.otaree-lots-acc__group {
	background: #fff;
	border-radius: 8px;
	box-shadow: 0 1px 4px rgba(0, 0, 0, 0.08);
	overflow: hidden;
}

/* En-tête d'accordéon : c'est un <button>, donc soumis aux styles globaux de
   bouton du thème / d'Elementor (fond, bordure, padding colorés). Sélecteurs
   répétés 3x pour passer devant, sans `!important` — les contrôles du widget,
   plus spécifiques, gardent la main. */
.otaree-lots-acc__header.otaree-lots-acc__header.otaree-lots-acc__header {
	display: grid;
	grid-template-columns: minmax(60px, 0.8fr) minmax(0, 1.4fr) minmax(0, 1.4fr) auto auto;
	align-items: center;
	gap: 16px;
	width: 100%;
	padding: 16px 20px;
	margin: 0;
	border: 0 solid transparent;
	border-radius: 0;
	background: var(--otaree-lots-header-bg, transparent);
	color: inherit;
	font: inherit;
	letter-spacing: normal;
	text-transform: none;
	text-align: left;
	text-shadow: none;
	box-shadow: none;
	outline: none;
	-webkit-appearance: none;
	appearance: none;
	cursor: pointer;
}

.otaree-lots-acc__header.otaree-lots-acc__header.otaree-lots-acc__header:hover {
	background: var(--otaree-lots-header-bg-h, var(--otaree-lots-header-bg, transparent));
	color: inherit;
}

.otaree-lots-acc__header.otaree-lots-acc__header.otaree-lots-acc__header:focus,
.otaree-lots-acc__header.otaree-lots-acc__header.otaree-lots-acc__header:active {
	background: var(--otaree-lots-header-bg, transparent);
	color: inherit;
	outline: none;
	box-shadow: none;
}

.otaree-lots-acc__typology {
	color: #222;
	font-weight: 700;
	font-size: 1.05em;
}

.otaree-lots-acc__summary {
	color: #444;
}

.otaree-lots-acc__affix {
	color: #888;
	font-weight: 400;
}

.otaree-lots-acc__summary-value {
	font-weight: 600;
}

.otaree-lots-acc__count {
	color: #e8720c;
	font-weight: 600;
	white-space: nowrap;
}

.otaree-lots-acc__chevron {
	display: inline-flex;
	color: #666;
	transition: transform 0.2s ease;
}

.otaree-lots-acc__group.is-open .otaree-lots-acc__chevron {
	transform: rotate(180deg);
}

.otaree-lots-acc__panel {
	display: none;
}

.otaree-lots-acc__group.is-open .otaree-lots-acc__panel {
	display: block;
	overflow-x: auto;
}

/* Cellules du tableau (les lignes sont posées en display:table-row inline). */
.otaree-lots-acc__cell {
	padding: 12px 10px;
}

.otaree-lots-acc__cell:first-child {
	padding-left: 20px;
}

.otaree-lots-acc__cell:last-child {
	padding-right: 20px;
}

.otaree-lots-acc__thead {
	background: #2b2f38;
	color: #fff;
	font-size: 0.85em;
	text-transform: uppercase;
	letter-spacing: 0.02em;
}

.otaree-lots-acc__row:not(.otaree-lots-acc__thead):nth-of-type(even) {
	background: #f7f7f8;
}

.otaree-lots-acc__cell--action {
	text-align: right;
}

/* Bouton d'action : tantôt <button>, tantôt <a> — donc exposé à la fois aux
   styles globaux de bouton ET aux styles de lien du thème. Couleurs pilotées
   par variables pour rester identiques dans tous les états. */
.otaree-lots-acc__btn.otaree-lots-acc__btn.otaree-lots-acc__btn {
	display: inline-block;
	margin: 0;
	padding: 8px 16px;
	border: 0 solid transparent;
	border-radius: 4px;
	background: var(--otaree-lots-btn-bg, #e8720c);
	color: var(--otaree-lots-btn-color, #fff);
	font-family: inherit;
	font-size: 0.9em;
	font-weight: 600;
	letter-spacing: normal;
	text-transform: none;
	text-decoration: none;
	text-shadow: none;
	white-space: nowrap;
	box-shadow: none;
	outline: none;
	-webkit-appearance: none;
	appearance: none;
	cursor: pointer;
}

.otaree-lots-acc__btn.otaree-lots-acc__btn.otaree-lots-acc__btn:hover {
	background: var(--otaree-lots-btn-bg-h, #cf6209);
	color: var(--otaree-lots-btn-color-h, var(--otaree-lots-btn-color, #fff));
	text-decoration: none;
}

.otaree-lots-acc__btn.otaree-lots-acc__btn.otaree-lots-acc__btn:focus,
.otaree-lots-acc__btn.otaree-lots-acc__btn.otaree-lots-acc__btn:active,
.otaree-lots-acc__btn.otaree-lots-acc__btn.otaree-lots-acc__btn:visited {
	background: var(--otaree-lots-btn-bg, #e8720c);
	color: var(--otaree-lots-btn-color, #fff);
	text-decoration: none;
	outline: none;
	box-shadow: none;
}

.otaree-lots-acc__btn.otaree-lots-acc__btn.otaree-lots-acc__btn.otaree-lots-acc__btn--static {
	opacity: 0.6;
	cursor: default;
}

/* Anneau de focus clavier uniquement (jamais au clic souris). */
.otaree-lots-acc__header.otaree-lots-acc__header.otaree-lots-acc__header:focus-visible,
.otaree-lots-acc__btn.otaree-lots-acc__btn.otaree-lots-acc__btn:focus-visible {
	outline: 2px solid var(--otaree-focus-ring, currentColor);
	outline-offset: 2px;
}

.otaree-lots-acc__empty {
	color: #666;
}

@media (max-width: 600px) {
	.otaree-lots-acc__header {
		/* !important pour l'emporter sur le style inline (grille auto-portante). */
		grid-template-columns: 1fr auto !important;
		gap: 4px 12px !important;
	}

	.otaree-lots-acc__typology {
		grid-column: 1;
	}

	.otaree-lots-acc__count {
		grid-column: 2;
		grid-row: 1;
	}

	.otaree-lots-acc__chevron {
		grid-column: 2;
		grid-row: 2;
		justify-self: end;
	}
}

.otaree-program-card {
	display: flex;
	flex-direction: column;
	position: relative;
	border: 1px solid #e2e2e2;
	border-radius: 8px;
	overflow: hidden;
	background: #fff;
	color: inherit;
	text-decoration: none;
	transition: box-shadow 0.2s ease, transform 0.2s ease;
}

a.otaree-program-card:hover {
	box-shadow: 0 6px 18px rgba(0, 0, 0, 0.1);
	transform: translateY(-2px);
}

.otaree-program-card__image {
	position: relative;
	overflow: hidden;
}

.otaree-program-card__image img {
	display: block;
	width: 100%;
	height: 210px;
	object-fit: cover;
}

/* Le corps occupe toute la hauteur restante de la carte et empile ses lignes :
   c'est ce qui permet à l'intercalaire de pousser le bouton en bas. Les cartes
   d'une même ligne ont la même hauteur (étirement par défaut de la grille et du
   slider), donc les boutons restent alignés même si une carte a moins
   d'informations qu'une autre. */
.otaree-program-card__body {
	display: flex;
	flex-direction: column;
	flex: 1 1 auto;
	min-height: 0;
	padding: 16px;
}

/* Intercalaire invisible : absorbe la hauteur libre, avec un écart minimum
   au-dessus du bouton (réglable par le widget). */
.otaree-program-card__spacer {
	flex: 1 1 auto;
	min-height: var(--otaree-cta-gap, 12px);
}

.otaree-program-card__title {
	margin: 0 0 8px;
	font-size: 1.1em;
	line-height: 1.25;
}

.otaree-program-card__row {
	margin: 0 0 5px;
	font-size: 0.92em;
	color: #444;
}

/* Ligne à 2 colonnes (deux champs « demi-largeur » côte à côte). */
.otaree-program-card__row-group {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 0 14px;
}

.otaree-program-card__row-group .otaree-program-card__row {
	margin-bottom: 5px;
	min-width: 0;
}

.otaree-program-card__row--price_range {
	font-weight: 700;
	font-size: 1.05em;
	color: #111;
}

/* Badge en overlay sur l'image. */
.otaree-program-card__badge {
	position: absolute;
	top: 10px;
	left: 10px;
	z-index: 2;
	padding: 4px 10px;
	border-radius: 999px;
	font-size: 0.75em;
	font-weight: 600;
	line-height: 1.4;
	color: #fff;
	background: #2271b1;
}

.otaree-program-card__badge--delivered {
	background: #00a32a;
}

.otaree-program-card__badge--ongoing {
	background: #dba617;
}

.otaree-program-card__badge--available {
	background: #2271b1;
}

/* Texte d'accompagnement (préfixe/suffixe) — stylable à part de la valeur. */
.otaree-program-card__affix {
	color: #777;
	font-size: 0.85em;
}

.otaree-program-card__affix--prefix {
	margin-right: 4px;
}

.otaree-program-card__affix--suffix {
	margin-left: 4px;
}

/* Texte au-dessus de la valeur (ex. « à partir de » puis le prix en dessous). */
.otaree-program-card__row.is-stacked {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
}

.otaree-program-card__row.is-stacked .otaree-program-card__affix--prefix {
	margin-right: 0;
}

/* Extrait de description. */
.otaree-program-card__row--description .otaree-program-card__value {
	display: block;
	color: #555;
	font-size: 0.92em;
	line-height: 1.5;
}

/* Bouton CTA (« Découvrir »). */
.otaree-program-card__cta {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	box-sizing: border-box;
	flex: 0 0 auto;
	/* L'écart au-dessus est porté par `__spacer` (voir plus haut). */
	margin-top: 0;
	padding: 9px 18px;
	border: 0;
	border-radius: 6px;
	background: #2271b1;
	color: #fff;
	font-weight: 600;
	text-decoration: none;
	cursor: pointer;
}

.otaree-program-card__cta:hover {
	background: #185a92;
}

/* Dispositifs fiscaux en badges horizontaux. */
.otaree-program-card__badges {
	display: inline-flex;
	flex-wrap: wrap;
	gap: 6px;
	vertical-align: middle;
}

.otaree-program-card__badge-item {
	display: inline-block;
	padding: 3px 10px;
	border-radius: 999px;
	background: #eef3f8;
	color: #2271b1;
	font-size: 0.8em;
	font-weight: 600;
	line-height: 1.5;
}

/* Éléments masqués (badges au-delà de N, et bouton « Masquer » au repos). */
.otaree-program-card__badges .otaree-badge-hidden {
	display: none;
}

.otaree-program-card__badges.is-expanded .otaree-badge-hidden {
	display: inline-block;
}

.otaree-program-card__badges.is-expanded .otaree-program-card__badge-more {
	display: none;
}

/* Badge « +N » (voir plus) — design distinct. */
.otaree-program-card__badge-more {
	display: inline-block;
	padding: 3px 10px;
	border-radius: 999px;
	background: #2271b1;
	color: #fff;
	font-size: 0.8em;
	font-weight: 600;
	line-height: 1.5;
	cursor: pointer;
	user-select: none;
}

/* Bouton « Masquer » — design distinct. */
.otaree-program-card__badge-less {
	padding: 3px 10px;
	border-radius: 999px;
	background: transparent;
	color: #777;
	font-size: 0.8em;
	font-weight: 600;
	line-height: 1.5;
	text-decoration: underline;
	cursor: pointer;
	user-select: none;
}

/* --- Filtres (région, typologie) --- */
.otaree-filter {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
}

.otaree-filter__item {
	display: inline-block;
	padding: 8px 16px;
	border: 1px solid #ddd;
	border-radius: 6px;
	background: #fff;
	color: #333;
	text-decoration: none;
	line-height: 1.2;
	transition: background 0.15s ease, color 0.15s ease;
}

.otaree-filter__item:hover {
	border-color: #2271b1;
}

.otaree-filter__item.is-active {
	background: #2271b1;
	border-color: #2271b1;
	color: #fff;
}

/* --- Filtre en liste déroulante (select) --- */
.otaree-filter-wrap {
	display: block;
}

.otaree-filter-select {
	padding: 9px 34px 9px 14px;
	border: 1px solid #ddd;
	border-radius: 6px;
	background-color: #fff;
	color: #333;
	font-size: inherit;
	line-height: 1.2;
	cursor: pointer;
	appearance: none;
	-webkit-appearance: none;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath fill='%23666' d='M6 8 0 2l1.4-1.4L6 5.2 10.6.6 12 2z'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: right 12px center;
}

.otaree-filter-select:focus {
	outline: none;
	border-color: #2271b1;
}

/* --- Formulaire de recherche --- */
.otaree-search {
	display: flex;
	flex-wrap: wrap;
	align-items: flex-end;
	gap: 12px;
	padding: 16px;
	background: #fff;
	border: 1px solid #e2e2e2;
	border-radius: 10px;
}

.otaree-search__field {
	display: flex;
	flex-direction: column;
	gap: 4px;
	flex: 1 1 180px;
	min-width: 150px;
	position: relative;
}

.otaree-search__label {
	font-size: 0.8em;
	font-weight: 600;
	color: #555;
}

/* Champs : le bouton « budget » est un <button> et les autres des input/select
   — tous repris par les styles globaux de formulaire du thème / d'Elementor.
   Sélecteurs répétés 3x pour passer devant, sans `!important`. */
.otaree-search__input.otaree-search__input.otaree-search__input,
.otaree-search__select.otaree-search__select.otaree-search__select {
	width: 100%;
	margin: 0;
	padding: 11px 14px;
	border: var(--otaree-field-bw, 1px) solid var(--otaree-field-bc, #ddd);
	border-radius: 8px;
	background: var(--otaree-field-bg, #fff);
	color: var(--otaree-field-color, #333);
	font-family: inherit;
	font-size: inherit;
	font-weight: inherit;
	letter-spacing: normal;
	text-transform: none;
	text-shadow: none;
	line-height: 1.2;
	text-align: left;
	box-shadow: none;
	outline: none;
	min-height: 0;
	cursor: pointer;
}

.otaree-search__input.otaree-search__input.otaree-search__input:hover,
.otaree-search__input.otaree-search__input.otaree-search__input:focus,
.otaree-search__select.otaree-search__select.otaree-search__select:hover,
.otaree-search__select.otaree-search__select.otaree-search__select:focus {
	border-color: var(--otaree-field-bc-h, var(--otaree-field-bc, #ddd));
	background: var(--otaree-field-bg, #fff);
	color: var(--otaree-field-color, #333);
	box-shadow: none;
	outline: none;
}

.otaree-search__input.otaree-search__input.otaree-search__input {
	cursor: text;
}

/* Autocomplétion du champ « Où ». */
.otaree-search__suggestions {
	position: absolute;
	top: 100%;
	left: 0;
	right: 0;
	z-index: 50;
	margin: 4px 0 0;
	padding: 0;
	list-style: none;
	background: #fff;
	border: 1px solid #e2e2e2;
	border-radius: 8px;
	box-shadow: 0 6px 20px rgba(0, 0, 0, 0.12);
	max-height: 280px;
	overflow-y: auto;
	display: none;
}

.otaree-search__suggestions.is-open {
	display: block;
}

.otaree-search__suggestion {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 10px;
	padding: 9px 14px;
	cursor: pointer;
	font-size: 0.92em;
	color: #333;
}

.otaree-search__suggestion.is-active,
.otaree-search__suggestion:hover {
	background: #f2f6fb;
}

.otaree-search__suggestion-sub {
	color: #888;
	font-weight: 400;
}

.otaree-search__suggestion-type {
	flex: 0 0 auto;
	font-size: 0.78em;
	color: #666;
	background: #eef0f2;
	border-radius: 999px;
	padding: 2px 9px;
	white-space: nowrap;
}

/* Bouton « Rechercher » : c'est LE <button> que les thèmes repeignent le plus
   (fond, bordure, padding, majuscules). Neutralisation à 3 niveaux + couleurs
   par variables, pour que le rendu soit identique au repos, au survol et au
   focus, et entièrement pilotable par le widget. */
.otaree-search__submit.otaree-search__submit.otaree-search__submit {
	flex: 0 0 auto;
	margin: 0;
	padding: 12px 24px;
	border: var(--otaree-btn-bw, 0) solid var(--otaree-btn-bc, transparent);
	border-radius: 8px;
	background: var(--otaree-btn-bg, #2271b1);
	color: var(--otaree-btn-color, #fff);
	font-family: inherit;
	font-size: inherit;
	font-weight: 600;
	letter-spacing: normal;
	text-transform: none;
	text-decoration: none;
	text-shadow: none;
	box-shadow: none;
	outline: none;
	min-height: 0;
	-webkit-appearance: none;
	appearance: none;
	cursor: pointer;
}

.otaree-search__submit.otaree-search__submit.otaree-search__submit:hover {
	background: var(--otaree-btn-bg-h, #185a92);
	color: var(--otaree-btn-color-h, var(--otaree-btn-color, #fff));
	border-color: var(--otaree-btn-bc-h, var(--otaree-btn-bc, transparent));
}

.otaree-search__submit.otaree-search__submit.otaree-search__submit:focus,
.otaree-search__submit.otaree-search__submit.otaree-search__submit:active {
	background: var(--otaree-btn-bg, #2271b1);
	color: var(--otaree-btn-color, #fff);
	border-color: var(--otaree-btn-bc, transparent);
	outline: none;
	box-shadow: none;
}

/* Menu déroulant budget */
.otaree-dropdown__toggle.otaree-dropdown__toggle.otaree-dropdown__toggle {
	position: relative;
}

/* Le bouton budget est un <button> : force l'alignement à gauche du libellé
   (« Votre budget »), sinon centré par défaut par le navigateur/thème. */
.otaree-search__field--budget .otaree-dropdown__toggle.otaree-dropdown__toggle.otaree-dropdown__toggle {
	text-align: left;
}

.otaree-dropdown__toggle.otaree-dropdown__toggle.otaree-dropdown__toggle:focus,
.otaree-dropdown__toggle.otaree-dropdown__toggle.otaree-dropdown__toggle:active {
	outline: none;
	box-shadow: none;
}

.otaree-dropdown__panel {
	display: none;
	flex-direction: column;
	gap: 8px;
	position: absolute;
	z-index: 20;
	top: 100%;
	left: 0;
	right: 0;
	margin-top: 6px;
	padding: 12px;
	min-width: 200px;
	background: #fff;
	border: 1px solid #ddd;
	border-radius: 8px;
	box-shadow: 0 8px 22px rgba(0, 0, 0, 0.12);
}

.otaree-dropdown.is-open .otaree-dropdown__panel {
	display: flex;
}

.otaree-dropdown__select.otaree-dropdown__select.otaree-dropdown__select,
.otaree-dropdown__input.otaree-dropdown__input.otaree-dropdown__input {
	width: 100%;
	margin: 0;
	padding: 9px 12px;
	border: 1px solid var(--otaree-dropdown-field-bc, #ddd);
	border-radius: 6px;
	background: var(--otaree-dropdown-field-bg, #fff);
	color: var(--otaree-dropdown-field-color, #333);
	font-family: inherit;
	font-size: inherit;
	text-transform: none;
	box-shadow: none;
	outline: none;
	min-height: 0;
}

/* Anneau de focus clavier uniquement (jamais au clic souris). */
.otaree-search__submit.otaree-search__submit.otaree-search__submit:focus-visible,
.otaree-dropdown__toggle.otaree-dropdown__toggle.otaree-dropdown__toggle:focus-visible,
.otaree-search__input.otaree-search__input.otaree-search__input:focus-visible {
	outline: 2px solid var(--otaree-focus-ring, currentColor);
	outline-offset: 2px;
}

/* Bouton de recherche en icône (loupe…) */
.otaree-search__submit--icon.otaree-search__submit--icon.otaree-search__submit--icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 48px;
	height: 48px;
	padding: 0;
	font-size: 18px;
	line-height: 1;
}

.otaree-search__submit--icon svg {
	width: 1em;
	height: 1em;
	fill: currentColor;
}

/* --- Pagination --- */
.otaree-pagination {
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
	justify-content: center;
	align-items: center;
}

.otaree-pagination__item {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 38px;
	height: 38px;
	padding: 0 10px;
	border: 1px solid #ddd;
	border-radius: 6px;
	background: #fff;
	color: #333;
	text-decoration: none;
}

.otaree-pagination__item:hover {
	border-color: #2271b1;
}

.otaree-pagination__item.is-active {
	background: #2271b1;
	border-color: #2271b1;
	color: #fff;
}

.otaree-pagination__dots {
	padding: 0 4px;
	color: #888;
}
