.nova-template-contact {
    width: min(100% - 64px, 1240px);
    max-width: 1240px;
    padding-block: 72px 112px;
}

.nova-template-contact .site-contact {
    margin-bottom: 24px;
}

.contact-intro-panel {
    position: relative;
    display: flex;
    max-width: 100%;
    flex-direction: column;
    gap: 18px;
    min-height: 0;
    margin-bottom: 48px;
    padding: 0;
    overflow: visible;
    border: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
}

.contact-intro-panel::before,
.contact-intro-panel::after { display: none; }

.contact-intro-heading,
.contact-intro-copy {
    position: relative;
    z-index: 1;
}

.contact-kicker {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    margin-bottom: 14px;
    color: var(--primary-dark);
    font-size: .8125rem;
    font-weight: 700;
    letter-spacing: .11em;
    text-transform: uppercase;
}

.contact-kicker::before {
    content: "";
    width: 28px;
    height: 2px;
    background: currentColor;
}

.contact-intro-heading h2 {
    max-width: 100%;
    color: #20262b;
    font-size: clamp(2.1rem, 4vw, 3.55rem);
    font-weight: 800;
    line-height: 1.08;
    letter-spacing: -.035em;
    text-wrap: balance;
}

.contact-intro-copy > p {
    max-width: 100%;
    color: #252525;
    font-size: 1.0625rem;
    line-height: 1.75;
}

.contact-intro-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    margin-top: 28px;
}

.contact-intro-actions a {
    display: inline-flex;
    align-items: center;
    gap: 9px;
    min-height: 42px;
    padding: 9px 16px;
    border: 1px solid #dde2da;
    border-radius: 4px;
    background: #f7f9f6;
    color: #252525;
    font-size: .875rem;
    font-weight: 600;
    transition: border-color .2s, color .2s, transform .2s;
}

.contact-intro-actions a i { color: var(--primary); }
.contact-intro-actions a:hover { color: var(--primary-dark); border-color: #b7cbb0; transform: translateY(-2px); }

.contact-quick-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 16px;
    margin-top: 0;
}

.contact-quick-card {
    position: relative;
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    min-height: 154px;
    padding: 24px 64px 22px 22px;
    border: 1px solid var(--border);
    border-radius: 4px;
    background: #fff;
    box-shadow: 0 9px 26px rgb(28 36 25 / 5%);
    transition: transform .2s, border-color .2s, box-shadow .2s;
}

.contact-quick-card:hover {
    transform: translateY(-4px);
    border-color: #c8d6c3;
    box-shadow: 0 15px 34px rgb(28 36 25 / 9%);
}

.contact-quick-icon {
    position: absolute;
    top: 18px;
    right: 18px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 38px;
    height: 38px;
    border-radius: 50%;
    background: #252b2f;
    color: #fff;
    font-size: .875rem;
    transition: background .2s, transform .2s;
}

.contact-quick-card:hover .contact-quick-icon { background: var(--primary-dark); transform: rotate(6deg); }
.contact-quick-label { margin-bottom: 7px; color: var(--text-muted); font-size: .78rem; font-weight: 600; letter-spacing: .025em; }
.contact-quick-card strong { color: #252b2f; font-size: .9375rem; font-weight: 650; line-height: 1.45; overflow-wrap: anywhere; }

.nova-template-contact > .site-block-grid-section {
    margin-top: 20px;
    padding: 24px;
    border: 1px solid var(--border);
    border-radius: 4px;
    background: #f1f3f0;
    box-shadow: 0 16px 44px rgb(28 36 25 / 6%);
}

.nova-template-contact .site-block-grid {
    grid-template-columns: minmax(0, .9fr) minmax(520px, 1.1fr);
    gap: 24px;
    align-items: stretch;
}

.nova-template-contact .site-map {
    grid-column: 1;
    grid-row: 1;
    position: relative;
    min-height: 650px;
    margin: 0;
    border: 0;
    border-radius: 4px;
    background: #dfe4dd;
    box-shadow: none;
}

.nova-template-contact .site-map iframe { min-height: 650px; filter: saturate(.7) contrast(1.02); }

.site-map-caption {
    position: absolute;
    left: 18px;
    right: 18px;
    bottom: 18px;
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 14px 16px;
    border: 1px solid rgb(255 255 255 / 55%);
    border-radius: 4px;
    background: rgb(25 31 35 / 91%);
    color: #fff;
    box-shadow: 0 10px 30px rgb(0 0 0 / 20%);
    backdrop-filter: blur(8px);
    pointer-events: none;
}

.site-map-caption > span:first-child {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 38px;
    height: 38px;
    flex: 0 0 auto;
    border-radius: 50%;
    background: var(--primary);
}

.site-map-caption > span:last-child { display: grid; gap: 2px; }
.site-map-caption small { color: #bfc7cc; font-size: .72rem; letter-spacing: .08em; text-transform: uppercase; }
.site-map-caption strong { font-size: .9375rem; font-weight: 650; }

.nova-template-contact .site-contact-form {
    grid-column: 2;
    grid-row: 1;
    display: flex;
    flex-direction: column;
    justify-content: center;
    min-height: 650px;
    padding: clamp(30px, 4vw, 48px);
    border: 0;
    border-radius: 4px;
    box-shadow: none;
}

.site-contact-form-header { margin-bottom: 28px; }
.nova-template-contact .site-eyebrow { margin-bottom: 10px; color: var(--primary-dark) !important; font-size: .78rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }
.nova-template-contact .site-eyebrow::before { flex: 0 0 28px; height: 2px; background: currentColor; }
.nova-template-contact .site-contact-form h2 { margin-bottom: 12px; color: #20262b; font-size: clamp(1.75rem, 3vw, 2.35rem); letter-spacing: -.025em; }
.site-contact-form-header > p:last-child { max-width: 560px; color: #252525; line-height: 1.65; }
.nova-template-contact .site-form-fields { gap: 18px 16px; margin-bottom: 18px; }
.site-form-field { display: grid; gap: 8px; }
.site-form-field label { color: #252525; font-size: .8125rem; font-weight: 650; }
.nova-template-contact .site-form input,
.nova-template-contact .site-form textarea {
    border-color: #e2e6df;
    border-radius: 4px;
    background: #f7f8f6;
}
.nova-template-contact .site-form input { min-height: 52px; }
.nova-template-contact .site-form textarea { min-height: 160px; margin-bottom: 0; }
.site-form-actions { display: flex; align-items: center; justify-content: space-between; gap: 20px; margin-top: 22px; }
.site-form-actions p { display: flex; align-items: center; gap: 8px; max-width: 270px; color: #252525; font-size: .78rem; line-height: 1.45; }
.site-form-actions p i { color: var(--primary); }
.site-form-actions .site-button { gap: 12px; min-width: 174px; border-radius: 4px; background: #252b2f; }
.site-form-actions .site-button:hover { background: var(--primary-dark); }

@media (max-width: 1080px) {
    .contact-quick-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .nova-template-contact .site-block-grid { grid-template-columns: minmax(0, .85fr) minmax(460px, 1.15fr); }
}

@media (max-width: 900px) {
    .nova-template-contact { width: min(100% - 32px, 1240px); }
    .contact-intro-panel { min-height: 0; }
    .nova-template-contact .site-block-grid { grid-template-columns: 1fr; }
    .nova-template-contact .site-map,
    .nova-template-contact .site-contact-form { grid-column: 1; }
    .nova-template-contact .site-map { grid-row: 1; min-height: 430px; }
    .nova-template-contact .site-map iframe { min-height: 430px; }
    .nova-template-contact .site-contact-form { grid-row: 2; min-height: 0; }
}

@media (max-width: 640px) {
    .nova-template-contact { padding-block: 44px 72px; }
    .contact-intro-panel { gap: 16px; margin-bottom: 36px; padding: 0; border-radius: 0; }
    .contact-intro-heading h2 { font-size: 2.15rem; }
    .contact-intro-copy > p { font-size: 1rem; }
    .contact-quick-grid { grid-template-columns: 1fr; gap: 12px; }
    .contact-quick-card { min-height: 132px; }
    .nova-template-contact > .site-block-grid-section { padding: 12px; border-radius: 4px; }
    .nova-template-contact .site-block-grid { gap: 12px; }
    .nova-template-contact .site-map,
    .nova-template-contact .site-map iframe { min-height: 360px; }
    .nova-template-contact .site-contact-form { padding: 28px 20px; }
    .nova-template-contact .site-form-fields { grid-template-columns: 1fr; }
    .site-form-actions { align-items: stretch; flex-direction: column; }
    .site-form-actions .site-button { width: 100%; }
}
