/* ============================================================
   ABSVE FORM PAGES — calm premium shell around untouched forms.
   HARD RULES (Document C §8 Phase 5): visual skin only. No field is
   hidden, moved, resized into unusability, or reordered; validation,
   uploads, steps, and submission behaviour are never altered.
   ============================================================ */

/* Page scene */
body.absve-family-form {
  background:
    radial-gradient(90% 60% at 50% -5%, rgba(18, 48, 94, 0.45) 0%, transparent 60%),
    var(--abs-obsidian);
}

/* Per-page accent tint behind the form card. */
body.absve-page-1186, body.absve-page-4664 { --absve-accent: var(--abs-blue-electric); }   /* approval path */
body.absve-page-1322 { --absve-accent: var(--abs-blue); }                                  /* graphite/blue */
body.absve-page-1443 { --absve-accent: var(--abs-amber); }                                 /* warm transaction */
body.absve-page-4159, body.absve-page-4310 { --absve-accent: #3d6dff; }                    /* deep blue marketplace */
body.absve-page-4175 { --absve-accent: #4f7fd9; }                                          /* compression line */
body.absve-page-4186, body.absve-page-4333 { --absve-accent: var(--abs-blue-electric); }   /* equity core */
body.absve-page-4321 { --absve-accent: var(--abs-violet); }                                /* transfer paths */

/* ---------- Form card container (wrapper injected around the form) ---------- */
.absve-form-card {
  background: linear-gradient(180deg, var(--abs-graphite) 0%, var(--abs-obsidian-2) 130%);
  border: 1px solid var(--abs-line);
  border-radius: var(--abs-radius-l);
  box-shadow: 0 0 0 1px rgba(255, 255, 255, 0.02), var(--abs-shadow-2);
  padding: clamp(18px, 3.4vw, 44px);
  position: relative;
  overflow: clip;
}
.absve-form-card::before {
  content: '';
  position: absolute;
  inset: -1px;
  border-radius: inherit;
  padding: 1px;
  background: linear-gradient(140deg, var(--absve-accent, var(--abs-blue)) 0%, transparent 34%);
  -webkit-mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
  -webkit-mask-composite: xor;
          mask-composite: exclude;
  opacity: 0.55;
  pointer-events: none;
}

/* ---------- Forminator skin (colours/spacing only) ---------- */
body.absve-family-form .forminator-custom-form .forminator-label {
  color: var(--abs-ink-soft);
  font-weight: 500;
}
body.absve-family-form .forminator-custom-form .forminator-input,
body.absve-family-form .forminator-custom-form .forminator-textarea,
body.absve-family-form .forminator-custom-form .forminator-select,
body.absve-family-form .forminator-custom-form select,
body.absve-family-form .forminator-custom-form input[type="text"],
body.absve-family-form .forminator-custom-form input[type="email"],
body.absve-family-form .forminator-custom-form input[type="tel"],
body.absve-family-form .forminator-custom-form input[type="number"],
body.absve-family-form .forminator-custom-form input[type="date"] {
  background-color: rgba(255, 255, 255, 0.045) !important;
  border: 1px solid var(--abs-line) !important;
  border-radius: var(--abs-radius-s) !important;
  color: var(--abs-ink) !important;
  transition: border-color var(--abs-dur-fast) var(--abs-ease-soft),
              box-shadow var(--abs-dur-fast) var(--abs-ease-soft),
              background-color var(--abs-dur-fast) var(--abs-ease-soft);
}
body.absve-family-form .forminator-custom-form .forminator-input:focus,
body.absve-family-form .forminator-custom-form textarea:focus,
body.absve-family-form .forminator-custom-form select:focus,
body.absve-family-form .forminator-custom-form input:focus {
  border-color: var(--absve-accent, var(--abs-blue-electric)) !important;
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--absve-accent, var(--abs-blue-electric)) 25%, transparent) !important;
  background-color: rgba(255, 255, 255, 0.07) !important;
  outline: none;
}

/* Progress indicator (existing steps, restyled only). */
body.absve-family-form .forminator-custom-form .forminator-pagination-steps,
body.absve-family-form .forminator-custom-form .forminator-pagination--nav {
  filter: none;
}
body.absve-family-form .forminator-custom-form .forminator-step.forminator-current .forminator-step-label,
body.absve-family-form .forminator-custom-form .forminator-nav-item--current {
  color: var(--absve-accent, var(--abs-blue-electric)) !important;
  font-weight: 600;
}

/* Upload surface: secure-feeling, unchanged behaviour. */
body.absve-family-form .forminator-custom-form .forminator-file-upload,
body.absve-family-form .forminator-custom-form .forminator-button-upload {
  border: 1.5px dashed var(--abs-line-strong) !important;
  border-radius: var(--abs-radius) !important;
  background: rgba(61, 139, 255, 0.05) !important;
  transition: border-color var(--abs-dur-fast) var(--abs-ease-soft);
}
body.absve-family-form .forminator-custom-form .forminator-file-upload:hover {
  border-color: var(--absve-accent, var(--abs-blue-electric)) !important;
}

/* Buttons. */
body.absve-family-form .forminator-custom-form .forminator-button {
  border-radius: var(--abs-radius-pill) !important;
  font-weight: 600 !important;
  transition: transform var(--abs-dur-fast) var(--abs-ease-out),
              box-shadow var(--abs-dur) var(--abs-ease-out) !important;
}
body.absve-family-form .forminator-custom-form .forminator-button-submit,
body.absve-family-form .forminator-custom-form .forminator-button--submit {
  background: linear-gradient(92deg, var(--abs-blue) 0%, var(--abs-blue-electric) 100%) !important;
  color: #fff !important;
}
@media (hover: hover) {
  body.absve-family-form .forminator-custom-form .forminator-button:hover {
    transform: translateY(-2px);
    box-shadow: 0 8px 26px var(--abs-blue-glow);
  }
}

/* Validation styling stays calm; message text/timing untouched. */
body.absve-family-form .forminator-custom-form .forminator-error-message {
  border-radius: var(--abs-radius-s);
}

/* Contact Form 7 (contact page uses utility family; kept here for reuse). */
body.absve-on .wpcf7 input[type="text"],
body.absve-on .wpcf7 input[type="email"],
body.absve-on .wpcf7 input[type="tel"],
body.absve-on .wpcf7 textarea {
  background: rgba(255, 255, 255, 0.05);
  border: 1px solid var(--abs-line);
  border-radius: var(--abs-radius-s);
  color: var(--abs-ink);
  transition: border-color var(--abs-dur-fast) var(--abs-ease-soft),
              box-shadow var(--abs-dur-fast) var(--abs-ease-soft);
}
body.absve-on .wpcf7 input:focus,
body.absve-on .wpcf7 textarea:focus {
  border-color: var(--abs-blue-electric);
  box-shadow: 0 0 0 3px rgba(61, 139, 255, 0.22);
  outline: none;
}

/* Trust framing outside the input area only. */
body.absve-family-form [data-absve-role-section="support-content"] { opacity: 0.96; }
