/* Hallmark · existing KBF system · two equal contact routes · tone: helpful, restrained
 * pre-emit critique: P4 H5 E4 S5 R5 V4 */
.kbf-contact { --contact-gap:32px; padding-block:40px 48px; }
.kbf-contact h1,.kbf-contact h2,.kbf-contact h3 { font-family:var(--fontFamily-heading); font-style:normal; overflow-wrap:anywhere; min-width:0; }
.kbf-contact-heading { margin-bottom:32px; }
.kbf-contact-heading h1 { font-size:clamp(28px,3vw,40px); line-height:1.2; margin:0 0 12px; }
.kbf-contact-heading p { margin:0; max-width:75ch; color:var(--kbf-text-muted); }
.kbf-contact-columns { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); background:var(--kbf-surface); border-radius:var(--kbf-radius-card); padding:32px; gap:var(--contact-gap); }
.kbf-contact-place { min-width:0; scroll-margin-top:210px; }
.kbf-contact-place + .kbf-contact-place { border-left:1px solid var(--kbf-border); padding-left:32px; }
.kbf-contact-place h2 { font-size:24px; line-height:1.35; margin:0 0 8px; }
.kbf-contact-intro { margin:0 0 20px; color:var(--kbf-text-muted); }
.kbf-contact-phone { display:block; width:fit-content; font-size:30px; line-height:1.3; font-weight:700; color:var(--kbf-text); text-decoration:none; font-variant-numeric:tabular-nums; padding:4px 0; }
.kbf-contact-email { display:block; width:fit-content; padding:6px 0; color:var(--kbf-brand-dark); }
.kbf-contact-place h3 { font-size:16px; margin:24px 0 8px; }
.kbf-contact-hours { margin:0; max-width:360px; font-variant-numeric:tabular-nums; }
.kbf-contact-hours div { display:flex; justify-content:space-between; gap:16px; padding:3px 0; }
.kbf-contact-hours dt { font-weight:400; }
.kbf-contact-hours dd { margin:0; white-space:nowrap; }
.kbf-contact-actions { display:flex; flex-wrap:wrap; align-items:center; gap:12px 20px; margin-top:24px; }
.kbf-contact-actions a,.kbf-contact-help a,.kbf-contact-jumps a { white-space:nowrap; min-height:44px; display:inline-flex; align-items:center; }
.kbf-contact-actions a:not(.kbf-button),.kbf-contact-help a,.kbf-contact-jumps a { color:var(--kbf-brand-dark); }
.kbf-contact a:hover { text-decoration:underline; }
.kbf-contact a:focus-visible,.kbf-social-links a:focus-visible { outline:3px solid var(--kbf-brand-dark); outline-offset:4px; }
.kbf-contact-social { display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:12px 24px; padding:24px 0; border-bottom:1px solid var(--kbf-border); }
.kbf-contact-social h2 { margin:0; font-size:17px; }
.kbf-social-links { display:flex; flex-wrap:wrap; gap:8px 24px; }
.kbf-social-links a { display:inline-flex; align-items:center; gap:8px; min-height:44px; white-space:nowrap; color:var(--kbf-text); text-decoration:none; }
.kbf-social-links a:hover { text-decoration:underline; color:var(--kbf-brand-dark); }
.kbf-social-links svg { flex-shrink:0; }
.kbf-contact-directions { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,2fr); gap:32px; padding:40px 0 32px; align-items:center; }
.kbf-contact-directions h2 { font-size:28px; margin:0 0 16px; }
.kbf-contact-directions p { margin:0 0 20px; }
.kbf-contact-directions iframe { display:block; width:100%; height:320px; border:0; border-radius:var(--kbf-radius-card); background:var(--kbf-surface); }
.kbf-contact-help { display:flex; flex-wrap:wrap; gap:8px 32px; border-top:1px solid var(--kbf-border); padding-top:16px; }
.kbf-contact-jumps { display:none; }
.kbf-footer-contact { margin-top:20px; }
.kbf-footer-contact h3 { margin-bottom:6px; font-size:15px; }
.kbf-footer-contact > a { display:block; width:fit-content; padding-block:4px; }
.kbf-footer-contact p { font-size:14px; }
.kbf-footer-social { padding-block:0 24px; }
@media(max-width:900px) {
 .kbf-contact-columns { gap:24px; padding:24px; }
 .kbf-contact-place + .kbf-contact-place { padding-left:24px; }
 .kbf-contact-place h2 { font-size:21px; }
 .kbf-contact-phone { font-size:27px; }
}
@media(max-width:767px) {
 .kbf-contact { padding-block:28px 32px; }
 .kbf-contact-heading { margin-bottom:16px; }
 .kbf-contact-jumps { display:flex; flex-wrap:wrap; gap:8px 24px; margin-bottom:20px; }
 .kbf-contact-columns,.kbf-contact-directions { grid-template-columns:minmax(0,1fr); }
 .kbf-contact-columns { padding:20px; gap:28px; }
 .kbf-contact-place + .kbf-contact-place { border-left:0; border-top:1px solid var(--kbf-border); padding:28px 0 0; }
 .kbf-contact-place { scroll-margin-top:170px; }
 .kbf-contact-hours { font-size:14px; }
 .kbf-contact-hours div { gap:8px; }
 .kbf-contact-social { align-items:flex-start; flex-direction:column; }
 .kbf-social-links { gap:4px 20px; }
 .kbf-contact-directions { padding-top:32px; gap:24px; }
 .kbf-contact-directions iframe { height:280px; }
 .kbf-contact-directions h2 { font-size:25px; }
}
@media(prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } }
