/*
Wireframe: 26
Version: 2.0
Update: 2023.03.16
*/
/*--------------------------------------------------
>> TABLE OF CONTENTS:
----------------------------------------------------
# Fonts
# General
# Navigation
    ## Superfish
    ## Mobile navigation
--------------------------------------------------*/
/* ============================================================================
   Accommodation
   ============================================================================ */

   #accommodation-search-form { margin-bottom: 70px; }
	.accommodation-rooms-list { display: none; }
.room-features { display: grid;
    gap: 10px;
    grid-template-columns: repeat(3, 1fr);
    margin-bottom: 30px; }
.accommodation-available-title { display: none; }

/* ═══════════════════════════════════════
   SEARCH BAR
   ═══════════════════════════════════════ */
section.content .row.accommodation-header-navigation-row .dropdown-menu li {
    padding: 0;
    background: none;
}
section.content .row.accommodation-header-navigation-row {
	margin-bottom: 30px !important;
	align-items: center;
	padding: 0 20px;
	border-radius: 10px;
	background: rgba(0, 47, 67, 0.2);
	min-height: 54px;
}
section.content .row.accommodation-header-navigation-row .col-12.accommodation-title-available-col {
	width: auto;
	margin-top: 0;
}
section.content .row.accommodation-header-navigation-row .col-auto {
	margin-top: 0;
}
section.content .row.accommodation-header-navigation-row h5 {
	color: var(--bs-tertiary-color);
	font-family: var(--bs-titles-font-family);
	font-size: 40px;
	font-weight: 400;
	line-height: normal;
	padding-left: 42px;
	margin: 0;
	background: url(/smarty/wireframe20/media/images/icon-gite.svg) no-repeat left center;
}
.col-md-auto.accommodation-currency-col {
	/*width: 11px;
	height: 21px;*/
	margin-right: 20px;
	/*background: url(/smarty/wireframe20/media/images/fleche-droite.svg) no-repeat center;*/
	margin-top: 0;
}
.col-md-auto.accommodation-currency-col select {
 	 background: transparent !important;
    border: 0px;
    outline: none;
}

.accommodation-header-navigation-row {
    width: 100%;
    margin-left: 0;
    margin-right: 0;
    display: flex;
    align-items: center;
}

.accommodation-header-empty-col {
    display: none;
}

.accommodation-currency-col {
    flex: 0 0 auto;
}

.accommodation-account-col {
    margin-left: auto;
    flex: 0 0 auto;
}

.accommodation-cart-col {
    flex: 0 0 auto;
}

/* Mobile */
@media (max-width: 767.98px) {
    .accommodation-header-navigation-row {
        flex-wrap: wrap;
        gap: 0.5rem;
    }

    .accommodation-account-col {
        margin-left: auto;
    }
}

section.content .row.accommodation-header-navigation-row .btn-primary {
	position: relative;
	display: inline-flex;
	color: var(--bs-body-color);
	font-family: var(--bs-body-font-family);
	font-size: 14px;
	font-style: normal;
	font-weight: 700;
	line-height: normal;
	background: no-repeat;
	padding: 0;
	gap: 10px;
	align-items: center;
	margin-right: 21px;
}
section.content .row.accommodation-header-navigation-row .btn-primary:hover {
	color: var(--bs-btn-bg);
}
section.content .row.accommodation-header-navigation-row .btn-primary i {
	font-weight: 300;
	color: var(--bs-tertiary-color);
	font-size: 18px;
}

.room-content-row,
.accommodation-content-row {
    --acc-radius: 16px;
    --acc-radius-sm: 10px;
    --acc-gap: clamp(1.25rem, 2.5vw, 2.25rem);
    --acc-surface: var(--bs-body-bg, #fff);
    --acc-accent: var(--bs-primary, #0d6efd);
    /* Neutres dérivés du texte du thème : teintés par la charte, jamais gris pur. */
    --acc-line: color-mix(in srgb, var(--bs-body-color, #212529) 12%, transparent);
    --acc-line-soft: color-mix(in srgb, var(--bs-body-color, #212529) 7%, transparent);
    --acc-tint: color-mix(in srgb, #212529 7%, transparent);
    --acc-muted: color-mix(in srgb, var(--bs-body-color, #212529) 62%, transparent);
    --acc-shadow: 0 1px 2px rgba(0, 0, 0, .05), 0 8px 24px -12px rgba(0, 0, 0, .18);
}

/* Repli pour les navigateurs sans color-mix() : neutres fixes discrets. */
@supports not (color: color-mix(in srgb, red 50%, transparent)) {
    .room-content-row,
    .accommodation-content-row {
        --acc-line: rgba(0, 0, 0, .12);
        --acc-line-soft: rgba(0, 0, 0, .07);
        --acc-tint: rgba(13, 110, 253, .07);
        --acc-muted: rgba(0, 0, 0, .62);
    }
}

/* ==========================================================================
   1. ROOM — grille : photos + panneau de réservation côte à côte
   ========================================================================== */

.room-content-row {
    display: grid;
    gap: var(--acc-gap);
    grid-template-columns: minmax(0, 1.7fr) minmax(320px, 0.85fr);
    grid-template-areas:
        "title    title"
        "media    booking"
        "roomdesc booking"
        "accdesc  booking"
        "policies policies";
    align-items: start;
    /* Neutralise les marges négatives de .row (la gouttière est reprise par `gap`). */
    margin: 0;
}

/* Les enfants sont des `.col-*` : on désarme largeurs et gouttières Bootstrap,
   sinon `width: 50%` (.col-md-6) s'appliquerait encore à l'item de grille. */
.room-content-row > * {
    width: auto;
    max-width: none;
    flex: initial;
    padding-left: 0;
    padding-right: 0;
    min-width: 0;
}

.room-content-row > .accommodation-detail-img { grid-area: media; }
.room-content-row > .accommodation-room-descr-col { grid-area: roomdesc; }
.room-content-row > .accommodation-accommodation-descr-col { grid-area: accdesc; }
.room-content-row > .accommodation-room-availability-col { grid-area: booking; }
.room-content-row > .accommodation-room-policies-col { grid-area: policies; }

.room-content-row > h1 {
    grid-area: title;
    font-size: clamp(1.6rem, 3.5vw, 2.4rem);
    line-height: 1.15;
    letter-spacing: -.02em;
    text-wrap: balance;
    margin: 0;
}

/* Sous 992 px : une seule colonne, la réservation remonte juste après les photos. */
@media (max-width: 991.98px) {
    .room-content-row {
        grid-template-columns: minmax(0, 1fr);
        grid-template-areas:
            "title"
            "media"
            "booking"
            "roomdesc"
            "accdesc"
            "policies";
    }
}

/* ==========================================================================
   2. ROOM — slider photos
   ========================================================================== */

.room-content-row .carousel-room-img {
    height: auto;
    aspect-ratio: 4 / 3;
    border-radius: var(--acc-radius);
    overflow: hidden;
    margin-bottom: .6rem;
    background: var(--acc-line-soft);
}

.room-content-row .carousel-room-img .carousel-inner,
.room-content-row .carousel-room-img .carousel-item,
.room-content-row .carousel-room-img .carousel-item > a {
    height: 100%;
}

.room-content-row .carousel-room-img img {
    height: 100% !important;
    width: 100%;
    object-fit: cover;
}

/* Contrôles : pastilles sur fond translucide plutôt que les chevrons nus. */
.room-content-row .carousel-room-img .carousel-control-prev,
.room-content-row .carousel-room-img .carousel-control-next {
    width: 44px;
    height: 44px;
    top: 50%;
    transform: translateY(-50%);
    margin-inline: .6rem;
    border-radius: 50%;
    background: rgba(255, 255, 255, .92);
    opacity: 0;
    transition: opacity .18s ease;
    box-shadow: 0 2px 10px rgba(0, 0, 0, .18);
}

.room-content-row .carousel-room-img:hover .carousel-control-prev,
.room-content-row .carousel-room-img:hover .carousel-control-next,
.room-content-row .carousel-room-img .carousel-control-prev:focus-visible,
.room-content-row .carousel-room-img .carousel-control-next:focus-visible {
    opacity: 1;
}

.room-content-row .carousel-room-img .carousel-control-prev-icon,
.room-content-row .carousel-room-img .carousel-control-next-icon {
    filter: invert(1);
    width: 1rem;
    height: 1rem;
}

/* Bande de vignettes : défilement horizontal propre, vignette active cerclée. */
.room-content-row .thumbs-auto-row { height: auto; }

.room-content-row .carousel-thumbnails-row {
    overflow-x: auto;
    overflow-y: hidden;
    gap: .5rem;
    padding-bottom: .3rem;
    scrollbar-width: thin;
    scroll-snap-type: x proximity;
}

.room-content-row .carousel-thumbnails-col { scroll-snap-align: start; }

.room-content-row .carousel-thumbnails-col img {
    margin-right: 0;
    width: 74px;
    height: 58px;
    border: 0;
    border-radius: var(--acc-radius-sm);
    cursor: pointer;
    opacity: .62;
    transition: opacity .18s ease, outline-color .18s ease;
    outline: 2px solid transparent;
    outline-offset: 2px;
}

.room-content-row .carousel-thumbnails-col img:hover { opacity: 1; }

.room-content-row .carousel-thumbnails-col img.active {
    opacity: 1;
    outline-color: #212529;
}

/* ==========================================================================
   3. ROOM — panneau de réservation (collant au défilement)
   ========================================================================== */

.accommodation-room-availability-col {
    position: sticky;
    top: 1.25rem;
    align-self: start;
    background: var(--acc-surface);
    border: 1px solid var(--acc-line);
    border-radius: var(--acc-radius);
    padding: 1.25rem;
    box-shadow: var(--acc-shadow);
}

@media (max-width: 991.98px) {
    .accommodation-room-availability-col { position: static; }
}

.accommodation-room-availability-col > h5 {
    font-size: 1.05rem;
    font-weight: 600;
    letter-spacing: -.01em;
    margin: 0 0 1rem;
    padding-bottom: .8rem;
    border-bottom: 1px solid var(--acc-line-soft);
}

#room_date_button,
#room_people {
    border-radius: var(--acc-radius-sm);
    border-color: var(--acc-line);
    padding: .7rem .9rem;
    font-weight: 500;
    background-color: var(--acc-surface);
}

#room_date_button:focus,
#room_people:focus {
    border-color: #212529;
    box-shadow: 0 0 0 3px var(--acc-tint);
}

#room_date_button i,
#room_people i { color: #212529; margin-right: .45rem; }

#accommodation-search-calendar .vc-grid { flex-wrap: nowrap !important; }

#room-booking-form .accommodation-search-form-row { display: block; }
#room-availability-calendar { max-width: 100%; }

.accommodation-number-people-col .dropdown-menu {
    min-width: min(320px, 92vw);
    padding: .35rem;
    border: 1px solid var(--acc-line);
    border-radius: var(--acc-radius);
    box-shadow: var(--acc-shadow);
}

.accommodation-number-people-row { margin: 0; align-items: center; }
.accommodation-number-people-row .col-form-label { font-weight: 500; padding: 0; }
.accommodation-number-people-row .input-group { width: auto; }

.accommodation-number-people-row .input-group .btn-link {
    color: #212529;
    text-decoration: none;
    width: 36px;
}

.accommodation-number-people-row .input-group .form-control {
    max-width: 56px;
    border: 0;
    font-weight: 600;
    background: transparent;
}

/* ==========================================================================
   4. ROOM — résultats de disponibilité
   ========================================================================== */

#availability-results {
    margin-top: 1rem;
    padding-top: 1rem;
    border-top: 1px solid var(--acc-line-soft);
}

#availability-results > h5 {
    font-size: .95rem;
    display: flex;
    align-items: center;
    gap: .4rem;
}

#availability-results > h5 i { color: var(--bs-success, #198754); }

.pricing-info > div { margin-bottom: .35rem; }

#auto-add-features-section,
#available-features-section {
    padding-top: .85rem;
    margin-top: .85rem;
    border-top: 1px dashed var(--acc-line-soft);
}

#auto-add-features-list,
#available-features-list {
    display: flex;
    flex-direction: column;
    gap: .5rem;
}

/* Service inclus : ligne discrète, teintée. */
.auto-add-features-item {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: .6rem;
    background: var(--acc-tint);
    border-radius: var(--acc-radius-sm);
    padding: .5rem .7rem;
}

.auto-add-features-item i { color: var(--bs-success, #198754); }

/* Service optionnel : photo | libellé + prix | bouton. */
.available-feature {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    align-items: center;
    gap: .75rem;
    border: 1px solid var(--acc-line-soft);
    border-radius: var(--acc-radius-sm);
    padding: .6rem .7rem;
    transition: border-color .18s ease, background-color .18s ease;
}

.available-feature:hover { border-color: var(--acc-line); background: var(--acc-line-soft); }

.available-feature .feature-photo { border-radius: 8px; display: block; }
.available-feature .feature-info { min-width: 0; }
.available-feature .feature-name { line-height: 1.3; }
.available-feature .feature-action .btn { border-radius: 999px; white-space: nowrap; }

.price-badge {
    background: var(--acc-tint);
    color: #212529;
    font-weight: 600;
    border-radius: 999px;
    padding: .25rem .6rem;
}

/* Total : le point d'ancrage visuel du panneau. */
.pricing-info h5 {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: .5rem;
    font-size: .95rem;
    font-weight: 500;
    margin: .9rem 0 0;
    padding-top: .9rem;
    border-top: 1px solid var(--acc-line);
}

#price-total {
    font-size: 1.6rem;
    font-weight: 700;
    letter-spacing: -.02em;
    color: #212529;
    font-variant-numeric: tabular-nums;
}

#price-original small { color: var(--acc-muted); }

#deposit-section,
#tourist-tax-section {
    font-size: .9rem;
    color: var(--acc-muted);
    font-variant-numeric: tabular-nums;
}

#tourist-tax-payment-notice { color: var(--acc-muted); }

.room-discount-badge .badge { border-radius: 999px; padding: .4rem .7rem; }

.booking-btn {
    width: 100%;
    margin-top: 1rem;
    padding: .8rem 1rem;
    border-radius: var(--acc-radius-sm);
    font-weight: 600;
    font-size: 1rem;
}

#availability-error { border-radius: var(--acc-radius-sm); gap: .4rem; }
#availability-error i { font-size: 1.3rem; }

/* ==========================================================================
   5. ROOM — contenu éditorial : description, occupation, équipements
   ========================================================================== */

.room-description {
    font-size: 1.02rem;
    line-height: 1.7;
    max-width: 68ch;
}

.accommodation-room-descr-col > h5,
.accommodation-accommodation-descr-col > h5 {
    font-size: .78rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: .09em;
    color: var(--acc-muted);
    margin: 0 0 .8rem;
}

/* Occupation : pastilles chiffrées plutôt qu'une phrase en ligne. */
.room-occupancy {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: .2rem;
    padding: .9rem 0rem;
    background: var(--acc-line-soft);
    border-radius: var(--acc-radius-sm);
}

.room-occupancy h5 {
    flex: 1 1 100%;
    font-size: .78rem;
    text-transform: uppercase;
    letter-spacing: .09em;
    color: var(--acc-muted);
    font-weight: 600;
}

.room-occupancy .adults-count,
.room-occupancy .children-count {
    display: inline-grid;
    place-items: center;
    min-width: 1.8rem;
    height: 1.8rem;
    padding: 0 .4rem;
    border-radius: 999px;
    background: #212529;
    color: #fff;
    font-weight: 700;
    font-variant-numeric: tabular-nums;
}

/* Équipements : grille de cartes, chambre et hébergement traités pareil. */
.room-features-preview,
.accommodation-features-preview,
.room-bed-features {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(min(210px, 100%), 1fr));
    gap: .7rem;
}

.room-features-preview .feature-item,
.accommodation-features-preview .feature-item,
.room-bed-features .bed-feature-item {
    margin-bottom: 0 !important;
    border: 1px solid var(--acc-line-soft);
    border-radius: var(--acc-radius-sm);
    /*padding: .8rem .9rem;*/
    background: var(--acc-surface);
    transition: border-color .18s ease;
}

.room-features-preview .feature-item:hover,
.accommodation-features-preview .feature-item:hover { border-color: var(--acc-line); }

.feature-room-title,
.feature-accommodation-title {
    display: flex;
    align-items: center;
    gap: .55rem;
    font-size: .95rem;
    line-height: 1.3;
}

.feature-room-title img,
.feature-accommodation-title img {
    width: 34px;
    height: 34px;
    object-fit: contain;
    flex: none;
}

.feature-room-title i,
.feature-accommodation-title i {
    color: #212529;
    font-size: 1.1rem;
    flex: none;
}

.feature-options {
    display: flex;
    flex-wrap: wrap;
    gap: .3rem;
    margin-top: .55rem;
}

.feature-option {
    font-size: .8rem;
    color: var(--acc-muted);
    background: var(--acc-line-soft);
    border-radius: 999px;
    padding: .15rem .55rem;
}

.room-bed-features .bed-feature-item {
    font-size: .92rem;
    font-variant-numeric: tabular-nums;
}

/* Horaires d'arrivée / départ : paires libellé-valeur alignées. */
.room-checkIn {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 1rem;
    padding: .6rem 0;
    border-bottom: 1px solid var(--acc-line-soft);
    font-variant-numeric: tabular-nums;
    font-weight: 600;
}

.room-checkIn span {
    font-weight: 400;
    color: var(--acc-muted);
    font-size: .9rem;
}

.networks { margin-top: 1.25rem; }

.accommodation-room-policies-col {
    padding-top: 1.25rem;
    border-top: 1px solid var(--acc-line-soft);
}

.accommodation-room-policies-col .btn,
.accommodation-content-policies-col .btn {
    border-radius: 999px;
    padding: .55rem 1.3rem;
}

/* ==========================================================================
   6. ACCOMMODATION — description + galerie, puis équipements
   ========================================================================== */

.accommodation-content-row {
    display: grid;
    gap: var(--acc-gap);
    grid-template-columns: minmax(0, 1.5fr) minmax(300px, 1fr);
    grid-template-areas:
        "descr   photos"
        "features features"
        "policies policies";
    align-items: start;
    margin: 0;
}

.accommodation-content-row > * {
    width: auto;
    max-width: none;
    flex: initial;
    padding-left: 0;
    padding-right: 0;
    min-width: 0;
}

.accommodation-content-row > .accommodation-description-col { grid-area: descr; }
.accommodation-content-row > .accommodation-photos-col { grid-area: photos; }
.accommodation-content-row > .accommodation-features-col { grid-area: features; }
.accommodation-content-row > .accommodation-content-policies-col { grid-area: policies; }

@media (max-width: 767.98px) {
    .accommodation-content-row {
        grid-template-columns: minmax(0, 1fr);
        grid-template-areas:
            "photos"
            "descr"
            "features"
            "policies";
    }
}

.accommodation-description-col {
    font-size: 1.02rem;
    line-height: 1.7;
    max-width: 70ch;
}

.accommodation-description-col :is(h1, h2, h3, h4) {
    letter-spacing: -.015em;
    text-wrap: balance;
}

.accommodation-description-col > :first-child { margin-top: 0; }

.swiperAccommodationPhotos {
    border-radius: var(--acc-radius);
    overflow: hidden;
    box-shadow: var(--acc-shadow);
}

.swiperAccommodationPhotos .swiper-slide { aspect-ratio: 4 / 3; }

.swiperAccommodationPhotos .swiper-slide img {
    height: 100%;
    object-fit: cover;
    display: block;
}

.swiperAccommodationPhotos .swiper-pagination-bullet-active { background: #212529; }

/* Les .feature-item sont ici enfants directs de la colonne : on grille la colonne
   elle-même, le titre occupant toute la largeur. */
.accommodation-features-col {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(min(240px, 100%), 1fr));
    gap: .7rem;
    padding-top: 1.5rem;
    border-top: 1px solid var(--acc-line-soft);
}

.accommodation-features-col > h5 {
    grid-column: 1 / -1;
    font-size: .78rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: .09em;
    color: var(--acc-muted);
    margin: 0 0 1rem;
}

.accommodation-features-col > .feature-item {
    margin-bottom: 0 !important;
    border: 1px solid var(--acc-line-soft);
    border-radius: var(--acc-radius-sm);
    padding: .9rem 1rem;
    background: var(--acc-surface);
}

.accommodation-features-col .feature-title {
    display: flex;
    align-items: center;
    gap: .55rem;
    font-size: .98rem;
    margin: 0;
    line-height: 1.3;
}

.accommodation-features-col .feature-title img {
    width: 34px;
    height: 34px;
    object-fit: contain;
    flex: none;
}

.accommodation-features-col .feature-options ul {
    display: flex;
    flex-wrap: wrap;
    gap: .3rem;
}

.accommodation-features-col .feature-options li {
    margin-bottom: 0 !important;
    font-size: .8rem;
    color: var(--acc-muted);
    background: var(--acc-line-soft);
    border-radius: 999px;
    padding: .15rem .6rem;
}

.accommodation-features-col .feature-options li i { display: none; }

.accommodation-content-policies-col { padding-top: .5rem; }

/* ==========================================================================
   7. Modale des conditions
   ========================================================================== */

#accommodationPolicies .modal-dialog { max-width: 720px; }
#accommodationPolicies .modal-content { border: 0; border-radius: var(--acc-radius); }
#accommodationPolicies .modal-header { border-bottom: 1px solid rgba(0, 0, 0, .08); padding: 1.1rem 1.3rem; }
#accommodationPolicies .modal-body { padding: 1.3rem; line-height: 1.7; }

/* ==========================================================================
   8. Accessibilité et confort
   ========================================================================== */

.room-content-row :focus-visible,
.accommodation-content-row :focus-visible {
    outline: 2px solid #212529;
    outline-offset: 2px;
}

@media (prefers-reduced-motion: reduce) {
    .room-content-row *,
    .accommodation-content-row * {
        transition: none !important;
        animation: none !important;
        scroll-behavior: auto !important;
    }
}

@media print {
    .accommodation-room-availability-col { position: static; box-shadow: none; }
    .room-content-row .carousel-control-prev,
    .room-content-row .carousel-control-next { display: none; }
}







/*--------------------------------------------------
# Fonts
--------------------------------------------------*/

@font-face {
    font-family: 'Plus Jakarta Sans';
    src: url('../fonts/PlusJakartaSans-Light.woff2') format('woff2'),
        url('../fonts/PlusJakartaSans-Light.woff') format('woff');
    font-weight: 300;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: 'Plus Jakarta Sans';
    src: url('../fonts/PlusJakartaSans-Regular.woff2') format('woff2'),
        url('../fonts/PlusJakartaSans-Regular.woff') format('woff');
    font-weight: normal;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: 'Playfair Display';
    src: url('../fonts/PlayfairDisplay-Regular.woff2') format('woff2'),
        url('../fonts/PlayfairDisplay-Regular.woff') format('woff');
    font-weight: normal;
    font-style: normal;
    font-display: swap;
}




/*--------------------------------------------------
# General
--------------------------------------------------*/
:root{
--bs-body-color:#565555;
--bs-body-bg:#ffffff;
--bs-primary-color:#171717;
--bs-secondary-color:#111010;
--dark-color:#000000;
--light-color:#F5F2EB;
--bs-color-gray:#838c85;
--bs-btn-padding-x:20px;
--bs-btn-padding-y:10px;
--border-color:#DADADA;
--bs-nav-link-colors:#19191a;
--terra:#b98a76;
--bs-body-font-family:'Plus Jakarta Sans';
--bs-titles-font-family:'Playfair Display';
--bs-body-font-weight:300;
--bs-body-line-height:24px;
--bs-body-font-size:15px;
--bs-nav-link-font-size:15px;
--bs-nav-link-font-weight:500;
--bs-nav-link-padding-y:10px;
--bs-nav-link-padding-x:0;
--bs-navbar-nav-link-padding-x:0;
--bs-dropdown-zindex:99;
--bs-dropdown-min-width:200px;
--bs-dropdown-padding-x:20px;
--bs-dropdown-padding-y:15px;
--bs-dropdown-font-size:1em;
--bs-dropdown-padding-y:5px;
--bs-dropdown-font-size:1em;
--bs-border-radius: 10px!important;
}

.btn-primary {
    --bs-btn-color: #fff;
    --bs-btn-bg: #000000;
    --bs-btn-hover-color: #fff;
    --bs-btn-hover-bg: #565555;
    --bs-btn-focus-shadow-rgb: 49,132,253;
    --bs-btn-active-color: #fff;
    --bs-btn-active-bg: #565555;
    --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
    --bs-btn-disabled-color: #fff;
    --bs-btn-disabled-bg: #333333;
    --bs-btn-disabled-border-color: #333333;
    border-radius: 0;
    border: none;
}
.btn-primary:hover {
    background: var(--bs-btn-hover-bg);

}
:target {
    scroll-margin-top: 100px; /* Ajuste selon la hauteur de ton menu */
}
.box-light, .box-border-left, .box-border-right {
    padding: 20px;
    margin: 0 0 20px;
    border-radius: 5px;
    background: var(--light-color);
}

.box-border-left {
    border-left: 7px solid var(--bs-secondary-color);
}
.box-border-right {
    border-right: 7px solid var(--bs-secondary-color);
}

.box-dark {
    padding: 20px;
    background: var(--bs-primary-color);
    color: var(--bs-white);
    border-radius: 5px;
}
.box-dark a {
    color: var(--bs-body-bg) !important;
}
.container {
	max-width: 1170px;
}

.box-light.vCard .tel.work a{
      padding-bottom: 10px;
}
a {
    color: var(--bs-body-color);
    text-decoration: underline;
    transition: all .4s;
}
a:active, a:hover, a:focus {
    color: #888;
    text-decoration: none;
}
h1, h2, h3, h4, h5, h6,
.h1, .h2, .h3, .h4, .h5, .h6 {
  	position: relative;
  	font-family: var(--bs-titles-font-family);
  	line-height: 1.2em;
  	font-weight: 400;
  	color: var(--bs-primary-color);
  	margin: 0 0 20px;
  	text-transform: uppercase;
}
h1, .h1 {
    font-size: 55px;
}
h2, .h2 {
    font-size: 44px;
}
h3, .h3 {
    font-size: 30px;
}
h4, .h4 {
    font-size: 27px;
}
h5, .h5 {
    font-size: 24px;
}
h6, .h6 {
    font-size: 20px;
}

/* Floating Icons */
.floating {
    top: 41.4%;
    z-index: 1000;
    animation: slideRight 3.5s forwards;
}
.floating .networks_linking {
    display: flex;
    flex-direction: column;
}
.floating > div > a {
    width: 52px;
    height: 52px;
    background: var(--bs-secondary-color);
    color: var(--dark-color);
    display: flex;
    align-items: center;
    justify-content: center;
    text-decoration: none;
    transition: all 0.3s ease;
    font-size: 14px;
    border: 0;
    line-height: 1em;
    margin-bottom: 5px;
    border-radius: 3px 0 0 3px;
  box-shadow: 0 0 5px #0000006b , 0 0 5px #0000006b;
}
.floating > div > a:hover {
    animation: none;
    border-radius: 8px 0 0 8px;
    background: var(--bs-secondary-color);
}

.floating .networks_linking a.networks.networks_google {
    order: 3;
    background: var(--bs-tertiary-color) !important;
    color: var(--bs-white) !important;
}
.floating .networks_linking a.networks.networks_instagram {
    background: var(--bs-white) !important;
  color: var(--bs-body-color) !important;
  
}

/*--------------------------------------------------
--------------------------------------------------*/

.container-fluid {
    max-width: 1350px;
    margin: 0 auto;
    padding: 0 15px;
}
header.header-top .container-fluid {
    max-width: 1350px;
}
div#logo {
    z-index: 10;
    padding-top: 0;
}
div#logo img{
  	max-width:100%;
  	width:auto;
  min-width: 300px;
}
/*************/
.social .networks_linking {
    display: flex;
    gap: 10px;
}
.networks_linking a {
    font-size: 14px;
    color: var(--bs-white);
    width: 50px;
    height: 50px;
    line-height: 50px;
    vertical-align: top;
    display: inline-block;
    margin: 0;
    text-align: center;
    position: relative;
    border-radius: 50%;
    border: 1px solid var(--bs-primary-color);
    background: var(--bs-primary-color);
    outline: none;
}
.social .networks_linking a.networks.networks_google {
    order: 3;
}

.networks_linking a:hover {
    transition: 0.3s all;
    background: transparent;
    -webkit-animation: rotate-center 0.6s ease-in-out both;
    animation: rotate-center 0.6s ease-in-out both;
    color: var(--bs-primary-color) !important;
}

.fa-facebook::before {
    content: "\f39e" !important;
    
}

/****/
header.header-top .grid-top .bloc-nav ul.level-0.navbar-nav.sf-menu {
    margin: 0 auto;
}
.bloc-nav .navbar .nav-item.dropdown {
    padding-right: 24px;
}
.navbar li a.nav-link {
    position: relative;
    text-decoration: none;
    color: var(--bs-white);
    font-family: var(--bs-body-font-family);
    letter-spacing: 0;
    padding: 5px 0 !important;
    font-size: 15px;
    font-style: normal;
    font-weight: 400;
    line-height: normal;
    text-transform: uppercase;
}
.bloc-nav .navbar li:first-child a {
    padding-left: 0;
 
}
header .level-0.sf-menu > li > a.nav-link:before {
    position: absolute;
    bottom: 0px;
    left: 50%;
    width: 0;
    height: 1px;
    content: "";
    background: var(--bs-white);
    transition: width 0.3s ease, left 0.3s ease;
    transform: translateX(-50%);
    pointer-events: none;
}

header .sf-menu > li a.nav-link:hover:before,
header .sf-menu > li.active > a.nav-link:before,
header .sf-menu > li.selected > a.nav-link:before {
    width: 100%;
}
a#ligne {
    pointer-events: none;
}
ul.dropdown-menu.level-1.submenu li.selected:first-child .nav-link, ul.dropdown-menu.level-1.submenu li:first-child a.nav-link:hover{
    
    background:none!important;
}

.bloc-nav .navbar li {
    margin: 0 25px;
    position: relative;
}

.bloc-nav .navbar li span.dropdown-toggle {
    position: absolute;
    right: 0;
    color: var(--bs-white);
    top: 50%;
    transform: translateY(-50%);
}
.sf-menu > li:last-child {
    margin-right: 0!important;
}
.sf-menu > li:first-child {
 margin-left: 0!important;
}

.bloc-top .navbar-nav > li > .nav-link:hover, .bloc-top .navbar-nav > li.selected > .nav-link, .bloc-top .navbar-nav .dropdown-menu .nav-item a.nav-link:hover {
    color: var(--bs-white);
    text-decoration: none;
}
.bloc-top .navbar-nav .dropdown-menu > li.nav-item.selected > a, .bloc-top .navbar-nav .dropdown-menu .nav-item > a.nav-link:hover {
	color: var(--bs-tertiary-color);
}

 .dropdown-menu .nav-item:not(:last-child){
	border-bottom: 1px solid rgb(255 255 255 / 60%);
}
/*.dropdown-toggle::after {
    text-align: center;
    display: table;
    margin: 0px auto 0 !important;
    
    content: "\f107" !important;
    font-family: 'Font Awesome 6 Pro';
    border: 0;
    
}*/

ul.dropdown-menu{

}
.navbar-nav .dropdown-menu {
    text-align: center;
    padding: 10px 0;
    background: var(--dark-color);
    border: none;
    left: 50%;
    transform: translateX(-50%);
    border-radius: 0;
    min-width: 223px;
}

.navbar-nav .dropdown-menu .nav-item a.nav-link {
       font-size: 16px;
    padding: 0px  !important;
    white-space: nowrap;
    text-transform: uppercase;
    color: var(--bs-white);
    overflow: hidden;
    margin: 5px;
}
.navbar-nav .dropdown-menu li:first-child {

}
button.navbar-toggler .navbar-toggler-icon {
	display: block;
	height: 2px;
	background-image: none;
	background-color: var(--bs-white);
	transition: .1s;
	opacity: 1;
	margin: 8px 0;
}
.navbar-expand-md .navbar-nav .dropdown-menu li.nav-item.child {
    background: rgb(0 0 0 / 92%);
    margin: 0 !important;
}
button.navbar-toggler::after, button.navbar-toggler::before {
	content: '';
	width: 1.5em;
	background: var(--bs-white);
	position: absolute;
	left: 0;
	height: 2px;
	transition: .3s;
}
button.navbar-toggler::before {
	top: 0;
	transform: rotate(-32deg);
	transform-origin: right;
}
button.navbar-toggler::after {
	bottom: 0;
	transform: rotate(32deg);
	transform-origin: right;
}

.bloc-top .navbar-nav .dropdown-menu .nav-link.child {
	letter-spacing: 0;
	font-size: 15px;
}

.bloc-top nav.navbar:not(.bloc-nav.is-sticky .navbar) {
 
    justify-content: center;
}
header.header-top .grid-top .bloc-nav.is-sticky {
    position: fixed !important;
    top: 0;
    width: 100%;
    left: 0;
    z-index: 999;
    padding: 7px 10px !important;
    margin: 0 !important;
    box-shadow: 0 0 20px var(--bs-tertiary-color);
    background: var(--dark-color);
    border-radius: 0;
}
.bloc-nav.is-sticky .grid-top {
    padding: 0px;
}
.bloc-nav.is-sticky .grid-top{
     justify-content: center !important;
    gap: 100px; 
  
}
.bloc-nav.is-sticky div#logo-header{
    display: none !important
}
.bloc-nav.is-sticky .navbar, .bloc-nav.is-sticky .navbar #navbarNav {
	justify-content: center;
	flex-grow: inherit;
}

.contactForm .gdpr_policy label {
	display: inline !important;
}

.modal-header {
    border-bottom-color:var(--border-color);
}
/****/

header.header-top .grid-top {
    padding: 20px 0 0;
}

header.header-top a.readmore {
    padding: 20px 40px;
    background: var(--bs-white) !important;
    color: var(--bs-primary-color) !important;
}

header.header-top a.readmore:hover {color: var(--bs-body-bg) !important;
    background: var(--terra) !important;}

header.header-top a.readmore i.fa-solid.fa-phone {
    font-size: 14px;
}
/* Keyframes dance */
@keyframes dance {
  0%   { transform: scale(0.9); }
  50%  { transform: scale(1); }
  100% { transform: scale(0.9); }
}
/* Keyframes rotate + pause + rotate */
@keyframes rotatePause {
    0% {
        transform: rotate(180deg);
    }
    40% {
        transform: rotate(360deg); /* rotation phase 1 */
    }
    60% {
        transform: rotate(360deg); /* pause */
    }
    100% {
        transform: rotate(180deg); /* rotation phase 2 */
    }
}

/*--------------------------------------------------
# banner
--------------------------------------------------*/
section.banner {
    height: 940px !important;
    overflow: hidden;    background: black;
}
section.banner .carousel {
    filter: grayscale(1);
}
header.header-top.interne section.banner {
    height: 450px !important;
}
section.banner .carousel, section.banner .carousel-inner, section.banner .carousel-inner img, section.banner .carousel-item {
	height: 100%;
    object-fit: cover;
}
section.banner .carousel-control-next, section.banner .carousel-control-prev {
	display: none;
}
section.banner .carousel:before {
    content: "";
    position: absolute;
    inset: 0;
    z-index: 2;
    pointer-events: none;
   /* background: linear-gradient(0deg, rgba(0, 0, 0, 0.00) 47.83%, rgba(0, 0, 0, 0.50) 100%);*/
    background:
        linear-gradient(
            0deg,
            rgba(0,0,0,0.48),
            rgba(0,0,0,0.48)
        ),
        linear-gradient(
            0deg,
            rgba(0, 0, 0, 0.00) 50%,
            rgba(0, 0, 0, 0.60) 100%
        );
    background-blend-mode: normal, luminosity, normal;
}
section.banner .carousel:after {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(0deg, rgba(0, 0, 0, 0.00) 53.28%, rgba(0, 0, 0, 0.70) 100%);
    z-index: 2;
    pointer-events: none;
    background-size: cover;
}

section.banner .box-overlay {
    margin-top: 137px;
}
section.banner .box-overlay .flex-home {
    position: relative;
    display: flex;
    z-index: 1;
    gap: 24px;
    justify-content: space-between;
    text-align: left;
}
section.banner .box-overlay .flex-home .cont {
    position: relative;
    padding: 114px 0;
    max-width: 34.92%;
    color: var(--bs-body-bg);
}
section.banner .box-overlay .flex-home h2 {
 color: var(--bs-body-bg);
 text-shadow: 5px 5px 20px #000;
 font-size: 50px;
 line-height: 60px; 
 margin: 0 0 20px;
}
section.banner .box-overlay .flex-home p {

    text-shadow: 5px 5px 20px #000;
    font-size: 30px;
    font-style: normal;
    font-weight: 400;
    line-height: normal;
    font-family: var(--bs-titles-font-family);
    margin: 0 0 20px;
}
section.banner .box-overlay .flex-home .photo-home {
    position: relative;
    max-width: 63.26%;
    order: 2;
    border: 1px solid var(--light-color, #FFF);
}
section.banner .box-overlay .flex-home .photo-home img {
    height: 100%;
    width: 100%;
    object-fit: cover;
    max-width: 100%;
    border-radius: 0;
}
/****/
.head-middle {
	padding: 36px 0 18px;
	z-index: 99 !important;
}

.carousel-control-prev-icon, .carousel-control-next-icon {
	display: none;
}
section.banner .carousel-indicators {
    margin-bottom: 15px;
    z-index: 3;
    gap: 2px;
}
section.banner .carousel-indicators button {
    border-radius: 50%;
    opacity: 1;
    height: 8px;
    width: 8px;
    margin: 0;
    position: relative;
    height: 24px;
    width: 24px;
    opacity: 1;
    background: transparent;
    border: 2px solid transparent;
    margin: 0;
    position: relative;
}
section.banner .carousel-indicators button:hover, section.banner .carousel-indicators button.active {
    background: transparent;
    opacity: 1;
    border-color: var(--bs-secondary-color);
}
section.banner .carousel-indicators button:before {
    content: "";
    position: absolute;
    background: var(--bs-white);
    margin: auto;
    inset: 0;
    height: 12px;
    width: 12px;
    border-radius: 50%;
    transition: all .6s;
}
section.banner .carousel-indicators button:hover:before , 
section.banner .carousel-indicators button.active:before {
        background: var(--bs-secondary-color);
}
/*--------------------------------------------------
# content home
--------------------------------------------------*/
section.content {
    padding: 60px 0;
    position: relative;
}

section.content p {
    text-align: justify;
}
section.content.page-content h1 {
    
    animation: fadeUpSoft  0.8s ease-out forwards;
}

section.home-content {
    padding: 120px 0;
}
section.home-content .chapo {
    max-width: 970px;
    margin: 0 auto;
    position: relative;
}
section.home-content .chapo:before {
    content: "";
    position: absolute;
    top: -110px;
    left: 50%;
    width: 771px;
    height: 562px;
    background: url(../images/bg-cont.webp) no-repeat center top;
    background-size: contain;
    transform: translateX(-50%);
    pointer-events: none;
  z-index:-1;
  opacity: 0.6;
}
section.home-content p{
text-align: center;
    margin: 0;
}
section.home-content h1 {
    margin-bottom: 40px;
}
section.home-content h5 , section.content.first h5 , section.content.second h5 ,  section.content.home h5{
    margin-bottom: 10px;
    font-size: 20px;
    line-height: normal;
    letter-spacing: 5px;
    text-transform: uppercase;
    font-family: var(--bs-body-font-family);
    color: var(--bs-body-color);
}
 section.content.first h5 ,section.content.second h5 , section.content.faq-home h5{

    color: var(--bs-body-bg);
}
section.home-content h5::before , section.content.first h5::before  ,section.content.second h5:before , section.content.faq-home h5:before{
    content: "";
    display: block;
    width: 48px;
    height: 56px;
    background: url(/smarty/wireframe26/media/images/icon-title.svg) no-repeat center;
    background-size: contain;
    margin: 0 auto 10px;
    animation: floatIcon 3s ease-in-out infinite;
}
section.content.first h5::before  ,section.content.second h5:before ,section.content.faq-home h5:before{
     margin: 0 0 10px;
    background: url(/smarty/wireframe26/media/images/icon-title2.svg) no-repeat center;
 
}

/* Floating animation */
@keyframes floatIcon {
    0% {
        transform: translateY(0px) scale(1);
    }
    50% {
        transform: translateY(-8px) scale(1.05);
    }
    100% {
        transform: translateY(0px) scale(1);
    }
}

section.content .flex-home {
    position: relative;
    display: flex;
    z-index: 1;
    gap: 55px;
    justify-content: space-between;
}

section.content .flex-home .cont {
    position: relative;
    padding: 0;
    max-width: 44.93%;
}
section.home-content .flex-home .photo-home:before {
    content: "";
    position: absolute;
    top: -60px;
    right: -84px;
    pointer-events: none;
    z-index: 1;
    background: url(/smarty/wireframe30/media/images/badge-home.svg) no-repeat center;
    width: 168px;
    height: 168px;
    transition: all 0.6s;
  animation: rotatePause 4s linear infinite;
}
section.content .flex-home .photo-home {
    position: relative;
    max-width: 38.64%;
    order: 2;
}
section.content .flex-home .photo-home img {
    height: 100%;
    width: 100%;
    object-fit: cover;
    max-width: 100%;
    border-radius: 0;
}


section.content .btn-home {
    margin-top: 48px;
}

/**************************************/
section.content.page-content.content-page .flex-home.bloc2 .photo-home {
    order: 2;
}
section.content.page-content.content-page .photo-home:before {
    display: none;
}
section.content.page-content.content-page .flex-home.bloc2 {
    margin: 60px 0;
    justify-content: end;
}
@keyframes fadeUpSoft {
    from {
        opacity: 0;
        transform: translateY(40px);
        filter: blur(4px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
        filter: blur(0);
    }
}

/********/

.readmore,
section.content .news-object.Item .read-more > a {
    position: relative;
    text-decoration: none;
    text-align: center;
    transition: all .6s;
    text-transform: none;
    display: inline-flex;
    align-items: center;
    overflow: hidden;
    isolation: isolate;
    z-index: 1;
    padding: 20px 40px;
    color: var(--bs-primary-color);
    background: var(--bs-white) !important;
    font-size: 16px;
}

/* Background animation */
.readmore:before,
section.content .news-object.Item .read-more > a:before {
    content: "";
    position: absolute;
    width: 0.25rem;
    height: 0.25rem;
    left: 1.25rem;
    bottom: 0;
    background-color: var(--terra);
    border-radius: 50%;
    transform: translateY(100%);
    transition: transform 700ms ease;
    z-index: -1;
}

.readmore:hover:before,
section.content .news-object.Item .read-more > a:hover:before {
    transform: translateY(100%) scale(300);
}

/* Bottom line */
.readmore:after,
section.content .news-object.Item .read-more > a:after {
    content: "";
    position: absolute;
    left: 50%;
    bottom: 20px;
    width: calc(100% - 80px);
    height: 1px;
    background: currentColor;
    transform: translateX(-50%);
    transition: width 0.4s ease;
    z-index: 2;
    pointer-events: none;
}

/* Hover effect */
.readmore:hover:after,
section.content .news-object.Item .read-more > a:hover:after {
    width: calc(100% - 40px);
}

/************************/
section.content.first , section.content.second  {
    padding: 91px 0 200px;
    background: var(--bs-primary-color);
    color: var(--bs-body-bg);
}
section.content.second .flex-home .photo-home {
  
    order:1;
}
section.content.first .flex-home .photo-home {
  
    order: -1;
}

section.content.first a.readmore , section.content.second a.readmore {
    padding: 20px 40px;
    background: transparent !important;
    color: var(--bs-body-bg);
    border: 1px solid var(--bs-body-bg);
}

section.content.first h2:before, section.content.second h2:before {
    content: "";
    position: absolute;
    top: 0px;
    bottom: -7px;
    left: 0;
    right: -50vw;
    border-radius: inherit;
    z-index: -1;
    border-bottom: 1px solid var(--terra);
}
 section.content.second h2:before {
 
    right: 0;
    left: -50vw;
  
}
section.content.first h2 , section.content.second h2 {
    margin-bottom: 48px;
    color: var(--bs-body-bg);
}


section.content.first .flex-home .img-home.img1 , section.content.second .flex-home .img-home.img1  {
    height: 100%;
    position: relative;
    border-radius: 0;
    border: 1px solid var(--terra);
}
section.content.first .flex-home .img-home.img2  , section.content.second .flex-home .img-home.img2{
    position: absolute;
    right: -138px;
    bottom: -113px;
    width: 273px;
    height: 363px;
    border: 1px solid var(--terra);
    border-radius: 0;
}
 section.content.second .flex-home .img-home.img2{
 
    left: -138px;
   right: auto;
}
section.content.first .flex-home .img-home.img2 img , section.content.second .flex-home .img-home.img2 img {
    height: 100%;
    width: 100%;
    object-fit: cover;
    max-width: 100%;
    border-radius: 0;
}
section.content.first .flex-home .img-home.img1:before , section.content.second .flex-home .img-home.img1:before {
    position: absolute;
    content: "";
    width: 1px;
    height: 91px;
    top: -91px;
    right: -1px;
    pointer-events: none;
    z-index: 2;
    background: var(--terra);
}
 section.content.second .flex-home .img-home.img1:before {

    left: -1px;
    right:auto;

}
/*****************************************/
section.content.second:before {
    position: absolute;
    content: "";
    background: url(../images/before-cont.webp) no-repeat center;
    background-size: contain;
    left: 0;
    bottom: 0;
    width: 472px;
    height: 560px;
}
/*----------------------------------------------------
 #galerie-home
---------------------------------------------------*/
section.galerie-home {
    padding: 40px 0 0;
    margin: 40px 0 0;
    border-top: 1px solid  var(--terra);
}
section.galerie-home .swiper-horizontal {
    overflow: hidden;
    padding: 0;
    margin: 0 auto;
  
}
section.galerie-home a.link-picture {
    position: relative;
    height: 368px;
    font-size: 0;
    z-index: 2;
    transition: all .6s;
    background-position: center;
    overflow: visible;
    background-repeat: no-repeat;
    background-size: cover;
    border-radius: 40px;
    opacity: 1 !important;
}
/*
section.galerie-home a.link-picture:before {
    content: "";
    position: absolute;
    inset: 0;
    border-radius: 0;
    background:  url(/smarty/wireframe30/media/images/loop.svg) no-repeat center;
    z-index:99;
    opacity:0;
      border-radius: 0 80px;
      transition: all .6s;
}
section.galerie-home a.link-picture:hover:before {
opacity:1;
}*/
section.galerie-home a.link-picture:after {
    content: "";
    position: absolute;
    inset: 0;
    opacity: 0;
    border-radius: 40px;
    transition: all .6s;
    border-radius: 0;
    background: transparent;
}
section.galerie-home a.link-picture:hover:after {
    opacity: 1;
       
}

/***** Bullets Swiper Galerie *****/
section.galerie-home .swiper-pagination-bullet {
    height: 12px;
    width: 12px;
    border: 2px solid var(--bs-primary-color);
    background: transparent;
    padding: 0;
    opacity: 1;
    margin: 0 8px !important;
    transition: background 0.3s ease, border-color 0.3s ease;
}

section.galerie-home .swiper-pagination-bullet:hover, section.galerie-home .swiper-pagination-bullet.swiper-pagination-bullet-active {
	background: var(--bs-primary-color);
	border-color: var(--bs-primary-color);
}

section.galerie-home .swiper-pagination {
    display: none;
    justify-content: center;
    position: relative;
    inset: 0;
    margin-top: 20px;
    z-index: 1;
}
/*------------------------------------------
	# pictos 
-------------------------------------------*/
section.pictos {
    padding: 120px 0;
}

section.pictos:before {
    content: "";
    position: absolute;
    top: 10px;
    left: 50%;
    width: 482px;
    height: 560px;
    background: url(../images/bg-cont.webp) no-repeat center top;
    background-size: contain;
    transform: translateX(-50%);
    pointer-events: none;
}
section.pictos .pictos-slider {
    position: relative;
    display: grid;
    grid-template-columns: repeat(3,1fr);
    gap: 22px 24px;
}
section.pictos .bx {
    margin-top: 0;
    transition: all 0.6s;
    position: relative;
    border: 1px solid rgba(86, 85, 85, 0.20);
    padding: 30px;
}
section.pictos h2 {
    margin: 32px 0 0;
    font-size: 19px;
    text-transform: none;
}

section.pictos .bx .icon-bx:after {
    content: "";
    position: absolute;
    background-repeat: no-repeat;
    background-position: center;
    inset: 0;
  
}
section.pictos .bx.bx1 .icon-bx:after {
     background-image: url(/smarty/wireframe26/media/images/icon1.svg);
}
section.pictos .bx.bx2 .icon-bx:after {
    background-image: url(/smarty/wireframe26/media/images/icon2.svg);
}
section.pictos .bx.bx3 .icon-bx:after {
    background-image: url(/smarty/wireframe26/media/images/icon3.svg);
}
section.pictos .bx.bx4 .icon-bx:after {
    background-image: url(/smarty/wireframe26/media/images/icon4.svg);
}
section.pictos .bx.bx5 .icon-bx:after {
    background-image: url(/smarty/wireframe26/media/images/icon5.svg);
}
section.pictos .bx.bx6 .icon-bx:after {
    background-image: url(/smarty/wireframe26/media/images/icon6.svg);
}
section.pictos .bx .icon-bx {
    transition: all 0.6s;
    position: relative;
    width: 58px;
    height: 58px;
    margin: 0 auto;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    background: transparent;
}


section.pictos .bx:hover .icon-bx {
    -webkit-animation: rotate-vert-center 0.5s cubic-bezier(0.455, 0.030, 0.515, 0.955) both;
	        animation: rotate-vert-center 0.5s cubic-bezier(0.455, 0.030, 0.515, 0.955) both;
}

section.pictos p {
    margin: 0;
}
/* ----------------------------------------------
 * Generated by Animista on 2025-2-3 16:54:40
 * Licensed under FreeBSD License.
 * See http://animista.net/license for more info. 
 * w: http://animista.net, t: @cssanimista
 * ---------------------------------------------- */

/**
 * ----------------------------------------
 * animation rotate-vert-center
 * ----------------------------------------
 */
@-webkit-keyframes rotate-vert-center {
  0% {
    -webkit-transform: rotateY(0);
            transform: rotateY(0);
  }
  100% {
    -webkit-transform: rotateY(360deg);
            transform: rotateY(360deg);
  }
}
@keyframes rotate-vert-center {
  0% {
    -webkit-transform: rotateY(0);
            transform: rotateY(0);
  }
  100% {
    -webkit-transform: rotateY(360deg);
            transform: rotateY(360deg);
  }
}
/************************

/*------------------------------------------
	# pictos 
-------------------------------------------*/
section.pictos2 {
    padding: 120px 0;
}

section.pictos2 .pictos-slider {
    position: relative;
    display: grid;
    grid-template-columns: repeat(3,1fr);
    gap: 22px 24px;
}
section.pictos2 .bx {
    margin-top: 0;
    transition: all 0.6s;
    position: relative;
    border: 1px solid rgba(86, 85, 85, 0.20);
    padding: 30px;
}
section.pictos2 h2 {
    margin: 32px 0 0;
    font-size: 19px;
    text-transform: none;
}

section.pictos2 .bx .icon-bx:after {
    content: "";
    position: absolute;
    background-repeat: no-repeat;
    background-position: center;
    inset: 0;
  
}
section.pictos2 .bx.bx7 .icon-bx:after {
     background-image: url(/smarty/wireframe26/media/images/icon7.svg);
}
section.pictos2 .bx.bx8 .icon-bx:after {
    background-image: url(/smarty/wireframe26/media/images/icon8.svg);
}
section.pictos2 .bx.bx9 .icon-bx:after {
    background-image: url(/smarty/wireframe26/media/images/icon9.svg);
}
section.pictos2 .bx.bx10 .icon-bx:after {
    background-image: url(/smarty/wireframe26/media/images/icon10.svg);
}
section.pictos2 .bx.bx11 .icon-bx:after {
    background-image: url(/smarty/wireframe26/media/images/icon11.svg);
}
section.pictos2 .bx.bx12 .icon-bx:after {
    background-image: url(/smarty/wireframe26/media/images/icon12.svg);
}
section.pictos2 .bx .icon-bx {
    transition: all 0.6s;
    position: relative;
    width: 64px;
    height: 62px;
    margin: 0 auto;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    background: transparent;
}


section.pictos2 .bx:hover .icon-bx {
    -webkit-animation: rotate-vert-center 0.5s cubic-bezier(0.455, 0.030, 0.515, 0.955) both;
	        animation: rotate-vert-center 0.5s cubic-bezier(0.455, 0.030, 0.515, 0.955) both;
}

section.pictos2 p {
    margin: 0;
}
/**************** actus interne ***********/
section.content .news-object.Item {

    margin-bottom: 20px;
}
section.content .news-object.Item .photo, section.content .news-object.Item .nophoto {
    height: 250px !important;
    border: 0 !important;
    padding: 0 !important;
    display: block;
    border-radius: 20px;
    inset: 0;
    width: 100%;
    position: relative;
    overflow: hidden;
}
section.content .news-object.Item .photo img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    border-radius: 20px;
}
section.content .news-object.Item .nophoto i.fa-duotone.fa-image {
    display: none;
}
section.content .news-object.Item .nophoto {
    background: var(--bs-primary-color);
    background-size: 50%;
}
section.content .news-object.Item .nophoto img {
    width: 100%;
    height: 100%;
    object-fit: scale-down;
    padding: 10px;
    transition: all 0.6s;
}
section.content .news-object.Item .read-more{
  	margin-top : 20px;
}
section.content .news-object.Item h3 {
    font-size: 22px;
}
section.content .news-object.Item .date {
    display: block;
    font-size: 15px;
    font-weight: 700;
    text-transform: none;
    font-family: var(--bs-body-font-family);
}
section.content article .NewsMasonry .NewsItem img.img-news-list, img.img-news {
    max-width: 190px !important;
    height: 150px !important;
  border-radius: var(--bs-border-radius);
}
a.backbtn {
    color: var(--bs-primary-color) !important;
}
a.backbtn:hover {
    color: var(--bs-tertiary-color) !important;
}
section.content .news-object.Item .read-more > a {
    outline: none;
    z-index: 2;
    background: transparent;
    border: 1px solid;
    padding: 10px 40px;
}
section.content .news-object.Item .read-more > a:after {
    
    bottom: 10px;

}
section.content .news-object.Item .read-more > a:before {
 
    background-color: var(--border-color);

}
section.content .news-object.Item .news-desc {
    box-sizing: border-box;
    padding: 30px 0 0;
     position: relative; 
    text-align: left;
}
section.content .news-object.Item:hover .nophoto img, section.content .news-object.Item:hover .photo img {
    transform: scale(1.2);
}

section.content .news-object.Item h3 span {
    display: block;
}
a.btn-cookies-link {
	color: var(--bs-black) !important;
background-color: #ffffffc9 !important;
}

a.btn-cookies-link i {
    width: 21px;
}
/******************************/

section.parallax {
    background: url(../images/parallax1.webp) no-repeat center fixed;
    background-size: cover;
    padding: 150px 0;
}
section.parallax:before {
    position: absolute;
    content: "";
    background: #171717;
    inset: 0;
    pointer-events: none;
    opacity: 0.8;
    z-index: 0;
}
section.parallax .box-para {
    text-align: center;
    z-index: 1;
    position: relative;
    display: flex;
    justify-content: center;
    align-items: center;
   
}
section.parallax .box-para:before {
    content: "";
    position: absolute;
    top: -79px;
    left: 50%;
    width: 392px;
    height: 456px;
    background: url(../images/text-para.webp) no-repeat center;
    background-size: contain;
    transform: translateX(-50%);
    pointer-events: none;
  opacity:0.2;
}
section.parallax .box-para h2 {
    color: var(--bs-white);
    margin:  0;
    font-size: 40px;
    font-style: normal;
    font-weight: 400;
    line-height: 50px; /* 125% */
    text-transform: uppercase;
}


section.parallax .box-para h3 {
    color: var(--bs-white);
    text-transform: none;
    margin: 10px 0;
    font-size: 30px;
    font-style: normal;
    font-weight: 400;
    line-height: normal;
}

section.parallax a.readmore {
    background: transparent !important;
    color: var(--bs-body-bg);
    border: 1px solid var(--bs-body-bg);
    margin-top: 40px;
}
section.parallax a.readmore:hover {
    color: var(--bs-white) !important;
}
section.parallax p {
    color: var(--bs-white);
    margin: 0;
    font-size: 20px;
}
section.parallax .box-para h4 {
    margin: 12px 0;
    color: var(--bs-white);
    font-size: 30px;
}
/****/

/************************/
section.parallax.part3 {
    padding: 150px 0;
    background-image: url(../images/parallax2.webp);
}
section.parallax.part3:before {
    position: absolute;
    content: "";
    background: #171717;
    inset: 0;
    pointer-events: none;
    opacity: 0.6;
    z-index: 0;
}


/*avis-page*/
section.content .guestbook-messages {
	margin-top: 0;
	padding-top: 20px;
	clear: both;
}
section.content .guestbook-messages .gb-content .gb-entry .gb-message {
    padding-top: 5px;
}
section.content .guestbook-score .gb-rating :checked ~ label::after {
    color: var(--bs-primary-color);
}
.content .guestbook-score .gb-rating label {
    position: relative;
    display: inline-block;
    float: right;
    cursor: pointer;
    margin: 0 5px 0 0;
    font-size: 0;
}
section.content .fa-star-o:before{
  	content: "\f006" !important;
	color: var(--bs-body-color);
	font-size: 16px;
	top: 0;
	position: relative;
}
section.content article div#Guestbook .gb-entry-score .emptyStar .fa-star-o:before {
    color: var(--bs-body-color);
    font-weight: 400;
}
.content .guestbook-score .gb-rating label:after{
    color: var(--bs-body-color);
}
.guestbook-score .gb-rating :checked ~ label::after {
    content: '\f005'!important;
  	font-weight: 700;
}
.guestbook-score .gb-rating label::after {
    content: '\f005'!important;
    font-size: 23px !important;
    transition: color .4s; 
    font-weight: 400;
  	font-family: "Font Awesome 6 Sharp" !important;
}
.guestbook-score .gb-rating{
    vertical-align: middle;
}
section.content.content-page .guestbook-messages .gb-content .gb-entry {
    margin: 15px 0 15px 0;
    padding: 15px;
  	background: var(--bs-secondary-bg2);
  	border-bottom: 2px solid var(--bs-primary-color) !important;
}
.content-page .gdpr_policy {
    margin-bottom: 10px;
}
#scoreBlock .contact-field-label {
	line-height: 35px;
}
/********* avis interne *********/
section.content.page-content.content-page div#Guestbook {
    clear: both;
}
section.content.page-content.content-page .star-rating label:has(~ :checked) i,section.content.page-content.content-page .star-rating label:is(:hover,:has(~ :hover)) i{
	color : var(--bs-tertiary-color) !important;
}
section.content.page-content.content-page .fa-star:before{
	color : var(--bs-tertiary-color) !important;
}
section.content.page-content.content-page .average-review {
    float: left;
  margin : 20px 0;
}
section.content.page-content.content-page div#Guestbook span.review-user {
    font-weight: 700;
}
section.content.page-content.content-page span.count-messages {
    float: right;
  margin : 20px 0;
}
section.content.page-content.content-page .gb-entry {
    clear: both;
    margin: 20px 0;
    padding: 10px 15px;
    background: var(--light-color);
    border: 0;
    border: 1px solid var(--bs-primary-color);
    border-radius: 5px;
}
section.content.page-content.content-page .gb-entry span.review-date{
    float: right;
}
section.content .star-rating label .fa-star:before {
    content: "\f005";
    font-weight: 400 !important;
}
section.content .star-rating label:has(~ :checked) .fa-star:before {
    font-weight: 900 !important;
}
section.content.page-content.content-page .gb-entry span.review-hour {
    display: none;
}

/*--------------------------------------------------
# FAQ home
--------------------------------------------------*/	
section.content.faq-home {
    padding: 120px 0;
    background: var(--bs-primary-color);
    color: var(--bs-body-bg);
}

section.content.faq-home .flex-contact {
    display: flex;
  
    justify-content: space-between;
    gap: 50px;
}
section.content.faq-home h2 {
    color: var(--bs-body-bg);
    margin-top: 10px;
    border-radius: 0 !important;
}
section.content.faq-home p {

    margin: 0;
}

section.content.faq-home .text {
    position: relative;
    width: 57.58%;
}
section.content.faq-home .col-12.col-title-faq {
	display: none;
}
section.content.faq-home > .container > h2 {
	text-align: center;
	font-weight: 500;
	font-size: 54px;
	line-height: 1em;
	margin-bottom: 68px;
}
section.content.faq-home #row_faq_0 {
	margin: 0 !important;
	--bs-gutter-y: 0;
	--bs-gutter-x: 0;
}
section.content.faq-home .photo-faq {
	position: relative;
	width: 38.64%;
	order: -2;
	border: 1px solid var(--terra);
}
section.content.faq-home .photo-faq img {
    width: 100%;
    height: 100%;
    display: block;
    object-fit: cover;
    border-radius: 0;
    transition: transform 0.6s ease;
}
/*****************/
/* --- */
.col-content-faq .accordion {
	padding: 0;
	-webkit-border-radius: 0;
}
.accordion-item {
	position: relative;
	background: transparent;
	text-decoration: none;
	margin-bottom: 0;
	border: none;
	border-radius: 0 !important;
}
.accordion-button:not(.collapsed) {
	color: var(--bs-primary-color);
	box-shadow: none !important;
	background: var(--bs-accordion-bg) !important;
	border-radius: 0 !important;
	padding: 20px 20px 0;
	margin: 0px;
}
.accordion-button:after {
	background: url(/smarty/wireframe26/media/images/icon-faq-h.svg) no-repeat center !important;
	width: 30px;
	height: 30px;
	border-radius: 0 !important;
}
.accordion-button:not(.collapsed):after {
	background-image: url(/smarty/wireframe26/media/images/icon-faq.svg) !important;
	transform: none !important;
}
.accordion-button:hover:after {
	transform: var(--bs-accordion-btn-icon-transform) !important;
}
.accordion-button {
	position: relative;
	display: flex;
	align-items: center;
	width: 100%;
	padding: 20px;
	color: var(--bs-body-bg);
	text-align: left;
	background: none !important;
	border: 0;
	overflow-anchor: none;
	transition: var(--bs-accordion-transition);
	font-family: var(--bs-titles-font-family);
	box-shadow: none !important;
	font-size: 20px;
	font-style: normal;
	font-weight: 400;
	line-height: normal;
	margin-top: 10px;
	border-radius: 0 !important;
	border: 1px solid rgba(255, 255, 255, 0.50);

}
.accordion-item:not(:last-of-type) {
}
.accordion-item:first-of-type {
}
.accordion-header {
	margin-bottom: 0;
}
.accordion-body {
	padding: 4px 20px 20px !important;
	background: var(--bs-accordion-bg) !important;
}
.accordion-body p:last-of-type {
	margin-bottom: 0;
}
/*--------------------------------------------------
# footer
--------------------------------------------------*/
footer.bottom {
    padding: 80px 0;
  color: var(--bs-primary-color);
}
footer.bottom.footer-interne {
    border-top: 2px solid var(--bs-primary-color);
}
footer.bottom .bloc-center {
  width: 34.91%;
}
footer.bottom .bloc-center li {
	position: relative;
	padding: 10px 20px 10px 48px;
	margin-bottom: 10px;
	background: rgba(86, 85, 85, 0.05) url(../images/bullet.webp) no-repeat left 20px center;
	background-size: 20px;
	border-radius: 0;
	text-align: left;
}
footer.bottom  .bloc-center ul {
    padding-left: 0px;
    margin-left: 0px;
    margin: 0;
}
footer.bottom  .bloc-center li::marker{
	content: "" !important;
}
footer.bottom .footer-wrapper {
    z-index: 1;
    gap: 50px;
}
footer.bottom .contact-item {
    gap: 15px;
}



footer.bottom .footer-info {
    display: flex;
    flex-direction: column;
    gap: 15px;
}
footer.bottom .btn-footer .readmore {
 
    color: var(--bs-primary-color);
    background: transparent;

    border: 1px solid var(--bs-primary-color);
}
footer.bottom .btn-footer .readmore:before {

    background-color: var(--terra);

}
footer.bottom .btn-footer .readmore:hover {

    color:#fff !important;

}
/***/
.fa-facebook::before {
    content: "\f39e" !important;
    
}
.footer-b {
	display: none;
}

.footer-nav small {
    font-size: 15px;
}

.footer-logo{width:350px; text-align:center; display:inline-block;}
.footer-logo a{text-decoration:none;}
.footer-logo span{margin-top:10px; display:block;}



hr {
	border-color: var(--terra);
}
/* ----------------------------------------------
 * Generated by Animista on 2025-9-15 15:22:53
 * Licensed under FreeBSD License.
 * See http://animista.net/license for more info. 
 * w: http://animista.net, t: @cssanimista
 * ---------------------------------------------- */

/**
 * ----------------------------------------
 * animation rotate-center
 * ----------------------------------------
 */
@-webkit-keyframes rotate-center {
  0% {
    -webkit-transform: rotate(0);
            transform: rotate(0);
  }
  100% {
    -webkit-transform: rotate(360deg);
            transform: rotate(360deg);
  }
}
@keyframes rotate-center {
  0% {
    -webkit-transform: rotate(0);
            transform: rotate(0);
  }
  100% {
    -webkit-transform: rotate(360deg);
            transform: rotate(360deg);
  }
}

/*****************/
.footer-b {
    DISPLAY: NONE;
}
.footer-nav {
    padding: 15px 0px !important;
}
.footer-nav a {
    PADDING: 0 1px;
    text-decoration: none;
}
.footer-nav a:hover {
    color: var(--bs-primary-color) !important;
}
/***********/

a#scrollTopBtn {
    right: auto;
    background: var(--bs-tertiary-color);
    color: var(--bs-white) !important;
    bottom: 58px;
    left: 50%;
    transform: translateX(-50%);
}
a#scrollTopBtn i.fa::before {
    content: '\f0d8';
}
#scrollTopBtn:hover {
    background-color: var(--bs-primary-color) !important;
}
/* Optimisations pour les animations GSAP */


.news-object {
    transition: box-shadow 0.3s ease;
}

/* Animation flottante pour les réseaux sociaux */
@keyframes float {
    0%, 100% { transform: translateY(0px); }
    50% { transform: translateY(-10px); }
}



/*--------------------------------------------------
# contact-page
--------------------------------------------------*/

.contactForm .contact-field-item .contact-field-label .contact-field-req-symbol, .contactForm .contact-field-error{
    color: var(--bs-body-color) ;
}
.contactForm .contact-field-item {
    margin: 0 0 10px !important;
    position: relative;
    display: block;
    padding: 0;
    width: 100%;
    float: none;
    clear: none !important;
}
.contactForm .contact-field-item:nth-child(even) {
	/*padding-right: 5px;*/
}
.contactForm .contact-field-item:nth-child(odd) {
	/*padding-left: 5px;*/
}
.contactForm .contact-field-item.fullwidth {
	width: 100%;
	padding: 0 !important;
	float: none;
	clear: both !important;
}
.contactForm .contact-field-item.fullwidth textarea#form1-comments_1 {
    height: 85px;
}
.form-control, section.content .contactForm .contact-field-item .contact-field-element .form-field {
    font-weight: 400;
    line-height: 2em;
    color: var(--bs-body-color) !important;
    background: transparent;
    border: 1px solid var(--bs-color-gray);
    padding: 4px 10px;
    transition: border-color .4s, color .4s;
    border-radius: 0;
    outline: none !important;
}
.form-control::placeholder, section.content .contactForm .contact-field-item .contact-field-element .form-field::placeholder {
	color: var(--bs-body-color) !important;
}
.form-control:focus, section.content .contactForm .contact-field-item .contact-field-element .form-field:focus {
    outline: none !important;
    border-color: var(--bs-tertiary-color) !important;
    box-shadow: none !important;
}
section.content .contactForm input#form1-gdpr {
    border-color: var(--bs-body-color);
}
.contactForm .contact-submit .btn-primary, section.content .contactForm .form-submit-button {
    position: relative;
    color: var(--bs-primary-color);
    text-decoration: none;
    text-transform: uppercase;
    background: transparent;
    z-index: 1;
    border: 0;
    transition: all .6s;
    display: inline-flex;
    letter-spacing: 0;
    border-radius: 0;
    padding: 14px 32px;
    border: 1px solid var(--bs-primary-color);
    font-size: 16px;
    font-style: normal;
    font-weight: 400;
    line-height: normal;
}
.contactForm .contact-submit {
    position: relative;
    margin-top: 10px;
    display: table;
}

.grecaptcha-badge {
    z-index: 999;
}
.contactForm .contact-submit:hover .btn-primary, section.content .contactForm .contact-submit:hover .form-submit-button {
    transform: scale(0.95);
    color: #fff;
    background: var(--terra);
    border: 1px solid var(--terra);
  
}

/*********************/


/* --- */
/* --- */
.img-page img, .img-news img {
	border-radius: var(--bs-border-radius);
}

section.content.page-content.content-page .grid-gallery {
    display: flex;
    flex-wrap: wrap;
    grid-gap: 2%;
    justify-content: center;
}
section.content.page-content.content-page .grid-img .grid-gallery{
	display: block;
	width: 400px;
	
}
section.content.page-content.content-page .grid-gallery a {
    
}
section.content.page-content.content-page .grid-home {
    grid-gap: 80px;
      margin-bottom: 70px;
}
section.content.page-content.content-page .grid-home .grid-img.w-25 {
    width: 47% !important;
}
section.content.page-content.content-page .grid-home .grid-img.w-25 img {
    border-radius:0px !important;
}


section.content.page-content.content-page .grid-img .link-picture {
	height: 320px;
}
section.content.page-content.content-page a.link-picture, section.content.page-content.content-page a.link-subgallery {
    width: 23.5%;
    background-size: cover;
    background-position: center;
    height: 300px;
    cursor: zoom-in;
    position: relative;
    /* display: block; */
    /* box-shadow: 0 0 0 rgba(33,46,83,.6); */
    transition: transform .4s,box-shadow .4s;
    border-radius: 20px;
    margin-bottom: 20px;
      overflow: hidden;
}
section.content.page-content.content-page .link-subgallery:hover, section.content.page-content.content-page .link-picture:hover {
	transform: scale(.95);
}
section.content.page-content.content-page .pagination {
    margin-top: 20px;
    justify-content: center;
  flex-wrap: wrap;
}
section.content.page-content.content-page .pagination li {
    background-image: none !important;
    padding: 0;
}
section.content.page-content.content-page .pagination li.page-item.disabled .page-link {
    background-color: var(--light-color);
}
section.content.page-content.content-page .pagination .page-link{
  color: var(--bs-tertiary-color) !important ;
  cursor: pointer;
}
section.content.page-content.content-page .pagination .active>.page-link, 
section.content.page-content.content-page .pagination .page-link.active , 
section.content.page-content.content-page .pagination .page-link:hover {
  color: var(--bs-body-bg) !important ;
  background: linear-gradient(180deg, var(--bs-tertiary-color) 0%, var(--bs-secondary-color) 100%) !important ;
  border-color: var(--bs-tertiary-color);
}
section.content.page-content.content-page .pagination li a.page-link.prev-button.disabled {
    background: var(--light-color);
}
section.content.page-content.content-page span.title-subgallery{
	position : absolute;
  bottom: 0;
  left: 0 ;
  right: 0;
  padding : 10px;
  color : var(--bs-body-bg) ;
  text-align : center;
  background : rgb(32 143 55 / 70%);     
  pointer-events: none;
}
section.content.page-content.content-page .title-picture {
	display: none;
}
.img-responsive {
	max-width: 100%;
}
section.content.page-content.content-page .slick-dots li button:before, section.content.page-content.content-page .slick-dots li.slick-active button:before{
  background : var(--bs-tertiary-color) !important;
}
section.content.page-content.content-page .slick-dots{
  bottom : -40px;
}
section.content.page-content.content-page p,
section.content.page-content.content-page li{
}
article.content li{
	background: url(../images/bullet.webp)no-repeat left 6px;
	padding-left: 20px;
	margin-left: 0px;
}
article.content ul{
	padding-left: 0px;
	margin-left: 0px;
}
article.content li::marker{
	content: "" !important;
}
h3.contact-field {
    display: none;
}
/**************************/

section.home-content .grid-gallery {
    overflow: hidden;
    position: relative;
}
section.home-content .grid-img .grid-gallery{
	display: block;
	width: 400px;
	
}
section.home-content .grid-gallery a {
    
}
section.home-content .grid-home {
    grid-gap: 80px;
      margin-bottom: 70px;
}



section.home-content .grid-img .link-picture {
	height: 320px;
}
section.home-content a.link-picture {
    width: 23.5%;
    background-size: cover;
    background-position: center;
    height: 360px;
    cursor: zoom-in;
    position: relative;
    display: block;
    transition: transform .4s,box-shadow .4s;
    border-radius: 0;
    margin: 0;
    overflow: hidden;
}
section.home-content .link-picture:hover {
	transform: scale(.95);
}
section.home-content a.link-picture span.title-picture {
    display: none;
}
section.home-content .gal-home {
    margin-top: 39px;
}
/********************/

.tel.work > a {
    text-decoration: none;
    color: var(--bs-white);
    background: var(--bs-primary-color);
    transition: all 0.6s;
    font-weight: 600;
    display: inline-flex;
    align-items: center;
    gap: 8px;
    border-radius: 40px;
    padding: 10px;
}
.tel.work > a:hover {
    transform: scale(0.95);
}
.news-object .nophoto i {
    display: none !important;
}
nav a#no-page {
    pointer-events: none;
}
.btn-cookies-pos{
  z-index:999;
}

div#sdgdpr_modal_header .navbar-expand-lg .navbar-nav .nav-link {
    font-size: 15px;
    padding: 10px 8px !important;
      color: var(--bs-navbar-active-color);
  letter-spacing: 0;
}



.fslightboxci h2 {
    font-family: var(--bs-body-font-family);
    font-size: 17px;
    color: var(--bs-white);
    text-transform: none;
    margin: 0;
}
.d-none.btn-back-sub-gallery button.btn.btn-primary {
    font-size: 0;
}
.d-none.btn-back-sub-gallery {
    display: block !important;
    float: right;
}
.d-none.btn-back-sub-gallery button.btn.btn-primary i.fa-duotone.fa-solid.fa-chevron-left {
    font-size: 20px;
}
/****/
section.content article.content .row .col-lg-6 .photo img {
    height: 100%;
    width: 100%;
    object-fit: cover;
  
}
section.content article.content .row .col-lg-6 .photo {
    height: 100%;
  	overflow : hidden;
}

section.content.page-content.content-page  .photo {
   
    height: 100%;
}
section.content.page-content.content-page .photo img {
    height: 100%;
    width: 100%;
    object-fit: cover;
    max-width: 100%;
    border-radius: 20px;
    transition: all .6s;
}

/***/
html, body {
  height: auto !important;
  min-height: 100%;
  overflow: visible !important;
  scroll-behavior: auto !important; /* désactive le smooth natif pour laisser Lenis gérer */
      padding: 0 !important;
    margin: 0 !important;
}

#scrollTopBtn {
    z-index: 999 !important;
}

/****/

section.content.content-page.page-content.contact .adr .footer-right img {
    transform: none !important;
    opacity: 1 !important;
}
/* Animation pour :before - slide depuis la droite */
@keyframes slideRight {
    0% {
        transform: translateX(100%);
        opacity: 0;
    }
    100% {
        transform: translateX(0);
        opacity: 1;
    }
}
@keyframes fadeUp {
    0% {
        opacity: 0;
        transform: translateY(20px);
    }
    100% {
        opacity: 1;
        transform: translateY(0);
    }
}
/**********************************/
/* ============================
   Style principal du bouton
============================ *
button.accordion-button {
    background:  var(--bs-primary-color) !important;
    color: var(--bs-white) !important;
    font-size: 25px;
    margin: 0;
    padding: 5px 96px 5px 5px;
    border: none;
    border-bottom: 0;
    text-transform: uppercase;
    position: relative;
    font-weight: 400;
    transition: all 0.3s ease;
}

/* ============================
   Focus
============================ *
button.accordion-button:focus , button.accordion-button:hover , button.accordion-button:not(.collapsed) {
  z-index: 3;
  outline: none;
  box-shadow: none;
  color: var(--bs-white) !important;
  background:  var(--bs-tertiary-color) !important;
}

/* ============================
   Icône personnalisée
============================ *
button.accordion-button::before {
    content: "";
    position: absolute;
    top: 50%;
    right: 10PX;
    width: 20px;
    height: 24px;
    background: url("../images/icon-faq.webp") no-repeat center / contain;
    transition: transform 0.3s ease;
    transform: translateY(-50%);
}
a.btn-cookies-link {
    background-color: #000000bd !important;
    color: white;    line-height: 24px;
    font-size: 14px;
}
/* ============================
   Rotation de l’icône quand ouvert
============================ *
button.accordion-button:not(.collapsed)::before {
  transform: rotate(180deg) translateY(50%);
}

/* ============================
   Suppression de l’icône Bootstrap par défaut
============================ *
button.accordion-button::after {
  display: none !important;
}
/*****/

.specs, .vibes {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    align-items: center;
    padding: 16px 0 35px;
    border-bottom: 1px solid var(--terra);
  margin-bottom: 35px;
}
.specs span.spec-item, .vibes span.vibe {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 8px 10px;
    font-weight: 600;
    border-radius: 3px;
    border: 1px solid rgba(86, 85, 85, 0.20);
}
.description__lead {
    font-size: 1.1rem;
    font-style: italic;
    margin-bottom: 32px;
    padding-bottom: 32px;
    border-bottom: 1px solid var(--terra);
}


.transports__head p {
    text-align: center !important;
}
.transports__head {
    padding: 35px 0 10px;
    border-top: 1px solid var(--terra);
    margin-top: 35px;
    text-align: center;
}
  /* Grille de cartes */
  .transport-grid {
    display: grid;
    grid-template-columns: repeat(5, 1fr);
    gap: 16px;
  }
 
  .transport-card {
    background: #fff;
    border: 1px solid var(--color-line);
    border-radius: var(--radius-md);
    padding: 28px 20px;
    text-align: center;
    transition: transform .3s cubic-bezier(.2,.8,.2,1), box-shadow .3s ease;
    position: relative;
    overflow: hidden;
  }
 
  .transport-card:hover {
    transform: translateY(-6px);
    box-shadow: var(--shadow-card-hover);
  }
 
  .transport-card__icon {
    width: 56px;
    height: 56px;
    margin: 0 auto 16px;
    border-radius: 50%;
    background: var(--color-bg-alt);
    display: grid;
    place-items: center;
    color: var(--color-accent);
    font-size: 22px;
  }
 
  .transport-card__name {
    font-family: var(--font-display);
    font-size: 1.15rem;
    font-weight: 600;
    color: var(--color-ink);
    margin-bottom: 12px;
    line-height: 1.25;
    min-height: 2.6em;
  }
 
  .transport-card__lines {
    display: flex;
    justify-content: center;
    gap: 6px;
    margin-bottom: 16px;
    flex-wrap: wrap;
  }
 
  /* Badges de ligne RATP — vraies couleurs */
  .line-badge {
    width: 28px;
    height: 28px;
    border-radius: 50%;
    display: inline-grid;
    place-items: center;
    color: #fff;
    font-size: 13px;
    font-weight: 700;
    font-family: var(--font-body);
  }
 
  .line-badge--m2 { background: var(--ratp-2); }
  .line-badge--m4 { background: var(--ratp-4); }
  .line-badge--m12 { background: var(--ratp-12); }
  .line-badge--bus85 { background: var(--ratp-bus); color: #1F1A14; }
 
.transport-card {
    background: #fff;
    border: 1px solid rgba(86, 85, 85, 0.20);
    border-radius: 4px;
    padding: 20px 15px;
    text-align: center;
    transition: transform .3s cubic-bezier(.2,.8,.2,1), box-shadow .3s ease;
    position: relative;
    overflow: hidden;
}}
 
  .transport-card__time i {
    color: var(--color-accent);
    font-size: 12px;
  }


nav.breadcrumb-gallery {
    display: none !important;
}
/* ---------------------- */

@media only screen and (max-width : 1440px) {
section.banner .box-overlay .flex-home .photo-home {

	max-width: 55%;

}
  
}
@media only screen and (max-width : 1199px) {

 
/****/
  
section.banner .box-overlay .flex-home h2 {

	font-size: 45px;

}
section.home-content {
	padding: 60px 0;
}  
section.galerie-home .swiper-pagination {
	display: block;
}  
  
  section.home-content .chapo::before {
	
	top: -50px;

	width: 400px;
	height: 461px;

}
 section.banner .box-overlay .flex-home .cont {

	padding: 60px 0;

}
section.content.first, section.content.second {
	padding: 50px 0 140px;
}
section.content.first .flex-home .img-home.img1::before, section.content.second .flex-home .img-home.img1::before {
	height: 60px;
	top: -60px;
}
  section.pictos h2 {

	font-size: 17px;

}
  section.pictos .bx {

	padding: 20px;
}
  section.content.faq-home ,section.pictos , section.pictos2{
	padding: 60px 0;
}
  footer.bottom .bloc-center {
	width: 28%;
}
  footer.bottom .footer-wrapper {
	z-index: 1;
	gap: 15px;
}
  section.pictos::before {

	width: 400px;
	height: 460px;

}
  section.content.first .flex-home .img-home.img2, section.content.second .flex-home .img-home.img2 {

	width: 200px;
	height: 263px;

}
  section.parallax .box-para h3 {

	font-size: 27px;

}
  section.parallax ,section.parallax.part3{

	padding: 100px 0;
}
  .accordion-button {

	font-size: 18px;

}
  section.parallax .box-para::before {
	
	top: -100px;

}
  /**********/
  h1, .h1  {
    font-size: 42px;
}
h2, .h2 {
    font-size: 37px;
}

  /***/

  
}
@media only screen and (max-width : 991px) {
   .bloc-nav .navbar ul.level-0 > li:not(:last-child):before {
    display: none;
}
  
   .navbar-expand-md .navbar-nav {
    margin: 0 auto 20px;
            text-align: center;
}
  .bloc-top .bloc-right {
    margin: 0 auto;
}
.navbar li a.nav-link {
    margin: 0;
    text-align: center;
    color: var(--bs-white);
    display: inline-block;
    font-size: 15px;
    padding: 10px 0 !important;
}
  .bloc-nav .navbar li {
	margin: 0;
    text-align: center;
}
     header .navbar-nav .dropdown-menu {
    transform: none;
    background: var(--bs-black);
}
  	button.navbar-toggler::after, button.navbar-toggler::before {
        background: var(--bs-white);
    }
  	button.navbar-toggler[aria-expanded="false"]:after, button.navbar-toggler[aria-expanded="false"]:before {
        transform: none;
    }
  	button.navbar-toggler .navbar-toggler-icon {
        background-color: var(--bs-white);
    }
  	button.navbar-toggler[aria-expanded="true"] .navbar-toggler-icon {
        opacity: 0;
    }

    
    header .nav-item  {
        padding: 0 0px;
    }
  nav.navbar .navbar-collapse {
    position: absolute;
    top: 100%;
    left: 50%;
    transform: translateX(-50%);
    width: 100vw;
    background: var(--bs-dark);
    padding: 25px 0;
    text-align: left;
    z-index: 100;
}
  .navbar-nav .dropdown-menu {
	text-align: center;
	padding: 5px;
	background: transparent;
	border: none;
	left: 0;
	transform: none;
	border-radius: 0;
	min-width: 100%;
	/*display: block !important;*/
}

  .bloc-nav .navbar .submenu li {

	background: transparent;
}
  .navbar-nav .dropdown-menu .nav-item a.nav-link {
	margin: 0 !important;
}
  	header a.nav-link {
        font-size: 15px;
        display: table;
        margin: 0 auto;
    }

  nav.navbar:not(.bloc-nav.is-sticky .navbar) {
	margin-top: 0;
}

  button.navbar-toggler {
	margin: 10px auto !important;
}


  header nav.navbar.sticky-top {
	margin: 0 auto;
	display: table;
}
nav.navbar:not(.bloc-nav.is-sticky .navbar) {
    text-align: center !important;
}
  
  header.header-top .grid-top .bloc-nav:not(.is-sticky)::before {
	display: none;
}
  
 
  .bloc-top .navbar .navbar-nav> li:not(:first-of-type) > a.nav-link:after {
    display:none;
  }
header.header-top .banner-wrapper .col-lg-5 {
	padding-left: 15px;
}
    .head-top .container, .container, .max-container {
        max-width: 768px !important;
    }


  /*********/
  section.content.page-content.content-page a.link-picture, section.content.page-content.content-page a.link-subgallery {
      width: 32%;
  }
  /**********/
  section.content.page-content.content-page .grid-img .grid-gallery {
     
      margin: 0 auto 40px;
  }
  section.content.page-content.content-page .text-part{
    width: 100% !important;
  }
 

  h1, .h1  {
    font-size: 38px;
}
h2, .h2 {
    font-size: 33px;
}
h3, .h3 {
    font-size: 30px;
}
h4, .h4 {
    font-size: 27px;
}
h5, .h5 {
    font-size: 24px;
}
h6, .h6 {
    font-size: 20px;
}
  /****/
section.banner .box-overlay .flex-home {
	
	display: block;

}
  
  section.banner .box-overlay .flex-home .cont {
	padding: 0;
	max-width: 100%;text-align: center;
}
  
  section.banner .box-overlay .flex-home .photo-home {
	max-width: 400px;
	margin: 0 auto 20px;
}
  
  section.content.content-second .cont {
    max-width: 100%;
}
section.banner {
	height: 850px !important;
}
  section.banner .box-overlay {
	margin-top: 190px;
}
  section.content article.content .row .col-lg-4 .photo {
    height: auto;
    margin-bottom: 20px;
}
  section.content article.content .box-light.box3 {
    height: auto !important;
}
  section.banner .box-overlay .flex-home h2 {
	font-size: 34px;
	line-height: normal;
}
  section.banner .box-overlay .flex-home p {
	font-size: 28px;
}
/***/

  section.banner .carousel-indicators {
    margin-bottom: 20px;
}
  section.home-content ,  section.content.second , section.content.first , section.boxes , section.pictos , section.modules {
    padding: 60px 0;
}
 
 

  section.content .flex-home , section.content.first .flex-home {
    display: block;
}
 section.content .flex-home .cont {
    max-width: 100% !important;
    margin: 0 !important;
   padding: 0;
}
  section.content .flex-home .photo-home {
    margin: 0 auto 40px;
    max-width: 700px !important;
      height: 400px;
}
section.content.first .flex-home .img-home.img2, section.content.second .flex-home .img-home.img2 {
	width: 200px;
	height: 230px;
	right: -20px;
	bottom: -20px;
}
  section.content.second .flex-home .img-home.img2 {
	left: -20px;

}
 section.home-content h1, section.first h2, section.second h2 , section.modules h2 {
    margin-bottom: 20px;
}
  section.content.page-content.content-page a.link-picture, section.content.page-content.content-page a.link-subgallery {
    width: 49%;
}
/***/

footer.bottom {
	padding: 60px 0;
	text-align: center;
}
  footer.bottom .contact-item i {
    margin: 0 auto 10px;
}
  footer.bottom .social {
    margin: 20px auto;
}
  footer.bottom .contact-item.phone {
    margin: 20px 0;
}
  section.parallax.part3, section.parallax {
    padding: 80px 0;
}
  section.parallax , section.pictos .bg-pictos , section.pictos:before {
    background-attachment: inherit;
}
section.parallax .box-para h3 {
	font-size: 32px;
}
section.parallax.part3 .box-para, section.parallax .box-para {
	padding: 0;
}
  header.header-top .grid-top {
    padding: 10px 0 0;
    flex-direction: column;
}
  section.banner .box-overlay h2 {
    font-size: 35px;
}
  div#logo {
    padding-top: 15px;
}
  section.home-content .flex-home .photo-home:before {
    right: 0;
    background-size: contain;
    height: 150px;
    width: 150px;
    top: -45px;
}
 
section.parallax .box-para h2 {

	font-size: 30px;

}
 
section.pictos .pictos-slider ,section.pictos2 .pictos-slider {
    gap: 10px 15px;
    grid-template-columns: repeat(2, 1fr);
}
  section.content .btn-home {
    margin-top: 20px;
}
section.parallax p {

	font-size: 16px;
}
section.content.faq-home .flex-contact {
	display: block !important;

}
  section.content.faq-home .text {

	width: 100%;
}
section.content.faq-home .photo-faq {
	max-width: 500px;
	height: 300px;
	margin: 30px auto 0;
	width: 100%;
}
  footer.bottom .bloc-center {
	width: 100%;
	text-align: center;
	margin: 40px auto;
	max-width: 300px;
}
  .transport-grid {
  display: flex;
  grid-template-columns: inherit;
  gap: 16px;
  justify-content: center;flex-wrap: wrap;
}
  .transport-card {
	flex: 0 0 31%;
}
}
@media only screen and (max-width : 767px) {
  
 section.content .col-md-4 {
        width: 100%;
    }

    /* --- */
  .contactForm .contact-field-item {
    margin: 0 0 10px !important;
    position: relative;
    display: block;
    padding: 0;
    width: 100%!important;
    float: none;
    clear: none !important;
}
    .contactForm .contact-field-item:nth-child(even) {
        padding-right: 0;
    }
    .contactForm .contact-field-item:nth-child(odd) {
        padding-left: 0;
    }
    .contactForm .contact-submit {
        float: none !important;
        margin-top: 20px;
        display: table;
    }
  	.formhome .contactForm .contact-field-item:nth-child(odd) {
    padding-left: 0;
}
  .formhome .contactForm .contact-field-item:nth-child(even) {
    padding-right: 0;
}
  
  	.img-page, section.content article .NewsMasonry .NewsItem img.img-news-list, img.img-news {
        margin-left: auto !important;
        margin-right: auto;
        display: table;
    }
  	section.content.page-content.content-page .grid-gallery {
        grid-template-columns: repeat(2,1fr);
        grid-gap: 10px;
    }
  	section.content.page-content.content-page .link-picture {
        height: 300px;
    }
  
  section.content.page-content.content-page a.link-picture, section.content.page-content.content-page a.link-subgallery {
      width: 48.5%;
  }
 
  section.content.page-content.content-page ul#myTab li.nav-item {
	width: 49%;
}
 
  .box-light, .box-border-left, .box-border-right {
	height: auto !important;
}
     h1, .h1  {
    font-size: 35px;
}

h2, .h2  {
    font-size: 29px;
}
h3, .h3 , section.content .news-object.Item h3 {
    font-size: 24px;
}
h4, .h4 {
    font-size: 22px;
}
h5, .h5 {
    font-size: 20px;
}
h6, .h6 {
    font-size: 18px;
}
 /****/
section.banner .box-overlay .flex-home h2 {
	font-size: 30px;
	line-height: normal;
}
  section.banner .box-overlay .flex-home p {

	font-size: 25px;

}
  section.pictos .pictos-slider , section.pictos2 .pictos-slider{
    gap: 10px;
 /*   grid-template-columns: repeat(1, 1fr);*/
}
  section.pictos h2 {
    font-size: 20px;
}
 
 section.content.first .flex-home .img-home.img2, section.content.second .flex-home .img-home.img2 {
	
	right: -10px;

} 
  section.content.second .flex-home .img-home.img2 {
	left: -10px;
}
  section.parallax .box-para h2 {
	font-size: 21px;
	line-height: normal;
}
  section.parallax .box-para h3 {
	font-size: 20px;
}
  section.home-content h5, section.content.first h5, section.content.second h5, section.content.home h5 {

	font-size: 17px;
letter-spacing: 2px;

}
  .transport-card {
	flex: 0 0 47%;
}
}
@media only screen and (max-width : 480px) {
button.accordion-button {
	font-size: 16px;
	padding: 5px 10px 5px 5px;
}
  .accordion-button:not(.collapsed) {

	padding: 10px 10px 0;

}
  .accordion-body {
	padding: 4px 10px 10px !important;

}
  .box-light, .box-border-left, .box-border-right , .box-dark {
        padding: 12px;
}
  section.content .flex-home .photo-home {
    height: auto;
}
  footer.bottom .open span.day {
    display: block;
}
  section.pictos .pictos-slider , section.pictos2 .pictos-slider{
    gap: 10px;
    grid-template-columns: repeat(1, 1fr);
}
section.parallax .box-para h3 {
	font-size: 18px;
}

  header.header-top a.readmore {
    font-size: 14px;
}
  section.parallax.part3, section.parallax {
    padding: 60px 0;
}
  section.parallax.part3 .box-para, section.parallax .box-para, section.avis-clients .grid-home .text, section.avis-clients .grid-home .text {
    padding: 30px 10px;
}


section.parallax .box-para h2 {
	font-size: 18px;
	line-height: normal;
}

  section.modules div#AllNews .Item .read-more > a {
    padding: 14px 15px;
    min-width: 195px;
}
section.banner{
	height: 700px !important;
}
section.banner .box-overlay .flex-home h2 {
	font-size: 22px;

}
  section.banner .box-overlay .flex-home p {
	font-size: 18px;
}
section.banner .box-overlay {
	margin-top: 180px;
}
  section.home-content a.link-picture {

	height: 300px;

}
section.content.first .flex-home .img-home.img2, section.content.second .flex-home .img-home.img2 {
	width: 120px;
	height: 150px;

}
section.pictos .bx {
	padding: 10px 5px;
}
  section.pictos h2 {
	font-size: 16px;
	margin: 20px 0 0;
}
  section.home-content h5, section.content.first h5, section.content.second h5, section.content.home h5 {
	font-size: 13px;
	letter-spacing: 0px;
}
  section.parallax a.readmore {

	margin-top: 20px;
}
  .readmore, section.content .news-object.Item .read-more > a {

	padding: 20px 30px;

}
  footer.bottom .bloc-center li {

	padding: 10px 5px 10px 50px;

}
  /*****/
  	section.content.page-content.content-page .grid-gallery {
        grid-template-columns: 100%;
        grid-gap:10px;
    }
  section.content.page-content.content-page ul#myTab li.nav-item {
        width: 100%;
    }
  	/*********/
  section.content.page-content.content-page .grid-img .grid-gallery {
        width: 250px;
    }
section.content.page-content.content-page a.link-picture, section.content.page-content.content-page a.link-subgallery {
	width: 100%;
}
  .transport-grid {
	gap: 10px;
}
  .transport-card {
	flex: 0 0 100%;
}

    h1, .h1  {
    font-size: 28px;
}

h2, .h2  {
    font-size: 23px;
}
h3, .h3 , section.content .news-object.Item h3 {
    font-size: 21px;
}
h4, .h4 {
    font-size: 19px;
}
h5, .h5 {
    font-size: 18px;
}
h6, .h6 {
    font-size: 17px;
}

}