.contact-page { min-height:100vh; display:flex; align-items:center; }
.contact-layout { display:grid; grid-template-columns:1fr .95fr; gap:2rem; align-items:start; padding-bottom:4rem; }
.contact-copy p:nth-of-type(2) { margin-top:1rem; max-width:580px; }
.contact-info-card, .contact-form-card, .faq-block, .map-card { background:var(--surface); border-radius:28px; border:1px solid var(--line); box-shadow:var(--shadow); }
.contact-info-card { margin-top:2rem; padding:1.75rem; display:grid; gap:1rem; }
.contact-info-card span { display:block; color:var(--accent-dark); font-size:.82rem; text-transform:uppercase; letter-spacing:.16em; margin-bottom:.35rem; }
.contact-info-card strong { font-size:1.05rem; }
.contact-form-card { padding:2rem; }
.contact-form-card h2 { margin-bottom:1rem; }
.form-row { display:flex; flex-direction:column; gap:.5rem; margin-bottom:1rem; }
.form-row label { font-weight:600; }
.form-row input, .form-row textarea { border:1px solid var(--line); border-radius:14px; background:#fff; padding:1rem; }
.form-row textarea { min-height:140px; resize:vertical; }
.extra-contact-sections { display:grid; gap:2rem; padding-bottom:4rem; }
.large-map { min-height:420px; overflow:hidden; }
.large-map iframe { width:100%; min-height:420px; border:0; }
.faq-block { padding:2rem; }
.faq-list { display:grid; gap:1rem; }
.faq-list details { background:var(--bg); border-radius:18px; padding:1rem 1.15rem; }
.faq-list summary { cursor:pointer; font-weight:700; color:var(--text); }
.faq-list p { margin-top:.8rem; }
@media (max-width:900px) { .contact-layout { grid-template-columns:1fr; } }