/* Shared contact card and footer. Existing theme tokens only. */
.contact-card-wrap{background:var(--ab-bg);color:var(--ab-text);padding:var(--ab-space-12) clamp(1rem,4vw,2rem);font-family:var(--ab-font-body);scroll-margin-top:2rem}
.contact-card{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(16rem,1fr);gap:clamp(1.5rem,4vw,3rem);max-width:68rem;margin-inline:auto;padding:clamp(1.25rem,4vw,3rem);border:1px solid var(--ab-line);border-radius:var(--ab-radius-md);background:var(--ab-surface);box-shadow:var(--ab-shadow)}
.contact-card *{box-sizing:border-box}.contact-card-main,.contact-card-actions{min-width:0}
.contact-card .contact-eyebrow{font:400 var(--ab-type-sm)/1.5 var(--ab-font-mono);letter-spacing:.08em;margin:0 0 var(--ab-space-4);color:var(--ab-text-muted)}
.contact-card h2{font:600 clamp(1.75rem,2.5vw,2.5rem)/1.18 var(--ab-font-heading);letter-spacing:-.025em;margin:0 0 var(--ab-space-6);color:var(--ab-text);text-wrap:pretty}
.contact-card .contact-person{font:600 1.25rem/1.5 var(--ab-font-heading);margin:0 0 .5rem;color:var(--ab-text)}
.contact-card .contact-education{font-size:1rem;line-height:1.7;color:var(--ab-text);margin:0 0 var(--ab-space-6)}
.contact-credentials{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem!important;list-style:none;padding:0!important;margin:0 0 1.5rem!important}
.contact-credentials>li{display:flex;flex-direction:column;align-items:flex-start;gap:.5rem;margin:0!important;min-width:0;padding:1rem;border:1px solid var(--ab-line);border-radius:var(--ab-radius-sm);background:var(--ab-surface-raised);color:var(--ab-text);font:400 .875rem/1.6 var(--ab-font-body)}
.contact-credentials strong{font-weight:600}.contact-credentials a,.contact-credentials summary{display:inline-flex;align-items:center;min-height:44px;color:var(--ab-text);text-decoration:none;font:inherit;cursor:pointer}
.contact-credentials a:hover{text-decoration:underline}.contact-credentials summary{display:list-item;padding-block:.6rem;list-style:disclosure-closed inside}.contact-credentials details[open] summary{list-style-type:disclosure-open}
.contact-credentials details p{font:400 .875rem/1.7 var(--ab-font-body);color:var(--ab-text-muted);margin:.5rem 0 0}
.contact-card .contact-topic-label{font-size:.875rem;font-weight:600;margin:0 0 .75rem;color:var(--ab-text)}
.contact-card .contact-topics{display:flex;flex-wrap:wrap;gap:.5rem;list-style:none;padding:0;margin:0}
.contact-card .contact-topics li{font-size:.8125rem;line-height:1.5;padding:.4rem .65rem;border:1px solid var(--ab-line);border-radius:var(--ab-radius-pill);color:var(--ab-text-muted);margin:0}
.contact-card-actions{align-self:center;display:flex;flex-direction:column;border-left:1px solid var(--ab-line);padding-left:clamp(1.5rem,3vw,2rem)}
.contact-email-row{display:flex;gap:.5rem}.contact-email-row>a{flex:1}
.contact-card .contact-button,.contact-card .contact-copy{display:flex;align-items:center;justify-content:space-between;gap:.75rem;min-height:48px;padding:.875rem 1rem;border:1px solid var(--ab-control-line);border-radius:var(--ab-radius-sm);font:600 1rem/1.5 var(--ab-font-body);text-decoration:none;cursor:pointer;transition:background-color var(--ab-duration-fast) var(--ab-ease)}
.contact-card .contact-primary{background:var(--ab-button-bg);color:var(--ab-on-accent);border-color:var(--ab-button-bg)}
.contact-card .contact-primary:hover{background:var(--ab-button-hover)}
.contact-card .contact-secondary,.contact-card .contact-copy{background:var(--ab-surface);color:var(--ab-text)}
.contact-card .contact-secondary:hover,.contact-card .contact-copy:hover{background:var(--ab-surface-raised)}
.contact-card .contact-copy{width:48px;flex:none;padding:.75rem;justify-content:center}.contact-card [hidden]{display:none!important}
.contact-card .contact-copy-status{min-height:1.5em;margin:.25rem 0 .5rem;color:var(--ab-text-muted);font-size:.875rem;overflow-wrap:anywhere}
.contact-card .contact-action-note{margin:1.5rem 0 0;font-size:.9375rem;line-height:1.75;color:var(--ab-text-muted)}
.contact-foundation{margin-top:1rem}.contact-foundation .contact-credentials{grid-template-columns:repeat(2,minmax(0,1fr))}
body footer.contact-footer{display:block;max-width:none;margin:0;padding:1.5rem clamp(1rem,4vw,2rem);background:var(--ab-bg);color:var(--ab-text-muted);border-top:1px solid var(--ab-line);font:400 .8125rem/1.7 var(--ab-font-body)}
.contact-footer-row{max-width:68rem;margin:auto;display:flex;align-items:center;gap:.75rem 1.5rem;flex-wrap:wrap}
body .contact-footer p{margin:0;max-width:none;font:inherit;color:var(--ab-text-muted)}
body .contact-footer a{display:inline-flex;align-items:center;min-height:44px;color:var(--ab-text);text-decoration:none}
body .contact-footer .contact-wordmark{font-weight:700;letter-spacing:.06em;white-space:nowrap}
.contact-footer-links{display:flex;gap:.75rem;flex-wrap:wrap}.contact-footer a:hover{text-decoration:underline}
body .contact-footer .contact-legal{max-width:68rem;margin:1rem auto 0;padding-top:1rem;border-top:1px solid var(--ab-line);font-size:.75rem}
.contact-card :is(a,button,summary):focus-visible,.contact-foundation :is(a,summary):focus-visible,.contact-footer a:focus-visible{outline:3px solid var(--ab-focus);outline-offset:4px}
@media(max-width:52rem){.contact-card{grid-template-columns:minmax(0,1fr)}.contact-card-actions{border-left:0;border-top:1px solid var(--ab-line);padding:1.5rem 0 0}.contact-foundation .contact-credentials{grid-template-columns:1fr}}
@media(max-width:28rem){.contact-credentials{grid-template-columns:1fr}.contact-card .contact-education span{display:none}.contact-card-wrap{padding-block:2rem}}
@media(prefers-reduced-motion:reduce){.contact-card *{transition:none!important;scroll-behavior:auto!important}}
@media print{.contact-card{box-shadow:none;display:block}.contact-copy{display:none!important}.contact-card-actions{padding:1rem 0;border:0}.contact-footer{break-inside:avoid}}
