/* Light contact form: explicit labels and scoped high-contrast controls. */
.contact-form {
  position: relative;
  margin: 40px 0 32px;
  padding: 36px;
  background: #222b3d;
  border: 1px solid #53617a;
  border-radius: 20px;
  box-shadow: 0 16px 40px #080d181c;
}
.contact-upload { min-width: 0; margin-bottom: 28px; }
.contact-upload label { margin-bottom: 0; }
.contact-upload #contact-attachment-remove { min-height: 44px; margin-top: 12px; padding: 8px 14px; }
.contact-upload #contact-attachment-remove[hidden], .attachment-error[hidden] { display: none; }
.contact-upload .attachment-error { margin: 12px 0 0; color: #9f253a; font-size: 14px; line-height: 1.7; overflow-wrap: anywhere; }
.localized-file-picker:has(input[aria-invalid=true]) { border: 2px solid #ad3247; }
.contact-fields {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  column-gap: 28px;
  row-gap: 0;
}
.contact-form label {
  display: block;
  margin-bottom: 28px;
  min-width: 0;
  color: var(--text);
  font-size: 16px;
  font-weight: 600;
  line-height: 1.7;
}
.contact-form label span, .contact-form small {
  color: #c6cfe2;
  font-weight: 400;
}
.contact-form label > span { font-size: 14px; }
.contact-form input:not([type=checkbox]), .contact-form textarea {
  display: block;
  width: 100%;
  min-width: 0;
  min-height: 56px;
  margin-top: 10px;
  padding: 14px 16px;
  background: var(--field);
  color: var(--text);
  border: 1px solid #71829e;
  border-radius: 10px;
  font: inherit;
  font-size: 16px;
  font-weight: 400;
  line-height: 1.6;
  caret-color: var(--mint);
  transition: border-color .18s, box-shadow .18s;
}
.contact-form textarea { resize: vertical; min-height: 180px; }
.contact-form input::placeholder, .contact-form textarea::placeholder { color: #aebbd2; opacity: 1; }
.contact-form input:not([type=checkbox]):hover, .contact-form textarea:hover { border-color: #a6b6d4; }
.contact-form input:focus-visible, .contact-form textarea:focus-visible {
  outline: 3px solid var(--mint);
  outline-offset: 3px;
  border-color: var(--mint);
}
.contact-form input:user-invalid, .contact-form textarea:user-invalid { border-color: #ffb9c4; }
.contact-form input[type=file] { padding: 8px; overflow: hidden; }
.contact-form input[type=file]::file-selector-button {
  min-height: 40px;
  padding: 8px 12px;
  margin-right: 12px;
  border: 1px solid #71829e;
  border-radius: 7px;
  background: #2e3a52;
  color: var(--text);
  font: inherit;
  cursor: pointer;
}
.contact-form input[type=file]::file-selector-button:hover { background: #3b4965; }
.contact-form small { display: block; margin-top: 10px; font-size: 14px; line-height: 1.7; }
.contact-form .contact-check {
  display: flex;
  align-items: flex-start;
  gap: 14px;
  min-height: 44px;
  margin: 4px 0 20px;
  cursor: pointer;
}
.contact-form .contact-check span { font-size: 16px; color: var(--text); }
.contact-check input {
  flex-shrink: 0;
  width: 22px;
  height: 22px;
  margin: 3px 0;
  accent-color: var(--mint);
  cursor: pointer;
}
.contact-form .contact-note { max-width: 800px; font-size: 14px; line-height: 1.8; color: #c6cfe2; }
#contact-note { padding-top: 22px; border-top: 1px solid #53617a; }
#contact-captcha { margin: 24px 0 16px; }
#contact-captcha[hidden] { display: none; }
#contact-captcha-status {
  padding: 14px 18px;
  background: #182333;
  border: 1px solid #617592;
  border-left: 3px solid var(--accent);
  border-radius: 8px;
  color: #d8e3f8;
}
.contact-form button { font: inherit; font-weight: 600; cursor: pointer; margin-top: 8px; }
.contact-form button:disabled { opacity: 1; background: #38445e; border-color: #71829e; color: #d1daed; cursor: not-allowed; }
.contact-form[aria-busy=true] button { cursor: wait; }
.contact-status { margin: 20px 0 12px; overflow-wrap: anywhere; }
.contact-status[hidden], #contact-captcha-status[hidden], #contact-google-note[hidden] { display: none; }
.contact-status:not(:empty) { padding: 16px 18px; border: 1px solid #71829e; border-radius: 10px; background: #182333; }
.contact-status[data-state=error] { color: #ffbdc7; border-color: #b77b88; }
.contact-dialog { width: min(460px, calc(100% - 32px)); max-height: calc(100% - 32px); padding: 32px; overflow-wrap: anywhere; color: var(--text); background: var(--panel); border: 1px solid #72809f; border-radius: 20px; }
.contact-dialog::backdrop { background: #080d18b8; }
.contact-dialog h2 { font-size: 30px; margin: 0 0 16px; }
.contact-dialog p { margin: 0 0 24px; }
.contact-dialog button { font: inherit; cursor: pointer; }
.contact-trap { position: absolute; left: -10000px; width: 1px; height: 1px; overflow: hidden; }
@media (max-width: 980px) {
  .contact-form { padding: 28px; }
  .contact-fields { column-gap: 22px; }
}
@media (max-width: 760px) {
  .contact-form { padding: 24px; margin-top: 32px; }
  .contact-fields { grid-template-columns: 1fr; }
  .contact-form .button { width: 100%; }
}
@media (max-width: 420px) {
  /* Avoid three nested borders stealing space from the mobile controls. */
  .contact-form { padding: 24px 0 0; border: 0; border-top: 1px solid #53617a; border-radius: 0; background: transparent; box-shadow: none; }
  .contact-form input:not([type=checkbox]), .contact-form textarea { padding: 14px 12px; }
  .contact-form input[type=file] { padding: 8px; }
  #contact-captcha-status { padding: 14px; }
}
@media (prefers-reduced-motion: reduce) {
  .contact-form input, .contact-form textarea { transition: none; }
}
/* Contextual light surfaces; never inherit dark-island input colors. */
.contact-form, .contact-dialog { color-scheme: light; --text: #19212d; --muted: #515b68; --panel: #fff; --field: #fff; --mint: #245c70; --focus: #245c70; background: #f7f5f0; color: #19212d; border-color: #79828d; border-radius: 8px; box-shadow: none; }
.contact-form label span, .contact-form small, .contact-form .contact-note { color: #515b68; }
.contact-form input:not([type=checkbox]), .contact-form textarea { border-color: #79828d; border-radius: 6px; caret-color: #245c70; }
.contact-form input::placeholder, .contact-form textarea::placeholder { color: #616a76; }
.contact-form input:not([type=checkbox]):hover, .contact-form textarea:hover { border-color: #245c70; }
.contact-form input:user-invalid, .contact-form textarea:user-invalid { border: 2px solid #ad3247; }
.contact-form input[type=file]::file-selector-button { background: #eeece6; color: #19212d; border-color: #79828d; }
.contact-form input[type=file]::file-selector-button:hover { background: #e0ddd5; }
#contact-note { border-color: #79828d; }
#contact-captcha-status, .contact-status:not(:empty) { background: #eeece6; color: #19212d; border-color: #79828d; }
.contact-status[data-state=error] { background: #fff0f1; color: #9f253a; border-color: #ad3247; }
.contact-form button:disabled { background: #e0ddd5; color: #515b68; border-color: #79828d; }
.contact-dialog p { color: #515b68; }
.contact-form .button.primary, .contact-dialog .button.primary { background: #19212d; color: #fff; border-color: #19212d; }
.contact-form .button.primary:hover, .contact-dialog .button.primary:hover { background: #303d4e; color: #fff; }
.contact-form .button.primary:disabled { background: #e0ddd5; color: #515b68; border-color: #79828d; }
@media (max-width:420px) { .contact-form { background: transparent; border-radius: 0; } }


