/* ==========================================================================
   CLOSING CTA + CONTACT FORM (merged)
   One closing beat instead of a "Ready to Scale?" band stacked on top of a
   separate contact section. Lede on the left, compact form on the right.
   ========================================================================== */

.closing-cta {
  padding: var(--section-padding) 0;
  background: color-mix(in srgb, var(--color-brand-green) 7%, var(--color-surface));
  border-top: 1px solid var(--color-border);
}

.closing-cta-inner {
  display: grid;
  grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr);
  gap: clamp(2rem, 6vw, 5rem);
  align-items: start;
}

.closing-cta-lede {
  position: sticky;
  top: calc(var(--navbar-height) + 2rem);
}

.closing-cta-heading {
  font-size: var(--font-size-6xl);
  line-height: 1;
  letter-spacing: var(--tracking-tight);
  margin: 0 0 var(--space-md);
  color: var(--color-text-primary);
}

.closing-cta-heading em {
  display: block;
  font-family: var(--font-accent);
  font-style: italic;
  font-weight: 500;
  color: var(--color-accent-display);
}

.closing-cta-subtitle {
  max-width: 42ch;
  margin: 0 0 var(--space-lg);
  color: var(--color-text-secondary);
  line-height: 1.7;
}

.closing-cta-contact {
  margin: 0;
  font-size: var(--font-size-sm);
  color: var(--color-text-tertiary);
}

.closing-cta-contact a {
  font-weight: 600;
  color: var(--color-text-primary);
}

.closing-cta-contact a:hover {
  color: var(--color-accent-text);
}

/* Form card */
.closing-cta-form {
  background: var(--color-base);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-xl);
  padding: clamp(1.5rem, 4vw, 2.75rem);
  box-shadow: var(--shadow-lg);
}

/* --------------------------------------------------------------------------
   FORMINATOR FORMS
   Forms are built in Forminator with design = "none"; all visuals live here.
   Scoped to .forminator-ui.forminator-custom-form to win over plugin defaults.
   -------------------------------------------------------------------------- */

.forminator-ui.forminator-custom-form {
  display: flex;
  flex-direction: column;
  gap: var(--space-lg);
  width: 100%;
  margin: 0;
  font-family: var(--font-body);
  color: var(--color-text-primary);
}

/* Forminator wraps hidden inputs in bare <p> tags; keep them out of the flex gap */
.forminator-ui.forminator-custom-form > p {
  display: none;
}

.forminator-ui.forminator-custom-form .forminator-row {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-md);
  margin: 0;
}

/* Forminator's open grid adds a bottom margin to every row; the flex gap on
   the form handles spacing instead */
.forminator-ui.forminator-custom-form[data-grid='open'] .forminator-row:not(:last-child),
.forminator-ui.forminator-custom-form:not(.forminator-size--small)[data-grid='open'] .forminator-row:not(:last-child) {
  margin-bottom: 0;
}

.forminator-ui .forminator-col {
  flex: 1 1 0;
  min-width: min(100%, 14rem);
  padding: 0;
}

.forminator-ui .forminator-field {
  display: flex;
  flex-direction: column;
  gap: var(--space-sm);
  margin: 0;
}

.forminator-ui .forminator-label {
  font-weight: 600;
  font-size: var(--font-size-sm);
  line-height: 1.4;
  color: var(--color-text-primary);
}

.forminator-ui .forminator-required {
  color: var(--color-accent-display);
}

.forminator-ui .forminator-description {
  font-size: var(--font-size-sm);
  color: var(--color-text-tertiary);
}

.forminator-ui input.forminator-input,
.forminator-ui textarea.forminator-textarea,
.forminator-ui select.forminator-select2 {
  display: block;
  width: 100%;
  max-width: none;
  min-height: 48px;
  margin: 0;
  padding: 0.85rem 1rem;
  border: 1px solid var(--color-border);
  border-radius: var(--radius-md);
  background: var(--color-surface);
  color: var(--color-text-primary);
  font-family: var(--font-body);
  font-size: var(--font-size-base);
  line-height: 1.4;
  box-shadow: none;
  transition:
    border-color var(--transition-base),
    box-shadow var(--transition-base);
}

.forminator-ui textarea.forminator-textarea {
  min-height: 140px;
  resize: vertical;
}

.forminator-ui input.forminator-input:focus,
.forminator-ui textarea.forminator-textarea:focus {
  outline: none;
  border-color: var(--color-brand-green);
  box-shadow: 0 0 0 3px rgba(var(--color-brand-green-rgb), 0.25);
}

.forminator-ui input.forminator-input::placeholder,
.forminator-ui textarea.forminator-textarea::placeholder {
  color: var(--color-text-tertiary);
  opacity: 1;
}

/* Validation */
.forminator-ui .forminator-has_error input.forminator-input,
.forminator-ui .forminator-has_error textarea.forminator-textarea {
  border-color: var(--color-error);
  box-shadow: 0 0 0 3px rgba(var(--color-error-rgb), 0.12);
}

.forminator-ui .forminator-error-message {
  display: block;
  margin: 0;
  font-size: var(--font-size-sm);
  line-height: 1.4;
  color: var(--color-error);
}

.forminator-ui .forminator-error-message:empty {
  display: none;
}

/* Submit / response message */
.forminator-ui .forminator-row-last .forminator-col {
  flex: 0 1 auto;
}

.forminator-ui .forminator-button-submit {
  min-height: 48px;
  padding: 0.85rem 2rem;
  background: var(--color-accent-orange);
  color: var(--color-on-accent);
  border: none;
  border-radius: var(--radius-full);
  font-family: var(--font-body);
  font-size: var(--font-size-base);
  font-weight: 600;
  cursor: pointer;
  transition:
    background-color var(--transition-fast),
    transform var(--transition-fast),
    box-shadow var(--transition-fast);
}

.forminator-ui .forminator-button-submit:hover {
  background: var(--color-accent-hover);
  transform: translateY(-1px);
  box-shadow: 0 8px 20px -6px rgba(var(--color-accent-orange-rgb), 0.5);
}

.forminator-ui .forminator-button-submit:active {
  transform: translateY(0);
}

.forminator-ui .forminator-button-submit:focus-visible {
  outline: 2px solid var(--color-accent-orange);
  outline-offset: 3px;
}

.forminator-ui .forminator-button-submit:disabled,
.forminator-ui .forminator-button-submit.forminator-button-onload {
  opacity: 0.65;
  cursor: progress;
  transform: none;
  box-shadow: none;
}

.forminator-ui .forminator-response-message {
  margin: 0;
  padding: 0.85rem 1rem;
  border-radius: var(--radius-md);
  border: 1px solid transparent;
  font-size: var(--font-size-sm);
  line-height: 1.5;
}

.forminator-ui .forminator-response-message ul {
  margin: 0;
  padding: 0;
  list-style: none;
}

.forminator-ui .forminator-response-message li + li {
  margin-top: 0.25rem;
}

.forminator-ui .forminator-response-message[aria-hidden='true'] {
  display: none;
}

.forminator-ui .forminator-response-message.forminator-success {
  background: rgba(var(--color-brand-green-rgb), 0.12);
  border-color: rgba(var(--color-brand-green-rgb), 0.4);
  color: var(--color-text-primary);
}

.forminator-ui .forminator-response-message.forminator-error {
  background: rgba(var(--color-error-rgb), 0.08);
  border-color: rgba(var(--color-error-rgb), 0.35);
  color: var(--color-text-primary);
}

/* Form card on the two-column pages (contact, audit); the closing CTA
   already wraps its form in .closing-cta-form */
.two-column-section .column-right .forminator-ui.forminator-custom-form {
  background: var(--color-base);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-xl);
  padding: clamp(1.5rem, 4vw, 2.75rem);
  box-shadow: var(--shadow-lg);
}

/* Responsive adjustments */
@media (max-width: 900px) {
  .closing-cta-inner {
    grid-template-columns: 1fr;
    gap: var(--space-xl);
  }

  .closing-cta-lede {
    position: static;
  }
}

@media (max-width: 600px) {
  .forminator-ui .forminator-row-last .forminator-col,
  .forminator-ui .forminator-button-submit {
    width: 100%;
  }
}

@media (prefers-reduced-motion: reduce) {
  .forminator-ui .forminator-button-submit:hover {
    transform: none;
  }
}
