/* Dedicated overview; no shared layout or board skin selectors. */
.contact_page { color:#333; background:#fff; font-family:'noto', sans-serif; text-align:left; line-height:1.7; word-break:keep-all; overflow-wrap:anywhere; }
.contact_page, .contact_page * { box-sizing:border-box; }
.contact_page .contact_container { width:100%; max-width:1320px; margin:0 auto; padding:0 60px; }
.contact_page h1, .contact_page h2, .contact_page h3, .contact_page p { margin:0; padding:0; }
.contact_page h1, .contact_page h2, .contact_page h3 { font-family:'nm', serif; }
.contact_page h2 { font-size:44px; font-weight:400; line-height:1.25; margin-bottom:20px; }
.contact_page h3 { font-size:28px; font-weight:400; line-height:1.4; margin-bottom:12px; }
.contact_page p { font-size:16px; font-weight:400; line-height:1.7; }
.contact_page .contact_cover {
    display:flex; align-items:flex-start; height:clamp(400px, 50vh, 540px); padding:clamp(160px, 20vh, 216px) 0 30px; color:#fff; background-color:#333;
    position:relative; isolation:isolate; overflow:hidden; min-height:0;
}
.contact_page .contact_cover > .contact_container { max-width:none; padding-left:100px; padding-right:100px; }
.contact_page .contact_cover h1 { font-size:56px; font-weight:700; line-height:1.2; margin-bottom:16px; }
.contact_page .contact_cover p, .contact_page .contact_lead { max-width:760px; }
.contact_page .contact_intro { padding:72px 0 32px; }
.contact_page .contact_eyebrow { margin-bottom:12px; color:#ca3b3f; }
.contact_page .contact_menus { padding-bottom:72px; }
.contact_page .contact_grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); column-gap:24px; row-gap:24px; align-items:stretch; }
.contact_page .contact_card { min-width:0; margin:0; padding:0; }
.contact_page .contact_card > img { width:100%; height:auto; display:block; margin:0 0 24px; }
.contact_page .contact_button { display:inline-flex; align-items:center; justify-content:center; max-width:100%; min-height:44px; margin-top:24px; padding:14px 40px; border:1px solid #222; border-radius:100px; color:#222; background:transparent; font-size:18px; font-weight:700; line-height:1.5; text-align:center; text-decoration:none; transition:background-color .3s,border-color .3s,color .3s; }
.contact_page .contact_button:hover { color:#fff; background:#ca3b3f; border-color:#ca3b3f; }
/* Override the shared anchor focus reset only inside this page. */
.contact_page .contact_button:focus-visible { outline:2px solid #ca3b3f !important; outline-offset:4px; }
@media (min-width:1025px) and (max-width:1599px),
(min-width:1025px) and (max-height:900px) {
    .contact_page .contact_cover > .contact_container { padding-left:64px; padding-right:64px; }
    .contact_page .contact_cover h1 { font-size:48px; }
    .contact_page h2 { font-size:42px; }
    .contact_page h3 { font-size:26px; }
}
@media (max-width:1024px) {
    .contact_page .contact_container { padding-left:20px; padding-right:20px; }
    .contact_page .contact_cover { height:auto; min-height:450px; padding:150px 0 32px; background-position:38% center; }
    .contact_page .contact_cover > .contact_container { padding-left:20px; padding-right:20px; }
    .contact_page .contact_cover h1 { font-size:36px; line-height:1.25; }
    .contact_page h2 { font-size:32px; }
    .contact_page h3 { font-size:24px; }
    .contact_page .contact_intro { padding:48px 0 24px; }
    .contact_page .contact_grid { grid-template-columns:minmax(0,1fr); row-gap:24px; }
    .contact_page .contact_card { width:100%; max-width:640px; }
    .contact_page .contact_menus { padding-bottom:32px; }
    .contact_page .contact_button { padding:12px 28px; font-size:16px; }
}

.contact_page .contact_card { display:flex; flex-direction:column; align-items:center; padding:36px 24px; min-height:300px; background:#f7f7f7; border-radius:12px; text-align:center; height:100%; }
.contact_page .contact_card i { display:block; font-size:40px; color:#ca3b3f; margin-bottom:20px; }
.contact_page .contact_card .contact_button { padding:12px 24px; margin-top:auto; }
.contact_page .contact_card p { margin-bottom:24px; }
.contact_page .contact_location { padding:0 0 72px; }
.contact_page .contact_location address { font-style:normal; font-size:16px; margin-bottom:28px; }
.contact_page .contact_location iframe { display:block; width:100%; height:450px; border:0; }
@media(max-width:1024px) {
 .contact_page .contact_card { padding:28px 20px; min-height:0; max-width:none; }
 .contact_page .contact_location { padding-bottom:48px; }
 .contact_page .contact_location iframe { height:300px; }
}

/* Preserve the common subpage cover geometry without stretching the photo. */
.contact_page .contact_cover_image { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:center; z-index:-2; }
.contact_page .contact_cover::before { content:""; position:absolute; inset:0; background:linear-gradient(to right,rgba(0,0,0,.7) 0%,rgba(0,0,0,.5) 40%,rgba(0,0,0,.15) 100%); z-index:-1; }
@media(max-width:1024px) { .contact_page .contact_cover_image { object-position:38% center; } }
