/* Umbraco Forms theme "Padis" (Views/Partials/Forms/Themes/Padis).
   Targets Umbraco Forms' own generated markup class names
   (.umbraco-forms-*) using PadisTheme tokens for colours, spacing and
   radius - no hardcoded values, consistent with the rest of the site theme. */

.umbraco-forms-page {
  display: flex;
  flex-direction: column;
  gap: var(--padis-space-md);
  max-width: 32rem;
}

.umbraco-forms-caption {
  font-family: var(--padis-font-heading);
  color: var(--padis-color-text);
}

.umbraco-forms-fieldset {
  border: 0;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: var(--padis-space-md);
}

.umbraco-forms-legend {
  font-weight: 700;
  color: var(--padis-color-text);
}

.umbraco-forms-container {
  display: flex;
  flex-direction: column;
  gap: var(--padis-space-md);
}

.umbraco-forms-field-wrapper {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: var(--padis-space-sm);
}

/* Checkbox/radio fields (e.g. consent, checkbox lists) render their input,
   a hidden fallback input and a plain <label> as siblings inside the same
   field-wrapper used by text inputs above - lay those out as a single row
   instead of the default stacked/centered block layout. */
.umbraco-forms-field-wrapper:has(input[type="checkbox"]),
.umbraco-forms-field-wrapper:has(input[type="radio"]) {
  flex-direction: row;
  flex-wrap: wrap;
  align-items: center;
}

.umbraco-forms-field-wrapper input[type="checkbox"],
.umbraco-forms-field-wrapper input[type="radio"] {
  width: 1.25rem;
  height: 1.25rem;
  flex: none;
  accent-color: var(--padis-color-primary);
}

.umbraco-forms-field-wrapper input[type="checkbox"] ~ label,
.umbraco-forms-field-wrapper input[type="radio"] ~ label {
  font-weight: 400;
  color: var(--padis-color-text);
}

.umbraco-forms-field-wrapper input[type="checkbox"] ~ span,
.umbraco-forms-field-wrapper input[type="radio"] ~ span {
  flex-basis: 100%;
}

.umbraco-forms-label {
  font-weight: 700;
  color: var(--padis-color-text);
}

.umbraco-forms-field-wrapper input[type="text"],
.umbraco-forms-field-wrapper input[type="email"],
.umbraco-forms-field-wrapper input[type="tel"],
.umbraco-forms-field-wrapper input[type="number"],
.umbraco-forms-field-wrapper input[type="date"],
.umbraco-forms-field-wrapper select,
.umbraco-forms-field-wrapper textarea {
  padding: 0.6em 0.8em;
  border: 1px solid var(--padis-color-border);
  border-radius: var(--padis-radius);
  font: inherit;
  color: var(--padis-color-text);
  background-color: var(--padis-color-surface);
  min-height: 2.75rem;
}

.umbraco-forms-field-wrapper textarea {
  min-height: 8rem;
  resize: vertical;
}

.umbraco-forms-field-wrapper input:focus,
.umbraco-forms-field-wrapper select:focus,
.umbraco-forms-field-wrapper textarea:focus {
  outline: 2px solid var(--padis-color-primary);
  outline-offset: 1px;
}

.umbraco-forms-tooltip {
  font-size: 0.875rem;
  color: var(--padis-color-text-muted);
}

.umbraco-forms-indicator {
  color: var(--padis-color-error);
}

.field-validation-error,
.validation-summary-errors {
  font-size: 0.875rem;
  color: var(--padis-color-error);
}

.input-validation-error {
  border-color: var(--padis-color-error) !important;
}

.validation-summary-errors {
  padding: 0.75em 1em;
  border-radius: var(--padis-radius);
  background-color: var(--padis-color-error-surface);
  list-style: none;
  margin: 0;
}

.umbraco-forms-hidden {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip: rect(0 0 0 0);
  white-space: nowrap;
}

.umbraco-forms-navigation {
  display: flex;
  gap: var(--padis-space-sm);
}

.umbraco-forms-navigation .btn {
  display: inline-block;
  align-self: flex-start;
  padding: 0.6em 1.4em;
  border: 2px solid var(--padis-color-primary);
  border-radius: var(--padis-radius);
  font-weight: 700;
  text-decoration: none;
  cursor: pointer;
  transition: background-color 0.15s ease, color 0.15s ease, border-color 0.15s ease;
}

.umbraco-forms-navigation .btn.primary,
.umbraco-forms-navigation .btn.next {
  background-color: var(--padis-color-primary);
  color: var(--padis-color-on-primary);
}

.umbraco-forms-navigation .btn.primary:hover,
.umbraco-forms-navigation .btn.next:hover {
  background-color: var(--padis-color-primary-dark);
  border-color: var(--padis-color-primary-dark);
}

.umbraco-forms-navigation .btn.prev,
.umbraco-forms-navigation .btn.cancel {
  background-color: transparent;
  color: var(--padis-color-primary);
}

@media (max-width: 40rem) {
  .umbraco-forms-page {
    max-width: none;
  }

  .umbraco-forms-navigation .btn {
    align-self: stretch;
    width: 100%;
    text-align: center;
  }
}
