/* Reset default top margins */
h1, h2, h3, h4, h5, h6, p, ul, ol, dl, dd, figure, blockquote {
  margin-top: 0;
}

:root {
  /* Colors */
  --color-white: #FFF;
  --color-black: #000;
  --color-green: #52924e;

  /* Hero section variables with fallbacks */
  --color-hero-label: var(--hero-label-color, var(--color-white));
  --font-hero-label: var(--hero-label-font, "Poppins");
  --size-hero-label: var(--hero-label-size, 42px);
  --weight-hero-label: var(--hero-label-weight, 500);
  
  --color-hero-title: var(--hero-title-color, var(--color-white));
  --font-hero-title: var(--hero-title-font, "Poppins");
  --size-hero-title: var(--hero-title-size, 84px);
  --weight-hero-title: var(--hero-title-weight, 600);
  
  --color-hero-cta: var(--hero-cta-color, var(--color-white));
  --bg-hero-cta: var(--hero-cta-bg, var(--color-black));
  --font-hero-cta: var(--hero-cta-font, "Poppins");
  --size-hero-cta: var(--hero-cta-size, 16px);
  --weight-hero-cta: var(--hero-cta-weight, 500);
  --radius-hero-cta: var(--hero-cta-radius, 0);

  --color-hero-overlay: var(--hero-overlay-color, var(--color-black));
  --opacity-hero-overlay: var(--hero-overlay-opacity, 0.5);

  /* More Info section variables with fallbacks */
  --color-more-info-label: var(--more-info-label-color, var(--color-green));
  --font-more-info-label: var(--more-info-label-font, "Poppins");
  --size-more-info-label: var(--more-info-label-size, 24px);
  --weight-more-info-label: var(--more-info-label-weight, 500);

  --color-more-info-title: var(--more-info-title-color, #2d2d2d);
  --font-more-info-title: var(--more-info-title-font, "Poppins");
  --size-more-info-title: var(--more-info-title-size, 54px);
  --weight-more-info-title: var(--more-info-title-weight, 400);

  --color-more-info-accent: var(--more-info-accent-color, var(--color-green));

  /* Objectif section variables with fallbacks */
  --color-objectif-label: var(--objectif-label-color, var(--color-green));
  --font-objectif-label: var(--objectif-label-font, "Poppins");
  --size-objectif-label: var(--objectif-label-size, 48px);
  --weight-objectif-label: var(--objectif-label-weight, 500);

  --color-objectif-paragraph: var(--objectif-paragraph-color, #2d2d2d);
  --font-objectif-paragraph: var(--objectif-paragraph-font, "Poppins");
  --size-objectif-paragraph: var(--objectif-paragraph-size, 26px);
  --weight-objectif-paragraph: var(--objectif-paragraph-weight, 400);

  --color-defis-subtitle: var(--defis-subtitle-color, #2d2d2d);
  --font-defis-subtitle: var(--defis-subtitle-font, "Poppins");
  --size-defis-subtitle: var(--defis-subtitle-size, 54px);
  --weight-defis-subtitle: var(--defis-subtitle-weight, 400);

  --color-defis-bullets: var(--defis-bullets-color, #111);
  --font-defis-bullets: var(--defis-bullets-font, "Poppins");
  --size-defis-bullets: var(--defis-bullets-size, 28px);
  --weight-defis-bullets: var(--defis-bullets-weight, 400);

  --color-objectif-cta: var(--objectif-cta-color, var(--color-white));
  --font-objectif-cta: var(--objectif-cta-font, "Poppins");
  --size-objectif-cta: var(--objectif-cta-size, 22px);
  --weight-objectif-cta: var(--objectif-cta-weight, 500);
  --bg-objectif-cta: var(--objectif-cta-bg, var(--color-green));

  --color-objectif-accent: var(--objectif-accent-color, var(--color-green));

  /* Gallery section variables with fallbacks */
  --color-gallery-title: var(--gallery-title-color, #2d2d2d);
  --font-gallery-title: var(--gallery-title-font, "Poppins");
  --size-gallery-title: var(--gallery-title-size, 54px);
  --weight-gallery-title: var(--gallery-title-weight, 400);

  --color-gallery-caption: var(--gallery-caption-color, #2d2d2d);
  --font-gallery-caption: var(--gallery-caption-font, "Poppins");
  --size-gallery-caption: var(--gallery-caption-size, 25px);
  --weight-gallery-caption: var(--gallery-caption-weight, 600);

  /* Partners section variables with fallbacks */
  --partners-name-font: var(--partners-name-font, "Poppins");
  --partners-name-size: var(--partners-name-size, 24px);
  --partners-name-weight: var(--partners-name-weight, 400);
  --partners-name-color: var(--partners-name-color, #181a20);
  --partners-counter-font: var(--partners-counter-font, "Poppins");
  --partners-counter-size: var(--partners-counter-size, 16px);
  --partners-counter-weight: var(--partners-counter-weight, 400);
  --partners-counter-color: var(--partners-counter-color, #181a20);
  --partners-description-font: var(--partners-description-font, "Poppins");
  --partners-description-size: var(--partners-description-size, 26px);
  --partners-description-weight: var(--partners-description-weight, 400);
  --partners-description-color: var(--partners-description-color, #181a20);
  --partners-accent-color: var(--partners-accent-color, #52924e);

  /* How Works section variables with fallbacks */
  --how-works-label-font: var(--steps-label-font, "Poppins");
  --how-works-label-size: var(--steps-label-size, 24px);
  --how-works-label-weight: var(--steps-label-weight, 500);
  --how-works-label-color: var(--steps-label-color, #52924e);

  --how-works-title-font: var(--steps-title-font, "Poppins");
  --how-works-title-size: var(--steps-title-size, 54px);
  --how-works-title-weight: var(--steps-title-weight, 400);
  --how-works-title-color: var(--steps-title-color, #2d2d2d);

  --how-works-headline-font: var(--steps-headline-font, "Poppins");
  --how-works-headline-size: var(--steps-headline-size, 28px);
  --how-works-headline-weight: var(--steps-headline-weight, 400);
  --how-works-headline-color: var(--steps-headline-color, #111);

  --how-works-text-font: var(--steps-text-font, "Poppins");
  --how-works-text-size: var(--steps-text-size, 16px);
  --how-works-text-weight: var(--steps-text-weight, 300);
  --how-works-text-color: var(--steps-text-color, #636363);

  --how-works-counter-font: var(--steps-counter-font, "Poppins");
  --how-works-counter-size: var(--steps-counter-size, 16px);
  --how-works-counter-weight: var(--steps-counter-weight, 400);
  --how-works-counter-color: var(--steps-counter-color, #337500);

  /* Stats section variables with fallbacks */
  --stats-bg-color: var(--stats-bg-color, #55924e);
  --stats-title-font: var(--stats-title-font, "Poppins");
  --stats-title-size: var(--stats-title-size, 54px);
  --stats-title-weight: var(--stats-title-weight, 400);
  --stats-title-color: var(--stats-title-color, #ffffff);
  --stats-value-font: var(--stats-value-font, "Poppins");
  --stats-value-size: var(--stats-value-size, 120px);
  --stats-value-weight: var(--stats-value-weight, 400);
  --stats-value-color: var(--stats-value-color, #ffffff);
  --stats-description-font: var(--stats-description-font, "Poppins");
  --stats-description-size: var(--stats-description-size, 20px);
  --stats-description-weight: var(--stats-description-weight, 500);
  --stats-description-color: var(--stats-description-color, #ffffff);
}

/* Fix transparent menu issue */
body:not(.menu-overlay) .menu-wrapper:not(.no-header) .menu-transparent:not(.is_stuck).menu-transparent.style-light-original {
  opacity: 1 !important;
}

body:not(.menu-overlay) .menu-wrapper:not(.no-header) .menu-transparent:not(.is_stuck).menu-transparent.style-light-original > * {
  background: transparent;
}

.menu-light .menu-smart a {
  color: #fff;
}

.wrapper {
  overflow: hidden;
  min-height: 100%;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
}

.page {
  -webkit-box-flex: 1;
      -ms-flex: 1 1 auto;
          flex: 1 1 auto;
  font-family: "Open Sauce One", sans-serif;
}

[class*=__container]:not(.pswp__container) {
  max-width: 1338px;
  margin: 0 auto;
  padding-inline: 64px;
}

@media (max-width: 767.98px) {
  [class*=__container]:not(.pswp__container) {
    padding-inline: 24px;
  }
}

.ibg {
  position: relative;
}
.ibg img,
.ibg video {
  position: absolute;
  width: 100%;
  height: 100%;
  top: 0;
  left: 0;
  -o-object-fit: cover;
     object-fit: cover;
  -o-object-position: center;
     object-position: center;
}

.decor-line {
  position: relative;
}
.decor-line::after {
  content: "";
  position: absolute;
  width: 286px;
  height: 0.5rem;
  bottom: 0;
  background: var(--color-more-info-accent);
}
@media (max-width: 767.98px) {
  .decor-line::after {
    width: 40%;
  }
}
.decor-line-right::after {
  right: 0;
}
.decor-line-left::after {
  left: 0;
}

.label {
  font-size: 24px;
  letter-spacing: -0.01em;
  color: #52924e;
}
@media (max-width: 1210px) {
  .label {
    font-size: calc(18px + 6 * (100vw - 320px) / 890);
  }
}

.title {
  font-size: 54px;
  line-height: 113%;
  letter-spacing: 0.02em;
  text-transform: capitalize;
  color: #2d2d2d;
}
@media (max-width: 1210px) {
  .title {
    font-size: calc(30px + 24 * (100vw - 320px) / 890);
  }
}

.header {
  padding-block: 30px;
  position: absolute;
  width: 100%;
  top: 0;
  left: 0;
  z-index: 100;
}
@media (max-width: 1210px) {
  .header {
    padding-block: calc(20px + 10 * (100vw - 320px) / 890);
  }
}
.header::after {
  content: "";
  position: absolute;
  width: 100%;
  height: 100%;
  top: 0;
  left: -120%;
  background: #28292a;
  z-index: 2;
  -webkit-transition: all 0.3s ease 0s;
  transition: all 0.3s ease 0s;
}
@media (max-width: 767.98px) {
  .header._active::after {
    left: 0;
  }
}
@media (max-width: 767.98px) {
  .header__container {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    gap: 0.9375rem;
  }
}
.header__body {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  gap: 30px;
  position: relative;
  z-index: 5;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
}
@media (min-width: 767.98px) {
  .header__body {
    margin-bottom: 1.625rem;
  }
}
@media (max-width: 767.98px) {
  .header__body {
    -webkit-box-flex: 1;
        -ms-flex: 1 1 auto;
            flex: 1 1 auto;
  }
}
.header__logo {
  max-width: 3.5625rem;
}
.header__actions {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 34px;
}
@media (max-width: 1210px) {
  .header__actions {
    gap: calc(15px + 19 * (100vw - 320px) / 890);
  }
}
.header__list {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  gap: 27px;
}
@media (max-width: 1210px) {
  .header__list {
    gap: calc(15px + 12 * (100vw - 320px) / 890);
  }
}
.header__link {
  text-transform: uppercase;
  font-family: "Poppins", sans-serif;
  font-weight: 500;
  font-size: 1rem;
  line-height: 150%;
  text-transform: uppercase;
  color: #fff;
  -webkit-transition: all 0.3s ease 0s;
  transition: all 0.3s ease 0s;
}
@media (any-hover: hover) {
  .header__link:hover {
    color: #52924e;
  }
}
.header__button {
  font-family: "Poppins", sans-serif;
  font-weight: 500;
  font-size: 1rem;
  line-height: 150%;
  text-transform: uppercase;
  padding: 0.875rem 1.5625rem;
  background: #52924e;
  color: #fff;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  gap: 0.5rem;
  border: 0.0625rem solid transparent;
  -webkit-transition: all 0.3s ease 0s;
  transition: all 0.3s ease 0s;
}
@media (max-width: 767.98px) {
  .header__button {
    font-size: 0.875rem;
    padding: 0.625rem 0.625rem;
  }
}
.header__button svg {
  height: 1.375rem;
  width: 1.375rem;
}
@media (any-hover: hover) {
  .header__button:hover {
    color: #52924e;
    border-color: #52924e;
    background: transparent;
  }
}

@media (max-width: 767.98px) {
  .header-menu {
    position: absolute;
    width: 100%;
    height: 100vh;
    top: 0;
    left: -120%;
    background: #28292a;
    padding: 120px 15px 30px;
    -webkit-transition: all 0.3s ease 0s;
    transition: all 0.3s ease 0s;
    overflow: auto;
    z-index: 1;
  }
  .header-menu._active {
    left: 0;
  }
}
.header-menu__list {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: end;
      -ms-flex-pack: end;
          justify-content: flex-end;
  gap: 44px;
}
@media (max-width: 1210px) {
  .header-menu__list {
    gap: calc(15px + 29 * (100vw - 320px) / 890);
  }
}
@media (max-width: 767.98px) {
  .header-menu__list {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    margin-bottom: 0.9375rem;
  }
}
.header-menu__link {
  font-family: "Poppins", sans-serif;
  font-weight: 500;
  font-size: 1rem;
  line-height: 150%;
  text-transform: uppercase;
  color: #fff;
  position: relative;
  display: block;
  overflow: hidden;
  padding-bottom: 0.3125rem;
}
.header-menu__link::after {
  content: "";
  position: absolute;
  width: 2.5rem;
  height: 0.1875rem;
  bottom: 0;
  left: -120%;
  background: #52924e;
  -webkit-transition: all 0.3s ease 0s;
  transition: all 0.3s ease 0s;
}
@media (any-hover: hover) {
  .header-menu__link:hover::after {
    left: 0;
  }
}

.burger-menu {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-flex: 0;
      -ms-flex: 0 0 1.875rem;
          flex: 0 0 1.875rem;
  height: 1rem;
  background: transparent;
  position: relative;
  z-index: 3;
}
@media (min-width: 767.98px) {
  .burger-menu {
    display: none;
  }
}
.burger-menu._active .burger-menu__line_2 {
  width: 0;
  -webkit-transition: all 0s ease 0.3s;
  transition: all 0s ease 0.3s;
}
.burger-menu._active .burger-menu__line_1 {
  position: absolute;
  top: 50%;
  left: 0;
  -webkit-transform: rotate(40deg) translate(0, -50%);
      -ms-transform: rotate(40deg) translate(0, -50%);
          transform: rotate(40deg) translate(0, -50%);
  -webkit-transition: top 0.3s ease 0s, -webkit-transform 0.3s ease 0.3s;
  transition: top 0.3s ease 0s, -webkit-transform 0.3s ease 0.3s;
  transition: top 0.3s ease 0s, transform 0.3s ease 0.3s;
  transition: top 0.3s ease 0s, transform 0.3s ease 0.3s, -webkit-transform 0.3s ease 0.3s;
}
.burger-menu._active .burger-menu__line_3 {
  position: absolute;
  bottom: 50%;
  left: 0;
  -webkit-transform: rotate(-40deg) translate(0, 50%);
      -ms-transform: rotate(-40deg) translate(0, 50%);
          transform: rotate(-40deg) translate(0, 50%);
  -webkit-transition: bottom 0.3s ease 0s, -webkit-transform 0.3s ease 0.3s;
  transition: bottom 0.3s ease 0s, -webkit-transform 0.3s ease 0.3s;
  transition: bottom 0.3s ease 0s, transform 0.3s ease 0.3s;
  transition: bottom 0.3s ease 0s, transform 0.3s ease 0.3s, -webkit-transform 0.3s ease 0.3s;
}
.burger-menu__line {
  background: #52924e;
  width: 100%;
  height: 2px;
  border-radius: 100px;
  position: absolute;
}
.burger-menu__line_1 {
  top: 0;
  left: 0;
  -webkit-transition: top 0.3s ease 0.3s, -webkit-transform 0.3s ease 0s;
  transition: top 0.3s ease 0.3s, -webkit-transform 0.3s ease 0s;
  transition: transform 0.3s ease 0s, top 0.3s ease 0.3s;
  transition: transform 0.3s ease 0s, top 0.3s ease 0.3s, -webkit-transform 0.3s ease 0s;
}
.burger-menu__line_2 {
  top: 50%;
  left: 0;
  -webkit-transform: translate(0, -50%);
      -ms-transform: translate(0, -50%);
          transform: translate(0, -50%);
  -webkit-transition: all 0s ease 0.3s;
  transition: all 0s ease 0.3s;
}
.burger-menu__line_3 {
  bottom: 0;
  left: 0;
  -webkit-transition: bottom 0.3s ease 0.3s, -webkit-transform 0.3s ease 0s;
  transition: bottom 0.3s ease 0.3s, -webkit-transform 0.3s ease 0s;
  transition: transform 0.3s ease 0s, bottom 0.3s ease 0.3s;
  transition: transform 0.3s ease 0s, bottom 0.3s ease 0.3s, -webkit-transform 0.3s ease 0s;
}

.hero {
  position: relative;
  padding-bottom: 15vw;
  padding-top: 15vw;
  margin-top: -8rem;
}
@media (max-width: 1210px) {
  .hero {
    padding-top: calc(150px + 206 * (100vw - 320px) / 890);
  }
}
@media (max-width: 1210px) {
  .hero {
    padding-bottom: calc(70px + 176 * (100vw - 320px) / 890);
  }
}
.hero__back {
  position: absolute;
  width: 100%;
  height: 100%;
  top: 0;
  left: 0;
  z-index: 1;
}
.hero__overlay {
  position: absolute;
  width: 100%;
  height: 100%;
  top: 0;
  left: 0;
  background-color: var(--color-hero-overlay);
  opacity: var(--opacity-hero-overlay);
}
.hero__body {
  position: relative;
  z-index: 2;
  text-align: center;
}
.hero__label {
  line-height: 1;
  display: block;
  text-transform: uppercase;
  font-size: var(--size-hero-label, 42px);
  font-family: var(--font-hero-label);
  font-weight: var(--weight-hero-label);
  color: var(--color-hero-label);
  margin-bottom: 0.6875rem;
}
@media (max-width: 1210px) {
  .hero__label {
    font-size: calc(25px + 17 * (100vw - 320px) / 890);
  }
}
.hero__title {
  color: var(--color-hero-title);
  font-size: var(--size-hero-title);
  font-family: var(--font-hero-title);
  font-weight: var(--weight-hero-title);
  line-height: 125%;
  margin-bottom: 1.625rem;
}
@media (max-width: 1210px) {
  .hero__title {
    font-size: calc(40px + 44 * (100vw - 320px) / 890);
  }
}
.hero__title span {
  line-height: 1;
  display: block;
  text-transform: uppercase;
  font-size: 42px;
  margin-bottom: 0.6875rem;
}
@media (max-width: 1210px) {
  .hero__title span {
    font-size: calc(25px + 17 * (100vw - 320px) / 890);
  }
}
.hero__button {
  font-family: var(--font-hero-cta);
  font-size: var(--size-hero-cta);
  font-weight: var(--weight-hero-cta);
  text-transform: uppercase;
  display: inline-block;
  padding: 16px 24px;
  background: var(--bg-hero-cta);
  color: var(--color-hero-cta);
  border: 1px solid transparent;
  border-radius: var(--radius-hero-cta);
  -webkit-transition: all 0.3s ease 0s;
  transition: all 0.3s ease 0s;
}
@media (any-hover: hover) {
  .hero__button:hover {
    background: transparent;
    border-color: var(--color-white);
  }
}

.more-info {
  background: #f6f6f6;
}
.more-info__container {
  padding-block: 145px;
}
@media (max-width: 1210px) {
  .more-info__container {
    padding-block: calc(50px + 95 * (100vw - 320px) / 890);
  }
}
.more-info__body {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  gap: 1.875rem;
}
@media (max-width: 991.98px) {
  .more-info__body {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
  }
}
.more-info__label {
  -webkit-box-flex: 0;
      -ms-flex: 0 1 calc(30.85% - 1.875rem);
          flex: 0 1 calc(30.85% - 1.875rem);
  font-family: var(--font-more-info-label);
  font-size: var(--size-more-info-label);
  font-weight: var(--weight-more-info-label);
  color: var(--color-more-info-label);
}
.more-info__title {
  -webkit-box-flex: 0;
      -ms-flex: 0 1 69.15%;
          flex: 0 1 69.15%;
  font-family: var(--font-more-info-title);
  font-size: var(--size-more-info-title);
  font-weight: var(--weight-more-info-title);
  color: var(--color-more-info-title);
  line-height: 120%;
  letter-spacing: -0.01em;
}
@media (max-width: 1210px) {
  .more-info__title {
    font-size: calc(25px + 27 * (100vw - 320px) / 890);
  }
}

.services {
  background: #f6f6f6;
}
.services__container {
  padding-block: 120px;
}
@media (max-width: 1210px) {
  .services__container {
    padding-block: calc(50px + 70 * (100vw - 320px) / 890);
  }
}
.info-services {
  margin-bottom: 134px;
}
@media (max-width: 1210px) {
  .info-services {
    margin-bottom: calc(40px + 94 * (100vw - 320px) / 890);
  }
}
.info-services__header {
  margin-bottom: 65px;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  gap: 1.875rem;
}
@media (max-width: 1210px) {
  .info-services__header {
    margin-bottom: calc(40px + 25 * (100vw - 320px) / 890);
  }
}
@media (max-width: 991.98px) {
  .info-services__header {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
  }
}
.info-services__label {
  font-family: var(--font-objectif-label);
  font-size: var(--size-objectif-label);
  font-weight: var(--weight-objectif-label);
  color: var(--color-objectif-label);
  -webkit-box-flex: 0;
      -ms-flex: 0 1 calc(30.85% - 1.875rem);
          flex: 0 1 calc(30.85% - 1.875rem);
}
@media (max-width: 1210px) {
  .info-services__label {
    font-size: calc(30px + 18 * (100vw - 320px) / 890);
  }
}
.info-services__title {
  font-family: var(--font-objectif-paragraph);
  font-size: var(--size-objectif-paragraph);
  font-weight: var(--weight-objectif-paragraph);
  color: var(--color-objectif-paragraph);
  -webkit-box-flex: 0;
      -ms-flex: 0 1 69.15%;
          flex: 0 1 69.15%;
}
@media (max-width: 1210px) {
  .info-services__title {
    font-size: calc(18px + 8 * (100vw - 320px) / 890);
  }
}
.info-services__decor {
  display: flex;
  gap: 19px;
  width: 100%;
}
@media (max-width: 767.98px) {
  .info-services__decor {
    flex-direction: column;
  }
}

.info-services__item {
  position: relative;
}

/* First image - larger, 2:1 ratio */
.info-services__item:first-child {
  flex: 1 1 65%;
}
.info-services__item:first-child img {
  aspect-ratio: 2/1;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}

/* Second image - smaller, 16:9 ratio */
.info-services__item:last-child {
  flex: 1 1 35%;
}
.info-services__item:last-child img {
  aspect-ratio: 16/9;
  width: 100%;
  object-fit: cover;
  object-position: center;
}

.info-services__item:has(.info-services__button) {
  position: relative;
}

.info-services__button {
  font-family: var(--font-objectif-cta);
  font-size: var(--size-objectif-cta);
  font-weight: var(--weight-objectif-cta);
  color: var(--color-objectif-cta);
  background: var(--bg-objectif-cta);
  position: absolute;
  bottom: 0;
  right: -101px;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-direction: column;
  text-align: center;
  height: 184px;
  width: 184px;
  border-radius: 50%;
  padding: 0.9375rem;
  transition: all 0.3s ease 0s;
  z-index: 10;
}
@media (max-width: 1210px) {
  .info-services__button {
    right: calc(-51.5px + -49.5 * (100vw - 320px) / 890);
  }
}
@media (max-width: 1210px) {
  .info-services__button {
    height: calc(85px + 99 * (100vw - 320px) / 890);
  }
}
@media (max-width: 1210px) {
  .info-services__button {
    width: calc(85px + 99 * (100vw - 320px) / 890);
  }
}
@media (max-width: 1210px) {
  .info-services__button {
    font-size: calc(14px + 8 * (100vw - 320px) / 890);
  }
}
@media (any-hover: hover) {
  .info-services__button:hover {
    -webkit-transform: scale(1.06);
        -ms-transform: scale(1.06);
            transform: scale(1.06);
  }
}
@media (max-width: 767.98px) {
  .info-services__button {
    left: 0;
    bottom: -101px;
  }
}
@media (max-width: 767.98px) and (max-width: 1210px) {
  .info-services__button {
    bottom: calc(-51.5px + -49.5 * (100vw - 320px) / 890);
  }
}
.info-services__icon svg {
  height: 36px;
  width: 36px;
}
@media (max-width: 1210px) {
  .info-services__icon svg {
    height: calc(22px + 14 * (100vw - 320px) / 890);
  }
}
@media (max-width: 1210px) {
  .info-services__icon svg {
    width: calc(22px + 14 * (100vw - 320px) / 890);
  }
}
.content-services {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  gap: 1.875rem;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
}
@media (max-width: 991.98px) {
  .content-services {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
  }
}
.content-services__details {
  -webkit-box-flex: 0;
      -ms-flex: 0 1 calc(30.85% - 1.875rem);
          flex: 0 1 calc(30.85% - 1.875rem);
}
@media (max-width: 991.98px) {
  .content-services__details {
    width: 100%;
  }
}
.content-services__label {
  margin-bottom: 60px;
}
@media (max-width: 1210px) {
  .content-services__label {
    margin-bottom: calc(30px + 30 * (100vw - 320px) / 890);
  }
}
.content-services__body {
  -webkit-box-flex: 0;
      -ms-flex: 0 1 69.15%;
          flex: 0 1 69.15%;
}
@media (max-width: 991.98px) {
  .content-services__body {
    width: 100%;
  }
}
.content-services__title {
  font-family: var(--font-defis-subtitle);
  font-size: var(--size-defis-subtitle);
  font-weight: var(--weight-defis-subtitle);
  color: var(--color-defis-subtitle);
  margin-bottom: 40px;
}
.actions-content-services__list {
  counter-reset: actions-content-services;
}
.actions-content-services__item {
  padding: 0.75rem 0;
  border-bottom: 0.0625rem solid #ccc;
}
.actions-content-services__link {
  font-family: var(--font-defis-bullets);
  font-size: var(--size-defis-bullets);
  font-weight: var(--weight-defis-bullets);
  color: var(--color-defis-bullets);
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  gap: 1.875rem;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
  letter-spacing: -0.01em;
}
@media (max-width: 1210px) {
  .actions-content-services__link {
    font-size: calc(18px + 10 * (100vw - 320px) / 890);
  }
}
@media (any-hover: hover) {
  .actions-content-services__link:hover {
    color: #52924e;
  }
}
.actions-content-services__text {
  -webkit-transition: all 0.3s ease 0s;
  transition: all 0.3s ease 0s;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
}
.actions-content-services__text::before {
  content: "";
  counter-increment: actions-content-services;
  content: "0" counter(actions-content-services);
  font-size: 16px;
  letter-spacing: -0.01em;
  color: #337500;
  display: inline-block;
  padding-right: 40px;
}
@media (max-width: 1210px) {
  .actions-content-services__text::before {
    font-size: calc(14px + 2 * (100vw - 320px) / 890);
  }
}
@media (max-width: 1210px) {
  .actions-content-services__text::before {
    padding-right: calc(20px + 20 * (100vw - 320px) / 890);
  }
}
.actions-content-services__icon {
  -webkit-transition: all 0.3s ease 0s;
  transition: all 0.3s ease 0s;
}
.actions-content-services__icon svg {
  height: 52px;
  width: 52px;
}

.gallery__container {
  padding-block: 140px;
  max-width: 86.875rem;
}
@media (max-width: 1210px) {
  .gallery__container {
    padding-block: calc(50px + 90 * (100vw - 320px) / 890);
  }
}
.gallery__label {
  margin-bottom: 0.5rem;
}
.gallery__title {
  margin-bottom: 63px;
}
@media (max-width: 1210px) {
  .gallery__title {
    margin-bottom: calc(40px + 23 * (100vw - 320px) / 890);
  }
}
.gallery__item {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
}
.gallery__item-01 {
  margin-bottom: 71px;
}
@media (max-width: 1210px) {
  .gallery__item-01 {
    margin-bottom: calc(40px + 31 * (100vw - 320px) / 890);
  }
}
.gallery__item-02 {
  -webkit-box-align: end;
      -ms-flex-align: end;
          align-items: flex-end;
  margin-bottom: 161px;
}
@media (max-width: 1210px) {
  .gallery__item-02 {
    margin-bottom: calc(40px + 121 * (100vw - 320px) / 890);
  }
}
.gallery__item-03 {
  margin-bottom: 89px;
}
@media (max-width: 1210px) {
  .gallery__item-03 {
    margin-bottom: calc(40px + 49 * (100vw - 320px) / 890);
  }
}
.gallery__wrapper:has(.gallery__column) {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  gap: 73px;
}
@media (max-width: 1210px) {
  .gallery__wrapper:has(.gallery__column) {
    gap: calc(30px + 43 * (100vw - 320px) / 890);
  }
}
@media (max-width: 767.98px) {
  .gallery__wrapper:has(.gallery__column) {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
  }
}
.gallery__column-01 {
  margin-top: 18.8125rem;
}
@media (max-width: 991.98px) {
  .gallery__column-01 {
    margin-top: 5rem;
  }
}
@media (max-width: 767.98px) {
  .gallery__column-01 {
    margin-top: 0;
  }
}
.gallery__decor {
  display: -webkit-inline-box;
  display: -ms-inline-flexbox;
  display: inline-flex;
  gap: 32px;
  margin-bottom: 1.25rem;
}
@media (max-width: 1210px) {
  .gallery__decor {
    gap: calc(20px + 12 * (100vw - 320px) / 890);
  }
}
@media (max-width: 767.98px) {
  .gallery__decor {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
  }
}
.gallery__caption {
  font-family: "Poppins", sans-serif;
  font-weight: 600;
  font-size: 25px;
  line-height: 150%;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: #2d2d2d;
}
@media (max-width: 1210px) {
  .gallery__caption {
    font-size: calc(20px + 5 * (100vw - 320px) / 890);
  }
}

.partners {
  background: #f6f6f6;
}
.partners__container {
  padding-block: 125px;
}
@media (max-width: 1210px) {
  .partners__container {
    padding-block: calc(50px + 75 * (100vw - 320px) / 890);
  }
}
.partners__items {
  counter-reset: partners;
}
.partners__header {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
  gap: 1.875rem;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  margin-bottom: 120px;
}
@media (max-width: 1210px) {
  .partners__header {
    margin-bottom: calc(40px + 80 * (100vw - 320px) / 890);
  }
}
.partners__name {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  font-family: var(--partners-name-font, "Poppins");
  font-size: var(--partners-name-size, 24px);
  font-weight: var(--partners-name-weight, 400);
  color: var(--partners-name-color, #52924e);
}
.partners__name::before {
  content: "";
  counter-increment: partners;
  content: "(0" counter(partners) ")";
  font-family: var(--partners-counter-font, "Poppins");
  font-size: var(--partners-counter-size, 16px);
  font-weight: var(--partners-counter-weight, 400);
  color: var(--partners-counter-color, #181a20);
  letter-spacing: -0.01em;
  display: inline-block;
  padding-right: 40px;
}
.partners__link {
  text-decoration: none;
}
.partners__text {
  color: var(--partners-name-color, #181a20);
  transition: color 0.3s ease;
}
.partners__link:hover .partners__text {
  text-decoration: underline;
  color: var(--partners-accent-color, #52924e);
}
.partners__icon {
  color: var(--partners-accent-color, #52924e);
}
.partners__icon svg {
  width: 2rem;
  height: 0.875rem;
}
.partners__body {
  font-family: var(--partners-description-font, "Poppins");
  font-size: var(--partners-description-size, 26px);
  font-weight: var(--partners-description-weight, 400);
  color: var(--partners-description-color, #181a20);
  line-height: 150%;
}
/* Make nested elements inherit styles */
.partners__body p,
.partners__body ul,
.partners__body ol,
.partners__body li,
.partners__body a {
  font-family: inherit;
  font-size: inherit;
  font-weight: inherit;
  color: inherit;
  line-height: inherit;
}
.partners__body p:not(:last-child) {
  margin-bottom: 1.25rem;
}
@media (max-width: 1210px) {
  .partners__body {
    font-size: calc(20px + 6 * (100vw - 320px) / 890);
  }
  .partners__body p,
  .partners__body ul,
  .partners__body ol,
  .partners__body li,
  .partners__body a {
    font-size: inherit;
  }
}

.reviews {
  background: #28292a;
}
.reviews__container {
  padding-block: 128px;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: flex-start;
      -ms-flex-align: flex-start;
          align-items: flex-start;
  gap: 105px;
}

.reviews__container--reversed {
  -webkit-box-orient: horizontal;
  -webkit-box-direction: reverse;
      -ms-flex-direction: row-reverse;
          flex-direction: row-reverse;
}

@media (max-width: 1210px) {
  .reviews__container {
    padding-block: calc(50px + 78 * (100vw - 320px) / 890);
  }
}
@media (max-width: 1210px) {
  .reviews__container {
    gap: calc(30px + 75 * (100vw - 320px) / 890);
  }
}
@media (max-width: 991.98px) {
  .reviews__container {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
  }
}
.reviews__decor {
  -webkit-box-flex: 0;
      -ms-flex: 0 0 34.66%;
          flex: 0 0 34.66%;
  overflow: hidden;
}
.reviews__decor img {
  border-radius: 0.9375rem;
}
.reviews__info {
  -webkit-box-flex: 0;
      -ms-flex: 0 1 auto;
          flex: 0 1 auto;
}

/* Override theme styles with higher specificity */
.page .reviews .reviews__text {
  padding-left: 34px;
  margin-bottom: 67px;
  border-left: 0.125rem solid var(--reviews-accent-color, #52924e);
}

.page .reviews .reviews__text,
.page .reviews .reviews__text p {
  font-family: var(--reviews-text-font, "Poppins");
  font-size: var(--reviews-text-size, 20px);
  font-weight: var(--reviews-text-weight, 400);
  color: var(--reviews-text-color, #fff);
  line-height: 155%;
}

@media (max-width: 1210px) {
  .page .reviews .reviews__text {
    padding-left: calc(20px + 14 * (100vw - 320px) / 890);
    margin-bottom: calc(40px + 27 * (100vw - 320px) / 890);
  }
}

@media (max-width: 1210px) {
  .page .reviews .reviews__text,
  .page .reviews .reviews__text p {
    font-size: calc(18px + 2 * (100vw - 320px) / 890);
  }
}

.page .reviews .reviews__text p:not(:last-child) {
  margin-bottom: 1.25rem;
}

.page .reviews__name {
  font-family: var(--reviews-name-font, "Poppins");
  font-size: var(--reviews-name-size, 24px);
  font-weight: var(--reviews-name-weight, 400);
  color: var(--reviews-name-color, #fff);
  margin-bottom: 10px;
}
@media (max-width: 1210px) {
  .page .reviews__name {
    font-size: calc(18px + 6 * (100vw - 320px) / 890);
  }
}

.page .reviews__position {
  font-family: var(--reviews-position-font, "Poppins");
  font-size: var(--reviews-position-size, 18px);
  font-weight: var(--reviews-position-weight, 400);
  color: var(--reviews-position-color, rgba(255, 255, 255, 0.7));
  letter-spacing: 0.01em;
}
@media (max-width: 1210px) {
  .page .reviews__position {
    font-size: calc(14px + 4 * (100vw - 320px) / 890);
  }
}

.how-works__container {
  padding-block: 155px;
}
@media (max-width: 1210px) {
  .how-works__container {
    padding-block: calc(50px + 105 * (100vw - 320px) / 890);
  }
}
.how-works__header {
  margin-bottom: 112px;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 100px;
}
@media (max-width: 1210px) {
  .how-works__header {
    margin-bottom: calc(40px + 72 * (100vw - 320px) / 890);
  }
}
@media (max-width: 1210px) {
  .how-works__header {
    gap: calc(20px + 80 * (100vw - 320px) / 890);
  }
}
.how-works__body {
  counter-reset: how-works;
}
.how-works__body:has(.how-works__item) {
  padding-top: 30px;
  border-top: 0.0625rem solid #ccc;
}
@media (max-width: 1210px) {
  .how-works__body:has(.how-works__item) {
    padding-top: calc(15px + 15 * (100vw - 320px) / 890);
  }
}
.how-works__item {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr;
  gap: 40px;
  padding-bottom: 30px;
  border-bottom: 0.0625rem solid #ccc;
}
@media (max-width: 1210px) {
  .how-works__item {
    gap: calc(20px + 20 * (100vw - 320px) / 890);
  }
}
@media (max-width: 1210px) {
  .how-works__item {
    padding-bottom: calc(15px + 15 * (100vw - 320px) / 890);
  }
}
.how-works__item:not(:last-child) {
  margin-bottom: 30px;
}
@media (max-width: 1210px) {
  .how-works__item:not(:last-child) {
    margin-bottom: calc(15px + 15 * (100vw - 320px) / 890);
  }
}
.how-works__item-reverse .how-works__headline {
  -webkit-box-ordinal-group: 3;
      -ms-flex-order: 2;
          order: 2;
}
.how-works__item-reverse .how-works__text {
  -webkit-box-ordinal-group: 4;
      -ms-flex-order: 3;
          order: 3;
}
.how-works__item-reverse .how-works__decor {
  -webkit-box-ordinal-group: 2;
      -ms-flex-order: 1;
          order: 1;
}

@media (max-width: 1040px) {
  .how-works__item-reverse .how-works__decor {
    order: 3;
  }
}

.how-works__decor {
  max-width: 290px;
}
.how-works__headline {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  font-size: 28px;
  letter-spacing: -0.01em;
  color: #111;
  padding-top: 40px;
}
@media (max-width: 1210px) {
  .how-works__headline {
    font-size: calc(18px + 10 * (100vw - 320px) / 890);
  }
}
@media (max-width: 1210px) {
  .how-works__headline {
    padding-top: calc(10px + 30 * (100vw - 320px) / 890);
  }
}
.how-works__headline::before {
  content: "";
  counter-increment: how-works;
  content: "0" counter(how-works);
  font-size: 16px;
  letter-spacing: -0.01em;
  display: inline-block;
  padding-right: 58px;
  color: #337500;
}
@media (max-width: 1210px) {
  .how-works__headline::before {
    font-size: calc(14px + 2 * (100vw - 320px) / 890);
  }
}
@media (max-width: 1210px) {
  .how-works__headline::before {
    padding-right: calc(20px + 38 * (100vw - 320px) / 890);
  }
}
.how-works__text {
  font-family: "Poppins", sans-serif;
  font-weight: 300;
  line-height: 140%;
  color: #636363;
  padding-top: 40px;
}
@media (max-width: 1210px) {
  .how-works__text {
    padding-top: calc(10px + 30 * (100vw - 320px) / 890);
  }
}
.how-works__text p:not(:last-child) {
  margin-bottom: 1.25rem;
}
.stats {
  padding-block: 120px;
  background: var(--stats-bg-color, #55924e);
}
@media (max-width: 1210px) {
  .stats {
    padding-block: calc(50px + 70 * (100vw - 320px) / 890);
  }
}
.stats__container {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  gap: 100px;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
}
@media (max-width: 1210px) {
  .stats__container {
    gap: calc(30px + 70 * (100vw - 320px) / 890);
  }
}
@media (max-width: 767.98px) {
  .stats__container {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
  }
  .stats__decor .ibg img {
    position: relative;
  }
}
.stats__info {
  -webkit-box-flex: 0;
      -ms-flex: 0 1 46%;
          flex: 0 1 46%;
}

.stats__title {
  color: #fff;
  margin-bottom: 63px;
}
@media (max-width: 1210px) {
  .stats__title {
    margin-bottom: calc(40px + 23 * (100vw - 320px) / 890);
  }
}
.stats__list {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 60px 40px;
  margin: 0;
}

@media (max-width: 1210px) {
  .stats__list {
    gap: calc(30px + 30 * (100vw - 320px) / 890) calc(20px + 20 * (100vw - 320px) / 890);
  }
}

@media (max-width: 767.98px) {
  .stats__list {
    grid-template-columns: 1fr;
  }
}

.stats__item {
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.stats__value {
  font-size: 120px;
  color: #fff;
}
@media (max-width: 1210px) {
  .stats__value {
    font-size: calc(50px + 70 * (100vw - 320px) / 890);
  }
}
.stats__description {
  color: #fff;
  font-family: "Poppins", sans-serif;
  font-weight: 500;
  font-size: 20px;
}
@media (max-width: 1210px) {
  .stats__description {
    font-size: calc(16px + 4 * (100vw - 320px) / 890);
  }
}
.stats__decor {
  -webkit-box-flex: 0;
      -ms-flex: 0 1 48.3%;
          flex: 0 1 48.3%;
}

.products {
  padding-top: 116px;
  padding-bottom: 116px;
}
@media (max-width: 1210px) {
  .products {
    padding-top: calc(50px + 66 * (100vw - 320px) / 890);
    padding-bottom: calc(50px + 66 * (100vw - 320px) / 890);
  }
}
.products__items {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 0.875rem 0.875rem;
  row-gap: 74px;
}
@media (max-width: 1210px) {
  .products__items {
    grid-template-columns: repeat(2, 1fr);
    row-gap: calc(30px + 44 * (100vw - 320px) / 890);
  }
}
@media (max-width: 767.98px) {
  .products__items {
    grid-template-columns: 1fr;
  }
}
.products__item {
  padding-top: 1.375rem;
  border-top: 1px solid rgba(99, 99, 99, 0.2);
}
.products__image {
  display: block;
  padding-bottom: 122.89%;
  margin-bottom: 1.375rem;
  overflow: hidden;
  max-height: 31.25rem;
}
@media (max-width: 991.98px) {
  .products__image {
    padding-bottom: 100%;
  }
}
@media (max-width: 767.98px) {
  .products__image {
    padding-bottom: 80%;
  }
}
.products__image img {
  -webkit-transition: all 0.3s ease 0s;
  transition: all 0.3s ease 0s;
}
@media (any-hover: hover) {
  .products__image:hover img {
    -webkit-transform: scale(1.05);
        -ms-transform: scale(1.05);
            transform: scale(1.05);
  }
}
.products__tag {
  font-weight: 400;
  font-size: 14px;
  line-height: 127%;
  color: #636363;
  display: inline-block;
  font-family: "Poppins", sans-serif;
  margin-bottom: 1.0625rem;
}
.products__footer {
  display: block;
  padding-top: 1.0625rem;
  border-top: 1px solid rgba(99, 99, 99, 0.2);
  font-family: "Poppins", sans-serif;
}
.products__title {
  font-weight: 600;
  font-size: 21px;
  line-height: 131%;
  color: #202020;
  margin-bottom: 0.4375rem;
  -webkit-transition: all 0.3s ease 0s;
  transition: all 0.3s ease 0s;
}
@media (max-width: 1210px) {
  .products__title {
    font-size: calc(18px + 3 * (100vw - 320px) / 890);
  }
}
@media (any-hover: hover) {
  .products__title:hover {
    color: #52924e;
    text-decoration: underline;
  }
}
.products__text {
  font-size: 14px;
  line-height: 143%;
  color: #636363;
  font-weight: 400;
}

/* Increase specificity to match/exceed theme selectors */
.page .more-info h2.more-info__title:not([class*="fontsize-"]),
.page .more-info .more-info__title {
  font-family: var(--font-more-info-title);
  font-size: var(--size-more-info-title);
  font-weight: var(--weight-more-info-title);
  color: var(--color-more-info-title);
  line-height: 120%;
  letter-spacing: -0.01em;
}

@media (max-width: 1210px) {
  .page .more-info h2.more-info__title:not([class*="fontsize-"]),
  .page .more-info .more-info__title {
    font-size: calc(25px + 27 * (100vw - 320px) / 890);
  }
}

.page .more-info .more-info__label {
  -webkit-box-flex: 0;
      -ms-flex: 0 1 calc(30.85% - 1.875rem);
          flex: 0 1 calc(30.85% - 1.875rem);
  font-family: var(--font-more-info-label);
  font-size: var(--size-more-info-label);
  font-weight: var(--weight-more-info-label);
  color: var(--color-more-info-label);
}

/* Update hero section selectors too for consistency */
.page .hero h1.hero__title:not([class*="fontsize-"]),
.page .hero .hero__title {
  color: var(--color-hero-title);
  font-size: var(--size-hero-title);
  font-family: var(--font-hero-title);
  font-weight: var(--weight-hero-title);
  line-height: 125%;
  margin-bottom: 1.625rem;
}

.page .hero .hero__label {
  line-height: 1;
  display: block;
  text-transform: uppercase;
  font-size: var(--size-hero-label, 42px);
  font-family: var(--font-hero-label);
  font-weight: var(--weight-hero-label);
  color: var(--color-hero-label);
  margin-bottom: 0.6875rem;
}

/* Update services section title */
.page .services h2.info-services__title:not([class*="fontsize-"]),
.page .services .info-services__title {
  font-family: var(--font-objectif-paragraph);
  font-size: var(--size-objectif-paragraph);
  font-weight: var(--weight-objectif-paragraph);
  color: var(--color-objectif-paragraph);
}

@media (max-width: 1210px) {
  .page .services h2.info-services__title:not([class*="fontsize-"]),
  .page .services .info-services__title {
    font-size: calc(18px + 8 * (100vw - 320px) / 890);
  }
}

/* Update defis title */
.page .services h2.content-services__title:not([class*="fontsize-"]),
.page .services .content-services__title {
  font-family: var(--font-defis-subtitle);
  font-size: var(--size-defis-subtitle);
  font-weight: var(--weight-defis-subtitle);
  color: var(--color-defis-subtitle);
  margin-bottom: 40px;
}

/* Update gallery title */
.page .gallery h2.gallery__title:not([class*="fontsize-"]),
.page .gallery .gallery__title {
  font-family: var(--font-gallery-title);
  font-size: var(--size-gallery-title);
  font-weight: var(--weight-gallery-title);
  color: var(--color-gallery-title);
  margin-bottom: 63px;
}

@media (max-width: 1210px) {
  .page .gallery h2.gallery__title:not([class*="fontsize-"]),
  .page .gallery .gallery__title {
    margin-bottom: calc(40px + 23 * (100vw - 320px) / 890);
  }
}

/* Update gallery captions */
.page .gallery .gallery__caption {
  font-family: var(--font-gallery-caption);
  font-size: var(--size-gallery-caption);
  font-weight: var(--weight-gallery-caption);
  color: var(--color-gallery-caption);
  line-height: 150%;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}

@media (max-width: 1210px) {
  .page .gallery .gallery__caption {
    font-size: calc(20px + 5 * (100vw - 320px) / 890);
  }
}

/* Update how-works title */
.page .how-works h2.how-works__title:not([class*="fontsize-"]),
.page .how-works .how-works__title {
  font-family: var(--how-works-title-font);
  font-size: var(--how-works-title-size);
  font-weight: var(--how-works-title-weight);
  color: var(--how-works-title-color);
  line-height: 120%;
}

@media (max-width: 1210px) {
  .page .how-works h2.how-works__title:not([class*="fontsize-"]),
  .page .how-works .how-works__title {
    font-size: calc(32px + 22 * (100vw - 320px) / 890);
  }
}

.page .how-works .how-works__label {
  font-family: var(--how-works-label-font);
  font-size: var(--how-works-label-size);
  font-weight: var(--how-works-label-weight);
  color: var(--how-works-label-color);
  display: block;
  margin-bottom: 20px;
}

.page .how-works h3.how-works__headline:not([class*="fontsize-"]),
.page .how-works .how-works__headline {
  font-family: var(--how-works-headline-font);
  font-size: var(--how-works-headline-size);
  font-weight: var(--how-works-headline-weight);
  color: var(--how-works-headline-color);
  line-height: 130%;
  display: flex;
  padding-top: 40px;
}

@media (max-width: 1210px) {
  .page .how-works h3.how-works__headline:not([class*="fontsize-"]),
  .page .how-works .how-works__headline {
    font-size: calc(18px + 10 * (100vw - 320px) / 890);
    padding-top: calc(10px + 30 * (100vw - 320px) / 890);
  }
}

.page .how-works .how-works__headline::before {
  font-family: var(--how-works-counter-font);
  font-size: var(--how-works-counter-size);
  font-weight: var(--how-works-counter-weight);
  color: var(--how-works-counter-color);
  content: "";
  counter-increment: how-works;
  content: "0" counter(how-works);
  letter-spacing: -0.01em;
  display: inline-block;
  padding-right: 58px;
}

@media (max-width: 1210px) {
  .page .how-works .how-works__headline::before {
    padding-right: calc(20px + 38 * (100vw - 320px) / 890);
  }
}

.page .how-works .how-works__text {
  font-family: var(--how-works-text-font) !important;
  font-size: var(--how-works-text-size) !important;
  font-weight: var(--how-works-text-weight) !important;
  color: var(--how-works-text-color) !important;
  line-height: 155% !important;
  padding-top: 40px;
}

.page .how-works .how-works__text p {
  font-family: var(--how-works-text-font) !important;
  font-size: var(--how-works-text-size) !important;
  font-weight: var(--how-works-text-weight) !important;
  color: var(--how-works-text-color) !important;
  line-height: 155% !important;
}

@media (max-width: 1210px) {
  .page .how-works .how-works__text {
    font-size: calc(14px + 2 * (100vw - 320px) / 890) !important;
    padding-top: calc(10px + 30 * (100vw - 320px) / 890);
  }
  
  .page .how-works .how-works__text p {
    font-size: calc(14px + 2 * (100vw - 320px) / 890) !important;
  }
}

.page .how-works .how-works__text p:not(:last-child) {
  margin-bottom: 1.25rem;
}

/* Update stats title */
.page .stats h2.stats__title:not([class*="fontsize-"]),
.page .stats .stats__title {
  font-family: var(--stats-title-font, "Poppins");
  font-size: var(--stats-title-size, 54px);
  font-weight: var(--stats-title-weight, 400);
  color: var(--stats-title-color, #ffffff);
  margin-bottom: 63px;
}

@media (max-width: 1210px) {
  .page .stats h2.stats__title:not([class*="fontsize-"]),
  .page .stats .stats__title {
    margin-bottom: calc(40px + 23 * (100vw - 320px) / 890);
  }
}



.page .stats .stats__value {
  font-family: var(--stats-value-font, "Poppins");
  font-size: var(--stats-value-size, 120px);
  font-weight: var(--stats-value-weight, 400);
  color: var(--stats-value-color, #ffffff);
  line-height: 1;
}

@media (max-width: 1210px) {
  .page .stats .stats__value {
    font-size: calc(50px + 70 * (100vw - 320px) / 890);
  }
}

.page .stats .stats__description {
  font-family: var(--stats-description-font, "Poppins");
  font-size: var(--stats-description-size, 20px);
  font-weight: var(--stats-description-weight, 500);
  color: var(--stats-description-color, #ffffff);
  line-height: 1.5;
}

@media (max-width: 1210px) {
  .page .stats .stats__description {
    font-size: calc(16px + 4 * (100vw - 320px) / 890);
  }
}

.content-services__decor {
  position: relative;
  width: 100%;
}

.content-services__decor img {
  aspect-ratio: 1/1;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}

.gallery__body {
    opacity: 0;
    transition: opacity 0.3s ease;
    width: 100%;
}

.gallery__body.initialized {
    opacity: 1;
}

/* Grid sizer for 2 columns */
.gallery__sizer {
    width: calc(50% - 10px);
}

.gallery__item {
    width: calc(50% - 10px); /* 2 columns with 20px gutter */
    margin-bottom: 20px;
    cursor: pointer;
}

.gallery__item img {
    width: 100%;
    height: auto;
    display: block;
    border-radius: 4px;
}

.gallery__item figcaption {
    background: #fff;
    padding: 15px;
    margin-top: 10px;
    font-family: var(--font-gallery-caption);
    font-size: var(--size-gallery-caption);
    font-weight: var(--weight-gallery-caption);
    color: var(--color-gallery-caption);
}

/* Single column on mobile */
@media (max-width: 767.98px) {
    .gallery__sizer,
    .gallery__item {
        width: 100%;
    }
}

.steps {
    padding: 120px 0;
    background-color: #fff;
}

@media (max-width: 1210px) {
    .steps {
        padding: calc(60px + 60 * (100vw - 320px) / 890) 0;
    }
}

.steps__header {
    margin-bottom: 120px;
    text-align: center;
}

@media (max-width: 1210px) {
    .steps__header {
        margin-bottom: calc(60px + 60 * (100vw - 320px) / 890);
    }
}

.steps__label {
    display: block;
    margin-bottom: 20px;
    font-family: var(--steps-label-font, "Poppins");
    font-size: var(--steps-label-size, 24px);
    font-weight: var(--steps-label-weight, 500);
    color: var(--steps-label-color, #52924e);
}

.steps__title {
    font-family: var(--steps-title-font, "Poppins");
    font-size: var(--steps-title-size, 54px);
    font-weight: var(--steps-title-weight, 400);
    color: var(--steps-title-color, #2d2d2d);
    line-height: 120%;
}

@media (max-width: 1210px) {
    .steps__title {
        font-size: calc(32px + 22 * (100vw - 320px) / 890);
    }
}

.steps__body {
    display: flex;
    flex-direction: column;
    gap: 120px;
}

@media (max-width: 1210px) {
    .steps__body {
        gap: calc(60px + 60 * (100vw - 320px) / 890);
    }
}

.steps__item {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 30px;
    align-items: center;
}

@media (max-width: 767px) {
    .steps__item {
        grid-template-columns: 1fr;
        gap: 40px;
    }
}

.steps__item--reverse {
    direction: rtl;
}

.steps__item--reverse .steps__info {
    direction: ltr;
}

.steps__media {
    position: relative;
    padding-bottom: 66.67%;
    border-radius: 20px;
    overflow: hidden;
}

.steps__media img {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.steps__info {
    max-width: 570px;
}

.steps__info-header {
    display: flex;
    align-items: center;
    gap: 20px;
    margin-bottom: 30px;
}

.steps__counter {
    font-family: var(--steps-counter-font, "Poppins");
    font-size: var(--steps-counter-size, 16px);
    font-weight: var(--steps-counter-weight, 400);
    color: var(--steps-counter-color, #337500);
}

.steps__headline {
    font-family: var(--steps-headline-font, "Poppins");
    font-size: var(--steps-headline-size, 28px);
    font-weight: var(--steps-headline-weight, 400);
    color: var(--steps-headline-color, #111);
    line-height: 130%;
}

@media (max-width: 1210px) {
    .steps__headline {
        font-size: calc(24px + 4 * (100vw - 320px) / 890);
    }
}

.steps__text {
    font-family: var(--steps-text-font, "Poppins");
    font-size: var(--steps-text-size, 16px);
    font-weight: var(--steps-text-weight, 300);
    color: var(--steps-text-color, #636363);
    line-height: 155%;
}

.steps__text p:not(:last-child) {
    margin-bottom: 1em;
}

@media (max-width: 1210px) {
    .steps__text {
        font-size: calc(14px + 2 * (100vw - 320px) / 890);
    }
}

.page .products h3.products__title:not([class*="fontsize-"]),
.page .products .products__title {
    font-weight: 600;
    font-size: 21px;
    line-height: 131%;
    color: #202020;
    margin-bottom: 0.4375rem;
    -webkit-transition: all 0.3s ease 0s;
    transition: all 0.3s ease 0s;
}

@media (max-width: 1210px) {
    .page .products h3.products__title:not([class*="fontsize-"]),
    .page .products .products__title {
        font-size: calc(18px + 3 * (100vw - 320px) / 890);
    }
}

@media (any-hover: hover) {
    .page .products h3.products__title:not([class*="fontsize-"]):hover,
    .page .products .products__title:hover {
        color: #52924e;
        text-decoration: underline;
    }
}