/* Presentation for the existing Runtime contact form. */
.tg-contact-intro { padding: 143px 0 48px; background: var(--tg-paper); border-bottom: 1px solid var(--color-line); }
.tg-contact-intro .eyebrow { color: var(--color-primary); margin: 0 0 16px; }
.tg-contact-intro h1 { margin: 0; max-width: 21ch; color: var(--color-text); font-family: "Fraunces", Georgia, serif; font-size: clamp(38px, 4vw, 56px); font-weight: 500; line-height: 1.12; letter-spacing: -.045em; }
.tg-contact-intro__copy { max-width: 62ch; margin: 20px 0 0; color: var(--color-muted); font-size: 15px; line-height: 1.85; }
.tg-contact-section { padding: 48px 0 72px; }
.page-contact .contact-layout { grid-template-columns: minmax(0, 1.5fr) minmax(0, 1fr); gap: 40px; }
.tg-contact-form { min-width: 0; padding: 32px; border: 1px solid var(--color-line); border-radius: 16px; background: var(--color-white); box-shadow: var(--shadow-sm); }
.tg-contact-form__heading { margin-bottom: 26px; }
.tg-contact-form__heading h2 { margin: 0 0 8px; font-size: 22px; letter-spacing: -.03em; }
.tg-contact-form__heading p { color: var(--color-muted); font-size: 13px; margin: 0; line-height: 1.7; }
.page-contact .contact-layout [data-theme-component="form"] { padding: 0; border: 0; border-radius: 0; gap: 22px; background: transparent; }
.page-contact .contact-layout [data-field] > label { font-size: 13px; font-weight: 600; }
.page-contact .contact-layout [data-field] :is(input, textarea, select) { border-radius: 7px; font-size: 16px; }
.page-contact .contact-layout [data-field] :is(input, textarea)::placeholder { color: var(--color-muted); font-size: 14px; opacity: 1; }
.page-contact .contact-layout [data-field] textarea { min-height: 145px; }
.page-contact .contact-layout [aria-invalid="true"] { border-color: var(--tg-danger); }
.page-contact .contact-layout [data-faster-form-field-error-for] { color: var(--tg-danger); font-size: 13px; font-weight: 500; }
.page-contact .contact-layout button[type="submit"] { color: var(--tg-button-ink); justify-self: start; min-width: 176px; border-radius: 7px; font-size: 14px; font-weight: 600; }
.page-contact [data-faster-form-captcha]:empty { display: none; }
.page-contact :is([data-faster-form-success], [data-faster-form-error]) { margin: 0; padding: 14px 16px; border: 1px solid currentColor; border-radius: 8px; font-size: 14px; line-height: 1.7; }
.page-contact [data-faster-form-success] { color: var(--color-primary); background: var(--color-primary-light); }
.page-contact [data-faster-form-error] { color: var(--tg-danger); background: var(--tg-error-bg); }
.tg-contact-privacy { font-size: 12px; line-height: 1.75; color: var(--color-muted); margin: 20px 0 0; }
.page-contact .contact-card { padding: 32px; background: var(--tg-paper); border: 1px solid var(--color-line); border-radius: 16px; box-shadow: none; }
.tg-contact-icon { display: grid; place-items: center; width: 46px; height: 46px; color: var(--color-primary); background: var(--tg-sage); border-radius: 50%; margin-bottom: 24px; }
.tg-contact-icon svg { width: 24px; height: 24px; fill: none; stroke: currentColor; stroke-width: 1.5; stroke-linecap: round; stroke-linejoin: round; }
.page-contact .contact-card h2 { font-family: "Fraunces", Georgia, serif; font-weight: 500; font-size: 30px; letter-spacing: -.035em; line-height: 1.2; margin: 0 0 16px; }
.page-contact .contact-card p { font-size: 14px; line-height: 1.8; margin: 0; }
.tg-contact-steps { list-style: none; counter-reset: contact-step; padding: 0; margin: 27px 0; display: grid; gap: 24px; }
.tg-contact-steps li { position: relative; padding-inline-start: 40px; counter-increment: contact-step; }
.tg-contact-steps li::before { content: counter(contact-step, decimal-leading-zero); position: absolute; inset-inline-start: 0; top: 1px; color: var(--color-primary); font-size: 12px; font-weight: 600; }
.tg-contact-steps strong { display: block; font-size: 13px; margin-bottom: 5px; }
.tg-contact-steps span { display: block; color: var(--color-muted); font-size: 13px; line-height: 1.8; }
.page-contact .contact-card .tg-contact-note { border-top: 1px solid var(--color-line); padding-top: 20px; font-size: 12px; }
@media (max-width: 860px) {
  .tg-contact-intro { padding-top: 116px; }
  .page-contact .contact-layout { grid-template-columns: 1fr; gap: 26px; }
  .tg-contact-section { padding-top: 32px; }
}
@media (max-width: 560px) {
  .page-contact #main-content .container { width: calc(100% - 40px); }
  .tg-contact-intro { padding-bottom: 34px; }
  .tg-contact-intro h1 { font-size: 39px; }
  .tg-contact-intro__copy { font-size: 14px; margin-top: 18px; }
  .tg-contact-form, .page-contact .contact-card { padding: 24px 20px; border-radius: 12px; }
  .page-contact .contact-layout button[type="submit"] { width: 100%; min-width: 0; }
  .tg-contact-section { padding-bottom: 42px; }
}
