/* CUSTOM COLORS VARIABLES *******************/

:root {
    --main-color: #246b41;
    --highlight-color: #d0e554;
    --secondary-color: #d8d5d3;
    --gradient-color: linear-gradient(to right, var(--highlight-color), #67c265);
    --gradient-color2: linear-gradient(to right, #72997f, #65c265);
}
body {
    font-size: 18px;
    font-weight: normal;
    line-height: 24px;
}
b, strong {
    font-weight: 400;
    font-size: larger;
    text-shadow: 0 0 1px rgba(0, 0, 0, 1);
}
h1, h2, h3, h4, h5, h6 {
    font-weight: normal;
    text-transform: uppercase;
    text-box-trim: trim-both;
    text-box-edge: cap alphabetic;
    line-height: 1;
    font-weight: 900;
}
h1 small, h2 small, h3 small, h4 small, h5 {
    line-height: 1em;
    color: #212121;
    font-weight: 200 !important;
}
h2 strong {
    font-size: inherit;
    font-weight: 700;
    color: #CBE355;
    text-shadow: 0 0 1px;
}
.content h3:has(+ h5) {
    margin-bottom: 0.4em !important;
}
.content h3::after {
    content: '';
    position: absolute;
    left: 0;
    bottom: 0;
    width: 80px;
    height: 2px;
    background: #2e6b4f;
}
.content h2,
.content h3 {
    position: relative;
    padding-bottom: 20px;
}
.content h2::before,
.content h3::before {
    content: '';
    position: absolute;
    left: 80px;
    bottom: -3px;
    width: 8px;
    height: 8px;
    background: #2e6b4f;
    border-radius: 50%;
}
.content h2::after,
.content h3::after {
    content: '';
    position: absolute;
    left: 0;
    bottom: 0;
    width: 80px;
    height: 2px;
    background: #2e6b4f;
}
.content .text-center h2::before,
.content .text-center h2::after,
.content .text-center h3::before,
.content .text-center h3::after,

.content h2.text-center::before,
.content h2.text-center::after,
.content h3.text-center::before,
.content h3.text-center::after {
    left: 50%;
    transform: translateX(-50%);
}
hr {
    margin: 3rem 0;
}
.content p + h2,
.content ul + h2,
.content blockquote + h2,
.content p + h3,
.content ul + h3,
.content blockquote + h3 {
    margin-top: 3rem;
}

/* H2 CUSTOM *********************************

h2 {
    font-size: 52px;
    position: relative;
    margin-bottom: 70px;
}*/

/* H2 UNDERLINE ******************************

h2::after {
    content: '';
    display: block;
    width: 200px;
    height: 1px;
    background: var(--highlight-color);
    position: absolute;
    bottom: -30px;
    left: 0;
}
h2.text-center::after, h2[style*="text-align:center"]::after,
.text-center h2::after, [style*="text-align:center"] h2::after {
    transform: translateX(-50%);
    margin-left: 50%;
    left: auto !important;
}*/
header .preheader {
    background-color: #1a1a1a;
}
.preheader .btn {
    border-radius: 0;
    padding-top: 23px;
    padding-bottom: 23px;
    color: #1a1a1a !important;
    background: var(--highlight-color);
}
.btn::before {
    top: 50%;
    margin-top: -10px;
    height: 20px;
}
header.header-1.sticky {
    background-color: rgba(131, 170, 132, .5);
}
body:not(#page-1) header.header-wrap.header-1:not(.sticky) {
    background: url(../images/bg-header.jpg) no-repeat center top transparent;
    background-size: cover;
}
header.header-1 .main-menu ul>li>a {
    font-weight: normal;
    text-transform: uppercase;
    font-size: 20px;
    text-box-trim: trim-both;
    text-box-edge: cap alphabetic;
}
header.header-1 .main-menu ul>li>ul {
    border-radius: 10px;
}
header.header-1 .main-menu ul>li>ul>li>a {
    white-space: nowrap;
}
header.header-1 .main-menu ul>li>ul li a {
    font-size: 18px;
}
.mobile-nav__contact li {
    font-size: 18px;
    font-weight: normal;
}
.hero-1 .hero-contents h1 {
    color: var(--highlight-color);
    font-size: 46px;
    text-transform: none;
    line-height: 73px;
}

/* SLIDE HEADING *****************************/

.hero-1 .hero-contents h1 {
    color: #65c265;
    font-size: 72px;
    text-transform: none;
    font-family: 'Urbanist';
    font-weight: 900;
}
.hero-1 .hero-contents h1 small {
    color: #fff;
    font-size: 72px;
    text-transform: none;
    font-family: 'Urbanist';
    font-weight: 900;
}
.hero-1, .hero-1 .owl-item, .hero-1 .single-slide.bg-cover {
    height: calc(100vh);
    min-height: 700px;
    max-height: 1440px;
}
.hero-1 .hero-contents {
    top: 25%;
}
@media (min-width: 1601px) {
    .hero-1 .hero-contents {
        top: 18%;
    }
}
.hero-1 .hero-contents p, .parallax-wrap p, .video-content p {
    margin-bottom: 20px;
    color: #fff;
    font-size: 40px;
    font-weight: 200;
    line-height: 44px;
}
.hero-1 .single-slide.bg-cover::before {
    display: none;
}
.hero-social-elements .flp-text p {
    font-weight: 500;
}

/* CUSTOM BUTTONS ****************************/

.btn {
    color: #1a1a1a;
    line-height: 1;
    padding: 23px 53px;
    font-size: 20px;
    border-radius: 33px;
    letter-spacing: 1px;
    border-width: 0;
    text-box-trim: trim-both;
    text-box-edge: cap alphabetic;
}
.btn-primary, .btn-reverse.active, .btn-reverse:hover {
    background: var(--gradient-color);
}
.btn:hover {
    padding-left: 65px;
    padding-right: 41px;
}
.btn-primary.active, .btn-primary:hover, .btn-reverse {
    background: #67c265;
}
.btn-secondary {
    background-color: var(--secondary-color);
}
/* SERVICE CARD WITHOUT BORDERS **************/

.single-service-card {
    border: none;
    background-color: transparent;
    box-shadow: none;
}
.single-service-card .content {
    padding: 20px 0;
}
.single-service-card .content h4 {
    font-size: 16px;
}
.single-service-card .content .read-more {
    color: var(--highlight-color);
    text-transform: uppercase;
    font-weight: normal;
    font-size: 16px;
}
.img-container, .image-link {
    border-radius: 15px;
}
.image-link {
    overflow: hidden;
    display: inline-block;
}
.project-item-card .img-container.md {
    height: 486px;
}
.project-item-card .contents {
    left: 0;
    opacity: 1;
    visibility: visible;
}
p.lead a {
    color: var(--highlight-color);
}
@media (min-width: 1800px) {
    .d-xxl-block {
        display: block !important;
    }
}
@media (max-width: 1799px) {
    .d-xxl-block {
        display: none !important;
    }
}

.parallax-wrap::before {
    display: none;
}

/* PARALLAX POLYGON **************************

.parallax-wrap {
    background-color: #434F5B;
    padding: 10vh 10vh 8vh 10vh;
    min-height: 450px;
    transform: translate3d(0, 0, 0);
    clip-path: polygon(0 18%, 100% 0, 100% 100%, 0% 100%);
}*/

/* INVERSE FOOTER COLORS *********************

.footer-2 .footer-widgets-wrapper {
    background-color: #fff;
}
.footer-2 .footer-bottom {
    background-color: var(--main-color);
}
.footer-wrap .single-footer-wid.site_info_widget .single-contact-info .icon {
    color: var(--highlight-color)!important;
}
.footer-bottom * {
    color: #fff!important;
}*/

@media (min-width: 1600px) {
    .container, .container-lg, .container-md, .container-sm, .container-xl, .container-xxl {
        max-width: 1520px;
    }
}
@media (min-width: 1800px) {
    .container-padding {
        padding-left: 120px;
        padding-right: 120px;
    }
    header.header-1>.container-fluid,
    .hero-1 .container-fluid {
        padding: 30px 140px 20px 260px;
    }
}

#widget-10 {
    font-size: 36px;
    line-height: normal;
}
#widget-10 a[href^="tel:"] {
    font-size: 40px;
    color: var(--highlight-color) !important;
    line-height: 1;
    display: inline-block;
    margin-bottom: 15px;
}
#widget-10 a[href^="tel:"]::before {
    font-family: 'Font Awesome 6 Pro';
    content: '\f095';
    margin-right: 15px;
}
@media (max-width: 1400px) {
    .logo img {
        max-height: 150px;
    }
}
@media (max-width: 992px) {
    body {
        font-size: 16px;
        line-height: 22px;
    }
    header .preheader {
        height: 52px;
        line-height: 52px;
    }
    .preheader .btn {
        padding-top: 20px;
        padding-bottom: 20px;
    }
    .hero-1 .hero-contents {
        top: 30%;
    }
    .hero-1 .hero-contents h1, .hero-1 .hero-contents h1 small {
        font-size: 46px;
        line-height: 46px;
        margin-top: 0;
    }
    .hero-1 .hero-contents p, .parallax-wrap p, .video-content p {
        font-size: 22px;
        line-height: 28px;
        margin-bottom: 0;
    }
    .btn {
        font-size: 16px;
        padding-left: 40px;
        padding-right: 40px;
        letter-spacing: 0px;
    }
    .btn:hover {
        padding-left: 52px;
        padding-right: 28px;
    }
    #widget-14 {
        font-size: 32px;
    }
    #widget-14 a[href^="tel:"] {
        font-size: 36px;
    }
}
figure.table td {
    padding: 10px;
}
.content  p.lead {
    border-left: 10px solid var(--highlight-color);
    line-height: 1.2;
    background: #212121;
    color: #fff;
    padding: 30px;
    border-radius: 20px;
}
.blog-wrapper .single-blog-post .post-content .post-cat a:hover, .footer-2 .footer-widgets-wrapper, .project-item-box .project-link:hover, .project-item-card .contents .project-link:hover {
    background: var(--gradient-color2);
}
footer .btn {
    background: var(--main-color);
}
#widget-8 {
    background: #f2faf2;
}
#widget-8 h2 {
    color: #48ac6a;
}
@media(min-width: 1800px) {
    .hero-1 .single-slide.bg-cover::after {
        display: block;
        content: url(../images/feuille-1.png);
        position: absolute;
        bottom: -15px;
        left: 90px;
        z-index: 1;
        opacity: 0.7;
    }
}
@media(min-width: 1200px) {
    .hero-1 .single-slide.bg-cover::before {
        display: block;
        content: url(../images/feuille-2.png);
        position: absolute;
        bottom: -10px;
        right: clamp(0px, calc(100% - 800px - 191px), 300px);
        width: 291px;
        height: 628px;
        z-index: 1;
        width: auto;
        height: auto;
        background: none;
        opacity: 0.7;
    }
}
.video-background {
    border-radius: 0;
}
.video-background::before {
    background: linear-gradient(to right, #455b44, #abbd42);
    opacity: .6;
}
.video-background video {
    min-height: 575px;
    max-height: 600px;
}
.video-content p {
    font-size: inherit;
}
.video-content h2 {
    font-size: 48px;
    line-height: normal;
    margin-bottom: 40px;
}
.video-content h4 {
    font-size: 28px;
    margin-bottom: 20px;
    margin-top: 8px;
    font-weight: 500;
}
#cookies-notice, #toTop:hover, .page-banner-wrap::before {
    background: linear-gradient(to left, var(--main-color), #65C265);
}
@media (max-width: 991px) {
    .col:not([class*=" col-sm-"]):not([class*=" col-md-"]):not([class*=" col-lg-"]):not([class*=" col-xl-"]):not([class*=" col-xxl-"]) {
        width: 100%;
        flex: 0 0 100%;
        max-width: 100%;
    }
}