/* Form Page Styles
   ––––––––––––––––––––––––––––––––––––––––––––––––––
   Used by locktober.html. Builds on style.css tokens and inherits the
   .container-left layout used by the privacy page. */

.form-title {
  margin-top: var(--spacing-l);
}
.container-left .form-intro {
  margin-bottom: var(--spacing-xl);
}

/* Sections
   –––––––––––––––––––––––––––––––––––––––––––––––––– */
.form-section {
  border: none;
  padding: 0;
  margin: 0 0 var(--spacing-xl) 0;
}
.form-section > legend {
  font-size: 0.875rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  opacity: 0.65;
  padding: 0;
  margin-bottom: var(--spacing-s);
}

/* Fields
   –––––––––––––––––––––––––––––––––––––––––––––––––– */
.form-field {
  margin-bottom: var(--spacing-m);
}
.form-field label,
.form-checkgroup > legend {
  display: block;
  font-size: var(--scale-0);
  font-weight: 700;
  margin-bottom: var(--spacing-xs);
}
.req {
  color: #D72638;
}
.opt {
  font-weight: 400;
  opacity: 0.55;
  font-size: 0.875rem;
}

.form input[type="text"],
.form input[type="date"],
.form select,
.form textarea {
  width: 100%;
  box-sizing: border-box;
  min-height: 3rem;
  padding: 0.75rem 1rem;
  font-family: inherit;
  font-size: var(--scale-0);
  line-height: 1.4;
  color: inherit;
  background-color: #ffffff;
  border: 1px solid #ccc;
  border-radius: 0.5rem;
  transition: border-color 0.15s ease;
}
.form textarea {
  resize: vertical;
}
.form input:hover,
.form select:hover,
.form textarea:hover {
  border-color: #999;
}
.form input[aria-invalid="true"],
.form select[aria-invalid="true"],
.form textarea[aria-invalid="true"] {
  border-color: #D72638;
}

/* Checkboxes
   –––––––––––––––––––––––––––––––––––––––––––––––––– */
.form-checkgroup {
  border: none;
  padding: 0;
  margin: 0 0 var(--spacing-m) 0;
}
.check {
  display: flex;
  align-items: flex-start;
  gap: 0.625rem;
  font-size: var(--scale-0);
  font-weight: 400;
  margin-bottom: var(--spacing-xs);
  cursor: pointer;
}
.check input[type="checkbox"] {
  width: 1.25rem;
  height: 1.25rem;
  margin: 0.125rem 0 0 0;
  flex-shrink: 0;
  accent-color: #D72638;
  cursor: pointer;
}
.check--consent {
  margin-top: var(--spacing-s);
  line-height: 1.4;
}

/* Submit, status and footnote
   –––––––––––––––––––––––––––––––––––––––––––––––––– */
.button-locktober {
  --button-text: #ffffff;
  --button-background: #D72638;
  width: 100%;
  max-width: 18.75rem;
}
.button-locktober[disabled] {
  opacity: 0.6;
  cursor: progress;
}

.container-left .form-status {
  margin: 0 0 var(--spacing-s) 0;
  font-size: var(--scale-0);
  font-weight: 700;
}
.form-status:empty {
  display: none;
}
.form-status.is-error {
  color: #FF6B78;
}
.form-status.is-success {
  color: #4ADE80;
}

.container-left .form-foot {
  font-size: 0.875rem;
  opacity: 0.65;
  margin-top: var(--spacing-s);
}

/* Honeypot — off screen rather than display:none, which some bots skip */
.form-hp {
  position: absolute;
  left: -9999px;
  width: 1px;
  height: 1px;
  overflow: hidden;
}

/* Sent state
   –––––––––––––––––––––––––––––––––––––––––––––––––– */
.form.is-sent .form-section,
.form.is-sent .button-locktober {
  display: none;
}

/* Dark theme
   –––––––––––––––––––––––––––––––––––––––––––––––––– */
:root.theme-dark .form input[type="text"],
:root.theme-dark .form input[type="date"],
:root.theme-dark .form select,
:root.theme-dark .form textarea {
  background-color: #121212;
  border-color: #444;
  color: #ffffff;
}
:root.theme-dark .form input:hover,
:root.theme-dark .form select:hover,
:root.theme-dark .form textarea:hover {
  border-color: #777;
}
:root.theme-dark .form ::placeholder {
  color: #888;
}

@media (prefers-color-scheme: dark) {
  :root.theme-auto .form input[type="text"],
  :root.theme-auto .form input[type="date"],
  :root.theme-auto .form select,
  :root.theme-auto .form textarea {
    background-color: #121212;
    border-color: #444;
    color: #ffffff;
  }
  :root.theme-auto .form ::placeholder {
    color: #888;
  }
}

/* Responsive
   –––––––––––––––––––––––––––––––––––––––––––––––––– */
@media (max-width: 34.375rem) {
  .button-locktober {
    max-width: none;
  }
}
