.contact-main {
    max-width: 1440px;
    margin: 0 auto;
    padding: clamp(36px, 5vw, 72px) clamp(20px, 4vw, 64px) clamp(48px, 6vw, 88px);
}
.contact-layout { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(40px, 6vw, 96px); align-items: stretch; }
.contact-intro { display: flex; flex-direction: column; padding-block: 12px 24px; min-width: 0; }
.contact-intro .section-title { margin-bottom: 24px; }
.contact-intro h1 { margin: 0; font-size: var(--text-title); line-height: var(--line-heading); font-weight: 500; letter-spacing: var(--tracking-heading); }
.contact-description { margin: 28px 0 44px; max-width: 37ch; font-size: var(--text-lead); line-height: 1.55; color: var(--text-muted); }
.contact-details-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 36px 24px; margin-top: auto; }
.contact-detail { min-width: 0; }
.contact-detail h2 { margin: 0 0 12px; font-size: var(--text-body); font-weight: 500; }
.contact-detail p, .contact-detail address, .contact-detail a { margin: 0; font-size: var(--text-body); line-height: 1.6; font-style: normal; color: var(--text-muted); }
.contact-detail a { text-decoration: none; text-underline-offset: 4px; overflow-wrap: anywhere; }
.contact-detail a:hover { color: var(--brand-burgundy); text-decoration: underline; }
.contact-socials { display: flex; flex-wrap: wrap; gap: 8px 20px; }
.contact-socials a { display: inline-flex; gap: 8px; align-items: center; min-height: 32px; }
.contact-socials svg { width: 17px; height: 17px; }
.contact-form-panel { display: grid; padding: clamp(28px, 3.7vw, 56px); background: var(--brand-cream); border-radius: 28px; min-width: 0; }
.contact-form-content, .contact-success { grid-area: 1 / 1; min-width: 0; }
.contact-form-panel h2 { margin: 0 0 12px; font-size: var(--text-section); line-height: 1.1; font-weight: 500; letter-spacing: var(--tracking-heading); }
.contact-form-content > p { margin: 0; max-width: 32ch; font-size: var(--text-body); line-height: 1.6; color: var(--text-muted); }
.contact-form-panel.is-success .contact-form-content { visibility: hidden; }
.contact-success { display: flex; flex-direction: column; justify-content: center; align-items: center; text-align: center; }
.contact-success[hidden] { display: none; }
.contact-success svg { width: 80px; height: 80px; margin-bottom: 28px; color: var(--brand-coral); }
.contact-success h2 { outline: none; }
.contact-success p { margin: 0; color: var(--text-muted); font-size: var(--text-body); }
.contact-form-panel .contact-form { max-width: none; gap: 24px; margin-top: 32px; }
.contact-form-panel .form-group { gap: 0; }
.contact-form-panel .form-group label { font-family: var(--font-sans); font-size: var(--text-label); text-transform: none; font-weight: 500; }
.contact-form-panel .form-group input, .contact-form-panel .form-group textarea { width: 100%; padding: 9px 0; border: 0; border-bottom: 1px solid var(--brand-mauve); border-radius: 0; background: transparent; line-height: 1.5; }
.contact-form-panel .form-group textarea { min-height: 104px; }
.contact-form-panel .form-group :is(input, textarea):focus { border-color: var(--brand-coral); box-shadow: 0 1px 0 var(--brand-coral); }
.contact-send { display: inline-flex; align-items: center; justify-content: center; gap: 20px; justify-self: start; padding: 13px 24px; min-height: 48px; border: 0; border-radius: 999px; background: var(--brand-burgundy); color: var(--brand-paper); cursor: pointer; font-size: var(--text-ui); transition: background .2s; font-weight: 500;
}
.contact-send:hover { background: var(--dark-surface); }
.contact-send:disabled { opacity: .6; cursor: wait; }
.contact-map { position: relative; display: block; margin-top: clamp(40px, 6vw, 80px); aspect-ratio: 3333 / 1278; overflow: hidden; isolation: isolate; border-radius: 24px; background: #e5e5e5; }
.contact-map > img { width: 100%; height: 100%; object-fit: cover; filter: grayscale(1); }
.contact-map-pin { position: absolute; left: 50.05%; top: 52.7%; width: clamp(26px, 2.5vw, 38px); height: auto; transform: translate(-50%, -100%); color: var(--brand-coral); filter: drop-shadow(0 2px 3px #0002); }
.contact-map-caption { position: absolute; inset: auto 20px 20px; display: flex; justify-content: space-between; align-items: center; gap: 16px; padding: 14px 18px; border-radius: 12px; background: var(--brand-paper); font-size: var(--text-label); line-height: 1.3; }
.contact-map-caption span:last-child { white-space: nowrap; color: var(--text-muted); }
.contact-map:hover .contact-map-caption span:last-child { color: var(--brand-burgundy); }
@media (max-width: 900px) {
    .contact-layout { gap: 32px; }
    .contact-details-grid { grid-template-columns: 1fr; gap: 24px; }
    .contact-intro h1 { font-size: var(--text-title); line-height: var(--line-heading); letter-spacing: var(--tracking-heading);
}
    .contact-description { font-size: var(--text-body); margin-block: 24px 36px; }
}
@media (max-width: 680px) {
    .contact-layout { grid-template-columns: 1fr; gap: 36px; }
    .contact-intro { padding: 0; }
    .contact-intro h1 { font-size: var(--text-title); line-height: var(--line-heading); letter-spacing: var(--tracking-heading);
}
    .contact-details-grid { grid-template-columns: 1fr 1fr; gap: 28px 20px; }
    .contact-form-panel { padding: 28px 24px; border-radius: 24px; }
    .contact-map { aspect-ratio: 1.15; border-radius: 20px; }
    .contact-map-caption { inset: auto 12px 12px; padding: 14px; flex-direction: column; align-items: flex-start; gap: 6px; }
}
@media (prefers-reduced-motion: reduce) { .contact-send { transition: none; font-weight: 500;
} }

.contact-send { background: var(--brand-coral); color: var(--brand-burgundy); font-weight: 500;
}
.contact-send:hover { background: var(--brand-burgundy); color: var(--brand-cream); }
.contact-detail a:hover { text-decoration-color: var(--brand-coral); }
