/* Contact page */
.contact-grid{display:grid;grid-template-columns:1.4fr 1fr;gap:2rem;align-items:start}
.contact-form{padding:2rem}
.form-note{margin-top:1rem;font-size:.72rem;color:var(--text2);text-align:center}
.contact-info{display:grid;gap:1.1rem}
.info-card{padding:1.5rem;border-radius:var(--radius);background:var(--surface);border:1px solid var(--border);transition:.3s var(--ease)}
.info-card:hover{transform:translateY(-4px);border-color:var(--border2)}
.info-card span{font-size:1.6rem}
.info-card h3{margin:.6rem 0 .2rem;font-size:1rem}
.info-card .mono{font-size:.95rem;color:var(--accent)}
.info-card p{font-size:.85rem;color:var(--text2)}
@media (max-width:820px){.contact-grid{grid-template-columns:1fr}}
.hp-field{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.form-status{margin-top:.9rem;font-size:.88rem;min-height:1.3em;text-align:center}
.form-status.ok{color:#4ade80}
.form-status.err{color:#f87171}
.form-status.busy{color:var(--text2)}
.btn.loading{opacity:.7;pointer-events:none}

/* Contact form: status banner, loading state, honeypot */
.form-status{display:flex;gap:.6rem;align-items:flex-start;padding:.95rem 1.15rem;border-radius:12px;
  margin-bottom:1.3rem;font-size:.93rem;border:1px solid}
.form-status[hidden]{display:none}
.form-status-ok{background:rgba(74,222,128,.1);border-color:rgba(74,222,128,.45);color:#4ade80}
.form-status-error{background:rgba(248,113,113,.1);border-color:rgba(248,113,113,.45);color:#f87171}

.btn .spinner{display:none;width:16px;height:16px;flex:none;border-radius:50%;
  border:2px solid rgba(255,255,255,.35);border-top-color:#fff;animation:spin .7s linear infinite}
.btn.is-loading .spinner{display:inline-block}
.btn.is-loading{pointer-events:none;opacity:.85}
@keyframes spin{to{transform:rotate(360deg)}}

.hp-field{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}

