/* Probate hero showcase — faint monotone homes texture on the navy + 3-version text crossfade. */
.hero-section { position: relative; overflow: hidden; }
.hero-section > *:not(.cf-hero-texture) { position: relative; z-index: 1; }

.cf-hero-texture {
  position: absolute; inset: 0; z-index: 0; pointer-events: none;
  background: url("/wp-content/uploads/probate-classic-photos/estate-home.jpg") center / cover no-repeat;
  filter: grayscale(1) contrast(1.05);
  opacity: .16; mix-blend-mode: soft-light;
  animation: cfHeroPan 46s ease-in-out infinite alternate;
}
@keyframes cfHeroPan {
  from { transform: scale(1.06) translate(0, 0); }
  to   { transform: scale(1.15) translate(-2%, -1.5%); }
}

/* text crossfade */
.hero-section h1.dv-fade, .hero-section .section-subheading.dv-fade { transition: opacity .45s ease; }
.hero-section h1.dv-out,  .hero-section .section-subheading.dv-out  { opacity: 0; }

/* dots */
.dv-hero-dots {
  position: absolute; left: 0; right: 0; bottom: 18px; z-index: 5;
  display: flex; gap: 8px; justify-content: center;
}
.dv-hero-dots button {
  width: 9px; height: 9px; border-radius: 50%; border: 0; padding: 0; cursor: pointer;
  background: rgba(255, 255, 255, .45); transition: background .3s, transform .3s;
}
.dv-hero-dots button:hover { transform: scale(1.2); }
.dv-hero-dots button.is-active { background: #fff; }

@media (prefers-reduced-motion: reduce) {
  .cf-hero-texture { animation: none; }
  .hero-section h1.dv-fade, .hero-section .section-subheading.dv-fade { transition: none; }
}

/* hero lead-capture form card (right column) */
.hero-section { text-align: left; }
.pb-hero-form {
  background: #fff; border-radius: 18px; padding: 20px 22px 8px;
  box-shadow: 0 24px 52px -30px rgba(0, 0, 0, .45);   /* calmer than V0 so the card supports, not dominates */
}
.pb-hero-form-title { font-size: 1.08rem; font-weight: 700; color: #1B365D; margin: 0 0 14px; }
.pb-hero-form .forminator-ui.forminator-custom-form { margin: 0; }
.pb-hero-form .forminator-row { margin-bottom: 12px; }
.pb-hero-form .forminator-button-submit { width: 100%; }
@media (max-width: 991px) { .pb-hero-form { margin-top: 6px; } }

/* ---- hero form + button fixes (readable on the white card, no wrap, mobile-safe) ---- */
/* Forminator labels/placeholders were near-white (theme styles forms for dark bg) -> dark & readable */
.pb-hero-form .forminator-label,
.pb-hero-form label,
.pb-hero-form .forminator-ui .forminator-label { color: #2b3946 !important; opacity: 1 !important; }
.pb-hero-form input, .pb-hero-form textarea, .pb-hero-form select { color: #1a2530 !important; }
.pb-hero-form ::placeholder { color: #6a7784 !important; opacity: 1; }

/* CTA buttons: stack in the narrow hero column so they never wrap or crowd */
.hero-section .d-flex.gap-3 { flex-direction: column !important; align-items: flex-start; margin-top: 1.25rem; row-gap: .75rem; }
.hero-section .d-flex.gap-3 > a { white-space: nowrap; }
@media (max-width: 575.98px) {
  .hero-section .d-flex.gap-3 { align-items: stretch; }
  .hero-section .d-flex.gap-3 > a { text-align: center; white-space: normal; }
}

/* two-column hero stacks on tablet/mobile; give the form breathing room + keep the text readable */
@media (max-width: 991.98px) {
  .hero-section .col-lg-6 { min-height: 0 !important; }   /* JS lock is desktop-measured; release on stack */
  .pb-hero-form { margin-top: 1.5rem; }
}

/* ---- hero column balance (judge-panel synthesis 2026-07-27) ----
   User: the form was too wide / the seam felt tight / the card overpowered the copy.
   Fix: 7/5 split so the message leads, and a widened gutter opens a ~72px seam BETWEEN the columns.
   Bootstrap's negative row margin cancels the outer column padding, so the wider gutter adds space
   only between the columns — the form stays locked to both its column edges (anchored, NOT floated). */
@media (min-width: 992px) {
  .hero-section .row { --bs-gutter-x: 4.5rem; }
  .hero-section .row > .col-lg-6:first-child { flex: 0 0 auto; width: 58.333%; }
  .hero-section .row > .col-lg-6:last-child  { flex: 0 0 auto; width: 41.667%; }
}
