/* One light invitation sheet, with the precision of a printed menu. */
.contact-page { padding-block:40px 92px; }
.contact-invitation { position:relative; padding:48px clamp(32px,4vw,64px) 54px; border:1px solid #aa9160; background:#f8f3e8; }
.contact-invitation::before { content:""; position:absolute; inset:10px; border:1px solid #b9a57766; pointer-events:none; }
.contact-invitation > * { position:relative; }
.contact-letter-kicker { display:flex; justify-content:space-between; align-items:center; gap:24px; margin-bottom:52px; }
.contact-letter-kicker .eyebrow { color:var(--brass); line-height:1.6; }
.contact-letter-flourish { flex:none; color:#a5864f; }
.contact-letter-flourish svg { display:block; width:124px; height:20px; fill:none; stroke:currentColor; stroke-width:1; }
.contact-letter { display:grid; grid-template-columns:minmax(0,.95fr) minmax(0,1.12fr); gap:8%; align-items:start; }
.contact-letter-intro { min-width:0; padding-top:4px; }
.contact-letter-intro h1 { max-width:660px; font:400 clamp(56px,5.7vw,92px)/1.02 var(--serif); letter-spacing:-.035em; text-wrap:balance; }
.contact-letter-lead { max-width:480px; margin-top:36px; font-size:16px; line-height:1.9; }
.contact-direct { max-width:480px; margin-top:48px; padding-top:28px; border-top:1px solid #b8a57780; }
.contact-direct h2 { margin:0 0 18px; color:var(--muted); font:500 10px/1.5 var(--sans); letter-spacing:.13em; text-transform:uppercase; }
.contact-direct .contact-links { display:flex; flex-direction:column; align-items:flex-start; gap:18px; }
.contact-direct .button { min-height:44px; padding:0; border:0; background:none; color:var(--ink); font:400 clamp(28px,2.7vw,39px)/1.15 var(--serif); letter-spacing:-.02em; text-decoration:none; }
.contact-direct .button:hover { color:var(--brass); }
.contact-direct .text-link { font-size:13px; }
.contact-reply-note { max-width:390px; margin-top:24px; color:var(--muted); font-size:13px; line-height:1.8; }
.contact-page .contact-letter-form { min-width:0; position:relative; margin:0; padding:4px 0 0 clamp(32px,3.8vw,62px); border:0; border-left:1px solid var(--line); background:none; }
.contact-letter-form h2 { margin:0 0 36px; font:400 clamp(35px,3.1vw,49px)/1.08 var(--serif); letter-spacing:-.025em; }
.contact-letter-form label { color:var(--ink); font-size:12px; line-height:1.6; }
.contact-page .contact-letter-form > label { margin-top:28px; }
.contact-page .contact-letter-form .contact-person { gap:24px 22px; align-items:end; }
.contact-page .contact-letter-form :is(input:not([type="checkbox"]),select,textarea) { width:100%; min-width:0; margin-top:11px; border:0; border-bottom:1px solid #8f9e8c; border-radius:0; background:#fffcf445; color:var(--ink); box-shadow:none; padding:13px 12px; font:400 14px/1.7 var(--sans); }
.contact-page .contact-letter-form :is(input:not([type="checkbox"]),select) { min-height:52px; }
.contact-page .contact-letter-form textarea { min-height:150px; resize:vertical; }
.contact-page .contact-letter-form textarea[name="notes"] { min-height:125px; }
.contact-page .contact-letter-form :is(input:not([type="checkbox"]),select,textarea):focus { border-bottom-color:var(--brass); background:#fffcf49c; }
.contact-page .contact-letter-form :is(input,select,textarea):focus-visible { outline-offset:3px; }
.contact-page .contact-letter-form [aria-invalid="true"] { border:0; border-bottom:2px solid #853e30; }
.contact-page .contact-letter-form .privacy-field { gap:12px; margin-top:30px; color:var(--muted); font-size:12px; line-height:1.8; }
.contact-page .contact-letter-form .privacy-field input { width:18px; height:18px; min-height:18px; margin-top:2px; padding:0; border:1px solid var(--muted); background:transparent; }
.contact-page .contact-letter-form .brief-actions { display:flex; flex-wrap:wrap; align-items:center; gap:18px 24px; margin-top:30px; }
.contact-page .contact-letter-form .brief-actions .button { display:inline-flex; justify-content:space-between; align-items:center; gap:30px; min-height:54px; padding:15px 22px; font-size:13px; }
.contact-page .contact-letter-form .brief-actions .button span { font-size:22px; line-height:1; }
.contact-page .contact-letter-form .text-button { min-height:44px; max-width:100%; padding:10px 0; white-space:normal; font-size:11px; line-height:1.5; }
.contact-page .contact-letter-form #brief-status { min-height:25px; margin-top:25px; font-size:13px; line-height:1.8; }
.contact-page .contact-letter-form #brief-status:not(:empty) { border-left:1px solid var(--brass); padding-left:14px; }
.contact-letter-signature { display:flex; justify-content:center; align-items:center; gap:13px; margin-top:44px; padding-top:24px; border-top:1px solid #b9a57766; color:#8a734a; }
.contact-letter-signature > span { flex:none; font-size:13px; line-height:1; }
.contact-letter-signature p { margin:0; font:italic 400 18px/1.4 var(--serif); letter-spacing:.015em; }
.contact-letter-signature p span { margin-inline:5px; font-style:normal; }
@media(min-width:1200px) and (min-height:760px) {
 .contact-letter-intro { position:sticky; top:40px; }
}
@media(max-width:1100px) {
 .contact-page { padding-top:32px; }
 .contact-invitation { padding:40px 36px 46px; }
 .contact-letter-kicker { margin-bottom:42px; }
 .contact-letter { grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr); gap:6%; }
 .contact-letter-intro h1 { font-size:clamp(49px,5.8vw,64px); }
 .contact-letter-lead { font-size:15px; margin-top:28px; }
 .contact-direct { margin-top:36px; }
 .contact-page .contact-letter-form { padding-left:30px; }
 .contact-page .contact-letter-form .contact-person { grid-template-columns:1fr; gap:24px; }
 .contact-page .contact-letter-form .brief-actions { gap:14px 20px; }
 .contact-page .contact-letter-form .brief-actions .button { flex-basis:100%; }
}
@media(max-width:767px) {
 .contact-page { padding-block:24px 54px; }
 .contact-invitation { padding:31px 24px 34px; }
 .contact-invitation::before { inset:7px; }
 .contact-letter-kicker { margin-bottom:32px; gap:14px; }
 .contact-letter-kicker .eyebrow { max-width:75%; font-size:9px; }
 .contact-letter-flourish svg { width:64px; }
 .contact-letter { grid-template-columns:1fr; gap:42px; }
 .contact-letter-intro h1 { max-width:570px; font-size:clamp(43px,10.3vw,64px); line-height:1.04; }
 .contact-letter-lead { max-width:560px; margin-top:26px; font-size:15px; line-height:1.85; }
 .contact-direct { max-width:none; margin-top:30px; padding-top:24px; }
 .contact-direct .button { font-size:31px; }
 .contact-direct h2 { margin-bottom:14px; }
 .contact-reply-note { max-width:500px; margin-top:18px; font-size:12px; }
 .contact-page .contact-letter-form { padding:34px 0 0; border-left:0; border-top:1px solid var(--line); }
 .contact-letter-form h2 { max-width:500px; font-size:39px; margin-bottom:30px; }
 .contact-page .contact-letter-form .contact-person { gap:24px; }
 .contact-page .contact-letter-form > label { margin-top:26px; }
 .contact-page .contact-letter-form .brief-actions .button { min-height:54px; }
 .contact-page .contact-letter-form .privacy-field { margin-top:26px; }
 .contact-letter-signature { gap:10px; margin-top:30px; padding-top:21px; }
 .contact-letter-signature p { font-size:16px; letter-spacing:0; }
 .contact-letter-signature p span { margin-inline:3px; }
}
@media(max-width:374px) {
 .contact-invitation { padding-inline:20px; }
 .contact-letter-intro h1 { font-size:41px; }
 .contact-letter-flourish svg { width:46px; }
 .contact-letter-form h2 { font-size:36px; }
 .contact-page .contact-letter-form .brief-actions { gap:14px 18px; }
 .contact-page .contact-letter-form .text-button { font-size:11px; }
 .contact-letter-signature p { font-size:15px; }
}
@media print {
 .contact-letter-intro { position:static; }
 .contact-page .contact-letter-form { border-left:0; }
}
