/* ANIMATIONS : tout le mouvement du site. A charger après screen.css et responsive.css, avec animations.js après main.js */

/* MOUVEMENT *//* MOUVEMENT *//* MOUVEMENT *//* MOUVEMENT */
/* MOUVEMENT *//* MOUVEMENT *//* MOUVEMENT *//* MOUVEMENT */

/* Trois courbes : cubic-bezier(.2, .7, .2, 1) pour ce qui arrive ou répond, cubic-bezier(.77, 0, .175, 1) pour ce qui traverse (paupières, rideaux, voiles), cubic-bezier(.34, 1.56, .64, 1) pour ce qui se pose (viseurs, polaroids).
   Trois durées : .4s geste, .8s passage, 1.4s plan.
   Classes à poser dans l'éditeur : anim_scroll, anim_mots, anim_rideau, anim_cartes, anim_parallax, anim_lecture. Sur le premier visuel d'une page : anim_arrivee */

@keyframes AnimArrivee {
	0%{opacity:0;transform:translateY(24px);filter:blur(8px);}
}

@keyframes AnimArriveeLigne {
	0%{opacity:0;clip-path:inset(-30% 50% -30% 50%);}
	100%{opacity:1;clip-path:inset(-30% -10% -30% -10%);}
}

@keyframes AnimArriveeHaut {
	0%{opacity:0;transform:translateY(-14px);}
}

@keyframes AnimArriveeGauche {
	0%{opacity:0;translate:-16px 0;}
}

@keyframes AnimArriveeDroite {
	0%{opacity:0;translate:16px 0;}
}

@keyframes AnimMot {
	0%{opacity:0;transform:translateY(120%);}
}

@keyframes AnimMotEm {
	0%{opacity:0;transform:translateY(120%) rotate(7deg);}
}

@keyframes AnimFondu {
	0%{opacity:0;}
}

@keyframes AnimDezoom {
	0%{transform:scale(1.15);}
}

a:focus-visible,
button:focus-visible,
[tabindex]:focus-visible{
	outline: 1px solid #7C5A37 !important;
	outline-offset: 6px;
}

/* ARRIVEE : au chargement, les enfants d'un bloc anim_arrivee font leur mise au point en cascade.
   Un h1 s'ouvre depuis son centre, un titre anim_mots arrive mot à mot */

.anim_arrivee > *{
	animation: AnimArrivee 1.4s cubic-bezier(.2, .7, .2, 1) .3s backwards;
}

.anim_arrivee > :nth-child(2){
	animation-delay: .45s;
}

.anim_arrivee > :nth-child(3){
	animation-delay: .6s;
}

.anim_arrivee > :nth-child(4){
	animation-delay: .75s;
}

.anim_arrivee > :nth-child(n+5){
	animation-delay: .9s;
}

.anim_arrivee > h1{
	animation-name: AnimArriveeLigne;
	animation-duration: 1.6s;
}

.anim_arrivee > .anim_mots.mots_prets{
	animation-name: none;
}

/* Avec la classe js sur html (header.php), le titre attend les mots. Si animations.js ne vient jamais, il arrive d'un bloc à 2.5s */
@media (prefers-reduced-motion: no-preference){
	.js .anim_arrivee > .anim_mots:not(.mots_prets){
		animation-delay: 2.5s !important;
	}
}

/* Une image d'arrivée reste peinte dès la première image : un voile couleur page se retire vers le haut, la photo dézoome, le viseur se pose */

@keyframes AnimVoileHaut {
	0%{transform:scaleY(1);}
	100%{transform:scaleY(0);}
}

@keyframes AnimViseurPose {
	0%{opacity:0;transform:scale(1.08);}
}

.anim_arrivee > .wp-block-image{
	position: relative;
	overflow: hidden;
	animation-name: none;
}

/* Des colonnes de cartes dans un bloc anim_arrivee : chaque photo se dévoile à son tour, puis son texte */
.anim_arrivee > .wp-block-columns{
	animation-name: none;
}

.anim_arrivee > .wp-block-columns .wp-block-image{
	position: relative;
	overflow: hidden;
	animation-delay: .7s;
}

.anim_arrivee > .wp-block-columns > :nth-child(2) .wp-block-image{
	animation-delay: .85s;
}

.anim_arrivee > .wp-block-columns > :nth-child(n+3) .wp-block-image{
	animation-delay: 1s;
}

.anim_arrivee > .wp-block-columns > .wp-block-column > :not(.wp-block-image){
	animation: AnimArrivee 1.4s cubic-bezier(.2, .7, .2, 1) 1s backwards;
}

.anim_arrivee > .wp-block-columns > :nth-child(2) > :not(.wp-block-image){
	animation-delay: 1.15s;
}

.anim_arrivee > .wp-block-columns > :nth-child(n+3) > :not(.wp-block-image){
	animation-delay: 1.3s;
}

.anim_arrivee > .wp-block-image::before,
.anim_arrivee > .wp-block-columns .wp-block-image::before{
	content: "";
	position: absolute;
	top: 0;
	right: 0;
	bottom: 0;
	left: 0;
	z-index: 2;
	background: #F2EDE9;
	transform: scaleY(0);
	transform-origin: center top;
	animation: AnimVoileHaut 1.4s cubic-bezier(.77, 0, .175, 1) backwards;
	animation-delay: inherit;
	pointer-events: none;
}

.anim_arrivee > .wp-block-image img,
.anim_arrivee > .wp-block-columns .wp-block-image img{
	animation: AnimDezoom 2.4s cubic-bezier(.2, .7, .2, 1) backwards;
	animation-delay: inherit;
}

/* HERO DES SOUS-PAGES : la pellicule de photos glisse en place, le soleil et la fleur se posent */

@keyframes AnimGlisse {
	0%{translate:18vw 0;}
}

@keyframes AnimDecorPose {
	0%{opacity:0;scale:.4;}
}

.hero_sous_page > .wrap_slider_horizontal_gallery{
	animation: AnimGlisse 1.8s cubic-bezier(.77, 0, .175, 1) .35s backwards;
}

.hero_sous_page > .wrap_slider_horizontal_gallery img{
	animation: AnimDezoom 2.4s cubic-bezier(.2, .7, .2, 1) .35s backwards;
}

.hero_sous_page .wrap_small_content::before{
	animation: AnimDecorPose 1.4s cubic-bezier(.34, 1.56, .64, 1) 1.1s backwards;
}

.hero_sous_page .wrap_small_content::after{
	animation: AnimDecorPose 1.6s cubic-bezier(.34, 1.3, .64, 1) 1.3s backwards;
}

.anim_arrivee > .photo_portrait::after{
	animation: AnimViseurPose 1s cubic-bezier(.34, 1.56, .64, 1) 1.3s backwards;
}

/* ARRIVEE DU HEADER : sur chaque page, le logo, le menu puis le bouton descendent à leur place */

#header-main .logo_eoc,
#header-main .wrap_main_menu .menu > li,
#header-main .wrap_menu_plus > button{
	animation: AnimArriveeHaut 1s cubic-bezier(.2, .7, .2, 1) .15s backwards;
}

#header-main .wrap_main_menu .menu > li:nth-child(1){
	animation-delay: .25s;
}

#header-main .wrap_main_menu .menu > li:nth-child(2){
	animation-delay: .3s;
}

#header-main .wrap_main_menu .menu > li:nth-child(3){
	animation-delay: .35s;
}

#header-main .wrap_main_menu .menu > li:nth-child(4){
	animation-delay: .4s;
}

#header-main .wrap_main_menu .menu > li:nth-child(n+5){
	animation-delay: .45s;
}

#header-main .wrap_menu_plus > button{
	animation-delay: .5s;
}

/* MOTS : chaque mot sort de derrière sa ligne. Le masque n'existe que le temps de l'apparition */

.anim_mots .mot,
.anim_mots .mot > span{
	display: inline-block;
	margin: 0;
	padding: 0;
	font-size: inherit;
	line-height: inherit;
	letter-spacing: inherit;
}

.anim_mots .mot{
	margin: -.15em -.1em -.15em 0;
	padding: .15em .1em .15em 0;
	vertical-align: top;
}

.anim_mots .mot_em > span{
	transform-origin: left bottom;
}

.anim_arrivee .anim_mots:not(.mots_finis) .mot,
.anim_mots.anim_prete .mot{
	overflow: hidden;
}

.anim_arrivee .anim_mots .mot > span{
	animation: AnimMot 1.2s cubic-bezier(.2, .7, .2, 1) backwards;
}

.anim_arrivee .anim_mots .mot_em > span{
	animation-name: AnimMotEm;
}

.anim_mots.anim_prete .mot > span{
	opacity: 0;
	transform: translateY(120%);
	transition: opacity .8s cubic-bezier(.2, .7, .2, 1), transform 1.2s cubic-bezier(.2, .7, .2, 1);
}

.anim_mots.anim_prete .mot_em > span{
	transform: translateY(120%) rotate(7deg);
}

.anim_mots.anim_prete.anime .mot > span{
	opacity: 1;
	transform: none;
}

/* MISE AU POINT : les enfants d'un bloc anim_scroll arrivent en cascade. Un enfant qui porte sa propre classe anim_ (un titre anim_mots, des polaroids)
   fait sa propre entrée. Les offres gardent leur chorégraphie */

.anim_scroll.anim_prete:not(.titre_offres, .carte_offre, .offres_bas, .wp-block-media-text) > :not(.wp-block-group__inner-container, [class*="anim_"]),
.anim_scroll.anim_prete:not(.titre_offres, .carte_offre, .offres_bas) > .wp-block-group__inner-container > :not([class*="anim_"]),
.wp-block-media-text.anim_scroll.anim_prete > .wp-block-media-text__content > :not([class*="anim_"]){
	opacity: 0;
	transform: translateY(14px);
	transition: opacity 1.4s cubic-bezier(.2, .7, .2, 1), transform 1.4s cubic-bezier(.2, .7, .2, 1), filter 1.4s cubic-bezier(.2, .7, .2, 1);
}

.anim_scroll.anim_prete:not(.titre_offres, .carte_offre, .offres_bas, .wp-block-media-text) > :is(h1, h2, h3, .surtitre):not([class*="anim_"]),
.anim_scroll.anim_prete:not(.titre_offres, .carte_offre, .offres_bas) > .wp-block-group__inner-container > :is(h1, h2, h3, .surtitre):not([class*="anim_"]),
.wp-block-media-text.anim_scroll.anim_prete > .wp-block-media-text__content > :is(h1, h2, h3, .surtitre):not([class*="anim_"]){
	filter: blur(6px);
}

.anim_scroll.anim_prete.anime:not(.titre_offres, .carte_offre, .offres_bas, .wp-block-media-text) > :not(.wp-block-group__inner-container, [class*="anim_"]),
.anim_scroll.anim_prete.anime:not(.titre_offres, .carte_offre, .offres_bas) > .wp-block-group__inner-container > :not([class*="anim_"]),
.wp-block-media-text.anim_scroll.anim_prete.anime > .wp-block-media-text__content > :not([class*="anim_"]){
	opacity: 1;
	transform: translateY(0);
	filter: none;
}

.anim_scroll.anim_prete:not(.titre_offres, .carte_offre, .offres_bas, .wp-block-media-text) > :nth-child(2),
.anim_scroll.anim_prete:not(.titre_offres, .carte_offre, .offres_bas) > .wp-block-group__inner-container > :nth-child(2),
.wp-block-media-text.anim_scroll.anim_prete > .wp-block-media-text__content > :nth-child(2){
	transition-delay: .15s;
}

.anim_scroll.anim_prete:not(.titre_offres, .carte_offre, .offres_bas, .wp-block-media-text) > :nth-child(3),
.anim_scroll.anim_prete:not(.titre_offres, .carte_offre, .offres_bas) > .wp-block-group__inner-container > :nth-child(3),
.wp-block-media-text.anim_scroll.anim_prete > .wp-block-media-text__content > :nth-child(3){
	transition-delay: .3s;
}

.anim_scroll.anim_prete:not(.titre_offres, .carte_offre, .offres_bas, .wp-block-media-text) > :nth-child(n+4),
.anim_scroll.anim_prete:not(.titre_offres, .carte_offre, .offres_bas) > .wp-block-group__inner-container > :nth-child(n+4),
.wp-block-media-text.anim_scroll.anim_prete > .wp-block-media-text__content > :nth-child(n+4){
	transition-delay: .45s;
}

.wp-block-media-text.anim_rideau.anim_scroll.anim_prete > .wp-block-media-text__content > :nth-child(1){
	transition-delay: .2s;
}

.wp-block-media-text.anim_rideau.anim_scroll.anim_prete > .wp-block-media-text__content > :nth-child(2){
	transition-delay: .35s;
}

.wp-block-media-text.anim_rideau.anim_scroll.anim_prete > .wp-block-media-text__content > :nth-child(3){
	transition-delay: .5s;
}

.wp-block-media-text.anim_rideau.anim_scroll.anim_prete > .wp-block-media-text__content > :nth-child(n+4){
	transition-delay: .65s;
}

/* Après un titre anim_mots, la suite laisse les mots se poser */
.anim_scroll.anim_prete > .anim_mots ~ :nth-child(n+2),
.anim_scroll.anim_prete > .wp-block-group__inner-container > .anim_mots ~ :nth-child(n+2),
.wp-block-media-text.anim_scroll.anim_prete > .wp-block-media-text__content > .anim_mots ~ :nth-child(n+2){
	transition-delay: .45s;
}

.anim_scroll.anim_prete > .anim_mots ~ :nth-child(n+3),
.anim_scroll.anim_prete > .wp-block-group__inner-container > .anim_mots ~ :nth-child(n+3),
.wp-block-media-text.anim_scroll.anim_prete > .wp-block-media-text__content > .anim_mots ~ :nth-child(n+3){
	transition-delay: .6s;
}

.anim_scroll.anim_prete > .anim_mots ~ :nth-child(n+4),
.anim_scroll.anim_prete > .wp-block-group__inner-container > .anim_mots ~ :nth-child(n+4),
.wp-block-media-text.anim_scroll.anim_prete > .wp-block-media-text__content > .anim_mots ~ :nth-child(n+4){
	transition-delay: .75s;
}

.anim_scroll.anim_prete:not(.titre_offres) .surtitre_decor::after{
	clip-path: inset(0 100% 0 0);
	transition: clip-path 1.4s cubic-bezier(.77, 0, .175, 1) .35s;
}

.anim_scroll.anim_prete.anime:not(.titre_offres) .surtitre_decor::after{
	clip-path: inset(0 0 0 0);
}

/* RIDEAU : la photo se découvre de bas en haut et dézoome. Sur une image, une galerie, un média et texte,
   ou sur un groupe et des colonnes : chaque photo à son tour, les légendes ensuite */

.wp-block-image.anim_rideau.anim_prete,
.wp-block-gallery.anim_rideau.anim_prete .wp-block-image,
.wp-block-media-text.anim_rideau.anim_prete > .wp-block-media-text__media,
.anim_rideau.anim_prete:not(.wp-block-image, .wp-block-gallery, .wp-block-media-text) figure{
	overflow: hidden;
}

.wp-block-media-text.anim_rideau.anim_prete > .wp-block-media-text__media{
	clip-path: inset(100% 0 0 0);
	transition: clip-path 1.4s cubic-bezier(.77, 0, .175, 1);
}

.wp-block-media-text.anim_rideau.anim_prete > .wp-block-media-text__media img{
	transform: scale(1.15);
	transition: transform 2.2s cubic-bezier(.2, .7, .2, 1);
}

.wp-block-image.anim_rideau.anim_prete img,
.wp-block-gallery.anim_rideau.anim_prete img,
.anim_rideau.anim_prete:not(.wp-block-image, .wp-block-gallery, .wp-block-media-text) img{
	clip-path: inset(100% 0 0 0);
	transform: scale(1.15);
	transition: clip-path 1.4s cubic-bezier(.77, 0, .175, 1), transform 2.2s cubic-bezier(.2, .7, .2, 1);
}

.wp-block-media-text.anim_rideau.anim_prete.anime > .wp-block-media-text__media,
.wp-block-image.anim_rideau.anim_prete.anime img,
.wp-block-gallery.anim_rideau.anim_prete.anime img,
.anim_rideau.anim_prete.anime:not(.wp-block-image, .wp-block-gallery, .wp-block-media-text) img{
	clip-path: inset(0 0 0 0);
}

.wp-block-media-text.anim_rideau.anim_prete.anime > .wp-block-media-text__media img,
.wp-block-image.anim_rideau.anim_prete.anime img,
.wp-block-gallery.anim_rideau.anim_prete.anime img,
.anim_rideau.anim_prete.anime:not(.wp-block-image, .wp-block-gallery, .wp-block-media-text) img{
	transform: scale(1);
}

.wp-block-gallery.anim_rideau.anim_prete > :nth-child(3n+2) img,
.anim_rideau.anim_prete:not(.wp-block-image, .wp-block-gallery, .wp-block-media-text) > :nth-child(2) img{
	transition-delay: .15s;
}

.wp-block-gallery.anim_rideau.anim_prete > :nth-child(3n+3) img,
.anim_rideau.anim_prete:not(.wp-block-image, .wp-block-gallery, .wp-block-media-text) > :nth-child(3) img{
	transition-delay: .3s;
}

.anim_rideau.anim_prete:not(.wp-block-image, .wp-block-gallery, .wp-block-media-text) > :nth-child(n+4) img{
	transition-delay: .45s;
}

.wp-block-gallery.columns-4.anim_rideau.anim_prete > :nth-child(n) img{
	transition-delay: 0s;
}

.wp-block-gallery.columns-4.anim_rideau.anim_prete > :nth-child(4n+2) img{
	transition-delay: .15s;
}

.wp-block-gallery.columns-4.anim_rideau.anim_prete > :nth-child(4n+3) img{
	transition-delay: .3s;
}

.wp-block-gallery.columns-4.anim_rideau.anim_prete > :nth-child(4n+4) img{
	transition-delay: .45s;
}

.wp-block-columns.anim_rideau.anim_prete > .wp-block-column > :not(figure){
	opacity: 0;
	transform: translateY(14px);
	transition: opacity 1.4s cubic-bezier(.2, .7, .2, 1) .6s, transform 1.4s cubic-bezier(.2, .7, .2, 1) .6s;
}

.wp-block-columns.anim_rideau.anim_prete > :nth-child(2) > :not(figure){
	transition-delay: .75s;
}

.wp-block-columns.anim_rideau.anim_prete > :nth-child(3) > :not(figure){
	transition-delay: .9s;
}

.wp-block-columns.anim_rideau.anim_prete > :nth-child(n+4) > :not(figure){
	transition-delay: 1.05s;
}

.wp-block-columns.anim_rideau.anim_prete.anime > .wp-block-column > :not(figure){
	opacity: 1;
	transform: translateY(0);
}

/* CARTES : chaque colonne ou image monte de 32px, trois par rangée */

.anim_cartes.anim_prete > :not(.wp-block-group__inner-container),
.anim_cartes.anim_prete > .wp-block-group__inner-container > *{
	opacity: 0;
	transform: translateY(32px);
	transition: opacity 1.4s cubic-bezier(.2, .7, .2, 1), transform 1.4s cubic-bezier(.2, .7, .2, 1);
}

.anim_cartes.anim_prete.anime > :not(.wp-block-group__inner-container),
.anim_cartes.anim_prete.anime > .wp-block-group__inner-container > *{
	opacity: 1;
	transform: translateY(0);
}

.anim_cartes.anim_prete > :nth-child(3n+2),
.anim_cartes.anim_prete > .wp-block-group__inner-container > :nth-child(3n+2){
	transition-delay: .15s;
}

.anim_cartes.anim_prete > :nth-child(3n+3),
.anim_cartes.anim_prete > .wp-block-group__inner-container > :nth-child(3n+3){
	transition-delay: .3s;
}

/* LECTURE : les mots d'un bloc anim_lecture s'allument au fil du défilement, comme une lecture à voix haute */

.anim_lecture .mot_lecture{
	opacity: .22;
	transition: opacity .6s cubic-bezier(.2, .7, .2, 1);
}

.anim_lecture .mot_lecture.lu{
	opacity: 1;
}

/* PARALLAXE ET DEFILEMENT : animations liées au scroll, calculées par le navigateur hors du fil principal.
   Un navigateur qui ne les gère pas reste immobile, et rien ne bouge en mouvement réduit */

@keyframes AnimParallax {
	0%{translate:0 -7%;}
	100%{translate:0 7%;}
}

@keyframes AnimFlotte {
	0%{translate:0 60px;}
	100%{translate:0 -60px;}
}

@keyframes AnimSoleil {
	100%{rotate:240deg;}
}

@keyframes AnimFleur {
	0%{rotate:-5deg;}
	100%{rotate:5deg;}
}

@keyframes AnimSortieTexte {
	100%{opacity:0;translate:0 -14vh;}
}

@keyframes AnimSortieImage {
	100%{translate:0 24%;}
}

@keyframes AnimSortieViseur {
	100%{scale:1.12;}
}

/* ACCUEIL : OUVERTURE *//* ACCUEIL : OUVERTURE *//* ACCUEIL : OUVERTURE */

/* Les paupières s'ouvrent sur la photo, qui dézoome, puis le viseur se pose.
   La photo est peinte dès la première image sous les paupières : le LCP n'attend pas */

@keyframes AnimPaupiere {
	0%{transform:scaleY(.92);}
	100%{transform:scaleY(0);}
}

@keyframes AnimDezoomArrivee {
	0%{scale:1.2;}
}

@keyframes AnimViseurArrivee {
	0%{opacity:0;transform:scale(1.08);}
	100%{opacity:.5;transform:scale(1);}
}

.sliderHome{
	background: #190F07;
}

.sliderHome::before,
.sliderHome::after{
	content: "";
	position: absolute;
	right: 0;
	left: 0;
	z-index: 95;
	height: 50%;
	background: #190F07;
	transform: scaleY(0);
	animation: AnimPaupiere 1.4s cubic-bezier(.77, 0, .175, 1) .15s both;
	pointer-events: none;
}

.sliderHome::before{
	top: 0;
	transform-origin: center top;
}

.sliderHome::after{
	bottom: 0;
	transform-origin: center bottom;
}

.sliderHome .swiper-slide{
	overflow: hidden;
}

.sliderHome .swiper-slide img{
	animation: AnimDezoomArrivee 3s cubic-bezier(.2, .7, .2, 1) backwards;
}

.sliderHome .viseur_photo{
	top: 24px;
	right: 24px;
	bottom: 24px;
	left: 24px;
	z-index: 96;
	opacity: .5;
	transform: none;
	animation: AnimViseurArrivee 1.2s cubic-bezier(.34, 1.56, .64, 1) 1.45s backwards;
	pointer-events: none;
}

.content_top_page.anim_arrivee > :nth-child(1){
	animation-delay: .75s;
}

.content_top_page.anim_arrivee > :nth-child(2){
	animation-delay: 1.25s;
}

.wrap_bottom_home_top.anim_arrivee > *{
	animation-delay: 1.75s;
}

.sliderHome .swiper-button-prev{
	animation: AnimArriveeGauche 1s cubic-bezier(.2, .7, .2, 1) 1.6s backwards;
}

.sliderHome .swiper-button-next{
	animation: AnimArriveeDroite 1s cubic-bezier(.2, .7, .2, 1) 1.6s backwards;
}

body.page-template-page-accueil #header-main .logo_eoc{
	animation-delay: 1.15s;
}

body.page-template-page-accueil #header-main .wrap_main_menu .menu > li:nth-child(1){
	animation-delay: 1.25s;
}

body.page-template-page-accueil #header-main .wrap_main_menu .menu > li:nth-child(2){
	animation-delay: 1.3s;
}

body.page-template-page-accueil #header-main .wrap_main_menu .menu > li:nth-child(3){
	animation-delay: 1.35s;
}

body.page-template-page-accueil #header-main .wrap_main_menu .menu > li:nth-child(4){
	animation-delay: 1.4s;
}

body.page-template-page-accueil #header-main .wrap_main_menu .menu > li:nth-child(n+5){
	animation-delay: 1.45s;
}

body.page-template-page-accueil #header-main .wrap_menu_plus > button{
	animation-delay: 1.5s;
}

/* FLECHES DES SLIDERS : elles pointent leur direction au survol et s'enfoncent au clic */

.swiper-button-prev,
.swiper-button-next{
	transition: scale .4s cubic-bezier(.34, 1.56, .64, 1);
}

.swiper-button-prev::after,
.swiper-button-next::after{
	transition: transform .4s cubic-bezier(.2, .7, .2, 1);
}

.swiper-button-prev:active,
.swiper-button-next:active{
	scale: .9;
	transition-duration: .12s;
}

@media (hover: hover) and (pointer: fine){
	.swiper-button-prev:hover::after{
		transform: translateX(-4px);
	}

	.swiper-button-next:hover::after{
		transform: translateX(4px);
	}
}

/* ACCUEIL : AVIS *//* ACCUEIL : AVIS *//* ACCUEIL : AVIS */

/* Chaque avis se compose quand il devient actif : la photo se découvre, le polaroid se pose, la citation fait sa mise au point.
   Hors écran, le premier avis attend que la section arrive */

@keyframes AnimRideauHaut {
	0%{clip-path:inset(100% 0 0 0);}
	100%{clip-path:inset(0 0 0 0);}
}

@keyframes AnimPose {
	0%{opacity:0;translate:0 -36px;rotate:-9deg;}
}

@keyframes AnimMiseAuPoint {
	0%{opacity:0;transform:translateY(14px);filter:blur(6px);}
}

.slider_avis .image_avis{
	overflow: hidden;
}

.slider_avis .swiper-slide-active .image_avis{
	animation: AnimRideauHaut 1.4s cubic-bezier(.77, 0, .175, 1) backwards;
}

.slider_avis .swiper-slide-active .image_avis img{
	animation: AnimDezoom 2.2s cubic-bezier(.2, .7, .2, 1) backwards;
}

.slider_avis .swiper-slide-active .polaroid_avis{
	animation: AnimPose 1.4s cubic-bezier(.34, 1.3, .64, 1) .35s backwards;
}

.slider_avis .swiper-slide-active .citation_avis{
	animation: AnimMiseAuPoint 1.4s cubic-bezier(.2, .7, .2, 1) .5s backwards;
}

.slider_avis .swiper-slide-active .btn_avis{
	animation: AnimMiseAuPoint 1.4s cubic-bezier(.2, .7, .2, 1) .65s backwards;
}

.slider_avis .swiper-slide-active .nom_avis{
	animation: AnimMiseAuPoint 1.4s cubic-bezier(.2, .7, .2, 1) .2s backwards;
}

.slider_avis .swiper-slide-active .contenu_avis{
	animation: AnimMiseAuPoint 1.4s cubic-bezier(.2, .7, .2, 1) .3s backwards;
}

.wrap_slider_avis.anim_prete:not(.anime) .swiper-slide-active :is(.image_avis, .image_avis img, .polaroid_avis, .citation_avis, .btn_avis, .nom_avis, .contenu_avis){
	opacity: 0;
	animation-name: none;
}

.wrap_slider_avis.anim_prete > .small_titre{
	opacity: 0;
	filter: blur(6px);
	transition: opacity 1.4s cubic-bezier(.2, .7, .2, 1), filter 1.4s cubic-bezier(.2, .7, .2, 1);
}

.wrap_slider_avis.anim_prete.anime > .small_titre{
	opacity: 1;
	filter: none;
}

.nav_avis button{
	transition: background .3s ease, opacity .3s ease, scale .4s cubic-bezier(.34, 1.56, .64, 1);
}

.nav_avis button:active{
	scale: .9;
	transition-duration: .3s, .3s, .12s;
}

/* ACCUEIL : DESTINATIONS *//* ACCUEIL : DESTINATIONS *//* ACCUEIL : DESTINATIONS */

/* Au survol, la photo s'approche, la légende se relève et la lumière baisse un peu */

.item_image_lieu figure{
	overflow: hidden;
}

.item_image_lieu figure img{
	transition: transform 1.4s cubic-bezier(.2, .7, .2, 1);
}

.item_image_lieu .wp-block-group{
	transition: transform .8s cubic-bezier(.2, .7, .2, 1);
}

.item_image_lieu::after{
	transition: opacity .8s ease;
}

.anim_rideau.anim_prete .item_image_lieu::after{
	opacity: 0;
}

.anim_rideau.anim_prete.anime .item_image_lieu::after{
	opacity: .55;
	transition-delay: .5s;
}

@media (hover: hover) and (pointer: fine){
	.item_image_lieu:hover figure img{
		transform: scale(1.04);
	}

	.item_image_lieu:hover .wp-block-group{
		transform: translateY(-6px);
	}

	.item_image_lieu:hover::after{
		opacity: .8;
	}
}

/* ACCUEIL : EXPERIENCES *//* ACCUEIL : EXPERIENCES *//* ACCUEIL : EXPERIENCES */

/* Le viseur se pose sur la photo choisie, au survol comme au clavier. A l'apparition, les trois photos montent,
   puis celle du centre fait sa mise au point */

.wrap_col_experiences figure{
	transition: transform .7s cubic-bezier(.2, .8, .2, 1), scale .4s cubic-bezier(.34, 1.56, .64, 1);
}

.wrap_col_experiences figure:active{
	scale: .98;
	transition-duration: .7s, .12s;
}

.wrap_col_experiences figure::after{
	transform: scale(1.06);
	transition: opacity .4s ease, transform .55s cubic-bezier(.34, 1.56, .64, 1);
	pointer-events: none;
}

.wrap_col_item_experiences .wp-block-column:nth-child(2) figure::after,
.wrap_col_item_experiences .wp-block-columns:hover .wp-block-column:hover figure::after,
.wrap_col_item_experiences .wp-block-columns:focus-within .wp-block-column:focus-within figure::after{
	opacity: .5;
	transform: scale(1);
}

.wrap_col_item_experiences .wp-block-columns:hover .wp-block-column:not(:hover) figure::after,
.wrap_col_item_experiences .wp-block-columns:focus-within .wp-block-column:not(:focus-within) figure::after{
	opacity: 0;
	transform: scale(1.06);
}

.wrap_col_item_experiences .wp-block-columns:focus-within .wp-block-column figure{
	transform: scale(.852);
}

.wrap_col_item_experiences .wp-block-columns:focus-within .wp-block-column:focus-within figure{
	transform: scale(1);
}

.wrap_col_item_experiences .wp-block-columns:focus-within .wp-block-column .content_col_experiences{
	opacity: 0;
	visibility: hidden;
	transition: opacity .4s ease, visibility 0s linear .4s;
}

.wrap_col_item_experiences .wp-block-columns:focus-within .wp-block-column:focus-within .content_col_experiences{
	opacity: 1;
	visibility: visible;
	transition: opacity .4s ease, visibility 0s;
}

.wrap_col_item_experiences .anim_cartes.anim_prete .wp-block-column:nth-child(2) figure{
	transform: scale(.852);
}

.wrap_col_item_experiences .anim_cartes.anim_prete .wp-block-column:nth-child(2) figure::after,
.wrap_col_item_experiences .anim_cartes.anim_prete .wp-block-column:nth-child(2) .content_col_experiences{
	opacity: 0;
}

.wrap_col_item_experiences .anim_cartes.anim_prete.anime .wp-block-column:nth-child(2) figure{
	transform: scale(1);
	transition-delay: .9s;
}

.wrap_col_item_experiences .anim_cartes.anim_prete.anime .wp-block-column:nth-child(2) figure::after{
	opacity: .5;
	transform: scale(1);
	transition-delay: 1.3s;
}

.wrap_col_item_experiences .anim_cartes.anim_prete.anime .wp-block-column:nth-child(2) .content_col_experiences{
	opacity: 1;
	transition-delay: 1.4s;
}

/* ACCUEIL : PHOTOS SUPERPOSEES *//* ACCUEIL : PHOTOS SUPERPOSEES *//* ACCUEIL : PHOTOS SUPERPOSEES */

/* Après les rideaux, la lune glisse en place et le soleil se pose */

.col_double_images.anim_rideau.anim_prete figure:first-child::before{
	opacity: 0;
	translate: -24px 0;
	transition: opacity 1.4s cubic-bezier(.2, .7, .2, 1) 1s, translate 1.4s cubic-bezier(.2, .7, .2, 1) 1s;
}

.col_double_images.anim_rideau.anim_prete figure:first-child::after{
	opacity: 0;
	scale: .4;
	transition: opacity .8s ease 1.2s, scale 1.2s cubic-bezier(.34, 1.56, .64, 1) 1.2s;
}

.col_double_images.anim_rideau.anim_prete.anime figure:first-child::before{
	opacity: 1;
	translate: 0 0;
}

.col_double_images.anim_rideau.anim_prete.anime figure:first-child::after{
	opacity: 1;
	scale: 1;
}

/* ACCUEIL : COUPS DE COEUR *//* ACCUEIL : COUPS DE COEUR *//* ACCUEIL : COUPS DE COEUR */

/* Le premier coup de coeur attend que la section arrive pour faire son entrée. Au survol, son nom respire */

.wrap_coups_de_coeur.anim_prete:not(.anime) .swiper-slide-active :is(.fond_coup img, .image_coup, .nom_coup, .infos_coup, .decouvrir_coup){
	animation-name: none;
}

.wrap_coups_de_coeur.anim_prete:not(.anime) .swiper-slide-active :is(.image_coup, .nom_coup, .infos_coup, .decouvrir_coup){
	opacity: 0;
}

.nom_coup{
	transition: letter-spacing 1.2s cubic-bezier(.2, .7, .2, 1);
}

.lien_coup:focus-visible .nom_coup{
	letter-spacing: -0.02em;
}

@media (hover: hover) and (pointer: fine){
	.lien_coup:hover .nom_coup{
		letter-spacing: -0.02em;
	}
}

.wrap_coups_de_coeur .swiper-button-prev,
.wrap_coups_de_coeur .swiper-button-next{
	transition: background .3s ease, scale .4s cubic-bezier(.34, 1.56, .64, 1);
}

/* GALERIES : au survol, la photo s'approche dans son cadre */

.wp-block-gallery .wp-block-image{
	overflow: hidden;
}

.wp-block-gallery .wp-block-image img{
	transition: transform 1.2s cubic-bezier(.2, .7, .2, 1);
}

@media (hover: hover) and (pointer: fine){
	.wp-block-gallery .wp-block-image a:hover img{
		transform: scale(1.04);
	}
}

/* PORTFOLIO : les photos s'affichent tout de suite, sans apparition, y compris au tri */

.contenu_portfolio .wp-block-gallery,
.contenu_portfolio .wp-block-gallery img{
	animation: none !important;
}

/* COVER : le viseur attend que la citation soit arrivée pour se poser */

.wp-block-cover::after{
	transition: opacity .8s ease .6s, transform 1s cubic-bezier(.34, 1.56, .64, 1) .6s;
}

.wp-block-cover:has(.anim_prete:not(.anime))::after{
	opacity: 0;
	transform: scale(1.06);
	transition-delay: 0s;
}

/* POLAROIDS : un bloc anim_polaroids pose ses tirages l'un après l'autre, puis chaque photo se développe depuis le blanc du papier */

.anim_polaroids .polaroid_image::before{
	content: "";
	position: absolute;
	top: 16.38%;
	left: 6.98%;
	z-index: 1;
	width: 84.3%;
	height: 64.22%;
	background: #F3EFE8;
	opacity: 0;
	pointer-events: none;
}

.anim_polaroids .polaroid_image.polaroid_paysage::before{
	top: 15.74%;
	left: 10.27%;
	width: 76.71%;
	height: 65.28%;
}

.anim_polaroids.anim_prete .polaroid_image{
	opacity: 0;
	translate: 0 -40px;
	rotate: -8deg;
	transition: opacity .8s ease, translate 1.4s cubic-bezier(.34, 1.3, .64, 1), rotate 1.4s cubic-bezier(.34, 1.3, .64, 1);
}

.anim_polaroids.anim_prete .polaroid_image + .polaroid_image{
	translate: 0 -40px;
	rotate: 8deg;
	transition-delay: .3s;
}

.anim_polaroids.anim_prete .polaroid_image::before{
	opacity: 1;
	transition: opacity 2.6s cubic-bezier(.2, .7, .2, 1) .8s;
}

.anim_polaroids.anim_prete .polaroid_image img{
	filter: sepia(.8) contrast(.7) brightness(1.15);
	transition: filter 3.4s cubic-bezier(.2, .7, .2, 1) .8s;
}

.anim_polaroids.anim_prete .polaroid_image + .polaroid_image::before,
.anim_polaroids.anim_prete .polaroid_image + .polaroid_image img{
	transition-delay: 1.1s;
}

.anim_polaroids.anim_prete.anime .polaroid_image{
	opacity: 1;
	translate: 0 0;
	rotate: 0deg;
}

.anim_polaroids.anim_prete.anime .polaroid_image::before{
	opacity: 0;
}

.anim_polaroids.anim_prete.anime .polaroid_image img{
	filter: none;
}

/* TRAIT : dans un bloc anim_trait, un fil se déroule au rythme du scroll et allume chaque étape quand il l'atteint (fil créé par le JS) */

.anim_trait{
	position: relative;
}

.fil_trait{
	position: absolute;
	left: 160px;
	z-index: 1;
	width: 1px;
	background: rgba(242, 237, 233, .15);
	pointer-events: none;
}

.fil_trait span{
	position: absolute;
	top: 0;
	right: 0;
	bottom: 0;
	left: 0;
	background: #7C5A37;
	transform: scaleY(0);
	transform-origin: center top;
}

.anim_trait .etape_histoire::before{
	content: "";
	position: absolute;
	top: 55px;
	left: 155px;
	z-index: 2;
	width: 11px;
	height: 11px;
	border: 1px solid #7C5A37;
	border-radius: 50%;
	background: #190F07;
	transform: scale(.6);
	transition: background-color .4s ease, transform .6s cubic-bezier(.34, 1.56, .64, 1);
}

.anim_trait .etape_histoire.atteinte::before{
	background: #7C5A37;
	transform: scale(1);
}

.anim_trait .date_etape{
	opacity: .35;
	transition: opacity .8s cubic-bezier(.2, .7, .2, 1);
}

.anim_trait .etape_histoire.atteinte .date_etape{
	opacity: 1;
}

/* AVIS EN CARTES : les cartes glissent en place, celle du centre d'abord */

.slider_avis_cartes .swiper-slide{
	transition: opacity .6s ease, translate 1.4s cubic-bezier(.2, .7, .2, 1);
}

.wrap_avis_cartes.anim_prete:not(.anime) .swiper-slide{
	opacity: 0;
	translate: 80px 0;
}

.wrap_avis_cartes.anim_prete .swiper-slide-next{
	transition-delay: .15s;
}

.wrap_avis_cartes.anim_prete .swiper-slide-next + .swiper-slide{
	transition-delay: .3s;
}

/* LISTE : les enfants d'un bloc anim_liste (accordéon, FAQ, liste) arrivent l'un après l'autre */

.anim_liste.anim_prete > :not(.wp-block-group__inner-container),
.anim_liste.anim_prete > .wp-block-group__inner-container > *{
	opacity: 0;
	transform: translateY(14px);
	transition: opacity 1s cubic-bezier(.2, .7, .2, 1), transform 1s cubic-bezier(.2, .7, .2, 1);
}

.anim_liste.anim_prete.anime > :not(.wp-block-group__inner-container),
.anim_liste.anim_prete.anime > .wp-block-group__inner-container > *{
	opacity: 1;
	transform: translateY(0);
}

.anim_liste.anim_prete > :nth-child(2),
.anim_liste.anim_prete > .wp-block-group__inner-container > :nth-child(2){
	transition-delay: .08s;
}

.anim_liste.anim_prete > :nth-child(3),
.anim_liste.anim_prete > .wp-block-group__inner-container > :nth-child(3){
	transition-delay: .16s;
}

.anim_liste.anim_prete > :nth-child(4),
.anim_liste.anim_prete > .wp-block-group__inner-container > :nth-child(4){
	transition-delay: .24s;
}

.anim_liste.anim_prete > :nth-child(5),
.anim_liste.anim_prete > .wp-block-group__inner-container > :nth-child(5){
	transition-delay: .32s;
}

.anim_liste.anim_prete > :nth-child(6),
.anim_liste.anim_prete > .wp-block-group__inner-container > :nth-child(6){
	transition-delay: .4s;
}

.anim_liste.anim_prete > :nth-child(n+7),
.anim_liste.anim_prete > .wp-block-group__inner-container > :nth-child(n+7){
	transition-delay: .48s;
}

/* FAQ : la fleur attend que les questions soient arrivées pour se poser */

.wrap_section_faq::after{
	transition: opacity 1s ease .4s, scale 1.4s cubic-bezier(.34, 1.3, .64, 1) .4s;
}

.wrap_section_faq:has(.anim_prete:not(.anime))::after{
	opacity: 0;
	scale: .5;
	transition-delay: 0s;
}

/* PILULES DE TRI : elles s'enfoncent au clic (carnet, portfolio, FAQ, témoignages) */

.nav_destinations button{
	transition: color .4s cubic-bezier(.2, .7, .2, 1), border-color .4s cubic-bezier(.2, .7, .2, 1), scale .4s cubic-bezier(.34, 1.56, .64, 1);
}

.nav_destinations button:active{
	scale: .94;
	transition-duration: .4s, .4s, .12s;
}

/* FORMULAIRES : au focus, un trait doré se trace sous le champ et son libellé s'allume. Le bouton d'envoi se remplit comme un voile */

@keyframes AnimSecoue {
	0%{transform:translateX(0);}
	20%{transform:translateX(-5px);}
	40%{transform:translateX(4px);}
	60%{transform:translateX(-3px);}
	80%{transform:translateX(2px);}
	100%{transform:translateX(0);}
}

.wpcf7 input[type="text"],
.wpcf7 input[type="email"],
.wpcf7 input[type="tel"],
.wpcf7 input[type="url"],
.wpcf7 input[type="number"],
.wpcf7 input[type="date"],
.wpcf7 select,
.wpcf7 textarea{
	background-image: linear-gradient(#7C5A37, #7C5A37);
	background-repeat: no-repeat;
	background-position: left bottom;
	background-size: 0% 1px;
	transition: border-color .3s ease, background-size .8s cubic-bezier(.77, 0, .175, 1);
}

.wpcf7 input[type="text"]:focus,
.wpcf7 input[type="email"]:focus,
.wpcf7 input[type="tel"]:focus,
.wpcf7 input[type="url"]:focus,
.wpcf7 input[type="number"]:focus,
.wpcf7 input[type="date"]:focus,
.wpcf7 select:focus,
.wpcf7 textarea:focus{
	background-size: 100% 1px;
}

.wpcf7 .libelle,
.wpcf7 legend{
	transition: color .4s ease;
}

.wpcf7 .champ:focus-within .libelle,
.wpcf7 fieldset:focus-within legend{
	color: #7C5A37;
}

.wpcf7 .wpcf7-form-control.wpcf7-not-valid{
	animation: AnimSecoue .5s cubic-bezier(.36, .07, .19, .97);
}

.wpcf7 .wpcf7-radio label:active .wpcf7-list-item-label{
	scale: .97;
}

.wpcf7 .wpcf7-radio .wpcf7-list-item-label{
	transition: color .4s ease, background .5s ease, border-color .5s ease, padding .5s cubic-bezier(.2, .8, .2, 1), scale .3s cubic-bezier(.34, 1.56, .64, 1);
}

.wpcf7 .wpcf7-submit{
	background-image: linear-gradient(90deg, #7C5A37 50%, #422914 50%);
	background-repeat: no-repeat;
	background-position: right center;
	background-size: 201% 100%;
	transition: background-position .6s cubic-bezier(.77, 0, .175, 1), transform .5s cubic-bezier(.34, 1.56, .64, 1);
}

/* .wpcf7 .wpcf7-submit:not(:disabled):hover,
.wpcf7 .wpcf7-submit:not(:disabled):focus-visible{
	background-image: linear-gradient(90deg, #7C5A37 50%, #422914 50%);
	background-position: left center;
} */

.wpcf7 .wpcf7-submit:not(:disabled):active{
	transform: scale(.96);
	transition-duration: .6s, .12s;
}

.wpcf7 .wpcf7-form.sent .wpcf7-response-output::before{
	animation: AnimViseurPose 1s cubic-bezier(.34, 1.56, .64, 1) .6s backwards;
}

/* TEMOIGNAGES : la note Google se remplit étoile par étoile, les cartes du mur arrivent l'une après l'autre (au chargement comme à chaque tri) */

@keyframes AnimEtoiles {
	0%{clip-path:inset(0 100% 0 0);}
	100%{clip-path:inset(0 -10% 0 0);}
}

.bandeau_google.anim_arrivee > :nth-child(1){
	animation-delay: 1.1s;
}

.bandeau_google.anim_arrivee > :nth-child(2){
	animation-delay: 1.25s;
}

.bandeau_google.anim_arrivee .note_google::before{
	animation: AnimEtoiles 1.2s cubic-bezier(.77, 0, .175, 1) 1.4s backwards;
}

.slider_avis .swiper-slide-active .etoiles_avis::before{
	display: inline-block;
	animation: AnimEtoiles 1.2s cubic-bezier(.77, 0, .175, 1) .9s backwards;
}

.wrap_slider_avis.anim_prete:not(.anime) .swiper-slide-active .etoiles_avis::before{
	animation-name: none;
}

.mur_temoignages.anim_prete:not(.anime) .carte_temoignage.visible,
.grille_carnet.anim_prete:not(.anime) .item_carnet.visible{
	opacity: 0;
	animation-name: none;
}

.mur_temoignages.js_pret .carte_temoignage.visible:nth-child(n+2 of .visible){
	animation-delay: .08s;
}

.mur_temoignages.js_pret .carte_temoignage.visible:nth-child(n+3 of .visible){
	animation-delay: .16s;
}

.mur_temoignages.js_pret .carte_temoignage.visible:nth-child(n+4 of .visible){
	animation-delay: .24s;
}

.mur_temoignages.js_pret .carte_temoignage.visible:nth-child(n+5 of .visible){
	animation-delay: .32s;
}

.mur_temoignages.js_pret .carte_temoignage.visible:nth-child(n+6 of .visible){
	animation-delay: .4s;
}

.mur_temoignages.js_pret .carte_temoignage.visible:nth-child(n+7 of .visible){
	animation-delay: .48s;
}

/* CARNET DE VOYAGES : le slider glisse en place sous le titre, les cartes arrivent par rangée de trois */

.wrap_slider_carnet .slider_carnet{
	animation: AnimGlisse 1.8s cubic-bezier(.77, 0, .175, 1) .5s backwards;
}

.wrap_slider_carnet .slider_carnet img{
	animation: AnimDezoom 2.4s cubic-bezier(.2, .7, .2, 1) .5s backwards;
}

.grille_carnet.js_pret .item_carnet.visible:nth-child(3n+2 of .visible){
	animation-delay: .12s;
}

.grille_carnet.js_pret .item_carnet.visible:nth-child(3n+3 of .visible){
	animation-delay: .24s;
}

/* FAQ : à chaque onglet ouvert, ses questions s'enchaînent */

.wrap_page_faq.js_pret .onglet_faq.active .item_deroule{
	animation: AnimCoupIn .8s cubic-bezier(.2, .7, .2, 1) .15s backwards;
}

.wrap_page_faq.js_pret .onglet_faq.active .item_deroule:nth-child(2){
	animation-delay: .21s;
}

.wrap_page_faq.js_pret .onglet_faq.active .item_deroule:nth-child(3){
	animation-delay: .27s;
}

.wrap_page_faq.js_pret .onglet_faq.active .item_deroule:nth-child(4){
	animation-delay: .33s;
}

.wrap_page_faq.js_pret .onglet_faq.active .item_deroule:nth-child(5){
	animation-delay: .39s;
}

.wrap_page_faq.js_pret .onglet_faq.active .item_deroule:nth-child(n+6){
	animation-delay: .45s;
}

/* ARTICLE : un fil doré suit la lecture en haut de l'écran (calculé par le navigateur, voir DEFILEMENT) */

@keyframes AnimProgression {
	0%{transform:scaleX(0);}
	100%{transform:scaleX(1);}
}

/* PAGE OFFRES DU PLUGIN (noindex) : contenu affiché immédiatement, sans animation d'apparition.
   Les micro-interactions au clic restent actives et le filtrage est géré par le plugin. */

.mmtm-offres-page .mmtm-card{
	transition: scale .4s cubic-bezier(.34, 1.56, .64, 1);
}

.mmtm-offres-page .mmtm-card:active,
.mmtm-offres-page .mmtm-nav-cats a:active{
	scale: .98;
	transition-duration: .12s;
}

/* DEFILEMENT : parallaxe des photos, sortie du hero, fleur et soleil */

@media (prefers-reduced-motion: no-preference){
	@supports (animation-timeline: view()){
		.anim_parallax figure,
		figure.anim_parallax{
			overflow: hidden;
		}

		.anim_parallax img{
			scale: 1.16;
			animation: AnimParallax linear both;
			animation-timeline: view();
		}

		.anim_arrivee > .wp-block-image.anim_parallax img{
			animation: AnimDezoom 2.4s cubic-bezier(.2, .7, .2, 1) .3s backwards, AnimParallax linear both;
			animation-timeline: auto, view();
		}

		.content_top_page{
			animation: AnimSortieTexte linear both;
			animation-timeline: scroll();
			animation-range: 0 70vh;
		}

		.wrap_bottom_home_top{
			animation: AnimSortieTexte linear both;
			animation-timeline: scroll();
			animation-range: 0 30vh;
		}

		.sliderHome .swiper-slide img{
			animation: AnimDezoomArrivee 3s cubic-bezier(.2, .7, .2, 1) backwards, AnimSortieImage linear both;
			animation-timeline: auto, scroll();
			animation-range: normal, 0 100vh;
		}

		.sliderHome .viseur_photo{
			animation: AnimViseurArrivee 1.2s cubic-bezier(.34, 1.56, .64, 1) 1.45s backwards, AnimSortieViseur linear both;
			animation-timeline: auto, scroll();
			animation-range: normal, 0 100vh;
		}

		.fleur_avis{
			animation: AnimFleur linear both;
			animation-timeline: view();
		}

		.col_double_images figure + figure{
			animation: AnimFlotte linear both;
			animation-timeline: view();
		}

		.col_double_images figure:first-child::after{
			animation: AnimSoleil linear both;
			animation-timeline: scroll();
		}

		.hero_sous_page .wrap_small_content::before{
			animation: AnimDecorPose 1.4s cubic-bezier(.34, 1.56, .64, 1) 1.1s backwards, AnimSoleil linear both;
			animation-timeline: auto, scroll();
		}

		body.single-post::after{
			content: "";
			position: fixed;
			top: 0;
			left: 0;
			z-index: 1000;
			width: 100%;
			height: 2px;
			background: #7C5A37;
			transform-origin: left center;
			animation: AnimProgression linear both;
			animation-timeline: scroll(root);
			pointer-events: none;
		}
	}
}

/* BOUTONS *//* BOUTONS *//* BOUTONS *//* BOUTONS */
/* BOUTONS *//* BOUTONS *//* BOUTONS *//* BOUTONS */

/* Un voile balaie le bouton de gauche à droite puis repart par la droite, la flèche fait un tour, le bouton s'enfonce au clic */

@keyframes AnimFlecheRelance {
	0%{transform:translateX(0);opacity:1;}
	40%{transform:translateX(14px);opacity:0;}
	41%{transform:translateX(-14px);opacity:0;}
	100%{transform:translateX(0);opacity:1;}
}

@keyframes AnimFlecheDescend {
	0%{transform:rotate(90deg) translateX(0);opacity:1;}
	40%{transform:rotate(90deg) translateX(10px);opacity:0;}
	41%{transform:rotate(90deg) translateX(-10px);opacity:0;}
	100%{transform:rotate(90deg) translateX(0);opacity:1;}
}

.button-base,
.wp-block-button a{
	position: relative;
	transition: background-color 0s, border-color .4s cubic-bezier(.2, .7, .2, 1), color .4s cubic-bezier(.2, .7, .2, 1), transform .5s cubic-bezier(.34, 1.56, .64, 1);
}

.button-base:not(.btn-sansfond),
.wp-block-button:not(.btn-sansfond, .btn_lire_suite) a{
	isolation: isolate;
	overflow: hidden;
}

.button-base:not(.btn-sansfond)::before,
.wp-block-button:not(.btn-sansfond, .btn_lire_suite) a::before{
	content: "";
	position: absolute;
	top: 0;
	right: 0;
	bottom: 0;
	left: 0;
	z-index: -1;
	background: #7C5A37;
	transform: scaleX(0);
	transform-origin: right center;
	transition: transform .6s cubic-bezier(.77, 0, .175, 1);
	pointer-events: none;
}

/* Le fond de survol de chaque variante attend la fin du voile : seul le voile se voit */
.button-base:hover,
.wp-block-button a:hover,
.button-base:focus-visible,
.wp-block-button a:focus-visible{
	transition: background-color 0s linear .6s, border-color .4s cubic-bezier(.2, .7, .2, 1), color .4s cubic-bezier(.2, .7, .2, 1), transform .5s cubic-bezier(.34, 1.56, .64, 1);
}

.button-base:active,
.wp-block-button a:active{
	transform: scale(.96);
	transition: background-color 0s linear .6s, border-color .4s cubic-bezier(.2, .7, .2, 1), color .4s cubic-bezier(.2, .7, .2, 1), transform .12s cubic-bezier(.2, .7, .2, 1);
}

.button-base:not(.btn-sansfond):focus-visible::before,
.button-base:not(.btn-sansfond):active::before,
.wp-block-button:not(.btn-sansfond, .btn_lire_suite) a:focus-visible::before,
.wp-block-button:not(.btn-sansfond, .btn_lire_suite) a:active::before{
	transform: scaleX(1);
	transform-origin: left center;
}

.button-base:not(.btn-sansfond):focus-visible::after,
.wp-block-button:not(.btn-sansfond) a:focus-visible::after{
	transform: none;
	animation: AnimFlecheRelance .7s cubic-bezier(.2, .7, .2, 1);
}

.wp-block-button.btn_deplier a:focus-visible::after{
	transform: rotate(90deg);
	animation-name: AnimFlecheDescend;
}

@media (hover: hover) and (pointer: fine){
	.button-base:not(.btn-sansfond):hover::before,
	.wp-block-button:not(.btn-sansfond, .btn_lire_suite) a:hover::before{
		transform: scaleX(1);
		transform-origin: left center;
	}

	.button-base:not(.btn-sansfond):hover::after,
	.wp-block-button:not(.btn-sansfond) a:hover::after{
		transform: none;
		animation: AnimFlecheRelance .7s cubic-bezier(.2, .7, .2, 1);
	}

	.wp-block-button.btn_deplier a:hover::after{
		transform: rotate(90deg);
		animation-name: AnimFlecheDescend;
	}
}

.fond_vert .button-base:not(.btn-sansfond)::before,
.fond_vert .wp-block-button a::before{
	background: #422914;
}

.fond_vert .button-base:not(.btn-sansfond):hover,
.fond_vert .wp-block-button:not(.btn-sansfond, .btn_lire_suite) a:hover,
.fond_vert .button-base:not(.btn-sansfond):focus-visible,
.fond_vert .wp-block-button:not(.btn-sansfond, .btn_lire_suite) a:focus-visible{
	color: #F2EDE9;
}

.fond_vert .button-base:not(.btn-sansfond):hover::after,
.fond_vert .wp-block-button:not(.btn-sansfond) a:hover::after,
.fond_vert .button-base:not(.btn-sansfond):focus-visible::after,
.fond_vert .wp-block-button:not(.btn-sansfond) a:focus-visible::after{
	background-image: url(../img/arrow-btn.svg);
}

/* APPARITION AU SCROLL *//* APPARITION AU SCROLL *//* APPARITION AU SCROLL */

/* APPARITION : états cachés uniquement sous .anim_prete, posée par le JS. Sans JS, tout reste visible */

.titre_offres.anim_prete .surtitre,
.titre_offres.anim_prete h2,
.carte_offre.anim_prete .infos_offre,
.carte_offre.anim_prete .titre_detail,
.carte_offre.anim_prete .detail_offre ul,
.offres_bas.anim_prete .titre_compris,
.offres_bas.anim_prete .liste_compris,
.offres_bas.anim_prete .info,
.offres_bas.anim_prete .wp-block-button{
	opacity: 0;
	transform: translateY(14px);
	filter: blur(6px);
	transition: opacity 1.4s cubic-bezier(.2, .7, .2, 1), transform 1.4s cubic-bezier(.2, .7, .2, 1), filter 1.4s cubic-bezier(.2, .7, .2, 1);
}

.titre_offres.anim_prete.anime .surtitre,
.titre_offres.anim_prete.anime h2,
.carte_offre.anim_prete.anime .infos_offre,
.carte_offre.anim_prete.anime .titre_detail,
.carte_offre.anim_prete.anime .detail_offre ul,
.offres_bas.anim_prete.anime .titre_compris,
.offres_bas.anim_prete.anime .liste_compris,
.offres_bas.anim_prete.anime .info,
.offres_bas.anim_prete.anime .wp-block-button{
	opacity: 1;
	transform: translateY(0);
	filter: blur(0);
}

.titre_offres.anim_prete .surtitre_decor::after{
	clip-path: inset(0 100% 0 0);
	transition: clip-path 1.2s cubic-bezier(.77, 0, .175, 1) .5s;
}

.titre_offres.anim_prete.anime .surtitre_decor::after{
	clip-path: inset(0 0 0 0);
}

/* La fin à -40px laisse passer la lueur de l'offre phare */
@keyframes AnimRideauOffre {
	0%{clip-path:inset(100% 0 0 0);}
	100%{clip-path:inset(-40px -40px -40px -40px);}
}

.carte_offre.anim_prete:not(.anime) .visuel_offre{
	clip-path: inset(100% 0 0 0);
}

.carte_offre.anim_prete.anime .visuel_offre{
	animation: AnimRideauOffre 1.3s cubic-bezier(.77, 0, .175, 1) backwards;
}

.cartes_offres > .carte_offre.anim_prete:nth-child(2) .visuel_offre{
	animation-delay: .15s;
}

.cartes_offres > .carte_offre.anim_prete:nth-child(3) .visuel_offre{
	animation-delay: .3s;
}

.carte_offre.anim_prete .visuel_offre .wp-block-image{
	transform: scale(1.15);
	transition: transform 2.2s cubic-bezier(.2, .8, .2, 1);
}

.carte_offre.anim_prete.anime .visuel_offre .wp-block-image{
	transform: scale(1);
}

.carte_offre.anim_prete .detail_offre::after{
	transform: scaleX(0);
	transition: transform 1.4s cubic-bezier(.77, 0, .175, 1);
}

.carte_offre.anim_prete.anime .detail_offre::after{
	transform: scaleX(1);
}

/* ORCHESTRATION */

.titre_offres.anim_prete h2{
	transition-delay: .2s;
}

.carte_offre.anim_prete .infos_offre{
	transition-delay: .8s;
}

.carte_offre.anim_prete .detail_offre::after{
	transition-delay: .9s;
}

.carte_offre.anim_prete .titre_detail{
	transition-delay: .95s;
}

.carte_offre.anim_prete .detail_offre ul{
	transition-delay: 1.05s;
}

.cartes_offres > .carte_offre.anim_prete:nth-child(2) .visuel_offre,
.cartes_offres > .carte_offre.anim_prete:nth-child(2) .visuel_offre .wp-block-image{
	transition-delay: .15s;
}

.cartes_offres > .carte_offre.anim_prete:nth-child(2) .infos_offre{
	transition-delay: .95s;
}

.cartes_offres > .carte_offre.anim_prete:nth-child(2) .detail_offre::after{
	transition-delay: 1.05s;
}

.cartes_offres > .carte_offre.anim_prete:nth-child(2) .titre_detail{
	transition-delay: 1.1s;
}

.cartes_offres > .carte_offre.anim_prete:nth-child(2) .detail_offre ul{
	transition-delay: 1.2s;
}

.cartes_offres > .carte_offre.anim_prete:nth-child(3) .visuel_offre,
.cartes_offres > .carte_offre.anim_prete:nth-child(3) .visuel_offre .wp-block-image{
	transition-delay: .3s;
}

.cartes_offres > .carte_offre.anim_prete:nth-child(3) .infos_offre{
	transition-delay: 1.1s;
}

.cartes_offres > .carte_offre.anim_prete:nth-child(3) .detail_offre::after{
	transition-delay: 1.2s;
}

.cartes_offres > .carte_offre.anim_prete:nth-child(3) .titre_detail{
	transition-delay: 1.25s;
}

.cartes_offres > .carte_offre.anim_prete:nth-child(3) .detail_offre ul{
	transition-delay: 1.35s;
}

.offres_bas.anim_prete .liste_compris{
	transition-delay: .15s;
}

.offres_bas.anim_prete .wp-block-button:first-child{
	transition-delay: .2s;
}

.offres_bas.anim_prete .info{
	transition-delay: .3s;
}

.offres_bas.anim_prete .wp-block-button:last-child{
	transition-delay: .35s;
}

@media (prefers-reduced-motion: reduce){
	.wrap_section_offres *,
	.wrap_section_offres *::before,
	.wrap_section_offres *::after{
		transition: none !important;
		animation: none !important;
	}
}

.visuel_offre::before{
	transform: none !important;
}

/* RESPONSIVE *//* RESPONSIVE *//* RESPONSIVE *//* RESPONSIVE */

@media screen and (max-width: 1550px) {
	.fil_trait{left:130px;}
	.anim_trait .etape_histoire::before{left:125px;}
}
@media screen and (max-width: 1024px) {
	.anim_trait .etape_histoire,.anim_trait .suite_histoire{padding-left:34px;}
	.fil_trait{left:5px;}
	.anim_trait .etape_histoire::before{top:45px;left:0;}
}
@media screen and (max-width: 781px) {
	.sliderHome .viseur_photo{top:14px;right:14px;bottom:14px;left:14px;}
	.cartes_offres > .carte_offre.anim_prete:nth-child(n) .visuel_offre,.cartes_offres > .carte_offre.anim_prete:nth-child(n) .visuel_offre .wp-block-image{transition-delay:0s;}
	.cartes_offres > .carte_offre.anim_prete:nth-child(n) .visuel_offre{animation-delay:0s;}
	.anim_scroll.anim_prete:not(.titre_offres, .carte_offre, .offres_bas, .wp-block-media-text) > :not(.wp-block-group__inner-container, [class*="anim_"]),.anim_scroll.anim_prete:not(.titre_offres, .carte_offre, .offres_bas) > .wp-block-group__inner-container > :not([class*="anim_"]),.wp-block-media-text.anim_scroll.anim_prete > .wp-block-media-text__content > :not([class*="anim_"]){transform:translateY(10px);filter:none;}
	.anim_scroll.anim_prete:not(.titre_offres, .carte_offre, .offres_bas, .wp-block-media-text) > :is(h1, h2, h3, .surtitre):not([class*="anim_"]),.anim_scroll.anim_prete:not(.titre_offres, .carte_offre, .offres_bas) > .wp-block-group__inner-container > :is(h1, h2, h3, .surtitre):not([class*="anim_"]),.wp-block-media-text.anim_scroll.anim_prete > .wp-block-media-text__content > :is(h1, h2, h3, .surtitre):not([class*="anim_"]){filter:none;}
	.anim_cartes.anim_prete > :not(.wp-block-group__inner-container),.anim_cartes.anim_prete > .wp-block-group__inner-container > *{transform:translateY(20px);}
	.anim_cartes.anim_prete > :nth-child(n),.anim_cartes.anim_prete > .wp-block-group__inner-container > :nth-child(n){transition-delay:0s;}
	.wp-block-media-text.anim_rideau.anim_prete > .wp-block-media-text__media img,.wp-block-image.anim_rideau.anim_prete img,.wp-block-gallery.anim_rideau.anim_prete img,.anim_rideau.anim_prete:not(.wp-block-image, .wp-block-gallery, .wp-block-media-text) img{transform:scale(1.08);}
	.wp-block-columns.anim_rideau.anim_prete > .wp-block-column > :not(figure){transform:translateY(10px);}
	.etape_histoire.anim_prete{transform:translateY(10px);}
	.wrap_col_item_experiences .anim_cartes.anim_prete .wp-block-column:nth-child(2) figure,.wrap_col_item_experiences .anim_cartes.anim_prete.anime .wp-block-column:nth-child(2) figure{transform:none;}
	.wrap_col_item_experiences .anim_cartes.anim_prete .wp-block-column:nth-child(2) figure::after{opacity:.5;transform:none;}
	.wrap_col_item_experiences .anim_cartes.anim_prete .wp-block-column:nth-child(2) .content_col_experiences{opacity:1;}
	.wrap_col_experiences figure::after{transform:none;}
	.anim_lecture .mot_lecture{opacity:.3;}
	.anim_liste.anim_prete > :not(.wp-block-group__inner-container),.anim_liste.anim_prete > .wp-block-group__inner-container > *{transform:translateY(10px);}
}

/* MOUVEMENT REDUIT : plus de déplacement, de zoom ni de flou. Les apparitions deviennent un fondu, l'ouverture disparaît */

@media (prefers-reduced-motion: reduce){
	.anim_scroll.anim_prete:not(.titre_offres, .carte_offre, .offres_bas, .wp-block-media-text) > :not(.wp-block-group__inner-container),
	.anim_scroll.anim_prete:not(.titre_offres, .carte_offre, .offres_bas) > .wp-block-group__inner-container > *,
	.wp-block-media-text.anim_scroll.anim_prete > .wp-block-media-text__content > *,
	.anim_cartes.anim_prete > :not(.wp-block-group__inner-container),
	.anim_cartes.anim_prete > .wp-block-group__inner-container > *,
	.wp-block-columns.anim_rideau.anim_prete > .wp-block-column > :not(figure),
	.wrap_slider_avis.anim_prete > .small_titre,
	.etape_histoire.anim_prete,
	.wp-block-media-text.anim_rideau.anim_prete > .wp-block-media-text__media img{
		transform: none !important;
		filter: none !important;
		transition: opacity .4s ease !important;
	}

	.wp-block-media-text.anim_rideau.anim_prete > .wp-block-media-text__media,
	.wp-block-image.anim_rideau.anim_prete img,
	.wp-block-gallery.anim_rideau.anim_prete img,
	.anim_rideau.anim_prete:not(.wp-block-image, .wp-block-gallery, .wp-block-media-text) img{
		opacity: 0;
		clip-path: none !important;
		transform: none !important;
		transition: opacity .4s ease !important;
	}

	.wp-block-media-text.anim_rideau.anim_prete.anime > .wp-block-media-text__media,
	.wp-block-image.anim_rideau.anim_prete.anime img,
	.wp-block-gallery.anim_rideau.anim_prete.anime img,
	.anim_rideau.anim_prete.anime:not(.wp-block-image, .wp-block-gallery, .wp-block-media-text) img{
		opacity: 1;
	}

	.anim_scroll.anim_prete .surtitre_decor::after{
		clip-path: none !important;
	}

	.bandeau_polaroids.anim_prete .polaroid{
		translate: none !important;
		rotate: none !important;
		transition: opacity .4s ease !important;
	}

	.bandeau_polaroids.anim_prete .polaroid::before{
		display: none;
	}

	.anim_arrivee > *{
		animation-name: AnimFondu !important;
		animation-duration: .6s !important;
		animation-delay: 0s !important;
	}

	.sliderHome::before,
	.sliderHome::after{
		display: none;
	}

	.sliderHome .swiper-slide img,
	.sliderHome .viseur_photo,
	.sliderHome .swiper-button-prev,
	.sliderHome .swiper-button-next,
	.slider_avis *,
	.piste_defile{
		animation: none !important;
	}

	.col_double_images.anim_rideau.anim_prete figure:first-child::before,
	.col_double_images.anim_rideau.anim_prete figure:first-child::after{
		translate: none !important;
		scale: none !important;
	}

	.button-base:not(.btn-sansfond)::before,
	.wp-block-button:not(.btn-sansfond, .btn_lire_suite) a::before{
		opacity: 0;
		transform: none !important;
		transition: opacity .3s ease;
	}

	.button-base:not(.btn-sansfond):is(:hover, :focus-visible, :active)::before,
	.wp-block-button:not(.btn-sansfond, .btn_lire_suite) a:is(:hover, :focus-visible, :active)::before{
		opacity: 1;
	}

	.button-base::after,
	.wp-block-button a::after{
		animation: none !important;
	}

	.item_image_lieu figure img,
	.item_image_lieu .wp-block-group{
		transform: none !important;
	}

	.wrap_col_experiences figure{
		scale: none !important;
	}

	.nom_coup{
		transition: none;
	}

	.anim_arrivee > .wp-block-image::before,
	.anim_arrivee > .wp-block-image img,
	.anim_arrivee > .photo_portrait::after{
		animation: none !important;
	}

	.anim_polaroids.anim_prete .polaroid_image{
		translate: none !important;
		rotate: none !important;
		transition: opacity .4s ease !important;
	}

	.anim_polaroids.anim_prete .polaroid_image::before{
		display: none;
	}

	.anim_polaroids.anim_prete .polaroid_image img{
		filter: none !important;
	}

	.fil_trait span{
		transform: none !important;
	}

	.anim_trait .date_etape{
		opacity: 1 !important;
	}

	.anim_trait .etape_histoire::before{
		background: #7C5A37;
		transform: none;
	}

	.wrap_avis_cartes.anim_prete:not(.anime) .swiper-slide{
		translate: none;
	}

	.anim_arrivee > .wp-block-columns .wp-block-image::before,
	.anim_arrivee > .wp-block-columns .wp-block-image img,
	.hero_sous_page > .wrap_slider_horizontal_gallery,
	.hero_sous_page > .wrap_slider_horizontal_gallery img,
	.hero_sous_page .wrap_small_content::before,
	.hero_sous_page .wrap_small_content::after{
		animation: none !important;
	}

	.anim_arrivee > .wp-block-columns > .wp-block-column > :not(.wp-block-image){
		animation-name: AnimFondu !important;
		animation-duration: .6s !important;
		animation-delay: 0s !important;
	}

	.anim_liste.anim_prete > :not(.wp-block-group__inner-container),
	.anim_liste.anim_prete > .wp-block-group__inner-container > *{
		transform: none !important;
		transition: opacity .4s ease !important;
	}

	.wrap_section_faq:has(.anim_prete:not(.anime))::after{
		scale: none;
	}

	.wrap_slider_carnet .slider_carnet,
	.wrap_slider_carnet .slider_carnet img,
	.wrap_page_faq.js_pret .onglet_faq.active .item_deroule,
	.bandeau_google .note_google::before,
	.etoiles_avis::before,
	.wpcf7 .wpcf7-form-control.wpcf7-not-valid{
		animation: none !important;
	}

	.wpcf7 .wpcf7-submit{
		transition: background-position 0s, transform 0s;
	}
}

/* ETAPE 3 — TEST CHROME DESKTOP : uniquement les deux blocs photo signalés.
   Remplace le rideau clip-path par un fondu + dézoom léger.
   Aucun changement aux autres sections, aux survols après apparition, ni au JS. */
@media screen and (min-width: 782px) and (prefers-reduced-motion: no-preference) {
	.wrap_col_image_lieu.anim_rideau.anim_prete .item_image_lieu img,
	.col_double_images.anim_rideau.anim_prete figure img {
		clip-path: none;
		opacity: 0;
		transform: scale(1.04);
		transition-property: opacity, transform;
		transition-duration: .75s, 1.15s;
		transition-timing-function: ease-out, cubic-bezier(.2, .7, .2, 1);
	}

	.wrap_col_image_lieu.anim_rideau.anim_prete.anime .item_image_lieu img,
	.col_double_images.anim_rideau.anim_prete.anime figure img {
		clip-path: none;
		opacity: 1;
		transform: scale(1);
	}
}

/* GALERIES GUTENBERG : affichage direct, sans animation d'apparition.
   Ne modifie ni la mise en page, ni le filtrage du portfolio, ni Swiper/Fancybox.
   Les transitions de survol normales sont conservees. */
.wp-block-gallery,
.wp-block-gallery .wp-block-image,
.wp-block-gallery img{
	animation: none !important;
}

/* Un effet parallax applique a une section parente ne doit pas animer les photos des galeries. */
.wp-block-gallery img{
	scale: none !important;
}

/* Secours si une galerie se retrouve au sein d'un parent en cours d'apparition. */
.wp-block-gallery.anim_prete,
.anim_scroll.anim_prete > .wp-block-gallery,
.anim_scroll.anim_prete > .wp-block-group__inner-container > .wp-block-gallery,
.anim_cartes.anim_prete > .wp-block-gallery,
.anim_cartes.anim_prete > .wp-block-group__inner-container > .wp-block-gallery,
.anim_liste.anim_prete > .wp-block-gallery,
.anim_liste.anim_prete > .wp-block-group__inner-container > .wp-block-gallery{
	opacity: 1 !important;
	transform: none !important;
	filter: none !important;
	clip-path: none !important;
	transition: none !important;
}

/* Neutralise les etats masques des rideaux si presents sur une galerie ou son parent. */
.wp-block-gallery.anim_prete .wp-block-image,
.wp-block-gallery.anim_prete img,
.anim_rideau.anim_prete .wp-block-gallery img{
	opacity: 1 !important;
	transform: none !important;
	filter: none !important;
	clip-path: none !important;
	transition: none !important;
}

/* Evite le voile d'arrivee des colonnes sur une image de galerie. */
.anim_arrivee .wp-block-gallery .wp-block-image::before{
	animation: none !important;
	transform: scaleY(0) !important;
}
