.contact-hero{max-width:700px;margin:0 auto;padding:3.5rem 1.5rem 1.5rem;text-align:center}
.contact-hero h1{font-size:clamp(2rem,5vw,2.8rem);font-weight:800;margin-bottom:.6rem}
.contact-hero p{color:var(--muted);font-size:1rem}
.contact-grid{display:grid;grid-template-columns:360px 1fr;gap:1.5rem;align-items:start;max-width:1000px;margin:0 auto;padding:1.5rem 1.5rem 4rem}
.info-stack{display:flex;flex-direction:column;gap:1rem}
.info-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r);padding:1.3rem;display:flex;gap:1rem;align-items:flex-start;transition:all .2s}
.info-card:hover{border-color:var(--primary);transform:translateX(3px)}
.info-card .i-icon{width:44px;height:44px;border-radius:12px;background:var(--primary-soft);display:flex;align-items:center;justify-content:center;font-size:1.3rem;flex-shrink:0}
.info-card h4{font-size:.92rem;margin-bottom:.2rem}
.info-card p{color:var(--muted);font-size:.82rem}
.info-card a{color:var(--primary-h);text-decoration:none;font-weight:600}
.info-card a:hover{text-decoration:underline}
.response-note{background:var(--success-soft);border:1px solid rgba(16,185,129,.3);border-radius:var(--r);padding:1rem 1.2rem;font-size:.85rem;color:var(--success);display:flex;align-items:center;gap:.6rem}
.form-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r);padding:2rem}
.form-card h2{font-size:1.2rem;margin-bottom:.4rem}
.form-card .form-sub{color:var(--muted);font-size:.88rem;margin-bottom:1.5rem}
.char-count{font-size:.7rem;color:var(--muted);text-align:right;margin-top:.3rem}
.contact-success{display:none;text-align:center;padding:2rem 0}
.contact-success.show{display:block}
.contact-success .s-icon{font-size:3rem;margin-bottom:1rem}
.contact-success h3{margin-bottom:.5rem}
.contact-success p{color:var(--muted);margin-bottom:1.5rem}
@media(max-width:800px){.contact-grid{grid-template-columns:1fr}}

@media(max-width:600px){
  .contact-hero{padding:2.4rem .85rem 1rem}
  .contact-grid{padding:1rem .85rem 3rem;gap:1rem}
  .info-card{padding:1rem}
}
