.contact-page { margin-bottom:28px; }
.contact-hero { display:flex; align-items:center; justify-content:space-between; position:relative; gap:35px; padding-bottom:26px; }
.contact-hero .page-intro { margin-bottom:0; flex:1; }
.contact-hero .page-intro p { font-family:inherit; font-size:.93rem; line-height:1.7; max-width:820px; margin:0; }
.contact-motto { position:relative; width:320px; flex-shrink:0; margin:0; padding:35px 140px 35px 22px; font:italic 1rem/1.5 Georgia,serif; color:var(--accent); }
.contact-motto::before { content:""; position:absolute; left:0; top:35px; bottom:35px; width:1px; background:var(--border); }
.contact-motto::after { content:""; position:absolute; right:-25px; top:-30px; bottom:-30px; width:185px; background:url('ancestry-branch.svg') center / cover no-repeat; opacity:.55; pointer-events:none; }
.contact-layout { display:grid; grid-template-columns:minmax(0,1.6fr) minmax(0,1fr); gap:22px; align-items:start; }
.contact-form-panel,.contact-sidebar { padding:25px 27px; border:1px solid var(--border); border-radius:9px; box-shadow:0 8px 25px #203c2406; }
.contact-form-panel h2 { font-size:1.85rem; line-height:1.2; letter-spacing:-.025em; margin:0 0 6px; }
.contact-lead { font-size:.85rem; color:var(--muted); margin:0 0 23px; }
.contact-form { position:relative; }
.contact-honeypot { position:absolute; left:-9999px; width:1px; height:1px; overflow:hidden; }
.contact-fields { display:grid; grid-template-columns:1fr 1fr; gap:18px 20px; }
.contact-field { min-width:0; }
.contact-field > label { display:block; font-size:.83rem; font-weight:600; margin-bottom:5px; }
.contact-required { color:#a73c32; }
.contact-field input,.contact-field select,.contact-field textarea { width:100%; background:var(--card); border:1px solid var(--border); color:var(--text); border-radius:6px; padding:10px 12px; min-height:42px; font-size:.84rem; line-height:1.4; }
.contact-field input::placeholder,.contact-field textarea::placeholder { color:var(--muted); opacity:.7; }
.contact-field textarea { min-height:137px; resize:vertical; display:block; }
.contact-field input:focus,.contact-field textarea:focus,.contact-field select:focus { border-color:var(--accent); }
.contact-field [aria-invalid=true] { border-color:#aa4539; }
.contact-message-field { grid-column:1 / -1; }
.contact-count { display:block; text-align:right; margin-top:4px; font-size:.72rem; color:var(--muted); }
.contact-privacy { display:flex; align-items:flex-start; gap:11px; margin:16px 0 0; font-size:.8rem; color:var(--muted); cursor:pointer; }
.contact-privacy input { margin:3px 0 0; width:16px; height:16px; flex-shrink:0; accent-color:var(--accent); }
.contact-privacy a { text-decoration:underline; text-underline-offset:3px; }
.contact-submit-row { display:flex; align-items:center; flex-wrap:wrap; gap:16px 24px; margin-top:28px; }
.contact-submit { min-height:48px; padding:12px 23px; font-size:.88rem; gap:14px; }
.contact-submit:disabled { opacity:.65; cursor:wait; }
.contact-response-time { display:flex; align-items:center; gap:9px; font-size:.75rem; color:var(--muted); }
.contact-sidebar h2 { margin:0 0 17px; font-size:1.55rem; letter-spacing:-.025em; }
.contact-direct { display:grid; grid-template-columns:52px minmax(0,1fr); gap:18px; padding-bottom:19px; border-bottom:1px solid var(--border); }
.contact-direct p,.contact-benefit p { margin:0; font-size:.83rem; line-height:1.55; color:var(--muted); }
.contact-aside-icon { width:52px; height:52px; display:grid; place-items:center; border-radius:50%; background:var(--accent-weak); color:var(--accent); }
.contact-email { display:inline-block; font:1.2rem/1.4 Georgia,serif; margin-top:9px; overflow-wrap:anywhere; }
.contact-benefits { display:grid; gap:20px; padding:20px 0 22px; }
.contact-benefit { display:grid; grid-template-columns:52px minmax(0,1fr); gap:18px; align-items:start; }
.contact-benefit h3 { margin:0 0 3px; font:500 1.08rem/1.3 Georgia,serif; letter-spacing:-.015em; }
.contact-quote { position:relative; isolation:isolate; overflow:hidden; border-radius:8px; margin:0 -10px -12px; padding:20px 28px; background:color-mix(in srgb,var(--accent-weak) 65%,var(--card)); }
.contact-quote::after { content:""; position:absolute; right:-85px; bottom:-50px; width:220px; height:180px; background:url('ancestry-branch.svg') center / contain no-repeat; opacity:.35; z-index:-1; }
.contact-quote p { max-width:240px; margin:0 0 12px; font:italic 1.2rem/1.5 Georgia,serif; }
.contact-quote cite { display:block; font-style:normal; font-size:.8rem; color:var(--accent); }
.contact-quote cite::before { content:""; display:block; width:40px; height:1px; margin-bottom:12px; background:var(--accent); opacity:.4; }
.contact-notice { display:flex; align-items:flex-start; gap:12px; padding:14px 16px; margin:17px 0 23px; border-radius:8px; font-size:.87rem; }
.contact-notice p { margin:4px 0 0; font-size:.83rem; line-height:1.5; }
.contact-success { background:var(--accent-weak); color:var(--accent); }
.contact-error { background:color-mix(in srgb,#b04533 8%,var(--card)); border:1px solid #b0453366; }
.contact-field-error { margin:5px 0 0; font-size:.76rem; color:#ac382e; }
[data-theme=dark] .contact-required,[data-theme=dark] .contact-field-error { color:#ffb6a6; }
.contact-admin-message { white-space:pre-wrap; overflow-wrap:anywhere; padding:18px; background:var(--accent-weak); border-radius:7px; }
.contact-admin-status { font-size:.8rem; color:var(--muted); }
@media (max-width:1100px) {
  .contact-motto { width:230px; padding-right:70px; }
  .contact-motto::after { width:120px; opacity:.3; }
  .contact-layout { grid-template-columns:minmax(0,1.4fr) minmax(0,1fr); gap:18px; }
  .contact-form-panel,.contact-sidebar { padding:22px; }
  .contact-direct,.contact-benefit { grid-template-columns:42px minmax(0,1fr); gap:13px; }
  .contact-aside-icon { width:42px; height:42px; }
  .contact-email { font-size:1.06rem; }
}
@media (max-width:850px) {
  .contact-layout { grid-template-columns:1fr; }
  .contact-hero { padding-bottom:20px; }
  .contact-motto { display:none; }
  .contact-sidebar { display:grid; grid-template-columns:1fr 1fr; gap:0 25px; }
  .contact-sidebar h2 { grid-column:1 / -1; }
  .contact-direct { border-bottom:0; align-self:start; padding:0; }
  .contact-benefits { grid-column:2; grid-row:2 / 4; padding-top:0; }
  .contact-quote { margin:20px 0 0; }
}
@media (max-width:550px) {
  .contact-form-panel,.contact-sidebar { padding:21px 18px; }
  .contact-form-panel h2 { font-size:1.6rem; }
  .contact-fields { grid-template-columns:1fr; gap:16px; }
  .contact-field input,.contact-field select,.contact-field textarea { font-size:16px; min-height:46px; }
  .contact-submit-row { margin-top:23px; }
  .contact-submit { width:100%; justify-content:center; }
  .contact-response-time { line-height:1.5; }
  .contact-sidebar { display:block; }
  .contact-direct { padding-bottom:20px; border-bottom:1px solid var(--border); }
  .contact-benefits { padding-top:20px; }
  .contact-quote { margin:0; padding:20px; }
  .contact-hero .page-intro p { font-size:.88rem; }
}
