.contact-hero { padding: 5.25rem 0; background: var(--color-surface-soft); color: var(--color-ink); }
.contact-hero h1 { margin: 0 0 1rem; font-size: clamp(2.35rem, 5vw, 4.25rem); font-weight: 800; letter-spacing: -.055em; line-height: 1.08; }
.contact-hero p { margin: 0; color: var(--color-muted); font-size: 1rem; }
.contact-info-grid { position: relative; z-index: 2; margin-top: 0; }
.contact-info-card { display: grid; height: 100%; gap: .3rem; padding: 1.35rem; border: 1px solid var(--color-line); border-radius: var(--radius-lg); background: var(--color-surface); color: inherit; box-shadow: 0 8px 22px var(--color-ink-shadow-soft); transition: border-color .2s ease; }
.contact-info-card:hover { border-color: var(--color-primary); color: inherit; }
.contact-info-card.is-pending { background: var(--color-surface-soft); }
.contact-info-card > i { margin-bottom: .35rem; color: var(--color-primary); font-size: 1.3rem; }
.contact-info-card > span { color: var(--color-muted); font-size: .72rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.contact-info-card strong { color: var(--color-ink); font-size: .98rem; line-height: 1.45; overflow-wrap: anywhere; }
.contact-info-card small { color: var(--color-muted); font-size: .78rem; }
.contact-main { margin-top: 4.25rem; }
.contact-copy { position: sticky; top: 7rem; }
.contact-copy h2, .contact-map-copy h2 { margin: 0 0 .85rem; color: var(--color-ink); font-size: clamp(1.85rem, 3vw, 2.55rem); font-weight: 800; letter-spacing: -.05em; }
.contact-copy p, .contact-map-copy p { color: var(--color-muted); }
.contact-copy ul { display: grid; gap: .7rem; padding: 0; margin: 1.5rem 0 0; list-style: none; color: var(--color-ink-soft); font-size: .9rem; font-weight: 600; }
.contact-copy li { display: flex; align-items: flex-start; gap: .55rem; }
.contact-copy i { color: var(--color-primary); font-size: 1.05rem; }
.contact-form-card { padding: clamp(1.25rem, 3vw, 2rem); border: 1px solid var(--color-line); border-radius: var(--radius-xl); background: var(--color-surface); }
.contact-form-card .form-label { margin-bottom: .35rem; color: var(--color-ink-soft); font-size: .78rem; font-weight: 700; }
.contact-form-card .form-control, .contact-form-card .form-select { min-height: 48px; border-color: var(--color-line); }
.contact-form-card textarea.form-control { min-height: 150px; resize: vertical; }
.contact-map-block { display: grid; grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); gap: 2rem; align-items: center; margin-top: 5.5rem; padding-top: 4.5rem; border-top: 1px solid var(--color-line); }
.contact-map-copy .btn { margin-top: .75rem; }
.contact-map { min-height: 340px; overflow: hidden; border: 1px solid var(--color-line); border-radius: var(--radius-lg); background: var(--color-surface-soft); }
.contact-map iframe { width: 100%; height: 340px; border: 0; }
.contact-map-empty { display: grid; height: 340px; place-content: center; gap: .6rem; color: var(--color-muted); text-align: center; }
.contact-map-empty i { color: var(--color-primary); font-size: 2rem; }
@media (max-width: 991.98px) { .contact-copy { position: static; } .contact-map-block { grid-template-columns: 1fr; } }
@media (max-width: 575.98px) { .contact-hero { padding: 4rem 0; } .contact-main { margin-top: 3rem; } .contact-map-block { margin-top: 3.5rem; padding-top: 3rem; } }
