/*
 * Per-form appearance settings.
 *
 * This file is intentionally loaded after the core, quiz and theme-facing form
 * styles. Rules are limited to the "plugin styles" mode: forms configured to
 * inherit the active WordPress theme remain untouched.
 */

/* Personal-data consent is a functional layout shared by both appearance
   modes. Keep the larger native checkbox on the left and its copy on the right. */
.ak-form,
.akfb-quiz-wrap {
  width: 100% !important;
  max-width: 100% !important;
  min-width: 0 !important;
  box-sizing: border-box !important;
}

.ak-form *,
.ak-form *::before,
.ak-form *::after,
.akfb-quiz-wrap *,
.akfb-quiz-wrap *::before,
.akfb-quiz-wrap *::after {
  box-sizing: border-box;
}

.ak-form .ak-consent-field,
.akfb-quiz-wrap .ak-consent-field {
  min-width: 0;
}

/* Visually separate the consent block from the main form fields. Only the
   first consent receives the divider, so consecutive consents stay grouped. */
.ak-form .ak-fields > .ak-consent-field:first-child,
.ak-form .ak-fields > :not(.ak-consent-field) + .ak-consent-field,
.akfb-quiz-wrap .ak-fields > .ak-consent-field:first-child,
.akfb-quiz-wrap .ak-fields > :not(.ak-consent-field) + .ak-consent-field {
  padding-top: 12px;
  border-top: 1px solid rgba(15, 23, 42, .10);
}

.ak-form label.ak-consent,
.akfb-quiz-wrap label.ak-consent {
  display: flex !important;
  flex-flow: row nowrap !important;
  align-items: center !important;
  justify-content: flex-start !important;
  gap: 10px !important;
  width: 100% !important;
  max-width: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
  text-align: left !important;
  cursor: pointer;
  box-sizing: border-box !important;
}

.ak-form .ak-consent__text,
.akfb-quiz-wrap .ak-consent__text {
  display: block !important;
  flex: 0 1 auto !important;
  min-width: 0;
  margin: 0 !important;
  text-align: left !important;
  line-height: 1.45;
}

.ak-form .ak-consent__text .policy-link,
.akfb-quiz-wrap .ak-consent__text .policy-link {
  display: inline !important;
  width: auto !important;
  min-width: 0 !important;
  margin: 0 0 0 4px !important;
  padding: 0 !important;
  vertical-align: baseline !important;
  white-space: normal !important;
}

.ak-form input.ak-consent__checkbox,
.akfb-quiz-wrap input.ak-consent__checkbox {
  -webkit-appearance: checkbox !important;
  appearance: auto !important;
  position: static !important;
  inset: auto !important;
  float: none !important;
  display: block !important;
  flex: 0 0 22px !important;
  width: 22px !important;
  min-width: 22px !important;
  max-width: 22px !important;
  height: 22px !important;
  min-height: 22px !important;
  max-height: 22px !important;
  margin: 0 !important;
  padding: 0 !important;
  border-radius: 4px !important;
  transform: none !important;
  box-shadow: none !important;
  accent-color: var(--akfb-button-bg, #8ebf0f) !important;
  cursor: pointer;
}

@media (max-width: 680px) {
  .akfb-style-mode-plugin.ak-form {
    padding-right: clamp(14px, 4vw, 18px) !important;
    padding-left: clamp(14px, 4vw, 18px) !important;
  }

  .ak-form label.ak-consent,
  .akfb-quiz-wrap label.ak-consent {
    align-items: center !important;
    gap: 8px !important;
  }
}

/* Form shell. */
.akfb-style-mode-plugin.ak-form {
  background: var(--akfb-form-bg-final, #fff) !important;
  color: var(--akfb-form-text, #0f172a) !important;
  border-color: var(--akfb-form-border, #dde1e9) !important;
  border-radius: var(--akfb-form-radius, 16px) !important;
}

.akfb-style-mode-plugin.ak-form :is(
  .ak-title,
  .ak-subtitle,
  .ak-subtitle h1,
  .ak-subtitle h2,
  .ak-subtitle h3,
  .ak-subtitle h4,
  .ak-subtitle h5,
  .ak-subtitle h6,
  .ak-label,
  .ak-field > label,
  .ak-check,
  .ak-check span,
  .form-note,
  .form-status,
  .muted,
  .ak-hint,
  .ak-note,
  .akfb-double-hint
) {
  color: var(--akfb-form-text, #0f172a) !important;
}

.akfb-style-mode-plugin.ak-form .ak-fields,
.akfb-style-mode-plugin.ak-form .form-grid {
  gap: var(--akfb-field-gap, 12px) !important;
}

/* Text-like controls. Checkboxes, radio buttons and files keep their own UI. */
.akfb-style-mode-plugin.ak-form :is(
  input:not([type]),
  input[type="text"],
  input[type="tel"],
  input[type="email"],
  input[type="number"],
  input[type="date"],
  input[type="datetime-local"],
  input[type="time"],
  input[type="url"],
  input[type="password"],
  input[type="search"],
  input[type="month"],
  input[type="week"],
  select,
  textarea,
  .akfb-multiselect__trigger
) {
  background-color: var(--akfb-field-bg, #fff) !important;
  color: var(--akfb-field-text, #0f172a) !important;
  border-color: var(--akfb-form-border, #dde1e9) !important;
  border-radius: var(--akfb-field-radius, 12px) !important;
}

.akfb-style-mode-plugin.ak-form :is(input, textarea)::placeholder {
  color: var(--akfb-field-text, #0f172a) !important;
  opacity: .58 !important;
}

.akfb-style-mode-plugin.ak-form :is(
  input:not([type]),
  input[type="text"],
  input[type="tel"],
  input[type="email"],
  input[type="number"],
  input[type="date"],
  input[type="datetime-local"],
  input[type="time"],
  input[type="url"],
  input[type="password"],
  input[type="search"],
  input[type="month"],
  input[type="week"],
  select,
  textarea,
  .akfb-multiselect__trigger
):focus {
  border-color: var(--akfb-button-bg, #8ebf0f) !important;
  box-shadow: 0 0 0 4px rgba(142, 191, 15, .18) !important;
  box-shadow: 0 0 0 4px color-mix(in srgb, var(--akfb-button-bg, #8ebf0f) 18%, transparent) !important;
}

.akfb-style-mode-plugin.ak-form :is(input[type="checkbox"], input[type="radio"]) {
  accent-color: var(--akfb-button-bg, #8ebf0f) !important;
}

.akfb-style-mode-plugin.ak-form :is(.ak-check--has-image, .akfb-multiselect__panel) {
  background-color: var(--akfb-field-bg, #fff) !important;
  color: var(--akfb-field-text, #0f172a) !important;
  border-color: var(--akfb-form-border, #dde1e9) !important;
  border-radius: var(--akfb-field-radius, 12px) !important;
}

.akfb-style-mode-plugin.ak-form .policy-link {
  color: var(--akfb-button-bg, #8ebf0f) !important;
}

/* Primary actions. Important declarations are deliberate: configured form
   colours must beat generic theme rules such as .site button or input[type=submit]. */
.akfb-style-mode-plugin.ak-form :is(
  button[type="submit"],
  input[type="submit"],
  .btn.btn-primary,
  .btn-primary
) {
  width: var(--akfb-button-width, 100%) !important;
  max-width: 100% !important;
  background: var(--akfb-button-bg, #8ebf0f) !important;
  background-color: var(--akfb-button-bg, #8ebf0f) !important;
  color: var(--akfb-button-text, #fff) !important;
  border-color: var(--akfb-button-bg, #8ebf0f) !important;
  opacity: 1;
}

.akfb-style-mode-plugin.ak-form :is(
  button[type="submit"],
  input[type="submit"],
  .btn.btn-primary,
  .btn-primary
):is(:hover, :focus-visible) {
  background: var(--akfb-button-bg, #8ebf0f) !important;
  background-color: var(--akfb-button-bg, #8ebf0f) !important;
  color: var(--akfb-button-text, #fff) !important;
  border-color: var(--akfb-button-bg, #8ebf0f) !important;
  filter: brightness(1.07);
}

.akfb-style-mode-plugin.ak-form :is(button[type="submit"], .btn.btn-primary, .btn-primary) :where(*) {
  color: var(--akfb-button-text, #fff) !important;
  fill: currentColor;
}

.akfb-style-mode-plugin.ak-form.akfb-button-align-center :is(button[type="submit"], input[type="submit"], .btn.btn-primary) {
  display: flex !important;
  margin-left: auto !important;
  margin-right: auto !important;
}

.akfb-style-mode-plugin.ak-form.akfb-button-align-right :is(button[type="submit"], input[type="submit"], .btn.btn-primary) {
  display: flex !important;
  margin-left: auto !important;
  margin-right: 0 !important;
}

.akfb-style-mode-plugin.ak-form.akfb-button-align-left :is(button[type="submit"], input[type="submit"], .btn.btn-primary) {
  margin-left: 0 !important;
  margin-right: auto !important;
}

/* Quiz uses a separate stylesheet and its own variables. Bridge the saved form
   settings into that design system and then protect the key visual controls. */
.akfb-style-mode-plugin.akfb-quiz-wrap .akfb-quiz {
  --akfb-accent: var(--akfb-button-bg, #8ebf0f);
  --akfb-accent-dark: var(--akfb-button-bg, #8ebf0f);
  --akfb-text: var(--akfb-form-text, #0f172a);
  --akfb-muted: var(--akfb-form-text, #0f172a);
  --akfb-line: var(--akfb-form-border, #dde1e9);
  --akfb-surface: var(--akfb-form-bg-final, #fff);
}

.akfb-style-mode-plugin.akfb-quiz-wrap .akfb-quiz-screen,
.akfb-style-mode-plugin.akfb-quiz-wrap .akfb-quiz-contact-card {
  background: var(--akfb-form-bg-final, #fff) !important;
  color: var(--akfb-form-text, #0f172a) !important;
  border-color: var(--akfb-form-border, #dde1e9) !important;
  border-radius: var(--akfb-form-radius, 16px) !important;
}

.akfb-style-mode-plugin.akfb-quiz-wrap :is(
  .akfb-quiz-title,
  .akfb-quiz-question-title,
  .akfb-quiz-thanks-title,
  .akfb-quiz-subtitle,
  .akfb-quiz-copy,
  .akfb-quiz-copy-sub,
  .akfb-quiz-after-btn,
  .ak-label,
  .ak-field > label,
  .form-note,
  .form-status
) {
  color: var(--akfb-form-text, #0f172a) !important;
}

.akfb-style-mode-plugin.akfb-quiz-wrap .ak-fields,
.akfb-style-mode-plugin.akfb-quiz-wrap .ak-checkgrid--quiz {
  gap: var(--akfb-field-gap, 12px) !important;
}

.akfb-style-mode-plugin.akfb-quiz-wrap .ak-field :is(
  input:not([type="checkbox"]):not([type="radio"]):not([type="file"]),
  select,
  textarea
) {
  background-color: var(--akfb-field-bg, #fff) !important;
  color: var(--akfb-field-text, #0f172a) !important;
  border-color: var(--akfb-form-border, #dde1e9) !important;
  border-radius: var(--akfb-field-radius, 12px) !important;
}

.akfb-style-mode-plugin.akfb-quiz-wrap .ak-field :is(input, textarea)::placeholder {
  color: var(--akfb-field-text, #0f172a) !important;
  opacity: .58 !important;
}

.akfb-style-mode-plugin.akfb-quiz-wrap .ak-check {
  background-color: var(--akfb-field-bg, #fff) !important;
  color: var(--akfb-field-text, #0f172a) !important;
  border-color: var(--akfb-form-border, #dde1e9) !important;
  border-radius: var(--akfb-field-radius, 12px) !important;
}

.akfb-style-mode-plugin.akfb-quiz-wrap .ak-check span {
  color: var(--akfb-field-text, #0f172a) !important;
}

.akfb-style-mode-plugin.akfb-quiz-wrap :is(.btn.btn-primary, .btn-primary) {
  width: var(--akfb-button-width, 100%) !important;
  max-width: 100% !important;
  background: var(--akfb-button-bg, #8ebf0f) !important;
  background-color: var(--akfb-button-bg, #8ebf0f) !important;
  color: var(--akfb-button-text, #fff) !important;
  border-color: var(--akfb-button-bg, #8ebf0f) !important;
}

.akfb-style-mode-plugin.akfb-quiz-wrap :is(.btn.btn-primary, .btn-primary):is(:hover, :focus-visible) {
  background: var(--akfb-button-bg, #8ebf0f) !important;
  background-color: var(--akfb-button-bg, #8ebf0f) !important;
  color: var(--akfb-button-text, #fff) !important;
  filter: brightness(1.07);
}

.akfb-style-mode-plugin.akfb-quiz-wrap :is(.btn.btn-primary, .btn-primary) :where(*) {
  color: var(--akfb-button-text, #fff) !important;
  fill: currentColor;
}

.akfb-style-mode-plugin.akfb-quiz-wrap :is(.btn.btn-primary, .btn-primary):is([disabled], .disabled) {
  background: var(--akfb-button-bg, #8ebf0f) !important;
  color: var(--akfb-button-text, #fff) !important;
  filter: grayscale(.18);
  opacity: .55 !important;
}

.akfb-style-mode-plugin.akfb-quiz-wrap.akfb-button-align-center :is(.btn.btn-primary, .btn-primary) {
  margin-left: auto !important;
  margin-right: auto !important;
}

.akfb-style-mode-plugin.akfb-quiz-wrap.akfb-button-align-right :is(.btn.btn-primary, .btn-primary) {
  margin-left: auto !important;
  margin-right: 0 !important;
}

.akfb-style-mode-plugin.akfb-compact.ak-form {
  padding: 14px !important;
}

.akfb-style-mode-plugin.akfb-compact.akfb-quiz-wrap .akfb-quiz-screen {
  padding: 14px !important;
}
