/* DS3 Bone reading surface with the permitted Ink threshold band.
   Hero spacing/type follow the website archetype pg-hero; PageHeader stays canonical. */
.contact-hero .fv-ph{padding:var(--space-11) var(--g) 72px}
.contact-hero .fv-disp{font:300 calc(var(--fx-mark) * 1.05)/1 var(--font-serif);letter-spacing:-.01em}
.contact-hero{margin-bottom:var(--space-10)}
.contact-layout{display:grid;grid-template-columns:minmax(180px,1fr) minmax(0,640px) minmax(0,.55fr);gap:56px;padding:0 var(--g) 80px}
.contact-context{border-top:1px solid var(--rule-hairline);padding-top:18px;font:var(--type-ui)}
.contact-context p{margin:0 0 12px}
.contact-main{min-width:0;border-top:1px solid var(--rule-hairline);padding-top:18px}
.contact-required{margin:0 0 28px}
.contact-field{margin-bottom:var(--space-7)}
.contact-field label{display:flex;justify-content:space-between;gap:12px;font:500 14px/1.5 var(--font-sans);margin-bottom:8px}
.contact-optional{font-weight:400;color:var(--fg-70)}
.contact-field input,.contact-field select,.contact-field textarea{display:block;width:100%;min-height:48px;border:1px solid var(--fg-55);border-radius:0;background:transparent;color:var(--fg);padding:12px;font:400 16px/1.5 var(--font-sans)}
.contact-field select{padding-right:30px}
.contact-field textarea{resize:vertical;min-height:144px}
.contact-field :is(input,select,textarea):focus-visible{outline:2px solid var(--focus-ring);outline-offset:2px;box-shadow:0 0 0 1px var(--ink)}
.contact-field [aria-invalid=true]{border:1px solid var(--fg);box-shadow:inset 3px 0 0 var(--terracotta)}
.contact-field [aria-invalid=true]:focus-visible{box-shadow:inset 3px 0 0 var(--terracotta),0 0 0 1px var(--ink)}
.contact-field-error{margin:8px 0 0;font:500 14px/1.5 var(--font-sans);color:var(--fg)}
.contact-notice{border-top:1px solid var(--rule-hairline);padding-top:16px;margin:6px 0 24px;font:400 14px/1.6 var(--font-sans);color:var(--fg-70)}
.contact-notice p{margin:0 0 10px}
.contact-review-note{font-style:italic}
.contact-status{border-top:2px solid var(--fg);border-bottom:1px solid var(--rule-hairline);padding:20px 0;margin-bottom:28px;font:var(--type-body)}
.contact-status h2{font:300 36px/1.2 var(--font-serif);margin:0 0 12px}
.contact-status p{margin:0}.contact-status ul{font:var(--type-ui);padding-left:22px}
.contact-trap{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}
@container(max-width:1000px){.contact-layout{grid-template-columns:minmax(160px,1fr) minmax(0,640px);gap:34px}}
@container(max-width:639px){.contact-layout{grid-template-columns:1fr;gap:28px;padding-bottom:56px}.contact-context{padding-top:16px}.contact-main{padding-top:16px}.contact-field{margin-bottom:24px}}

/* Color supplements explicit error text; Ink preserves contrast on Bone. */
#contact-errors{border-top:2px solid var(--terracotta);border-bottom:0}
/* The programmatically focused summary is an editorial message, not a boxed alert.
   Its linked errors retain the normal visible keyboard focus treatment. */
#contact-errors:focus{outline:none;box-shadow:none}
#contact-status{border-top:3px solid var(--support);padding:var(--space-7) 0 var(--space-8)}
#contact-status h2{max-width:var(--measure)}
.contact-scope :is(#contact-submit,#contact-status):focus-visible{outline:2px solid var(--focus-ring);outline-offset:2px;box-shadow:0 0 0 1px var(--ink)}
@container(max-width:767px){.contact-hero .fv-ph{padding:var(--space-9) var(--g) var(--space-8)}.contact-hero{margin-bottom:var(--space-8)}}
@container(max-width:639px){#contact-status h2{font-size:var(--size-lead)}}
