.contact-page main { background: var(--paper); }
.contact-page .contact-content { max-width: 1100px; padding-bottom: 58px; }
.contact-page .page-intro { position: relative; padding: 48px 20px 28px; }
.contact-page .page-intro .eyebrow { display: flex; align-items: center; gap: 20px; letter-spacing: .28em; }
.contact-page .page-intro .eyebrow::after { content: ''; width: 130px; height: 1px; background: var(--line); }
.contact-page .page-intro h1 { max-width: 78%; font-size: clamp(2.8rem, 5.8vw, 5rem); margin: 30px 0 25px; }
.contact-page .page-intro p { position: relative; max-width: 67ch; font-size: 1.12rem; line-height: 1.65; }
.contact-still-life { position: absolute; right: -5px; top: 0; width: 300px; height: 220px; object-fit: contain; opacity: .94; pointer-events: none; }
.contact-form { padding: 120px 54px 44px; border: 0; border-radius: 0; background: transparent url('../assets/contact-stationery.png') center / 100% 100% no-repeat; }
#contact-required { margin: 0 0 20px; color: var(--muted); font-size: .85rem; }
.contact-form-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; }
.contact-field { min-width: 0; }
.contact-field-wide { grid-column: 1 / -1; }
.contact-field label { display: block; color: var(--ink); margin-bottom: 7px; }
.contact-field label span { color: var(--muted); font-size: .85rem; }
.contact-form :is(input,select,textarea) { display: block; width: 100%; min-height: 48px; padding: 11px 13px; border: 1px solid var(--muted); border-radius: 7px; background: var(--paper); background: color-mix(in srgb, var(--paper) 85%, transparent); color: var(--ink); font-size: 1rem; line-height: 1.5; }
.contact-form textarea { height: 150px; min-height: 150px; resize: vertical; }
.contact-form :is(input,select,textarea):focus-visible { outline: 3px solid var(--olive); outline-offset: 3px; }
.contact-form [aria-invalid="true"] { border: 2px solid #87464c; }
.contact-field-error { color: #87464c; font-size: .9rem; margin: 6px 0 0; }
.contact-field-error:empty { display: none; }
#contact-message-help { color: var(--muted); font-size: .85rem; margin: 7px 0 0; font-style: italic; text-align: right; }
.contact-form .contact-field:has(textarea) { padding-right: 85px; }
.contact-form .contact-honeypot { display: none; }
.contact-privacy { display: flex; align-items: flex-start; gap: 14px; font-size: .9rem; font-style: italic; line-height: 1.6; color: var(--muted); margin: 24px 20px 0; }
.contact-privacy > svg { flex-shrink: 0; margin-top: 3px; color: var(--olive); }
.contact-privacy a { text-decoration: underline; }
.contact-status { padding: 12px 15px; border-left: 3px solid var(--olive); background: var(--paper); margin: 0 0 24px; font-size: .95rem; }
.contact-status[data-state="error"] { border-color: #87464c; background: #f3e8e6; }
.contact-form .button { min-height: 48px; margin-top: 24px; padding-inline: 28px; border-radius: 8px 5px 7px 4px; cursor: pointer; background: var(--olive); }
.contact-form .button svg { width: 18px; height: 18px; flex-shrink: 0; }
.contact-form .button:focus-visible { outline: 3px solid var(--olive); outline-offset: 4px; }
.contact-form .button:disabled { cursor: wait; opacity: .65; }
.contact-form .button:disabled[data-unavailable] { cursor: not-allowed; }
@media (max-width: 800px) {
  .contact-still-life { width: 220px; height: 180px; }
  .contact-page .page-intro h1 { max-width: 75%; }
  .contact-form { padding: 120px 32px 44px; }
  .contact-form .contact-field:has(textarea) { padding-right: 45px; }
}
@media (max-width: 600px) {
  .contact-page .page-intro { padding: 30px 0 20px; }
  .contact-still-life { width: 155px; height: 120px; right: -8px; top: 8px; }
  .contact-page .page-intro .eyebrow { font-size: .65rem; gap: 8px; letter-spacing: .15em; }
  .contact-page .page-intro .eyebrow::after { width: 25px; }
  .contact-page .page-intro h1 { max-width: none; margin-top: 70px; font-size: clamp(2.25rem, 9.3vw, 3.2rem); }
  .contact-page .page-intro p { font-size: 1rem; }
  .contact-form { padding: 150px 30px 64px 38px; background-size: auto 100%; background-position: left top; }
  .contact-form-grid { grid-template-columns: 1fr; gap: 20px; }
  .contact-form .contact-field:has(textarea) { padding-right: 0; }
  .contact-privacy { margin-inline: 4px; font-size: .85rem; gap: 10px; }
  .contact-page .contact-content { padding-bottom: 40px; }
}
html[data-asv-simple="true"] .contact-form, html[data-asv-images="true"] .contact-form { background-image: none; background-color: var(--line); padding-top: 32px; }
html[data-asv-images="true"] .contact-still-life, html[data-asv-simple="true"] .contact-still-life { display: none; }
