/**
 * Bloc Image / Texte - Styles
 */

.blocImageTexte {
    width: 100%;
    overflow: hidden;
    .capsule{
        strong{
            padding-bottom: 5px;
        }
        background: white;
        border-radius: 99rem;
        padding: 20px 30px;
        color: var(--acterim-bleu-dark)!important;
        font-size: 15px;
    }
}

.blocImageTexte .row {
    min-height: 738px;
}

/* === COLONNE IMAGE === */
.blocImageTexte__media {
    position: relative;
    padding: 0;
    overflow: hidden;
    min-height: 320px;
}

.blocImageTexte__media img:not(.leaflet-tile):not(.leaflet-marker-icon):not(.leaflet-marker-shadow) {
    display: block;
    width: 100%;
    height: 100%;
    min-height: 320px;
    object-position: center;
}

/* === CARTE INTERACTIVE === */
.blocImageTexte__map-container {
    position: relative;
    padding: 0;
    overflow: hidden;
    height: 738px;
}

.blocImageTexte__map {
    width: 100%;
    height: 100%;
    z-index: 1;
}

.blocImageTexte--adapt .blocImageTexte__map-container {
    height: 500px;
}

.blocImageTexte--adapt .blocImageTexte__map {
    height: 100%;
}

/* Réinitialiser les styles pour les images Leaflet */
.blocImageTexte__map-container img.leaflet-tile,
.blocImageTexte__map-container img.leaflet-marker-icon,
.blocImageTexte__map-container img.leaflet-marker-shadow {
    width: auto !important;
    height: auto !important;
    min-height: 0 !important;
    max-height: none !important;
    object-fit: none !important;
    object-position: initial !important;
    display: inline !important;
}

/* Fond de carte en niveaux de gris */
.blocImageTexte__map .leaflet-tile-pane {
    filter: grayscale(100%);
}

/* Styles des popups Leaflet */
.blocImageTexte__map .leaflet-popup-content-wrapper {
    border-radius: 8px;
    padding: 5px;
}

.blocImageTexte__map .leaflet-popup-content {
    margin: 15px;
    font-family: 'Montserrat', sans-serif;
}

.blocImageTexte__map .leaflet-popup-content img {
    display: none !important;
}

.blocImageTexte__map .agency-popup-name {
    font-weight: 700;
    font-size: 16px;
    margin: 0 0 8px;
    color: #202E3B;
}

.blocImageTexte__map .agency-popup-address {
    font-weight: 400;
    font-size: 14px;
    margin: 0 0 8px;
    color: #202E3B;
    line-height: 1.4;
}

.blocImageTexte__map .agency-popup-phone,
.blocImageTexte__map .agency-popup-email {
    font-weight: 400;
    font-size: 14px;
    margin: 0 0 5px;
    line-height: 1.4;
}

.blocImageTexte__map .agency-popup-phone a,
.blocImageTexte__map .agency-popup-email a {
    color: #FF6B00;
    text-decoration: none;
    transition: color 0.2s ease;
}

.blocImageTexte__map .agency-popup-phone a:hover,
.blocImageTexte__map .agency-popup-email a:hover {
    color: #202E3B;
    text-decoration: underline;
}

.blocImageTexte--cover .blocImageTexte__media img:not(.leaflet-tile):not(.leaflet-marker-icon):not(.leaflet-marker-shadow) {
    object-fit: cover;
}

.blocImageTexte--contain .blocImageTexte__media img:not(.leaflet-tile):not(.leaflet-marker-icon):not(.leaflet-marker-shadow) {
    object-fit: contain;
}

/* === HAUTEUR ADAPTATIVE === */
.blocImageTexte--adapt .row {
    min-height: 0;
}

.blocImageTexte--adapt .blocImageTexte__media,
.blocImageTexte--adapt .blocImageTexte__media img:not(.leaflet-tile):not(.leaflet-marker-icon):not(.leaflet-marker-shadow) {
    min-height: 0;
    max-height: none;
}

.blocImageTexte--adapt .blocImageTexte__media img:not(.leaflet-tile):not(.leaflet-marker-icon):not(.leaflet-marker-shadow) {
    height: 100%;
}

/* === COLONNE TEXTE === */
.blocImageTexte__content {
    display: flex;
    align-items: center;
}

.blocImageTexte__inner {
    width: 100%;
    padding: 75px 50px;
    display: flex;
    flex-direction: column;
    gap: 25px;
    @media (min-width: 1700px){
        max-width: 70%;
    }
}

/* === POSITION DE L'IMAGE === */
.blocImageTexte--right .blocImageTexte__media {
    order: 2;
}

.blocImageTexte--right .blocImageTexte__content {
    order: 1;
    justify-content: flex-end;
}

.blocImageTexte--right .blocImageTexte__inner {
    margin-left: auto;
    padding-left: 50px;
}

.blocImageTexte--left .blocImageTexte__content {
    justify-content: flex-start;
}

.blocImageTexte--left .blocImageTexte__inner {
    margin-right: auto;
}

/* === TYPOGRAPHIE === */
.blocImageTexte__text {
    font-family: 'Montserrat', sans-serif;
    font-weight: 400;
    line-height: normal;
}

.blocImageTexte__text > *:first-child {
    margin-top: 0;
}

.blocImageTexte__text > *:last-child {
    margin-bottom: 0;
}

.blocImageTexte__text h1,
.blocImageTexte__text h2,
.blocImageTexte__text h3,
.blocImageTexte__text h4,
.blocImageTexte__text h5,
.blocImageTexte__text h6 {
    font-family: 'Montserrat', sans-serif;
    font-weight: 700;
    line-height: normal;
    margin: 0 0 15px;
}

.blocImageTexte__text h2 {
    font-size: 35px;
}

.blocImageTexte__text h2:not(:first-of-type) {
    padding-top: 25px;
}

.blocImageTexte__text h3 {
    font-size: 24px;
}

.blocImageTexte__text h4 {
    font-size: 20px;
}

.blocImageTexte__text p {
    font-size: 14px;
    line-height: normal;
    margin: 0 0 14px;
}

.blocImageTexte__text p:last-child {
    margin-bottom: 0;
}

.blocImageTexte__text strong {
    font-weight: 700;
}

.blocImageTexte__text a {
    text-decoration: underline;
    color: inherit;
}

.blocImageTexte__text ul,
.blocImageTexte__text ol {
    padding-left: 1.2em;
    margin: 0 0 14px;
}

.blocImageTexte__text li {
    margin-bottom: 6px;
}
.blocImageTexte li::marker {
  font-size: 0.6em; /* Réduit la taille de la puce à 60% de celle du texte */
}

/* === LEAD (petit sous-titre avec icône) === */
.blocImageTexte__lead {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    margin: 0;
    font-family: 'Comfortaa', sans-serif!important;
    font-weight: 700;
    font-size: 16px;
    line-height: 1;
}

.blocImageTexte__lead--navy {
    color: #202E3B;
}

.blocImageTexte__lead--orange {
    color: #F05534;
}

.blocImageTexte__lead-icon {
    display: inline-block;
    width: 12px;
    height: auto;
    flex-shrink: 0;
}

/* === THÈMES SELON COULEUR DE FOND === */
.blocImageTexte--dark,
.blocImageTexte--dark .blocImageTexte__text,
.blocImageTexte--dark .blocImageTexte__text * {
    color: #F8F5E2;
}

.blocImageTexte--light,
.blocImageTexte--light .blocImageTexte__text,
.blocImageTexte--light .blocImageTexte__text * {
    color: #202E3B;
}

.blocImageTexte.bg-red .blocImageTexte__lead {
    color: #FFFFFF;
}

.blocImageTexte.bg-red .blocImageTexte__lead-icon {
    filter: invert(1) contrast(31);
}

/* === BOUTON === */
.blocImageTexte__btn {
    align-self: flex-start;
    margin-top: 10px;
}

/* === CONTACTS === */

.blocImageTexte__contacts {
    list-style: none;
    padding: 0;
    margin: 25px 0 0;
    display: flex;
    flex-direction: column;
    gap: 25px;
    opacity: 0;
    transform: translateY(30px);
    transition: opacity 0.8s cubic-bezier(0.23, 1, 0.32, 1), transform 0.8s cubic-bezier(0.23, 1, 0.32, 1);
}
.blocImageTexte__contacts.bit-contacts-visible {
    opacity: 1;
    transform: none;
}


.blocImageTexte__contact {
    display: flex;
    align-items: center;
    gap: 15px;
    opacity: 0;
    transform: translateY(30px);
    transition: opacity 0.7s cubic-bezier(0.23, 1, 0.32, 1), transform 0.7s cubic-bezier(0.23, 1, 0.32, 1);
}
.blocImageTexte__contact.bit-contact-visible {
    opacity: 1;
    transform: none;
}

.blocImageTexte__contact-photo {
    flex-shrink: 0;
    width: 137px;
    aspect-ratio: 1 / 1;
    border-radius: 50%;
    overflow: hidden;
}

.blocImageTexte__contact-photo img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.blocImageTexte__contact-body {
    flex: 1 1 auto;
    display: flex;
    flex-direction: column;
    gap: 10px;
    min-width: 0;
}

.blocImageTexte__contact-identity {
    margin: 0;
    font-family: 'Montserrat', sans-serif;
    font-size: 14px;
    line-height: 1.4;
    display: flex;
    flex-direction: column;
}

.blocImageTexte__contact-name {
    font-weight: 700;
}

.blocImageTexte__contact-role {
    font-weight: 400;
}

.blocImageTexte__contact-btn {
    align-self: flex-start;
    @media (max-width: 991px){
            margin: 0 auto;

    }
}

/* === RESPONSIVE === */
@media (max-width: 1399px) {
    .blocImageTexte__inner {
        padding: 60px 40px;
    }
}

@media (max-width: 991px) {
    .blocImageTexte .row {
        min-height: 0;
    }
    .blocImageTexte__btn {
        margin-left: auto;
        margin-right: auto;
    }


    .blocImageTexte--right .blocImageTexte__inner {
        padding-left: 20px;
    }


    .blocImageTexte--right .blocImageTexte__media,
    .blocImageTexte--left .blocImageTexte__media {
        order: 1;
    }

    .blocImageTexte--right .blocImageTexte__content,
    .blocImageTexte--left .blocImageTexte__content {
        order: 2;
        justify-content: center;
    }

    /* Inversion mobile : texte en haut, image en bas */
    .blocImageTexte--mobile-reverse .blocImageTexte__media {
        order: 2 !important;
    }

    .blocImageTexte--mobile-reverse .blocImageTexte__content {
        order: 1 !important;
    }

    /* Inversion mobile en mode tuiles */
    .blocImageTexte--mobile-reverse .blocImageTexte__tiles {
        order: 2 !important;
    }

    .blocImageTexte__media img:not(.leaflet-tile):not(.leaflet-marker-icon):not(.leaflet-marker-shadow) {
        min-height: 260px;
        max-height: 420px;
    }

    .blocImageTexte__map-container {
        height: 400px;
    }

    .blocImageTexte__map {
        height: 100%;
    }

    .blocImageTexte__inner {
        max-width: 100%;
        margin: 0 auto;
        padding: 50px 30px;
        text-align: center;
    }
    .blocImageTexte__lead{
        display: flex;
        justify-content: center;
    }
    .blocImageTexte__text ul,
    .blocImageTexte__text ol {
        display: inline-block;
        text-align: left;
    }
}

@media (max-width: 575px) {
    .blocImageTexte__inner {
        padding: 40px 20px;
        gap: 20px;
    }

    .blocImageTexte__text h2 {
        font-size: 26px;
    }

    .blocImageTexte__text h3 {
        font-size: 20px;
    }

    .blocImageTexte__contact-photo {
        width: 90px;
    }

    .blocImageTexte__contact {
        gap: 12px;
    }

    /* === CAROUSEL MODE CONTACTS MOBILE === */
    .blocImageTexte__contacts-splide-carousel {
        width: 100%;
        position: relative;
        margin: 25px 0 0;
    }

    .blocImageTexte__contacts-splide-carousel .splide__track {
        overflow: hidden;
    }

    .blocImageTexte__contacts-splide-carousel .splide__list {
        display: flex;
        margin: 0;
        padding: 0;
        list-style: none;
    }

    .blocImageTexte__contacts-splide-carousel .splide__slide {
        flex-shrink: 0;
        width: 100%;
        list-style: none;
        display: flex;
        justify-content: center;
    }

    .blocImageTexte__contacts-splide-carousel .splide__slide .blocImageTexte__contact {
        width: 100%;
        opacity: 1;
        transform: none;
        flex-direction: column;
        align-items: center;
        text-align: center;
    }

    .blocImageTexte__contacts-splide-carousel .splide__slide .blocImageTexte__contact-photo {
        width: 137px;
    }

    .blocImageTexte__contacts-splide-carousel .splide__slide .blocImageTexte__contact-body {
        align-items: center;
    }

    .blocImageTexte__contacts-splide-carousel .splide__slide .blocImageTexte__contact-btn {
        align-self: center;
    }

    .blocImageTexte__contacts-splide-carousel .splide__pagination {
        display: flex;
        justify-content: center;
        align-items: center;
        gap: 10px;
        padding: 20px 0 0;
        margin: 0;
        bottom: 0;
        position: relative;
    }

    .blocImageTexte__contacts-splide-carousel .splide__pagination__page {
        width: 10px;
        height: 10px;
        border-radius: 50%;
        background-color: rgba(0, 0, 0, 0.2);
        border: none;
        cursor: pointer;
        padding: 0;
        transition: all 0.3s ease;
        display: inline-block;
        margin: 0;
    }

    .blocImageTexte__contacts-splide-carousel .splide__pagination__page.is-active {
        background-color: #202E3B;
        transform: scale(1.2);
    }

    /* === CAROUSEL MODE TUILES MOBILE === */
    .blocImageTexte__tiles {
        position: relative;
        display: flex;
        flex-direction: column;
    }

    .blocImageTexte__tiles-carousel-wrapper {
        position: relative;
        width: 100%;
        overflow: hidden;
        order: 1;
    }

    /* Conteneur Splide dédié */
    .blocImageTexte__splide-carousel {
        width: 100%;
        position: relative;
    }

    .blocImageTexte__splide-carousel .splide__track {
        overflow: hidden;
    }

    .blocImageTexte__splide-carousel .splide__list {
        display: flex;
        margin: 0;
        padding: 0;
        list-style: none;
    }

    .blocImageTexte__splide-carousel .splide__slide {
        flex-shrink: 0;
        width: 100%;
        list-style: none;
    }

    .blocImageTexte__splide-carousel .splide__slide .blocImageTexte__tile {
        width: 100%;
        min-height: 320px;
    }

    .blocImageTexte__splide-carousel .splide__slide .blocImageTexte__tile-inner {
        padding: 30px 20px;
        font-size: 14px;
        text-align: center;
        display: flex;
        flex-direction: column;
        justify-content: center;
        align-items: center;
        gap: 5px;
    }
    
    .blocImageTexte__splide-carousel .splide__slide .blocImageTexte__tile-inner p {
        margin: 0;
        line-height: 1.4;
    }
    

    /* Pagination Splide */
    .blocImageTexte__splide-carousel .splide__pagination {
        display: flex;
        justify-content: center;
        align-items: center;
        gap: 10px;
        padding: 20px 0;
        margin: 0;
        bottom: 0;
        position: relative;
    }

    .blocImageTexte__splide-carousel .splide__pagination__page {
        width: 10px;
        height: 10px;
        border-radius: 50%;
        background-color: rgba(0, 0, 0, 0.2);
        border: none;
        cursor: pointer;
        padding: 0;
        transition: all 0.3s ease;
        display: inline-block;
        margin: 0;
    }

    .blocImageTexte__splide-carousel .splide__pagination__page.is-active {
        background-color: #F05534;
        transform: scale(1.2);
    }

    /* Container pour les images en full width */
    .blocImageTexte__tiles-images-fullwidth {
        order: 2;
        width: 100vw;
        margin-left: calc(-50vw + 50%);
        display: flex;
        flex-direction: column;
        gap: 0;
    }

    .blocImageTexte__tiles-images-fullwidth img {
        width: 100%;
        height: auto;
        display: block;
        object-fit: cover;
    }

    /* Wrappers pour le carousel mobile - transparent au-dessus de 575px */
    .blocImageTexte__tiles-carousel-wrapper {
        width: 80%!important;
        margin-left: auto;
        margin-right: auto;
    }
}

/* === MODE TUILES === */
.blocImageTexte__tiles {
    position: relative;
    /* padding: 0; */
    overflow: hidden;
    min-height: 320px;
}

/* Wrappers pour le carousel mobile - transparent au-dessus de 575px */
.blocImageTexte__tiles-carousel-wrapper {
    width: 100%;
}

.blocImageTexte__tiles-images-fullwidth {
    display: none;
}

/* Cacher les dots Owl au-dessus de 575px */
.blocImageTexte__tiles .owl-dots {
    display: none;
}

.blocImageTexte__tiles .row {
    height: 100%;
}

.blocImageTexte__tile-wrapper {
    padding: 0;
    display: flex;
}

.blocImageTexte__tile {
    position: relative;
    width: 100%;
    aspect-ratio: 1 / 1;
    overflow: hidden;
    display: flex;
    align-items: center;
    justify-content: center;
}

.blocImageTexte__tile-inner {
    width: 100%;
    padding: 20%;
    color: #f8f5e2;
    font-size: 25px;
    line-height: 1.3;
    font-weight: 400;
    font-family: 'Montserrat', sans-serif;
}

.blocImageTexte__tile-inner p {
    margin: 0;
    font-size: inherit;
    font-weight: inherit;
    line-height: inherit;
}

.blocImageTexte__tile-inner p + p {
    margin-top: 10px;
}

.blocImageTexte__tile-inner strong,
.blocImageTexte__tile-inner b {
    font-weight: 700;
    font-size: 35px;
    display: block;
    line-height: 1.1;
}

/* Classe .h3 pour les grands textes mis en avant (45px bold) */
.blocImageTexte__tile-inner .h3, 
.blocImageTexte__tile-inner strong {
    display: block !important;
    width: 100%;
    /* margin: 0 0 10px !important; */
    padding: 0 !important;
    line-height: 1.1 !important;
    font-weight: 700 !important;
    @media (max-width: 1849px){
        font-size: 25px !important;
    }
    @media (min-width: 1850px){
        font-size: 35px !important;
        padding-top: 5px !important;
        padding-bottom: 5px !important;
    }
}

.blocImageTexte__tile-inner .h3:last-child {
    margin-bottom: 0 !important;
}

/* Variantes de couleurs */
.blocImageTexte__tile--orange    { background-color: #FC5B38; }
.blocImageTexte__tile--red       { background-color: #C53004; }
.blocImageTexte__tile--duckblue  { background-color: #00A99F; }
.blocImageTexte__tile--navy      { background-color: #202E3B; }
.blocImageTexte__tile--green     { background-color: #3BC37F; }

.blocImageTexte__tile--white {
    background-color: #ffffff;
}
.blocImageTexte__tile--white .blocImageTexte__tile-inner,
.blocImageTexte__tile--white .blocImageTexte__tile-inner * {
    color: #202E3B;
}

.blocImageTexte__tile--sand {
    background-color: #F8F5E2;
}
.blocImageTexte__tile--sand .blocImageTexte__tile-inner,
.blocImageTexte__tile--sand .blocImageTexte__tile-inner * {
    color: #202E3B;
}

/* Tuile image */
.blocImageTexte__tile--image {
    background-color: #F8F5E2;
}

.blocImageTexte__tile-img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

/* Responsive mode tuiles */
@media (max-width: 1399px) {
    .blocImageTexte__tile-inner {
        padding: 35px;
        font-size: 20px;
    }
    /* .blocImageTexte__tile-inner strong,
    .blocImageTexte__tile-inner b,
    .blocImageTexte__tile-inner .h3 {
        font-size: 35px !important;
    } */
}

@media (max-width: 991px) {
    .blocImageTexte__tiles {
        min-height: 0;
    }

    .blocImageTexte__tile-inner {
        padding: 25px;
        font-size: 18px;
    }
    
    .blocImageTexte__tile-inner strong,
    .blocImageTexte__tile-inner b,
    .blocImageTexte__tile-inner .h3 {
        font-size: 28px !important;
    }
}

@media (max-width: 650px){
    .blocImageTexte__tile-inner{
        font-size: 20px!important;
        .h3{
            font-size: 20px!important;
        }
    }
}

/*Custom spécifique*/
.blocImageTexte.custom-map{
    .blocImageTexte__media {
        background-color: #fcf9ec;
        position: relative;
        display: flex;
        align-items: center;

        @media (min-width: 992px){
            img {
                -webkit-mask-image: linear-gradient(
                    to bottom,
                    transparent 0,
                    #000 28px,
                    #000 calc(100% - 28px),
                    transparent 100%
                );
                mask-image: linear-gradient(
                    to bottom,
                    transparent 0,
                    #000 28px,
                    #000 calc(100% - 28px),
                    transparent 100%
                );
                -webkit-mask-size: 100% 100%;
                mask-size: 100% 100%;
                -webkit-mask-repeat: no-repeat;
                mask-repeat: no-repeat;
            }
        }

        @media (max-width: 1450px){
            img{
                height: fit-content!important;
                object-fit: contain!important;
            }
        }
        @media (max-width: 992px){
            img{
                object-position: right bottom!important;
            }
        }
    }
}