/* Contact flow: local assets and existing POST contract. */
.tc-contact-anchor { position: absolute; top: -90px; left: 0; width: 1px; height: 1px; pointer-events: none; }
.tc-contact { padding-block: clamp(48px, 6vw, 84px); background: #f5f9fa !important; }
.tc-contact > .container > .heading-title { max-width: 720px; margin: 0 auto 2rem; }
.tc-contact-form { padding: clamp(1.2rem, 3vw, 2rem); border: 1px solid #d7e5e9; border-radius: 16px; background: #fff; box-shadow: 0 8px 28px rgba(10,40,60,.05); }
.tc-contact-form label { display: block; color: #18384b; font-size: .95rem; font-weight: 700; margin-bottom: .5rem; }
.tc-contact-form .form-control { height: auto; min-height: 48px; border: 1px solid #9dafbb; border-radius: 7px; background: #fff; color: #18384b; padding: .75rem; font-size: 1rem; }
.tc-contact-form textarea.form-control { resize: vertical; min-height: 150px; }
.tc-contact-form .form-group { margin-bottom: 1.2rem; }
.tc-contact-note { font-size: .9rem; color: #475f70; line-height: 1.6; }
.tc-contact-brief { margin-block: 1rem 1.5rem; padding: 1rem; border: 1px solid #c6dfd6; border-radius: 8px; background: #edf8f3; }
.tc-contact-brief-btn { display: inline-block; min-height: 44px; padding: .55rem .85rem; margin-right: .7rem; border: 1px solid #276e53; border-radius: 6px; background: #fff; color: #14573f; font: inherit; font-size: .9rem; font-weight: 700; cursor: pointer; }
.tc-contact-brief > a { display: inline-block; padding-block: .7rem; color: #14573f; font-size: .9rem; text-decoration: underline; text-underline-offset: 3px; }
.tc-contact-brief p { margin: .65rem 0 0; font-size: .85rem; color: #34584b; line-height: 1.55; }
.tc-contact-draft { margin-top: 1rem; padding-top: 1rem; border-top: 1px solid #c6dfd6; }
.tc-contact-draft textarea { margin-top: .7rem; }
.tc-contact-draft .tc-contact-brief-btn { margin-top: .7rem; }
.tc-contact-draft .is-over-limit { color: #a12832; font-weight: 700; }
.tc-contact [hidden] { display: none !important; }
.tc-contact :is(button, a, textarea, input, select):focus-visible { outline: 3px solid #20764d; outline-offset: 3px; }
.tc-contact-errors { padding: .8rem; margin-bottom: 1rem; border-left: 3px solid #ad2e35; background: #fff1f1; color: #8a2028; font-weight: 600; }
.tc-field-error, .tc-contact-form .text-danger { display: block; color: #a12832 !important; font-size: .9rem; margin-top: .35rem; }
.tc-field-error:empty { display: none; }
.tc-contact-form [aria-invalid="true"] { border-color: #b1323a; }
.tc-message-meta { display: flex; justify-content: space-between; gap: .8rem; margin-top: .5rem; color: #4a6170; font-size: .8rem; line-height: 1.5; }
#tc-message-count { white-space: nowrap; }
.tc-contact-meta { padding: 2rem; border-radius: 14px; background: #0d3047; color: #e9f4f8; margin-left: .8rem; }
.tc-contact-meta .heading-title span { color: #91e2bf; font-size: .85rem; }
.tc-contact-meta h3 { color: #fff; font-size: 1.8rem; margin-block: .8rem 1.5rem; }
.tc-contact-meta p { color: #e9f4f8; line-height: 1.65; overflow-wrap: anywhere; }
.tc-contact-meta a { color: #fff; text-decoration: underline; text-underline-offset: 4px; }
@media (max-width: 767px) { .tc-contact-meta { margin: 1.5rem 0 0; padding: 1.5rem; } .tc-message-meta { flex-wrap: wrap; } }
@media (max-width: 767px) {
    .tc-contact p, .tc-contact-note, .tc-contact-brief p, .tc-message-meta,
    .tc-contact-errors, .tc-field-error, .tc-contact-form .text-danger { font-size: max(14px, 1em); }
    .tc-contact-form label, .tc-contact-meta .heading-title span { font-size: max(12px, .95rem); }
    .tc-contact-form .form-control, .tc-contact-brief-btn { font-size: max(16px, 1rem); }
    .tc-contact-brief > a { font-size: max(14px, .9rem); }
}
