.contact-page {
    --bg: #0d1925;
}

.contact-page :is(.site-header--static, .service-family-nav, .site-footer) {
    background: var(--bg);
}

.contact-page :is(h1, h2) {
    font-family: inherit;
}

.contact-page .site-header .site-nav a {
    color: #21190f;
}

.contact-page :is(a, button, input, textarea):focus-visible {
    outline: 3px solid #be7527;
    outline-offset: 3px;
}

.contact-main {
    width: min(100% - 2rem, 1120px);
    margin: auto;
    padding: clamp(1.35rem, 4vw, 3rem) 0;
}

.contact-location {
    display: grid;
    grid-template-columns: 1fr 1fr;
    align-items: center;
    gap: 1rem 2rem;
    padding: clamp(1.2rem, 4vw, 2.4rem);
    border: 1px solid #465b70;
    border-radius: 1rem;
    background: var(--bg);
}

.contact-kicker {
    margin: 0 0 .35rem;
    color: #efc27d;
    font-size: .82rem;
    font-weight: 700;
    letter-spacing: .09em;
    text-transform: uppercase;
}

.contact-location h1 {
    margin: 0;
    color: #fff;
    font-size: clamp(2rem, 5vw, 3.4rem);
    line-height: 1.08;
    letter-spacing: -.035em;
}

.contact-location address {
    color: #fff;
    font-size: clamp(1rem, 2vw, 1.24rem);
    font-style: normal;
}

.contact-actions {
    display: flex;
    grid-column: 1 / -1;
    align-items: center;
    flex-wrap: wrap;
    gap: .65rem 1rem;
}

.contact-primary {
    display: inline-flex;
    min-height: 46px;
    align-items: center;
    justify-content: center;
    gap: .7rem;
    padding: .65rem 1.1rem;
    border: 1px solid transparent;
    border-radius: .6rem;
    background: #d6ad69;
    color: #21190f;
    font: inherit;
    font-weight: 750;
    text-decoration: none;
    cursor: pointer;
}

.contact-primary:hover { background: #efc27d; }
.contact-call { color: #fff; font-weight: 700; padding: .55rem .1rem; }
.contact-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; margin-top: 1rem; }

.contact-panel {
    min-width: 0;
    padding: clamp(1.1rem, 3.5vw, 2rem);
    border-radius: 1rem;
    background: #f7f2e9;
    color: #251b14;
    color-scheme: light;
}

.contact-panel h2 { margin: 0; font-size: 1.65rem; line-height: 1.2; }
.contact-panel > p { margin: .65rem 0 1rem; color: #514236; }
.contact-panel form { display: grid; gap: .55rem; }
.contact-panel form > label { font-weight: 650; }
.contact-panel form > :is(input:not([type="hidden"]), textarea) {
    width: 100%;
    min-height: 44px;
    margin: 0 0 .25rem;
    padding: .65rem .75rem;
    border: 1px solid #8b7765;
    border-radius: .5rem;
    background: #fff;
    color: #251b14;
    font: inherit;
}

.contact-panel textarea { resize: vertical; }
.contact-panel [aria-invalid="true"] { border-color: #9a2d22; }
.contact-panel .contact-error { color: #8c291f; }
.contact-panel .contact-status { color: #215437; }
.contact-consent { display: flex; gap: .55rem; align-items: flex-start; margin-block: .3rem; font-size: .92rem; }
.contact-consent input { flex: none; margin: .27rem 0 0; width: 1.1rem; height: 1.1rem; accent-color: #654019; }
.contact-panel button { justify-self: start; }
.contact-panel a { text-underline-offset: .16em; }
.contact-map iframe { display: block; width: 100%; height: clamp(260px, 33vw, 400px); margin-bottom: 1rem; border: 0; border-radius: .65rem; background: #e6dfd2; }

@media (max-width: 700px) {
    .contact-location, .contact-grid { grid-template-columns: minmax(0, 1fr); }
}
