/* Confined to Contact; all shared navigation and transition rules stay intact. */
html:has(.contact-page), body:has(.contact-page) { background:#fff; }
body:has(.contact-page) main.wrap { grid-column:1 / -1; padding:clamp(28px, 5vw, 64px) 0 0; }
.contact-page { width:min(100%, 1080px); margin:0 auto; }
main.wrap .contact-page h1 { margin:0 0 32px; font:700 clamp(56px, 8.5vw, 116px)/1 Arial, Helvetica, sans-serif; letter-spacing:-.06em; }
main.wrap .contact-page > p { max-width:570px; margin:0 0 48px; font:400 21px/1.65 var(--serif); }
.contact-form, .contact-feedback { width:min(100%, 640px); margin-left:clamp(0px, 13vw, 176px); }
main.wrap .contact-required { margin:0 0 26px; color:#626260; font:400 14px/1.5 Arial, Helvetica, sans-serif; }
.contact-field { margin-bottom:32px; }
.contact-field label { margin:0; font:700 17px/1.5 Arial, Helvetica, sans-serif; }
.contact-field input, .contact-field textarea { display:block; width:100%; max-width:100%; margin:6px 0 0; padding:10px 0 12px; border:0; border-bottom:1px solid #8a8a85; border-radius:0; background:transparent; color:#161615; font:400 20px/1.5 var(--serif); box-shadow:none; }
.contact-field input { min-height:48px; }
.contact-field textarea { min-height:132px; resize:vertical; }
.contact-page :is(input, textarea, button, a):focus-visible { outline:2px solid #161615; outline-offset:5px; }
.contact-form button { display:inline-block; padding:0 2px 6px 0; margin:4px 0 0; min-height:56px; border:0; border-bottom:2px solid currentColor; border-radius:0; background:transparent; color:#161615; font:700 clamp(36px, 4vw, 48px)/1.12 Arial, Helvetica, sans-serif; letter-spacing:-.055em; cursor:pointer; }
.contact-form button:hover { color:#626260; }
main.wrap .contact-page .contact-social { margin:64px 0 0 clamp(0px, 13vw, 176px); font:400 16px/1.6 Arial, Helvetica, sans-serif; color:#626260; }
.contact-social a { display:inline-block; padding:10px 0; }
.contact-form .contact-feedback { width:100%; margin:0 0 32px; }
main.wrap .contact-feedback p, main.wrap .contact-feedback li { font:400 18px/1.55 var(--serif); }
main.wrap .contact-feedback p { margin-bottom:12px; }
.contact-errors { border-left:2px solid #8b3025; padding-left:20px; }
main.wrap .contact-field-error { margin:8px 0 0; color:#8b3025; font:400 15px/1.5 Arial, Helvetica, sans-serif; }
.contact-field [aria-invalid="true"] { border-color:#8b3025; }
.contact-feedback:focus { outline:2px solid #161615; outline-offset:8px; }
body:has(.contact-page) footer #socialMedia { display:none; }
body:has(.contact-page) footer { grid-column:1 / -1; margin-top:88px; }
@media (max-width:1000px) { .contact-form, .contact-feedback { width:min(100%, 640px); margin-left:0; } main.wrap .contact-page .contact-social { margin-left:0; } }
@media (max-width:540px) { main.wrap .contact-page h1 { font-size:clamp(48px, 12vw, 64px); } main.wrap .contact-page > p { font-size:19px; margin-bottom:36px; } .contact-field { margin-bottom:28px; } main.wrap .contact-page .contact-social { margin-top:44px; } }
