.rsite .contact-direct-links { display:flex; flex-direction:column; gap:10px; align-items:flex-start; }
.rsite .contact-direct-links a { min-height:44px; display:inline-flex; align-items:center; color:var(--terra-text); font-weight:600; }
.rsite .contact-form-section { display:grid; grid-template-columns:minmax(240px,.8fr) minmax(0,1.2fr); align-items:start; gap:64px; border-top:1px solid var(--line); }
.rsite .contact-form-intro h2 { margin:0; }
.rsite .contact-form-intro .site-lede { margin-top:18px; }
.rsite .contact-form-panel { min-width:0; padding:30px; border:1px solid var(--line); background:#FFFFFF; }
.rsite .contact-form-panel form { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px 16px; }
.rsite .contact-field { min-width:0; display:grid; align-content:start; gap:7px; }
.rsite .contact-field[data-field="categoria"],
.rsite .contact-field[data-field="mensagem"],
.rsite .contact-consent-field,
.rsite .contact-form-error,
.rsite .contact-submit,
.rsite .contact-form-note { grid-column:1/-1; }
.rsite .contact-field label { color:#555A53; font-size:14px; font-weight:600; }
.rsite .contact-field input,
.rsite .contact-field select,
.rsite .contact-field textarea { width:100%; min-height:50px; padding:12px 14px; border:1px solid #C4C9C5; border-radius:8px; background:#FFFFFF; color:#1E1E1E; font:inherit; font-size:16px; line-height:1.45; }
.rsite .contact-field textarea { min-height:132px; resize:vertical; }
.rsite .contact-field input:focus,
.rsite .contact-field select:focus,
.rsite .contact-field textarea:focus { outline:3px solid rgba(210,110,41,.22); border-color:#9D4717; }
.rsite .contact-field.is-invalid input,
.rsite .contact-field.is-invalid select,
.rsite .contact-field.is-invalid textarea { border-color:#B3372A; }
.rsite .contact-field-error { display:none; color:#9C2F24; font-size:13px; line-height:1.4; }
.rsite .contact-field.is-invalid .contact-field-error { display:block; }
.rsite .contact-consent-field label { display:grid; grid-template-columns:24px minmax(0,1fr); align-items:start; gap:11px; color:#555A53; font-size:14px; line-height:1.5; cursor:pointer; }
.rsite .contact-consent-field input { width:22px; height:22px; margin:1px 0 0; accent-color:#9D4717; }
.rsite .contact-consent-field a { color:#8B3F14; font-weight:600; }
.rsite .contact-consent-field.is-invalid label { color:#9C2F24; }
.rsite .contact-form-error { margin:0; padding:12px 14px; border-left:3px solid #B3372A; background:#F9E8E5; color:#84251D; font-size:14px; }
.rsite .contact-submit { justify-self:start; min-width:220px; cursor:pointer; }
.rsite .contact-submit:disabled { opacity:.65; cursor:wait; }
.rsite .contact-form-note { color:#6A6D6A; font-size:12px; line-height:1.45; }
.rsite .contact-form-success h3 { margin:0 0 10px; }
.rsite .contact-form-success p,
.rsite .contact-form-error-state p { color:#555A53; }
.rsite .contact-form-success a,
.rsite .contact-form-error-state a { color:#8B3F14; font-weight:600; }
.rsite .contact-form-error-state { margin-top:18px; padding:14px; border-left:3px solid #B3372A; background:#F9E8E5; }
.rsite .contact-honeypot { position:absolute !important; left:-10000px !important; width:1px !important; height:1px !important; overflow:hidden !important; }
.rsite .contact-noscript { width:min(1200px,calc(100% - 40px)); margin:0 auto 32px; padding:16px; background:#FFFFFF; border:1px solid #E0E1DC; }
.rsite .contact-noscript a { color:#8B3F14; font-weight:600; }

.contact-dialog { width:min(760px,calc(100vw - 32px)); max-width:760px; max-height:min(92dvh,900px); padding:24px; overflow:auto; border:1px solid #C4C9C5; background:#F7F8F5; color:#1E1E1E; box-shadow:0 24px 64px rgba(30,30,30,.24); }
.contact-dialog::backdrop { background:rgba(15,19,16,.62); }
.contact-dialog :focus-visible { outline:3px solid #D26E29; outline-offset:3px; }
.contact-dialog-head { display:flex; align-items:flex-start; justify-content:space-between; gap:20px; margin-bottom:20px; }
.contact-dialog-head h2 { font-size:clamp(24px,4vw,32px); line-height:1.16; }
.contact-dialog-close { min-width:44px; min-height:44px; padding:8px 12px; border:1px solid #C4C9C5; background:#FFFFFF; color:#1E1E1E; font:inherit; cursor:pointer; }
.contact-dialog-loading { padding:10px 0 18px; color:#555A53; }
.contact-dialog .contact-form-panel { padding:0; border:0; background:transparent; }
.contact-dialog-channels { display:flex; flex-wrap:wrap; gap:12px 24px; margin-top:20px; padding-top:16px; border-top:1px solid #E0E1DC; }
.contact-dialog-channels a { min-height:44px; display:inline-flex; align-items:center; color:#8B3F14; font-weight:600; }

@media (max-width:820px) {
 .rsite .contact-form-section { grid-template-columns:minmax(0,1fr); gap:28px; }
}
@media (max-width:520px) {
 .rsite .contact-form-panel { padding:20px; }
 .rsite .contact-form-panel form { grid-template-columns:minmax(0,1fr); gap:16px; }
 .rsite .contact-field[data-field="categoria"],
 .rsite .contact-field[data-field="mensagem"],
 .rsite .contact-consent-field,
 .rsite .contact-form-error,
 .rsite .contact-submit,
 .rsite .contact-form-note { grid-column:1; }
 .rsite .contact-submit { width:100%; }
 .contact-dialog { width:calc(100vw - 20px); max-height:calc(100dvh - 20px); padding:18px; }
 .contact-dialog-head { margin-bottom:16px; }
 .contact-dialog-channels { flex-direction:column; gap:4px; }
}
@media (prefers-reduced-motion:reduce) {
 .contact-dialog *, .contact-dialog *::before, .contact-dialog *::after { scroll-behavior:auto; transition:none; }
}
