:root {
    /* TIPOGRAFIAS */
    --mainFontFamily: "Inter";
    --secondaryFontFamily: "Inter", serif;

    --clamp48: clamp(24rem, 19.5556rem + 1.4815vw, 48rem);
    --clamp32: clamp(16rem, 13.037rem + 0.9877vw, 32rem);
    --titleSize24: clamp(22px, 20.4px + 0.68vw, 24px);
    --titleSize30: clamp(26px, 22.81px + 1.36vw, 30px);
    --titleSize32: clamp(28px, 24.81px + 1.36vw, 32px);
    --titleSize48: clamp(36px, 29.61px + 2.73vw, 48px);
    --titleSize64: clamp(44px, 34.42px + 4.09vw, 64px);
    --titleSize80: clamp(48px, 35.22px + 5.45vw, 80px);

    /* TIPOGRAFIAS BLOQUES DE CONTENIDO */
    --h1Clamp: clamp(32px, 4vw, 48px);
    --h2Clamp: clamp(28px, 3.5vw, 40px);
    --h3Clamp: clamp(24px, 3vw, 34px);
    --h4Clamp: clamp(20px, 2.5vw, 28px);
    --h5Clamp: clamp(18px, 2vw, 22px);
    --h6Clamp: clamp(16px, 1.5vw, 18px);

    --pClamp: clamp(16px, 1.2vw, 18px);

    /* COLORES */
    --bgColor: #d8ded3;
    --themeBgColor: #d8ded3;
    --fontColor: #262f0f;
    --mainColor: #548f0f;
    --secondaryColor: #0a432c;
    --headerSelectedText: #0a432c;

    --swiper-theme-color: #0a432c;

    /* LAYOUT */
    --maxWidthWrap: 1240px;

    --pagePadding: 16px;
    --gapGeneric: 64rem;
}

* {
    font-family: var(--mainFontFamily);
    accent-color: var(--mainColor);
    color: inherit;
}

hr {
    display: flex;
    width: 100%;
}

body {
    background-color: var(--bgColor);
}

strong {
    font-weight: 700;
}

.m-breadcrumbs__item:not(:last-child)::after {
    content: "/";
    margin: 0 5px;
}

.m-mainNav__actions__common a {
    display: flex;
    color: #121212;
}

/* #region ---------------------------- Botones -- */
:where(.m-textContentBlock__text a),
:where(.m-ctaContentBlock__text a),
:where(.m-defaultContentBlock__text a),
.a-button {
    --buttonBaseColor: #121212;
    --buttonTextColor: #ffffff;
    --buttonBackground: var(--buttonBaseColor);

    position: relative;
    display: flex;
    flex-direction: row;
    justify-content: center;
    align-items: center;
    gap: 8px;
    padding: 12px 24px;
    border-radius: 8px;
    border: none;
    width: fit-content;
    cursor: pointer;
    transition: all 0.2s ease;
    user-select: none;
    text-decoration: none !important;
    background-color: var(--buttonBackground);
    color: var(--buttonTextColor);
    font-size: 16px;
    font-weight: 300;
    border: 1px solid var(--buttonBackground);
}

:where(.m-textContentBlock__text a:hover),
:where(.m-ctaContentBlock__text a:hover),
:where(.m-defaultContentBlock__text a:hover),
.a-button:hover {
    background-color: color-mix(in srgb,
            var(--buttonBaseColor) 80%,
            var(--buttonTextColor) 20%);
}

.a-button.-outline {
    --outlineBackground: var(--buttonTextColor);

    color: var(--buttonBaseColor);
    background-color: var(--outlineBackground);
    border: 1px solid var(--buttonBaseColor);
}

.a-button.-outline:hover {
    background-color: color-mix(in srgb,
            var(--outlineBackground) 80%,
            var(--buttonBaseColor) 10%);
}

/* 🎨 variantes de color */
.a-button.-primary {
    --buttonBaseColor: #121212;
    --buttonTextColor: #ffffff;
    --buttonBackground: var(--buttonBaseColor);
}

.a-button.-secondary {
    --buttonBaseColor: #eb5769;
    --buttonTextColor: #fdf1f5;
    --buttonBackground: var(--buttonBaseColor);
}

.a-button.-terciary {
    --buttonBaseColor: #1bb66e;
    --buttonTextColor: #eefbf2;
    --buttonBackground: var(--buttonBaseColor);
}

/* #endregion Botones */

.o-mainHeader {
    --titleCategoryIcon: 32px;
}

.m-navItem:hover, .m-navItem:focus-visible{
    background-color: transparent;
}
.o-desktopNavContainer {
    --maxWidth: 1600px;
    background-color: rgba(216, 222, 211, 0.22);
    backdrop-filter: blur(7px);
    border-radius: 72px;
    padding: 16px 32px 16px 22px;
    margin-top: 32px;
}

.m-desktopNav__wrap {
    justify-content: flex-end;
    gap: 16px;
}

.m-navList {
    margin: 0;
}

.m-navItem:has(.-selected)>.m-navItem__container {
    border: none;
    background: #ffffff;
}

.m-navItem__container{
    border-radius: 100px;
    padding: 10px 16px;
}
.m-navItem__container:has(button){
    padding: 10px 8px 10px 16px;
}

.m-navItem {
    border-radius: 8px;
    justify-content: center;
}

.m-navItem__submenu {
    border-radius: 20px;
    background: #fff;
    box-shadow: 0 0 250px 0 rgba(0, 0, 0, 0.25);
    min-width: 200px;
    overflow: hidden;
    padding: 16px 32px 16px 16px;
}

.m-navItem__submenu .a-navItem__text {
    font-size: 14px;
    font-style: normal;
    font-weight: 300;
    line-height: 135%;
    /* 18.9px */
    letter-spacing: -0.42px;
}

.m-navItem__submenu .m-navItem__container {
    border-radius: 8px;
    padding: 8px 12px;
}

.m-pageHeader__title {
    color: #121212;
    font-size: var(--titleSize48);
    font-weight: 700;
    line-height: 100%;
    /* 72px */
    text-wrap-style: balance;
    max-width: 600rem;
}

.m-pageHeader__subtitle {
    color: #121212;
    font-size: 16px;
    font-style: normal;
    font-weight: 300;
    line-height: 175%;
    /* 28px */
    letter-spacing: -0.48px;
}

.m-pageHeader__textContainer {
    display: flex;
    flex-direction: column;
    gap: 24rem;
    padding: var(--gapGeneric) var(--pagePadding);
    padding-bottom: 48px;
}

.m-pageHeader__content {
    display: flex;
    flex-direction: column;
    gap: 12px;
}

:where(.m-pageHeader) {
    position: relative;
    isolation: isolate;
    width: 100%;
    display: flex;
    flex-direction: column;
    border-bottom: 8px solid #0a432c;
}
:where(.m-pageHeader__wrap) {
    position: relative;
    z-index: 2;
    display: flex;
    flex-direction: row;
    min-height: 30dvw;
    width: 100%;
    flex: 1;
    align-items: flex-end;
    align-self: center;
    max-width: var(--maxWidthWrap, 1745px) ;
}
 
:where(.m-pageHeader__imgContainer) {
    position: absolute;
    bottom: 0;
    right: 0;
    display: flex;
    height: 100%;
    width: 100%;
    max-width: 60dvw;
    justify-content: flex-end;
    z-index: 0;
}
:where(.m-pageHeader__picture) {
    display: flex;
    height: 100%;
    width: 100%;
}
:where(.m-pageHeader__img) {
    display: flex;
    height: 100%;
    width: 100%;
    object-fit: cover;
}
:where(.m-pageHeader__overlay) {
    position: absolute;
    display: flex;
    height: 100%;
    width: 100%;
    background: linear-gradient(90deg, #d8ded3 0%, rgba(216, 222, 211, 0) 100%);
    z-index: 1;
}

.m-navItem__container.a-button.-outline {
    border: 1px solid #121212;
    background-color: transparent;
    padding: 10px 16px;
    color: #121212;
}

.m-navList.-megaMenu .a-button {
    padding: 16px;
}

.m-mainNav__actions__common {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
}

.m-navItem:has(.-selected)>.m-navItem__container {
    color: var(--secondaryColor);
}

.m-langSelector {
    position: relative;
    display: flex;
    align-items: center;
    outline: none;
}

.m-langSelector__trigger {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    min-height: 48px;
    padding: 8px 12px;
    border: 1px solid rgba(18, 18, 18, 0.08);
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.52);
    box-shadow: 0 10px 30px rgba(18, 18, 18, 0.08);
    color: #121212;
    cursor: pointer;
    transition:
        transform 0.2s ease,
        background-color 0.2s ease,
        box-shadow 0.2s ease,
        border-color 0.2s ease;
    backdrop-filter: blur(12px);
}

.m-langSelector:focus-within .m-langSelector__trigger {
    background: rgba(255, 255, 255, 0.8);
    border-color: rgba(10, 67, 44, 0.16);
    box-shadow: 0 14px 36px rgba(18, 18, 18, 0.12);
    transform: translateY(-1px);
}

.m-langSelector__icon,
.m-langSelector__caret {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 auto;
}

.m-langSelector__icon {
    width: 32px;
    height: 32px;
    border-radius: 50%;
    background: rgba(84, 143, 15, 0.12);
    color: var(--secondaryColor);
}

.m-langSelector__icon svg,
.m-langSelector__caret svg {
    width: 18px;
    height: 18px;
    fill: currentColor;
}

.m-langSelector__current {
    display: flex;
    align-items: baseline;
    gap: 8px;
    white-space: nowrap;
}

.m-langSelector__code,
.m-langSelector__itemCode {
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 0.12em;
}

.m-langSelector__title,
.m-langSelector__itemText {
    font-size: 14px;
    font-weight: 400;
    letter-spacing: -0.02em;
}

.m-langSelector__caret {
    color: rgba(18, 18, 18, 0.72);
    transition: transform 0.2s ease;
}

.m-langSelector:focus-within .m-langSelector__caret {
    transform: rotate(180deg);
}

.m-langSelector__dropdown {
    position: absolute;
    top: calc(100% + 12px);
    right: 0;
    z-index: 25;
    min-width: 220px;
    opacity: 0;
    pointer-events: none;
    transform: translateY(8px);
    transition:
        opacity 0.2s ease,
        transform 0.2s ease;
}

.m-langSelector:focus-within .m-langSelector__dropdown {
    opacity: 1;
    pointer-events: auto;
    transform: translateY(0);
}

.m-langSelector__menu {
    display: flex;
    flex-direction: column;
    gap: 4px;
    padding: 10px;
    border: 1px solid rgba(18, 18, 18, 0.08);
    border-radius: 20px;
    background: rgba(255, 255, 255, 0.92);
    box-shadow: 0 20px 50px rgba(18, 18, 18, 0.12);
    backdrop-filter: blur(18px);
}

.m-langSelector__item {
    display: grid;
    grid-template-columns: auto 1fr auto;
    align-items: center;
    gap: 12px;
    padding: 10px 12px;
    border-radius: 14px;
    color: #121212;
    text-decoration: none;
    transition:
        background-color 0.2s ease,
        color 0.2s ease,
        transform 0.2s ease;
}

.m-langSelector__item:hover {
    background: rgba(10, 67, 44, 0.06);
    transform: translateX(2px);
}

.m-langSelector__item.-active {
    background: rgba(84, 143, 15, 0.1);
    color: var(--secondaryColor);
}

.m-langSelector__item.-disabled {
    opacity: 0.58;
    cursor: not-allowed;
}

.m-langSelector__itemStatus {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: var(--mainColor);
}

.m-langSelector__noticeText {
    display: block;
    padding: 0 12px 10px 54px;
    color: rgba(18, 18, 18, 0.62);
    font-size: 12px;
    line-height: 1.45;
}

@media (max-width: 720px) {
    .m-langSelector {
        width: 100%;
    }

    .m-langSelector__trigger {
        width: 100%;
        justify-content: space-between;
    }

    .m-langSelector__current {
        gap: 6px;
    }

    .m-langSelector__title {
        font-size: 13px;
    }

    .m-langSelector__dropdown {
        top: auto;
        bottom: calc(100% + 12px);
        right: 0;
        left: auto;
        width: 100%;
        min-width: min(260px, calc(100vw - 32px));
    }

    .m-langSelector__menu {
        max-height: min(320px, 45vh);
        overflow-y: auto;
    }
}

.swiper {
    width: 100%;
}

:where(.m-megaMenuImg img) {
    display: block;
    width: 100%;
    height: auto;
    object-fit: cover;
    object-position: top left;
}

/* #region ----------------------------- breadcrumbs -- */
.m-breadcrumbs {
    display: flex;
    flex-direction: row;
    color: var(--fontColor);
}

.m-breadcrumbs__item {
    opacity: 0.5;
    transition: all ease-in-out 0.3s;
}

a.m-breadcrumbs__item:hover {
    opacity: 1;
}

/* #endregion breadcrumbs */

/* #region ----------------------------- o-heroSection -- */
.o-heroSection {
    display: flex;
    width: 100%;
    height: 100%;
    min-height: 100dvh;
    justify-content: center;
    align-items: center;
    flex-direction: column;
}

.o-heroSection__header,
.o-heroSection__wrap {
    display: flex;
    justify-content: center;
    align-items: center;
    flex-direction: column;
    max-width: 790px;
    gap: 16px;
    width: 100%;
}

.o-heroSection__wrap {
    gap: 32rem;
}

.o-heroSection__wrap::before {
    content: "";
    position: absolute;
    inset: 0;

    background: rgba(0, 0, 0, 0.534);
    filter: blur(80px);

    z-index: 0;
}

.o-heroSection__picture {
    width: 100%;
    height: 100%;
    position: absolute;
    z-index: -1;
}

.o-heroSection__img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.o-heroSection__title {
    color: #fff;
    text-align: center;
    text-shadow: 0 0 16px rgba(0, 0, 0, 0.25);
    font-size: var(--titleSize64);
    font-style: normal;
    font-weight: 700;
    line-height: 93.454%;
    /* 59.81px */
    letter-spacing: -1.92px;
}

.o-heroSection__subtitle {
    color: #fff;
    text-align: center;
    font-size: 16px;
    font-style: normal;
    font-weight: 300;
    line-height: 175%;
    /* 28px */
    letter-spacing: -0.48px;
}

.o-heroSection__actionButtons {
    display: flex;
    flex-direction: row;
    gap: 16px;
}

.o-heroSection__button {
    --buttonBaseColor: #ffffff;
    --buttonTextColor: var(--fontColor);
    --buttonBackground: var(--buttonBaseColor);
}

.o-heroSection__button.-outline {
    --buttonBaseColor: #ffffff;
    --buttonTextColor: transparent;
    --buttonBackground: var(--buttonBaseColor);
}

.o-heroSection__textContainer {
    display: flex;
    flex-direction: row;
    gap: 16rem;
    align-items: center;
    justify-content: center;
    flex-wrap: wrap;
}

/* #endregion o-heroSection */

/* #region ----------------------------- contentBlock default -- */
.m-defaultContentBlock {
    display: flex;
    width: 100%;
    justify-content: center;
    padding: var(--gapGeneric) var(--pagePadding);
}

.m-defaultContentBlock li,
.o-contentGroup__content li {
    margin-bottom: 16px;
}

.m-defaultContentBlock__wrap {
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    align-items: center;
    gap: 16px 48rem;
    max-width: var(--maxWidthWrap);
    width: 100%;
}

.m-defaultContentBlock.-reverse .m-defaultContentBlock__wrap {
    flex-direction: row-reverse;
}

.m-defaultContentBlock__textContainer {
    display: flex;
    flex-direction: column;
    max-width: 700px;
    gap: 16px;
    color: var(--fontColor);
    flex: 2 0 300px;
}

.m-defaultContentBlock__header {
    display: flex;
    flex-direction: column;
    flex-direction: column;
    gap: 4px;
}

.m-defaultContentBlock__title {
    font-size: var(--titleSize24);
    font-weight: 700;
}

.m-defaultContentBlock__subtitle {
    font-size: 20px;
    font-weight: 300;
    line-height: 150%;
    text-wrap-style: balance;
    opacity: 0.5;
}

.m-defaultContentBlock__text p {
    font-size: 16px;
    font-weight: 300;
    line-height: 150%;
    letter-spacing: -0.48px;
}

.m-defaultContentBlock__imgContainer {
    max-height: 650rem;
    max-width: 100%;
    width: 100%;
    height: 100%;
    flex: 1 0 300px;
}

.m-defaultContentBlock__picture,
.m-defaultContentBlock__img {
    display: flex;
    width: 100%;
    height: 100%;
    max-height: 600rem;
    object-fit: cover;
    border-radius: 10px;
}

/* #endregion contentBlock default */

/* #region ----------------------------- contentBlock quote -- */
.m-quoteContentBlock {
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    width: 100%;
    background-color: var(--secondaryColor);
    padding: 64px var(--pagePadding);
    margin: var(--gapGeneric) 0;
}

.m-quoteContentBlock__wrap {
    display: flex;
    flex-direction: row;
    align-items: center;
    gap: 16px 48rem;
    max-width: var(--maxWidthWrap);
}

.m-quoteContentBlock__wrap::before {
    content: url("data:image/svg+xml,%3Csvg width='60' height='46' viewBox='0 0 60 46' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cg clip-path='url(%23clip0_27423_4477)'%3E%3Cpath d='M0 45.8414V33.7779C0 30.1142 0.647856 26.227 1.94356 22.1165C3.28396 17.9613 5.20519 13.9624 7.70725 10.12C10.254 6.23282 13.3146 2.8595 16.889 0L25.4675 6.97004C22.6527 10.9912 20.1953 15.1911 18.0953 19.5697C16.0401 23.9037 15.0124 28.5504 15.0124 33.5098V45.8414H0ZM34.3141 45.8414V33.7779C34.3141 30.1142 34.9619 26.227 36.2577 22.1165C37.598 17.9613 39.5193 13.9624 42.0213 10.12C44.5681 6.23282 47.6287 2.8595 51.203 0L59.7816 6.97004C56.9667 10.9912 54.5093 15.1911 52.4094 19.5697C50.3541 23.9037 49.3265 28.5504 49.3265 33.5098V45.8414H34.3141Z' fill='white'/%3E%3C/g%3E%3Cdefs%3E%3CclipPath id='clip0_27423_4477'%3E%3Crect width='60' height='46' fill='white'/%3E%3C/clipPath%3E%3C/defs%3E%3C/svg%3E%0A");
    position: absolute;
    top: -20px;
    left: -80px;
    color: #fff;
    font-style: normal;
    display: block;
    opacity: 0.5;
}

.m-quoteContentBlock__wrap::after {
    content: url("data:image/svg+xml,%3Csvg width='60' height='46' viewBox='0 0 60 46' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cg clip-path='url(%23clip0_27423_4480)'%3E%3Cpath d='M25.4675 0V12.0635C25.4675 15.7272 24.7973 19.6367 23.4569 23.7919C22.1612 27.9025 20.24 31.9013 17.6932 35.7884C15.1912 39.6309 12.1529 42.9819 8.57852 45.8414L0 38.8713C2.81483 34.8502 5.24987 30.6726 7.30513 26.3387C9.40508 21.96 10.4551 17.291 10.4551 12.3316V0H25.4675ZM59.7816 0V12.0635C59.7816 15.7272 59.1114 19.6367 57.771 23.7919C56.4753 27.9025 54.554 31.9013 52.0073 35.7884C49.5052 39.6309 46.467 42.9819 42.8926 45.8414L34.3141 38.8713C37.1289 34.8502 39.564 30.6726 41.6192 26.3387C43.7192 21.96 44.7692 17.291 44.7692 12.3316V0H59.7816Z' fill='white'/%3E%3C/g%3E%3Cdefs%3E%3CclipPath id='clip0_27423_4480'%3E%3Crect width='60' height='46' fill='white'/%3E%3C/clipPath%3E%3C/defs%3E%3C/svg%3E%0A");
    position: absolute;
    right: -80px;
    bottom: -20px;
    color: #fff;
    font-style: normal;
    display: block;
    opacity: 0.5;
}

.m-quoteContentBlock__textContainer {
    display: flex;
    flex-direction: column;
    gap: 24px;
    color: white;
    max-width: 700rem;
}

.m-quoteContentBlock__header {
    display: flex;
    flex-direction: column;
    flex-direction: column;
    gap: 4px;
}

.m-quoteContentBlock__title {
    font-size: var(--titleSize24);
    font-weight: 700;
}

.m-quoteContentBlock__subtitle {
    font-size: 20px;
    font-weight: 300;
    line-height: 150%;
    text-wrap-style: balance;
    opacity: 0.5;
}

.m-quoteContentBlock__text {
    font-size: 20px;
    font-weight: 300;
    line-height: 150%;
    text-wrap-style: balance;
    opacity: 0.5;
}

/* #endregion contentBlock quote */

/* #region ----------------------------- textContentBlock -- */
.m-textContentBlock {
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    width: 100%;
    padding: var(--gapGeneric) var(--pagePadding);
}

.m-textContentBlock__wrap {
    display: flex;
    flex-direction: row;
    align-items: center;
    gap: 16px 48rem;
    width: 100%;
    max-width: var(--maxWidthWrap);
}

.m-textContentBlock__textContainer {
    display: flex;
    flex-direction: column;
    gap: 24px;
    color: var(--fontColor);
}

.m-textContentBlock__header {
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.m-textContentBlock__title {
    font-size: var(--titleSize24);
    max-width: 600rem;
    font-weight: 700;
}

.m-textContentBlock__subtitle {
    font-size: 20px;
    font-weight: 400;
    line-height: 150%;
    text-wrap-style: balance;
}

.m-textContentBlock__text {
    font-size: 16px;
    font-weight: 300;
    line-height: 175%;
    /* 28px */
    letter-spacing: -0.48px;
}

.m-textContentBlock__text .row {
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    gap: 16px 64px;
}

.m-textContentBlock__text .row>div {
    flex: 1 0 300px;
}

.m-textContentBlock__text p {
    max-width: 900rem;
}

.m-textContentBlock.-center :is(.m-textContentBlock__wrap,
    .m-textContentBlock__header,
    .m-textContentBlock__text,
    .m-textContentBlock__text p) {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    text-align: center;
}

.m-textContentBlock.-center .m-textContentBlock__subtitle {
    font-size: 16px;
    font-style: normal;
    font-weight: 300;
    opacity: 0.5;
    max-width: 700px;
}

/* #region ----------------------------- -withImg -- */

.m-textContentBlock.-withImg .m-textContentBlock__wrap {
    display: flex;
    flex-direction: column;
}

.m-textContentBlock.-withImg .m-textContentBlock__imgContainer {
    width: 100%;
}

.m-textContentBlock.-withImg .row {
    align-items: center;
}

.m-textContentBlock.-withImg .col-50 {
    display: flex;
}

.m-textContentBlock.-withImg .m-textContentBlock__img {
    width: 100%;
    max-height: 360px;
    object-fit: cover;
    border-radius: 16px;
}

.m-textContentBlock.-withImg .m-textContentBlock__title {
    font-size: var(--titleSize48);
    font-weight: 700;
    letter-spacing: -2px;
    line-height: 110%;
    /* 64px */
    max-width: inherit;
}

.m-textContentBlock.-withImg .m-textContentBlock__subtitle {
    font-size: 20px;
    font-weight: 510;
    letter-spacing: -1px;
    line-height: 150%;
    /* 64px */
}

/* #endregion -withImg */

/* #endregion textContentBlock */

/* #region -----------------------------  timeline -- */
.m-timelineContentBlock {
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    width: 100%;
    padding: var(--gapGeneric) var(--pagePadding);
}

.m-timelineContentBlock__wrap {
    display: flex;
    flex-direction: column;
    gap: 100rem 16px;
    width: 100%;
    max-width: var(--maxWidthWrap);
}

.m-timelineContentBlock__header {
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.m-timelineContentBlock__title {
    color: #04281a;
    font-size: var(--titleSize48);
    font-style: normal;
    font-weight: 700;
    line-height: 52px;
    /* 108.333% */
    letter-spacing: -2px;
}

.m-timelineContentBlock__subtitle {
    color: #04281a;
    font-size: 20px;
    font-style: normal;
    font-weight: 510;
    line-height: 150%;
    /* 108.333% */
    letter-spacing: -1px;
}

.m-timelineContentBlock__text .row {
    --timelineGap: 20px;
    --sizeIcoDot: 26px;

    gap: var(--timelineGap);
}

.m-timelineContentBlock__text .col-25 {
    flex: 1;
    padding: 100rem 16px 0 16px;
}

.m-timelineContentBlock__text .col-25::before {
    content: url("data:image/svg+xml,%3Csvg width='26' height='26' viewBox='0 0 26 26' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Ccircle opacity='0.54' cx='13' cy='13' r='13' fill='%23D9D9D9' fill-opacity='0.24'/%3E%3Ccircle opacity='0.54' cx='13' cy='13' r='3' fill='%23121212'/%3E%3C/svg%3E%0A");
    position: absolute;
    top: 0;
    left: 0;
    display: block;
    width: var(--sizeIcoDot);
    height: var(--sizeIcoDot);
}

.m-timelineContentBlock__text .col-25.-selected::before {
    content: url("data:image/svg+xml,%3Csvg width='31' height='31' viewBox='0 0 31 31' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Ccircle opacity='0.54' cx='15.1016' cy='15.0996' r='13' fill='%23D9D9D9' fill-opacity='0.24'/%3E%3Cg opacity='0.54' filter='url(%23filter0_d_27257_7342)'%3E%3Ccircle cx='15.1016' cy='15.0996' r='3' fill='%23548F0F'/%3E%3C/g%3E%3Cdefs%3E%3Cfilter id='filter0_d_27257_7342' x='0.0015626' y='-0.00039053' width='30.2' height='30.2' filterUnits='userSpaceOnUse' color-interpolation-filters='sRGB'%3E%3CfeFlood flood-opacity='0' result='BackgroundImageFix'/%3E%3CfeColorMatrix in='SourceAlpha' type='matrix' values='0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0' result='hardAlpha'/%3E%3CfeMorphology radius='6' operator='dilate' in='SourceAlpha' result='effect1_dropShadow_27257_7342'/%3E%3CfeOffset/%3E%3CfeGaussianBlur stdDeviation='3.05'/%3E%3CfeComposite in2='hardAlpha' operator='out'/%3E%3CfeColorMatrix type='matrix' values='0 0 0 0 0.329412 0 0 0 0 0.560784 0 0 0 0 0.0588235 0 0 0 0.47 0'/%3E%3CfeBlend mode='normal' in2='BackgroundImageFix' result='effect1_dropShadow_27257_7342'/%3E%3CfeBlend mode='normal' in='SourceGraphic' in2='effect1_dropShadow_27257_7342' result='shape'/%3E%3C/filter%3E%3C/defs%3E%3C/svg%3E%0A");
}

.m-timelineContentBlock__text .col-25::after {
    content: "";
    position: absolute;
    margin: calc(var(--sizeIcoDot) / 2) 0;
    top: 0;
    right: 0;
    display: block;
    width: calc(100% - var(--sizeIcoDot) - (var(--timelineGap)));
    height: 1px;
    background-color: #121212;
    opacity: 0.2;
}

.m-timelineContentBlock__text .title {
    font-size: 15px;
    font-style: normal;
    font-weight: 510;
    line-height: 100%;
    /* 15px */
    letter-spacing: -0.165px;
}

.m-timelineContentBlock__text .text {
    font-size: 15px;
    font-style: normal;
    font-weight: 400;
    line-height: 150%;
    /* 22.5px */
    letter-spacing: -0.165px;
    opacity: 0.6;
}

.m-timelineContentBlock__text .step {
    color: #121212;
    font-family: monospace;
    font-size: 12px;
    font-style: normal;
    font-weight: 400;
    line-height: 150%;
    /* 18px */
    letter-spacing: -0.165px;
    opacity: 0.6;
}

/* #endregion  timeline */
/* #region ----------------------------- grid-layout -- */
.m-gridLayoutContentBlock {
    --borderColor: #c5cac0;
    --borderWidth: 1px;
    --borderStyle: solid;
    --borderRadius: 16px;

    --paddingInterno: 32px;

    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    width: 100%;
    padding: var(--gapGeneric) var(--pagePadding);
}

.m-gridLayoutContentBlock__wrap {
    display: flex;
    flex-direction: column;
    gap: 100rem 16px;
    width: 100%;
    max-width: var(--maxWidthWrap);
    gap: 64px;
}

.m-gridLayoutContentBlock__header {
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    align-items: center;
    gap: 16px 48rem;
    width: 100%;
}

.m-gridLayoutContentBlock__title {
    color: #04281a;
    font-size: var(--titleSize48);
    font-style: normal;
    font-weight: 700;
    line-height: 52px;
    /* 108.333% */
    letter-spacing: -2px;
    text-wrap-style: balance;
}

.m-gridLayoutContentBlock__subtitle {
    color: #04281a;
    font-size: 20px;
    font-style: normal;
    font-weight: 510;
    line-height: 150%;
    /* 108.333% */
    letter-spacing: -1px;
}

.m-gridLayoutContentBlock__text {
    display: flex;
    flex-direction: column;
    gap: var(--borderWidth);
    overflow: hidden;
    border-radius: var(--borderRadius);
    border: var(--borderWidth) var(--borderStyle) var(--borderColor);
}

.m-gridLayoutContentBlock__text .row {
    gap: var(--borderWidth);
}

.m-gridLayoutContentBlock__text [class*="col-"] {
    padding: var(--paddingInterno);
    outline: var(--borderWidth) var(--borderStyle) var(--borderColor);
}

.m-gridLayoutContentBlock__text .title {
    font-size: 15px;
    font-style: normal;
    font-weight: 510;
    line-height: 100%;
    /* 15px */
    letter-spacing: -0.165px;
}

.m-gridLayoutContentBlock__text .text {
    font-size: 15px;
    font-style: normal;
    font-weight: 400;
    line-height: 150%;
    /* 22.5px */
    letter-spacing: -0.165px;
    opacity: 0.6;
}

.m-gridLayoutContentBlock__text .step {
    color: #121212;
    font-family: monospace;
    font-size: 12px;
    font-style: normal;
    font-weight: 400;
    line-height: 150%;
    /* 18px */
    letter-spacing: -0.165px;
    opacity: 0.6;
}

.m-gridLayoutContentBlock__text img {
    width: 100%;
    height: auto;
    object-fit: contain;
    margin-bottom: 24px;
}

/* #endregion grid-layout */

/* #region -----------------------------  ctaContentBlock -- */
.m-ctaContentBlock {
    width: 100%;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    padding: 148rem var(--pagePadding);
}

.m-ctaContentBlock__imgContainer {
    width: 100%;
    height: 100%;
}

.m-ctaContentBlock__img {
    width: 100%;
    height: 100%;
    object-fit: contain;
}

.m-ctaContentBlock__textContainer,
.m-ctaContentBlock__header {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    text-align: center;
    gap: 8px;
    color: var(--fontColor);
    max-width: 850px;
    text-wrap-style: balance;
}

.m-ctaContentBlock__textContainer {
    gap: 24rem;
}

.m-ctaContentBlock__title {
    color: #121212;
    text-align: center;

    font-size: var(--titleSize32);
    font-style: normal;
    font-weight: 700;
    line-height: 125%;
    /* 40px */
}

.m-ctaContentBlock__subtitle {
    color: #121212;
    text-align: center;

    font-size: 20px;
    font-style: normal;
    font-weight: 400;
    line-height: 150%;
}

.m-ctaContentBlock__text a {
    font-size: 20px;
    font-style: normal;
    font-weight: 300;
    line-height: 175%;
    /* 28px */
    letter-spacing: -0.48px;
    text-align: center;
    max-width: 800rem;
}

.m-ctaContentBlock__bgContainer {
    position: absolute;
    bottom: 0;
    left: 0;
    z-index: -1;
}

.m-ctaContentBlock__img {
    object-fit: contain;
}

.m-ctaContentBlock__bgContainer {
    width: 100%;
}

/* #endregion  ctaContentBlock */

/* #region -----------------------------  co2ContentBlock -- */
.m-co2ContentBlock {
    width: 100%;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    padding: 116rem var(--pagePadding);
    margin: var(--gapGeneric);
}

.m-co2ContentBlock__bgContainer {
    position: absolute;
    bottom: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: 0;
}

.m-co2ContentBlock__bgContainer::after {
    content: "";
    width: 100%;
    height: 100%;
    position: absolute;
    left: 0;
    top: 0;
    z-index: 1;
    background-color: rgba(38, 38, 38, 0.73);
}

.m-co2ContentBlock__picture {
    width: 100%;
    height: 100%;
}

.m-co2ContentBlock__img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.m-co2ContentBlock__textContainer {
    color: rgba(255, 255, 255, 0.95);
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 80px;
    z-index: 2;
}

.m-co2ContentBlock__headerContainer {
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: flex-start;
    gap: 48px;
    max-width: 870rem;
}

.m-co2ContentBlock__header {
    display: flex;
    flex-direction: column;
    gap: 8px;
    color: rgba(255, 255, 255, 0.95);
    max-width: 1000px;
}

.m-co2ContentBlock__co2Number {
    color: rgba(255, 255, 255, 0.95);
    font-size: var(--titleSize80);
    font-style: normal;
    font-weight: 700;
    line-height: 100%;
    /* 96px */
}

.m-co2ContentBlock__title {
    font-size: var(--titleSize30);
    font-style: normal;
    font-weight: 400;
    line-height: 125%;
    /* 40px */
}

.m-co2ContentBlock__subtitle {
    font-size: 14px;
    font-style: normal;
    font-weight: 300;
    line-height: 150%;
}

.m-co2ContentBlock__text .row {
    display: flex;
    flex-direction: row;
    align-items: center;
    flex-wrap: wrap;
    gap: 16px 64px;
}

.m-co2ContentBlock__text .row>div:not(:last-child)::after {
    content: "";
    height: 100%;
    position: absolute;
    width: 1px;
    background: white;
    right: -32px;
    bottom: 50%;
    transform: translateY(50%);
    opacity: 0.5;
}

.m-co2ContentBlock__text .row>div {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
}

/* #endregion  ctaContentBlock */

/* #region ----------------------------- servicesCategoryList -- */
.m-servicesCategoryList {
    width: 100%;
    display: flex;
    justify-content: center;
    padding: var(--gapGeneric) var(--pagePadding);
    margin-top: -230rem;
    z-index: 1;
}

.m-servicesCategoryList__wrap {
    width: 100%;
    max-width: 1700rem;
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 24px;
}

.m-servicesCategoryList__item {
    min-width: 0;
}

.m-servicesCategoryList__card {
    position: relative;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    min-height: 332px;
    height: 100%;
    padding: 24px;
    border-radius: 18px;
    overflow: hidden;
    text-decoration: none;
    color: #fff;
    border: 1px solid #4f8d25;
    background:
        radial-gradient(circle at 50% 100%,
            rgba(39, 120, 79, 0.72) 0%,
            rgba(9, 43, 29, 0.18) 42%,
            rgba(5, 25, 17, 0) 72%),
        linear-gradient(180deg, #0a281a 0%, #0f3423 100%);
    transition:
        transform 0.25s ease,
        box-shadow 0.25s ease,
        border-color 0.25s ease;
}

.m-servicesCategoryList__card:hover {
    transform: translateY(-4px);
    box-shadow: 0 20px 50px rgba(10, 33, 22, 0.2);
    border-color: #6aa73d;
}

.m-servicesCategoryList__content {
    display: flex;
    flex-direction: column;
    gap: 12px;
    z-index: 1;
}

.m-servicesCategoryList__title {
    margin: 0;
    color: #d8ded3;
    font-size: 20px;
    font-style: normal;
    font-weight: 700;
    line-height: 150%;
    letter-spacing: -0.72px;
}

.m-servicesCategoryList__description {
    color: #d8ded3;
    font-size: 16px;
    font-style: normal;
    font-weight: 300;
    line-height: 140%;
    letter-spacing: -0.32px;
    display: -webkit-box;
    -webkit-line-clamp: 4;
    -webkit-box-orient: vertical;
    overflow: hidden;
    opacity: 0.5;
}

.m-servicesCategoryList__media {
    display: flex;
    align-items: center;
    justify-content: center;
    flex: 1;
    min-height: 112px;
    padding: 24px 0;
    z-index: 1;
}

.m-servicesCategoryList__picture {
    display: flex;
    width: 100%;
    height: 100%;
}

.m-servicesCategoryList__img {
    width: 100%;
    height: 100%;
    max-height: 138px;
    object-fit: contain;
}

.m-servicesCategoryList__cta {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    color: #fff;
    font-size: 16px;
    font-style: normal;
    font-weight: 300;
    line-height: 140%;
    z-index: 1;
}

.m-servicesCategoryList__cta--top {
    margin-top: 8px;
}

.m-servicesCategoryList__item.-featured .m-servicesCategoryList__card {
    padding: 24px 0 0 24px;
    border-color: transparent;
    background: linear-gradient(180deg, #020202 0%, #03140d 100%);
}

.m-servicesCategoryList__item.-featured .m-servicesCategoryList__card:hover {
    border-color: transparent;
}

.m-servicesCategoryList__brand {
    display: flex;
    width: 100%;
    max-width: 92px;
}

.m-servicesCategoryList__brandImg {
    width: 100%;
    height: auto;
}

.m-servicesCategoryList__item.-featured .m-servicesCategoryList__description {
    max-width: 235px;
    color: rgba(255, 255, 255, 0.88);
}

.m-servicesCategoryList__item.-featured .m-servicesCategoryList__media {
    align-items: flex-end;
    justify-content: flex-end;
    padding: 16px 0 0;
}

.m-servicesCategoryList__item.-featured .m-servicesCategoryList__picture {
    align-items: flex-end;
    justify-content: right;
}

.m-servicesCategoryList__item.-featured .m-servicesCategoryList__img {
    transform-origin: bottom right;
    object-fit: contain;
    width: auto;
}

.m-servicesCategoryList__bg {
    position: absolute;
    inset: 0;
    z-index: 0;
}

.m-servicesCategoryList__item.-featured .m-servicesCategoryList__bg::after {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg,
            rgba(0, 0, 0, 0.16) 0%,
            rgba(0, 0, 0, 0.411) 100%);
}

.m-servicesCategoryList__bg::after {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg,
            rgba(0, 255, 149, 0.16) 0%,
            rgba(0, 0, 0, 0.411) 100%);
}

.m-servicesCategoryList__bgImg {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

@media (max-width: 1180px) {
    .m-servicesCategoryList__wrap {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

@media (max-width: 960px) {
    .m-servicesCategoryList__wrap {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

/* #endregion servicesCategoryList */

/* #region ----------------------------- success-stories -- */
.m-successStories {
    display: flex;
    flex-direction: column;
    width: 100%;
    max-width: var(--maxWidthWrap);
    gap: 32px;
    padding: var(--gapGeneric) var(--pagePadding);
}

.m-successStories__wrap {
    display: flex;
    flex-direction: row;
    width: 100%;
    max-width: var(--maxWidthWrap);
    gap: 16px 64px;
}

.m-successStories__sticky {
    display: flex;
    flex-direction: column;
    gap: 8px;
    position: sticky;
    top: 132px;
    align-items: flex-end;
    height: fit-content;
}

.m-successStories__stickyItem.-primary {
    display: flex;
    flex-direction: row;
    width: fit-content;
    align-items: center;
    justify-content: center;
    gap: 16px;
    border-radius: 100px;
    padding: 16px 21px;
    background-color: rgba(10, 67, 44, 0.82);

    --titleFontSize: var(--titleSize48);
    --titleColor: white;
    --captionFontSize: 16px;
    --captionColor: white;
}

.m-successStories__stickyItem.-secondary {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    justify-content: center;
    gap: 4px;
    border-radius: 100px;
    padding: 16px 21px;
    background-color: #82a193;

    --titleFontSize: var(--titleSize30);
    --titleColor: white;
    --captionFontSize: 16px;
    --captionColor: white;
}

.m-successStories__stickyItem {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    justify-content: center;
    gap: 4px;
    border-radius: 100px;
    padding: 16px 28px;
    background-color: #fff;

    --titleFontSize: 16px;
    --titleColor: #2f5f4a;
    --captionFontSize: 16px;
    --captionColor: #121212;
}

.m-successStories__stickyItem.-secondary .m-successStories__content {
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: center;
    gap: 8px;
}

.m-successStories__stickyItem .m-successStories__content {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    justify-content: center;
    gap: 8px;
}

.m-successStories__number {
    font-weight: 700;
    font-size: var(--titleFontSize);
    color: var(--titleColor);
}

.m-successStories__caption {
    font-size: var(--captionFontSize);
    color: var(--captionColor);
}

.m-successStories__stickyItem .a-separator {
    height: 24rem;
    width: 1px;
    opacity: 0.5;
}

/* #endregion success-stories */

/* #region ----------------------------- serviceCategory -- */
.m-serviceCategory {
    width: 100%;
    display: flex;
    justify-content: center;
    padding: 24px var(--pagePadding) var(--gapGeneric);
}

.m-serviceCategory__wrap {
    width: 100%;
    max-width: var(--maxWidthWrap);
    display: flex;
    flex-direction: column;
    gap: 32px;
}

.m-serviceCategory__hero {
    display: grid;
    grid-template-columns: minmax(0, 1.35fr) minmax(260px, 0.65fr);
    gap: 24px;
    align-items: stretch;
}

.m-serviceCategory__heroMain,
.m-serviceCategory__heroSide,
.m-serviceCategory__heroCard {
    display: flex;
    flex-direction: column;
}

.m-serviceCategory__heroMain,
.m-serviceCategory__heroCard {
    border: 1px solid rgba(18, 18, 18, 0.08);
    border-radius: 28px;
    backdrop-filter: blur(12px);
    box-shadow: 0 18px 60px rgba(18, 18, 18, 0.08);
}

.m-serviceCategory__heroMain {
    background:
        radial-gradient(circle at top left,
            rgba(122, 128, 112, 0.12) 0%,
            rgba(122, 128, 112, 0) 34%),
        radial-gradient(circle at bottom right,
            rgba(76, 90, 44, 0.12) 0%,
            rgba(76, 90, 44, 0) 38%),
        linear-gradient(145deg,
            rgba(247, 248, 243, 0.97) 0%,
            rgba(233, 236, 228, 0.88) 100%);
}

.m-serviceCategory__heroCard {
    background:
        radial-gradient(circle at top left,
            rgba(76, 90, 44, 0.14) 0%,
            rgba(76, 90, 44, 0) 28%),
        radial-gradient(circle at bottom right,
            rgba(104, 96, 86, 0.1) 0%,
            rgba(104, 96, 86, 0) 34%),
        linear-gradient(160deg,
            rgba(245, 247, 241, 0.96) 0%,
            rgba(229, 233, 224, 0.9) 100%);
}

.m-serviceCategory__heroMain {
    gap: 20px;
    padding: 24px;
    justify-content: space-between;
}

.m-serviceCategory__heroHeader {
    display: flex;
    flex-direction: column;
    gap: 12px;
    max-width: 420px;
}

.m-serviceCategory__eyebrow {
    margin: 0;
    color: #4c5a2c;
    font-size: 12px;
    font-weight: 600;
    line-height: 1.2;
    letter-spacing: 0.18em;
    text-transform: uppercase;
}

.m-serviceCategory__title {
    margin: 0;
    color: #111111;
    font-size: clamp(26px, 22px + 0.9vw, 38px);
    font-weight: 700;
    line-height: 0.98;
    text-wrap-style: balance;
}

.m-serviceCategory__intro {
    color: rgba(17, 17, 17, 0.68);
    font-size: 15px;
    font-weight: 300;
    line-height: 1.55;
    letter-spacing: -0.02em;
}

.m-serviceCategory__intro>*:first-child,
.m-serviceCategoryCard__description>*:first-child {
    margin-top: 0;
}

.m-serviceCategory__intro>*:last-child,
.m-serviceCategoryCard__description>*:last-child {
    margin-bottom: 0;
}

.m-serviceCategory__heroSide {
    gap: 16px;
}

.m-serviceCategory__stats {
    list-style: none;
    display: flex;
    flex-direction: column;
    gap: 12px;
    margin: 0;
    padding: 0;
}

.m-serviceCategory__stat {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 44px;
    padding: 10px 16px;
    border-radius: 999px;
    border: 1px solid rgba(18, 18, 18, 0.08);
    background: rgba(255, 255, 255, 0.62);
    color: rgba(18, 18, 18, 0.72);
    font-size: 14px;
    font-weight: 400;
    line-height: 1.4;
}

.m-serviceCategory__heroCard {
    gap: 20px;
    padding: 20px;
    min-height: 100%;
    overflow: hidden;
}

.m-serviceCategory__heroMeta {
    display: flex;
    align-items: baseline;
    gap: 10px;
    color: #3b4524;
    padding: 4px 4px 0;
}

.m-serviceCategory__heroKicker {
    font-size: clamp(48px, 34px + 1.8vw, 72px);
    font-weight: 700;
    line-height: 0.9;
}

.m-serviceCategory__heroMetaText {
    font-size: 14px;
    font-weight: 400;
    line-height: 1.5;
    text-transform: uppercase;
    letter-spacing: 0.14em;
    opacity: 0.72;
}

.m-serviceCategory__grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px;
}

.m-serviceCategoryCard {
    min-width: 0;
}

.m-serviceCategoryCard__link {
    position: relative;
    display: flex;
    flex-direction: column;
    gap: 12px;
    height: 100%;
    min-height: 0;
    padding: 18px;
    border-radius: 20px;
    border: 1px solid rgba(18, 18, 18, 0.07);
    overflow: hidden;
    text-decoration: none;
    color: inherit;
    background:
        radial-gradient(circle at top right,
            rgba(104, 96, 86, 0.1) 0%,
            rgba(104, 96, 86, 0) 34%),
        radial-gradient(circle at bottom left,
            rgba(76, 90, 44, 0.16) 0%,
            rgba(76, 90, 44, 0) 36%),
        linear-gradient(165deg,
            rgba(250, 251, 247, 0.98) 0%,
            rgba(239, 242, 235, 0.88) 100%);
    backdrop-filter: blur(12px);
    box-shadow: 0 16px 38px rgba(18, 18, 18, 0.08);
    transition:
        transform 0.25s ease,
        border-color 0.25s ease,
        box-shadow 0.25s ease,
        background 0.25s ease;
}

.m-serviceCategoryCard__link:hover {
    transform: translateY(-4px);
    border-color: rgba(34, 110, 92, 0.22);
    background:
        radial-gradient(circle at top right,
            rgba(104, 96, 86, 0.14) 0%,
            rgba(104, 96, 86, 0) 36%),
        radial-gradient(circle at bottom left,
            rgba(76, 90, 44, 0.18) 0%,
            rgba(76, 90, 44, 0) 40%),
        linear-gradient(165deg,
            rgba(252, 252, 249, 0.99) 0%,
            rgba(236, 240, 232, 0.92) 100%);
    box-shadow: 0 24px 52px rgba(18, 18, 18, 0.12);
}

.m-serviceCategoryCard__index {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: fit-content;
    min-width: 36px;
    min-height: 36px;
    padding: 8px 10px;
    border-radius: 999px;
    background: linear-gradient(135deg,
            rgba(255, 255, 255, 0.96) 0%,
            rgba(245, 242, 232, 0.92) 100%);
    color: #4c5a2c;
    font-size: 12px;
    font-weight: 600;
    line-height: 1;
    letter-spacing: 0.08em;
    box-shadow: 0 10px 24px rgba(18, 18, 18, 0.08);
}

.m-serviceCategoryCard__content,
.m-serviceCategoryCard__text {
    display: flex;
    flex-direction: column;
}

.m-serviceCategoryCard__content {
    gap: 18px;
    flex: 1;
    justify-content: space-between;
}

.m-serviceCategoryCard__text {
    gap: 12px;
}

.m-serviceCategoryCard__title {
    margin: 0;
    color: #171717;
    font-size: clamp(20px, 17px + 0.5vw, 26px);
    font-weight: 700;
    line-height: 1.1;
    text-wrap-style: balance;
}

.m-serviceCategoryCard__description {
    color: rgba(23, 23, 23, 0.64);
    font-size: 14px;
    font-weight: 300;
    line-height: 1.5;
    letter-spacing: -0.02em;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.m-serviceCategoryCard__footer {
    display: flex;
    align-items: center;
    justify-content: flex-start;
}

.m-serviceCategoryCard__cta {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    min-height: 36px;
    padding: 8px 12px;
    border-radius: 999px;
    background: linear-gradient(135deg, #1a1915 0%, #4c5a2c 100%);
    color: #ffffff;
    font-size: 13px;
    font-weight: 400;
    line-height: 1.3;
    box-shadow: 0 10px 24px rgba(18, 18, 18, 0.16);
}

.m-serviceCategoryCard__cta::after {
    content: "↗";
    font-size: 15px;
}

/* #region ----------------------------- serviceCategory -- */

@media (max-width: 1080px) {
    .m-serviceCategory__hero {
        grid-template-columns: 1fr;
    }

    .m-serviceCategory__heroSide {
        order: -1;
    }

    .m-serviceCategory__heroMain {
        max-width: none;
    }

    .m-serviceCategory__heroHeader {
        max-width: none;
    }

    .m-serviceCategory__stats {
        flex-direction: row;
        flex-wrap: wrap;
    }
}

@media (max-width: 720px) {
    .m-serviceCategory {
        padding-top: 0;
    }

    .m-serviceCategory__wrap {
        gap: 20px;
    }

    .m-serviceCategory__heroMain,
    .m-serviceCategory__heroCard,
    .m-serviceCategoryCard__link {
        border-radius: 22px;
    }

    .m-serviceCategory__heroMain {
        padding: 24px 20px;
        gap: 24px;
    }

    .m-serviceCategory__intro {
        font-size: 16px;
        line-height: 1.65;
    }

    .m-serviceCategory__grid {
        grid-template-columns: 1fr;
    }
}

/* #endregion serviceCategory */

/* #region ----------------------------- blog -- */
.p-blogItem .a-button,
.p-blogItem .a-button:hover {
    color: #fff !important;
}

.m-blogItem__img {
    aspect-ratio: 360/204;
}

.m-blogHeader__content h2 {
    margin-bottom: 32px;
}

.m-blogItem__content a,
.m-blogItem__content a:visited {
    color: var(--secondaryColor);
    text-decoration: underline;
    text-decoration-thickness: 1px;
    text-underline-offset: 0.14em;
}

.m-blogItem__content a:hover {
    color: var(--mainColor);
}

.m-blogItem__textContainer,
.m-blogItem__header {
    display: flex;
    flex-direction: column;
    justify-content: flex-start;
    align-items: stretch;
}

.m-blogItem__textContainer {
    gap: 12px;
}

.m-blogItem__header {
    min-height: 0;
    gap: 8px;
}

.blogItemHeader__subtitle {
    font-weight: 300;
    color: var(--secondaryColor);
}

.p-blogItem .m-secondaryHeader__title {
    margin-bottom: 20px;
}

.m-blogItem__title {
    font-size: 18px;
    -webkit-line-clamp: 3;
    margin: 0;
}

.m-blogItem__resume {
    margin: 0;
}

.m-blogItem__resume:empty {
    display: none;
}

.m-blogItem__header > :last-child {
    margin-bottom: 0;
}

.m-blogItem__extraData {
    margin-top: 0;
}

.o-blogItem__contentGroup .swiper {
    width: 100%;
    margin: 32px 0 40px;
}

.o-blogItem__contentGroup .swiper-slide,
.o-blogItem__contentGroup .o-slider,
.o-blogItem__contentGroup .o-slider__wrap {
    display: block;
    flex: 0 0 100%;
    min-width: 100%;
    max-width: 100%;
    width: 100%;
}

.o-blogItem__contentGroup .o-slider__wrap {
    min-height: 420px;
    border-radius: 16px;
}

.o-blogItem__contentGroup .o-slider__picture {
    display: block;
    min-width: 100%;
    max-width: 100%;
    width: 100%;
    margin: 0;
}

.o-blogItem__contentGroup .o-slider__img {
    display: block;
    width: 100%;
    height: auto;
    max-height: 560px;
    object-fit: contain;
    object-position: center;
}

@media (max-width: 720px) {
    .o-blogItem__contentGroup .swiper {
        margin: 24px 0 32px;
    }

    .o-blogItem__contentGroup .o-slider__wrap {
        min-height: 260px;
        padding: 16px;
    }
}


/* #endregion blog */

/* #region -----------------------------  ecrasContentBlock -- */
.m-ecrasContentBlock {
    width: 100%;
    display: flex;
    flex-direction: row;
    justify-content: right;
    padding: 0 0 0 var(--pagePadding);
    margin-top: var(--gapGeneric);
}

.m-ecrasContentBlock__wrap {
    max-width: 1650rem;
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: space-between;
    width: 100%;
    height: 100%;
}

.m-ecrasContentBlock__img {
    width: 100%;
    height: 100%;
    object-fit: contain;
}

.m-ecrasContentBlock__imgContainer {
    display: flex;
    height: 100%;
}

.m-ecrasContentBlock__imgContainer .m-ecrasContentBlock__img {
    width: 100%;
    height: 100%;
    object-fit: contain;
    max-height: 600rem;
}

.m-ecrasContentBlock__textContainer,
.m-ecrasContentBlock__header {
    display: flex;
    flex-direction: column;
    gap: 8px;
    color: var(--fontColor);
    max-width: 850px;
    text-wrap-style: balance;
}

.m-ecrasContentBlock__textContainer {
    gap: 24rem;
}

.m-ecrasContentBlock__logo {
    max-width: 200rem;
}

.m-ecrasContentBlock__title {
    color: #121212;

    font-size: var(--titleSize24);
    font-style: normal;
    font-weight: 700;
    line-height: 125%;
    /* 40px */
}

.m-ecrasContentBlock__subtitle {
    color: #121212;
    font-size: 16px;
    font-style: normal;
    font-weight: 400;
    line-height: 150%;
}

.m-ecrasContentBlock__text a {
    font-size: 20px;
    font-style: normal;
    font-weight: 300;
    line-height: 175%;
    /* 28px */
    letter-spacing: -0.48px;
    text-align: center;
    max-width: 800rem;
}

.m-ecrasContentBlock__bgContainer {
    position: absolute;
    bottom: 0;
    left: 0;
    z-index: -1;
}

.m-ecrasContentBlock__bgContainer .m-ecrasContentBlock__img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

/* #endregion  ctaContentBlock */

/* #region -----------------------------  mediaFullContentBlock -- */
.m-mediaFullContentBlock {
    width: 100%;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    padding: var(--gapGeneric) var(--pagePadding);
}

.m-mediaFullContentBlock__wrap {
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    width: 100%;
    max-width: var(--maxWidthWrap);
}

.m-mediaFullContentBlock__imgContainer {
    width: 100%;
    height: 100%;
}

.m-mediaFullContentBlock__img {
    width: 100%;
    height: 100%;
    object-fit: contain;
}

.m-mediaFullContentBlock__textContainer,
.m-mediaFullContentBlock__header {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    text-align: center;
    gap: 8px;
    color: var(--fontColor);
}

.m-mediaFullContentBlock__text {
    font-size: 16px;
    font-style: normal;
    font-weight: 300;
    line-height: 175%;
    /* 28px */
    letter-spacing: -0.48px;
    text-align: center;
    max-width: 800rem;
    opacity: 0.5;
    color: var(--fontColor);
}

/* #endregion  mediaFullContentBlock */

/* #region ----------------------------- logoShowcase -- */
.m-logoShowcaseContentBlock {
    width: 100%;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    padding: var(--gapGeneric) var(--pagePadding);
}

.m-logoShowcaseContentBlock__wrap {
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    width: 100%;
    max-width: var(--maxWidthWrap);
}

.m-logoShowcaseContentBlock__header {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    text-align: center;
    gap: 8px;
}

.m-logoShowcaseContentBlock__textContainer {
    display: flex;
    flex-direction: column;
    gap: 16px;
    color: var(--fontColor);
}

.m-logoShowcaseContentBlock__text {
    font-size: 16px;
    font-style: normal;
    font-weight: 300;
    line-height: 175%;
    /* 28px */
    letter-spacing: -0.48px;
    text-align: center;
    max-width: 800rem;
    opacity: 0.5;
    color: var(--fontColor);
}

.m-logoShowcaseContentBlock__list {
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    list-style: none;
    gap: 0 16px;
    padding: 0 16px;
}

.m-logoShowcaseContentBlock__item {
    display: flex;
    align-items: center;
    justify-content: center;
    aspect-ratio: 1/1;
    width: 100%;
    height: 100%;
    background-image: url("data:image/svg+xml,%3Csvg width='174' height='195' viewBox='0 0 174 195' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M77.6026 2.41155C83.1718 -0.803849 90.0333 -0.803848 95.6026 2.41155L164.205 42.0192C169.774 45.2346 173.205 51.1769 173.205 57.6076V136.824C173.205 143.254 169.774 149.197 164.205 152.412L95.6026 192.02C90.0333 195.235 83.1718 195.235 77.6026 192.02L9 152.412C3.43078 149.197 0 143.254 0 136.824V57.6076C0 51.1769 3.43078 45.2346 9 42.0192L77.6026 2.41155Z' fill='white'/%3E%3C/svg%3E%0A");
    background-image: url("data:image/svg+xml,%3Csvg width='200' height='200' viewBox='0 0 200 200' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M89.6078 2.48062C96.0386 -0.826874 103.962 -0.826873 110.392 2.48062L189.608 43.2228C196.038 46.5303 200 52.6428 200 59.2577V140.743C200 147.357 196.038 153.47 189.608 156.777L110.392 197.52C103.962 200.827 96.0386 200.827 89.6078 197.52L10.3923 156.777C3.96152 153.47 0 147.357 0 140.743V59.2577C0 52.6428 3.96152 46.5303 10.3923 43.2228L89.6078 2.48062Z' fill='white'/%3E%3C/svg%3E%0A");
    background-repeat: no-repeat;
    background-size: contain;
    background-position: center;

    transition: all ease-in-out 0.3s;

    width: 200px;
    max-height: 200px;

    margin-bottom: -24px;
}

.m-logoShowcaseContentBlock__picture,
.m-logoShowcaseContentBlock__img {
    display: flex;
    width: 100%;
    height: 100%;
    object-fit: contain;
    aspect-ratio: 1/1;
    max-height: 120px;
    max-width: 150px;
}

/* #endregion logoShowcase */

/* #region ----------------------------- filtered client showcase -- */
.m-logoShowcaseContentBlock--filtered {
    padding-top: 32px;
}

.m-clientShowcase__filters {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 10px;
    margin-bottom: 32px;
}

.m-clientShowcase__filter {
    border: 1px solid currentColor;
    border-radius: 999px;
    padding: 8px 16px;
    background: transparent;
    color: var(--fontColor);
    cursor: pointer;
    transition: color ease-in-out 0.2s, background-color ease-in-out 0.2s, transform ease-in-out 0.2s;
}

.m-clientShowcase__filter:hover,
.m-clientShowcase__filter.is-active {
    background-color: var(--fontColor);
    color: var(--bgColor);
    transform: translateY(-2px);
}

.m-clientShowcase__sectorInfo {
    min-height: 0;
    margin-bottom: 8px;
    text-align: center;
}

.m-clientShowcase__list {
    --client-column-gap: 16px;
    --client-row-overlap: 24px;
    --client-track-count: 11;
    --client-track-size: 108px;

    display: grid;
    grid-template-columns: repeat(var(--client-track-count), var(--client-track-size));
    grid-auto-rows: calc(200px - var(--client-row-overlap));
    justify-content: center;
    gap: 0;
    box-sizing: border-box;
    width: 100%;
    min-width: 0;
    padding: 0 16px var(--client-row-overlap);
}

.m-clientShowcase__sectorInfo[hidden] {
    display: none;
}

.m-clientShowcase__sector {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 16px;
}

.m-clientShowcase__sector[hidden] {
    display: none;
}

.m-clientShowcase__item[hidden] {
    display: none;
}

.m-clientShowcase__item.is-hidden {
    display: none;
}

.m-clientShowcase__item {
    grid-column-start: var(--client-grid-column);
    grid-row-start: var(--client-grid-row);
    align-self: start;
    height: 200px;
    margin-bottom: 0;
    transform: none;
    transform-origin: center;
    transition: transform 0.25s ease, filter 0.25s ease, opacity 0.3s ease;
    will-change: transform;
}

@media (hover: hover) {
    .m-clientShowcase__item:hover {
        z-index: 1;
        transform: translateY(-6px) scale(1.025);
        filter: drop-shadow(0 14px 18px rgba(38, 47, 15, 0.14));
    }
}

@media (prefers-reduced-motion: reduce) {
    .m-clientShowcase__item {
        transition: none;
    }

    .m-clientShowcase__item:hover {
        transform: none;
        filter: none;
    }
}

/* #endregion filtered client showcase */

/* #region ----------------------------- featuredContentBlock -- */
.m-featuredContentBlock {
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    width: 100%;
    background-color: var(--secondaryColor);
    padding: 64px var(--pagePadding);
    margin: 0;
}

.m-featuredContentBlock__wrap {
    display: flex;
    flex-direction: row;
    align-items: center;
    gap: 16px 48rem;
    max-width: var(--maxWidthWrap);
}

.m-featuredContentBlock__textContainer {
    display: flex;
    flex-direction: column;
    gap: 24px;
    color: white;
}

.m-featuredContentBlock__header {
    display: flex;
    flex-direction: column;
    flex-direction: column;
    gap: 4px;
}

.m-featuredContentBlock__title {
    font-size: var(--titleSize32);
    font-weight: 700;
    opacity: 0.5;
}

.m-featuredContentBlock__subtitle {
    font-size: 20px;
    font-weight: 400;
    line-height: 150%;
    text-wrap-style: balance;
    opacity: 0.5;
}

.m-featuredContentBlock__text {
    font-size: 20px;
    font-weight: 300;
    line-height: 170%;
    text-wrap-style: balance;
}

.m-featuredContentBlock__text .subtitle {
    font-size: 18px;
    font-weight: 400;
    line-height: 175%;
}

.m-featuredContentBlock__text .text {
    font-size: 14px;
    font-weight: 300;
    line-height: 175%;
    opacity: 0.5;
}

.m-featuredContentBlock__text .row {
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    gap: 16px 64px;
}

.m-featuredContentBlock__text .row>div:not(:last-child)::after {
    content: "";
    height: 30%;
    position: absolute;
    width: 1px;
    background: white;
    right: -24px;
    bottom: 50%;
    transform: translateY(50%);
    opacity: 0.5;
}

.m-featuredContentBlock__text .row>div {
    flex: 1 0 300px;
}

/* #endregion featuredContentBlock */

/* #region ----------------------------- forms -- */
:where(.m-contactForm, .m-form__groupFields, .m-form__radioRelated) {
    --formSurface: rgba(255, 255, 255, 0.72);
    --formSurfaceHover: rgba(255, 255, 255, 0.9);
    --formBorder: rgba(18, 18, 18, 0.1);
    --formBorderStrong: rgba(18, 18, 18, 0.18);
    --formText: #121212;
    --formMuted: rgba(18, 18, 18, 0.58);
    --formPlaceholder: rgba(18, 18, 18, 0.42);
    --formFocus: var(--secondaryColor);
    --formShadow: 0 10px 30px rgba(18, 18, 18, 0.08);
    --formRadius: 8px;
    --formFieldHeight: 56px;
}

:where(.m-contactForm, .m-form__groupFields, .m-form__radioRelated) {
    display: grid;
    gap: 18px;
}

.m-input__container,
.m-form__timeSelect,
.m-form__group,
.m-form__radioGroup,
p.checkbox {
    display: flex;
    flex-direction: column;
    gap: 8px;
    margin: 0;
}

.m-input__container label,
.m-form__timeSelect>label,
.m-form__groupTitle,
.m-form__radioGroup>.m-form__groupTitle,
p.checkbox label {
    color: var(--formText);
    font-size: 13px;
    font-weight: 600;
    line-height: 1.35;
    letter-spacing: 0.01em;
}

.m-form__groupDescription,
.m-form__radioDescription {
    color: var(--formMuted);
    font-size: 14px;
    line-height: 1.6;
    margin: 0;
}

.m-input__container input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]),
.m-input__container select,
.m-input__container textarea,
.m-form__timeSelectField select {
    appearance: none;
    width: 100%;
    min-height: var(--formFieldHeight);
    border: 1px solid var(--formBorder);
    border-radius: var(--formRadius);
    background: var(--formSurface);
    color: var(--formText);
    padding: 0 18px;
    box-shadow: 0 1px 0 rgba(255, 255, 255, 0.35) inset;
    transition:
        border-color 0.2s ease,
        box-shadow 0.2s ease,
        background-color 0.2s ease,
        transform 0.2s ease;
}

.m-input__container textarea {
    min-height: 148px;
    padding: 16px 18px;
    resize: vertical;
}

.m-input__container input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]):hover,
.m-input__container select:hover,
.m-input__container textarea:hover,
.m-form__timeSelectField select:hover {
    background: var(--formSurfaceHover);
    border-color: var(--formBorderStrong);
}

.m-input__container input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]):focus,
.m-input__container select:focus,
.m-input__container textarea:focus,
.m-form__timeSelectField select:focus {
    outline: none;
}

.m-input__container input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]):focus-visible,
.m-input__container select:focus-visible,
.m-input__container textarea:focus-visible,
.m-form__timeSelectField select:focus-visible,
p.checkbox input:focus-visible,
.m-form__radioInput:focus-visible+.m-form__radioIcon {
    border-color: var(--formFocus);
    box-shadow:
        0 0 0 4px color-mix(in srgb, var(--formFocus) 14%, transparent),
        var(--formShadow);
}

.m-input__container input::placeholder,
.m-input__container textarea::placeholder {
    color: var(--formPlaceholder);
}

.m-input__container select,
.m-form__timeSelectField select {
    padding-right: 48px;
    background-image:
        linear-gradient(45deg, transparent 50%, var(--formMuted) 50%),
        linear-gradient(135deg, var(--formMuted) 50%, transparent 50%);
    background-position:
        calc(100% - 22px) calc(50% - 2px),
        calc(100% - 16px) calc(50% - 2px);
    background-size:
        6px 6px,
        6px 6px;
    background-repeat: no-repeat;
}

.m-form__timeSelectControls {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
    align-items: center;
    gap: 12px;
}

.m-form__timeSelectSeparator {
    color: var(--formMuted);
    font-size: 24px;
    font-weight: 500;
}

.m-form__group,
.m-form__radioGroup {
    padding: 24px;
    border: 1px solid rgba(18, 18, 18, 0.08);
    border-radius: 24px;
    background: rgba(255, 255, 255, 0.4);
    backdrop-filter: blur(12px);
}

.m-form__groupFields,
.m-form__radioOptions,
.m-form__radioRelated {
    display: grid;
    gap: 18px;
}

p.checkbox {
    position: relative;
    flex-direction: row;
    align-items: flex-start;
    gap: 12px;
    padding: 14px 16px;
    border: 1px solid rgba(18, 18, 18, 0.08);
    border-radius: 16px;
    background: rgba(255, 255, 255, 0.45);
}

p.checkbox input {
    appearance: none;
    width: 20px;
    height: 20px;
    margin: 1px 0 0;
    flex: 0 0 auto;
    border: 1.5px solid var(--formBorderStrong);
    border-radius: 6px;
    background: rgba(255, 255, 255, 0.9);
    transition:
        background-color 0.2s ease,
        border-color 0.2s ease,
        box-shadow 0.2s ease;
}

p.checkbox input:checked {
    background: var(--formFocus);
    border-color: var(--formFocus);
    box-shadow: inset 0 0 0 4px #ffffff;
}

p.checkbox label {
    font-size: 14px;
    font-weight: 400;
    line-height: 1.6;
}

.m-input__buttonContainer {
    display: flex;
    margin-top: 8px;
}

.m-input__button {
    min-height: 56px;
    padding-inline: 28px;
    border-radius: 999px;
    box-shadow: 0 12px 30px rgba(18, 18, 18, 0.12);
}

.m-form__radioOption {
    display: flex;
    flex-direction: column;
}

.m-form__radioCard {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    align-items: center;
    gap: 14px;
    padding: 18px;
    border: 1px solid var(--formBorder);
    border-radius: 20px;
    background: rgba(255, 255, 255, 0.65);
    cursor: pointer;
    transition:
        border-color 0.2s ease,
        background-color 0.2s ease,
        box-shadow 0.2s ease,
        transform 0.2s ease;
}

.m-form__radioCard:hover {
    border-color: var(--formBorderStrong);
    background: rgba(255, 255, 255, 0.92);
    transform: translateY(-1px);
}

.m-form__radioInput {
    position: absolute;
    opacity: 0;
    pointer-events: none;
}

.m-form__radioIcon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 42px;
    height: 42px;
    border-radius: 14px;
    border: 1px solid rgba(18, 18, 18, 0.08);
    background: rgba(255, 255, 255, 0.9);
}

.m-form__radioIcon.-empty {
    display: none;
}

.m-form__radioContent {
    display: flex;
    flex-direction: column;
    gap: 4px;
    min-width: 0;
}

.m-form__radioTitle {
    color: var(--formText);
    font-size: 15px;
    font-weight: 600;
    line-height: 1.4;
}

.m-form__radioIndicator {
    width: 20px;
    height: 20px;
    border: 1.5px solid var(--formBorderStrong);
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.9);
    transition:
        border-color 0.2s ease,
        box-shadow 0.2s ease,
        background-color 0.2s ease;
}

.m-form__radioInput:checked~.m-form__radioIndicator {
    border-color: var(--formFocus);
    box-shadow: inset 0 0 0 5px var(--formFocus);
}

.m-form__radioOption.-selected .m-form__radioCard,
.m-form__radioInput:checked~.m-form__radioIndicator,
.m-form__radioInput:checked~.m-form__radioContent+.m-form__radioIndicator {
    border-color: var(--formFocus);
}

.m-form__radioRelated {
    padding-top: 12px;
}

.m-contactForm p.-subtle {
    font-size: 11px;
    opacity: 0.8;
    font-weight: 300;
}

.m-contactForm p.-subtle a,
.m-contactForm p.checkbox label a {
    color: var(--secondaryColor);
    text-decoration: underline;
    text-decoration-thickness: 1px;
    transition:
        color 0.2s ease,
        text-decoration-color 0.2s ease,
        opacity 0.2s ease;
}

.m-contactForm p.-subtle a:hover,
.m-contactForm p.checkbox label a:hover {
    color: var(--mainColor);
    text-decoration-color: currentColor;
}

.m-contactForm p.-subtle a:focus-visible,
.m-contactForm p.checkbox label a:focus-visible {
    outline: 2px solid color-mix(in srgb, var(--secondaryColor) 35%, white);
    outline-offset: 2px;
    border-radius: 2px;
}

/* #endregion forms */

/* #region ----------------------------- footer -- */
.o-mainFooter {
    background-color: #121212;
    color: white;
}

/* #endregion footer */

/* #region ----------------------------- footer override -- */
/*
 * El footer comparte markup con la base común. Estas reglas viven aquí para
 * poder corregir esta web sin modificar los estilos compartidos.
 */
.o-mainFooter {
    display: flex;
    flex-direction: column;
    width: 100%;
    margin: 0;
    background-color: #121212;
    color: #fff;
    border-top: 1px solid var(--secondaryColor);
}

.o-mainFooter > .a-separator {
    width: 100%;
    height: 1px;
    margin: 0;
    border: 0;
    background-color: rgba(255, 255, 255, .16);
}

.o-mainFooter .m-mainFooter__container {
    display: flex;
    flex-direction: column;
    width: 100%;
    max-width: 1400px;
    margin: 0 auto;
    padding: 48px 40px 24px;
    gap: 32px;
}

.o-mainFooter .m-mainFooter__link {
    display: flex;
    width: 100%;
}

.o-mainFooter .m-mainFooter__image {
    display: block;
    width: 100%;
    max-width: 220px;
    height: auto;
}

.o-mainFooter .wrap {
    display: grid;
    grid-template-columns: minmax(220px, 1fr) minmax(0, 2fr);
    align-items: start;
    gap: clamp(48px, 7vw, 120px);
    width: 100%;
}

.o-mainFooter .m-mainFooter__corporative {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    min-width: 0;
    gap: 0;
}

.o-mainFooter .a-mainFooterCorporative__msg {
    max-width: 350px;
    margin: 0;
    color: inherit;
    font-size: 14px;
    line-height: 150%;
    opacity: .7;
}

.o-mainFooter .m-mainFooter__navsGroup {
    display: grid;
    grid-template-columns: minmax(0, 1.5fr) minmax(140px, 1fr) minmax(140px, 1fr);
    grid-template-areas: "sitemap legal rrss";
    gap: clamp(24px, 4vw, 64px);
    min-width: 0;
}

.o-mainFooter .m-mainFooter__group {
    min-width: 0;
}

.o-mainFooter .m-mainFooter__group.-siteMap { grid-area: sitemap; }
.o-mainFooter .m-mainFooter__group.-legal { grid-area: legal; }
.o-mainFooter .m-mainFooter__group.-rrss { grid-area: rrss; }

.o-mainFooter .a-mainFooter__title {
    margin: 0 0 16px;
    color: #fff;
    font-size: 12px;
    font-weight: 700;
    line-height: 1.3;
    text-transform: uppercase;
}

.o-mainFooter .m-navList,
.o-mainFooter .m-navItem {
    display: flex;
    flex-direction: column;
    gap: 8px;
    margin: 0;
    padding: 0;
}

.o-mainFooter .m-navItem {
    width: fit-content;
    list-style: none;
}

.o-mainFooter .m-navItem__container {
    display: flex;
    align-items: center;
    min-height: 24px;
    padding: 0;
    border: 0;
    border-radius: 0;
    background: transparent;
    color: #fff;
    font-size: 14px;
    line-height: 1.4;
    opacity: .7;
    transition: color .2s ease, opacity .2s ease, transform .2s ease;
}

.o-mainFooter .m-navItem__container:hover,
.o-mainFooter .m-navItem__container:focus-visible {
    background: transparent;
    color: var(--mainColor);
    opacity: 1;
    text-decoration: underline;
}

.o-mainFooter .m-navList.m-footerNavList {
    display: flex;
    flex-direction: column;
    justify-content: flex-start;
    gap: 8px;
}

.o-mainFooter .m-mainFooter__group.-rrss .m-navList {
    flex-direction: row;
    flex-wrap: wrap;
    gap: 8px 12px;
}

.o-mainFooter .m-mainFooter__group.-rrss .m-navItem__container {
    justify-content: center;
    width: 32px;
    height: 32px;
    padding: 6px;
    border: 1px solid rgba(255, 255, 255, .24);
    border-radius: 50%;
    opacity: 1;
    text-decoration: none;
}

.o-mainFooter .m-mainFooter__group.-rrss .m-navItem__container > svg {
    display: block;
    width: 100%;
    height: 100%;
    flex: 0 0 auto;
}

.o-mainFooter .m-mainFooter__group.-rrss .a-navItem__text {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}

.o-mainFooter .m-mainFooter__group.-rrss .m-navItem__container:hover,
.o-mainFooter .m-mainFooter__group.-rrss .m-navItem__container:focus-visible {
    border-color: var(--mainColor);
    color: var(--mainColor);
    transform: translateY(-2px);
}

.o-mainFooter .o-mainFooter__copyright {
    margin: 0;
    padding-top: 16px;
    border-top: 1px solid rgba(255, 255, 255, .16);
    color: #fff;
    font-size: 14px;
    line-height: 1.4;
    opacity: .5;
}

@media (max-width: 900px) {
    .o-mainFooter .wrap {
        grid-template-columns: 1fr;
        gap: 40px;
    }

    .o-mainFooter .a-mainFooterCorporative__msg {
        max-width: 520px;
    }
}

@media (max-width: 720px) {
    .o-mainFooter .m-mainFooter__container {
        padding: 32px 24px 24px;
        gap: 28px;
    }

    .o-mainFooter .m-mainFooter__navsGroup {
        grid-template-columns: 1fr;
        grid-template-areas:
            "sitemap"
            "legal"
            "rrss";
        gap: 32px;
    }
}
/* #endregion footer override */


/* #region ----------------------------- share -- */
:where(.m-newsSeparator__container .fran6share) {
    background-color: #00000040;
}

:where(.fran6share .fran6shareIcon) {
    color: #FFFFFF;
}

.fran6share {
    background: var(--secondaryColor) !important;
}

.o-share {
    padding: 52rem 0 32rem;
}

/* #endregion share */


/* #region ----------------------------- Oficinas -- */
.m-officeItem {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.m-officeItem__header {
    display: flex;
    flex-direction: column;
}

.m-officeItem__info {
    display: flex;
    flex-direction: column;
    gap: 4;
}

.m-officeItem__title {
    font-size: 15px;
    font-style: normal;
    font-weight: 400;
    line-height: 150%;
}

.m-officeItem__location {
    font-size: 13px;
    font-style: normal;
    font-weight: 400;
    line-height: 150%;
    /* 19.5px */
    letter-spacing: -0.52px;
    opacity: 0.5;
}

.m-officeItem__email,
.m-officeItem__phone {
    display: flex;
    flex-direction: row;
    gap: 4px;
    align-items: center;
    font-size: 13px;
    font-style: normal;
    font-weight: 300;
    line-height: 150%;
    /* 19.5px */
    letter-spacing: -0.52px;
}

.m-officeItem__email::before {
    content: url("data:image/svg+xml,%3Csvg width='16' height='16' viewBox='0 0 16 16' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M1.33398 4.00033C1.33398 3.6467 1.47446 3.30756 1.72451 3.05752C1.97456 2.80747 2.3137 2.66699 2.66732 2.66699H13.334C13.6876 2.66699 14.0267 2.80747 14.2768 3.05752C14.5268 3.30756 14.6673 3.6467 14.6673 4.00033V12.0003C14.6673 12.3539 14.5268 12.6931 14.2768 12.9431C14.0267 13.1932 13.6876 13.3337 13.334 13.3337H2.66732C2.3137 13.3337 1.97456 13.1932 1.72451 12.9431C1.47446 12.6931 1.33398 12.3539 1.33398 12.0003V4.00033Z' stroke='%23568270' stroke-width='1.33333' stroke-linecap='round' stroke-linejoin='round'/%3E%3Cpath d='M1.33398 5.33398L6.33465 9.33465C6.80751 9.71299 7.39506 9.91912 8.00065 9.91912C8.60624 9.91912 9.19379 9.71299 9.66665 9.33465L14.6673 5.33398' stroke='%23568270' stroke-width='1.33333' stroke-linejoin='round'/%3E%3C/svg%3E%0A");
    display: flex;
    height: 16px;
}

.m-officeItem__phone::before {
    content: url("data:image/svg+xml,%3Csvg width='16' height='16' viewBox='0 0 16 16' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M7.03681 4.16035L4.78147 1.55701C4.52147 1.25701 4.04481 1.25835 3.74281 1.56101L1.88814 3.41901C1.33614 3.97168 1.17814 4.79235 1.49747 5.45035C3.40522 9.40032 6.59084 12.5904 10.5381 14.5037C11.1955 14.823 12.0155 14.665 12.5675 14.1123L14.4395 12.237C14.7428 11.9337 14.7435 11.4543 14.4408 11.1943L11.8275 8.95101C11.5541 8.71635 11.1295 8.74701 10.8555 9.02168L9.94614 9.93235C9.89959 9.98114 9.83831 10.0133 9.77171 10.0239C9.70511 10.0345 9.63687 10.0229 9.57747 9.99101C8.0911 9.13508 6.85813 7.9005 6.00414 6.41301C5.97216 6.35351 5.96058 6.28516 5.97117 6.21845C5.98177 6.15174 6.01396 6.09034 6.06281 6.04368L6.96947 5.13635C7.24414 4.86035 7.27414 4.43368 7.03681 4.15968V4.16035Z' stroke='%23568270' stroke-width='1.33333' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E%0A");
    display: flex;
    height: 16px;
}

.m-contactOffice {
    width: 100%;
    background-color: #121212;
    color: white;
    display: flex;
    justify-content: center;
    align-items: center;
    padding: 32px 16px;
}

.m-contactOffice__wrap {
    display: flex;
    width: 100%;
    flex-direction: row;
    flex-wrap: wrap;
    justify-content: space-between;
    max-width: var(--maxWidthWrap);
    gap: 24px 16px;
}

.m-contactMaps {
    display: flex;
    justify-content: center;
    width: 100%;
    padding: 16px;
}

.m-contactMaps__wrap {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 24px;
    width: 100%;
    max-width: var(--maxWidthWrap);
}

.m-contactMapCard {
    display: flex;
    flex-direction: column;
    min-width: 0;
    overflow: hidden;
    border: 1px solid var(--borderSubtle, rgba(18, 18, 18, 0.12));
    border-radius: var(--borderRadius, 12px);
    background: var(--surfaceOverlay, #fff);
}

.m-contactMapCard__header {
    display: flex;
    flex-direction: column;
    gap: 8px;
    padding: 20px;
}

.m-contactMapCard__title {
    margin: 0;
    color: var(--textPrimary, #121212);
    font-size: 20px;
    line-height: 1.2;
}

.m-contactMapCard__address {
    margin: 0;
    color: var(--textPrimary, #121212);
    font-size: 14px;
    line-height: 1.5;
    opacity: 0.72;
}

.m-contactMapCard__map {
    aspect-ratio: 16 / 10;
    min-height: 260px;
}

.m-contactMapCard__map iframe {
    display: block;
    width: 100%;
    height: 100%;
    border: 0;
}

@media (max-width: 720px) {
    .m-contactMaps__wrap {
        grid-template-columns: 1fr;
    }
}

/* #endregion Oficinas */

/* #region ----------------------------- service showroom product -- */
.o-heroProduct {
    display: flex;
    justify-content: center;
    align-items: center;
    width: 100%;
    padding-bottom: 16px;
}

.o-heroProduct__title {
    font-size: var(--titleSize64);
    font-weight: 510;
    letter-spacing: -2.56px;
    line-height: 100%;
    /* 64px */
}

.o-heroProduct__subtitle {
    font-size: 16px;
    font-weight: 300;
    letter-spacing: -0.56px;
    line-height: 170%;
    /* 64px */
}

.o-heroProduct__wrap {
    width: 100%;
    max-width: 1300px;
    padding: 200px 16px 124px 16px;
    display: flex;
    flex-direction: column;
    gap: 64px;
}

.o-heroProduct__header {
    display: flex;
    flex-direction: column;
    gap: 20px;
}

.m-heroProduct__logo {
    max-width: 125px;
}

.o-heroProduct__img {
    width: 100%;
}

.o-heroProduct__bgContainer {
    position: absolute;
    bottom: 0;
    width: 100%;
    height: 100%;
    padding: 0 5px 16px 5px;
    overflow: visible;
    z-index: -1;
}

.o-heroProduct__bg {
    width: 100%;
    height: 100%;
    object-fit: cover;
    border-radius: 12px;
    box-shadow: 0 4px 5px 0 rgba(0, 0, 0, 0.25);
}

/* #endregion service showroom product */
/* #region ----------------------------- ecrasServicePage -- */

.p-ecrasService {
    display: flex;
    width: 100%;
    flex-direction: column;
    gap: var(--gapGeneric);
}

.p-ecrasService .m-defaultContentBlock__imgContainer {
    flex: 2.5 0 300px;
}

/* #region -----------------------------  ecras-dashboard -- */

.m-ecrasDashboardContentBlock {
    display: flex;
    width: 100%;
    justify-content: center;
    padding: var(--gapGeneric) var(--pagePadding);
}

.m-ecrasDashboardContentBlock__wrap {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 32px 48rem;
    max-width: var(--maxWidthWrap);
    width: 100%;
}

.m-ecrasDashboardContentBlock__img {
    width: 100%;
    height: auto;
    object-fit: contain;
}

.m-ecrasDashboardContentBlock__text {
    width: 100%;
}

.m-ecrasDashboardContentBlock__text p {
    font-size: var(--titleSize24);
    font-weight: 300;
}

.m-ecrasDashboardContentBlock__text p {
    font-size: var(--titleSize24);
    font-weight: 300;
}

.m-ecrasDashboardContentBlock__header {
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    align-items: center;
    gap: 16px 48rem;
    max-width: var(--maxWidthWrap);
    width: 100%;
}

.m-ecrasDashboardContentBlock__title,
.m-ecrasDashboardContentBlock__subtitle {
    flex: 1 0 300px;
}

.m-ecrasDashboardContentBlock__title {
    color: #04281a;
    font-size: var(--titleSize48);
    font-style: normal;
    font-weight: 700;
    line-height: 52px;
    /* 108.333% */
    letter-spacing: -2px;
}

.m-ecrasDashboardContentBlock__subtitle {
    color: #04281a;
    font-size: 20px;
    font-style: normal;
    font-weight: 510;
    line-height: 150%;
    /* 108.333% */
    letter-spacing: -1px;
    opacity: 0.6;
}

/* #endregion  ecras-dashboard */

/* #endregion ecrasServicePage */

.cm-js-cookieManager__container{
    padding-top: 124px;
    max-width: 800px;
    background-color: transparent !important;
}
.-legal .m-textContentBlock__text a {
    all: unset;
    text-decoration: underline !important;
    cursor: pointer;
}

@media (max-width: 720px) {
    :root {
        --gapGeneric: 32rem;
    }

    .o-mainHeader{
        --headerMobileTextColor: white;
        --headerMobileItemBackground: #18282182;
    }

    .a-menuToggle {
        display: flex !important;
    }

    .m-mainNav__actions__common {
        padding: 16px;
    }

    .m-servicesCategoryList {
        margin-top: 0;
    }

    .o-heroSection__header,
    .o-heroSection__wrap {
        padding: 0 16px;
    }

    .o-heroSection__wrap {
        padding-top: 100px;
    }

    .m-successStories__wrap {
        flex-direction: column;
    }

    .m-servicesCategoryList__wrap {
        grid-template-columns: 1fr;
    }

    .m-servicesCategoryList__card {
        min-height: 280px;
        padding: 20px;
    }

    .m-servicesCategoryList__title {
        font-size: 22px;
    }

    .m-navItem__container {
        border-radius: 0px;
        padding: 10px 8px 10px 16px;
    }

    .m-navItem__submenu .m-navItem__container,
    .m-navItem__submenu {
        border-radius: 0;
    }

    .m-navItem__submenu {
        padding: 0;
    }

    .m-navItem__container.a-button.-outline {
        width: 100%;
        border: none;
        font-size: 14px;
        font-weight: 400;
    }

    .m-pageHeader {
        min-height: 60dvh;
    }

    .m-quoteContentBlock__wrap::before {
        left: 0px;
        opacity: 0.1;
    }

    .m-quoteContentBlock__wrap::after {
        right: 0px;
        opacity: 0.1;
    }

    .m-co2ContentBlock__headerContainer,
    .m-co2ContentBlock__textContainer,
    .m-ecrasContentBlock__wrap {
        flex-direction: column;
    }

    .m-servicesCategoryList__item.-featured .m-servicesCategoryList__img {
        transform: rotate(-8deg) translate(6px, 8px);
    }

    .m-co2ContentBlock__text .row {
        align-items: flex-start;
        flex-direction: column;
    }

    .m-form__group,
    .m-form__radioGroup {
        padding: 18px;
        border-radius: 20px;
    }

    .m-form__timeSelectControls {
        grid-template-columns: 1fr;
    }

    .m-form__timeSelectSeparator {
        display: none;
    }

    .m-defaultContentBlock.-reverse .m-defaultContentBlock__wrap,
    .m-defaultContentBlock__wrap {
        flex-direction: column;
    }

    .o-heroSection__button {
        text-align: center;
    }

    /* navegadorMovil */
    .o-mobileNavContainer {
        width: 90dvw;
    }

    .m-mainNavLogo__image {
        width: auto;
        max-width: 150px;
        object-fit: contain;
    }

    .-megaMenu .a-navItem__text {
        text-align: left;
    }

    .-megaMenu .a-navItem__text {
        text-align: left;
    }

    .-megaMenu .a-navItem__text {
        text-align: left;
    }

    /* navegadorMovil */

    /* blanco
    .o-mobileNavContainer {
        width: 80dvw;
        background-color: #ffffff;
        color: #0e1f0c;
    }
    .m-navList.-megaMenu .a-button:hover,
    .a-button.m-navItem__container.-outline,
    button.m-navItem__container {
        background-color: #ebebeb;
    }
    .m-mainNavLogo__image {
        width: auto;
        max-width: 150px;
        object-fit: contain;
    }
    .m-navList.-megaMenu .a-button,
    .m-navItem__container {
        width: 100%;
        border: 1px solid #00000008;
        padding: 10px 8px 10px 16px;
        color: #0e1f0c;
    }
    .-megaMenu .a-navItem__text {
        text-align: left;
    }
    .m-navItem__submenu {
        background-color: transparent;
    }
    .-megaMenu .m-megaMenuTitle {
        background-color: #00000012;
    }
    .m-navItem__container.a-button.-outline {
        font-size: 14px;
        color: #0e1f0c;
    }
    .m-mainNav__actions__common {
        gap: 32px;
    }
    .m-mainNav__actions__common a svg {
        fill: #0e1f0c;
    }
    .m-megaMenuImg .a-img {
        margin: auto;
        max-width: 250px;
    } */

    /* color */
    .o-mobileNavContainer {
        width: 100dvw;
        background-color: #001c10;
        color: #d4d4d4;
    }

    .m-navList.-megaMenu .a-button:hover,
    .a-button.m-navItem__container.-outline,
    button.m-navItem__container {
        background-color: #182821;
    }

    .m-mainNavLogo__image {
        width: auto;
        max-width: 150px;
        object-fit: contain;
    }

    .m-navList.-megaMenu .a-button,
    .m-navItem__container {
        width: 100%;
        border: 1px solid #ffffff08;
        padding: 10px 8px 10px 16px;
    }

    .-megaMenu .a-navItem__text {
        text-align: left;
    }

    .m-navItem__submenu {
        background-color: transparent;
    }

    .-megaMenu .m-megaMenuTitle {
        background-color: #ffffff0f;
    }

    .m-navItem__container.a-button.-outline {
        font-size: 14px;
        color: white;
    }

    .m-mainNav__actions__common {
        gap: 32px;
    }

    .m-mainNav__actions__common a svg {
        fill: white;
    }

    .m-megaMenuImg .a-img {
        margin: auto;
        max-width: 250px;
    }

    .m-langSelector {
        width: auto;
    }
}
