main .container p { 
    font-size: 1.6rem;
    line-height: 1.55;
    letter-spacing: .02em;
}

.footer_top .text-footer {
    font-size: 1.5rem;
	letter-spacing: 0.04rem;
}

.footer_menu--services li a { 
    font-size: 1.4rem;
    letter-spacing:0.06rem;
}

footer .footer_brands .footer_brands--card p {
    line-height: 2.2rem;
    letter-spacing: 0.08rem;
}

footer .footer_top .footer--newsletter>p {
    font-size: 1.5rem;
    line-height: 125%;
}

footer .footer_bottom .footer_menu--legal a {
    font-size: 1.4rem;
    position: relative;
}

.wp_newsletter .title.title-h3 {
  font-size: 3.1rem;
 
}

.wp_rooms {
    & .wp_rooms--list {
        & .wp_room {
            & .wp_room--slider {
                .slider--dots {
                    top: 0rem;
                    gap: 0rem;
                }
            }
        }
    }
}

.wp_media_text_columns {
    & .wp_media_text_column--slider {
        .slider--dots {
            top: 0rem;
            gap: 0rem;
        }
    }
}

.wp_media_text_columns {
    & .wp_media_text_column--slider {
        & .slider--dots {
            & .dot {
               opacity: 0.1;
            }
        }
    }
}

.wp_panel {
    &.open {
        .wp_panel--content {
            transition: transform 0.4s ease 0.4s;
            transform: translateX(0);
        }
    }
}

.wp_rooms {
    & .wp_rooms--list {
        & .wp_room {
            & .wp_room--slider {
                & .slider--dots {
                    .dot {
                        opacity: 0.1;
                    }
                }
            }
        }
    }
}

.wp_slider_extend, .wp_slider_extend2 {
    & .wp_slider_extend--slider {
        &.has-pad {
            padding: 0rem 4rem 0rem 4rem;
        }
    }
}


.wp_grid_panels_exp {
    & .wp_grid_panels_exp--card {
        .card--content {
			padding: 2rem 2rem 3rem 0;
        }
    }
}

.wp_grid_panels_exp {
    padding: 0 0 var(--margin-section) 0;
    background: none;
}

.wp_grid_panels_exp .wp_grid_panels_exp--card .card--video {
    position: relative;
    overflow: hidden;
}

.wp_grid_panels_exp .wp_grid_panels_exp--card .card--video iframe {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    border: 0;
}

.wp_bg_text_wrapper .wp_bg_text--content p { 
    line-height: var(--font-lh-normal);
}


.wp_panel.open .maxw-70 {
    max-width: 75% !important;
}

.wp_bg_text_wrapper .wp_bg_text .wp_bg_text--content p a { color:#fff;}

.wp_accordions .wp_accordion--desc .wp_wysiwyg h4 {     color: var(--body-color);    font-family: var(--font-base); font-size: inherit; font-weight:500;}

.wp_accordions .container { max-width:80%;}

.wp_bg_text_wrapper .wp_bg_text--content p {     line-height: var(--font-lh-normal);}

/* centrage uniquement quand toutes les slides tiennent dans la piste :
   Splide gere lui-meme la classe is-overflow (posee/retiree au resize et au refresh).
   En debordement, la liste DOIT rester en flex-start, sinon les translateX
   de Splide sont faux -> premiere slide coupee a gauche. */
.wp_slider_extend--slider:not(.is-overflow) .splide__list {
  justify-content: center;
}

.wp_slider_rooms .splide__slide h3 { padding-top: 2.5rem; font-size: var(--font-size-base);
                font-weight: 500; text-transform:uppercase;     font-family: var(--font-base); letter-spacing: 0.15rem;     padding-bottom: 0.5rem; }

.wp_slider_rooms .splide__slide ul li {
    font-size: 1.6rem;
    line-height: 1.55;
	letter-spacing: .02em; }

.wp_slider_rooms .splide__slide ul {
     gap: 0rem 0;
    }

@media screen and (min-width: 1300px) {
.wp_event {
    .wp_event--content {
       
        max-width: 580px;
    }
}
	
}

.gform_wrapper.gravity-theme .gfield textarea {
    height: inherit !important;
	padding: 1.5rem !important;
}

/* (regle :has(.nav--next.is-disabled) supprimee : la fleche next passe aussi
   en is-disabled quand on ATTEINT la derniere slide d'un slider qui deborde,
   ce qui recentrait la liste en plein scroll -> saut. Le centrage est desormais
   gere par :not(.is-overflow) plus haut.) */

.wp_wysiwyg {
    ul, ol {
        gap: 0.2rem 0;
    }
}

.wp_accordions .title {
    &.title-h3 {
            font-size: var(--font-size-footer);
    font-weight: 400;
    text-transform: uppercase;
    font-family: var(--font-base);
    letter-spacing: 0.10rem;
    }
} 


.wp_accordions {
    & .wp_accordion {
        .wp_accordion--head {

            border-top: 1px solid rgba(0, 0, 0, 0.3);
           
        }
    }
}

.wp_accordions {
    & .wp_accordion {
        &:last-child {
            border-bottom: 1px solid rgba(0, 0, 0, 0.3);
        }
    }
}

.wp_accordions {
    & .wp_accordion {
        .wp_accordion--head {
           
            gap: 0 4rem;
            padding: 2rem 0;
           
        }
    }
}

.wp_panel_menu {
    & .wp_panel_menu--content {
        & .content--left {
            & .left--bottom {
                .bottom--home {
                   
                    padding: 1.4rem 0;
                   
                }
            }
        }
    }
}

@media screen and (min-width: 1400px) {
	
	.maxw-70 {
    max-width: 63%;

}

.wp_accordions .container {
    max-width: 60%;
}
	
	.wp_slider_links {
    & .wp_link_card {
        h3 {
						    font-size: 2rem;
            padding: 1rem;
          
           
        }
    }
}
	

	
}

.wp_newsletter_bg {
    & .wp_newsletter_bg--wrap {
        & .wp_newsletter--form {
            & .form_flex {
                input {
                    height: 44px;
                }
            }
        }
    }
}

.wp_newsletter {
    & .wp_newsletter--form {
        & .form_flex {
            input {
       height: 44px;
            }
        }
    }
}


.wp_slider_links .wp_link_card h3 {
	
	line-height: var(--font-lh-medium);
}

.wp_bg_text_wrapper .wp_wysiwyg {
    ul, ol {
        gap: 0rem 0;
    }
}

.wp_slider_links {
    .slider--nav {
  width: 40px;
        height: 40px;
        background: var(--black);
     
    }
}

.wp_grid_panels_exp .card--content .text-big {
    line-height: var(--font-lh-h3);
}

.wp_anchors_menu {

    margin-top: 3rem;

}

.wp_media_text_border {
    .wp_media_text_border--content {
    
        border-top: 1px solid rgba(0, 0, 0, 0.4);
        border-bottom: 1px solid rgba(0, 0, 0, 0.4);
       
    }
}

.wp_map {
    .wp_map--content {
        padding: 4rem 6rem;
        border-top: 1px solid rgba(0, 0, 0, 0.4);
        border-bottom: 1px solid rgba(0, 0, 0, 0.4);
    }
}
.wp_grid_panels_exp.has_background#working-together, .wp_grid_panels_exp.has_background#environment {
	padding-bottom:0
	
        }


.wp_head_title strong, .wp_map strong { font-weight:500;}

.wp_media_text_border .wp_more { text-align:center; }

.wp_media_text_border .wp_more button { display:inline-flex; }

main, .wp_panel--content .content--load {
    & section {
        &.wp_media_text {
            +.wp_media_text:not(.has_title) {
                margin-top: calc(var(--margin-section) / 1.2);
            }
        }
    }
}

.wp_bg_text_section {
    & .wp_bg_text_section_wrap {
        & .wp_bg_text_section--bg {
            &::after {
                
                background: rgba(0, 0, 0, 0.6);
            }
        }
    }
}

.tribe-common--breakpoint-medium.tribe-events .tribe-events-l-container {
    
    padding-bottom: var(--tec-spacer-4)!important;
    
}

br.mobile { display:block}

@media(max-width: 767px) {
.wp_accordions .container {
    max-width: 90%;
}

.wp_panel.open .maxw-70 {
    max-width: 90% !important;
}

.maxw-70 {
        max-width: 90%;
  
}

.wp_media_text_border .wp_media_text_border--content {
            padding: 4rem 2rem 0rem 2rem;
			border:none;
            
        
}

br.mobile { display:none}

}


.title {
    &.title-h5 {
        font-size: var(--font-size-h5);
        line-height: var(--font-lh-h3);
        font-family: var(--font-base);
        text-transform: uppercase;
        letter-spacing: 0.096rem;
		padding-top: 2.2rem;
        font-weight: 500;
    }
}

.title {
    &.title-h5:first-child {

		padding-top: 0;
    }
}

.sugar-calendar-event-list-block .sugar-calendar-block__popover__calendar_selector__container .sc-filters-footer button.sc-filters-apply {
    background-color: #13294B !important;
    color: #fff !important;
}

.sugar-calendar-event-list-block .sc-filters-footer button.sc-filters-apply:hover {
    background-color: #111 !important;
}

.sugar-calendar-event-list-block {
    --accent-color: #13294B;
}

.sugar-calendar-event-list-block .sugar-calendar-block__popover__calendar_selector__container__tags {
    display: none !important;
}

.event-nav{
    display:flex;
    align-items:center;
    gap:1rem;
    margin-top:5rem;
    padding-top:3rem;
    border-top:1px solid #e5e5e5;
}

/* 3 colonnes égales : prev | tous | next */
.event-nav .event-nav--col{
    flex:1 1 0;
    display:flex;
    align-items:center;
}
.event-nav .event-nav--col-prev{ justify-content:flex-start; }
.event-nav .event-nav--col-all{ justify-content:center; }
.event-nav .event-nav--col-next{ justify-content:flex-end; }

/* titre masqué, label affiché */
.event-nav .event-nav--title{ display:none; }

/* liens prev/next : chevron + label alignés */
.event-nav .event-nav--prev,
.event-nav .event-nav--next{
    display:inline-flex;
    align-items:center;
    gap:.6rem;
    text-decoration:none;
    color:inherit;
    line-height:1;
}
.event-nav .event-nav--label{
    display:inline-flex;
    align-items:center;
    font-weight:500;
    font-size:var(--font-size-small);
    line-height:var(--font-lh-small);
    text-transform:uppercase;
}

/* chevrons Font Awesome */
.event-nav .event-nav--prev::before{
    content:"\f104";
    font-family:"Font Awesome 6 Pro";
    font-weight:300;
    font-size:2rem;
    opacity:.7;
    flex-shrink:0;
}
.event-nav .event-nav--next::after{
    content:"\f105";
    font-family:"Font Awesome 6 Pro";
    font-weight:300;
    font-size:2rem;
    opacity:.7;
    flex-shrink:0;
}

/* lien "Tous les événements" : style identique à prev/next */
.event-nav .event-nav--all{
    display:inline-flex;
    align-items:center;
    gap:.6rem;
    text-decoration:none;
    color:inherit;
    line-height:1;
}

/* picto grille avant le texte */
.event-nav .event-nav--all::before{
    content:"\f03a";                       /* fa-grid / table-cells */
    font-family:"Font Awesome 6 Pro";
    font-weight:500;                       /* light */
    font-size:2rem;
    opacity:.9;
    flex-shrink:0;
}

.event-nav .event-nav--prev,
.event-nav .event-nav--next,
.event-nav .event-nav--all{
    display:inline-flex;
    align-items:center;
    gap:1rem;            /* espace picto ↔ texte (était .6rem) */
    text-decoration:none;
    color:inherit;
    line-height:1;
}

.sc_event-template-default .wp_head_title .wp_wysiwyg h2 {     font-size: 1.6rem;
    line-height: 1.55;
    letter-spacing: .02em; font-family: var(--font-base); font-weight: inherit;
    font-style: inherit;}

.event-calendar-feeds--label{
    display:block;
    text-transform:uppercase;
    font-size:var(--font-size-small);
    opacity:.6;
    margin-bottom:.5rem;
}

.sugar-calendar-event-list-block .sugar-calendar-block__controls__right__view,
.sugar-calendar-event-list-block .sugar-calendar-block__popover__display_selector{
    display:none !important;
}

.event-calendar-feeds--list{
    display:flex;
    justify-content:center;
    gap:1.5rem;
    list-style:none;
    padding:0;
    margin:0;
}

/* liens noirs, soulignement animé au survol */
.event-calendar-feeds--list a{
    position:relative;
    color:#000;
    text-decoration:none;
    padding-bottom:2px;
}

.event-calendar-feeds--list a::after{
    content:"";
    position:absolute;
    left:0;
    bottom:0;
    width:0;
    height:1px;
    background-color:#000;
    transition:width .3s ease;
}

.event-calendar-feeds--list a:hover::after{
    width:100%;
}

/* soulignement animé au survol des liens de navigation bas */
.event-nav .event-nav--label{
    position:relative;
    padding-bottom:2px;
}

.event-nav .event-nav--label::after{
    content:"";
    position:absolute;
    left:0;
    bottom:0;
    width:0;
    height:1px;
    background-color:#000;
    transition:width .3s ease;
}

/* au survol du lien, le trait se déploie sous le texte */
.event-nav .event-nav--prev:hover .event-nav--label::after,
.event-nav .event-nav--next:hover .event-nav--label::after,
.event-nav .event-nav--all:hover .event-nav--label::after{
    width:100%;
}

.event-venue-link{
    position:relative;
    color:#000;
    text-decoration:none;
    display:inline-block;

}
.event-venue-link::after{
    content:"";
    position:absolute;
    left:0;
    bottom:0;
    width:0;
    height:1px;
    background-color:#000;
    transition:width .3s ease;
}
.event-venue-link:hover::after{ width:100%; }

.event-venue-link{ color:#000 !important; text-decoration:none !important; }

/* par défaut (desktop) : label complet visible, court masqué */
.event-nav .event-nav--label-short{ display:none; }

.wp_breadcrumb {
    & a {
        &::after {
   
            bottom: 0em;
            
        }
    }
}

@media (max-width: 767px){
    .event-nav .event-nav--label-full{ display:none; }
    .event-nav .event-nav--label-short{ display:inline-flex; }
  
	
.event-nav .event-nav--prev::after,
.event-nav .event-nav--next::after,
.event-nav .event-nav--all::after{

        font-size:1.3rem;
}
	
	.event-nav .event-nav--all::before {

    font-size: 1.3rem;
  
}
	
	.event-nav .event-nav--prev::before {
font-size: 1.3rem;

}
	

    .wp_breadcrumb .container{
        text-align:center;
        padding-left:1rem;
        padding-right:1rem;
    }

    /* on masque tous les maillons */
    .wp_breadcrumb span > span{
        display:none;
    }

    /* on n'affiche que le parent direct */
    .wp_breadcrumb span > span:nth-last-child(2){
        position:relative;
        display:inline-flex;
        align-items:center;
        gap:6px;
        white-space:nowrap;
        font-size:0;
    }

    /* TAILLE plus grande */
    .wp_breadcrumb span > span:nth-last-child(2) a,
    .wp_breadcrumb span > span:nth-last-child(2)::before{
        font-size: 1.3rem;
    line-height: 1.55;
    letter-spacing: .02em;
    }

    .wp_breadcrumb span > span:nth-last-child(2) a{
        color:#000;
        text-decoration:none;
    }

    /* chevron gauche, plus gros */
    .wp_breadcrumb span > span:nth-last-child(2)::before{
        content:"\f104";
        font-family:"Font Awesome 6 Pro";
        font-weight:300;
        order:-1;
          font-size: 1.3rem;
    line-height: 1.55;
    letter-spacing: .02em;      /* chevron un peu plus grand */
        pointer-events:none;
        position:relative;
        z-index:2;
    }

    /* on SUPPRIME tout chevron/séparateur à droite */
    .wp_breadcrumb span > span:nth-last-child(2)::after{
        content:none !important;
    }

    /* zone cliquable sur tout le maillon */
    .wp_breadcrumb span > span:nth-last-child(2) a::before{
        content:"";
        position:absolute;
        inset:0;
        z-index:1;
    }

}

@media (max-width: 767px){

    /* ===== Liste d'événements : empilement mobile ===== */

    /* l'événement = repère de positionnement, en colonne */
    .sugar-calendar-event-list-block__listview__event{
        position:relative !important;
        flex-direction:column !important;
    }

    /* le corps en colonne : image puis contenu */
    .sugar-calendar-event-list-block__listview__event__body{
        flex-direction:column !important;
        width:100%;
    }

    /* image pleine largeur, affichée en premier */
    .sugar-calendar-event-list-block__listview__event__body__image{
        order:-1;
        width:100% !important;
        margin-bottom:1rem;
    }
    .sugar-calendar-event-list-block__listview__event__body__image__container{
        width:100%;
        min-height:220px;
        height:auto;
        aspect-ratio: 16 / 9;
        display:block;
        object-fit:cover;
        object-position:center;
        background-color:transparent;
        background-size:cover;
        background-position:center;
    }

    /* contenu pleine largeur sous l'image */
    .sugar-calendar-event-list-block__listview__event__body__content{
        width:100% !important;
    }

    /* ===== Date incrustée dans le coin haut-gauche de la photo ===== */
    .sugar-calendar-event-list-block__listview__event__day{
        position:absolute !important;
        top:12px;
        left:12px;
        z-index:5;
        width:auto !important;
        margin:0 !important;
        padding:0 !important;
        background:#fff !important;
    }
    .sugar-calendar-event-list-block__listview__event__day__block{
        display:inline-flex !important;
        align-items:baseline;
        gap:.3rem;
        background:#fff !important;
        padding:.5rem .8rem !important;
        margin:0 !important;
    }

    /* texte de la date foncé pour rester lisible sur le fond blanc */
    .sugar-calendar-event-list-block__listview__event__day__block-name time,
    .sugar-calendar-event-list-block__listview__event__day__block-num time{
        color:#000 !important;
    }
	
	.sugar-calendar-event-list-block .sugar-calendar-event-list-block__base-container .sugar-calendar-event-list-block__listview__event__day__block-name {
        font-size: var(--font-size-footer)!important;
        text-transform: uppercase!important;
        line-height: 1.2!important;
        font-weight: 500!important;
    }
	
	.sugar-calendar-event-list-block .sugar-calendar-event-list-block__base-container .sugar-calendar-event-list-block__event__title {
    margin: 0 0 8px!important;
}

.sugar-calendar-event-list-block .sugar-calendar-event-list-block__base-container .sugar-calendar-event-list-block__listview__event__body {
        
        gap: 0px!important;
    }
	
	.sugar-calendar-event-list-block .sugar-calendar-event-list-block__base-container .sugar-calendar-event-list-block__listview__event__body__content h4 {
    font-size: 22px!important;
}
	
	/* trait gris de séparation entre les événements */
.sugar-calendar-event-list-block__listview__event{
    padding-bottom:3.5rem;
    margin-bottom:2rem;
    border-bottom:1px solid #e5e5e5;
}

/* pas de trait après le dernier événement */
.sugar-calendar-event-list-block__listview__event:last-child{
    border-bottom:none;
    margin-bottom:0;
}
	.sugar-calendar-event-list-block .sugar-calendar-event-list-block__base-container .sugar-calendar-event-list-block__listview {
    border-top: none;

}
	
	.sugar-calendar-event-list-block .sugar-calendar-event-list-block__base-container .sugar-calendar-event-list-block__listview {
        gap: 15px;
        padding: 20px 0;
    }
	
	main, .wp_panel--content .content--load {
    & section.wp_events_calendar {
        &:last-child {
            margin-bottom: 0;
        }
    }
}
	
	.wp_head_title {
        & .wp_head_title--infos {
            ul {
            
                display: block;
                text-align: center;
            }
        }
    
}
	
	.wp_head_title {
        & .wp_head_title--infos {
            & ul {
                li {
                   
                    display: block;
                }
            }
        
    }
}
	
	.wp_head_title {
        & .wp_head_title--infos {
            & ul {
                & li {
                    &::after {
                        display:none;
                    }
                }
            }
        }
    
}
	
	.wp_head_title--infos ul li{
    margin-bottom:1.5rem;
}
.wp_head_title--infos ul li:last-child{
    margin-bottom:0;
}
	

	
}

.wp_panel_book {
    & .wp_panel_book--content {
        .wp_panel_book--close {
            display: flex;
            width: 40px;
            height: 40px;
            border: 1px solid var(--body-color);
            border-radius: 100%;
            color: var(--body-color);
            position: absolute;
            top: 2rem;
            right: 2rem;
            z-index: 2;
            font-size: 2.4rem;
        }
    }
}

.wp_panel_book--close {
			display: flex;
			width: 40px;
			height: 40px;
			border: 1px solid var(--body-color);
			border-radius: 100%;
			color: var(--body-color);
			position: absolute;
			top: 2rem;
			right: 2rem;
			z-index: 2;
			font-size: 2.4rem;

			i {
				margin: auto;
			}

			&:hover {
				background: black;
				color: var(--white)!important;
			}
}

.wp_panel_book--close i:hover { color: var(--white);}

.wp_panel_book {
    & .wp_booking_form {
        label {
            padding-bottom: 0.8rem;
        }
    }
}

.wp_panel_book {
    & .wp_booking_form {
        .form_group {
            padding-bottom: 1.5rem;
            padding-top: 1.5rem;
        }
    }
}

.wp_panel_book {
    & .wp_booking_form {
        .wp_booking_form--cgu {
            border:none;
            margin-top: 0rem;
        }
    }
}

/* ===== Daterangepicker — même esprit que les selects ===== */
.daterangepicker{
  font-family: var(--font-base);
  background:#fff;
  border:1px solid #eeeeee;
  border-radius:0;
  box-shadow:0 16px 44px -12px rgba(0,0,0,.2);
  padding:8px;
}
.daterangepicker::before,
.daterangepicker::after{ display:none; }   /* enlève la petite pointe */

/* titre du mois */
.daterangepicker .calendar-table th.month{
   font-family: var(--font-base);
  font-size:1.2rem; letter-spacing:.14em; text-transform:uppercase;
  font-weight:500; color:#111; padding-bottom:8px;
}

/* en-têtes des jours (Di Lu Ma…) */
.daterangepicker th.available,
.daterangepicker thead tr:last-child th{
   font-family: var(--font-base);
  font-size:10px; letter-spacing:.05em; text-transform:uppercase;
  font-weight:400; color:#9a958c;
}

/* cases */
.daterangepicker td{
  font-size:14px; color:#1c2434;
  width:34px; height:34px; line-height:34px;
  border-radius:0;
  transition:background .15s ease, color .15s ease;
}
.daterangepicker td.available:hover,
.daterangepicker th.available:hover{ background:#eeeeee; color:#111111; }

.daterangepicker td.off{ color:#dadada; background:#fff; }
.daterangepicker td.disabled{ color:#d9d5cc; text-decoration:none; }
.daterangepicker td.today{ font-weight:600; }

/* jours sélectionnés / plage → laiton */
.daterangepicker td.active,
.daterangepicker td.active:hover,
.daterangepicker td.start-date,
.daterangepicker td.end-date{ background:#111111 !important; color:#fff !important; }
.daterangepicker td.in-range{ background:#eeeeee !important; color:#111 !important; }

/* flèches de navigation */
.daterangepicker .prev span,
.daterangepicker .next span{ border-color:#dadada; }
.daterangepicker th.prev:hover,
.daterangepicker th.next:hover{ background:#eeeeee; }

/* pied : date sélectionnée + boutons */
.daterangepicker .drp-buttons{
  border-top: 1px solid #ece7dd;
    padding: 0;
    margin-left: 15px;
    margin-right: 15px;
    padding-top: 20px;
    padding-bottom: 10px;
}
.daterangepicker .drp-selected{
        font-family: var(--font-base);
    font-size: 1.5rem;
    line-height: var(--font-lh-base);
    font-weight: 400;
    letter-spacing: 0.032rem;
	color:#111;
}
.daterangepicker .applyBtn{
  background:#111; border:1px solid #111; color:#fff;
  border-radius:0; padding:9px 22px;
  font-family:system-ui,sans-serif; font-size:11px; letter-spacing:.14em; text-transform:uppercase;
}
.daterangepicker .applyBtn:hover{ background:#ffffff; border:1px solid #111; color:#111;  }
.daterangepicker .applyBtn:disabled{ opacity:.4; }
.daterangepicker .cancelBtn{
  background:transparent; border:1px solid #dadada; color:#1c2434;
  border-radius:0; padding:9px 22px;
font-family:system-ui,sans-serif; font-size:11px; letter-spacing:.14em; text-transform:uppercase;}
.daterangepicker .cancelBtn:hover{ background:#fff; border:1px solid #111; }

.daterangepicker td.active.end-date.in-range { color:#fff!important; background-color:#111!important;}

.header_hotels {
    opacity: 1;
    visibility: visible;
    transition: opacity .6s ease, visibility .6s ease, transform .6s ease;
}

/* état masqué : quand la classe active (et open) est absente */
.header_hotels:not(.active):not(.open) {
    opacity: 0;
    visibility: hidden;
    transform: translateY(-10px); /* léger glissement vers le haut, optionnel */
    pointer-events: none;
}

.no-footer main section:last-child,
.no-footer .wp_panel--content .content--load section:last-child {
	margin-bottom: 0 !important;
}

/* no-JS : afficher les sliders Splide non initialisés */
html:not(.js) .splide {
	visibility: visible;
}


html:not(.js) .splide__list {
	display: block;
}

html:not(.js) .splide__slide {
	margin-bottom: 2rem;
}

html:not(.js) .slider--nav {
	display: none; /* les flèches ne servent à rien sans JS */
}

@media (max-width: 767px) {

	/* ---- panneau commun : blanc, filet fin, comme le datepicker ---- */
	.sel .sel__list {
		display: none;
		position: absolute;
		top: calc(100% + 0.5rem);
		left: 0;
		right: 0;
		z-index: 20;
		padding: 0;
		background: var(--white);
		border: 1px solid var(--body-color);
		box-shadow: 0 12px 40px rgba(0, 0, 0, 0.08);
	}

	.sel.is-open .sel__list {
		display: block;
	}

	/* ---- destinations : liste aérée, séparée par des filets ---- */
	.sel .sel__opt {
		display: flex;
		align-items: center;
		min-height: 52px;
		padding: 0 1.6rem;
		border-top: 1px solid rgba(0, 0, 0, 0.08);
		font-size: 1.6rem;
		cursor: pointer;
	}

	.sel .sel__opt:first-child {
		border-top: 0;
	}

	.sel .sel__opt.is-sel,
	.sel .sel__opt:active {
		background: var(--black_alt, #000);
		color: var(--white);
	}

	/* ---- chiffres (rooms / adults / children) : une seule rangée ---- */
	#book_rooms + .sel .sel__list,
	#book_adults + .sel .sel__list,
	#book_children + .sel .sel__list {
		display: none;
		grid-template-columns: repeat(6, 1fr);
	}

	#book_rooms + .sel.is-open .sel__list,
	#book_adults + .sel.is-open .sel__list,
	#book_children + .sel.is-open .sel__list {
		display: grid;
	}

	#book_rooms + .sel .sel__opt,
	#book_adults + .sel .sel__opt,
	#book_children + .sel .sel__opt {
		justify-content: center;
		padding: 0;
		border-top: 0;
		border-left: 1px solid rgba(0, 0, 0, 0.08);
	}

	#book_rooms + .sel .sel__opt:first-child,
	#book_adults + .sel .sel__opt:first-child,
	#book_children + .sel .sel__opt:first-child {
		border-left: 0;
	}
}

.wp_full_media--caption {
		position: absolute;
		left: 50%;
		bottom: 7rem;
		transform: translateX(-50%);
		z-index: 10;              /* au-dessus de l'overlay ::after (z-index 5) */
		width: 100%;
		max-width: 90%;
		margin: 0;
		text-align: center;
		pointer-events: none;     /* laisse le slider manipulable derrière */
	}

	.wp_full_media--caption p,
	.wp_full_media--caption h1 {
		color: var(--white);
		margin: 0;
	}
	
.wp_end_sticky {
    height: 0px;
    
}

b, strong {
    font-weight: 500;
}

.wp_slider_links {
    & .wp_link_card {
        p {
            padding: 0rem;
        }
    }
}




.wp_slider_links {
    .slider--nav:hover {
 
        background: rgba(0, 0, 0, 0.7);
       
    }
}

.wp_slider_rooms {
    & .wp_slider_rooms--slider {
        .slider--nav:hover {
 
        background: rgba(0, 0, 0, 0.7);
       
    }
    }
}

.wp_slider_rooms {
    & .wp_slider_rooms--slider {
        .slider--nav {
       
            width: 42px;
            height: 42px;
           
        }
    }
}

.wp_slider_links {
    .slider--nav {
        width: 42px;
            height: 42px;
    }
}

.wp_slider_extend, .wp_slider_extend2 {
    & .wp_slider_extend--slider {
        .slider--nav {
            width: 42px;
            height: 42px;
        }
    }
}

.wp_slider_links {
    .slider--nav:hover {
 
        background: rgba(0, 0, 0, 0.7);
       
    }
}

.wp_slider_extend, .wp_slider_extend2 {
    & .wp_slider_extend--slider {
        .slider--nav:hover {
 
        background: rgba(0, 0, 0, 0.7);
       
    }
    }
}

.daterangepicker td.active.start-date.in-range {
    color: #fff !important;
    background-color: #111 !important;
}

.wp_head_title h2.subtitle { font-size: var(--font-size-big);
        line-height: var(--font-lh-medium); font-family: var(--font-heading);
    font-weight: 300;
    letter-spacing: 0.072rem;}


#employment-education, #employment-education, #culture, #emploi-education { margin-top:0;}

#grid-nopadding { margin-bottom:0; padding-bottom:0;}

.header_hotels .header_hotels_wrap ul.header_hotels--filter { border-top:none; padding-top: 2px;         justify-content: start;                }

.header_nav {
    & .header_hotels {
        & .header_hotels_wrap {
            .header_hotels--filter {
                display: flex;
                flex-direction: column;
                align-items: flex-start;
                gap: 1.5rem 0;
            }
        }
    }
}
/* liste fermée par défaut, sans casser l'ouverture du script */
.sel__list {
    position: absolute;
    top: 100%;
    left: 0;
    right: 0;
    z-index: 20;
    max-height: 0;
    overflow: hidden;
    visibility: hidden;
    opacity: 0;
    transition: opacity .2s ease, visibility 0s linear .2s, max-height 0s linear .2s;
}

/* liste ouverte : quand le bouton est déplié (aria-expanded) ou classe is-open */
.sel__btn[aria-expanded="true"] + .sel__list,
.sel__list.is-open {
    max-height: 300px;
    overflow: auto;
    visibility: visible;
    opacity: 1;
    transition: opacity .2s ease;
}

@media (max-width: 767px) {
	.daterangepicker {
		position: fixed !important;
		top: 50% !important;
		left: 50% !important;
		transform: translate(-50%, -50%);
		width: 94vw !important;
		max-width: 94vw !important;
		max-height: 86dvh;
		overflow-y: auto;
		z-index: 9999;
		box-shadow: 0 10px 40px rgba(0,0,0,.25);
	}

	/* UN seul mois affiché */
	.daterangepicker .drp-calendar.right {
		display: none !important;
	}
	.daterangepicker .drp-calendar.left {
		display: block !important;
		float: none !important;
		width: 100% !important;
		max-width: 100% !important;
		padding: 8px 12px !important;
	}

	/* cases tapables */
	.daterangepicker .calendar-table td,
	.daterangepicker .calendar-table th {
		min-width: 40px;
		height: 44px;
		font-size: 1.6rem;
	}

	/* les DEUX flèches sur le mois affiché (grâce à linkedCalendars:false) */
	.daterangepicker .drp-calendar.left th.prev,
	.daterangepicker .drp-calendar.left th.next {
		display: table-cell !important;
		visibility: visible !important;
	}

	/* boutons pleine largeur, visibles sans scroller */
/* zone du bas : dates + boutons harmonisés */
	.daterangepicker .drp-buttons {
		display: flex!important;
		flex-wrap: wrap;
		gap: 10px;
		padding: 16px 12px !important;
		border-top: 1px solid rgba(0,0,0,.08);
	}

	/* la plage de dates : ligne pleine largeur, centrée, typographie posée */
	.daterangepicker .drp-selected {
		display: block;
		width: 100%;
		text-align: center;
		font-size: 1.5rem;
		letter-spacing: .05rem;
		padding: 0 0 10px;
		margin: 0;
	}

	/* deux boutons égaux, même hauteur, côte à côte */
	.daterangepicker .drp-buttons .btn {
		flex: 1;
		margin: 0 !important;
		padding: 13px 0;
		font-size: 1.4rem;
		letter-spacing: .1rem;
		text-transform: uppercase;
		border-radius: 0;
	}

	/* Annuler : sobre, contour fin */
	.daterangepicker .drp-buttons .cancelBtn {
		background: transparent;
		border: 1px solid rgba(0,0,0,.25);
		color: inherit;
	}
	
	/* Titre du mois plus grand */
	.daterangepicker .calendar-table th.month {
		font-size: 1.5rem;
		letter-spacing: .15rem;
		padding: 12px 0;
	}

	/* Appliquer : plein, dominant */
	.daterangepicker .drp-buttons .applyBtn {
		background: #000;
		border: 1px solid #000;
		color: #fff;
	}
	
	.daterangepicker th.prev span,
	.daterangepicker th.next span {
		width: 12px;
		height: 12px;
		border-width: 0 2px 2px 0;
		padding: 5px;
	}
	
	.daterangepicker .drp-buttons .btn {
		flex: 1;
		padding: 12px 0;
		font-size: 1.5rem;
	}
}
/* ===== POP-IN FILTRES MOBILE ===== */
@media (max-width: 767px) {

.filter--trigger-wrap {
	display: flex;
	align-items: center;
	justify-content: center;   /* ← centre le duo horizontalement */
	gap: 0 1.4rem;
}

	.filter--trigger {
		display: inline-flex;
		align-items: center;
		min-height: 44px;
		padding: 0 1.8rem;
		border: 1px solid var(--body-color);
		background: none;
		font-size: 1.3rem;
		letter-spacing: 0.2rem;
		text-transform: uppercase;
		cursor: pointer;
	}

	.filter--current {
		font-size: 1.3rem;
		letter-spacing: 0.15rem;
		text-transform: uppercase;
		opacity: 0.6;
	}

	.filter--list {
		display: none;
	}

	.filter--list.is-open {
		display: flex;
		position: fixed;
		top: 50%;
		left: 50%;
		transform: translate(-50%, -50%);
		width: min(94vw, 420px);
		max-height: 85vh;
		overflow-y: auto;
		z-index: 1001;
		padding: 2rem;
		background: var(--white);
		box-shadow: 0 8px 50px rgba(0, 0, 0, 0.25);
		flex-wrap: wrap;
		align-content: flex-start;
		gap: 1.2rem;
	}

	.filter--panel-head {
		flex: 0 0 100%;
		display: flex;
		justify-content: flex-end;
		padding-bottom: 0.6rem;
	}

	.filter--panel-close {
		        font-size: 4rem;
        line-height: 1;
        background: none;
        border: 0;
        cursor: pointer;
        font-weight: 100;
        padding: 0rem;
	}

	.filter--list > button {
		flex: 0 0 auto;
		min-height: 42px;
		padding: 0 1.6rem;
		border: 1px solid var(--body-color);
		background: none;
		font-size: 1.3rem;
		letter-spacing: 0.15rem;
		text-transform: uppercase;
		cursor: pointer;
	}

	.filter--list > button.active {
		background: var(--black_alt, #000);
		border-color: var(--black_alt, #000);
		color: var(--white);
	}
}

@media (min-width: 768px) {
	.filter--trigger-wrap,
	.filters-backdrop {
		display: none !important;
	}
}

/* voile — hors media query, il est créé sur tous les écrans */
.filters-backdrop {
	display: none;
	position: fixed;
	inset: 0;
	z-index: 1000;
	background: rgba(0, 0, 0, 0.45);
}

.filters-backdrop.is-visible {
	display: block;
}

@media (max-width: 767px) {

	/* le wrap vidé par le portal ne doit plus occuper d'espace */
	.wp_grid_panels_exp--filter,
	.wp_around--filter,
	.wp_gallery--filter,
	.wp_directory--filterbar {
		display: none;
	}

	/* espace sous le duo FILTER + libellé : ajuste à ton goût */
	.filter--trigger-wrap {
		margin-bottom: 3.5rem;   /* ou 1.5rem, teste */
		margin-top: 2rem;
	}

	/* si la grille a sa propre marge haute, réduis-la sur mobile */
	.wp_grid_panels_exp .wp_grid_panels_exp--grid {
		margin-top: 0;
	}
}

@media (max-width: 767px) {
	.wp_grid_panels_exp .grid_item {
		margin-bottom: 2rem;   /* ajuste : la valeur actuelle est sûrement 4-6rem */
	}
}

.filter--panel-head {
	flex: 0 0 100%;
	display: flex;
	align-items: center;
	justify-content: space-between;   /* ← au lieu de flex-end */
	padding-bottom: 0rem;
}

.filter--panel-title {
	font-size: 1.5rem;
	letter-spacing: 0.25rem;
	text-transform: uppercase;
}

.wp_map .content--logo img { max-width:140px;}

.wp_directory_hotel_card strong.text-uppercase { font-weight:500;}


/* ===== POP-IN PROMOTIONNELLE ===== */
.wp_popin {
	position: fixed;
	inset: 0;
	z-index: 1100;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 2rem;
	background: rgba(0, 0, 0, 0.45);
	opacity: 0;
	visibility: hidden;
	transition: opacity 0.4s ease, visibility 0s linear 0.4s;

	&.is-open {
		opacity: 1;
		visibility: visible;
		transition: opacity 0.4s ease;
	}


	.wp_popin--wrap {
		position: relative;
	}

	/* croix : dans le vide, centrée au-dessus de la boîte */
	.wp_popin--close {
		position: absolute;
		bottom: calc(100% + 1.6rem);
		left: 50%;
		transform: translateX(-50%);
		width: 44px;
		height: 44px;
		display: flex;
		align-items: center;
		justify-content: center;
		background: transparent;
		border: 1px solid var(--white);
		border-radius: 50%;
		color: var(--white);
		font-size: 2.4rem;
		cursor: pointer;
		transition: background 0.3s ease, color 0.3s ease;

		&:hover {
			background: var(--white);
			color: var(--black_alt, #000);
		}
	}
	
	

	/* boîte : photo à gauche, texte à droite */
	.wp_popin--content {
		display: flex;
		width: min(92vw, 880px);      /* élargie pour le format paysage */
		max-height: 80vh;
		background: var(--white);
		box-shadow: 0 8px 50px rgba(0, 0, 0, 0.25);
		overflow: hidden;
		min-height: min(420px, 70vh);
	}

	.wp_popin--media {
		flex: 0 0 50%;
		position: relative;

		img,
		iframe {
			position: absolute;
			inset: 0;
			width: 100%;
			height: 100%;
		}

		img {
			object-fit: cover;
		}
	}

	.wp_popin--body {
		flex: 0 0 50%;
		display: flex;
		flex-direction: column;
		justify-content: center;
		padding: 4.5rem 4.5rem;
		text-align: center;
		overflow-y: auto;
	}
	
	

	/* mobile : on repasse en empilé, croix conservée au-dessus */
	@media (max-width: 767px) {
		.wp_popin--content {
			flex-direction: column;
			width: min(92vw, 420px);
			max-height: 75vh;
			overflow-y: auto;
		}

		.wp_popin--media {
			flex: 0 0 auto;
			aspect-ratio: 3 / 2;
		}

		.wp_popin--body {
			flex: 0 0 auto;
			padding: 3.5rem 3rem 3rem;
		}
	}
	
}


/* ===== POP-IN : variante Short vertical ===== */
.wp_popin .wp_popin--media.is-short {
	flex: 0 0 auto;
	height: min(70vh, 620px);   /* hauteur définie -> largeur déduite du ratio */
	aspect-ratio: 9 / 16;
}

.wp_popin .wp_popin--content:has(.is-short) {
	width: auto;                 /* la boîte s'adapte : short + texte */
	max-width: min(92vw, 800px);
}

.wp_popin .wp_popin--content:has(.is-short) .wp_popin--body {
	flex: 1 1 auto;
	min-width: 300px;
}

/* ===== POP-IN : variante texte seul (sans média) ===== */
.wp_popin .wp_popin--content.is-text-only {
	width: min(92vw, 560px) !important;
	min-height: 0 !important;
}

.wp_popin .wp_popin--content.is-text-only .wp_popin--body {
	flex: 1 1 100% !important;
}

@media (max-width: 767px) {
	.wp_popin .wp_popin--media.is-short {
		height: auto;
		width: 100%;
		aspect-ratio: 9 / 16;
		max-height: 50vh;
	}
}

.ratio-916 {
	position: relative;
	padding-top: calc(16 / 9 * 100%);
}

.ratio-916 > * {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
}


@media (max-width: 767px) {
	.wp_popin .wp_popin--close {
		bottom: auto;                 /* annule le positionnement "au-dessus" */
		left: auto;
		transform: none;
		top: 1.5rem;
		right: 1.5rem;
		z-index: 2;
		width: 38px;
		height: 38px;
		border-color: var(--white);
		color: var(--white);
		font-size: 2.4rem;
		font-weight:100;
		transition: background 0.3s ease, color 0.3s ease;

		&:hover {
			background: var(--white);
			color: var(--black_alt, #000);
		}
	}
}


@media (max-width: 767px) {
	.wp_popin .wp_popin--wrap:has(.is-text-only) .wp_popin--close {
		bottom: auto;
		left: auto;
		transform: none;
		top: 1rem;
		right: 1rem;
		z-index: 2;
		width: 38px;
		height: 38px;
		background: none;
		border: none;
		color: var(--black);
		font-size: 2.4rem;
	}
}

/* ===== POP-IN : liens du texte (trait qui se retire au survol) ===== */
.wp_popin .wp_wysiwyg a {
	position: relative;
	text-decoration: none;

	&::after {
		display: block;
		content: "";
		position: absolute;
		bottom: -0.2rem;
		left: 0;
		width: 100%;
		height: 1px;
		background: var(--body-color);
		transition: width 0.35s ease;
	}

	&:hover {
		&::after {
			width: 0;
		}
	}
}

/* ===== FILTRES MOBILE : panneau à 2 niveaux (galerie villes + hôtels) ===== */
.filter--panel {
	display: none;
}

@media (max-width: 767px) {
	.filter--panel.is-open {
		display: block;
		position: fixed;
		top: 50%;
		left: 50%;
		transform: translate(-50%, -50%);
		width: min(94vw, 420px);
		max-height: 85vh;
		overflow-y: auto;
		z-index: 1001;
		padding: 2rem;
		background: var(--white);
		box-shadow: 0 8px 50px rgba(0, 0, 0, 0.25);
	}

	/* les listes internes redeviennent de simples rangées de chips */
	.filter--panel .filter--list {
		display: flex;
		flex-wrap: wrap;
		gap: 1.2rem;
		position: static;
		transform: none;
		width: auto;
		max-height: none;
		padding: 0;
		background: none;
		box-shadow: none;
	}

	/* séparation villes / hôtels */
	.filter--panel .filter--list + .filter--list {
		margin-top: 1.6rem;
		padding-top: 1.6rem;
		border-top: 1px solid rgba(0, 0, 0, 0.12);
	}

	.filter--panel > .filter--panel-head {
		display: flex;
		align-items: center;
		justify-content: space-between;
		padding-bottom: 1.2rem;
	}
}

/* ===== ANCRES MOBILE : bandeau + fleches (nav.wp_anchors_menu) ===== */
@media (max-width: 767px) {
	.wp_anchors_menu .container {
		position: relative;
	}

	.wp_anchors_menu ul {
		display: flex;
		gap: 0 2.2rem;
		overflow-x: auto;
		scroll-snap-type: x proximity;
		scroll-behavior: smooth;
		-webkit-overflow-scrolling: touch;
		scrollbar-width: none;
		padding: 1.8rem 3.8rem;
	}

	.wp_anchors_menu ul::-webkit-scrollbar {
		display: none;
	}

	.wp_anchors_menu ul li {
		flex: 0 0 auto;
		scroll-snap-align: center;
	}

	.wp_anchors_menu .anchors--arrow {
		position: absolute;
		top: 50%;
		transform: translateY(-50%);
		z-index: 2;
		width: 34px;
		height: 34px;
		display: flex;
		align-items: center;
		justify-content: center;
		background: var(--white);
		font-size: 1.3rem;
		transition: opacity 0.25s ease;
	}

	.wp_anchors_menu .anchors--arrow.is-prev { left: 0; }
	.wp_anchors_menu .anchors--arrow.is-next { right: 0; }

	.wp_anchors_menu .anchors--arrow.is-hidden {
		opacity: 0;
		pointer-events: none;
	}

	/* degrades entre fleches et libelles */
	.wp_anchors_menu .container::before,
	.wp_anchors_menu .container::after {
		content: "";
		position: absolute;
		top: 0;
		bottom: 0;
		width: 2.6rem;
		pointer-events: none;
		z-index: 1;
	}

	.wp_anchors_menu .container::before {
		left: 34px;
		background: linear-gradient(to right, var(--white), transparent);
	}

	.wp_anchors_menu .container::after {
		right: 34px;
		background: linear-gradient(to left, var(--white), transparent);
	}
	
	.wp_anchors_menu {
   
    padding: 0;
 
}

    .wp_anchors_menu .container {
        position: relative;
        border-top: 1px solid #dadada;
        border-bottom: 1px solid #dadada;
    }
}

@media (min-width: 768px) {
	.wp_anchors_menu .anchors--arrow {
		display: none;
	}
		
}

/* ===== SLIDER LINKS MOBILE : barre de progression + indice de swipe ===== */
/* barre masquee en desktop (fleches conservees) */
.wp_slider_links--slider .slider--progress {
	display: none;
}

@media (max-width: 767px) {
	/* fleches masquees en mobile */
	.wp_slider_links--slider .nav--prev,
	.wp_slider_links--slider .nav--next {
		display: none !important;
	}


	/* barre de progression : rail pleine largeur, curseur mobile */
	.wp_slider_links--slider .slider--progress {
		display: block;
		position: relative;
		width: 100%;
		height: 2px;
		margin: 2rem 0 0;
		background: rgba(0, 0, 0, 0.12);
	}

	.wp_slider_links--slider .slider--progress-bar {
		position: absolute;
		top: 0;
		left: 0;
		height: 100%;
		background: var(--body-color);
		transition: left 0.5s cubic-bezier(0.25, 1, 0.5, 1), width 0.5s cubic-bezier(0.25, 1, 0.5, 1);
	}
	
	.wp_map {
    .wp_map--content {
        padding: 4rem 3rem;
    }
}
	
}

/* indice de swipe : la piste glisse puis revient */
@keyframes swipeHint {
	0%   { transform: translateX(0); }
	45%  { transform: translateX(-32px); }
	100% { transform: translateX(0); }
}

.swipe-hint {
	animation: swipeHint 0.9s cubic-bezier(0.25, 1, 0.5, 1) 0.4s 1;
}

@media (prefers-reduced-motion: reduce) {
	.swipe-hint {
		animation: none;
	}
}

/* ===== SLIDER LINKS : largeurs des cartes (autoWidth global) ===== */
/* 4 cartes (3 gaps de 0.5rem) */
.wp_slider_links--slider .splide__slide {
	width: calc((100% - 1.5rem) / 4);
}

/* garde : aucun padding de piste, l'apercu vient de la largeur des cartes */
.wp_slider_links--slider .splide__track {
	padding-left: 0 !important;
	padding-right: 0 !important;
}

@media (max-width: 991px) {
	/* 3 cartes (2 gaps) */
	.wp_slider_links--slider .splide__slide {
		width: calc((100% - 1rem) / 3);
	}
}

@media (max-width: 767px) {
	/* grande carte + apercu de la suivante */
	.wp_slider_links--slider .splide__slide {
		width: 78%;
	}
}

/* ===== SLIDER LINKS MOBILE : temoin de clic (+ cercle blanc) ===== */
@media (max-width: 767px) {
	.wp_slider_links--slider .wp_link_card {
		position: relative;
		transition: transform 0.15s ease;
	}

	/* badge + : rond blanc, croix noire, coin bas-droit */
	.wp_slider_links--slider .wp_link_card::before {
         content: "+";
        position: absolute;
        bottom: 1.8rem;
        right: 1.8rem;
        z-index: 2;
        width: 31px;
        height: 31px;
        display: flex;
        align-items: center;
        justify-content: center;
        font-size: 2.6rem;
        font-weight: 400;
        line-height: 1;
        color: var(--black_alt, #000);
        background: var(--white);
        border-radius: 50%;
        box-shadow: 0 1px 4px rgba(0, 0, 0, 0.18);
	}

	/* feedback au tap */
	.wp_slider_links--slider .wp_link_card:active {
		transform: scale(0.98);
	}
}

/* ===== SLIDER EXTEND : autoWidth global (largeurs par breakpoint) ===== */
/* format ar34 : 5 cartes (4 gaps de 0.6rem) */
.wp_slider_extend--slider[data-format="ar34"] .splide__slide {
	width: calc((100% - 2.4rem) / 5);
}

/* format par defaut (sans data-format) : 4 cartes (3 gaps) */
.wp_slider_extend--slider:not([data-format="ar34"]):not([data-format="auto"]) .splide__slide {
	width: calc((100% - 1.8rem) / 4);
}

/* garde : aucun padding de piste -- DESKTOP uniquement : en mobile,
   l'option padding de Splide pose le retrait lateral en inline sur la
   piste et doit pouvoir s'appliquer */
@media (min-width: 768px) {
	.wp_slider_extend--slider .splide__track {
		padding-left: 0 !important;
		padding-right: 0 !important;
	}
}

@media (max-width: 1439px) {
	.wp_slider_extend--slider[data-format="ar34"] .splide__slide {
		width: calc((100% - 1.8rem) / 4);
	}
}

@media (max-width: 991px) {
	.wp_slider_extend--slider[data-format="ar34"] .splide__slide,
	.wp_slider_extend--slider:not([data-format="ar34"]):not([data-format="auto"]) .splide__slide {
		width: calc((100% - 1.2rem) / 3);
	}
}

@media (max-width: 767px) {
	/* grande carte + apercu de la suivante */
	.wp_slider_extend--slider[data-format="ar34"] .splide__slide,
	.wp_slider_extend--slider:not([data-format="ar34"]):not([data-format="auto"]) .splide__slide {
		width: 78%;
	}
}

/* ===== SLIDER EXTEND MOBILE : barre de progression ===== */
.wp_slider_extend--slider .slider--progress {
	display: none;
}

@media (max-width: 767px) {
	.wp_slider_extend--slider .slider--progress {
		display: block;
		position: relative;
		width: 100%;
		height: 2px;
		margin: 2rem 0 0;
		background: rgba(0, 0, 0, 0.12);
	}

	.wp_slider_extend--slider .slider--progress-bar {
		position: absolute;
		top: 0;
		left: 0;
		height: 100%;
		background: var(--body-color);
		transition: left 0.5s cubic-bezier(0.25, 1, 0.5, 1), width 0.5s cubic-bezier(0.25, 1, 0.5, 1);
	}
}

/* ===== SLIDER EXTEND format auto : contrat mobile identique au desktop ===== */
/* Le JS (ext_size_auto_slides) pose la largeur homothetique en px INLINE
   sur le MEDIA (img/video) -- pas sur le <li>, dont Splide restaure le
   style d'origine a chaque refresh(). Donc ici :
   - slide en width:auto -> elle epouse exactement la largeur du media
     (portraits etroits, paysages larges : aucun blanc entre les photos)
   - PAS de !important sur la largeur des medias : l'inline px doit gagner. */
@media (max-width: 767px) {
	.wp_slider_extend--slider[data-format="auto"] .splide__slide {
		width: auto;
		overflow: hidden;
	}

	.wp_slider_extend--slider[data-format="auto"] .splide__slide img,
	.wp_slider_extend--slider[data-format="auto"] .splide__slide video {
		height: 100% !important;
		width: auto; /* fallback avant mesure ; l'inline px du sizer prend le dessus */
		max-width: none !important;
		display: block;
	}

	/* (plafond 85% et letterbox is-capped supprimes : toutes les photos
	   font desormais la pleine hauteur de la bande, ratio naturel --
	   les paysages sont plus larges que l'ecran et se parcourent au swipe) */
}


/* ===== BARRES DE PROGRESSION : retrait lateral symetrique ===== */
@media (max-width: 767px) {
	/* links : le wrap n'a pas de padding lateral, le calc suffit */
	.wp_slider_links--slider .slider--progress {
		width: calc(100% - 4rem);
		margin: 2rem auto 0;
	}

	/* extend : rail ancre en absolu sur les bords du slider
	   (insensible au padding interne du wrap type has-pad) */
	/* extend : neutralise le width:90% (retrait desktop) en mobile --
	   sinon la piste et le rail de progression s'arretent a 90% du parent
	   alors que les slides debordent visuellement jusqu'au bord.
	   Contrat mobile : fin de piste collee au bord, apercu de la suivante
	   garanti par le plafond 85% de ext_size_auto_slides() dans main.js. */
	.wp_slider_extend--slider {
		width: 100% !important;
		position: relative;
		/* !important : la classe has-pad du theme ecrasait ce padding
		   -> la barre (absolue a bottom:1.2rem) remontait sur les photos */
		padding-bottom: 3.6rem !important;
	}

	.wp_slider_extend--slider .slider--progress {
		position: absolute;
		bottom: 1.2rem;
		left: 2rem;
		right: 2rem;
		width: auto;
		margin: 0;
	}
}

/* ===== SLIDER EXTEND auto : slides plafonnees (paysages trop larges en mobile) ===== */
.wp_slider_extend--slider[data-format="auto"] .splide__slide.is-capped {
	overflow: hidden;
}

.wp_slider_extend--slider[data-format="auto"] .splide__slide.is-capped img,
.wp_slider_extend--slider[data-format="auto"] .splide__slide.is-capped video {
	width: 100% !important;
	height: 100% !important;
	max-width: none;
	object-fit: cover;
}

/* ===== LIGHTBOX2 mobile : croix centree AU-DESSUS de la photo ===== */
/* Le conteneur .lb-dataContainer recoit une largeur inline en px et se
   place au coin de l'image : on le sort du flux pour le poser juste
   au-dessus de la photo, croix centree dans le fond sombre. */
@media (max-width: 767px) {
	.lightbox .lb-dataContainer {
		position: absolute !important;
		top: 0;
		left: 0;
		width: 100% !important; /* ecrase la largeur inline posee par le script */
		transform: translateY(-100%);
		        padding: 0 0 2.8rem 0;
		
	}

	.lightbox .lb-data .lb-closeContainer {
		float: none !important;
		display: flex;
		justify-content: center;
	}

	.lightbox .lb-data .lb-close {
		opacity: 1;
		right:inherit!important;
	}
}

/* ===== ROOM SLIDER : photo unique -> barre-temoin pleine et noire ===== */
/* Avec une seule photo, Splide rend un dot unique : on l'etire sur toute
   la barre et on le rend pleinement opaque (swipe desactive par le JS). */
.wp_rooms .wp_room--slider .slider--dots li:only-child,
.wp_media_text_columns .wp_media_text_column--slider .slider--dots li:only-child {
	flex: 1 1 100%;
}

.wp_rooms .wp_room--slider .slider--dots li:only-child .dot,
.wp_media_text_columns .wp_media_text_column--slider .slider--dots li:only-child .dot {
	width: 100%;
	opacity: 1 !important;
}

/* ===== SLIDER EXTEND avec cartes titrees : barre SOUS les titres ===== */
/* Sur les sliders de cartes (image + h3), la barre en position absolue
   venait barrer les titres. On la remet dans le flux : dernier enfant du
   bloc, elle se place naturellement sous les cartes, quelle que soit
   leur hauteur. */
@media (max-width: 767px) {
	.wp_slider_extend--slider:has(.wp_slider_extend--card h3) {
		padding-bottom: 0 !important; /* plus besoin de reserver l'espace */
	}

	.wp_slider_extend--slider:has(.wp_slider_extend--card h3) .slider--progress {
		position: relative;
		margin: 3.5rem 2rem 0 2rem;
	}
}

/* ===== ROOM SLIDER : hauteur de photo verrouillee en 4:3 ===== */
/* Certaines photos echappaient au ratio-43 du theme et debordaient en
   hauteur -> la barre-temoin, calee pour du 4:3, passait sur la photo.
   On verrouille : toutes les photos font la meme hauteur, recadrage
   centre sans deformation pour celles qui ne sont pas au format. */
.wp_rooms .wp_room--slider .slider--img {
	display: block;
	aspect-ratio: 4 / 3;
	overflow: hidden;
}

.wp_rooms .wp_room--slider .slider--img img {
	width: 100% !important;
	height: 100% !important;
	object-fit: cover;
}

/* ===== SLIDER EXTEND : retrait lateral mobile ===== */
/* Le retrait est pose par l'option padding de Splide (main.js, breakpoint
   767) en INLINE sur la piste -- imbattable par les regles du theme.
   Dans les panels, le retrait vient deja du conteneur : on re-force 0
   sur la piste (le !important CSS gagne sur un style inline). */
@media (max-width: 767px) {
	.wp_panel--content .wp_slider_extend--slider .splide__track {
		padding-left: 0 !important;
		padding-right: 0 !important;
	}
}

/* ===== MENU MOBILE : colonne scrollable pour voir tout le menu ===== */
/* Sur les petits ecrans, le menu (niveaux empiles + bloc du bas)
   depassait la hauteur d'ecran sans pouvoir defiler. La colonne de
   gauche devient la zone de scroll ; position:relative en fait le
   repere des sous-menus absolus, dont le debordement devient ainsi
   scrollable lui aussi. */
@media (max-width: 767px) {
	.wp_panel_menu .wp_panel_menu--content {
		max-height: 100svh;
		overflow: hidden;
	}

	.wp_panel_menu .wp_panel_menu--content .content--left {
		position: relative;
		display: flex;
		flex-direction: column;
		min-height: 100svh;
		max-height: 100svh;
		overflow-y: auto;
		/* les niveaux inactifs sont gares hors-champ en translateX(100%) :
		   sans ceci, ils creent un debordement horizontal scrollable */
		overflow-x: hidden;
		-webkit-overflow-scrolling: touch;
		overscroll-behavior: contain; /* ne fait pas defiler la page derriere */
		padding-bottom: env(safe-area-inset-bottom, 0);
	}

	/* le menu secondaire suit la hauteur du niveau actif : il se place
	   directement sous le menu (espace fixe de 3rem), qu'il soit court
	   ou long -- il monte et descend avec lui */
	.wp_panel_menu .content--left .left--bottom {
		position: static !important; /* au cas ou le theme le fixait en absolu */
		margin-top: 0 !important;
		padding-top: 3rem !important;
	}

	/* purge des espaces bas herites du theme entre le menu et le bloc
	   secondaire (paddings/margins cumules) */
	.wp_panel_menu .top--menus,
	.wp_panel_menu .top--menus .main_panel_menu.is-active {
		padding-bottom: 0 !important;
		margin-bottom: 0 !important;
	}

	/* les ul de menu peuvent porter une hauteur minimale du theme
	   (concue pour remplir le panneau) : c'est du vide DANS le menu */
	.wp_panel_menu .top--menus .main_panel_menu {
		min-height: 0 !important;
		height: auto !important;
	}

	/* et le haut du bloc secondaire lui-meme (conteneurs WP + ul) */
	.wp_panel_menu .left--bottom > div,
	.wp_panel_menu .left--bottom .panel_menu--bottom {
		margin-top: 0;
		padding-top: 0;
	}
}

/* ===== MENU MOBILE (suite) : hauteur naturelle du niveau actif ===== */
/* Les niveaux de menu sont empiles en absolu (glissement is-left /
   is-active / is-right) : le conteneur .top--menus a donc une hauteur
   figee par le theme, trop courte -> menu coupe avec ascenseur interne.
   En mobile : le niveau ACTIF repasse dans le flux et donne sa hauteur
   au conteneur ; les niveaux inactifs restent en absolu pour l'animation.
   Le defilement est assure par la colonne .content--left (bloc ci-dessus). */
@media (max-width: 767px) {
	.wp_panel_menu .top--menus {
		position: relative;
		height: auto !important;
		max-height: none !important;
		min-height: 0 !important;
		overflow: visible !important;
	}

	.wp_panel_menu .top--menus .main_panel_menu.is-active {
		position: relative !important;
	}

	.wp_panel_menu .top--menus .main_panel_menu.is-left,
	.wp_panel_menu .top--menus .main_panel_menu.is-right {
		position: absolute !important;
		top: 0;
		left: 0;
		width: 100%;
	}
	
	.wp_panel_menu .left--bottom > div.wp_lang {
        margin-top: 1rem!important;;
        margin-bottom: 2rem!important;;
    }
	

	
}

/* ===== FILTRES DIRECTORY : pop-in mobile (meme mecanisme que la galerie) ===== */
@media (max-width: 767px) {
	/* la liste du directory est un ul>li>button : les li deviennent
	   transparents pour le flex du panneau, les boutons prennent le
	   style pilule des autres filtres */
	.wp_directory--filter.filter--list li {
		display: contents;
	}

	.filter--list li button {
		flex: 0 0 auto;
		min-height: 42px;
		padding: 0 1.6rem;
		border: 1px solid var(--body-color);
		background: none;
		font-size: 1.3rem;
		letter-spacing: 0.15rem;
		text-transform: uppercase;
		cursor: pointer;
	}

	.filter--list li button.active {
		background: var(--black_alt, #000);
		border-color: var(--black_alt, #000);
		color: var(--white);
	}

	/* neutralise le style desktop du ul une fois en panneau
	   (filet haut + soulignes anims inutiles dans la pop-in) */
	ul.wp_directory--filter.filter--list {
		border-top: none;
	}

	.wp_directory--filter.filter--list button::after {
		display: none;
	}
	
	
}

/* ===== SLIDER LINKS : moins de cartes que la vue ===== */
/* Splide gere lui-meme la classe is-overflow (posee quand le contenu
   deborde, retiree sinon, recalculee au resize). Quand tout tient :
   cartes centrees, fleches masquees (elles ne servent a rien).
   En debordement, la liste reste en flex-start : indispensable pour
   que les translateX de Splide restent justes. */
.wp_slider_links--slider:not(.is-overflow) .splide__list {
	justify-content: center;
}

.wp_slider_links--slider:not(.is-overflow) .nav--prev,
.wp_slider_links--slider:not(.is-overflow) .nav--next {
	display: none !important;
}

/* ===== SLIDER EXTEND / EXTEND2 : fleches masquees si rien ne deborde ===== */
/* DESKTOP uniquement. Les fleches etaient seulement desactivees
   (is-disabled, opacite 0.3) mais restaient visibles. Comme pour le
   slider links : on les masque quand Splide ne pose pas is-overflow
   (tout tient dans la vue), elles reviennent seules des que le contenu
   deborde (resize compris). En mobile, comportement inchange. */
@media (min-width: 768px) {
	.wp_slider_extend--slider:not(.is-overflow) .slider--nav {
		display: none !important;
	}
}


/* ===== Images Sugar Calendar : rendu stable ===== */
.sugar-calendar-event-list-block__listview__event__body__image{
    overflow:hidden;                    /* masque le débordement du zoom */
    position:relative;
    display:block;
}
.sugar-calendar-event-list-block__listview__event__body__image__container{
    display:block;
    width:100%;
    min-height:170px;
    aspect-ratio: 16 / 9;
    background-color:transparent;
    object-fit:cover;
    object-position:center;
    transition:transform .5s ease;
}
.sugar-calendar-event-list-block__listview__event__body__image:hover
.sugar-calendar-event-list-block__listview__event__body__image__container{
    transform:scale(1.05);              /* zoom léger */
}

/* ===== Soulignement du titre au survol ===== */
.sugar-calendar-event-list-block__event__title a{
    text-decoration:none;
    background-image:linear-gradient(#000,#000);
    background-size:0% 1px;
    background-position:0 100%;
    background-repeat:no-repeat;
    transition:background-size .3s ease;
}
.sugar-calendar-event-list-block__event__title a:hover{
    background-size:100% 1px;           /* le trait se déploie de gauche à droite */
	text-decoration:none;
}

.sugar-calendar-event-list-block__listview__event:hover
.sugar-calendar-event-list-block__event__title a{
    background-size:100% 1px;
}
.sugar-calendar-event-list-block__listview__event:hover
.sugar-calendar-event-list-block__listview__event__body__image__container{
    transform:scale(1.05);
}

.sugar-calendar-event-list-block .sugar-calendar-event-list-block__base-container .sugar-calendar-event-list-block__event__title a:hover {
  
    text-decoration: none;
}

.evok-all-events .is-past{ opacity:.55; }

.evok-all-events__filters{
    display:flex;
    flex-wrap:wrap;
    gap:1rem;
    align-items:center;
    justify-content:space-between;
    margin-bottom:2.5rem;
}
.evok-all-events__left{
    display:flex;
    align-items:center;
    gap:1rem;
    flex-wrap:wrap;
}
.evok-all-events__right{
    display:flex;
    align-items:center;
    gap:1rem;
    flex-wrap:wrap;
    margin-left:auto;
}
.evok-all-events__time{
    display:flex;
    gap:.5rem;
}
.evok-all-events__venue,
.evok-all-events__city,
.evok-all-events__country{
    display:inline-flex;
    align-items:center;
}
.evok-filter-btn{
    background:none;
    border:1px solid #ccc;
    padding:.5rem 1.2rem;
    cursor:pointer;
    text-transform:uppercase;
    font-size:var(--font-size-small);
    letter-spacing:.02em;
    transition:all .3s ease;
}
.evok-filter-btn:hover{
    border-color:#000;
}
.evok-filter-btn.is-active{
    background:#13294B;
    color:#fff;
    border-color:#000;
}

/* evenements passes legerement grises */
.evok-all-events .is-past{
    opacity:.6;
}

.evok-event-hotel{
    text-transform:uppercase;
}
.evok-event-sep{
    margin:0 .4rem;
    opacity:.5;
}

.evok-all-events__loadmore-wrap{
    text-align:center;
    margin-top:3rem;
}
.evok-all-events__loadmore{
    background:none;
    border:1px solid #13294B;
    color:#13294B;
    padding:.8rem 2.5rem;
    cursor:pointer;
    text-transform:uppercase;
    font-size:var(--font-size-small);
    letter-spacing:.02em;
    transition:all .3s ease;
}
.evok-all-events__loadmore:hover{
    background:#13294B;
    color:#fff;
}

.evok-all-events__date{
    position:relative;
    display:inline-flex;
    align-items:center;
}
.evok-date-input{
    padding: 1rem 2.8rem 1rem 1.5rem;
    border:1px solid #ccc;
    background:#fff;
    cursor:pointer;
    text-transform:uppercase;
    font-size:var(--font-size-small);
    min-width:160px;
}
.evok-date-clear{
    width:37px;
    height:37px;
    padding:0;
    margin-left:.8rem;
    background:none;
    border:1px solid #ccc;
    cursor:pointer;
    font-size:0;
    flex:0 0 auto;
    background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 16 16' fill='none'%3E%3Cpath d='M3 3L13 13M13 3L3 13' stroke='%23000000' stroke-width='1.5' stroke-linecap='round'/%3E%3C/svg%3E");
    background-repeat:no-repeat;
    background-position:center;
    background-size:16px 16px;
    transition:border-color .3s ease;
}
.evok-date-clear:hover{ border-color:#000; }


/* Croix de reset des filtres select intelligents */
.evok-filters-reset{
    width:37px;
    height:37px;
    padding:0;
    background:none;
    border:1px solid #ccc;
    cursor:pointer;
    font-size:0;
    background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 16 16' fill='none'%3E%3Cpath d='M3 3L13 13M13 3L3 13' stroke='%23000000' stroke-width='1.5' stroke-linecap='round'/%3E%3C/svg%3E");
    background-repeat:no-repeat;
    background-position:center;
    background-size:16px 16px;
    transition:border-color .3s ease;
}
.evok-filters-reset:hover{ border-color:#000; }

/* Select filtre temps (Upcoming / Past) — meme look que les autres select */
.evok-time-select{
   padding: 1rem 3.5rem 1rem 1.5rem;
    border:1px solid #ccc;
    background:#fff;
    cursor:pointer;
    font-size:var(--font-size-small);
    text-transform:uppercase;
    letter-spacing:.02em;
    -webkit-appearance:none;
    -moz-appearance:none;
    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' fill='none'%3E%3Cpath d='M1 1.5L6 6.5L11 1.5' stroke='%23000000' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
    background-repeat:no-repeat;
    background-position:right 1.2rem center;
    background-size:12px 8px;
}

/* Cadres + chevron SVG pour les select hotels / villes / pays */
.evok-venue-select,
.evok-city-select,
.evok-country-select{
    padding: 1rem 3.5rem 1rem 1.5rem;
    border:1px solid #ccc;
    background:#fff;
    cursor:pointer;
    font-size:var(--font-size-small);
    text-transform:uppercase;
    letter-spacing:.02em;
    -webkit-appearance:none;
    -moz-appearance:none;
    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' fill='none'%3E%3Cpath d='M1 1.5L6 6.5L11 1.5' stroke='%23000000' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
    background-repeat:no-repeat;
    background-position:right 1.2rem center;
    background-size:12px 8px;
}

/* Menu select determine (un seul choix possible) : grise et non cliquable */
.evok-venue-select.is-determined,
.evok-city-select.is-determined,
.evok-country-select.is-determined{
    opacity:.55;
    cursor:default;
    background-color:#f5f5f5;
}

/* ===== FILTRES EVENEMENTS (.evok-all-events) : texte bleu sur iOS ===== */
/* Les select/input n'avaient pas de couleur declaree : iOS leur applique
   son bleu systeme. On fixe le marine du theme (celui des chevrons SVG),
   avec -webkit-text-fill-color et opacity:1 pour l'input readonly (iOS
   grise/teinte les champs readonly). */
.evok-time-select,
.evok-venue-select,
.evok-city-select,
.evok-country-select,
.evok-date-input {
	color: #000;
	-webkit-text-fill-color: #000;
	opacity: 1;
	-webkit-tap-highlight-color: transparent;
}

.evok-date-input::placeholder {
	color: #000;
	-webkit-text-fill-color: #000;
	opacity: .5;
}

/* Calendrier flatpickr (pop-up du champ date) : bleu par defaut -> noir */
.flatpickr-day.selected,
.flatpickr-day.selected:hover,
.flatpickr-day.startRange,
.flatpickr-day.endRange,
.flatpickr-day.selected.inRange {
	background: #000 !important;
	border-color: #000 !important;
	color: #fff !important;
}

.flatpickr-day.today {
	border-color: #000;
}

.flatpickr-day:hover {
	background: #eee;
	border-color: #eee;
}

.flatpickr-months .flatpickr-prev-month:hover svg,
.flatpickr-months .flatpickr-next-month:hover svg {
	fill: #000;
}


.sugar-calendar-event-list-block .sugar-calendar-event-list-block__base-container .sugar-calendar-event-list-block__listview {
    border: none;
    padding: 0px 0 50px 0;
}

.evok-all-events__filters {

    padding-bottom: 4.8rem;
    margin-bottom: 4.8rem; 
    margin-top: 2.5rem;
    /* padding-top: 4rem; */
    border-bottom: 1px solid #dadada;
    /* border-top: 1px solid #dadada; */
}

.wp_grid_panels_exp {
    & .wp_grid_panels_exp--filter {
        & .filter--list {
            & button {
                &::after {
    
                    bottom: 0rem;
                    
                }
            }
        }
    }
}

.wp_panel--content .wp_panel--content .container h2 { font-family: var(--font-base);     line-height: var(--font-lh-base);  font-size: var(--font-size-base); font-weight:500;}

.wp_head_title h2.wp_wysiwyg.subtitle {
	
	font-family: var(--font-base);     line-height: var(--font-lh-base);
	font-size: var(--font-size-base); font-weight:inherit;     letter-spacing: 0.032rem;
}

.evok-event-sep {
    margin: 0rem;
    opacity: .5;
}

.sugar-calendar-event-list-block .sugar-calendar-event-list-block__base-container .sugar-calendar-event-list-block__listview__event__body__content__desc {
    font-size:inherit;
    line-height: 22px;
    margin-top: 15px;
}

