/* Contact: consistent restrained typography and framing. */
.contact-page { --link: #0076b3; --link-dark: #005c8c; }
body.theme-dark .contact-page { --link: #81d2fa; --link-dark: #b9e9ff; }
.contact-page .publications-heading { padding-bottom: 18px; border-bottom: 1px solid var(--line); }
.contact-page .publications-heading h1 { letter-spacing: -.025em; }
body .contact-page .contact-card { padding: 18px 20px; background: var(--paper); border: 1px solid var(--line); border-radius: 10px; box-shadow: none; }
.contact-page .contact-card h2 { color: var(--text); font-size: 1.2rem; font-weight: 600; letter-spacing: -.015em; margin: 0 0 14px; padding-bottom: 12px; border-bottom: 1px solid var(--light-line); }
.contact-page .contact-card dl { gap: 12px; }
.contact-page .contact-card dt { color: var(--muted); font-size: .75rem; font-weight: 600; letter-spacing: .035em; }
.contact-page .contact-card dd { color: var(--text); font-size: .9rem; line-height: 1.5; margin-top: 4px; }
.contact-page .contact-card dd a { color: var(--link); font-weight: 600; }
.contact-page .contact-card dd a:hover { color: var(--link-dark); }
.contact-page .contact-map-placeholder iframe,
.contact-page .contact-room-scan iframe { border-color: var(--line); border-radius: 10px; }
.contact-page .contact-room-scan { margin-top: 28px; }
.contact-page .contact-room-scan h2 { color: var(--text); font-size: 1.35rem; font-weight: 650; letter-spacing: -.025em; padding-bottom: 12px; margin-bottom: 16px; border-bottom: 1px solid var(--line); }
@media (max-width: 650px) {
  body .contact-page .contact-card { padding: 16px; }
}

/* Give the full tour enough room for its scene and controls. */
.contact-page .contact-room-scan iframe { height: 760px; min-height: 620px; }
@media (max-width: 720px) {
  .contact-page .contact-room-scan iframe { height: 780px; }
}
