/* =========================================================
   AGÊNCIA DIGITAL WEBARTY
   CONTACTOS — CONTEÚDO E FORMULÁRIO
   CSS COMPLETO PARA SUBSTITUIÇÃO
   ========================================================= */


/* =========================================================
   RESET LOCAL
   ========================================================= */

.wa-contact-main,
.wa-contact-main *,
.wa-contact-main *::before,
.wa-contact-main *::after {
    box-sizing: border-box;
}

.wa-contact-main h2,
.wa-contact-main h3,
.wa-contact-main p {
    margin: 0;
    padding: 0;
}


/* =========================================================
   MAIN SECTION
   ========================================================= */

.wa-contact-main {
    --wa-contact-dark: #283550;
    --wa-contact-dark-deep: #212c4f;
    --wa-contact-teal: #00a78e;
    --wa-contact-teal-hover: #008f7a;
    --wa-contact-green: #36c88a;
    --wa-contact-text: #657188;
    --wa-contact-muted: #8b96a8;
    --wa-contact-border: #d8e3e6;
    --wa-contact-border-strong: #cbdadd;
    --wa-contact-light: #f3f7f7;

    position: relative;
    isolation: isolate;

    width: 100%;
    max-width: 100%;

    margin: 0;
    padding: 96px 0 104px;

    overflow: hidden;

    background:
        radial-gradient(
            circle at 8% 12%,
            rgba(0, 167, 142, 0.055),
            rgba(0, 167, 142, 0) 28%
        ),
        radial-gradient(
            circle at 94% 90%,
            rgba(54, 200, 138, 0.045),
            rgba(54, 200, 138, 0) 26%
        ),
        linear-gradient(
            180deg,
            #f7f9fa 0%,
            #edf2f3 100%
        );
}


/* =========================================================
   ELEMENTOR CONTAINERS
   ========================================================= */

.wa-contact-main__container {
    display: grid !important;

    grid-template-columns:
        minmax(360px, 0.84fr)
        minmax(520px, 1.16fr);

    align-items: start;

    gap: clamp(52px, 6vw, 88px);

    width: min(
        calc(100% - 176px),
        1360px
    ) !important;

    max-width: 1360px !important;

    margin: 0 auto !important;
    padding: 0 !important;
}

.wa-contact-main__intro,
.wa-contact-form-card {
    min-width: 0;
}


/* =========================================================
   LEFT COLUMN
   ========================================================= */

.wa-contact-main__intro {
    position: sticky;
    top: 118px;
}

.wa-contact-info {
    width: 100%;
    max-width: 560px;
}


/* =========================================================
   LEFT EYEBROW
   ========================================================= */

.wa-contact-info__eyebrow {
    display: inline-flex;
    align-items: center;

    gap: 12px;

    margin-bottom: 19px;

    color: var(--wa-contact-teal);

    font-family: inherit;
    font-size: 12px;
    font-weight: 800;
    line-height: 1.4;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.wa-contact-info__eyebrow-line {
    display: block;
    flex: 0 0 34px;

    width: 34px;
    height: 3px;

    border-radius: 999px;

    background:
        linear-gradient(
            90deg,
            var(--wa-contact-teal),
            var(--wa-contact-green)
        );
}


/* =========================================================
   LEFT TITLE
   ========================================================= */

.wa-contact-info__title {
    max-width: 530px;

    color: var(--wa-contact-dark) !important;

    font-family: inherit !important;

    font-size: clamp(
        38px,
        3.15vw,
        49px
    ) !important;

    font-weight: 800 !important;
    line-height: 1.08 !important;
    letter-spacing: -0.043em !important;
    text-transform: none !important;
}


/* =========================================================
   LEFT DESCRIPTION
   ========================================================= */

.wa-contact-info__description {
    max-width: 520px;

    margin-top: 23px !important;

    color: var(--wa-contact-text) !important;

    font-family: inherit;
    font-size: 16px;
    font-weight: 400;
    line-height: 1.7;
}


/* =========================================================
   CONTACT CARDS
   ========================================================= */

.wa-contact-info__cards {
    display: flex;
    flex-direction: column;

    gap: 14px;

    margin-top: 31px;
}

.wa-contact-info__card {
    display: grid;

    grid-template-columns:
        52px
        minmax(0, 1fr);

    align-items: start;

    gap: 16px;

    padding: 20px 21px;

    border: 1px solid var(--wa-contact-border);
    border-radius: 20px;

    background: rgba(255, 255, 255, 0.9);

    box-shadow:
        0 11px 26px rgba(31, 51, 75, 0.045);

    transition:
        border-color 0.2s ease,
        box-shadow 0.2s ease,
        transform 0.2s ease;
}

.wa-contact-info__card:hover {
    border-color: rgba(0, 167, 142, 0.28);

    box-shadow:
        0 16px 34px rgba(31, 51, 75, 0.075);

    transform: translateY(-2px);
}

.wa-contact-info__card-icon {
    display: inline-flex;

    width: 52px;
    height: 52px;

    align-items: center;
    justify-content: center;

    border: 1px solid rgba(0, 167, 142, 0.18);
    border-radius: 50%;

    color: var(--wa-contact-teal);

    background:
        linear-gradient(
            145deg,
            rgba(0, 167, 142, 0.1),
            rgba(54, 200, 138, 0.05)
        );
}

.wa-contact-info__card-icon svg {
    display: block;

    width: 24px;
    height: 24px;
}

.wa-contact-info__card-content {
    min-width: 0;
}

.wa-contact-info__card-label {
    display: block;

    margin-bottom: 5px;

    color: var(--wa-contact-teal);

    font-family: inherit;
    font-size: 10px;
    font-weight: 800;
    line-height: 1.4;
    letter-spacing: 0.07em;
    text-transform: uppercase;
}

.wa-contact-info__card h3 {
    color: var(--wa-contact-dark) !important;

    font-family: inherit !important;
    font-size: 18px !important;
    font-weight: 800 !important;
    line-height: 1.3 !important;
    letter-spacing: -0.02em !important;
    text-transform: none !important;
}

.wa-contact-info__card p {
    margin-top: 7px !important;

    color: var(--wa-contact-text) !important;

    font-family: inherit;
    font-size: 13.5px;
    font-weight: 400;
    line-height: 1.55;
}

.wa-contact-info__card a,
.wa-contact-info__card a:visited {
    display: inline-flex;

    margin-top: 10px;

    color: var(--wa-contact-teal) !important;

    font-family: inherit;
    font-size: 13px;
    font-weight: 800;
    line-height: 1.4;
    text-decoration: none !important;
}

.wa-contact-info__card a:hover,
.wa-contact-info__card a:focus-visible {
    color: var(--wa-contact-teal-hover) !important;
    text-decoration: underline !important;
}


/* =========================================================
   NOTICE
   ========================================================= */

.wa-contact-info__notice {
    display: grid;

    grid-template-columns:
        40px
        minmax(0, 1fr);

    align-items: center;

    gap: 13px;

    margin-top: 18px;
    padding: 15px 17px;

    border: 1px solid rgba(0, 167, 142, 0.16);
    border-radius: 17px;

    background: rgba(0, 167, 142, 0.055);
}

.wa-contact-info__notice-icon {
    display: inline-flex;

    width: 40px;
    height: 40px;

    align-items: center;
    justify-content: center;

    border-radius: 50%;

    color: var(--wa-contact-teal);

    background: rgba(255, 255, 255, 0.78);
}

.wa-contact-info__notice-icon svg {
    display: block;

    width: 20px;
    height: 20px;
}

.wa-contact-info__notice p {
    color: var(--wa-contact-text) !important;

    font-family: inherit;
    font-size: 12.5px;
    font-weight: 500;
    line-height: 1.5;
}


/* =========================================================
   FORM CARD
   ========================================================= */

.wa-contact-form-card {
    position: relative;

    display: block !important;

    width: 100%;

    padding: 38px 38px 40px !important;

    overflow: hidden;

    border: 1px solid rgba(40, 53, 80, 0.11);
    border-radius: 28px !important;

    background: rgba(255, 255, 255, 0.97) !important;

    box-shadow:
        0 24px 58px rgba(31, 51, 75, 0.11);
}

.wa-contact-form-card::before {
    content: "";

    position: absolute;

    top: 0;
    right: 0;
    left: 0;

    height: 4px;

    background:
        linear-gradient(
            90deg,
            var(--wa-contact-teal),
            var(--wa-contact-green)
        );
}


/* =========================================================
   FORM HEADER
   ========================================================= */

.wa-contact-form-head {
    width: 100%;

    margin-bottom: 31px;
}

.wa-contact-form-head__top {
    display: flex;
    align-items: center;

    gap: 10px;

    margin-bottom: 15px;
}

.wa-contact-form-head__icon {
    display: inline-flex;

    width: 40px;
    height: 40px;

    flex: 0 0 40px;

    align-items: center;
    justify-content: center;

    border: 1px solid rgba(0, 167, 142, 0.18);
    border-radius: 50%;

    color: var(--wa-contact-teal);

    background: rgba(0, 167, 142, 0.075);
}

.wa-contact-form-head__icon svg {
    display: block;

    width: 20px;
    height: 20px;
}

.wa-contact-form-head__label {
    color: var(--wa-contact-teal);

    font-family: inherit;
    font-size: 11px;
    font-weight: 800;
    line-height: 1.4;
    letter-spacing: 0.075em;
    text-transform: uppercase;
}

.wa-contact-form-head__title {
    color: var(--wa-contact-dark) !important;

    font-family: inherit !important;
    font-size: 31px !important;
    font-weight: 800 !important;
    line-height: 1.16 !important;
    letter-spacing: -0.035em !important;
    text-transform: none !important;
}

.wa-contact-form-head__description {
    max-width: 610px;

    margin-top: 12px !important;

    color: var(--wa-contact-text) !important;

    font-family: inherit;
    font-size: 14.5px;
    font-weight: 400;
    line-height: 1.62;
}


/* =========================================================
   ELEMENTOR FORM WIDGET
   ========================================================= */

.wa-contact-form {
    width: 100%;
    min-width: 0;
}

.wa-contact-form .elementor-widget-container,
.wa-contact-form .elementor-form {
    width: 100%;
}


/* =========================================================
   REAL FORM GRID
   IMPORTANT: FIELDS ARE INSIDE THIS WRAPPER
   ========================================================= */

.wa-contact-form .elementor-form-fields-wrapper {
    display: grid !important;

    grid-template-columns:
        repeat(
            2,
            minmax(0, 1fr)
        );

    align-items: start;

    column-gap: 16px;
    row-gap: 18px;

    width: 100%;

    margin: 0 !important;
}


/* =========================================================
   FIELD GROUPS
   ========================================================= */

.wa-contact-form
.elementor-form-fields-wrapper
> .elementor-field-group {
    width: 100% !important;
    max-width: none !important;

    margin: 0 !important;
    padding: 0 !important;
}


/* FULL WIDTH FIELDS */

.wa-contact-form
.elementor-form-fields-wrapper
> .elementor-col-100,
.wa-contact-form
.elementor-form-fields-wrapper
> .elementor-field-type-textarea,
.wa-contact-form
.elementor-form-fields-wrapper
> .elementor-field-type-select,
.wa-contact-form
.elementor-form-fields-wrapper
> .elementor-field-type-submit {
    grid-column: 1 / -1;
}


/* =========================================================
   LABELS
   ========================================================= */

.wa-contact-form .elementor-field-label {
    display: block;

    margin: 0 0 8px !important;

    color: var(--wa-contact-dark) !important;

    font-family: inherit !important;
    font-size: 12.5px !important;
    font-weight: 800 !important;
    line-height: 1.4 !important;
}

.wa-contact-form
.elementor-mark-required
.elementor-field-label::after {
    color: var(--wa-contact-teal) !important;
}


/* =========================================================
   INPUTS
   ONLY TEXTUAL FIELDS — NOT RECAPTCHA CONTAINER
   ========================================================= */

.wa-contact-form .elementor-field-textual,
.wa-contact-form input.elementor-field-textual,
.wa-contact-form select.elementor-field-textual,
.wa-contact-form textarea.elementor-field-textual {
    display: block;

    width: 100%;

    min-width: 0;
    min-height: 56px;

    margin: 0 !important;
    padding: 14px 16px !important;

    border: 1px solid var(--wa-contact-border) !important;
    border-radius: 14px !important;

    outline: 0;

    color: var(--wa-contact-dark) !important;

    background:
        linear-gradient(
            180deg,
            #fbfcfc 0%,
            #f7fafa 100%
        ) !important;

    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.75) !important;

    font-family: inherit !important;
    font-size: 14.5px !important;
    font-weight: 400 !important;
    line-height: 1.45 !important;

    transition:
        border-color 0.2s ease,
        background 0.2s ease,
        box-shadow 0.2s ease;
}

.wa-contact-form textarea.elementor-field-textual {
    min-height: 154px;

    padding-top: 15px !important;

    resize: vertical;
}

.wa-contact-form select.elementor-field-textual {
    cursor: pointer;
}

.wa-contact-form .elementor-field-textual:hover {
    border-color: var(--wa-contact-border-strong) !important;

    background: #ffffff !important;
}

.wa-contact-form .elementor-field-textual:focus {
    border-color: var(--wa-contact-teal) !important;

    background: #ffffff !important;

    box-shadow:
        0 0 0 4px rgba(0, 167, 142, 0.09) !important;
}

.wa-contact-form .elementor-field-textual::placeholder {
    color: #929dad !important;

    opacity: 1;
}


/* =========================================================
   TEXTAREA SEPARATION
   ========================================================= */

.wa-contact-form
.elementor-field-type-textarea {
    margin-top: 2px !important;
}


/* =========================================================
   RECAPTCHA V3
   REMOVE EMPTY VISUAL ROW
   ========================================================= */

.wa-contact-form
.elementor-field-type-recaptcha_v3 {
    position: absolute !important;

    width: 1px !important;
    height: 1px !important;

    margin: 0 !important;
    padding: 0 !important;

    overflow: hidden !important;

    clip: rect(0 0 0 0) !important;
    clip-path: inset(50%) !important;

    white-space: nowrap !important;
}

.wa-contact-form
.elementor-field-type-recaptcha_v3
.elementor-field {
    width: 1px !important;
    height: 1px !important;

    min-height: 0 !important;

    margin: 0 !important;
    padding: 0 !important;

    border: 0 !important;

    background: transparent !important;

    box-shadow: none !important;
}


/* =========================================================
   SUBMIT GROUP
   ========================================================= */

.wa-contact-form
.elementor-field-type-submit {
    margin-top: 5px !important;
}


/* =========================================================
   SUBMIT BUTTON
   ========================================================= */

.wa-contact-form
.elementor-button[type="submit"],
.wa-contact-form
.elementor-field-type-submit
.elementor-button {
    display: inline-flex;

    width: 100%;
    min-height: 56px;

    align-items: center;
    justify-content: center;

    margin: 0;
    padding: 15px 25px !important;

    border: 1px solid var(--wa-contact-teal) !important;
    border-radius: 999px !important;

    color: #ffffff !important;

    background: var(--wa-contact-teal) !important;
    background-color: var(--wa-contact-teal) !important;
    background-image: none !important;

    box-shadow:
        0 14px 30px rgba(0, 167, 142, 0.24);

    font-family: inherit !important;
    font-size: 13px !important;
    font-weight: 800 !important;
    line-height: 1.3 !important;
    letter-spacing: 0.045em !important;
    text-transform: uppercase !important;

    cursor: pointer;

    transition:
        color 0.2s ease,
        border-color 0.2s ease,
        background-color 0.2s ease,
        transform 0.2s ease,
        box-shadow 0.2s ease;
}

.wa-contact-form
.elementor-button[type="submit"]:hover,
.wa-contact-form
.elementor-button[type="submit"]:focus-visible {
    border-color: var(--wa-contact-teal-hover) !important;

    color: #ffffff !important;

    background: var(--wa-contact-teal-hover) !important;
    background-color: var(--wa-contact-teal-hover) !important;
    background-image: none !important;

    box-shadow:
        0 18px 36px rgba(0, 143, 122, 0.3);

    transform: translateY(-2px);
}

.wa-contact-form
.elementor-button[type="submit"]:active {
    border-color: #007c6b !important;

    background: #007c6b !important;
    background-color: #007c6b !important;
    background-image: none !important;

    box-shadow:
        0 9px 20px rgba(0, 124, 107, 0.22);

    transform: translateY(0);
}

.wa-contact-form
.elementor-button[type="submit"]:focus-visible {
    outline: 3px solid rgba(0, 167, 142, 0.23);
    outline-offset: 3px;
}


/* =========================================================
   FORM MESSAGES
   ========================================================= */

.wa-contact-form .elementor-message {
    grid-column: 1 / -1;

    margin: 16px 0 0 !important;
    padding: 14px 16px;

    border-radius: 13px;

    font-family: inherit;
    font-size: 13px;
    font-weight: 600;
    line-height: 1.5;
}

.wa-contact-form .elementor-message-success {
    color: #126b5b;

    background: rgba(54, 200, 138, 0.12);
}

.wa-contact-form .elementor-message-danger {
    color: #9b2e3a;

    background: rgba(194, 57, 73, 0.1);
}


/* =========================================================
   MEDIUM DESKTOP
   ========================================================= */

@media (max-width: 1320px) {

    .wa-contact-main {
        padding: 88px 0 96px;
    }

    .wa-contact-main__container {
        grid-template-columns:
            minmax(330px, 0.8fr)
            minmax(500px, 1.2fr);

        gap: 52px;

        width: calc(100% - 144px) !important;
    }

    .wa-contact-info__title {
        font-size: clamp(
            35px,
            3.2vw,
            44px
        ) !important;
    }

    .wa-contact-form-card {
        padding: 34px 34px 37px !important;
    }

    .wa-contact-form
    .elementor-form-fields-wrapper {
        column-gap: 14px;
        row-gap: 16px;
    }
}


/* =========================================================
   TABLET
   ========================================================= */

@media (max-width: 1024px) {

    .wa-contact-main {
        padding: 78px 0 86px;
    }

    .wa-contact-main__container {
        grid-template-columns: 1fr;

        gap: 46px;

        width: calc(100% - 96px) !important;
    }

    .wa-contact-main__intro {
        position: static;
    }

    .wa-contact-info {
        max-width: 760px;
    }

    .wa-contact-info__description {
        max-width: 680px;
    }

    .wa-contact-info__cards {
        display: grid;

        grid-template-columns:
            repeat(
                2,
                minmax(0, 1fr)
            );
    }

    .wa-contact-info__card:last-child {
        grid-column: 1 / -1;
    }

    .wa-contact-info__notice {
        max-width: 760px;
    }

    .wa-contact-form-card {
        max-width: 820px;
    }
}


/* =========================================================
   MOBILE
   ========================================================= */

@media (max-width: 767px) {

    .wa-contact-main {
        padding: 66px 0 74px;
    }

    .wa-contact-main__container {
        gap: 38px;

        width: calc(100% - 48px) !important;
    }

    .wa-contact-info__eyebrow {
        gap: 10px;

        margin-bottom: 16px;

        font-size: 11px;
    }

    .wa-contact-info__eyebrow-line {
        flex-basis: 28px;

        width: 28px;
        height: 2px;
    }

    .wa-contact-info__title {
        font-size: clamp(
            31px,
            8.5vw,
            39px
        ) !important;

        line-height: 1.1 !important;
    }

    .wa-contact-info__description {
        margin-top: 19px !important;

        font-size: 15.5px;
        line-height: 1.65;
    }

    .wa-contact-info__cards {
        display: flex;
        flex-direction: column;

        gap: 13px;

        margin-top: 26px;
    }

    .wa-contact-info__card {
        grid-template-columns:
            48px
            minmax(0, 1fr);

        gap: 14px;

        padding: 18px 17px;

        border-radius: 18px;
    }

    .wa-contact-info__card:hover {
        transform: none;
    }

    .wa-contact-info__card-icon {
        width: 48px;
        height: 48px;
    }

    .wa-contact-info__card h3 {
        font-size: 17px !important;
    }

    .wa-contact-info__card p {
        font-size: 13.5px;
    }

    .wa-contact-info__notice {
        grid-template-columns:
            38px
            minmax(0, 1fr);

        padding: 14px 15px;
    }

    .wa-contact-info__notice-icon {
        width: 38px;
        height: 38px;
    }

    .wa-contact-info__notice p {
        font-size: 13px;
    }

    .wa-contact-form-card {
        padding: 28px 22px 29px !important;

        border-radius: 23px !important;
    }

    .wa-contact-form-head {
        margin-bottom: 25px;
    }

    .wa-contact-form-head__title {
        font-size: 27px !important;
    }

    .wa-contact-form-head__description {
        font-size: 14.5px;
    }

    .wa-contact-form
    .elementor-form-fields-wrapper {
        grid-template-columns: 1fr;

        column-gap: 0;
        row-gap: 15px;
    }

    .wa-contact-form
    .elementor-form-fields-wrapper
    > .elementor-field-group {
        grid-column: 1 !important;

        width: 100% !important;
    }

    .wa-contact-form .elementor-field-textual,
    .wa-contact-form input.elementor-field-textual,
    .wa-contact-form select.elementor-field-textual,
    .wa-contact-form textarea.elementor-field-textual {
        min-height: 54px;

        padding: 14px 15px !important;

        font-size: 15px !important;
    }

    .wa-contact-form textarea.elementor-field-textual {
        min-height: 142px;
    }

    .wa-contact-form
    .elementor-field-type-submit {
        margin-top: 3px !important;
    }

    .wa-contact-form
    .elementor-button[type="submit"] {
        min-height: 55px;
    }
}


/* =========================================================
   NARROW MOBILE
   ========================================================= */

@media (max-width: 419px) {

    .wa-contact-main {
        padding: 61px 0 68px;
    }

    .wa-contact-main__container {
        width: calc(100% - 40px) !important;
    }

    .wa-contact-info__title {
        font-size: 30px !important;
    }

    .wa-contact-info__description {
        font-size: 15px;
    }

    .wa-contact-info__card {
        grid-template-columns:
            44px
            minmax(0, 1fr);

        padding: 17px 15px;
    }

    .wa-contact-info__card-icon {
        width: 44px;
        height: 44px;
    }

    .wa-contact-info__card-icon svg {
        width: 22px;
        height: 22px;
    }

    .wa-contact-info__card h3 {
        font-size: 16.5px !important;
    }

    .wa-contact-form-card {
        padding: 25px 18px 26px !important;
    }

    .wa-contact-form-head__title {
        font-size: 25px !important;
    }

    .wa-contact-form
    .elementor-form-fields-wrapper {
        row-gap: 14px;
    }
}


/* =========================================================
   REDUCED MOTION
   ========================================================= */

@media (prefers-reduced-motion: reduce) {

    .wa-contact-info__card,
    .wa-contact-form
    .elementor-button[type="submit"],
    .wa-contact-form
    .elementor-field-textual {
        transition: none;
    }
}