/* Estilos exclusivos da página Contato. */
.contact-page {
    max-width:960px;
    padding-bottom:22px;
}
.contact-page .page-intro {
    padding-block:26px 16px;
}
.contact-page .page-intro .eyebrow {
    margin-bottom:8px;
    font-size:.625rem;
    line-height:1.45;
    letter-spacing:.11em;
}
.contact-page .page-intro h1 {
    font-size:clamp(1.75rem,2.1vw,2rem);
    line-height:1.15;
}
.contact-page .page-intro>p:not(.eyebrow) {
    margin-top:6px;
    font-size:.875rem;
    line-height:1.5;
}
.contact-page .contact-layout.has-form {
    display:grid;
    grid-template-columns:minmax(0,1.22fr) minmax(0,1fr);
    align-items:start;
    gap:24px;
    padding-top:2px;
}
.contact-page .contact-form-panel,.contact-page .contact-information {
    min-width:0;
}
.contact-page .contact-form-panel {
    padding:16px;
    border:1px solid color-mix(in srgb,var(--color-text) 10%,var(--color-background));
    background:color-mix(in srgb,var(--color-background) 99%,var(--color-text));
    border-radius:6px;
    scroll-margin-top:24px;
}
.contact-page .contact-form-header {
    margin-bottom:12px;
    overflow-wrap:anywhere;
}
.contact-page .contact-form-header h2 {
    font-size:clamp(1.25rem,1.55vw,1.375rem);
    line-height:1.2;
    letter-spacing:-.025em;
}
.contact-page .contact-form-header p {
    margin-top:6px;
    font-size:.8125rem;
    line-height:1.5;
    white-space:pre-line;
}
.contact-page .has-form .contact-details {
    grid-template-columns:minmax(0,1fr);
    border-top-color:color-mix(in srgb,var(--color-text) 8%,var(--color-background));
}
.contact-page .has-form .contact-detail {
    padding-block:12px;
    gap:10px;
    border-bottom-color:color-mix(in srgb,var(--color-text) 8%,var(--color-background));
}
.contact-page .has-form .contact-detail>.icon {
    width:16px;
    height:16px;
    margin-top:2px;
}
.contact-page .has-form .contact-detail h2 {
    margin-bottom:3px;
    font-size:.8125rem;
    font-weight:600;
    line-height:1.4;
}
.contact-page .has-form .contact-detail p,.contact-page .has-form .contact-detail a {
    font-size:.8125rem;
    line-height:1.5;
}
.contact-page .social-links {
    margin-top:10px;
    gap:6px 18px;
}
.contact-page .social-links .text-link {
    min-height:30px;
    font-size:.8125rem;
    line-height:1.4;
    gap:6px;
}
.contact-page .social-links .icon {
    width:14px;
    height:14px;
}
.contact-page .contact-form .form-required {
    margin-bottom:10px;
    font-size:.6875rem;
    line-height:1.45;
}
.contact-page .contact-form .form-grid {
    gap:12px;
}
.contact-page .contact-form .field label {
    font-size:.8125rem;
    line-height:1.4;
    margin-bottom:4px;
}
.contact-page .contact-form .field input,.contact-page .contact-form .field textarea,.contact-page .contact-form .field select {
    display:block;
    width:100%;
    min-width:0;
    min-height:42px;
    padding:8px 10px;
    border:1px solid color-mix(in srgb,var(--color-text) 16%,var(--color-background));
    border-radius:4px;
    background:var(--color-background);
    color:var(--color-text);
    font:inherit;
    font-size:.875rem;
    line-height:1.4;
}
.contact-page .contact-form .field textarea {
    height:100px;
    min-height:90px;
}
.contact-page .contact-form .field [aria-invalid=true] {
    border-color:var(--color-primary);
}
.contact-page .contact-form :is(input,textarea,select,button):focus-visible {
    outline:2px solid var(--color-primary);
    outline-offset:3px;
}
.contact-page .contact-form .form-bottom {
    align-items:flex-start;
    flex-direction:column;
    gap:10px;
    margin-top:12px;
}
.contact-page .contact-form .form-bottom p {
    max-width:none;
    font-size:.6875rem;
    line-height:1.5;
    gap:6px;
}
.contact-page .contact-form .form-bottom p .icon {
    width:13px;
    height:13px;
}
.contact-page .contact-form .button {
    max-width:100%;
    min-height:40px;
    padding:8px 15px;
    border-radius:5px;
    font-size:.8125rem;
    line-height:1.3;
    gap:10px;
    white-space:normal;
    overflow-wrap:anywhere;
}
.contact-page .contact-form .button .icon {
    width:16px;
    height:16px;
}
.contact-page .form-feedback {
    white-space:pre-line;
}
@media(max-width:1000px) {
    .contact-page .contact-layout.has-form {
        grid-template-columns:minmax(0,1fr);
        gap:22px;
    }
    .contact-page .has-form .contact-details {
        grid-template-columns:repeat(2,minmax(0,1fr));
    }
    .contact-page .contact-form .field input,.contact-page .contact-form .field select {
        min-height:48px;
        padding-block:10px;
    }
    .contact-page .contact-form .field input,.contact-page .contact-form .field select,.contact-page .contact-form .field textarea {
        font-size:1rem;
    }
    .contact-page .contact-form .field textarea {
        height:112px;
        min-height:112px;
    }
    .contact-page .contact-form .field label {
        font-size:.875rem;
    }
    .contact-page .contact-form-header p {
        font-size:.875rem;
    }
    .contact-page .contact-form .button {
        min-height:48px;
        font-size:.875rem;
    }
}
@media(max-width:580px) {
    .contact-page .page-intro {
        padding-block:22px 16px;
    }
    .contact-page .page-intro h1 {
        font-size:1.625rem;
    }
    .contact-page .contact-form-panel {
        padding:16px 14px;
    }
    .contact-page .has-form .contact-details {
        grid-template-columns:minmax(0,1fr);
    }
    .contact-page .contact-form .button {
        width:100%;
    }
    .contact-page .social-links .text-link {
        min-height:44px;
    }
}
