/* basics */

.body-editmode section[data-qsedit].qs-edit-in > .qs-menu,
.body-editmode section[data-qsedit].qs-edit-out > .qs-menu,
.body-editmode section[data-qsedit].qs-edit-top > .qs-menu {
    margin-left: 80px !important;
}

html, body {
    min-height: 100%;
}

html {
    scroll-padding-top: 100px;
}

body.mce-content-body {
	padding: 15px;
    height: auto;
    min-height: auto;
}

b, strong {
    font-weight: 800;
}

.navbar {
    z-index: 1020;
}

.navbar .nav-link,
.navbar .dropdown-menu a {
    transition: all 0.8s ease-out;
}

.navbar-nav .nav-link.active, .navbar-nav .nav-link.show,
.navbar .nav-link:hover,
.navbar .dropdown-menu a:hover,
.dropdown-menu li.active a,
.dropdown-menu div.active > ul > li:first-child > a {
    color: var(--bs-primary) !important;
    transition: all .3s ease-out;
}

a:focus {
	outline: none;
}

.tplHtmlBodyHome header {
    /* background: linear-gradient(180deg, rgba(102,116,242,0.5) 0%, rgba(255,255,255,0) 100%); */
    background: linear-gradient(180deg, rgba(33,37,41,0.6) 0%, rgba(33,37,41,0) 40%);
}

.tplHtmlBodyHome header,
.tplHtmlBodyHome .bgmovie,
.tplHtmlBodyHome .bgmovie video,
.tplHtmlBodyHome .tplSectionCarouselHome {
    height: 65vh;
    width: 100%;
}

.tplHtmlBodyHome .bgmovie,
.tplHtmlBodyHome .tplSectionCarouselHome {
    position: absolute;
    z-index: -1;
    overflow: hidden;
}

.tplHtmlBodyHome .bgmovie video {
    display: block;
    object-fit: cover;
    object-position: center center;
}

.video-background {
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    z-index: -1;
}
.video-foreground,
.video-background iframe {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    pointer-events: none;
}

@media (min-aspect-ratio: 16/9) {
    .video-foreground {
        height: 300%;
        top: -100%;
    }
}
@media (max-aspect-ratio: 16/9) {
    .video-foreground {
        width: 300%;
        left: -100%;
    }
}

@keyframes AnimationGradient {
    0%{background-position:0% 50%}
    50%{background-position:100% 50%}
    100%{background-position:0% 50%}
}

.bg-light-hover:hover {
	background-color: #F6F6F6;
    transition: background-color .2s ease-out;
}

.body-overlay,
.bg-project {
    color: #FFFFFF;
    background-color: #2b1cb9;
    /*
    background: linear-gradient(45deg, #1d1e3e, #334082, #27598a, #3f3986, #0f183e);
    background-size: 200% 200%;
    animation: AnimationGradient 10s ease infinite;
    */
}

.truncate-2l {
    -webkit-line-clamp: 2;
    display: -webkit-box;
    -webkit-box-orient: vertical;
    overflow: hidden;
    text-overflow: ellipsis;
    height: 2.4em;
    line-height: 1.2em;
}
@media (min-width: 768px) {
    .columns-2 {
        columns: 2;
    }
    .columns-3 {
        columns: 3;
    }
    .columns-4 {
        columns: 4;
    }
    .columns-5 {
        columns: 5;
    }
    .break-inside-avoid-column {
        -moz-column-break-inside: avoid;
        break-inside: avoid-column;
    }
}

/* .bg-custom-gradient */

.body-overlay {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    opacity: 0;
    visibility: hidden;
    /* background: linear-gradient(110deg, rgba(98,138,199,.9) 0%, rgba(140,198,63,0.9) 130%); */
}

.body-overlay.active {
    opacity: 0.9;
    visibility: visible;
    z-index: 1001;
    transition: all 0.8s ease-out;
}

.text-shadow {
	text-shadow: 0px 0px 20px rgba(0, 0, 0, 0.7);
}

/* system */

.SystemTable {
    text-align: left;
}

.system-message {
    font-size: inherit;
}

.systemfooter p {
    margin-bottom: 0rem;
}

/* images */

img.contain {
    object-fit: contain;
    padding: 15px;
}

img.cover {
    object-fit: cover;
}

img.cover-top {
    object-position: top center;
}

img.scale-down {
    object-fit: scale-down;
}

img.none {
    object-fit: none;
}

table.table td p {
    margin-bottom: 0;
}

.bg-initial {
	background: initial;
}

.bg-cover {
	background-size: cover;
    background-position: center center;
}

.bg-contain {
	background-size: contain;
    background-position: center center;
}

.border-transparent {
    border-color: transparent !important;
}

.mt-n1px {
    margin-top: -1px;
}

/* hover, combinable avec https://animate.style/ */

a:hover .d-flex-hover {
	display: flex !important;
}

a:hover .d-block-hover {
	display: block !important;
}

a:hover .d-inline-block-hover {
	display: inline-block !important;
}

/* formulaires */

.g-recaptcha {
    display: inline-block;
}

.has-error .form-control {
    border-color: #fa3737;
}

.has-error .form-control-feedback {
    color: #fa3737;
}

i.form-control-feedback {
    display: block;
    float: right;
    margin-top: -33px;
    padding-right: 10px;
    font-size: 20px;
}

/* BS4, BS5, stop stretched-link cover / hack from doc Bootstrap ABR/MBE */

.no-stretched-link {
	z-index: 2;
}

/* customs by project */

.bg-hover-primary:hover {
    background: linear-gradient(110deg, rgba(98,138,199,1) 0%, rgba(140,198,63,1) 130%) !important;
}

.bg-hover-primary:hover * {
    color: #ffffff !important;
}

.bg-hover-primary:hover .qs-menu .dropdown-menu * {
    color: initial !important;
}

.primary-gradient {
    background: linear-gradient(110deg, rgba(98,138,199,1) 0%, rgba(140,198,63,1) 130%);
}

.primary-gradient article a, .primary-gradient article a:hover {
	color: #fff;
    text-decoration: underline;
}

.primary-gradient a:hover {
	opacity: 0.8;
}

.bg-light-green {
    background: #e0f2c6;
    /* background: rgb(246 250 240); */
}

.tplDphChilds .border-gradient:before {
    content: '';
    position: absolute;
    left: 0;
    width: 3px;
    height: 100%;
	background: linear-gradient(45deg, rgba(98,138,199,1) -30%, rgba(140,198,63,1) 150%);
}

.dark-opacity {
    background: rgba(0,0,0,0.75);
}

.tplSectionCarouselHome .carousel-item img {
    height: 620px;
	max-height: 70vh;
}

.carousel-indicators a.active .icon {
    display: none !important;
}
.carousel-indicators a.active .icon-active {
    display: inline !important;
}
.carousel-indicators a:nth-child(2) {
	transform: rotate(45deg);
}
.carousel-indicators a:nth-child(3) {
	transform: rotate(90deg);
}
.carousel-indicators a:nth-child(4) {
	transform: rotate(135deg);
}
.carousel-indicators a:nth-child(5) {
	transform: rotate(180deg);
}
.carousel-indicators a:nth-child(6) {
	transform: rotate(225deg);
}
.carousel-indicators a:nth-child(7) {
	transform: rotate(270deg);
}
.carousel-indicators a:nth-child(8) {
	transform: rotate(315deg);
}

.tplDphDossierSpecial {
	position: absolute;
    z-index: 3;
    right: 0;
    bottom: 0;
}

.tplDphDossierSpecial a {
    display: table-caption;
}

header .logo {
    width: 80px;
}

@media (min-width: 991px) {
    .tplDphDossierSpecial {
        width: 35vw;
    }
    header .logo {
        width: 100px;
    }
}

@media (max-width: 767px) {
    .tplContextTabs h5 {
    	font-size: 14.5px;
    }
    .tplContextTabs .tab-pane small {
    	font-size: .75em !important;
    }
    #news-carousel .display-1 {
        font-size: 4rem;
    }
}


.navbar .nav-link {
    font-size: 20px;
}


.navbar .dropdown-menu a {
    transition: all 0.8s ease-out;
}

.breadcrumb-item+.breadcrumb-item::before {
    color: inherit;
}

article ul li,
body.mce-content-body ul li {
    display: block;
	line-height: 1.2em;
    padding: 5px 0px;
}

article ul li:before,
body.mce-content-body ul li:before {
    display: inline-block;
    width: 30px;
    font-size: 13px;
    font-family: "Font Awesome 6 Pro";
    font-weight: 500;
    font-size: inherit;
    text-rendering: auto;
    content: "\f111";
    color: var(--bs-primary);
    margin-left: -30px;
}

article table.table td a {
	display: inline-block;
    white-space: nowrap;
    max-width: 100%;
    overflow: hidden;
    text-overflow: ellipsis;
    vertical-align: inherit;
}

@media (max-width: 767px) {
    article table.table,
    article table.table tbody,
    article table.table tr,
    article table.table td {
        display: block;
        width: 100% !important;
        width: auto !important;
        height: auto !important;
        text-align: left !important;
    }
    article table.table td {
        padding: 5px 15px !important;
    }
    article table.table td p {
        margin: 0px !important;
        padding: 0px !important;
        text-align: left !important;
    }
    .tplDphHeaderLinks .fa-3x {
        font-size: 2rem;
        font-weight: 300;
    }
    .btn-group label {
        font-size: 0.85rem;
    }
}


.btn-up {
    display: none;
    transition: all 0.5s ease-out;
    bottom: 40px;
    right: 40px;
    width: 55px;
    height: 55px;
    z-index: 10;
    opacity: 0;
}

.body-scroll .btn-up {
    display: block;
    opacity: 1;
    transition: all 1.5s ease-out;
}

.tplContextTabs nav .nav-link.active {
	background-color: #fff !important;
    color: #000 !important;
}

.tplContextTabs nav .nav-link.active svg * {
	fill: #000;
}

/* FIGCAPTION */

.caption {
    color: #FFFFFF;
    font-size: .875em;
}

.caption-vertical {
    margin-top: -30px;
    transform: rotate(-90deg);
    transform-origin: top left;
}

/* a verifier pourquoi encore nécessaire avec BS5 > ABR */

.dropdown-toggle:after {
    -webkit-font-smoothing: antialiased;
    display: inline-block;
    font-style: normal;
    font-variant: normal;
    text-rendering: auto;
    line-height: 1;
    font-family: "Font Awesome 6 Pro";
    font-weight: 900;
    content: "\f107";
}

/* deapsearch custom classes */

.btn.active .d-none {
    display: block !important;
}

.btn.btn-dark.active {
    border: none;
    border-left: solid 5px #fa3737 !important;
}

.btn.btn-light.active {
    border: none;
    border-left: solid 5px #fa3737 !important;
}

.splide .splide__arrows button {
    transition: all 0.3s ease-out;
}

.splide:hover .splide__arrows button {
    opacity: 0.3 !important;
}

.splide .splide__arrows button:hover {
    opacity: 1 !important;
    cursor: pointer;
}

.body-editmode .splide .container {
    overflow-x: hidden;
}

.body-editmode .splide .splide__track {
    overflow: visible;
    z-index: 1;
}
