.contact {
  --contact-border: #355263;
  --contact-surface: #0b1d30;
  --contact-shadow: 0 16px 50px #04132145;
  --contact-field: #071525;
  --contact-field-border: #5b778a;
  --contact-muted: var(--muted);
  --contact-accent: var(--mint);
  --contact-error: #ffb8ad;
}
.product-contact { display: block; width: fit-content; margin-top: 14px; color: var(--mint); text-decoration: underline; text-underline-offset: 3px; }
.contact-card {
  width: min(100%, 800px);
  margin-inline: auto;
  border: 1px solid var(--contact-border);
  border-radius: 16px;
  background: var(--contact-surface);
  box-shadow: var(--contact-shadow);
}
.contact-intro, .contact-form { padding: clamp(20px, 4vw, 36px); }
.contact-intro { border-bottom: 1px solid var(--contact-border); }
.contact-intro h2 {
  margin: 0;
  font-size: clamp(1.9rem, 4vw, 2.85rem);
  line-height: 1.1;
  text-wrap: balance;
}
.contact-intro :is(.intro, .section-lead) {
  margin: 10px 0 0;
  max-width: 56ch;
  color: var(--contact-muted);
}
.contact-fields {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16px 20px;
}
.contact-form label {
  display: grid;
  grid-template-rows: auto 1fr;
  gap: 6px;
  min-width: 0;
  font-size: .94rem;
  font-weight: 600;
}
.contact-form small { color: var(--contact-muted); font-size: .875em; font-weight: 400; }
.contact-form > label { margin-top: 16px; }
.contact-form :is(input, select, textarea) {
  width: 100%;
  min-width: 0;
  min-height: 46px;
  padding: 10px 12px;
  border: 1px solid var(--contact-field-border);
  border-radius: 8px;
  background: var(--contact-field);
  color: inherit;
  font: inherit;
  font-size: 1rem;
  font-weight: 400;
}
.contact-select { position: relative; display: grid; min-width: 0; }
.contact-form select { appearance: none; padding-inline-end: 44px; cursor: pointer; }
.contact-select::after {
  content: '';
  position: absolute;
  top: 50%;
  inset-inline-end: 18px;
  width: 8px;
  height: 8px;
  border-right: 2px solid var(--contact-muted);
  border-bottom: 2px solid var(--contact-muted);
  transform: translateY(-70%) rotate(45deg);
  pointer-events: none;
}
.contact-form textarea { resize: vertical; }
.contact-form textarea::placeholder { color: var(--contact-muted); opacity: 1; }
.contact-form :is(input, select, textarea):focus-visible { outline: 2px solid var(--contact-accent); outline-offset: 2px; }
.form-actions { display: flex; align-items: center; flex-wrap: wrap; gap: 12px 18px; margin-top: 20px; }
.form-note, .form-status { margin: 0; color: var(--contact-muted); font-size: .875rem; }
.form-status:not(:empty) {
  margin-top: 16px;
  padding: 10px 12px;
  border-left: 3px solid currentColor;
  background: var(--contact-field);
}
.form-status[data-state=error] { color: var(--contact-error); }
.form-status[data-state=success] { color: var(--contact-accent); }
.contact-form button:disabled { opacity: .65; cursor: wait; }

@media (max-width: 590px) {
  .contact-fields { grid-template-columns: 1fr; gap: 14px; }
  .form-actions .button { width: 100%; }
}
