/* Contact form. Shared by the homepage and the PHP fallback page. */
.contact-section > .contact-form {
  position: relative;
  width: min(100%, 820px);
  margin: 40px auto 0;
  padding: clamp(22px, 4vw, 42px);
  border: 1px solid rgba(204, 227, 216, .19);
  border-radius: 3px 3px 3px 22px;
  background:
    linear-gradient(130deg, rgba(197, 172, 131, .055), transparent 56%),
    rgba(23, 39, 43, .66);
  box-shadow: inset 0 1px 0 rgba(237, 244, 228, .06), 0 24px 70px rgba(0, 0, 0, .13);
  text-align: left;
}

@supports ((backdrop-filter: blur(18px)) or (-webkit-backdrop-filter: blur(18px))) {
  .contact-section > .contact-form {
    -webkit-backdrop-filter: blur(18px);
    backdrop-filter: blur(18px);
  }
}

.contact-form-row {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 24px;
}

.contact-field { min-width: 0; }
.contact-field label {
  display: block;
  margin-bottom: 9px;
  color: #d6e0d8;
  font-size: .8rem;
  font-weight: 600;
}

.contact-field input,
.contact-field textarea {
  display: block;
  width: 100%;
  max-width: 100%;
  padding: 13px 15px;
  border: 1px solid rgba(188, 218, 204, .22);
  border-radius: 5px;
  outline: 2px solid transparent;
  outline-offset: 3px;
  background: rgba(6, 17, 21, .56);
  color: #edf1e9;
  font: inherit;
  font-size: 1rem;
  line-height: 1.6;
  transition: border-color 160ms ease, background-color 160ms ease, outline-color 160ms ease;
}

.contact-field textarea { min-height: 190px; resize: vertical; }
.contact-field input:focus,
.contact-field textarea:focus {
  border-color: #b6d2b6;
  outline-color: rgba(182, 210, 182, .4);
  background: rgba(8, 22, 27, .82);
}

.contact-field :is(input, textarea)[aria-invalid="true"] { border-color: #dfad9e; }
.contact-field-error {
  min-height: 1.6em;
  margin: 6px 0 15px;
  color: #e9bcad;
  font-size: .75rem;
  line-height: 1.6;
}

.contact-form-actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 16px 24px;
}

.contact-submit {
  display: inline-flex;
  align-items: center;
  justify-content: space-between;
  gap: 34px;
  min-height: 50px;
  min-width: 180px;
  padding: 12px 18px;
  border: 1px solid rgba(211, 228, 206, .45);
  border-radius: 4px;
  background: linear-gradient(130deg, rgba(184, 209, 172, .19), rgba(126, 163, 149, .08));
  color: #edf3e6;
  font: inherit;
  font-size: .87rem;
  font-weight: 600;
  cursor: pointer;
  transition: background-color 180ms ease, border-color 180ms ease;
}

.contact-submit:hover { border-color: #c9dec0; background-color: rgba(182, 210, 182, .14); }
.contact-submit:focus-visible { outline: 2px solid #b6d2b6; outline-offset: 5px; }
.contact-submit:disabled { cursor: wait; opacity: .65; }
.contact-submit-mark { font-size: 1.15rem; font-weight: 400; }
.contact-form-note { color: #a0b2aa; font-size: .72rem; }

.contact-status {
  margin: 18px 0 0;
  color: #c9dfc2;
  font-size: .85rem;
  line-height: 1.7;
}

.contact-status:empty { margin: 0; }
.contact-status[data-state="error"] { color: #e9bcad; }
.contact-status:focus-visible { outline: 1px solid currentColor; outline-offset: 6px; }
.contact-fallback { margin-top: 16px; font-size: .8rem; }
.contact-fallback[hidden] { display: none; }

.contact-section > .contact-direct {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  align-items: baseline;
  gap: 4px 14px;
  margin: 28px 0 0;
  color: #a0b2aa;
  font-size: .8rem;
}

.contact-direct .contact-email {
  margin: 0;
  padding: 2px 0 5px;
  font-size: clamp(.8rem, 3.1vw, .95rem);
  letter-spacing: -.015em;
}

.contact-direct .contact-email > small { font-size: inherit; }
.contact-direct .contact-email > span { border: 0; background: none; width: auto; height: auto; }

.contact-trap {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  overflow: hidden;
  clip-path: inset(50%);
  white-space: nowrap;
}

.contact-page .contact-section { padding-top: 150px; }
.contact-page .contact-section h2 { font-size: clamp(3rem, 7vw, 5rem); }

@media (max-width: 560px) {
  .contact-form-row { grid-template-columns: minmax(0, 1fr); gap: 0; }
  .contact-form-actions { align-items: start; flex-direction: column; gap: 12px; }
  .contact-submit { width: 100%; }
}

@media (prefers-reduced-motion: reduce) {
  .contact-field input,
  .contact-field textarea,
  .contact-submit { transition: none; }
}
