/* ==========================================================================
   Forms — Custom CAD request, contact, newsletter
   ========================================================================== */

.form-layout {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: var(--space-8);
  align-items: start;
}
@media (max-width: 900px) {
  .form-layout { grid-template-columns: 1fr; }
}

.form-card {
  border: 1px solid var(--line-on-paper);
  border-radius: var(--radius-lg);
  padding: var(--space-7);
}

.field { margin-bottom: var(--space-5); }
.field label {
  display: block;
  font-size: var(--fs-sm);
  font-weight: 600;
  margin-bottom: var(--space-2);
}
.field .hint {
  font-size: var(--fs-xs);
  color: var(--text-on-paper-mute);
  margin-top: 4px;
}
.field input,
.field select,
.field textarea {
  width: 100%;
  padding: 12px 14px;
  border: 1.5px solid var(--line-on-paper);
  border-radius: var(--radius-sm);
  background: var(--paper);
  font-size: var(--fs-sm);
  transition: border-color var(--dur-fast) var(--ease);
}
.field input:focus,
.field select:focus,
.field textarea:focus {
  border-color: var(--ink);
}
.field textarea { resize: vertical; min-height: 120px; }

.field-row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: var(--space-4);
}
@media (max-width: 560px) { .field-row { grid-template-columns: 1fr; } }

.field.has-error input,
.field.has-error select,
.field.has-error textarea {
  border-color: var(--danger);
}
.field-error {
  color: var(--danger);
  font-size: var(--fs-xs);
  margin-top: 4px;
  display: none;
}
.field.has-error .field-error { display: block; }

.radio-cards {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: var(--space-3);
}
@media (max-width: 560px) { .radio-cards { grid-template-columns: 1fr 1fr; } }
.radio-card {
  border: 1.5px solid var(--line-on-paper);
  border-radius: var(--radius-sm);
  padding: var(--space-3);
  text-align: center;
  cursor: pointer;
  font-size: var(--fs-sm);
  transition: border-color var(--dur-fast) var(--ease), background var(--dur-fast) var(--ease);
}
.radio-card input { display: none; }
.radio-card:has(input:checked) {
  border-color: var(--ink);
  background: var(--paper-2);
  font-weight: 600;
}

.form-success {
  display: none;
  text-align: center;
  padding: var(--space-8) var(--space-5);
}
.form-success.is-visible { display: block; }
.form-success svg { width: 46px; height: 46px; color: var(--success); margin: 0 auto var(--space-4); }
.form-success h3 { margin-bottom: var(--space-3); }
.form-success p { color: var(--text-on-paper-mute); max-width: 42ch; margin-inline: auto; }

.form-side {
  border-left: 1px solid var(--line-on-paper);
  padding-left: var(--space-8);
}
@media (max-width: 900px) {
  .form-side { border-left: none; padding-left: 0; border-top: 1px solid var(--line-on-paper); padding-top: var(--space-6); }
}
.form-side h3 { font-size: var(--fs-lg); margin-bottom: var(--space-4); }
.form-side ul { display: flex; flex-direction: column; gap: var(--space-4); }
.form-side li { display: flex; gap: var(--space-3); }
.form-side li svg { width: 20px; height: 20px; color: var(--amber); flex-shrink: 0; margin-top: 2px; }
.form-side li h4 { font-size: var(--fs-sm); margin-bottom: 2px; }
.form-side li p { font-size: var(--fs-sm); color: var(--text-on-paper-mute); }
