/* --- Contact page --- */

.contact-hero { padding-bottom: var(--spacing-2xl); }
.contact-hero h1 { font-size: clamp(1.75rem, 4vw, 2.4rem); margin-bottom: var(--spacing-md); }
.contact-hero-lead {
  font-size: 1.05rem;
  color: rgba(255,255,255,0.72);
  max-width: 52ch;
  line-height: 1.7;
}

/* Layout */
.contact-layout {
  display: grid;
  grid-template-columns: 1fr 340px;
  gap: var(--spacing-3xl);
  align-items: start;
}

.contact-form-wrap h2 {
  font-size: 1.3rem;
  margin-bottom: var(--spacing-xl);
}

/* Form */
.contact-form {
  display: flex;
  flex-direction: column;
  gap: var(--spacing-lg);
}

.form-row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: var(--spacing-lg);
}

/* Sidebar */
.contact-sidebar {
  display: flex;
  flex-direction: column;
  gap: var(--spacing-lg);
  position: sticky;
  top: 88px;
}

.contact-info-card { display: flex; flex-direction: column; gap: var(--spacing-md); }
.contact-info-card h3 { font-size: 1rem; }
.contact-info-card address {
  font-style: normal;
  display: flex;
  flex-direction: column;
  gap: var(--spacing-sm);
  font-size: 0.9rem;
  color: var(--color-text-muted);
  line-height: 1.6;
}
.contact-info-card address a {
  color: var(--color-accent);
  font-weight: 500;
}

.expect-list {
  display: flex;
  flex-direction: column;
  gap: var(--spacing-sm);
}
.expect-list li {
  font-size: 0.875rem;
  color: var(--color-text-muted);
  padding-left: 1.2rem;
  position: relative;
  line-height: 1.5;
}
.expect-list li::before {
  content: '✓';
  position: absolute;
  left: 0;
  color: var(--color-accent);
  font-weight: 700;
}

/* Inline validation feedback */
.form-control.is-invalid { border-color: var(--color-error); }
.field-error {
  font-size: 0.8rem;
  color: var(--color-error);
  margin-top: 2px;
}

/* Responsive */
@media (max-width: 860px) {
  .contact-layout { grid-template-columns: 1fr; }
  .contact-sidebar { position: static; }
}

@media (max-width: 520px) {
  .form-row { grid-template-columns: 1fr; }
}
