.contact-section { padding-block:20px 64px; }
.contact-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); align-items:start; gap:24px; }
.contact-person, .contact-panel { min-width:0; min-height:0; border-radius:20px; overflow:hidden; }
.contact-person { position:relative; aspect-ratio:1; background:var(--neutral); }
.contact-person img { position:absolute; inset:0; display:block; width:100%; height:100%; object-fit:cover; object-position:center; }
.contact-panel { display:grid; place-items:center; width:100%; justify-self:stretch; min-height:min(740px,calc(100svh - 64px)); padding:56px; color:var(--paper); background:var(--purple); }
.contact-content { width:100%; max-width:360px; }
.contact-panel h2 { max-width:none; margin:0 0 44px; color:inherit; font-size:var(--card-title-size); font-weight:var(--card-title-weight); line-height:var(--card-title-line); letter-spacing:var(--card-title-tracking); text-wrap:initial; }
.contact-form { display:grid; gap:10px; }
.contact-form input, .contact-form textarea { width:100%; min-width:0; min-height:48px; margin:0; padding:13px 18px; border:0; border-radius:8px; color:var(--paper); background:rgba(32,29,29,.18); font-size:16px; font-weight:500; line-height:1.4; letter-spacing:-.01em; }
.contact-form textarea { min-height:96px; resize:vertical; }
.contact-form input::placeholder, .contact-form textarea::placeholder { color:var(--paper); opacity:1; }
.contact-form input:focus-visible, .contact-form textarea:focus-visible { outline:2px solid var(--lime); outline-offset:3px; }
.contact-submit-row { display:grid; justify-items:start; gap:0; margin-top:24px; }
.contact-submit { --control-hover-fill:var(--paper); --control-hover-text:var(--ink); justify-content:center; gap:0; width:max-content; min-width:188px; min-height:48px; padding-inline:20px; color:var(--ink); }
.contact-submit:disabled { cursor:not-allowed; opacity:.55; }
.contact-submit:disabled::before { display:none; }
.contact-status { margin-top:8px; color:var(--paper); font-size:14px; line-height:1.4; text-align:left; }
.contact-email { display:flex; align-items:center; justify-content:flex-start; gap:12px; max-width:100%; width:fit-content; margin:28px 0 0; color:inherit; font-size:16px; font-weight:500; line-height:1.4; letter-spacing:-.01em; text-decoration:none; }
.contact-email img { flex:0 0 22px; }
.contact-email span { min-width:0; overflow-wrap:anywhere; }
.contact-email:hover { text-decoration:underline; text-underline-offset:4px; }
.contact-panel :focus-visible { outline-color:var(--lime); }
@media (max-width:1100px) {
  .contact-panel { padding:40px 24px; }
  .contact-panel h2 { font-size:24px; }
}
@media (max-width:760px) {
  .contact-section { padding-block:0 56px; }
  .contact-grid { grid-template-columns:1fr; gap:16px; }
  .contact-person, .contact-panel { width:100%; max-width:none; justify-self:stretch; }
  .contact-panel { min-height:0; padding:48px 24px; }
  .contact-panel h2 { margin-bottom:32px; }
}
@media (max-width:420px) {
  .contact-email { gap:8px; font-size:15px; }
}
