.contact-shell { box-sizing: border-box; margin: 0 auto; max-width: 1120px; padding: clamp(2.5rem, 7vw, 5.5rem) 1rem 5rem; }
.contact-hero { max-width: 720px; }
.contact-shell .contact-hero { background: transparent; color: var(--ink); }
.contact-hero h1 { font-size: clamp(2.6rem, 9vw, 5.8rem); line-height: .94; margin: .2rem 0 1rem; }
.contact-hero p { font-size: clamp(1rem, 2.2vw, 1.25rem); line-height: 1.55; }
.contact-event-link { margin-top: 1.25rem; }
.contact-layout { align-items: start; display: grid; gap: clamp(1.25rem, 4vw, 3rem); grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr); margin-top: 2.5rem; }
.contact-details, .contact-form, .contact-success { background: #fff; border: 1px solid var(--line); border-radius: var(--radius); box-shadow: 0 18px 50px #00000012; min-width: 0; padding: clamp(1.25rem, 4vw, 2.25rem); }
.contact-detail + .contact-detail { border-top: 1px solid var(--line); margin-top: 1.25rem; padding-top: 1.25rem; }
.contact-detail h2 { font-size: 1rem; margin: 0 0 .35rem; }
.contact-detail p, .contact-detail address { color: var(--muted); font-style: normal; line-height: 1.6; margin: 0 0 .35rem; }
.contact-form { display: grid; gap: 1rem; }
.contact-form-heading h2 { margin: 0 0 .3rem; }
.contact-form-heading p, .contact-help { color: var(--muted); font-size: .9rem; margin: 0; }
.contact-field { display: grid; gap: .35rem; min-width: 0; }
.contact-field label { font-size: .92rem; font-weight: 800; }
.contact-field input, .contact-field select, .contact-field textarea { background: #fff; border: 1px solid #aebbb5; border-radius: 10px; box-sizing: border-box; color: var(--ink); font: inherit; min-height: 48px; padding: .75rem .8rem; width: 100%; }
.contact-field textarea { min-height: 150px; resize: vertical; }
.contact-field input:focus, .contact-field select:focus, .contact-field textarea:focus { border-color: #176b5b; box-shadow: 0 0 0 3px #176b5b33; outline: 0; }
.contact-field [aria-invalid="true"] { border-color: #b42318; }
.contact-field-error { color: #8b1010; font-size: .88rem; font-weight: 700; }
.contact-errors { background: #fff1f1; border: 1px solid #d71920; border-radius: 10px; color: #7f1111; padding: 1rem; }
.contact-errors ul { margin: .5rem 0 0; padding-left: 1.25rem; }
.contact-honeypot { height: 1px; left: -10000px; overflow: hidden; position: absolute; width: 1px; }
.contact-turnstile { min-height: 65px; }
.contact-actions { align-items: center; border-top: 1px solid var(--line); display: flex; flex-wrap: wrap; gap: 1rem; padding-top: 1.25rem; }
.contact-actions button { border: 0; cursor: pointer; font: inherit; min-height: 48px; }
.contact-actions button:disabled { cursor: wait; opacity: .65; }
.contact-status { color: var(--muted); flex: 1 1 240px; font-size: .9rem; line-height: 1.45; margin: 0; }
.contact-status[data-state="error"] { color: #8b1010; font-weight: 700; }
.contact-status[data-state="success"] { color: #176b5b; font-weight: 700; }
.contact-success { max-width: 700px; }
.contact-reference { color: var(--muted); }
@media (max-width: 760px) {
  .contact-shell { padding-top: 2rem; }
  .contact-layout { grid-template-columns: 1fr; margin-top: 1.75rem; }
  .contact-details { order: 2; }
  .contact-form { order: 1; }
  .contact-actions { align-items: stretch; flex-direction: column; }
  .contact-actions button { width: 100%; }
}
@media (prefers-reduced-motion: reduce) {
  .contact-field input, .contact-field select, .contact-field textarea { scroll-behavior: auto; }
}
