:root {
    --base: #0A0925;
    --gray-100: #EBEBEB;
    --gray-300: #C2C2C2;
    --gray-400: #ADADAD;
    --gray-500: #999999;
    --gray-600: #7A7A7A;
    --gray-700: #5C5C5C;
    --gray-800: #3D3D3D;
    --gray-900: #1F1F1F;
}


/*-------------------------------------------------------*/


/* BANNERS */

.banners,
.banners .item {
    min-height: 500px;
    height: 65vw;
    max-height: 700px;
}

.banners .item {
    display: flex;
    align-items: center;
    background-position: center;
    background-repeat: no-repeat;
    background-size: cover;
}

.banners .title {
    color: var(--white);
    font-size: 54px;
    font-weight: 800;
    line-height: 59px;
    letter-spacing: -0.03em;
}

.banners .text {
    font-size: 20px;
    font-variation-settings: "wght" 350;
    font-weight: 400;
    line-height: 26px
}

.banners[class*=left] .title,
.banners[class*=left] .text {
    text-align: start;
    margin-left: unset;
    margin-right: auto;
}

.banners[class*=left] .dbtn {
    margin: 0 auto 0 0;
}

.banners[class*=right] .title,
.banners[class*=right] .text {
    text-align: end;
    margin-left: auto;
    margin-right: unset;
}

.banners[class*=right] .dbtn {
    margin: 0 0 0 auto;
}

.banners[class*=center] .title,
.banners[class*=center] .text {
    text-align: center;
    margin-left: auto;
    margin-right: auto;
}

.banners[class*=center] .dbtn {
    margin: 0 auto;
}


/* BANNERS ! */


/* TEXT/IMAGES */

.textimage {
    padding: 6.26rem 0 14.26rem;
}

.textimage .sectitle {
    font-size: 42px;
    font-weight: 800;
    line-height: 46px;
    letter-spacing: -0.03em;
    margin-bottom: 2.4rem;
}

.textimage .text {
    font-size: 16px;
    font-variation-settings: "wght" 450;
    font-weight: 500;
    line-height: 28px;
}

.textimage .text strong {
    font-variation-settings: "wght" 700;
    font-weight: 700;
}

.textimage .img {
    position: relative;
}

.cardpostlist {
    position: relative;
    padding: 6.93rem 0 6.8rem;
    background-image: url(../../assets/img/servsbg.svg);
    background-position: top center;
    background-repeat: no-repeat;
    background-size: auto;
}

.cardpostlist::before {
    content: '';
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    margin: 0 auto;
    width: 100%;
    max-width: 1180px;
    height: 1px;
    background-color: var(--line);
}

.cardpostlist .sectitle {
    text-align: center;
    max-width: 447px;
    padding-bottom: 23px;
    border-bottom: 1px dashed var(--line);
    margin: 0 auto 6.33rem;
}

.cardpostlist .owl-carousel {
    margin: -3.73rem 0;
}

.cardpostlist .owl-carousel .owl-stage-outer {
    padding: 3.73rem;
    margin: -3.73rem;
}

.cardpostlist .box {
    max-width: 372px;
    box-shadow: 0px 0.978947px 21.5368px -4.89474px #00000040;
    border-radius: 5px;
    padding: 0 22px;
    background-image: url(../../assets/img/servboxbg.svg);
    background-position: top right;
    background-repeat: no-repeat;
    background-size: auto;
    background-color: var(--white);
}

.cardpostlist .box img {
    width: fit-content;
    max-width: 108px;
    transform: translateY(-60px);
    margin-bottom: -20px;
    margin-left: 16px;
}

.cardpostlist .box .title {
    height: 75px;
    font-size: 20px;
    font-variation-settings: "wght" 600;
    font-weight: 600;
    line-height: 28px;
    letter-spacing: -0.03em;
    padding: 0 16px 18px;
    border-bottom: 1px solid var(--line);
    margin-bottom: 22px;
    display: -webkit-box;
    display: -moz-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.cardpostlist .box .ul {
    display: flex;
    flex-direction: column;
    gap: 20px 0;
    margin-bottom: 3.2rem;
}

.cardpostlist .box .ul>* {
    position: relative;
    display: flex;
    align-items: start;
    gap: 5px;
    color: var(--text);
    font-size: 14px;
    font-variation-settings: "wght" 400;
    font-weight: 400;
    line-height: 16px;
    padding-left: 16px;
}

.cardpostlist .box .ul>*::before {
    content: 'L';
    display: flex;
    align-items: center;
    justify-content: center;
    min-width: 15px;
    max-width: 15px;
    aspect-ratio: 1/1;
    background-color: #0AAF42;
    border-radius: 50%;
    color: var(--white);
    font-size: 11px;
    font-variation-settings: "wght" 600;
    font-weight: 600;
    line-height: 13px;
    transform: rotateY(180deg) rotateZ(-45deg);
}

.cardpostlist .box .dbtn {
    padding: 0 37px 0 25px;
    transform: translateY(30.5px);
    margin: -30.5px auto 0;
}

.simplecards .box {
    display: flex;
    flex-direction: column;
    gap: 8px;
    padding: 1rem 19px 44px;
    background-color: var(--white);
    border-top: 1px solid var(--line);
    border-right: 1px solid var(--line);
    border-bottom: 1px solid var(--line);
}

.simplecards .owl-carousel .owl-stage>*:first-child .box {
    border-left: 1px solid var(--line);
}

.simplecards .box .icon {
    position: relative;
    z-index: 2;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    max-width: 60px;
    aspect-ratio: 1/1.07017;
    background: linear-gradient(180deg, #e2061308 0%, #e2061304 50.6%, #e2061308 100%);
    clip-path: polygon(50% 0, 100% 25%, 100% 75%, 50% 100%, 0 75%, 0 25%);
}

.simplecards .box .icon::before {
    content: '';
    position: absolute;
    width: 85.96%;
    aspect-ratio: 1/1.07017;
    background: linear-gradient(180deg, rgba(226, 6, 19, 0.1) 0%, rgba(226, 6, 19, 0.049405) 50.6%, rgba(226, 6, 19, 0.1) 100%);
    clip-path: polygon(50% 0, 100% 25%, 100% 75%, 50% 100%, 0 75%, 0 25%);
}

.simplecards .box .icon::after {
    content: '';
    position: absolute;
    width: 75.43%;
    aspect-ratio: 1/1;
    border-radius: 50%;
    background-color: var(--red2);
}

.simplecards .box .icon img {
    position: relative;
    z-index: 2;
    width: fit-content;
    max-width: 26px;
    max-height: 27px;
}

.simplecards .box .title {
    max-width: 239px;
    color: var(--title2);
    font-size: 18px;
    font-variation-settings: "wght" 600;
    font-weight: 600;
    line-height: 26px;
    letter-spacing: -0.03em;
}

.simplecards .owl-carousel .owl-nav {
    position: absolute;
    bottom: -4.4rem;
    display: flex;
    align-items: center;
    justify-content: end;
    gap: 5px !important;
    width: 100%;
}

.simplecards .owl-carousel .owl-nav>* {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    max-width: 80px;
    aspect-ratio: 1/.5625;
    border: 1px solid var(--line) !important;
    border-radius: 5px;
    background-color: var(--title) !important;
    transition: all .3s ease-in-out;
}

.simplecards .owl-carousel .owl-nav>* svg path {
    transition: all .3s ease-in-out;
}

.simplecards .owl-carousel .owl-nav>*.disabled {
    background-color: #F8F8F8 !important;
    border-color: var(--title);
}

.simplecards .owl-carousel .owl-nav>*.disabled svg path {
    fill: var(--title);
}

.imagetextfullsize {
    position: relative;
    display: flex;
    align-items: center;
    min-height: 761px;
    background-color: var(--title2);
}

.imagetextfullsize .row>*:first-child img {
    position: absolute;
    left: 0;
    top: 0;
    width: 50vw;
    max-width: 750px;
    height: 100%;
    object-fit: cover;
}

.imagetextfullsize .row>*:last-child {
    display: flex;
    flex-direction: column;
    justify-content: center;
}

.imagetextfullsize .uptitle {
    color: #ADAFB6;
    font-size: 20px;
    font-variation-settings: "wght" 400;
    font-weight: 400;
    line-height: 23px;
    font-variant: small-caps;
    margin-bottom: 10px;
}

.imagetextfullsize .sectitle {
    max-width: 445px;
    color: var(--white);
    padding-bottom: 25px;
    border-bottom: 1px dashed #d6d6d680;
    margin-bottom: 25px;
}

.imagetextfullsize .text {
    max-width: 454px;
    color: var(--white);
    font-size: 16px;
    font-variation-settings: "wght" 250;
    font-weight: 300;
    line-height: 26px;
    letter-spacing: -0.03em;
    margin-bottom: 38px;
}

.imagetextfullsize .text strong {
    color: inherit;
    font-variation-settings: "wght" 450;
    font-weight: 500;
}

.bignumbers {
    display: flex;
    align-items: center;
    min-height: 308px;
    background-color: #F4F4F4;
}

.bignumbers .df {
    position: relative;
    display: flex;
    align-items: center;
    gap: 25px;
}

.bignumbers .fx {
    position: absolute;
    z-index: -1;
    font-size: 180px;
    font-weight: 900;
    line-height: 196px;
    color: transparent;
    -webkit-text-stroke: 1px #0000000d;
}

.bignumbers .num {
    font-size: 80px;
    font-weight: 800;
    line-height: 87px;
}

.bignumbers .tx {
    font-size: 22px;
    font-weight: 500;
    line-height: 24px;
    letter-spacing: 0.03em;
}

.bignumbers .owl-carousel .owl-stage-outer {
    padding: 2rem;
    margin: -2rem;
}

.bcards {
    padding: 4.4rem 0 11.6rem;
}

.bcards .df {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 2rem;
    padding-top: 2.26rem;
    border-top: 1px solid #d6d6d680;
    margin-bottom: 3.73rem;
}

.bcards .bbox {
    max-width: 380px;
}

.bcards .img {
    width: 100%;
    aspect-ratio: 1/.77105;
}

.bcards .img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.bcards .box {
    width: 100%;
    max-width: 332px;
    position: relative;
    background: var(--white);
    box-shadow: 0px 4px 28px -8px #7090b040;
    padding: 16px 30px 27px;
    margin-top: -7.33rem;
    transition: all .3s ease-in-out;
}

.bcards .box:hover {
    background-color: var(--cinza-800);
}

.bcards .date {
    color: var(--text);
    font-size: 16px;
    font-variation-settings: "wght" 400;
    font-weight: 400;
    line-height: 22px;
    margin-bottom: 11px;
    transition: all .3s ease-in-out;
}

.bcards .title {
    max-width: 239px;
    color: var(--title2);
    font-size: 18px;
    font-variation-settings: "wght" 650;
    font-weight: 700;
    line-height: 26px;
    letter-spacing: -0.03em;
    margin-bottom: 13px;
    display: -webkit-box;
    display: -moz-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
    transition: all .3s ease-in-out;
}

.bcards .box:hover .date,
.bcards .box:hover .title,
.bcards .box:hover .sm {
    color: var(--white);
}

.bcards .text {
    max-width: 245px;
    color: var(--text2);
    font-size: 15px;
    font-variation-settings: "wght" 250;
    font-weight: 300;
    line-height: 18px;
    margin-bottom: 13px;
    display: -webkit-box;
    display: -moz-box;
    -webkit-line-clamp: 4;
    -webkit-box-orient: vertical;
    overflow: hidden;
    transition: all .3s ease-in-out;
}

.bcards .box:hover .text {
    color: #ffffffa1;
}

.bcards .sm {
    display: flex;
    align-items: center;
    gap: 12px;
    color: #2C53AF;
    font-size: 18px;
    font-variation-settings: "wght" 650;
    font-weight: 700;
    line-height: 26px;
    letter-spacing: -0.03em;
    transition: all .3s ease-in-out;
}

.bcards .sm svg path {
    transition: all .3s ease-in-out;
}

.bcards .box:hover .sm svg path {
    fill: var(--white);
}

.bcards .owl-carousel .owl-stage-outer {
    padding: 2rem 0 2rem 2rem;
    margin: -2rem 0 -2rem -2rem;
}

.contact {
    background-color: #F8F8F8;
}

.contact .container>.row>*:first-child {
    padding-top: 3.53rem;
}

.contact .sectitle {
    max-width: 400px;
    padding-bottom: 2.8rem;
    border-bottom: 1px dashed var(--line);
    margin-bottom: 2rem;
}

.contact .conts {
    max-width: 400px;
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 45px 1rem;
}

.contact .conts>* {
    display: flex;
    flex-direction: column;
    gap: 1rem;
    width: 48%;
}

.contact .conts>* .title {
    text-transform: uppercase;
    display: flex;
    align-items: center;
    gap: 7px;
    font-size: 20px;
    font-variation-settings: "wght" 600;
    font-weight: 600;
    line-height: 23px;
    letter-spacing: 0.1em;
}

.contact .conts>*:has(.local) {
    width: 100%;
}

.contact .conts>* .telp,
.contact .conts>* .mailp,
.contact .conts>* .local {
    font-size: 16px;
    font-variation-settings: "wght" 450;
    font-weight: 500;
    line-height: 24px;
}

.contact .conts>* .local strong {
    font-variation-settings: "wght" 700;
    font-weight: 700;
}

.contact .box {
    max-width: 685px;
    background: var(--white);
    box-shadow: 0px 9px 42px -7px #7090b059;
    margin-top: -84px;
}

.contact .box .ftitle {
    padding: 25px 22px 22px;
    font-size: 24px;
    font-variation-settings: "wght" 700;
    font-weight: 700;
    line-height: 36px;
    border-bottom: 1px solid var(--line);
}

.contact .form {
    padding: 31px 25px 45px;
}

.contact .form .lb {
    font-size: 16px;
    font-variation-settings: "wght" 700;
    font-weight: 700;
    line-height: 19px;
    letter-spacing: 0.005em;
    margin-bottom: 8px;
}

.contact .form .ipts {
    width: 100%;
    height: 45px;
    padding: 0 1rem;
    background-color: #F8F8F8;
    border: 1px solid transparent;
    border-radius: 5px;
    font-size: 16px;
    font-variation-settings: "wght" 400;
    font-weight: 400;
    line-height: 19px;
    letter-spacing: 0.005em;
    transition: all .3s ease-in-out;
}

.contact .form .txta {
    width: 100%;
    height: 129px;
    padding: 1rem;
    background-color: #F8F8F8;
    border: 1px solid transparent;
    border-radius: 5px;
    font-size: 16px;
    font-variation-settings: "wght" 400;
    font-weight: 400;
    line-height: 19px;
    letter-spacing: 0.005em;
    resize: none;
    transition: all .3s ease-in-out;
}

.contact .form .ipts:focus-visible,
.contact .form .txta:focus-visible {
    outline: none;
}

.contact .form .ipts::placeholder,
.contact .form .txta::placeholder {
    color: #C9C9DE;
}

.contact .form .tlb {
    color: #A9B0C8;
    font-size: 14px;
    font-variation-settings: "wght" 400;
    font-weight: 400;
    line-height: 16px;
    letter-spacing: 0.004em;
}

.contact .form .send {
    position: relative;
    display: flex;
    align-items: center;
}

.contact .form .send .dbtn {
    width: 100%;
    height: 51px;
    padding: 0 2.5rem 0 1.66rem;
    border: none;
    color: var(--white);
    font-size: 16px;
    font-variation-settings: "wght" 500;
    font-weight: 500;
    line-height: 19px;
}

.contact .form .send svg {
    position: absolute;
    right: 2rem;
}

.pathbox {
    display: flex;
    align-items: center;
    width: 100%;
    height: 64px;
    padding: 0 36px;
    background: var(--white);
    border: 1px solid #d6d6d680;
    border-radius: 10px;
    margin-bottom: 2.6rem;
}

.pathbox button {
    display: flex;
    align-items: center;
    gap: 9px;
    background-color: transparent !important;
    color: var(--title);
    font-size: 18px;
    font-variation-settings: "wght" 700;
    line-height: 21px;
}

.pathbox button svg {
    min-width: fit-content;
}

.pathbox .path {
    padding: 9.5px 0 9.5px 17px;
    border-left: 1px solid var(--line);
    border-top: none;
    margin: 0 0 0 17px;
}

.pathbox .path>*:not(svg) {
    color: #50597A;
    font-variation-settings: "wght" 300;
}

.pathbox .path>*:not(svg):last-child {
    color: #232D51;
    font-variation-settings: "wght" 550;
}

.path {
    display: flex;
    align-items: center;
    gap: 6px;
    padding-top: 1rem;
    border-top: 1px dashed #ffffff59;
    margin-top: 12px;
}

.path svg {
    min-width: fit-content;
    margin-right: 7px;
}

.path>*:not(svg) {
    font-size: 16px;
    font-variation-settings: "wght" 250;
    font-weight: 300;
    line-height: 19px;
}

.path>*:not(svg):not(:last-child):after {
    content: ' / ';
    display: inline-block;
    margin-left: 5px;
}

.path>*:not(svg):last-child {
    font-variation-settings: "wght" 450;
    font-weight: 500;
}


/* TEXT/IMAGES ! */


/* MEDIA QUERIES */

@media(max-width:1200px) {
    .cardpostlist .owl-carousel .item,
    .bignumbers .owl-carousel .item,
    .bcards .owl-carousel .item {
        display: flex;
        justify-content: center;
    }
    .simplecards .owl-carousel {
        margin-bottom: 4.4rem;
    }
    .imagetextfullsize {
        padding: 2rem 0 0;
    }
    .imagetextfullsize .row {
        flex-direction: column-reverse;
        gap: 2rem 0;
    }
    .imagetextfullsize .row>*:first-child {
        padding: 0;
    }
    .imagetextfullsize .row>*:first-child img {
        position: initial;
        width: fit-content;
        max-width: 100%;
    }
    .bcards .owl-carousel .item {
        display: flex;
        flex-direction: column;
        align-items: center;
    }
}

@media(max-width:992px) {
    .cardpostlist {
        padding: 2rem 0 4rem;
    }
    .bcards .df {
        flex-wrap: wrap;
    }
    .contact {
        padding: 2rem 0 0;
    }
    .contact .container>.row {
        gap: 2rem 0;
    }
    .contact .container>.row>*:first-child {
        padding-top: 0;
    }
    .contact .box {
        margin-top: 0;
    }
    .contact .conts {
        flex-direction: column;
        align-items: start;
        gap: 1rem 1rem;
    }
    .contact .conts>*:not(:last-child) {
        width: 100%;
        padding-bottom: 1rem;
        border-bottom: 1px dashed var(--line);
    }
    .contact .form {
        padding: 1rem;
    }
    .pathbox {
        padding: 0 1rem;
    }
    .pathbox .path {
        flex-wrap: wrap;
    }
}

@media(max-width:768px) {
    .cardpostlist .owl-carousel {
        margin: -3.73rem -3.73rem -3.73rem 0;
    }
    .cardpostlist .owl-carousel .owl-stage-outer {
        padding: 3.73rem 0;
        margin: -3.73rem 0;
    }
    .cardpostlist .box .title {
        height: 61px;
    }
    .imagetextfullsize .sectitle {
        font-size: 40px;
        line-height: 44px;
    }
    .bignumbers .owl-carousel {
        margin: 0 0 0 -2rem;
    }
    .bignumbers .owl-carousel .owl-stage-outer {
        margin: 0 -2rem 0 0rem;
    }
    .bcards {
        padding: 2rem 0 3rem;
    }
    .contact .container>.row>*:last-child {
        padding: 0;
    }
}

@media(max-width:575px) {
    .banners,
    .banners .item {
        min-height: unset;
        height: fit-content;
    }
    .banners .item {
        padding: 4rem 0;
    }
    .banners .title {
        font-size: 9vw;
        line-height: 11vw;
    }
}

@media(max-width:375px) {
    .bcards .sectitle {
        font-size: 11vw;
        line-height: 12vw;
    }
}

@media(max-width:325px) {
    .simplecards .sectitle {
        font-size: 13vw;
        line-height: 16vw;
    }
}


/* MEDIA QUERIES ! */