:root {}

/* --- RESIZE CONTAINER --- */
@media screen and (min-width: 1400px) {
    .container, .container-lg, .container-md, .container-sm, .container-xl, .container-xxl {
        max-width: 1640px;
    }
}

/* --- HELPERS --- */
.wysiwyg p:last-child { margin-bottom: 0; }

/* --- STICKY-TOP --- */
.sticky-top { position: initial; z-index: 1; }
@media screen and (min-width: 1200px) {
    .sticky-top { position: sticky; top: 120px; }
}

/* --- BTN --- LINKS --- */
.btn { border-width: 2px; }
.btn-info { background: var(--info); border-color: var(--info); color: var(--white); }
.btn-info:hover { background: var(--white); border-color: var(--info); color: var(--info); }
.link { color: var(--text); }


nav { border-bottom: none; }
/* --- NAV-CONTACT --- */
nav .nav-contact { 
    background: var(--secondary);
    color: var(--white);
    font-size: .75rem; 
}
@media screen and (min-width: 1200px) {
    nav .nav-contact .col-number { border-right: 2px solid rgb(255,255,255, 30%); }
}
nav .nav-contact .notice > * { line-height: 1; }

/* --- NAV-MENU --- */
nav .nav-menu { background: var(--light-dark-hover); }
nav .nav-menu .content ul.menu > li.light > a { font-weight: 300; }
nav .nav-menu .content ul.menu > li.colored > a {
    background: none;
    padding: 0!important;
    margin: 0 0 0 10px;
    height: auto;
    border-radius: 0;
    color: var(--text);
}
nav .nav-menu .content ul.menu > li.colored > a .menu-title { position: relative; }
nav .nav-menu .content ul.menu > li.colored > a .menu-title::before {
    content: '';
    position: absolute;
    left: 0;
    bottom: -.25rem;
    width: 100%;
    height: .13rem;
    background: var(--link);
}
nav .nav-menu .content ul.menu > li.colored > a .menu-title::after {
    content: '';
    position: absolute;
    bottom: -.25rem;
    right: 0;
    width: 0;
    height: .13rem;
    background: var(--link-hover);
    transition: width .350s ease-in-out;
    -webkit-transition: width .350s ease-in-out;
}
nav .nav-menu .content ul.menu > li.colored:hover > a {
    background: none;
    color: var(--link-hover);
}
nav .nav-menu .content ul.menu > li.colored:hover > a .menu-title::after {
    left: 0;
    width: 100%;
}
.nav-burger .burger-menu { display: flex; align-items: center; }
.nav-burger .burger-menu .burger-title { font-weight: 600; text-transform: uppercase; }


/* --- COL-JUMBO-CAROUSEL --- */
.col-jumbo-carousel { position: relative; }
.col-jumbo-carousel > .background { 
    position: absolute;
    top: -1px;
    right: 0;
    bottom: var(--spacer);
    left: 0;
    background: var(--light-dark-hover);
}
@media screen and (min-width: 768px) {
    .col-jumbo-carousel > .background { 
        bottom: calc(var(--spacer) * 2);
    }
}
@media screen and (min-width: 1200px) {
    .col-jumbo-carousel > .background { 
        bottom: calc(var(--spacer) * 3);
    }
}
.col-jumbo-carousel .col-banner {
    position: absolute;
    z-index: 20;
    top: 0;
    right: calc(var(--bs-gutter-x) * .5);
    left: calc(var(--bs-gutter-x) * .5);
    display: flex;
    align-items: flex-end;
    color: var(--white);
    background: rgb(39,49,70);
    background: linear-gradient(90deg, rgba(39,49,70,1) 0%, rgba(39,49,70,0) 100%); 
}
.col-jumbo-carousel .col-banner .logo {
    object-fit: contain;
    height: 60px;
}
@media screen and (min-width: 768px) {
    .col-jumbo-carousel .col-banner .logo { height: 95px; }
}
.col-jumbo-carousel .col-banner .content > * { 
    line-height: 1;
    font-weight: bold;
}
@media screen and (min-width: 768px) {
    .col-jumbo-carousel .col-banner .content .subtitle { font-size: calc(1.275rem + .3vw); }
}
.col-jumbo-carousel .col-banner .content .title { font-size: 1.275rem; }
@media screen and (min-width: 768px) {
    .col-jumbo-carousel .col-banner .content .title { font-size: 2.125rem; }
}
.col-jumbo-carousel .carousel-home { position: relative; }
.col-jumbo-carousel .carousel-home .item { 
    position: relative; 
    height: 500px;
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
}
.col-jumbo-carousel .carousel-home .item .background { 
    position: absolute; 
    top: 0;
    left: 0;
    height: 100%;
    width: 100%;
}
.col-jumbo-carousel .carousel-home .item .background img { 
    object-fit: cover;
    width: 100%;
    height: 100%;
}
.col-jumbo-carousel .carousel-home .item .content {
    position: relative;
    z-index: 10;
}
.col-jumbo-carousel .carousel-home .item .content .title {
    font-weight: bold;
    font-size: 2.125rem;
}
@media screen and (min-width: 768px) {
    .col-jumbo-carousel .carousel-home .item .content .title {
        font-size: 2.75rem;
    }
}
@media screen and (min-width: 1200px) {
    .col-jumbo-carousel .carousel-home .item .content .title {
        font-size: 3.375rem;
    }
}
.col-jumbo-carousel .carousel-home .item .content .subtitle {
    font-weight: bold;
}
@media screen and (min-width: 1200px) {
    .col-jumbo-carousel .carousel-home .item .content .subtitle {
        font-size: 1.5rem;
    }
}
.col-jumbo-carousel .carousel-home .owl-dots {
    position: absolute;
    right: calc(var(--bs-gutter-x) / 2);
    bottom: calc(var(--bs-gutter-x) / 2);
    margin-top: 0;
}
.col-jumbo-carousel .carousel-home .owl-dots .owl-dot span { 
    width: 16px;
    height: 16px;
    margin: 5px; 
    background: var(--white); 
    border: 3px solid var(--gray); 
    transition: var(--transition);
}
.col-jumbo-carousel .carousel-home .owl-dots .owl-dot.active span, 
.col-jumbo-carousel .carousel-home .owl-dots .owl-dot:hover span { background: var(--white); border-color: var(--white); }



.col-cta-about {}
.col-cta-bulletin {}
@media screen and (min-width: 768px) {
    .col-cta-bulletin .content {
        display: flex;
        align-items: center;
    }
}
.col-cta-bulletin .content img { 
    object-fit: contain;
    width: 100%;
}
@media screen and (min-width: 1200px) {
    .col-cta-bulletin .content img {
        width: 80%;
    }
}
@media screen and (min-width: 1200px) {
    .col-cta-bulletin .content .inner { margin-left: calc(var(--spacer) * -1)!important; }
}
.col-cta-bulletin .content .date {
    color: var(--gray);
    font-weight: bold;
    font-size: 1.5rem;
}
@media screen and (min-width: 768px) {
    .col-cta-bulletin .content .date {
        font-size: 1.75rem;
    }
}
@media screen and (min-width: 1200px) {
    .col-cta-bulletin .content .date {
        font-size: 2.125rem;
    }
}
.col-cta-bulletin .content .title {
    font-weight: bold;
    font-size: 1.125rem;
}
@media screen and (min-width: 768px) {
    .col-cta-bulletin .content .title {
        font-size: 1.25rem;
    }
}
@media screen and (min-width: 1200px) {
    .col-cta-bulletin .content .title {
        font-size: 1.5rem;
    }
}

.post-bulletin {}
@media screen and (min-width: 768px) {
    .post-bulletin .content {
        display: flex;
        align-items: center;
    }
}
.post-bulletin .content img { 
    object-fit: contain;
    width: 100%;
}
@media screen and (min-width: 1200px) {
    .post-bulletin .content img {
        width: 60%;
    }
}
@media screen and (min-width: 1200px) {
    .post-bulletin .content .inner { margin-left: calc(var(--spacer) * -.25)!important; }
}
.post-bulletin .content .date {
    color: var(--gray);
    font-weight: bold;
    font-size: 1.25rem;
}
@media screen and (min-width: 768px) {
    .post-bulletin .content .date {
        font-size: 1.5rem;
    }
}
@media screen and (min-width: 1200px) {
    .post-bulletin .content .date {
        font-size: 1.75rem;
    }
}
.post-bulletin .content .title {
    font-weight: bold;
    font-size: 1rem;
}
@media screen and (min-width: 768px) {
    .post-bulletin .content .title {
        font-size: 1.125rem;
    }
}
@media screen and (min-width: 1200px) {
    .post-bulletin .content .title {
        font-size: 1.25rem;
    }
}
.tpl-builder .builder-content .col-st-martinois .post-bulletin a { border-bottom: var(--link); color: var(--white); }


.col-cta-infos {}
.col-cta-infos .item-cta {}
.col-cta-infos .item-cta .col-deco { 
    position: relative;
    min-height: 174px;
}
@media screen and (min-width: 768px) {
    .col-cta-infos .item-cta .col-deco { min-height: auto; }
}
.col-cta-infos .item-cta .col-deco img { width: 100%; }
.col-cta-infos .item-cta .content { 
    background: var(--light); 
    height: 100%;
    display: flex;
    align-items: start;
    flex-direction: column;
    justify-content: center;
}
.col-cta-infos .item-cta .content .title {
    color: var(--info);
    font-weight: bold;
}
@media screen and (min-width: 1200px) {
    .col-cta-infos .item-cta .content .title { font-size: 1.125rem; }
}
.col-cta-infos .item-infos { 
    position: relative;
    background: var(--light-hover); 
}
@media screen and (min-width: 768px) {
    .col-cta-infos .item-infos .deco-line {
        content: '';
        position: absolute;
        top: 1.5rem;
        left: 30%;
        bottom: 1.5rem;
        width: 2px;
        background: var(--gray);
    }
}
@media screen and (min-width: 1200px) {
    .col-cta-infos .item-infos .deco-line {
        left: 33%;
    }
}
@media screen and (min-width: 1400px) {
    .col-cta-infos .item-infos .deco-line {
        left: 30%;
    }
}
.col-cta-infos .item-infos .row { margin-bottom: 1rem; }
@media screen and (min-width: 768px) {
    .col-cta-infos .item-infos .row { margin-bottom: var(--spacer); }
}
.col-cta-infos .item-infos .row:last-child { margin-bottom: 0; }
.col-cta-infos .item-infos .tel img { object-fit: contain; width: 60%; }

.tpl-builder .builder-content .shortcode .wysiwyg p { margin-top: 0; margin-bottom: 1rem; } 
.tpl-builder .builder-content .shortcode .wysiwyg p:last-child { margin-bottom: 0; } 
.tpl-builder .builder-content .shortcode .wysiwyg a { border-bottom: none; }


.col-cta-actu { background: var(--light-dark-hover); position: relative; }
.col-cta-actu .deco-line {
    position: absolute;
}
@media screen and (min-width: 1200px) {
    .col-cta-actu .deco-line {
        top: 3rem;
        bottom: 3rem;
        left: 50%;
        transform: translateX(-50%);
        width: 2px;
        background: var(--gray);
    }
}
.col-cta-actu .col-cta-agenda {}


.col-cta-periscolaire {}
.col-cta-periscolaire .col-item .content {
    border: 2px solid var(--light);
    height: 100%;
}
.col-cta-periscolaire .col-item .content .col-icon svg { object-fit: contain; width: 100%; }
.col-cta-periscolaire .col-item .content .actions { 
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    column-gap: var(--spacer);
    row-gap: calc(var(--spacer) * .5);
}




/* --- COL-TITLE --- */
.col-title { position: relative; }
.col-title .background { 
    position: absolute;
    top: 0;
    right: 0;
    bottom: var(--spacer);
    left: 0; 
    background: var(--light);
}
@media screen and (min-width: 768px) {
    .col-title .background { bottom: calc(var(--spacer) * 2); }
}
@media screen and (min-width: 1200px) {
    .col-title .background { bottom: calc(var(--spacer) * 3); }
}
.col-title .col-content { 
    position: relative; 
    z-index: 10; 
    color: var(--white);
}
.col-title .col-content .background {
    position: absolute;
    top: 0;
    right: calc(var(--spacer) * .5);
    bottom: 0;
    left: calc(var(--spacer) * .5);
    background: var(--secondary);
    z-index: -1;
}
.col-title .col-content .logo {
    object-fit: contain;
    height: 60px;
}
@media screen and (min-width: 768px) {
    .col-title .col-content .logo { height: 95px; }
}
.col-title .col-content .content > * { font-weight: bold; }

.col-title .col-content .col-back {
    position: relative;
    background: rgb(255,255,255, 10%);
    
}
.col-title .col-content .col-back::after {
    content: '';
    position: absolute;
    top: 0;
    right: calc(var(--spacer) * .5);
    bottom: 0;
    left: calc(100% - calc(var(--spacer) * .5));
    width: 0;
    background: var(--link);
    z-index: -1;
    transition: var(--transition);
}
.col-title .col-content .col-back:hover::after {
    left: calc(var(--spacer) * .5);
    width: calc(100% - var(--spacer));
}
@media screen and (min-width: 768px) {
    .col-title .col-content .col-back:hover::after {
        left: 0;
        width: calc(100% - calc(var(--spacer) * .5));
    }
}

.col-title .col-content .col-back .link {
    position: absolute;
    top: 0;
    left: 0;
    width: calc(100% - calc(var(--spacer) * .5));
    height: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
}
.col-title .col-content .col-back .link .arrow svg { transform: rotate(180deg); }


/* --- BREADCRUMB --- */
.breadcrumb { color: var(--gray); }
.breadcrumb a { color: var(--gray); }
.breadcrumb svg path { fill: var(--gray); }


/* --- COL-USEFUL-ADDRESSES --- */
.col-useful-addresses {}
.col-useful-addresses .section:last-child { margin-bottom: 0!important; }


/* --- COL-ITINERANT-TRADERS --- */
.col-itinerant-traders {}
.col-itinerant-traders .section:last-child { margin-bottom: 0!important; }


/* --- COL-STICKY --- */
.col-sticky {
    position: sticky;
    top: 83px;
    padding-top: calc(var(--spacer) * .5);
    padding-bottom: calc(var(--spacer) * .5);
    background: var(--white);
    z-index: 100;
}
@media screen and (min-width: 768px) {
    .col-sticky {
        position: initial;
        padding-top: 0;
        padding-bottom: 0;
    }
} 

/* --- NAV-INNER --- */
.nav-inner {}
@media screen and (min-width: 768px) {
    .nav-inner {
        position: sticky;
        top: 120px;
    }
}
.nav-inner ul {
    margin: 0!important;
    padding-left: 0!important;
    display: flex;
    flex-wrap: wrap;
}
@media screen and (min-width: 768px) {
    .nav-inner ul { 
        flex-direction: column; 
    }
}
.nav-inner ul li { display: flex; align-items: center; }
.nav-inner ul li a { 
    font-weight: bold; 
    padding: calc(var(--spacer) * .25) calc(var(--spacer) * .5); 
    border: 1px solid var(--light)!important; 
    box-shadow: 0px 0px 0px 1px rgba(238,238,238,.85);
    transition: var(--transition); 
    display: block; 
    width: 100%; 
}
@media screen and (min-width: 768px) {
    .nav-inner ul li a { border-bottom: none!important; padding: calc(var(--spacer) * .5); }
    .nav-inner ul li:last-child a { border-bottom: 1px solid var(--light)!important; }
}
.nav-inner ul li a.active,
.nav-inner ul li:hover a { color: var(--white)!important; background: var(--link); border-color: var(--link)!important; }



  /* --------------------------------- */
 /* --- TEMPLATE / CONTENT / ITEM --- */
/* --------------------------------- */

/* --- POST-ITEM --- */
.post-item { margin-bottom: var(--spacer); display: block; border-bottom: 0!important; transition: var(--transition); }
.post-item:last-child { margin-bottom: 0; }
.post-item:hover { box-shadow: var(--box-shadow); }
.post-item .col-deco { position: relative; min-height: 240px; }
@media screen and (min-width: 768px) {
    .post-item .col-deco { aspect-ratio: 1; min-height: auto; }
}
.post-item .col-deco .background {
    position: absolute;
    top: 0;
    left: calc(var(--spacer) * .5);
    width: calc(100% - var(--spacer));
    height: 100%;
}
@media screen and (min-width: 768px) {
    .post-item .col-deco .background { width: 100%; }
}
.post-item .col-deco .background img { 
    object-fit: cover;
    width: 100%;
    height: 100%;
}
.post-item .content .inner { background: var(--white); }
.post-item .content .inner .meta {
    display: flex;
    align-items: center;
    font-size: inherit;
    font-weight: bold;
    color: var(--gray);
}
.post-item .content .inner .meta a { color: var(--gray); }
.post-item .content .inner .meta .line {
    display: inline-block;
    height: 2px;
    width: 20px;
    background: var(--gray);
}


/* --- EVENT-ITEM --- */
.event-item { margin-bottom: var(--spacer); display: block; border-bottom: 0!important; transition: var(--transition); }
.event-item:last-child { margin-bottom: 0; }
.event-item:hover { box-shadow: var(--box-shadow); }
.event-item .col-deco { position: relative; min-height: 240px; }
@media screen and (min-width: 768px) {
    .event-item .col-deco { aspect-ratio: 1; min-height: auto; }
}
.event-item .col-deco .background {
    position: absolute;
    top: 0;
    left: calc(var(--spacer) * .5);
    width: calc(100% - var(--spacer));
    height: 100%;
}
@media screen and (min-width: 768px) {
    .event-item .col-deco .background { width: 100%; }
}
.event-item .col-deco .background img { 
    object-fit: cover;
    width: 100%;
    height: 100%;
}
.event-item .dates {
    display: flex;
    align-items: center;
    justify-content: center;
    column-gap: calc(var(--spacer) * .5);
    position: relative;
    z-index: 10;
    height: 100%;
    position: relative;
}
@media screen and (min-width: 768px) {
    .event-item .dates { width: calc(100% + var(--spacer)); }
}
.event-item .dates .date { text-align: center; min-width: 90px; box-shadow: var(--box-shadow); }
.event-item .dates .date .month {
    background: var(--danger);
    color: var(--white);
    text-transform: capitalize;
    font-weight: bold;
    padding: calc(var(--spacer) * .25) calc(var(--spacer) * .5);
}
.event-item .dates .date .day {
    background: var(--white);
    font-size: 1.5rem;
    font-weight: bold;
    padding: calc(var(--spacer) * .5);
}
.event-item .dates .date .day .notice { font-size: .75rem; display: block; }
.event-item .content .inner { background: var(--white); }
.event-item .content .inner .place { color: var(--gray); font-weight: bold; }
.event-item .content .inner .title { font-weight: bold; }


/* --- USEFULL-ADDRESSES-ITEM --- */
.useful-address-item { background: var(--light); padding: calc(var(--spacer) * .5); }
@media screen and (min-width: 768px) {
    .useful-address-item { padding: var(--spacer); }
}
.useful-address-item .badge { 
    background: var(--link);
    color: var(--white);
    padding: calc(var(--spacer) * .25);
    border-radius: 0;
}
.useful-address-item .excerpt p, 
.useful-address-item > * { margin: 0 0 calc(var(--spacer) * .5)!important; }
.useful-address-item > *:last-child { margin-bottom: 0!important; }


/* --- COMMERCES-ITEM --- */
.commerces-item { background: var(--light); padding: calc(var(--spacer) * .5); }
@media screen and (min-width: 768px) {
    .commerces-item { padding: var(--spacer); }
}
.commerces-item .excerpt p, 
.commerces-item > * { margin: 0 0 calc(var(--spacer) * .5)!important; }
.commerces-item > *:last-child { margin-bottom: 0!important; }


/* --- ASS-MAT-ITEM --- */
.ass-mat-item { background: var(--light); padding: calc(var(--spacer) * .5); }
@media screen and (min-width: 768px) {
    .ass-mat-item { padding: var(--spacer); }
}
.ass-mat-item .excerpt p, 
.ass-mat-item > .row > * > * { margin: 0 0 calc(var(--spacer) * .5)!important; }
.ass-mat-item > .row > * > *:last-child { margin: 0!important; }
.ass-mat-item .id-img { aspect-ratio: 1; border-radius: 50%; overflow: hidden; }
.ass-mat-item .id-img img { object-fit: cover; width: 100%; height: 100%; }


/* --- ITINERANT-TRADER-ITEM --- */
.itinerant-trader-item { background: var(--light); padding: calc(var(--spacer) * .5); }
@media screen and (min-width: 768px) {
    .itinerant-trader-item { padding: var(--spacer); }
}
.itinerant-trader-item .excerpt p, 
.itinerant-trader-item > .row > * > * { margin: 0 0 calc(var(--spacer) * .5)!important; }
.itinerant-trader-item > .row > * > *:last-child { margin: 0!important; }
.itinerant-trader-item .id-img { aspect-ratio: 1; border-radius: 50%; overflow: hidden; }
.itinerant-trader-item .id-img img { object-fit: cover; width: 100%; height: 100%; }


/* --- AGENT-ITEM --- */
.agent-item { background: var(--light); padding: calc(var(--spacer) * .5); }
@media screen and (min-width: 768px) {
    .agent-item { padding: var(--spacer); }
}
.agent-item .excerpt p, 
.agent-item > .row > * > * { margin: 0 0 calc(var(--spacer) * .5)!important; }
.agent-item > .row > * > *:last-child { margin: 0!important; }
.agent-item .id-img { aspect-ratio: 1; border-radius: 50%; overflow: hidden; }
.agent-item .id-img img { object-fit: cover; width: 100%; height: 100%; }


/* --- HEALTH-ITEM --- */
.health-item { background: var(--light); padding: calc(var(--spacer) * .5); }
@media screen and (min-width: 768px) {
    .health-item { padding: var(--spacer); }
}
.health-item .badge { 
    background: var(--link);
    color: var(--white);
    padding: calc(var(--spacer) * .25);
    border-radius: 0;
    margin-bottom: calc(var(--spacer) * .5);
}
.health-item .excerpt p, 
.health-item > .row > * > * { margin: 0 0 calc(var(--spacer) * .5)!important; }
.health-item > .row > * > *:last-child { margin: 0!important; }
.health-item .id-img { aspect-ratio: 1; border-radius: 50%; overflow: hidden; }
.health-item .id-img img { object-fit: cover; width: 100%; height: 100%; }


/* --- YOUTH-STRUCTURE-ITEM --- */
.youth-structure-item { background: var(--light); padding: calc(var(--spacer) * .5); }
@media screen and (min-width: 768px) {
    .youth-structure-item { padding: var(--spacer); }
}
.youth-structure-item .badge { 
    background: var(--link);
    color: var(--white);
    padding: calc(var(--spacer) * .25);
    border-radius: 0;
    margin-bottom: calc(var(--spacer) * .5);
}
.youth-structure-item .excerpt p, 
.youth-structure-item > .row > * > * { margin: 0 0 calc(var(--spacer) * .5)!important; }
.youth-structure-item > .row > * > *:last-child { margin: 0!important; }
.youth-structure-item .id-img { aspect-ratio: 1; border-radius: 50%; overflow: hidden; }
.youth-structure-item .id-img img { object-fit: cover; width: 100%; height: 100%; }


/* --- ASSOCIATION-ITEM --- */
.association-item { background: var(--light); padding: calc(var(--spacer) * .5); }
@media screen and (min-width: 768px) {
    .association-item { padding: var(--spacer); }
}
.association-item > .row > * > * { margin: 0 0 calc(var(--spacer) * .5)!important; }
.association-item > .row > * > *:last-child { margin: 0!important; }
.association-item .id-img { aspect-ratio: 1; border-radius: 50%; overflow: hidden; }
.association-item .id-img img { object-fit: cover; width: 100%; height: 100%; }


/* --- CONSEILS-MUNICIPAUX --- */
.col-conseils-municipaux {}
.col-conseils-municipaux .row-date:not(:last-child) {
    padding-bottom: calc(var(--spacer) * .25);
    margin-bottom: calc(var(--spacer) * .25);
    border-bottom: .125rem solid var(--light);
}
.col-conseils-municipaux .row-date .date {
    color: var(--info);
}
.col-conseils-municipaux .row-date .link:hover {
    border-color: var(--info);
}
.col-conseils-municipaux a.btn.btn-info {
    border-bottom-color: var(--info);
    color: var(--white);
}
.col-conseils-municipaux a.btn.btn-info:hover {
    border-bottom-color: var(--info);
    color: var(--info);
}

/* --- AFFICHAGES LEGAUX --- */
.col-legal-postings {}
.col-legal-postings .sector-title {
    margin-bottom: var(--spacer);
}
.col-legal-postings .legal-post:not(:last-child) {
    padding-bottom: calc(var(--spacer) * .5);
    margin-bottom: calc(var(--spacer) * .5);
    border-bottom: .125rem solid var(--light);
}
.col-legal-postings .legal-post .files-list {
    display: flex;
    flex-wrap: wrap;
    gap: calc(var(--spacer) * .5);
}
.col-legal-postings .legal-post .link:hover {
    border-color: var(--info);
}

/* --- EQUIPE MUNICIPALE --- */
.col-equipe-municipale {}
.col-equipe-municipale .id-img {
    border-radius: 50%;
    overflow: hidden;
}
.col-equipe-municipale .id-img img { object-fit: cover; width: 100%; height: 100%; aspect-ratio: 1; }
.col-equipe-municipale .alert-message {
    border: 2px solid var(--danger);
}
.col-equipe-municipale .alert-message > :first-child { margin-top: 0; }
.col-equipe-municipale .alert-message > :last-child { margin-bottom: 0; }
.col-equipe-municipale .alert-message h2 { color: var(--danger); }


/* --- COMMISSIONS-MUNICIPALES --- */
.col-commissions-municipales {}
.col-commissions-municipales .section .item { margin-bottom: var(--spacer); padding: calc(var(--spacer) * .5); background: var(--light); }
@media screen and (min-width: 768px) {
    .col-commissions-municipales .section .item { padding: var(--spacer); }
}
.col-commissions-municipales .section .item:last-child { margin-bottom: 0; }
.col-commissions-municipales .section .item .row { margin-bottom: calc(var(--spacer) * .5); }
.col-commissions-municipales .section .item .row:last-child { margin-bottom: 0; }
.col-commissions-municipales .section .item .untitled { font-weight: 600; }
.col-commissions-municipales .section .item .list-members { display: flex; flex-wrap: wrap; }
.col-commissions-municipales .section .item .list-members .member { margin-right: 1.125rem; position: relative; }
.col-commissions-municipales .section .item .list-members .member:last-child { margin-right: 0; }
.col-commissions-municipales .section .item .list-members .member::after { 
    content: '';
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    right: -.75rem;
    width: .375rem;
    height: 2px;
    background: var(--gray);
}
.col-commissions-municipales .section .item .list-members .member:last-child::after { display: none; }


/* --- COL-PHOTO-ID --- */
.col-photo-id {}
.col-photo-id .wysiwyg { padding: calc(var(--spacer) * .5); border: 2px solid var(--link); }
@media screen and (min-width: 768px) {
    .col-photo-id .wysiwyg { padding: var(--spacer); }
}
.col-photo-id .wysiwyg h1:nth-child(1),
.col-photo-id .wysiwyg h2:nth-child(1),
.col-photo-id .wysiwyg h3:nth-child(1),
.col-photo-id .wysiwyg h4:nth-child(1),
.col-photo-id .wysiwyg h5:nth-child(1),
.col-photo-id .wysiwyg h6:nth-child(1) { color: var(--link); }

/* --- COL-CHILD-PAGES --- */
.tpl-builder .builder-content .col-child-pages {}
.tpl-builder .builder-content .col-child-pages .link { border-bottom: 0; }
.tpl-builder .builder-content .col-child-pages .link .page-title {
    transition: var(--transition);
    border-bottom: solid 2px var(--gray);
}
.tpl-builder .builder-content .col-child-pages .link:hover .page-title {
    border-bottom: solid 2px var(--link);
}


/* --- COL-MAP --- */
.col-map {}
.col-map .eapps-google-maps .gm-style img {
    object-fit: contain;
    width: 100%;
    height: 80%;
}


/* --- TPL-BUILDER --- */
.tpl-builder {}
/* .tpl-builder .builder-content { clear: both; display: table; } */
.tpl-builder .builder-content h1,
.tpl-builder .builder-content h2,
.tpl-builder .builder-content h3,
.tpl-builder .builder-content h4,
.tpl-builder .builder-content h5,
.tpl-builder .builder-content h6,
.tpl-builder .builder-content p,
.tpl-builder .builder-content ul,
.tpl-builder .builder-content ol,
.tpl-builder .builder-content blockquote { margin: var(--spacer) 0; }
.tpl-builder .builder-content > .wysiwyg:first-child > *:first-child { margin-top: 0; }
.tpl-builder .builder-content > .row [class^=col-] > .wysiwyg > *:first-child,
.tpl-builder .builder-content > .row [class^=col-] > .wysiwyg > p:first-child img { margin-top: 0; }
.tpl-builder .builder-content > .row [class^=col-] > .wysiwyg > *:last-child,
.tpl-builder .builder-content > .row [class^=col-] > .wysiwyg > p:last-child img { margin-bottom: 0; }
.tpl-builder .builder-content h1,
.tpl-builder .builder-content h2,
.tpl-builder .builder-content h3,
.tpl-builder .builder-content h4,
.tpl-builder .builder-content h5,
.tpl-builder .builder-content h6 { font-weight: bold; }
.tpl-builder .builder-content hr { margin: calc(var(--spacer) * 2) 0px; clear: both; }
.tpl-builder .builder-content h1 { font-size: calc(1.255rem + 0.35vw); }
.tpl-builder .builder-content h2 { font-size: calc(1.155rem + 0.35vw); }
.tpl-builder .builder-content h3 { font-size: calc(1.055rem + 0.35vw); }
.tpl-builder .builder-content h4 { font-size: calc(0.955rem + 0.35vw); }
.tpl-builder .builder-content h5 { font-size: calc(0.855rem + 0.35vw); }
.tpl-builder .builder-content h6 { font-size: calc(0.755rem + 0.35vw); }
.tpl-builder .builder-content a { color: var(--text); border-bottom: solid 2px var(--gray); }
.tpl-builder .builder-content a:hover { color: var(--text); border-bottom: solid 2px var(--link); }
.tpl-builder .builder-content p img.alignleft { float: left; margin-right: var(--spacer); margin-bottom: calc(var(--spacer) / 2); width: 50%; height: auto; }
.tpl-builder .builder-content p img.alignright { float: right; margin-left: 30px; margin-bottom: 15px; width: 50%; height: auto; }
.tpl-builder .builder-content p img.aligncenter { margin: var(--spacer) auto; display: block; max-width: 100%; height: auto; }
.tpl-builder .builder-content p img.alignnone { margin: var(--spacer) auto; display: block; width: 100%; height: auto; }
.tpl-builder .builder-content blockquote { font-size: 135%; font-style: italic; padding: 0px var(--spacer); border: solid 2px var(--light); }
.tpl-builder .builder-content ul,
.tpl-builder .builder-content ol { padding-left: var(--spacer); }
.tpl-builder .builder-content ul li::marker,
.tpl-builder .builder-content ol li::marker { color: var(--gray); }
/* .tpl-builder .builder-content .gallery { display: grid; grid-template-columns: repeat(auto-fill, 25%); grid-gap: calc(var(--spacer) * .25); place-content: center; }
.tpl-builder .builder-content .gallery dl { margin: 0px; }
.tpl-builder .builder-content .gallery dl:nth-child(1) { grid-area: 1 / 1 / 3 / 3; }
.tpl-builder .builder-content .gallery dl:nth-child(2) { grid-area: 1 / 3 / 2 / 4; }
.tpl-builder .builder-content .gallery dl:nth-child(3) { grid-area: 1 / 4 / 2 / 5; }
.tpl-builder .builder-content .gallery dl:nth-child(4) { grid-area: 2 / 3 / 3 / 4; }
.tpl-builder .builder-content .gallery dl:nth-child(5) { grid-area: 2 / 4 / 3 / 5; }
.tpl-builder .builder-content .gallery dl dt { height: 100%; }
.tpl-builder .builder-content .gallery dl dt img { width: 100%; height: 100%; object-fit: cover; }
.tpl-builder .builder-content .gallery br { display: none !important; } */
.tpl-builder .builder-content .shortcode h1,
.tpl-builder .builder-content .shortcode h2,
.tpl-builder .builder-content .shortcode h3,
.tpl-builder .builder-content .shortcode h4,
.tpl-builder .builder-content .shortcode h5,
.tpl-builder .builder-content .shortcode h6 { margin-top: 0; }
.tpl-builder .builder-content .shortcode .wysiwyg p { margin-top: 0; margin-bottom: var(--spacer); } 
.tpl-builder .builder-content .shortcode .wysiwyg p:last-child { margin-bottom: 0; } 
.tpl-builder .builder-content .shortcode a { border-bottom: none; }
.tpl-builder .builder-content iframe {
    width: 100%;
    aspect-ratio: 16/9;
    height: 100%;
}


/* --- TPL-BUILDER MASONRY --- */
.tpl-builder .builder-content .masonry { margin: 0 calc(var(--spacer) * -.25); }
.tpl-builder .builder-content .masonry .masonry-sizer,
.tpl-builder .builder-content .masonry .masonry-item { width: 100%;}
@media (min-width: 768px) {
    .tpl-builder .builder-content .masonry .masonry-sizer,
    .tpl-builder .builder-content .masonry .masonry-item { width: 50%;}
}
.tpl-builder .builder-content .masonry .masonry-content { margin: calc(var(--spacer) * .25); }

/* --- TPL-BUILDER PLANNING-SCOLAIRE --- */
.tpl-builder .planning-scolaire {}
.tpl-builder .planning-scolaire thead tr:nth-child(1) th { font-size: 1.125rem; }
.tpl-builder .planning-scolaire thead tr:nth-child(2) th { text-align: center; }
.tpl-builder .planning-scolaire tbody tr th { text-align: center; }
@media screen and (min-width: 768px) {
    .tpl-builder .planning-scolaire tbody tr th { text-align: left; }
}
.tpl-builder .planning-scolaire tbody tr td { text-align: center; vertical-align: middle; } 
.tpl-builder .planning-scolaire tbody tr:nth-child(1) td:nth-child(4) { vertical-align: middle; } 

/* --- PAGE-SINGLE --- */
.page-single article .editor > :first-child { margin-top: 0; }
.page-single article .editor > :last-child { margin-bottom: 0; }
.page-single .share {
    margin: var(--spacer) 0;
}
.page-single .share .socials {
    display: flex;
    column-gap: calc(var(--spacer) * .5);
    align-items: center;
}
.page-single .share .share-title {
    color: var(--gray);
    font-size: 90%;
    font-weight: bold;
    margin-bottom: calc(var(--spacer) / 4);
}
.page-single .share .socials button {
    background: none;
    border: none;
    padding: 0;
    transition: var(--transition);
}
.page-single .share .socials button:hover { opacity: .65; transform: scale(1.05); }
.page-single .single-nav a:hover {
    color: var(--link);
}

/* --- FOOTER --- */
footer { background: var(--light-hover); border-top: 0; }
footer .title { font-weight: bold; color: var(--gray); }
footer ul.menu {
    padding-left: 0;
    margin-bottom: 0;
    list-style: none;
}
footer ul.menu > li {
    display: flex;
    align-items: center;
    position: relative;
}
footer ul.menu > li::before {
    content: '';
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    left: calc(var(--spacer) * -.5);
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24'%3E%3Cpath fill='none' d='M0 0h24v24H0z'/%3E%3Cpath d='M12.172 12L9.343 9.172l1.414-1.415L15 12l-4.243 4.243-1.414-1.415z' fill='rgba(33,179,134,1)'/%3E%3C/svg%3E");
    width: 24px;
    height: 24px;
}
footer ul.menu > li > a {
    padding: calc(var(--spacer) * .25) calc(var(--spacer) * .5);
    color: var(--text);
    transition: var(--transition);
}
footer ul.menu > li > a:hover { color: var(--link-hover); }
footer .col-admin { background: var(--light-hover); }
footer .col-admin .logo img {
    object-fit: contain;
    width: 50%;
    height: 100%;
}
@media screen and (min-width: 768px) {
    footer .col-admin .logo img { width: 100%; }
}





/* --- FORMS --- */
.form-with-animated-labels .form-group { position: relative; }
.form-with-animated-labels .required::after {
    content: '';
    position: absolute;
    top: 6px;
    right: -3px;
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: var(--danger);
}
.form-with-animated-labels input:not([type="file"]), 
.form-with-animated-labels input[type="submit"],
.form-with-animated-labels textarea {
    padding: 1.5rem .375rem 0 calc(.375rem + 2px);
    border: 1px solid var(--gray);
    border-radius: 0;
}
.form-with-animated-labels input[type="file"] { background: var(--light); margin-top: calc(var(--spacer) / 6); }  
.form-with-animated-labels textarea { padding: 1.5rem .375rem 0 .75rem; }
.form-with-animated-labels textarea { 
    background: var(--light);
    border: 0;
}
.form-with-animated-labels input:focus {
    border-color: var(--link);
}
.form-with-animated-labels textarea:focus {
    border: 1px solid var(--link);
}
.form-with-animated-labels input.wpcf7-not-valid { border-color: var(--danger); }
.form-with-animated-labels textarea.wpcf7-not-valid { border: 1px solid var(--danger); }
.form-with-animated-labels input.wpcf7-not-valid:focus,
.form-with-animated-labels textarea.wpcf7-not-valid:focus  { border-color: var(--link); }
.form-with-animated-labels label {
    position: absolute;
    top: 50%;
    left: calc(.375rem + 5px);
    font-size: 90%;
    transform: translateY(-50%);
    color: var(--text);
    transition: all 0.25s ease-in-out;
    pointer-events: none;
}
.form-with-animated-labels .wpcf7-acceptance label { 
    position: inherit; 
    transform: inherit; 
    pointer-events: auto; 
    display: flex;
    align-items: flex-start;
    column-gap: calc(var(--spacer) / 6);
} 
.form-with-animated-labels .wpcf7-acceptance > * { margin-left: 0;}
.form-with-animated-labels .wpcf7-acceptance label:hover { cursor: pointer; }
.form-with-animated-labels select.form-select {
    font-size: 90%;
    padding: .75rem .375rem .75rem .375rem ;
    color: var(--text);
    background-color: var(--white);
    background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24'%3E%3Cpath fill='none' d='M0 0h24v24H0z'/%3E%3Cpath d='M12 15l-4.243-4.243 1.415-1.414L12 12.172l2.828-2.829 1.415 1.414z'/%3E%3C/svg%3E") no-repeat right center;
    border: 1px solid var(--gray);
    border-radius: 0;
}
.form-with-animated-labels select.form-select:focus {
    box-shadow: none;
    border-color: var(--link);
}
.form-with-animated-labels label.message {
    top: .85rem;
    left: calc(.375rem + 5px);
    transform: none;
}
.form-with-animated-labels label.active {
    top: 5px;
    transform: none;
    font-size: 80%;
    line-height: 1;
    color: var(--gray);
}
.form-with-animated-labels .icon {
    display: flex;
    align-items: center;
    font-size: 0.75rem;
    font-weight: 500;
    cursor: pointer;
    width: max-content;
    height: auto;
    transition: all .350s ease-in-out;
}
.form-with-animated-labels .icon:hover {
    color: var(--link);
}
.form-with-animated-labels .icon svg {
    width: 20px;
    height: 20px;
    margin-right: .45rem;
}
.form-with-animated-labels .icon svg path:nth-child(2) {
    fill: var(--text);
    transition: var(--transition);
}
.form-with-animated-labels .icon:hover svg path:nth-child(2) {
    fill: var(--link);
}
.wpcf7-form-control-wrap.info-file {
    width: 100%;
}
.form-with-animated-labels .wpcf7-not-valid-tip {
    position: absolute;
    bottom: 50%;
    transform: translateY(50%);
    right: .75rem;
    font-size: .65rem;
    color: var(--danger);
}
.form-with-animated-labels .info-message .wpcf7-not-valid-tip {
    bottom: 90%;
}
span.wpcf7-form-control-wrap {
    display: inline-block;
    width: 100%;
}
.wpcf7 form .wpcf7-response-output {
    margin: calc(var(--spacer) * .5) 0 0;
    padding: calc(var(--spacer) * .5);
    border: 2px solid #00a0d2;
}
.wpcf7 form.invalid .wpcf7-response-output, 
.wpcf7 form.unaccepted .wpcf7-response-output {
    border-color: var(--danger);
    background: var(--danger);
    color: var(--white);
}
.wpcf7 form.sent .wpcf7-response-output {
    border-color: var(--success);
    background: var(--success);
    color: var(--white);
    text-align: center;
}
.wpcf7 .ajax-loader {
    display: none;
}
.wpcf7-form-control:focus + .wpcf7-not-valid-tip { 
    display: none; 
}