/* Contact information first; preserve the published MG typography and palette. */
.contacts-page { --contacts-accent: #f2b65c; --contacts-muted: #526b78; }
.contacts-page .page-hero h1 { font-family: 'Source Serif 4', Georgia, serif; font-optical-sizing: auto; font-weight: 500; letter-spacing: -.025em; }
.contacts-page ::selection { color: #002b46; background: var(--contacts-accent); }
.contacts-page :where(a,button):focus-visible { outline: 3px solid #0072bb; outline-offset: 4px; }
.contacts-page .site-header :where(a,button):focus-visible { outline-color: #a8d9eb; }
.contacts-page .page-hero { padding: 36px 0; }
.contacts-page .page-hero h1 { margin: 0; font-size: 44px; line-height: 1.12; }
.contacts-page .page-hero p { max-width: 68ch; margin-top: 14px; color: #d4e4eb; font-size: 16px; line-height: 1.6; }
.contacts-page .contacts-content { padding: 32px 0 40px; background: #fff; }
.contacts-columns { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1fr); align-items: start; gap: 64px; }
.contacts-methods { border-top: 1px solid var(--line); }
.contacts-method { display: grid; grid-template-columns: minmax(0,1fr) 28px; align-items: center; gap: 8px 20px; padding: 20px 14px; border-bottom: 1px solid var(--line); transition: background-color 160ms ease; }
.contacts-label { grid-column: 1; color: var(--contacts-muted); font-size: 14px; font-weight: 400; line-height: 1.5; }
.contacts-method strong { grid-column: 1; grid-row: 2; font-size: 18px; font-weight: 500; line-height: 1.5; overflow-wrap: anywhere; }
.contacts-arrow { grid-column: 2; grid-row: 1 / 3; display: grid; place-items: center; width: 28px; height: 28px; border-radius: 50%; color: #075b91; transition: color 160ms ease, background-color 160ms ease, transform 180ms cubic-bezier(.23,1,.32,1); }
.contacts-arrow svg { width: 22px; height: 22px; }
.contacts-method:focus-visible .contacts-arrow { color: #002b46; background: var(--contacts-accent); transition: none; }
.contacts-method:focus-visible strong { text-decoration: underline; text-decoration-color: var(--contacts-accent); text-decoration-thickness: 2px; text-underline-offset: 6px; }
.contacts-details { margin: 0; }
.contacts-details > div { padding: 20px 14px; border-top: 1px solid var(--line); }
.contacts-details dd { margin: 8px 0 0; color: #002b46; font-size: 18px; line-height: 1.5; }
.contacts-details address { margin: 0; font-style: normal; }
.contacts-details strong { font-weight: 500; }
.contacts-registration { display: block; color: var(--contacts-muted); font-size: inherit; }
@media (hover:hover) and (pointer:fine) {
    .contacts-method:hover { background: #eaf2f5; }
    .contacts-method:hover strong { text-decoration: underline; text-decoration-color: var(--contacts-accent); text-decoration-thickness: 2px; text-underline-offset: 6px; }
    .contacts-method:hover .contacts-arrow { color: #002b46; background: var(--contacts-accent); transform: translate(2px,-2px); }
    .contacts-method:focus-visible .contacts-arrow { transform: none; }
}
@media (max-width:940px) {
    .contacts-columns { gap: 40px; grid-template-columns: minmax(0,1fr) minmax(0,1fr); }
}
@media (max-width:600px) {
    .contacts-page .page-hero { padding: 28px 0; }
    .contacts-page .page-hero h1 { font-size: 36px; }
    .contacts-page .contacts-content { padding: 24px 0 32px; }
    .contacts-columns { grid-template-columns: 1fr; gap: 20px; }
}
@media (prefers-reduced-motion:reduce) {
    .contacts-arrow { transition: color 160ms ease, background-color 160ms ease; }
    .contacts-method:hover .contacts-arrow { transform: none; }
}
