/*
Theme Name: LMK
Main stylesheet
*/


/* =========================================================
   CSS INDEX

   01. Fonts
   02. Variables
   03. Reset
   04. Accessibility
   05. Global Layout
   06. Global Components
   07. Global Animations
   08. Header
   09. Footer

   10. Home
       10.1 Hero
       10.2 Services
       10.3 Products
       10.4 Partners
       10.5 Contact Banner

   11. Pages
       11.1 Quem Somos
       11.2 Serviços
       11.3 Produtos
       11.4 Parceiros
       11.5 Contato

   12. Single Templates
       12.1 Serviço         
       12.2 Produto         
========================================================= */


/* ==========================
   FONTS
========================== */


@font-face {

    font-family: 'Sora';

    src: url('../fonts/Sora-VariableFont_wght.woff2') format('woff2');

    font-weight: 100 800;

    font-style: normal;

    font-display: swap;

}





/* ==========================
   VARIABLES
========================== */



:root {

    --font-primary: 'Sora', sans-serif;

    --color-primary: #23373C;
    --color-secondary: #FFFFFF;
    --color-text: #1A1A1A;
    --color-text-light: #666666;

    --color-accent: #FF7A00;
    --color-accent-hover: #E96900;

    --color-teal: #2C9D9D;
    --color-teal-muted: #087C79;
    --color-teal-dark: #026666;
    --color-teal-deep: #005050;

    --container-width: 1420px;
    --section-spacing: clamp(80px, 7vw, 120px);
    --services-overlap: clamp(-300px, -20vw, -180px);
    --marquee-speed: 55;
    --transition: .3s ease;

}





/* ==========================
   RESET
========================== */


*,
*::before,
*::after {

    box-sizing: border-box;

}



html {

    scroll-behavior: smooth;

}



body {

    margin: 0;

    padding: 0;

    font-family: var(--font-primary);

    font-weight: 400;

    color: var(--color-text);

    line-height: 1.6;

}



img {

    max-width: 100%;

    height: auto;

    display: block;

}



ul,
ol {

    list-style: none;

    margin: 0;

    padding: 0;

}



a {

    color: inherit;

    text-decoration: none;

    transition: opacity var(--transition);

}


h1,
h2,
h3,
h4,
h5,
h6 {

    margin: 0;

    line-height: 1.15;

    font-weight: 600;

}



p {

    margin-top: 0;

}


.button__arrow {
	font-size: clamp(20px, 1.8vw, 26px);
}


/* ==========================
   ACCESSIBILITY
========================== */


.screen-reader-text {

    position: absolute;

    width: 1px;

    height: 1px;

    padding: 0;

    margin: -1px;

    overflow: hidden;

    clip: rect(0,0,0,0);

    white-space: nowrap;

    border: 0;

}



.screen-reader-text:focus {

    position: fixed;

    top: 20px;

    left: 20px;

    width: auto;

    height: auto;

    margin: 0;

    padding: 12px 20px;

    clip: auto;

    z-index: 9999;

}


/* Foco visível para navegação por teclado */

a:focus-visible,
button:focus-visible,
[tabindex]:focus-visible {
    outline: 2px solid var(--color-accent);
    outline-offset: 4px;
}


/* Reduz movimento quando solicitado pelo sistema */

@media (prefers-reduced-motion: reduce) {

    html {
        scroll-behavior: auto;
    }

    *,
    *::before,
    *::after {
        animation-duration: .01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: .01ms !important;
        scroll-behavior: auto !important;
    }

    .partners__marquee-track {
        animation: none !important;
        transform: none !important;
    }
}


/* ==========================
   GLOBAL LAYOUT
========================== */

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

.container {

    width: min(
        calc(100% - 80px),
        var(--container-width)
    );

    margin-left: auto;

    margin-right: auto;

}


.section {

    padding: var(--section-spacing) 0;

}


.main-menu a,
.footer-menu a {
    color: var(--color-secondary);
}

.main-menu .current-menu-item a,
.footer-menu .current-menu-item a {
    color: var(--color-teal);
}




/* ==========================
   GLOBAL LAYOUT - MOBILE
========================== */

@media (max-width: 768px) {

    .container {
        width: calc(100% - 40px);
    }

}


/* ==========================
   GLOBAL COMPONENTS
========================== */


/* Labels compartilhados entre seções */

.products__label,
.partners__label,
.contact-banner__label,
.services__label {
    display: flex;
    align-items: center;
    gap: 8px;

    color: var(--color-accent);

    font-size: clamp(13px, 1.1vw, 16px);
    font-weight: 700;
    line-height: 1;
    letter-spacing: .04em;
    text-transform: uppercase;
}

.products__label-marker,
.partners__label-marker,
.contact-banner__label-marker,
.services__label-marker {
    display: block;

    width: 7px;
    height: 7px;
    flex: 0 0 7px;

    background-color: var(--color-teal);
}





.section-tag {

    display: block;

    font-size: 12px;

    font-weight: 600;

    text-transform: uppercase;

    letter-spacing: .08em;

}





.button {
    display: inline-flex;
    align-items: center;
    justify-content: space-between;

    transition:
        background-color var(--transition),
        color var(--transition),
        opacity var(--transition),
        transform var(--transition);
}

.product-slide__button,
.partners__button,
.contact-banner__button,
.services__button {
	min-width: 200px;
    height: 50px;
    padding: 0 20px;

    background-color: var(--color-accent);
    color: var(--color-secondary);

    font-size: clamp(14px, 1.2vw, 18px);
    font-weight: 400;
    line-height: 1;
    text-transform: uppercase;
}

.product-slide__button:hover,
.partners__button:hover,
.contact-banner__button:hover,
.services__button:hover {
    opacity: 1;
    background-color: var(--color-accent-hover);
}


/* ==========================
   GLOBAL ANIMATIONS - REVEAL
========================== */

[data-reveal] {
    opacity: 0;

    translate:
        0
        28px;

    transition:
        opacity .7s ease,
        translate .7s ease;
}


[data-reveal].is-visible {
    opacity: 1;

    translate:
        0
        0;
}



/* ==========================
   GLOBAL ANIMATIONS - REDUCED MOTION
========================== */

@media (prefers-reduced-motion: reduce) {

    [data-reveal] {
        opacity: 1;

        translate: none;

        transition: none;
    }

}


/* ==========================
   HEADER
========================== */

.site-header {
    position: absolute;
    top: 0;
    left: 0;

    width: 100%;

    z-index: 10;

    padding-top: 30px;
}


.site-header__inner {
    position: relative;

    display: flex;
    align-items: center;
    justify-content: space-between;
}


.site-logo img {
    width: auto;
    max-height: 60px;
}

/* ==========================
   HEADER - ACTIONS
========================== */

.site-header__actions {
    position: relative;

    display: flex;
    align-items: center;

    padding-top: 32px;
}


/* ==========================
   LANGUAGE SWITCHER
========================== */

.language-switcher {
    position: absolute;

    top: -30px;
    right: 0;

    display: flex;
    align-items: center;

    z-index: 2;
}


.language-switcher__item {
    display: flex;
    align-items: center;
    justify-content: center;

    min-width: 30px;
    height: 22px;

    padding:
        0
        6px;

    border:
        1px solid
        var(--color-teal);

    color:
        var(--color-secondary);

    font-family:
        var(--font-primary);

    font-size: 10px;
    font-weight: 500;
    line-height: 1;

    text-transform: uppercase;

    transition:
        background-color var(--transition),
        color var(--transition),
        border-color var(--transition);
}


.language-switcher__item + .language-switcher__item {
    border-left: 0;
}


.language-switcher__item:hover {
    opacity: 1;

    background-color:
        rgba(44, 157, 157, .35);
}


.language-switcher__item.is-active {
    background-color:
        var(--color-teal);

    border-color:
        var(--color-teal);

    color:
        var(--color-secondary);

    cursor: default;
}


.language-switcher__item.is-disabled {
    opacity: .35;
    cursor: default;
}

@media (max-width: 768px) {

    .site-header__actions {
        position: static;

        padding-top: 0;
    }


    .language-switcher {
        top: 50%;
        right: 55px;

        translate:
            0
            -50%;
    }


    .language-switcher__item {
        min-width: 28px;
        height: 22px;

        font-size: 9px;
    }

}


/* ==========================
   HEADER - MENU DESKTOP
========================== */

.main-navigation {
    display: flex;
}


.main-menu {
    display: flex;
    align-items: center;

    gap: 50px;
}


.main-menu a {
    display: block;

    text-transform: uppercase;
}


.main-menu a:hover {
    color: #BFD5D3;
}



/* ==========================
   HEADER - MENU TOGGLE
========================== */

.menu-toggle {
    display: none;

    padding: 0;

    border: 0;

    background: transparent;

    cursor: pointer;
}


.menu-toggle span {
    display: block;

    width: 28px;
    height: 2px;

    margin-bottom: 6px;

    background: currentColor;
}


.menu-toggle span:last-child {
    margin-bottom: 0;
}


body.menu-open {
    overflow: hidden;
}



/* ==========================
   HEADER - MOBILE
========================== */

@media (max-width: 768px) {

    .menu-toggle {
        display: block;

        color: var(--color-secondary);
    }


    .main-navigation {
        position: absolute;
        top: calc(100% + 16px);
        left: 0;

        width: 100%;
        max-height: calc(100svh - 120px);

        padding: 24px;

        overflow-y: auto;

        background-color: var(--color-primary);
        border: 1px solid rgba(255,255,255,.08);

        opacity: 0;
        visibility: hidden;

        transform: translateY(-10px);

        transition:
            opacity var(--transition),
            transform var(--transition),
            visibility var(--transition);

        z-index: 30;
    }


    .main-navigation.is-open {
        opacity: 1;
        visibility: visible;

        transform: translateY(0);
    }


    .main-menu {
        flex-direction: column;
        align-items: flex-start;

        gap: 20px;
    }

}


/* ==========================
   FOOTER
========================== */

.site-footer {
    padding: 40px 0;
}


.site-footer__inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
}


.footer-logo img {
    max-width: 165px;
}


.footer-copyright {
    margin-top: 12px;

    color: var(--color-secondary);

    font-size: 10px;
	
	margin-top: 30px;
}


.footer-menu {
    display: flex;

    gap: 50px;
}


.footer-menu a {
    font-size: 14px;

    text-transform: uppercase;
}


.footer-menu a:hover {
    color: var(--color-accent);
}



/* ==========================
   FOOTER - MOBILE
========================== */

@media (max-width: 768px) {

    .site-footer__inner {
        flex-direction: column;
        align-items: flex-start;

        gap: 30px;
    }


    .footer-menu {
        flex-direction: column;

        gap: 16px;
    }

}


/* ==========================
   HOME - HERO
========================== */


.hero {

    position: relative;
    min-height: clamp(988px, 130svh, 1599px);
    background-size: cover;
    background-position: bottom;
    background-repeat: no-repeat;
    display: flex;
    align-items: center;

}



/* conteúdo acima da imagem */

.hero .container {

    position: relative;

    z-index: 2;

}



.hero__content {

    transform: translateY(clamp(-100px, -6vw, -40px));

    display: flex;

    align-items: center;

}



.hero__box {

    --hero-box-padding-inline: clamp(36px, 5vw, 100px);

    position: relative;

    width: min(100%, 700px);

    background: var(--color-secondary);

    padding:
        clamp(40px, 4vw, 50px)
        var(--hero-box-padding-inline)
        clamp(64px, 6vw, 80px);

}





.hero__tag {


    display: block;


    margin-bottom: 25px;


    font-size: clamp(13px, 1.1vw, 16px);


    font-weight: 600;


    letter-spacing: 1px;


    color: var(--color-accent);


    text-transform: uppercase;


}


.hero__tag-divider {

    color: var(--color-teal);

}


.hero__title {


    margin: 0;


    font-size: clamp(30px, 3vw, 40px);


    line-height: 1.2;


    font-weight: 300;


    color: var(--color-teal-dark);


}

.hero__title strong {

    font-weight: 700;

}


.hero__button {

    position: absolute;

    left: var(--hero-box-padding-inline);

    bottom: -20px;


    display: inline-flex;

    align-items: center;

    gap: 30px;


    height: 50px;

    padding: 0 20px;


    background: var(--color-accent);

    color: var(--color-secondary);


    font-size: clamp(14px, 1.2vw, 18px);

    font-weight: 500;

    letter-spacing: 1px;

    text-transform: uppercase;

}


.hero__button span {
    font-size: clamp(20px, 1.8vw, 26px);
}

.hero__button:hover {
    opacity: 1;
    background-color: var(--color-accent-hover);
}



/* ==========================
   HERO - RESPONSIVE
========================== */

@media (max-width: 1024px) {

    .hero {
        min-height: clamp(720px, 100svh, 960px);
    }

    .hero__content {
        transform: translateY(-40px);
    }

}


@media (max-width: 768px) {

    .hero {
        min-height: 760px;
        padding-top: 110px;
        align-items: center;
    }

    .hero__content {
        transform: none;
    }

    .hero__box {
        --hero-box-padding-inline: clamp(28px, 8vw, 40px);

        padding-top: 36px;
        padding-bottom: 64px;
    }

    .hero__button {
        height: 46px;
        padding-inline: 22px;
    }

}


/* ==========================
   HOME - SERVICES
========================== */

.services {
    position: relative;
    background-color: transparent;
    color: var(--color-secondary);
    margin-top: var(--services-overlap);
}

.services .container {
    max-width: var(--container-width);
}


/* HEADER DA SEÇÃO */

.services__header {
    margin-bottom: 68px;
}

.services__label {
    margin-bottom: 22px;
}


.services__title {
    max-width: 900px;

    margin: 0;

    color: var(--color-secondary);

    font-size: clamp(20px, 2.25vw, 32px);
    font-weight: 300;
    line-height: 1.3;
}


/* GRID */

.services__grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 42px;

    align-items: stretch;
}


/* CARD */

.service-card {
    position: relative;

    min-width: 0;
    min-height: clamp(360px, 29vw, 440px);
}

.service-card__link {
    position: relative;

    display: flex;
    flex-direction: column;

    width: 100%;
    height: 100%;

    padding: 40px 32px 30px;

    color: var(--color-secondary);

    overflow: visible;

    transition:
        transform .3s ease,
        filter .3s ease;
}


/* CORES DOS CARDS */

.service-card:nth-child(3n + 1) .service-card__link {
    background-color: var(--color-teal);
}

.service-card:nth-child(3n + 2) .service-card__link {
    background-color: var(--color-teal-dark);
}

.service-card:nth-child(3n + 3) .service-card__link {
    background-color: var(--color-teal-deep);
}


/* HOVER */

.service-card__link:hover {
    opacity: 1;
    transform: translateY(-5px);
    filter: brightness(1.04);
}


/* NÚMERO */

.service-card__number {
    display: flex;
    align-items: baseline;

    margin-bottom: 60px;

    font-size: clamp(30px, 3vw, 40px);
    font-weight: 300;
    line-height: 1;
}

.service-card__number-value {
    color: var(--color-secondary);
}

.service-card__number-dot {
    margin-left: 2px;

    color: var(--color-accent);

    font-weight: 700;
}


/* ÍCONE */

.service-card__icon {
    position: absolute;

    top: -25px;
    right: -25px;

    display: flex;
    align-items: center;
    justify-content: center;

    width: 100px;
    height: 100px;

    background-color: var(--color-accent);

    z-index: 2;
}

.service-card__icon-image {
    display: block;

    width: 65px;
    height: 65px;

    object-fit: contain;
}


/* TÍTULO */

.service-card__title {

    margin: 0 0 13px;

    color: var(--color-secondary);

    font-size: clamp(20px, 1.8vw, 26px);
    font-weight: 300;
    line-height: 1.25;

    text-transform: uppercase;
	padding-left: 5%;
}


/* RESUMO */

.service-card__excerpt {
    margin-top: 20px;

    color: var(--color-secondary);

    font-size: clamp(15px, 1.25vw, 18px);
    font-weight: 300;
    line-height: 1.35;
	
	padding-left: 5%;
}

.service-card__excerpt p {
    margin: 0;
}


/* FOOTER / CTA */

.services__footer {
    display: flex;
    justify-content: flex-end;

    margin-top: 28px;
}

.services__button {
    min-width: 255px;
    gap: 30px;
    letter-spacing: .03em;
}

.services__button .button__arrow {
    font-size: clamp(20px, 1.8vw, 26px);
    font-weight: 300;
    line-height: 1;
}




/* ==========================
   SERVICES - TABLET
========================== */

@media (max-width: 900px) {

    .services {
        --services-overlap: -140px;
    }

    .services .container {
        max-width: none;
    }

    .services__grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .service-card {
        min-height: 300px;
    }

}


/* ==========================
   SERVICES - MOBILE
========================== */

@media (max-width: 600px) {

    .services {
        --services-overlap: -60px;
    }

    .services__header {
        margin-bottom: 45px;
    }

    .services__grid {
        grid-template-columns: 1fr;
        gap: 35px;
    }

    .service-card {
        min-height: 290px;
    }

    .service-card__link {
        padding: 26px 30px 30px;
    }

    .service-card__icon {
        top: -12px;
        right: -8px;

        width: 58px;
        height: 58px;
    }

    .service-card__icon-image {
        width: 34px;
        height: 34px;
    }

    .services__footer {
        justify-content: flex-start;

        margin-top: 35px;
    }

    .services__button {
        width: auto;
        min-width: 0;
    }

}


/* ==========================
   HOME - PRODUCTS
========================== */


.products {
    background-color: var(--color-primary);
    color: var(--color-secondary);
}


.products .container {
    max-width: 1400px;
}



/* ==========================
   HEADER
========================== */


.products__header {
    margin-bottom: 42px;
}


.products__label {
    margin-bottom: 22px;
}



.products__title {
    max-width: 900px;

    margin: 0;

    color: var(--color-secondary);

    font-size: clamp(20px, 2.25vw, 32px);
    font-weight: 300;
    line-height: 1.35;
}



/* ==========================
   PRODUCT TABS
========================== */


.products-tabs {
    width: 100%;

    margin-bottom: 34px;

    overflow: hidden;
}


.products-tabs__slide {
    width: auto;
}


.products-tabs__button {
    display: block;

    min-height: 34px;

    padding: 15px;

    border: 1px solid transparent;

    background: transparent;

    color: var(--color-teal-muted);

    font-family: var(--font-primary);

    font-size: clamp(14px, 1.2vw, 18px);
    font-weight: 700;
    line-height: 1;

    letter-spacing: .04em;

    text-transform: uppercase;

    white-space: nowrap;

    cursor: pointer;

    transition:
        color var(--transition),
        border-color var(--transition);
}


.products-tabs__button:hover {
    color: var(--color-teal);
}


.products-tabs__button.is-active {
    border-color: var(--color-teal);

    color: var(--color-teal);
}



/* ==========================
   PRODUCT SLIDER
========================== */


.products-slider-wrapper {
    position: relative;
}


.products-slider {
    overflow: hidden;
}


.product-slide {
    display: grid;

    grid-template-columns:
        minmax(280px, .9fr)
        minmax(0, 1.6fr);

    gap: clamp(32px, 3.5vw, 48px);

    align-items: stretch;
}



/* ==========================
   PRODUCT CONTENT
========================== */


.product-slide__content {
    width: 100%;
    max-width: 560px;
    display: flex;
    flex-direction: column;

    min-width: 0;

    padding-top: 34px;
	padding-left: 90px;
}


.product-slide__number {
    display: flex;
    align-items: baseline;

    margin-bottom: 15px;

    font-size: clamp(30px, 3vw, 40px);
    font-weight: 300;
    line-height: 1;
}


.product-slide__number-value {
    color: var(--color-teal);
}


.product-slide__number-dot {
    margin-left: 2px;

    color: var(--color-accent);

    font-weight: 700;
}


.product-slide__title {
    margin: 0 0 24px;

    color: var(--color-secondary);

    font-size: clamp(28px, 3vw, 40px);
    font-weight: 300;
    line-height: 1.15;

    text-transform: uppercase;
}


.product-slide__excerpt {
    max-width: 560px;

    margin-bottom: 40px;

    color: var(--color-secondary);

    font-size: clamp(15px, 1.25vw, 18px);
    font-weight: 300;
    line-height: 1.35;
}


.product-slide__excerpt p {
    margin: 0;
}



/* ==========================
   PRODUCT IMAGE
========================== */


.product-slide__image {
    min-width: 0;

    overflow: hidden;
	
	padding-right: 90px;
}


.product-slide__image-file {
    display: block;

    width: 100%;
    height: auto;
    aspect-ratio: 16 / 9;

    object-fit: cover;
    object-position: center;
}



/* ==========================
   PRODUCT BUTTON
========================== */


.product-slide__button {
    width: 200px;
    margin-top: auto;
}





/* ==========================
   PRODUCT ARROWS
========================== */


.products-slider__arrow {
    position: absolute;

    top: 50%;

    z-index: 10;

    display: flex;
    align-items: center;
    justify-content: center;

    width: 40px;
    height: 40px;

    padding: 0;

    border: 0;

    background: transparent;

    color: var(--color-secondary);

    font-family: var(--font-primary);

    font-size: 22px;
    font-weight: 300;

    cursor: pointer;

    transform: translateY(-50%);

    transition: opacity var(--transition);
}


.products-slider__arrow:hover {
    opacity: .65;
}


.products-slider__arrow--prev {
    left: 0;
}


.products-slider__arrow--next {
    right: 0;
}


.products-slider__arrow.swiper-button-disabled {
    opacity: .25;

    cursor: default;
}



/* ==========================
   PRODUCTS - TABLET
========================== */


@media (max-width: 1000px) {

	
	.product-slide__content {
		padding-left: 0;
	}

	.product-slide__image {
	  padding-right: 0;
	}	
	
    .products .container {
        max-width: none;
    }


    .product-slide {
        grid-template-columns:
            minmax(240px, .9fr)
            minmax(0, 1.4fr);

        gap: 36px;
    }


    .products-slider__arrow--prev {
        left: -40px;
    }


    .products-slider__arrow--next {
        right: -40px;
    }


}



/* ==========================
   PRODUCTS - MOBILE
========================== */


@media (max-width: 768px) {


    .products__header {
        margin-bottom: 35px;
    }


    .products-tabs {
        width: calc(100% + 20px);

        margin-right: -20px;
        margin-bottom: 30px;
    }


    .products-tabs__button {
        min-height: 36px;
    }


    .product-slide {
        grid-template-columns: 1fr;

        gap: 25px;
    }


    .product-slide__content {
        padding-top: 0;
    }


    .product-slide__image {
        order: -1;
    }


    .product-slide__image-file {
        width: 100%;
        height: auto;

        aspect-ratio: 16 / 9;

        object-fit: cover;
    }


    .product-slide__excerpt {
        max-width: none;

        margin-bottom: 25px;
    }


    .product-slide__button {
        margin-top: 0;
    }


    .products-slider-wrapper {
        padding-bottom: 55px;
    }


    .products-slider__arrow {
        top: auto;
        bottom: 0;

        transform: none;
    }


    .products-slider__arrow--prev {
        left: 0;
    }


    .products-slider__arrow--next {
        right: 0;
    }


}


/* ==========================
   HOME - PARTNERS
========================== */

.partners {
    color: var(--color-secondary);
    background-color: var(--color-primary);
    overflow: hidden;
}


/* WRAP padrão apenas para label, título e botão */

.partners__wrap {
    width: min(calc(100% - 80px), var(--container-width));
    margin-left: auto;
    margin-right: auto;
}


/* HEADER */

.partners__header {
    margin-bottom: 58px;
}

.partners__label {
    margin-bottom: 22px;
}


.partners__title {
    max-width: 900px;

    margin: 0;

    color: var(--color-secondary);

    font-size: clamp(20px, 2.25vw, 32px);
    font-weight: 300;
    line-height: 1.35;
}


/* MARQUEE FULL WIDTH */

.partners__marquee {
    width: 100vw;
    margin-left: calc(50% - 50vw);

    overflow: hidden;

    margin-bottom: 52px;
}

.partners__marquee-track {
    display: flex;
    width: max-content;

    animation: partners-marquee var(--marquee-duration, 50s) linear infinite;
    animation-play-state: paused;
}

.partners.is-in-view .partners__marquee-track {
    animation-play-state: running;
}

.partners__marquee:focus-within .partners__marquee-track {
    animation-play-state: paused;
}

@media (hover: hover) and (pointer: fine) {

    .partners__marquee:hover .partners__marquee-track {
        animation-play-state: paused;
    }

}

.partners__marquee-group {
    display: flex;
    align-items: center;
    flex-shrink: 0;

    gap: 78px;
    padding-right: 78px;
}

.partners__item {
    display: flex;
    align-items: center;
    justify-content: center;

    min-width: 120px;
}

.partners__link,
.partners__static-logo {
    display: flex;
    align-items: center;
    justify-content: center;
}

.partners__logo {
    display: block;

    width: auto;
    height: clamp(110px, 8vw, 160px);
    max-width: clamp(300px, 25vw, 450px);

    object-fit: contain;
}


/* FOOTER */

.partners__footer {
    display: flex;
    justify-content: flex-end;
}

.partners__button {
    gap: 30px;
}



/* ANIMAÇÃO */

@keyframes partners-marquee {
    from {
        transform: translateX(0);
    }
    to {
        transform: translateX(-50%);
    }
}


/* TABLET */

@media (max-width: 1024px) {

    .partners__marquee-group {
        gap: 56px;
        padding-right: 56px;
    }

    .partners__logo {
        height: clamp(96px, 10vw, 130px);
        max-width: 420px;
    }

}


/* MOBILE */

@media (max-width: 768px) {

	.hero {
		background-size: 150%;
		background-position: top center;
	}
	
	.site-logo img {
		width: 150px;
	}
    .partners__wrap {
        width: calc(100% - 40px);
    }

    .partners__header {
        margin-bottom: 40px;
    }

    .partners__marquee {
        margin-bottom: 40px;
    }

    .partners__marquee-group {
        gap: 40px;
        padding-right: 40px;
    }

    .partners__logo {
        height: 96px;
        max-width: 340px;
    }

    .partners__footer {
        justify-content: flex-start;
    }

    .partners__button {
        width: auto;
        min-width: 0;
    }

}


/* ==========================
   HOME - CONTACT BANNER
========================== */

.contact-banner {
    position: relative;

    background-color: var(--color-primary);
    color: var(--color-primary);
}


/* ==========================
   ESTRUTURA
========================== */

.contact-banner__inner {
    position: relative;

    width: 100%;

    margin: 0 auto;
}


/* ==========================
   IMAGEM
========================== */

.contact-banner__image {
    width: calc(100% - 220px);

    margin-left: 220px;

    overflow: hidden;
}


.contact-banner__image-file {
    display: block;

    width: 100%;

    object-fit: cover;
    object-position: center;
}


/* ==========================
   BOX BRANCO
========================== */

.contact-banner__card {
    --contact-card-padding-inline: clamp(36px, 4vw, 64px);

    position: absolute;

    top: 50%;
    left: 0;

    z-index: 2;

    width: clamp(340px, 32vw, 490px);
    min-height: clamp(285px, 24vw, 360px);

    padding:
        clamp(44px, 4.5vw, 72px)
        var(--contact-card-padding-inline)
        clamp(64px, 5vw, 80px);

    background-color: var(--color-secondary);

    transform: translateY(-50%);
}


/* ==========================
   LABEL
========================== */

.contact-banner__label {
    margin-bottom: 24px;
}



/* ==========================
   TÍTULO
========================== */

.contact-banner__title {
    margin: 0;

    color: var(--color-teal-dark);

    font-size: clamp(22px, 2.25vw, 32px);
    font-weight: 300;
    line-height: 1.18;
}

.contact-banner__title strong {
    font-weight: 700;
}


/* ==========================
   BOTÃO
========================== */

.contact-banner__button {
    position: absolute;

    left: var(--contact-card-padding-inline);
    bottom: -16px;

    width: auto;
    gap: 30px;

    white-space: nowrap;
}




.contact-banner__button .button__arrow {
    font-weight: 300;
    line-height: 1;
}


/* ==========================
   TABLET
========================== */

@media (max-width: 900px) {

    .contact-banner__inner {
        max-width: 760px;
    }


    .contact-banner__image {
        width: calc(100% - 180px);

        margin-left: 180px;
    }


    .contact-banner__card {
        --contact-card-padding-inline: 40px;

        width: clamp(300px, 38vw, 380px);
        min-height: 280px;
    }

}


/* ==========================
   MOBILE
========================== */

@media (max-width: 768px) {

    .contact-banner__inner {
        display: flex;
        flex-direction: column;

        min-height: 0;
    }


    .contact-banner__image {
        order: 1;

        width: 100%;

        margin-left: 0;
    }


    .contact-banner__image-file {
        height: auto;

        aspect-ratio: 4 / 3;

        object-fit: cover;
    }


    .contact-banner__card {
        position: relative;

        order: 2;

        top: auto;
        left: auto;

        --contact-card-padding-inline: 35px;

        width: calc(100% - 40px);
        min-height: 0;

        margin:
            -55px
            20px
            0;

        padding:
            38px
            var(--contact-card-padding-inline)
            58px;

        transform: none;
    }


    .contact-banner__title {
        max-width: 260px;
    }


    .contact-banner__button {
        left: var(--contact-card-padding-inline);
    }

}


/* ==========================
   PAGE - QUEM SOMOS
========================== */

.about-page {
    background-color: var(--color-primary);
    color: var(--color-secondary);
}



/* ==========================
   INTRO
========================== */

.about-intro {
    padding:
        clamp(170px, 13vw, 230px)
        0
        clamp(100px, 8vw, 140px);
}


.about-intro__grid {
    display: grid;

    grid-template-columns:
        minmax(0, 1.15fr)
        minmax(360px, .85fr);

    gap:
        clamp(
            70px,
            8vw,
            150px
        );

    align-items: start;
}


.about-intro__content {
    max-width: 720px;
}



/* ==========================
   LABEL
========================== */

.about-intro__label {
    display: flex;
    align-items: center;

    gap: 8px;

    margin-bottom: 28px;

    color: var(--color-accent);

    font-size:
        clamp(
            13px,
            1.1vw,
            16px
        );

    font-weight: 700;
    line-height: 1;

    letter-spacing: .04em;

    text-transform: uppercase;
}


.about-intro__label-marker {
    display: block;

    width: 7px;
    height: 7px;

    flex: 0 0 7px;

    background-color:
        var(--color-teal);
}



/* ==========================
   TITLE
========================== */

.about-intro__title {
    max-width: 620px;

    margin:
        0
        0
        clamp(
            45px,
            4vw,
            65px
        );

    color:
        var(--color-secondary);

    font-size:
        clamp(
            32px,
            3vw,
            36px
        );

    font-weight: 300;
    line-height: 1.15;
}



/* ==========================
   TEXT
========================== */

.about-intro__text {
    max-width: 720px;

    color:
        var(--color-secondary);

    font-size:
        clamp(
            15px,
            1.15vw,
            18px
        );

    font-weight: 300;
    line-height: 1.5;
}


.about-intro__text p {
    margin:
        0
        0
        24px;
}


.about-intro__text p:last-child {
    margin-bottom: 0;
}



/* ==========================
   INTRO IMAGE
========================== */

.about-intro__image {
    width: 100%;
}


.about-intro__image-file {
    display: block;

    width: 100%;

    aspect-ratio: 1 / 1;

    object-fit: cover;
    object-position: center;
}



/* ==========================
   STATS
========================== */

.about-stats {
    position: relative;

    z-index: 5;

    width: 100%;

    margin-bottom:
        clamp(
            -95px,
            -6vw,
            -70px
        );
}


/*
 * Mantém os cards dentro
 * do wrap padrão do site.
 */

.about-stats .container {
    width: min(
        calc(100% - 80px),
        var(--container-width)
    );

    margin-left: auto;
    margin-right: auto;
}



/*
 * A quantidade de colunas
 * se adapta automaticamente
 * ao número de itens cadastrados.
 *
 * 3 cards = 3 colunas iguais
 * 4 cards = 4 colunas iguais
 *
 * O espaço de 50px é descontado
 * antes da divisão das colunas.
 */

.about-stats__grid {
    display: grid;

    grid-auto-flow: column;

    grid-auto-columns:
        minmax(0, 1fr);

    width: 100%;

    gap: 50px;
}



/* ==========================
   STAT CARD
========================== */

.about-stat-card {
    position: relative;

    display: flex;
    flex-direction: column;
    justify-content: flex-end;

    min-width: 0;

    min-height:
        clamp(
            220px,
            17vw,
            280px
        );

    padding:
        clamp(
            38px,
            3.5vw,
            56px
        )
        clamp(
            34px,
            3vw,
            52px
        )
        clamp(
            32px,
            3vw,
            46px
        );

    color:
        var(--color-secondary);

    overflow: visible;
}



/* ==========================
   CARD COLORS
========================== */

.about-stat-card:nth-child(3n + 1) {
    background-color:
        var(--color-teal);
}


.about-stat-card:nth-child(3n + 2) {
    background-color:
        var(--color-teal-muted);
}


.about-stat-card:nth-child(3n + 3) {
    background-color:
        var(--color-teal-dark);
}



/* ==========================
   STAT ICON
========================== */

.about-stat-card__icon {
    position: absolute;

    top: -18px;
    right: -18px;

    display: flex;
    align-items: center;
    justify-content: center;

    width:
        clamp(
            72px,
            6vw,
            90px
        );

    height:
        clamp(
            72px,
            6vw,
            90px
        );

    background-color:
        var(--color-accent);

    z-index: 2;
}


.about-stat-card__icon-image {
    display: block;

    width: 65px;
    height: 65px;

    object-fit: contain;
}



/* ==========================
   STAT VALUE
========================== */

.about-stat-card__value {
    margin-bottom: 14px;

    color:
        var(--color-secondary);

    font-size:
        clamp(
            44px,
            4.5vw,
            68px
        );

    font-weight: 300;
    line-height: 1;
}


.about-stat-card__value [data-counter] {
    display: inline-block;

    min-width: 1ch;

}



/* ==========================
   STAT TEXT
========================== */

.about-stat-card__text {
    max-width: 300px;

    color:
        var(--color-secondary);

    font-size:
        clamp(
            20px,
            1.6vw,
            26px
        );

    font-weight: 400;
    line-height: 1.25;

    text-transform: uppercase;
}



/* ==========================
   VISUAL / BACKGROUND
========================== */

.about-visual {
    position: relative;

    min-height:
        clamp(
            540px,
            47vw,
            760px
        );

    overflow: hidden;
}


.about-visual__background {
    position: absolute;

    inset: 0;
}


.about-visual__background-image {
    display: block;

    width: 100%;
    height: 100%;

    object-fit: cover;
    object-position: center;
}



/* ==========================
   BACKGROUND OVERLAY
========================== */

.about-visual__background::after {
    content: "";

    position: absolute;

    inset: 0;

    background:
        linear-gradient(
            to bottom,
            rgba(35, 55, 60, .02),
            rgba(35, 55, 60, .16)
        );

    pointer-events: none;
}



/* ==========================
   VISUAL CONTAINER
========================== */

.about-visual .container {
    position: relative;

    z-index: 2;

    min-height: inherit;
}



/* ==========================
   CTA BOX
========================== */

.about-visual__cta {
    --about-cta-padding:
        clamp(
            34px,
            3.5vw,
            52px
        );

    position: absolute;

    left: 0;

    bottom:
        clamp(
            80px,
            9vw,
            140px
        );

    width:
        clamp(
            290px,
            30vw,
            440px
        );

	padding: 90px 60px 60px 60px;
	
    background-color:
        var(--color-secondary);
}



/* ==========================
   CTA TITLE
========================== */

.about-visual__cta-title {
    margin: 0;

    color:
        var(--color-teal-dark);

    font-size:
        clamp(
            24px,
            2vw,
            32px
        );

    font-weight: 300;
    line-height: 1.15;
}

.about-visual__cta-title strong {

    font-weight: 700;
}



/* ==========================
   CTA BUTTON
========================== */

.about-visual__cta-button {
    position: absolute;

    left:
        var(
            --about-cta-padding
        );

    bottom: -18px;

    min-width: 220px;
    height: 50px;

    padding:
        0
        18px;

    gap: 30px;

    background-color:
        var(--color-accent);

    color:
        var(--color-secondary);

    font-size:
        clamp(
            13px,
            1vw,
            16px
        );

    font-weight: 600;
    line-height: 1;

    text-transform: uppercase;
}


.about-visual__cta-button:hover {
    background-color:
        var(--color-accent-hover);
}


/* ==========================
   NOTEBOOK
========================== */

@media (max-width: 1280px) {

    .about-intro__grid {
        gap: 80px;
    }


    .about-stats__grid {
        gap: 40px;
    }


    .about-stat-card {
        padding:
            38px
            34px
            32px;
    }


    .about-stat-card__text {
        max-width: 220px;
    }

}



/* ==========================
   TABLET
========================== */

@media (max-width: 1024px) {

    .about-intro {
        padding-top: 150px;
    }


    .about-intro__grid {
        grid-template-columns:
            minmax(0, 1.1fr)
            minmax(300px, .9fr);

        gap: 60px;
    }


    .about-stats__grid {
        gap: 30px;
    }


    .about-stat-card {
        min-height: 210px;

        padding:
            34px
            26px
            28px;
    }


    .about-stat-card__icon {
        top: -14px;
        right: -10px;

        width: 68px;
        height: 68px;
    }


    .about-stat-card__value {
        font-size: 46px;
    }


    .about-stat-card__text {
        font-size: 14px;
    }

}



/* ==========================
   MOBILE
========================== */

@media (max-width: 768px) {

    .about-intro {
        padding:
            130px
            0
            80px;
    }


    .about-intro__grid {
        grid-template-columns: 1fr;

        gap: 50px;
    }


    .about-intro__title {
        margin-bottom: 40px;
    }


    .about-intro__image {
        max-width: 520px;
    }



    /*
     * No mobile, os cards
     * passam a ficar empilhados.
     */

    .about-stats {
        margin-bottom: -40px;
    }


    .about-stats__grid {
        grid-auto-flow: row;

        grid-auto-columns: auto;

        grid-template-columns: 1fr;

        gap: 30px;
    }


    .about-stat-card {
        min-height: 180px;

        padding:
            34px
            30px
            28px;
    }


    .about-stat-card__icon {
        top: -10px;
        right: -8px;

        width: 64px;
        height: 64px;
    }


    .about-stat-card__value {
        font-size: 42px;
    }


    .about-stat-card__text {
        max-width: 90%;
    }



    /* ==========================
       VISUAL MOBILE
    ========================== */

    .about-visual {
        min-height: 600px;
    }


    .about-visual__cta {
        left: 20px;
        right: 20px;

        bottom: 70px;

        width: auto;
    }

	.about-stat-card__icon-image {
		width: 75%;
		height: auto;
	}		
	
	.about-stats .container {
		width: min(calc(100% - 40px), var(--container-width));
	}
	
}



/* ==========================
   SMALL MOBILE
========================== */

@media (max-width: 480px) {

    .about-intro {
        padding-top: 115px;
    }


    .about-intro__title {
        font-size: 32px;
    }


    .about-stat-card {
        min-height: 165px;
    }


    .about-stat-card__value {
        font-size: 40px;
    }


    .about-visual__cta {
        left: 16px;
        right: 16px;

        padding:
            32px
            28px
            62px;
    }


    .about-visual__cta-button {
        left: 28px;

        min-width: 205px;
    }

}


/* =========================================================
   INTERNAL PAGES
   Estilos das páginas internas do tema.
========================================================= */


/* ==========================
   PAGE - SERVIÇOS
========================== */

.services-page {
    background-color: var(--color-primary);
    color: var(--color-secondary);
}



/* ==========================
   SERVICES PAGE - INTRO
========================== */

.services-page__intro {
    padding:
        clamp(170px, 13vw, 230px)
        0
        clamp(115px, 9vw, 160px);
}


.services-page__intro-grid {
    display: grid;

    grid-template-columns:
        minmax(0, 1.25fr)
        minmax(420px, .75fr);

    gap:
        clamp(
            70px,
            8vw,
            140px
        );

    align-items: start;
}



/* ==========================
   INTRO CONTENT
========================== */

.services-page__intro-content {
    max-width: 690px;
}



/* ==========================
   LABEL
========================== */

.services-page__label {
    display: flex;
    align-items: center;

    gap: 8px;

    margin-bottom: 28px;

    color: var(--color-accent);

    font-size:
        clamp(
            13px,
            1.1vw,
            16px
        );

    font-weight: 700;
    line-height: 1;

    letter-spacing: .04em;

    text-transform: uppercase;
}


.services-page__label-marker {
    display: block;

    width: 7px;
    height: 7px;

    flex: 0 0 7px;

    background-color:
        var(--color-teal);
}



/* ==========================
   INTRO TITLE
========================== */

.services-page__title {
    max-width: 650px;

    margin:
        0
        0
        clamp(
            30px,
            3vw,
            36px
        );

    color: var(--color-secondary);

    font-size:
        clamp(
            30px,
            3.2vw,
            36px
        );

    font-weight: 300;
    line-height: 1.15;
}



/* ==========================
   INTRO TEXT
========================== */

.services-page__text {
    max-width: 680px;

    color: var(--color-secondary);

    font-size:
        clamp(
            15px,
            1.15vw,
            18px
        );

    font-weight: 300;
    line-height: 1.5;
}


.services-page__text p {
    margin:
        0
        0
        24px;
}


.services-page__text p:last-child {
    margin-bottom: 0;
}



/* ==========================
   INTRO IMAGE
========================== */

.services-page__intro-image {
    width: 100%;
}


.services-page__intro-image-file {
    display: block;

    width: 100%;

    aspect-ratio: 1 / 1;

    object-fit: cover;
    object-position: center;
}



/* ==========================
   SERVICES LIST
========================== */

.services-page__services {
    position: relative;

    z-index: 3;

    margin-top:
        clamp(
            -125px,
            -8vw,
            -75px
        );

    padding-bottom:
        clamp(
            120px,
            10vw,
            180px
        );
}


.services-page__services-list {
    display: flex;
    flex-direction: column;

    gap:
        clamp(
            65px,
            7vw,
            105px
        );
}



/* ==========================
   SERVICE PAGE CARD
========================== */

.services-page-card {
    position: relative;

    width:
        min(
            72%,
            900px
        );

    min-width: 0;
}



/*
 * Ímpares à esquerda
 */

.services-page-card--left {
    align-self: flex-start;
}



/*
 * Pares à direita
 */

.services-page-card--right {
    align-self: flex-end;
}



/* ==========================
   FIRST CARD
========================== */

/*
 * O primeiro serviço invade
 * a área inferior da imagem
 * do cabeçalho.
 */

.services-page-card--first {
    position: relative;

    z-index: 5;
}



/* ==========================
   CARD LINK
========================== */

.services-page-card__link {
    position: relative;

    display: flex;
    flex-direction: column;

    justify-content: center;

    min-height:
        clamp(
            220px,
            17vw,
            285px
        );

    width: 100%;

    padding:
        clamp(
            42px,
            4vw,
            62px
        )
        clamp(
            50px,
            5vw,
            80px
        );

    color: var(--color-secondary);

    transition:
        filter var(--transition),
        box-shadow var(--transition);
}



/* ==========================
   CARD COLORS
========================== */

.services-page-card--tone-1
.services-page-card__link {
    background-color:
        var(--color-teal);
}


.services-page-card--tone-2
.services-page-card__link {
    background-color:
        var(--color-teal-muted);
}


.services-page-card--tone-3
.services-page-card__link {
    background-color:
        var(--color-teal-dark);
}



/* ==========================
   CARD HOVER
========================== */

.services-page-card__link:hover {
    opacity: 1;

    filter:
        brightness(1.04);

    box-shadow:
        0
        18px
        45px
        rgba(0, 0, 0, .10);
}



/* ==========================
   CARD NUMBER
========================== */

.services-page-card__number {
    position: absolute;

    top: -18px;

    display: flex;
    align-items: baseline;
    justify-content: center;

    min-width:
        clamp(
            64px,
            5vw,
            78px
        );

    min-height:
        clamp(
            64px,
            5vw,
            78px
        );

    padding:
        25px
        14px;

    background-color:
        var(--color-accent);

    color:
        var(--color-secondary);

    font-size:
        clamp(
            24px,
            2vw,
            32px
        );

    font-weight: 300;
    line-height: 1;

    z-index: 2;
}



/*
 * Número dos cards à esquerda
 */

.services-page-card--left
.services-page-card__number {
    left: -18px;
}



/*
 * Número dos cards à direita
 */

.services-page-card--right
.services-page-card__number {
    right: -18px;
}



/* ==========================
   NUMBER VALUE
========================== */

.services-page-card__number-value {
    color:
        var(--color-secondary);
}


.services-page-card__number-dot {
    margin-left: 1px;

    color:
        var(--color-primary);
}



/* ==========================
   CARD CONTENT
========================== */

.services-page-card__content {
    max-width: 650px;
}



/*
 * O conteúdo do card à direita
 * continua alinhado à esquerda,
 * como na referência.
 */

.services-page-card--right
.services-page-card__content {
    margin-left: 0;
}



/* ==========================
   CARD TITLE
========================== */

.services-page-card__title {
    margin:
        0
        0
        24px;

    color:
        var(--color-secondary);

    font-size:
        clamp(
            20px,
            2vw,
            28px
        );

    font-weight: 400;
    line-height: 1.2;

    text-transform: uppercase;
}



/* ==========================
   CARD EXCERPT
========================== */

.services-page-card__excerpt {
    max-width: 650px;

    color:
        var(--color-secondary);

    font-size:
        clamp(
            14px,
            1.1vw,
            17px
        );

    font-weight: 300;
    line-height: 1.45;
}


.services-page-card__excerpt p {
    margin: 0;
}



/* ==========================
   PAGE SERVIÇOS - NOTEBOOK
========================== */

@media (max-width: 1280px) {

    .services-page__intro-grid {
        grid-template-columns:
            minmax(0, 1.15fr)
            minmax(380px, .85fr);

        gap: 80px;
    }


    .services-page-card {
        width:
            min(
                74%,
                850px
            );
    }


    .services-page-card__link {
        padding:
            45px
            55px;
    }

}



/* ==========================
   PAGE SERVIÇOS - TABLET
========================== */

@media (max-width: 1024px) {

    .services-page__intro {
        padding-top: 150px;
    }


    .services-page__intro-grid {
        grid-template-columns:
            minmax(0, 1.05fr)
            minmax(320px, .95fr);

        gap: 55px;
    }


    .services-page__services {
        margin-top: -70px;
    }


    .services-page-card {
        width: 78%;
    }


    .services-page-card__link {
        min-height: 210px;

        padding:
            42px
            45px;
    }


    .services-page-card__number {
        top: -14px;

        min-width: 62px;
        min-height: 62px;
    }


    .services-page-card--left
    .services-page-card__number {
        left: -12px;
    }


    .services-page-card--right
    .services-page-card__number {
        right: -12px;
    }

}



/* ==========================
   PAGE SERVIÇOS - MOBILE
========================== */

@media (max-width: 768px) {

    .services-page__intro {
        padding:
            130px
            0
            70px;
    }


    .services-page__intro-grid {
        grid-template-columns: 1fr;

        gap: 50px;
    }


    .services-page__title {
        margin-bottom: 36px;
    }


    .services-page__intro-image {
        max-width: 520px;
    }


    /*
     * No mobile eliminamos a
     * sobreposição da lista.
     */

    .services-page__services {
        margin-top: 0;

        padding-bottom: 100px;
    }


    .services-page__services-list {
        gap: 45px;
    }


    /*
     * Todos os cards passam
     * a ocupar 100%.
     */

    .services-page-card,
    .services-page-card--left,
    .services-page-card--right {
        width: 100%;

        align-self: stretch;
    }


    .services-page-card__link {
        min-height: 190px;

        padding:
            48px
            32px
            34px;
    }


    /*
     * No mobile o número fica
     * sempre no canto superior
     * esquerdo.
     */


	
    .services-page-card--left
    .services-page-card__number,
    .services-page-card--right
    .services-page-card__number {
        top: -20px;
        left: -8px;
        right: auto;
		padding: 15px 10px;

		min-width: 40px;
        min-height: 40px;
    }

    .services-page-card__title {
        font-size: 21px;
    }


    .services-page-card__excerpt {
        max-width: none;
    }

}



/* ==========================
   PAGE SERVIÇOS - SMALL MOBILE
========================== */

@media (max-width: 480px) {

    .services-page__intro {
        padding-top: 115px;
    }


    .services-page__title {
        font-size: 32px;
    }


    .services-page__services-list {
        gap: 38px;
    }


    .services-page-card__link {
        padding:
            45px
            26px
            30px;
    }


    .services-page-card__title {
        margin-bottom: 18px;

        font-size: 19px;
    }

}


/* ==========================
   PAGE - PRODUTOS
========================== */

.products-page {
    background-color: var(--color-primary);
    color: var(--color-secondary);
}



/* ==========================
   PRODUCTS PAGE - INTRO
========================== */

.products-page__intro {
    padding:
        clamp(170px, 13vw, 230px)
        0
        clamp(90px, 8vw, 130px);
}


.products-page__header {
    max-width: 850px;
}



/* ==========================
   INTRO LABEL
========================== */

.products-page__label {
    display: flex;
    align-items: center;

    gap: 8px;

    margin-bottom: 28px;

    color: var(--color-accent);

    font-size:
        clamp(
            13px,
            1.1vw,
            16px
        );

    font-weight: 700;
    line-height: 1;

    letter-spacing: .04em;

    text-transform: uppercase;
}


.products-page__label-marker {
    display: block;

    width: 7px;
    height: 7px;

    flex: 0 0 7px;

    background-color: var(--color-teal);
}



/* ==========================
   INTRO TITLE
========================== */

.products-page__title {
    max-width: 820px;

    margin: 0;

    color: var(--color-secondary);

    font-size:
        clamp(
            30px,
            3vw,
            36px
        );

    font-weight: 300;
    line-height: 1.22;
}



/* ==========================
   INTRO TEXT
========================== */

.products-page__text {
    max-width: 720px;

    margin-top:
        clamp(
            32px,
            3vw,
            48px
        );

    color: var(--color-secondary);

    font-size:
        clamp(
            15px,
            1.15vw,
            18px
        );

    font-weight: 300;
    line-height: 1.5;
}


.products-page__text p {
    margin:
        0
        0
        24px;
}


.products-page__text p:last-child {
    margin-bottom: 0;
}



/* ==========================
   PRODUCTS LIST
========================== */

.products-page__list-section {
    padding-bottom:
        clamp(
            130px,
            11vw,
            190px
        );
}


.products-page__list {
    display: flex;
    flex-direction: column;

    gap: clamp(160px, 16vw, 250px);
}



/* ==========================
   PRODUCT ITEM
========================== */

.products-page-item {
    position: relative;

    display: grid;

    grid-template-columns:
        minmax(0, 1.05fr)
        minmax(0, .95fr);

    align-items: end;

    width: 100%;

    min-width: 0;
}
.products-page-item.products-page-item--reverse {
	align-items: flex-start;
}

.products-page-item .products-page-item__card {
	top: 50px;
}
.products-page-item.products-page-item--reverse .products-page-item__card {
	top: initial;
	bottom: 50px;
}

/* ==========================
   PRODUCT IMAGE
========================== */

.products-page-item__image {
    position: relative;

    z-index: 1;

    width: 100%;

    min-width: 0;

    overflow: hidden;
}


.products-page-item__image-file {
    display: block;

    width: 100%;

    aspect-ratio: 16 / 9;

    object-fit: cover;
    object-position: center;
}



/* ==========================
   PRODUCT CARD
========================== */

.products-page-item__card {
    position: relative;

    z-index: 2;

    display: flex;
    flex-direction: column;
    justify-content: center;

    width:
        calc(
            100% + 70px
        );

    min-height:
        clamp(
            210px,
            18vw,
            280px
        );

    padding:
        clamp(
            38px,
            4vw,
            58px
        )
        clamp(
            42px,
            4.5vw,
            68px
        );

    margin-left: -70px;

    background-color: var(--color-secondary);

    color: var(--color-primary);
}



/* ==========================
   REVERSE ITEM
========================== */

/*
 * Nos itens pares:
 * conteúdo à esquerda
 * imagem à direita.
 */

.products-page-item--reverse
.products-page-item__image {
    grid-column: 2;
    grid-row: 1;
}


.products-page-item--reverse
.products-page-item__card {
    grid-column: 1;
    grid-row: 1;

    margin-left: 0;
    margin-right: -70px;
}



/* ==========================
   PRODUCT TITLE
========================== */

.products-page-item__title {
    margin:
        0
        0
        22px;

    color: var(--color-accent);

    font-size:
        clamp(
            26px,
            2vw,
            32px
        );

    font-weight: 400;
    line-height: 1.2;

    text-transform: uppercase;
}



/* ==========================
   PRODUCT CONTENT
========================== */

.products-page-item__content {
    max-width: 600px;

    color: var(--color-primary);

    font-size:
        clamp(
            14px,
            1.05vw,
            16px
        );

    font-weight: 300;
    line-height: 1.45;
}



/* ==========================
   CONTENT - PARAGRAPHS
========================== */

.products-page-item__content p {
    margin:
        0
        0
        14px;
}


.products-page-item__content p:last-child {
    margin-bottom: 0;
}



/* ==========================
   CONTENT - LISTS
========================== */

.products-page-item__content ul {
    display: grid;

    grid-template-columns:
        repeat(
            2,
            minmax(0, 1fr)
        );

    column-gap: 35px;
    row-gap: 7px;

    margin:
        18px
        0
        0;

    padding: 0;

    list-style: none;
}


.products-page-item__content li {
    position: relative;

    padding-left: 13px;
}


.products-page-item__content li::before {
    content: "";

    position: absolute;

    top: .65em;
    left: 0;

    width: 4px;
    height: 4px;

    background-color: var(--color-accent);
}



/* ==========================
   CONTENT - ORDERED LIST
========================== */

.products-page-item__content ol {
    margin:
        18px
        0
        0;

    padding-left: 22px;

    list-style: decimal;
}


.products-page-item__content ol li {
    padding-left: 4px;
}


.products-page-item__content ol li::before {
    display: none;
}



/* ==========================
   CONTENT - LINKS
========================== */

.products-page-item__content a {
    color: var(--color-teal-dark);

    text-decoration: underline;

    text-underline-offset: 3px;
}


.products-page-item__content a:hover {
    color: var(--color-accent);
}



/* ==========================
   CONTENT - STRONG
========================== */

.products-page-item__content strong {
    font-weight: 600;
}



/* ==========================
   PRODUCTS PAGE - NOTEBOOK
========================== */

@media (max-width: 1280px) {

    .products-page-item {
        grid-template-columns:
            minmax(0, 1fr)
            minmax(0, 1fr);
    }


    .products-page-item__card {
        width:
            calc(
                100% + 55px
            );

        margin-left: -55px;

        padding:
            40px
            45px;
    }


    .products-page-item--reverse
    .products-page-item__card {
        margin-left: 0;
        margin-right: -55px;
    }

}



/* ==========================
   PRODUCTS PAGE - TABLET
========================== */

@media (max-width: 1024px) {

    .products-page__intro {
        padding:
            150px
            0
            80px;
    }


    .products-page__list {
        gap: 80px;
    }


    .products-page-item__card {
        width:
            calc(
                100% + 40px
            );

        min-height: 200px;

        margin-left: -40px;

        padding:
            34px
            36px;
    }


    .products-page-item--reverse
    .products-page-item__card {
        margin-left: 0;
        margin-right: -40px;
    }


    .products-page-item__title {
        font-size: 21px;
    }


    .products-page-item__content {
        font-size: 14px;
    }


    .products-page-item__content ul {
        grid-template-columns: 1fr;

        gap: 6px;
    }

}



/* ==========================
   PRODUCTS PAGE - MOBILE
========================== */

@media (max-width: 768px) {

    .products-page__intro {
        padding:
            130px
            0
            70px;
    }


    .products-page__header {
        max-width: none;
    }


    .products-page__title {
        font-size:
            clamp(
                28px,
                7.5vw,
                34px
            );
    }


    .products-page__list-section {
        padding-bottom: 100px;
    }


    .products-page__list {
        gap: 60px;
    }



    /*
     * No mobile a imagem fica
     * sempre acima do conteúdo.
     */

    .products-page-item,
    .products-page-item--reverse {
        display: flex;
        flex-direction: column;

        align-items: stretch;
    }


    .products-page-item__image,
    .products-page-item--reverse
    .products-page-item__image {
        width: 100%;

        order: 1;
    }


    .products-page-item__card,
    .products-page-item--reverse
    .products-page-item__card {
        width:
            calc(
                100% - 30px
            );

        min-height: 0;

        order: 2;

        margin:
            0
            0
            0
            auto;

        padding:
            34px
            30px;
    }



    /*
     * Alterna o alinhamento
     * do box no mobile.
     */

    .products-page-item--reverse
    .products-page-item__card {
        margin:
            -35px
            auto
            0
            0;
    }


    .products-page-item__title {
        margin-bottom: 18px;

        font-size: 20px;
    }


    .products-page-item__content {
        max-width: none;
    }


    .products-page-item__content ul {
        grid-template-columns:
            repeat(
                2,
                minmax(0, 1fr)
            );

        column-gap: 25px;
    }

}



/* ==========================
   PRODUCTS PAGE - SMALL MOBILE
========================== */

@media (max-width: 480px) {

    .products-page__intro {
        padding:
            115px
            0
            60px;
    }


    .products-page__title {
        font-size: 28px;
    }


    .products-page__list {
        gap: 50px;
    }


    .products-page-item__image-file {
        aspect-ratio: 4 / 3;
    }

	.products-page-item .products-page-item__card {
		top: 0;
	}	

    .products-page-item__card,
    .products-page-item--reverse
    .products-page-item__card {
        width: 100%;

        margin-top: 0;

        padding:
            30px
            24px;
    }

	.products-page-item.products-page-item--reverse .products-page-item__card {
		top: initial;
		bottom: initial;
	}
    .products-page-item__content ul {
        grid-template-columns: 1fr;

        gap: 6px;
    }

}



/* ==========================
   PAGE - PARCEIROS
========================== */

.partners-page {
    min-height: 100vh;

    background-color:
        var(--color-primary);

    color:
        var(--color-secondary);
}



/* ==========================
   PARTNERS PAGE - INTRO
========================== */

.partners-page__intro {
    padding:
        clamp(170px, 13vw, 230px)
        0
        clamp(80px, 7vw, 115px);
}



/* ==========================
   HEADER
========================== */

.partners-page__header {
    max-width: 950px;
}



/* ==========================
   LABEL
========================== */

.partners-page__label {
    display: flex;
    align-items: center;

    gap: 8px;

    margin-bottom: 28px;

    color:
        var(--color-accent);

    font-size:
        clamp(
            13px,
            1.1vw,
            16px
        );

    font-weight: 700;
    line-height: 1;

    letter-spacing: .04em;

    text-transform: uppercase;
}


.partners-page__label-marker {
    display: block;

    width: 7px;
    height: 7px;

    flex: 0 0 7px;

    background-color:
        var(--color-teal);
}



/* ==========================
   TITLE
========================== */

.partners-page__title {
    max-width: 930px;

    margin: 0;

    color:
        var(--color-secondary);

    font-size:
        clamp(
            30px,
            3vw,
            36px
        );

    font-weight: 300;
    line-height: 1.3;
}



/* ==========================
   LOGOS SECTION
========================== */

.partners-page__logos {
    padding:
        0
        0
        clamp(
            130px,
            11vw,
            190px
        );
}



/* ==========================
   LOGOS GRID
========================== */

.partners-page__grid {
    display: grid;

    grid-template-columns:
        repeat(
            4,
            minmax(0, 1fr)
        );

    column-gap:
        clamp(
            50px,
            6vw,
            95px
        );

    row-gap:
        clamp(
            65px,
            7vw,
            110px
        );

    align-items: center;
}



/* ==========================
   LOGO ITEM
========================== */

.partners-page__item {
    display: flex;

    align-items: center;
    justify-content: center;

    min-width: 0;

    min-height:
        clamp(
            95px,
            8vw,
            135px
        );
}



/* ==========================
   LOGO IMAGE
========================== */

.partners-page__logo {
    display: block;

    width: auto;
    height: auto;

    max-width: 100%;

    max-height:
        clamp(
            70px,
            6vw,
            105px
        );

    object-fit: contain;
}



/* ==========================
   PARTNERS PAGE - NOTEBOOK
========================== */

@media (max-width: 1280px) {

    .partners-page__header {
        max-width: 850px;
    }


    .partners-page__grid {
        column-gap: 55px;
        row-gap: 75px;
    }


    .partners-page__logo {
        max-width: 90%;
    }

}



/* ==========================
   PARTNERS PAGE - TABLET
========================== */

@media (max-width: 1024px) {

    .partners-page__intro {
        padding:
            150px
            0
            80px;
    }


    .partners-page__title {
        max-width: 760px;
    }


    .partners-page__grid {
        grid-template-columns:
            repeat(
                3,
                minmax(0, 1fr)
            );

        column-gap: 50px;
        row-gap: 65px;
    }


    .partners-page__item {
        min-height: 100px;
    }


    .partners-page__logo {
        max-width: 88%;
        max-height: 85px;
    }

}



/* ==========================
   PARTNERS PAGE - MOBILE
========================== */

@media (max-width: 768px) {

    .partners-page__intro {
        padding:
            130px
            0
            65px;
    }


    .partners-page__label {
        margin-bottom: 22px;
    }


    .partners-page__title {
        max-width: none;

        font-size:
            clamp(
                26px,
                7vw,
                32px
            );

        line-height: 1.28;
    }


    .partners-page__logos {
        padding-bottom: 100px;
    }


    .partners-page__grid {
        grid-template-columns:
            repeat(
                2,
                minmax(0, 1fr)
            );

        column-gap: 32px;
        row-gap: 52px;
    }


    .partners-page__item {
        min-height: 80px;
    }


    .partners-page__logo {
        max-width: 90%;
        max-height: 70px;
    }

}



/* ==========================
   PARTNERS PAGE - SMALL MOBILE
========================== */

@media (max-width: 480px) {

    .partners-page__intro {
        padding:
            115px
            0
            55px;
    }


    .partners-page__title {
        font-size: 27px;
    }


    .partners-page__grid {
        column-gap: 24px;
        row-gap: 45px;
    }


    .partners-page__item {
        min-height: 70px;
    }


    .partners-page__logo {
        max-width: 92%;
        max-height: 60px;
    }

}



/* ==========================
   PAGE - CONTATO
========================== */

.contact-page {
    min-height: 100vh;

    background-color:
        var(--color-primary);

    color:
        var(--color-secondary);
}



/* ==========================
   CONTACT PAGE - MAIN
========================== */

.contact-page__main {
    padding:
        clamp(170px, 13vw, 230px)
        0
        clamp(80px, 7vw, 110px);
}


.contact-page__grid {
    display: grid;

    grid-template-columns:
        minmax(0, 1.15fr)
        minmax(380px, .85fr);

    gap:
        clamp(
            70px,
            8vw,
            130px
        );

    align-items: start;
}



/* ==========================
   CONTENT
========================== */

.contact-page__content {
    width: 100%;

    max-width: 720px;
}



/* ==========================
   HEADER
========================== */

.contact-page__header {
    margin-bottom:
        clamp(
            38px,
            4vw,
            55px
        );
}



/* ==========================
   LABEL
========================== */

.contact-page__label {
    display: flex;
    align-items: center;

    gap: 8px;

    margin-bottom: 28px;

    color:
        var(--color-accent);

    font-size:
        clamp(
            13px,
            1.1vw,
            16px
        );

    font-weight: 700;
    line-height: 1;

    letter-spacing: .04em;

    text-transform: uppercase;
}


.contact-page__label-marker {
    display: block;

    width: 7px;
    height: 7px;

    flex: 0 0 7px;

    background-color:
        var(--color-teal);
}



/* ==========================
   TITLE
========================== */

.contact-page__title {
    max-width: 680px;

    margin: 0;

    color:
        var(--color-secondary);

    font-size:
        clamp(
            30px,
            3vw,
            36px
        );

    font-weight: 300;
    line-height: 1.2;
}



/* ==========================
   IMAGE
========================== */

.contact-page__image {
    width: 100%;

    min-width: 0;
}


.contact-page__image-file {
    display: block;

    width: 100%;

    aspect-ratio: 1 / 1;

    object-fit: cover;
    object-position: center;
}



/* ==========================
   CONTACT FORM 7
========================== */

.contact-page__form {
    width: 100%;
}


.contact-page__form .wpcf7 {
    width: 100%;
}


.contact-page__form form {
    width: 100%;
}



/* ==========================
   FORM PARAGRAPHS
========================== */

.contact-page__form p {
    margin:
        0
        0
        18px;
}



/* ==========================
   FORM FIELDS
========================== */

.contact-page__form input[type="text"],
.contact-page__form input[type="email"],
.contact-page__form input[type="tel"],
.contact-page__form input[type="url"],
.contact-page__form select,
.contact-page__form textarea {
    display: block;

    width: 100%;

    margin: 0;

    padding:
        0
        16px;

    border:
        1px solid
        var(--color-accent);

    border-radius: 0;

    outline: 0;

    background-color:
        transparent;

    color:
        var(--color-secondary);

    font-family:
        var(--font-primary);

    font-size:
        clamp(
            14px,
            1vw,
            16px
        );

    font-weight: 300;

    box-shadow: none;

    transition:
        border-color var(--transition),
        background-color var(--transition);
}


.contact-page__form input[type="text"],
.contact-page__form input[type="email"],
.contact-page__form input[type="tel"],
.contact-page__form input[type="url"],
.contact-page__form select {
    height: 52px;
}


.contact-page__form textarea {
    min-height: 160px;

    padding-top: 15px;
    padding-bottom: 15px;

    resize: vertical;
}



/* ==========================
   PLACEHOLDERS
========================== */

.contact-page__form input::placeholder,
.contact-page__form textarea::placeholder {
    color:
        rgba(
            255,
            255,
            255,
            .78
        );

    opacity: 1;
}



/* ==========================
   FIELD FOCUS
========================== */

.contact-page__form input[type="text"]:focus,
.contact-page__form input[type="email"]:focus,
.contact-page__form input[type="tel"]:focus,
.contact-page__form input[type="url"]:focus,
.contact-page__form select:focus,
.contact-page__form textarea:focus {
    border-color:
        var(--color-teal);

    background-color:
        rgba(
            255,
            255,
            255,
            .02
        );
}



/* ==========================
   CF7 CONTROL WRAPPER
========================== */

.contact-page__form
.wpcf7-form-control-wrap {
    display: block;

    width: 100%;
	
	margin-bottom: 20px;
}



/* ==========================
   SUBMIT
========================== */

.contact-page__submit {
    position: relative;

    display: inline-flex;

    width: auto;
	
	margin-bottom: 20px;	
}


.contact-page__form
.contact-page__submit
input[type="submit"] {
    display: block;

    width: 100%;
    min-width: 280px;
    height: 52px;

    margin: 0;

    padding:
        0
        60px
        0
        20px;

    border: 0;
    border-radius: 0;

    background-color:
        var(--color-accent);

    color:
        var(--color-secondary);

    font-family:
        var(--font-primary);

    font-size:
        clamp(
            13px,
            1.1vw,
            16px
        );

    font-weight: 600;
    line-height: 1;

    letter-spacing: .04em;

    text-align: left;
    text-transform: uppercase;

    cursor: pointer;

    transition:
        background-color var(--transition),
        opacity var(--transition);
}


/* SETA */

.contact-page__submit::after {
    content: "→";

    position: absolute;

    top: 50%;
    right: 50px;

    color:
        var(--color-secondary);

    font-size: 21px;
    font-weight: 300;
    line-height: 1;

    translate:
        0
        -50%;

    pointer-events: none;

    transition:
        translate var(--transition);
}


/* HOVER */

.contact-page__submit:hover
input[type="submit"] {
    background-color:
        var(--color-accent-hover);
}


.contact-page__submit:hover::after {
    translate:
        4px
        -50%;
}


/* ==========================
   CF7 SPINNER
========================== */

.contact-page__form
.wpcf7-spinner {
    margin:
        0
        0
        0
        12px;

    vertical-align: middle;
}



/* ==========================
   ACCEPTANCE
========================== */

.contact-page__form
.wpcf7-acceptance {
    display: block;

    margin-top: 5px;
}


.contact-page__form
.wpcf7-acceptance label {
    display: inline-flex;
    align-items: center;

    gap: 10px;

    color:
        var(--color-secondary);

    font-size:
        clamp(
            12px,
            .95vw,
            14px
        );

    font-weight: 300;
    line-height: 1.35;

    cursor: pointer;
}


.contact-page__form
.wpcf7-acceptance
.wpcf7-list-item {
    margin: 0;
}



/* ==========================
   CUSTOM CHECKBOX
========================== */

.contact-page__form
.wpcf7-acceptance
input[type="checkbox"] {
    position: relative;

    width: 16px;
    height: 16px;

    flex: 0 0 16px;

    margin: 0;

    border:
        1px solid
        var(--color-teal);

    border-radius: 0;

    background:
        transparent;

    appearance: none;
    -webkit-appearance: none;

    cursor: pointer;
}


.contact-page__form
.wpcf7-acceptance
input[type="checkbox"]:checked {
    background-color:
        var(--color-teal);
}


.contact-page__form
.wpcf7-acceptance
input[type="checkbox"]:checked::after {
    content: "";

    position: absolute;

    top: 2px;
    left: 5px;

    width: 4px;
    height: 8px;

    border:
        solid
        var(--color-secondary);

    border-width:
        0
        2px
        2px
        0;

    transform:
        rotate(45deg);
}



/* ==========================
   CF7 VALIDATION
========================== */

.contact-page__form
.wpcf7-not-valid-tip {
    margin-top: 6px;

    color:
        var(--color-accent);

    font-size: 12px;
    line-height: 1.35;
}


.contact-page__form
.wpcf7-not-valid {
    border-color:
        var(--color-accent);
}



/* ==========================
   CF7 RESPONSE
========================== */

.contact-page__form
.wpcf7-response-output {
    margin:
        25px
        0
        0;

    padding:
        14px
        16px;

    border:
        1px solid
        var(--color-teal);

    color:
        var(--color-secondary);

    font-size: 13px;
    line-height: 1.4;
}


.contact-page__form
.wpcf7 form.invalid
.wpcf7-response-output,
.contact-page__form
.wpcf7 form.unaccepted
.wpcf7-response-output,
.contact-page__form
.wpcf7 form.payment-required
.wpcf7-response-output {
    border-color:
        var(--color-accent);
}


.contact-page__form
.wpcf7 form.sent
.wpcf7-response-output {
    border-color:
        var(--color-teal);
}



/* ==========================
   CONTACT INFO
========================== */

.contact-page__info {
    padding:
        0
        0
        clamp(
            120px,
            9vw,
            170px
        );
}



/* ==========================
   CONTACT INFO FLEX
========================== */

.contact-page__info-grid {
    display: flex;

    align-items: center;

    width: 100%;

    gap: 120px;
}



/* ==========================
   CONTACT INFO ITEM
========================== */

.contact-page-info {
    display: flex;
    align-items: center;

    flex: 0 0 auto;

    width: auto;

    gap: 18px;

    min-width: 0;
}



/* ==========================
   INFO ICON
========================== */

.contact-page-info__icon {
    display: flex;
    align-items: center;
    justify-content: center;

    width: 53px;

    flex:
        0
        0
        53px;

    background:
        transparent;
}


.contact-page-info__icon-image {
    display: block;

    width: 53px;
    height: auto;

    max-width: none;

    object-fit: contain;
}



/* ==========================
   INFO CONTENT
========================== */

.contact-page-info__content {
    min-width: 0;
}



/* ==========================
   INFO LABEL
========================== */

.contact-page-info__label {
    margin-bottom: 3px;

    color:
        rgba(
            255,
            255,
            255,
            .72
        );

    font-size:
        clamp(
            12px,
            .95vw,
            14px
        );

    font-weight: 400;
    line-height: 1.15;

    text-transform: uppercase;
}



/* ==========================
   INFO VALUE
========================== */

.contact-page-info__value {
    display: block;

    color:
        var(--color-secondary);

    font-size:
        clamp(
            14px,
            1.05vw,
            16px
        );

    font-weight: 300;
    line-height: 1.3;

    white-space: nowrap;
}


a.contact-page-info__value:hover {
    color:
        var(--color-accent);

    opacity: 1;
}



/* ==========================
   CONTACT PAGE - NOTEBOOK
========================== */

@media (max-width: 1280px) {

    .contact-page__grid {
        grid-template-columns:
            minmax(0, 1.1fr)
            minmax(360px, .9fr);

        gap: 75px;
    }


    .contact-page__info-grid {
        gap: 45px;
    }


    .contact-page-info {
        gap: 14px;
    }

}



/* ==========================
   CONTACT PAGE - TABLET
========================== */

@media (max-width: 1024px) {
	.contact-page__image {
		display: none;
	}
    .contact-page__main {
        padding:
            150px
            0
            90px;
    }


    .contact-page__grid {
        grid-template-columns:
            minmax(0, 1.05fr)
            minmax(310px, .95fr);

        gap: 50px;
    }


    .contact-page__image-file {
        aspect-ratio: 4 / 5;
    }


    .contact-page__info-grid {
        flex-wrap: wrap;

        gap:
            40px
            60px;
    }

}



/* ==========================
   CONTACT PAGE - MOBILE
========================== */

@media (max-width: 768px) {

    .contact-page__main {
        padding:
            130px
            0
            75px;
    }


    .contact-page__grid {
        grid-template-columns: 1fr;

        gap: 55px;
    }


    .contact-page__content {
        max-width: none;
    }


    .contact-page__title {
        max-width: none;

        font-size:
            clamp(
                28px,
                7.5vw,
                34px
            );
    }


    .contact-page__image {
        max-width: 520px;
    }


    .contact-page__image-file {
        aspect-ratio: 1 / 1;
    }


    .contact-page__form
    input[type="submit"] {
        width: 100%;
    }


    .contact-page__info {
        padding-bottom: 100px;
    }


    .contact-page__info-grid {
        flex-direction: column;
        align-items: flex-start;

        gap: 35px;
    }


    .contact-page-info {
        gap: 18px;
    }


    .contact-page-info__value {
        white-space: normal;
    }

}



/* ==========================
   CONTACT PAGE - SMALL MOBILE
========================== */

@media (max-width: 480px) {

    .contact-page__main {
        padding:
            115px
            0
            65px;
    }


    .contact-page__header {
        margin-bottom: 35px;
    }


    .contact-page__title {
        font-size: 28px;
    }


    .contact-page__form
    input[type="text"],
    .contact-page__form
    input[type="email"],
    .contact-page__form
    input[type="tel"],
    .contact-page__form
    input[type="url"],
    .contact-page__form
    select {
        height: 48px;
    }


    .contact-page__form textarea {
        min-height: 140px;
    }


    .contact-page__info-grid {
        gap: 30px;
    }

}
