/* ============================================================================
   Waterford Bay prospect site — remediation stylesheet
   Palette and typography are grounded in the Styles house tokens:
   - navy/navy-deep/cream/gold from the root operator's maintenance gate
     (bcio-waterford-maintenance.php)
   - gold-deep/gold-soft/cream elevations/ink/rule from the estate design
     system (portal/assets/estate.css, portal/assets/design-system.css)
   ============================================================================ */

:root {
  --wb-navy: #10263f;
  --wb-navy-deep: #081b2c;
  --wb-gold: #c79a2e;
  --wb-gold-deep: #73531a;
  --wb-gold-soft: #e3bf7c;
  --wb-cream: #f7f2e7;
  --wb-cream-elev: #fbf7ee;
  --wb-sand: #ece5d5;
  --wb-white: #fff;
  --wb-ink: #1a1814;
  --wb-muted: #5a534a;
  --wb-line: #d9cfb8;
  --wb-shadow: 0 14px 40px rgba(26, 24, 20, .12);
  --wb-shadow-soft: 0 6px 22px rgba(26, 24, 20, .07);
  --wb-radius: 14px;
  --wb-control-radius: 0;
  --wb-font-display: 'Playfair Display', Georgia, 'Times New Roman', serif;
  --wb-font-body: 'Raleway', system-ui, -apple-system, 'Segoe UI', sans-serif;
  --wb-font-util: 'Raleway', system-ui, -apple-system, 'Segoe UI', sans-serif;
}

html {
  scroll-behavior: smooth;
  scroll-padding-top: 110px;
}

html body.wb-audit-remediation {
  padding-top: 0 !important;
  color: var(--wb-ink);
}

body.wb-audit-remediation figure {
  margin: 0;
}

/* Promotion bar stays in normal flow above the header and uses the same
   navy/white/gold contract as the rest of the prospect experience. */
html body.wb-audit-remediation .bcio-flex-pay-top-banner.bcio-flex-pay-top-banner {
  position: relative !important;
  inset: auto !important;
  min-height: 40px !important;
  padding: 4px 16px !important;
  border-bottom: 1px solid var(--wb-gold) !important;
  background: var(--wb-navy-deep) !important;
  color: var(--wb-white) !important;
  font-family: var(--wb-font-util);
  font-size: 13px !important;
  line-height: 1.2 !important;
  gap: 14px !important;
  flex-wrap: nowrap !important;
}

html body.wb-audit-remediation .bcio-flex-pay-top-banner.bcio-flex-pay-top-banner :is(p, span, strong) {
  color: inherit !important;
}

html body.wb-audit-remediation .bcio-flex-pay-top-banner.bcio-flex-pay-top-banner .bcio-flex-text {
  flex: 0 1 auto !important;
  min-width: 0;
  color: var(--wb-white) !important;
  font-size: 13px !important;
  font-weight: 600 !important;
  letter-spacing: .06em !important;
  line-height: 1.2 !important;
  white-space: nowrap;
}

html body.wb-audit-remediation .bcio-flex-pay-top-banner.bcio-flex-pay-top-banner .bcio-banner-apply {
  display: inline-flex !important;
  min-height: 30px !important;
  align-items: center;
  padding: 5px 12px !important;
  border: 1px solid var(--wb-gold) !important;
  border-radius: var(--wb-control-radius) !important;
  background: var(--wb-gold) !important;
  color: var(--wb-navy-deep) !important;
  font-size: 11px !important;
  font-weight: 700 !important;
  letter-spacing: .08em !important;
  line-height: 1 !important;
  text-decoration: none !important;
}

html body.wb-audit-remediation .bcio-flex-pay-top-banner.bcio-flex-pay-top-banner .bcio-flex-link {
  display: inline-flex !important;
  min-height: 30px !important;
  align-items: center;
  color: var(--wb-gold-soft) !important;
  font-size: 11px !important;
  font-weight: 600 !important;
  letter-spacing: .08em !important;
  line-height: 1 !important;
}

html body.wb-audit-remediation .bcio-flex-pay-top-banner.bcio-flex-pay-top-banner a {
  color: var(--wb-gold-soft) !important;
  text-decoration-color: currentColor;
  text-underline-offset: 3px;
}

html body.wb-audit-remediation .bcio-flex-pay-top-banner.bcio-flex-pay-top-banner a:hover,
html body.wb-audit-remediation .bcio-flex-pay-top-banner.bcio-flex-pay-top-banner a:focus-visible {
  color: var(--wb-white) !important;
}

html body.wb-audit-remediation .bcio-flex-pay-top-banner.bcio-flex-pay-top-banner a:focus-visible {
  outline: 3px solid var(--wb-gold-soft);
  outline-offset: 3px;
}

@media (max-width: 639px) {
  html body.wb-audit-remediation .bcio-flex-pay-top-banner.bcio-flex-pay-top-banner {
    min-height: 36px !important;
    padding: 3px 8px !important;
    gap: 6px !important;
  }

  html body.wb-audit-remediation .bcio-flex-pay-top-banner.bcio-flex-pay-top-banner .bcio-flex-text {
    flex: 0 1 auto !important;
    font-size: clamp(8.5px, 2.55vw, 11px) !important;
    letter-spacing: .035em !important;
  }

  html body.wb-audit-remediation .bcio-flex-pay-top-banner.bcio-flex-pay-top-banner :is(.bcio-banner-apply, .bcio-flex-link) {
    min-height: 28px !important;
    font-size: 9px !important;
    letter-spacing: .045em !important;
  }

  html body.wb-audit-remediation .bcio-flex-pay-top-banner.bcio-flex-pay-top-banner .bcio-banner-apply {
    padding: 4px 7px !important;
  }
}

/* ---- Header: the real masthead is sticky; Kadence's inner row stays in flow ---- */

body.wb-audit-remediation.transparent-header #masthead,
body.wb-audit-remediation.mobile-transparent-header #masthead,
body.wb-audit-remediation #masthead {
  position: sticky !important;
  top: 0 !important;
  right: auto !important;
  bottom: auto !important;
  left: auto !important;
  z-index: 999;
  width: 100%;
  margin: 0 !important;
  border-bottom: 1px solid var(--wb-gold);
  background: var(--wb-navy-deep) !important;
  box-shadow: 0 8px 26px rgba(8, 27, 44, .18);
}

body.wb-audit-remediation.admin-bar #masthead {
  top: 32px !important;
}

@media (max-width: 782px) {
  body.wb-audit-remediation.admin-bar #masthead {
    top: 46px !important;
  }
}

@media (max-width: 600px) {
  body.wb-audit-remediation.admin-bar #masthead {
    top: 0 !important;
  }
}

/* Kadence applies fixed positioning to the actual header row. Neutralize that
   positioning instead of hiding the desktop or mobile header. */
body.wb-audit-remediation #masthead .kadence-sticky-header,
body.wb-audit-remediation #mobile-header .kadence-sticky-header,
body.wb-audit-remediation #masthead .kadence-sticky-header.item-is-fixed {
  position: relative !important;
  inset: auto !important;
  z-index: auto !important;
  display: block !important;
  width: 100% !important;
  margin: 0 !important;
  transform: none !important;
}

body.wb-audit-remediation #masthead .child-is-fixed {
  display: block !important;
  height: auto !important;
}

body.wb-audit-remediation #main-header,
body.wb-audit-remediation #mobile-header,
body.wb-audit-remediation #masthead .site-main-header-wrap,
body.wb-audit-remediation #masthead .site-header-row-container-inner {
  margin-top: 0 !important;
  margin-bottom: 0 !important;
}

body.wb-audit-remediation #masthead .site-main-header-wrap,
body.wb-audit-remediation #masthead .site-main-header-wrap .site-header-row-container-inner,
body.wb-audit-remediation #mobile-header .site-header-row-container-inner {
  background: var(--wb-navy-deep) !important;
}

body.wb-audit-remediation #masthead .site-main-header-wrap .site-header-row-container-inner,
body.wb-audit-remediation #mobile-header .site-main-header-wrap .site-header-row-container-inner {
  min-height: 78px;
}

/* Logo: the masthead is navy in both its initial and sticky states. Use the
   dedicated white artwork on desktop; mobile's dark-only mark is converted to
   white without changing the source asset. */
body.wb-audit-remediation #masthead .site-branding a.brand img.kadence-sticky-logo,
body.wb-audit-remediation #mobile-header .site-branding a.brand img.kadence-sticky-logo {
  display: block !important;
  opacity: 1 !important;
  visibility: visible !important;
}

body.wb-audit-remediation #masthead .kadence-sticky-header.item-is-fixed .site-branding a.brand.has-sticky-logo img:not(.kadence-sticky-logo),
body.wb-audit-remediation #masthead .site-branding a.brand.has-sticky-logo img:not(.kadence-sticky-logo) {
  display: none !important;
}

body.wb-audit-remediation #mobile-header .site-branding a.brand.has-sticky-logo img:not(.kadence-sticky-logo) {
  display: none !important;
}

body.wb-audit-remediation #mobile-header .site-branding a.brand:not(.has-sticky-logo) img:not(.kadence-sticky-logo) {
  display: block !important;
  filter: brightness(0) invert(1);
  opacity: 1 !important;
  visibility: visible !important;
}

body.wb-audit-remediation #masthead .site-branding img,
body.wb-audit-remediation #masthead img.custom-logo,
body.wb-audit-remediation #mobile-header .site-branding img,
body.wb-audit-remediation #mobile-header img.custom-logo {
  width: auto !important;
  height: 52px !important;
  max-height: 52px;
}

body.wb-audit-remediation #masthead .main-navigation .primary-menu-container > ul > li.menu-item > a,
body.wb-audit-remediation #masthead .main-navigation .secondary-menu-container > ul > li.menu-item > a {
  color: var(--wb-white) !important;
  font-family: var(--wb-font-util);
}

body.wb-audit-remediation #masthead .main-navigation .primary-menu-container > ul > li.menu-item > a:hover,
body.wb-audit-remediation #masthead .main-navigation .primary-menu-container > ul > li.menu-item > a:focus-visible {
  color: var(--wb-gold-soft) !important;
}

body.wb-audit-remediation #masthead .menu-toggle-open,
body.wb-audit-remediation #mobile-header .menu-toggle-open {
  color: var(--wb-white) !important;
}

body.wb-audit-remediation #masthead .header-button,
body.wb-audit-remediation #mobile-header .header-button {
  border-color: var(--wb-gold) !important;
  border-radius: var(--wb-control-radius) !important;
  background: var(--wb-gold) !important;
  color: var(--wb-navy-deep) !important;
  font-family: var(--wb-font-util);
}

body.wb-audit-remediation #masthead .header-button:hover,
body.wb-audit-remediation #masthead .header-button:focus-visible,
body.wb-audit-remediation #mobile-header .header-button:hover,
body.wb-audit-remediation #mobile-header .header-button:focus-visible {
  border-color: var(--wb-navy) !important;
  background: var(--wb-navy) !important;
  color: var(--wb-white) !important;
}

body.wb-audit-remediation #masthead .sub-menu {
  border-color: var(--wb-line) !important;
  background: var(--wb-white) !important;
  box-shadow: var(--wb-shadow);
}

body.wb-audit-remediation #masthead .sub-menu a {
  color: var(--wb-navy) !important;
}

body.wb-audit-remediation #masthead .sub-menu a:hover,
body.wb-audit-remediation #masthead .sub-menu a:focus-visible {
  background: var(--wb-cream) !important;
  color: var(--wb-gold-deep) !important;
}

body.wb-audit-remediation #masthead :is(a, button):focus-visible,
body.wb-audit-remediation #mobile-drawer :is(a, button):focus-visible {
  outline: 3px solid var(--wb-gold-soft);
  outline-offset: 3px;
}

/* Mobile drawer (off-canvas / popup navigation) stays legible. */
body.wb-audit-remediation .mobile-drawer,
body.wb-audit-remediation .drawer-inner,
body.wb-audit-remediation #mobile-drawer .drawer-inner {
  background: var(--wb-white);
  color: var(--wb-ink);
}

body.wb-audit-remediation #mobile-drawer a,
body.wb-audit-remediation .mobile-drawer a {
  color: var(--wb-navy);
}

body.wb-audit-remediation.transparent-header .entry-hero .entry-hero-container-inner,
body.wb-audit-remediation.mobile-transparent-header .entry-hero .entry-hero-container-inner {
  padding-top: 0 !important;
}

/* ---- Base ---- */

.wb-site,
.wb-site * {
  box-sizing: border-box;
}

.wb-site {
  overflow: clip;
  background: var(--wb-white);
  color: var(--wb-ink);
  font-family: var(--wb-font-body);
  font-size: 15.5px;
  line-height: 1.68;
  opacity: 1 !important;
  visibility: visible !important;
  transform: none !important;
  transition: none !important;
}

/* The legacy site-wide AOS loader attaches a long fade to new page roots. */
.wb-site.aos-init,
.wb-site.aos-animate,
.wb-site [data-aos].aos-init,
.wb-site [data-aos].aos-animate {
  opacity: 1 !important;
  visibility: visible !important;
  transform: none !important;
  transition: none !important;
}

.wb-site img {
  display: block;
  width: 100%;
  height: auto;
}

.wb-site h1,
.wb-site h2,
.wb-site h3,
.wb-site p {
  margin-top: 0;
}

.wb-site h1,
.wb-site h2,
.wb-site h3 {
  color: inherit;
  font-family: var(--wb-font-display);
  font-weight: 600;
  text-wrap: balance;
}

.wb-site h1 {
  margin-bottom: 20px;
  font-size: clamp(34px, 4.8vw, 54px);
  letter-spacing: -.012em;
  line-height: 1.12;
}

.wb-site h2 {
  margin-bottom: 16px;
  font-size: clamp(27px, 3.4vw, 38px);
  letter-spacing: -.008em;
  line-height: 1.18;
}

.wb-site h3 {
  margin-bottom: 10px;
  font-size: clamp(20px, 2.1vw, 24px);
  line-height: 1.28;
}

.wb-site p {
  max-width: 68ch;
}

.wb-site p:last-child {
  margin-bottom: 0;
}

.wb-site a:focus-visible,
.wb-site button:focus-visible,
.wb-site summary:focus-visible {
  outline: 3px solid var(--wb-navy-deep);
  outline-offset: 3px;
}

.wb-hero :is(a, button, summary):focus-visible,
.wb-section--navy :is(a, button, summary):focus-visible,
.wb-cta :is(a, button, summary):focus-visible {
  outline-color: var(--wb-gold-soft);
}

.wb-shell {
  width: min(1180px, calc(100% - 40px));
  margin-inline: auto;
}

.wb-section {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  padding-block: clamp(60px, 7vw, 96px);
  background-image:
    radial-gradient(circle at 92% 8%, rgba(181, 138, 62, .09), transparent 24%),
    linear-gradient(135deg, transparent 72%, rgba(16, 42, 67, .035));
}

/* Filigree corner: fine gold double rules, echoing the scrollwork that
   frames the W in the property logo. Alternates side per section. */
.wb-section::before {
  position: absolute;
  z-index: -1;
  top: 26px;
  right: 26px;
  width: clamp(84px, 9vw, 124px);
  aspect-ratio: 1;
  background:
    linear-gradient(var(--wb-filigree, rgba(181, 138, 62, .32)), var(--wb-filigree, rgba(181, 138, 62, .32))) left top / 100% 1px no-repeat,
    linear-gradient(var(--wb-filigree, rgba(181, 138, 62, .32)), var(--wb-filigree, rgba(181, 138, 62, .32))) left top / 1px 100% no-repeat,
    linear-gradient(var(--wb-filigree, rgba(181, 138, 62, .32)), var(--wb-filigree, rgba(181, 138, 62, .32))) left 8px top 8px / calc(100% - 26px) 1px no-repeat,
    linear-gradient(var(--wb-filigree, rgba(181, 138, 62, .32)), var(--wb-filigree, rgba(181, 138, 62, .32))) left 8px top 8px / 1px calc(100% - 26px) no-repeat;
  content: '';
  pointer-events: none;
}

.wb-section:nth-of-type(even)::before {
  right: auto;
  left: 26px;
  transform: scaleX(-1);
}

.wb-section > .wb-shell {
  position: relative;
  z-index: 1;
}

.wb-section--cream {
  background: var(--wb-cream);
  background-image:
    radial-gradient(circle at 10% 12%, rgba(181, 138, 62, .08), transparent 25%),
    linear-gradient(145deg, transparent 74%, rgba(16, 42, 67, .035));
}

.wb-section--navy {
  background: var(--wb-navy);
  background-image:
    radial-gradient(circle at 88% 12%, rgba(227, 191, 124, .11), transparent 26%),
    linear-gradient(145deg, transparent 70%, rgba(246, 241, 231, .035));
  color: var(--wb-cream);
}

.wb-section--navy::before {
  --wb-filigree: rgba(227, 191, 124, .34);
}

/* Kimi K3 divider vocabulary: one shallow Kadence-style tilt, used only at
   the entry edge of navy sections. Light-to-light transitions stay flat. */
.wb-section--navy::after {
  position: absolute;
  z-index: 0;
  top: -28px;
  left: -5%;
  width: 110%;
  height: 60px;
  background: var(--wb-white);
  content: '';
  pointer-events: none;
  transform: rotate(-1.25deg);
  transform-origin: center;
}

.wb-section--cream + .wb-section--navy::after {
  background: var(--wb-cream);
}

.wb-section--tight {
  padding-block: clamp(44px, 5.5vw, 72px);
}

.wb-eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 14px;
  color: var(--wb-gold-deep);
  font-family: var(--wb-font-util);
  font-size: 12.5px;
  font-weight: 600;
  letter-spacing: .18em;
  text-transform: uppercase;
}

/* Signature filigree unit: a hairline rule with a diamond finial at its
   outer end, drawn as one clipped shape so it scales with the eyebrow. */
.wb-eyebrow::before {
  flex: none;
  width: 44px;
  height: 7px;
  background: currentColor;
  clip-path: polygon(3.5px 0, 7px 3px, 44px 3px, 44px 4px, 7px 4px, 3.5px 7px, 0 3.5px);
  content: '';
}

/* Centered intros carry the mirrored pair; left-aligned CTAs keep one. */
.wb-center .wb-eyebrow::after,
.wb-gallery-group:not(.wb-gallery-group--community) > .wb-eyebrow::after,
.wb-cta .wb-eyebrow::after {
  flex: none;
  width: 44px;
  height: 7px;
  background: currentColor;
  clip-path: polygon(3.5px 0, 7px 3px, 44px 3px, 44px 4px, 7px 4px, 3.5px 7px, 0 3.5px);
  content: '';
  transform: scaleX(-1);
}

:is(.wb-about, .wb-floor-plans, .wb-gallery, .wb-specials) .wb-cta .wb-eyebrow::after {
  content: none;
}

.wb-hero .wb-eyebrow,
.wb-section--navy .wb-eyebrow,
.wb-cta .wb-eyebrow {
  color: var(--wb-gold-soft);
}

.wb-lead {
  max-width: 62ch;
  color: var(--wb-muted);
  font-size: inherit;
  line-height: inherit;
}

.wb-hero .wb-lead,
.wb-section--navy .wb-lead,
.wb-cta .wb-lead {
  color: rgba(246, 241, 231, .88);
}

.wb-hero .wb-lead {
  font-size: clamp(16px, 1.35vw, 18px);
  line-height: 1.58;
}

/* Keep the contact invitation crisp over the detailed balcony photograph. */
.wb-contact .wb-hero .wb-lead {
  color: var(--wb-white);
  text-shadow: 0 1px 12px rgba(8, 27, 44, .58);
}

.wb-center {
  margin-inline: auto;
  text-align: center;
}

.wb-center .wb-eyebrow {
  justify-content: center;
}

.wb-center .wb-lead {
  margin-inline: auto;
}

.wb-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  margin-top: 28px;
}

.wb-center .wb-actions {
  justify-content: center;
}

/* ---- Buttons: gold is the accent action, navy is the hover state ---- */

.wb-button,
.wb-site a.wb-button {
  display: inline-flex;
  min-height: 48px;
  align-items: center;
  justify-content: center;
  padding: 12px 24px;
  border: 1.5px solid var(--wb-gold);
  border-radius: var(--wb-control-radius);
  background: var(--wb-gold);
  box-shadow: none;
  color: var(--wb-navy-deep);
  font-family: var(--wb-font-util);
  font-size: 13px;
  font-weight: 700;
  letter-spacing: .09em;
  line-height: 1.2;
  text-align: center;
  text-decoration: none;
  text-transform: uppercase;
  transition: background .18s ease, color .18s ease, border-color .18s ease;
}

.wb-button:hover,
.wb-button:focus-visible,
.wb-site a.wb-button:hover,
.wb-site a.wb-button:focus-visible {
  border-color: var(--wb-navy);
  background: var(--wb-navy);
  color: var(--wb-white);
}

.wb-button--ghost,
.wb-site a.wb-button--ghost {
  border-color: currentColor;
  background: transparent;
  color: inherit;
}

.wb-button--ghost:hover,
.wb-button--ghost:focus-visible,
.wb-site a.wb-button--ghost:hover,
.wb-site a.wb-button--ghost:focus-visible {
  border-color: var(--wb-navy);
  background: var(--wb-navy);
  color: var(--wb-white);
}

.wb-hero :is(.wb-button--ghost, a.wb-button--ghost):hover,
.wb-hero :is(.wb-button--ghost, a.wb-button--ghost):focus-visible,
.wb-section--navy :is(.wb-button--ghost, a.wb-button--ghost):hover,
.wb-section--navy :is(.wb-button--ghost, a.wb-button--ghost):focus-visible,
.wb-cta :is(.wb-button--ghost, a.wb-button--ghost):hover,
.wb-cta :is(.wb-button--ghost, a.wb-button--ghost):focus-visible {
  border-color: var(--wb-white);
  background: var(--wb-white);
  color: var(--wb-navy-deep);
}

/* ---- Hero ---- */

.wb-hero {
  position: relative;
  display: grid;
  min-height: clamp(540px, 72vh, 720px);
  place-items: center;
  background-image: linear-gradient(100deg, rgba(8, 27, 44, .70), rgba(8, 27, 44, .52)), var(--wb-hero);
  background-position: center;
  background-size: cover;
  color: var(--wb-white);
}

.wb-hero--compact {
  min-height: clamp(430px, 54vh, 560px);
}

.wb-amenities .wb-hero--compact {
  min-height: clamp(360px, 42vh, 440px);
}

.wb-hero__content {
  width: min(1180px, calc(100% - 40px));
  padding-block: 84px 116px;
}

.wb-hero__content > * {
  max-width: 720px;
}

.wb-scroll-cue {
  position: absolute;
  bottom: 28px;
  left: 50%;
  display: grid;
  width: 48px;
  height: 48px;
  border: 1px solid rgba(246, 241, 231, .7);
  border-radius: var(--wb-control-radius);
  color: var(--wb-cream);
  font-size: 22px;
  line-height: 1;
  place-items: center;
  text-decoration: none;
  transform: translateX(-50%);
}

.wb-scroll-cue:hover,
.wb-scroll-cue:focus-visible {
  border-color: var(--wb-cream);
  background: var(--wb-cream);
  color: var(--wb-navy-deep);
}

/* ---- Grids and cards ---- */

.wb-grid {
  display: grid;
  gap: 24px;
}

.wb-grid > * {
  min-width: 0;
  height: 100%;
}

.wb-grid--2 {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.wb-grid--3 {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.wb-grid--4 {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

/* Every card surface declares its own ink so dark sections can never
   bleed light text onto light cards. */
.wb-card,
.wb-media-card,
.wb-feature,
.wb-contact-card {
  color: var(--wb-ink);
}

.wb-card {
  display: flex;
  overflow: hidden;
  border: 1px solid var(--wb-line);
  border-radius: var(--wb-radius);
  background: var(--wb-white);
  box-shadow: var(--wb-shadow-soft);
  flex-direction: column;
}

a.wb-card {
  color: var(--wb-ink);
  text-decoration: none;
  transition: box-shadow .2s ease;
}

a.wb-card:hover,
a.wb-card:focus-visible {
  box-shadow: var(--wb-shadow);
}

.wb-card__image {
  aspect-ratio: 4 / 3;
  object-fit: cover;
}

.wb-card__body {
  display: flex;
  flex: 1;
  flex-direction: column;
  padding: 24px 26px 28px;
}

.wb-card__body p,
.wb-media-card__body p,
.wb-feature p,
.wb-contact-card p {
  color: var(--wb-muted);
}

.wb-card__link {
  display: inline-flex;
  margin-top: auto;
  padding-top: 14px;
  color: var(--wb-navy);
  font-family: var(--wb-font-util);
  font-size: 13px;
  font-weight: 700;
  letter-spacing: .08em;
  text-transform: uppercase;
}

a.wb-card:hover .wb-card__link,
a.wb-card:focus-visible .wb-card__link {
  color: var(--wb-gold-deep);
}

.wb-split {
  display: grid;
  align-items: center;
  gap: clamp(36px, 6vw, 80px);
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
}

.wb-split--reverse .wb-split__media {
  order: 2;
}

.wb-split__media img {
  aspect-ratio: 4 / 3;
  min-height: 320px;
  border-radius: var(--wb-radius);
  box-shadow: var(--wb-shadow);
  object-fit: cover;
}

.wb-stat-strip {
  display: grid;
  overflow: hidden;
  border-radius: var(--wb-radius);
  background: var(--wb-navy);
  color: var(--wb-cream);
  grid-template-columns: repeat(4, 1fr);
}

.wb-stat {
  padding: 30px 24px;
  border-right: 1px solid rgba(246, 241, 231, .16);
  text-align: center;
}

.wb-stat:last-child {
  border-right: 0;
}

.wb-stat strong {
  display: block;
  color: var(--wb-gold-soft);
  font-family: var(--wb-font-display);
  font-size: clamp(28px, 3vw, 38px);
  font-weight: 600;
  line-height: 1.1;
}

.wb-stat span {
  display: block;
  margin-top: 8px;
  font-family: var(--wb-font-util);
  font-size: 12.5px;
  font-weight: 600;
  letter-spacing: .1em;
  text-transform: uppercase;
}

.wb-home-stats {
  padding-block: 18px;
  background: var(--wb-navy);
}

.wb-home-stats .wb-stat-strip {
  border-radius: 0;
  background: transparent;
}

.wb-home-stats .wb-stat {
  padding-block: 20px;
}

.wb-home-room {
  padding-top: clamp(48px, 5vw, 64px);
}

.wb-feature {
  padding: 28px;
  border: 1px solid var(--wb-line);
  border-radius: var(--wb-radius);
  background: var(--wb-white);
}

.wb-feature__icon {
  display: grid;
  width: 48px;
  height: 48px;
  margin-bottom: 20px;
  border-radius: var(--wb-control-radius);
  background: var(--wb-cream);
  color: var(--wb-navy);
  font-family: var(--wb-font-util);
  font-size: 21px;
  place-items: center;
}

.wb-media-card {
  display: flex;
  overflow: hidden;
  border: 1px solid var(--wb-line);
  border-radius: var(--wb-radius);
  background: var(--wb-white);
  box-shadow: var(--wb-shadow-soft);
  flex-direction: column;
}

.wb-media-card img {
  aspect-ratio: 16 / 10;
  object-fit: cover;
}

.wb-media-card__body {
  display: flex;
  flex: 1;
  flex-direction: column;
  padding: 24px 26px 28px;
}

.wb-floor-plan {
  display: grid;
  overflow: hidden;
  border: 1px solid var(--wb-line);
  border-radius: var(--wb-radius);
  background: var(--wb-white);
  box-shadow: var(--wb-shadow);
  color: var(--wb-ink);
  grid-template-columns: minmax(0, 1.55fr) minmax(320px, .8fr);
}

.wb-floor-plan + .wb-floor-plan {
  margin-top: 40px;
}

.wb-floor-plan__image {
  display: grid;
  min-height: 460px;
  padding: 28px;
  background: var(--wb-cream-elev);
  place-items: center;
}

.wb-floor-plan__image img {
  width: 100%;
  height: 100%;
  max-height: 520px;
  object-fit: contain;
}

.wb-floor-plan__visuals {
  display: grid;
  overflow: hidden;
  padding: 0;
  grid-template-columns: minmax(0, 1.55fr) minmax(170px, .75fr);
}

.wb-floor-plan__visuals :is(.wb-floor-plan__drawing, .wb-floor-plan__photo) {
  width: 100%;
  height: 100%;
  max-height: none;
}

.wb-floor-plan__drawing {
  padding: 22px;
  background: var(--wb-cream-elev);
  object-fit: contain !important;
}

.wb-floor-plan__photo {
  border-left: 1px solid var(--wb-line);
  object-fit: cover !important;
}

.wb-floor-plan__body {
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: clamp(32px, 4.5vw, 56px);
}

.wb-floor-plan__facts {
  display: grid;
  gap: 12px;
  margin: 22px 0 28px;
  padding: 0;
  list-style: none;
}

.wb-floor-plan__facts li {
  display: flex;
  justify-content: space-between;
  gap: 18px;
  padding-bottom: 9px;
  border-bottom: 1px solid var(--wb-line);
}

.wb-floor-plan__facts strong {
  color: var(--wb-navy);
}

.wb-floor-plan__body .wb-button {
  width: 100%;
  align-self: stretch;
}

@media (min-width: 980px) {
  .wb-floor-plan--reverse .wb-floor-plan__body {
    order: 1;
  }

  .wb-floor-plan--reverse .wb-floor-plan__visuals {
    order: 2;
    grid-template-columns: minmax(170px, .75fr) minmax(0, 1.55fr);
  }

  .wb-floor-plan--reverse .wb-floor-plan__photo {
    order: 1;
    border-right: 1px solid var(--wb-line);
    border-left: 0;
  }

  .wb-floor-plan--reverse .wb-floor-plan__drawing {
    order: 2;
  }
}

/* ---- Carousel ---- */

.wb-carousel {
  position: relative;
  margin-top: 28px;
}

.wb-carousel-track {
  display: flex;
  gap: 18px;
  overflow-x: auto;
  padding: 4px 2px 12px;
  scroll-behavior: smooth;
  scroll-snap-type: x mandatory;
  scrollbar-width: none;
}

.wb-carousel-track::-webkit-scrollbar {
  display: none;
}

.wb-slide {
  flex: 0 0 calc((100% - 36px) / 3);
  overflow: hidden;
  border-radius: var(--wb-radius);
  background: var(--wb-cream);
  scroll-snap-align: start;
}

.wb-slide img {
  aspect-ratio: 4 / 3;
  object-fit: cover;
}

.wb-carousel-controls {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 10px;
  margin-top: 14px;
}

.wb-carousel-button {
  display: grid;
  width: 44px;
  height: 44px;
  padding: 0;
  border: 1px solid var(--wb-navy);
  border-radius: var(--wb-control-radius);
  background: var(--wb-white);
  color: var(--wb-navy);
  cursor: pointer;
  font-size: 22px;
  line-height: 1;
  place-items: center;
  transition: background .18s ease, color .18s ease;
}

.wb-carousel-button:not(:disabled):hover,
.wb-carousel-button:not(:disabled):focus-visible {
  background: var(--wb-navy);
  color: var(--wb-white);
}

.wb-carousel-button:disabled,
.wb-carousel-button[aria-disabled="true"] {
  border-color: var(--wb-line);
  background: var(--wb-cream-elev);
  color: var(--wb-muted);
  cursor: default;
  opacity: .58;
}

.wb-carousel-status {
  min-width: 132px;
  margin-right: auto;
  color: var(--wb-muted);
  font-family: var(--wb-font-util);
  font-size: 12px;
  font-weight: 600;
  letter-spacing: .035em;
}

/* ---- Gallery ---- */

.wb-gallery-group + .wb-gallery-group {
  margin-top: clamp(64px, 8vw, 104px);
}

.wb-gallery-group {
  text-align: center;
}

.wb-gallery-group > .wb-eyebrow {
  justify-content: center;
}

.wb-gallery-group > .wb-lead {
  margin-inline: auto;
}

.wb-gallery-group .wb-carousel {
  text-align: left;
}

#gallery-collections > .wb-shell {
  display: flex;
  flex-direction: column;
}

#gallery-collections > .wb-shell > .wb-center {
  order: 0;
}

.wb-gallery-group--one-bedroom {
  order: 1;
}

.wb-gallery-group--community {
  order: 2;
  width: 100vw;
  margin-left: calc(50% - 50vw);
  padding: clamp(54px, 6vw, 78px) max(20px, calc((100vw - 1180px) / 2));
  background: var(--wb-cream);
  text-align: left;
}

.wb-gallery-group--community > .wb-eyebrow {
  justify-content: flex-start;
}

.wb-gallery-group--community > .wb-lead {
  margin-inline: 0;
}

.wb-gallery-group--community .wb-slide {
  flex-basis: calc((100% - 54px) / 4);
}

.wb-gallery-group--two-bedroom {
  order: 3;
}

/* ---- Kimi K3 hierarchy compositions ---- */

.wb-home-pathways {
  align-items: stretch;
  gap: 24px;
  grid-template-columns: minmax(0, 1.3fr) minmax(360px, .7fr);
}

.wb-home-pathways > .wb-card--featured {
  min-height: 100%;
}

.wb-home-pathways > .wb-card--featured .wb-card__image {
  min-height: 460px;
  flex: 1;
  aspect-ratio: auto;
}

.wb-home-pathways__secondary {
  grid-template-columns: 1fr;
}

.wb-home-pathways__secondary .wb-card {
  display: grid;
  grid-template-columns: minmax(150px, .85fr) minmax(0, 1.15fr);
}

.wb-home-pathways__secondary .wb-card__image {
  height: 100%;
  min-height: 230px;
  aspect-ratio: auto;
}

.wb-home-pathways__secondary .wb-card__body {
  padding: 22px;
}

.wb-split--55-45 {
  grid-template-columns: minmax(0, 1.22fr) minmax(340px, .78fr);
}

.wb-amenity-showcase {
  display: grid;
  align-items: stretch;
  gap: 24px;
  grid-template-columns: minmax(0, 1.08fr) minmax(480px, .92fr);
}

.wb-media-card--featured img {
  min-height: 520px;
  flex: 1;
  object-fit: cover;
}

.wb-amenity-showcase__secondary {
  gap: 18px;
}

.wb-amenity-showcase__secondary .wb-media-card__body {
  padding: 20px;
  text-align: left;
}

.wb-amenity-showcase__secondary .wb-media-card img {
  aspect-ratio: 4 / 3;
}

.wb-faq-groups {
  width: min(920px, 100%);
  margin-inline: auto;
}

.wb-faq-group + .wb-faq-group {
  margin-top: clamp(48px, 6vw, 72px);
}

.wb-faq-group__label {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 14px !important;
  color: var(--wb-gold-deep) !important;
  font-family: var(--wb-font-util) !important;
  font-size: 12px !important;
  font-weight: 700 !important;
  letter-spacing: .18em !important;
  line-height: 1.3 !important;
  text-transform: uppercase;
}

.wb-faq-group__label::before {
  flex: none;
  width: 44px;
  height: 7px;
  background: currentColor;
  clip-path: polygon(3.5px 0, 7px 3px, 44px 3px, 44px 4px, 7px 4px, 3.5px 7px, 0 3.5px);
  content: '';
}

.wb-faq-group .wb-faq-list {
  margin-top: 0;
}

.wb-specials-offer {
  margin-bottom: clamp(58px, 7vw, 88px);
  grid-template-columns: 1.55fr repeat(3, 1fr);
}

.wb-specials-offer .wb-stat--featured {
  background: var(--wb-gold);
}

.wb-specials-offer .wb-stat--featured strong,
.wb-specials-offer .wb-stat--featured span {
  color: var(--wb-navy-deep);
}

.wb-specials-offer .wb-stat--featured strong {
  font-size: clamp(34px, 4vw, 50px);
}

.wb-specials-confirmation {
  display: grid;
  align-items: stretch;
  gap: 24px;
  margin-top: 40px;
  grid-template-columns: minmax(0, 1.2fr) minmax(340px, .8fr);
}

.wb-specials-confirmation > .wb-feature--featured {
  display: flex;
  min-height: 100%;
  padding: clamp(32px, 4vw, 48px);
  background: var(--wb-navy);
  color: var(--wb-cream);
  flex-direction: column;
  justify-content: center;
}

.wb-specials-confirmation > .wb-feature--featured p {
  color: rgba(247, 242, 231, .84);
}

.wb-specials-confirmation > .wb-feature--featured .wb-feature__icon {
  background: var(--wb-gold);
  color: var(--wb-navy-deep);
}

.wb-specials-confirmation__secondary {
  display: grid;
  gap: 24px;
}

.wb-slide[data-wb-lightbox-ready="1"] {
  position: relative;
  cursor: zoom-in;
}

.wb-slide[data-wb-lightbox-ready="1"]:focus-visible {
  outline: 3px solid var(--wb-gold);
  outline-offset: 3px;
}

body.wb-lightbox-open {
  overflow: hidden;
}

.wb-lightbox[hidden] {
  display: none !important;
}

.wb-lightbox {
  position: fixed;
  z-index: 100000;
  inset: 0;
  display: grid;
  padding: 16px;
  color: var(--wb-white);
  font-family: var(--wb-font-body);
  place-items: center;
}

.wb-lightbox__backdrop {
  position: absolute;
  inset: 0;
  background: rgba(8, 27, 44, .88);
  backdrop-filter: blur(7px);
}

.wb-lightbox__dialog {
  position: relative;
  z-index: 1;
  display: grid;
  width: min(1180px, calc(100vw - 32px));
  height: min(88vh, 900px);
  height: min(88dvh, 900px);
  padding: 50px 64px 28px;
  border: 1px solid rgba(255, 255, 255, .2);
  border-top: 4px solid var(--wb-gold);
  border-radius: var(--wb-control-radius);
  background: rgba(8, 27, 44, .94);
  box-shadow: 0 30px 90px rgba(0, 0, 0, .46);
  place-items: center;
}

.wb-lightbox__figure {
  display: grid;
  width: 100%;
  height: 100%;
  place-items: center;
}

.wb-lightbox__image {
  width: 100%;
  height: 100%;
  max-height: calc(88dvh - 82px);
  object-fit: contain;
}

.wb-lightbox__status {
  position: absolute;
  top: 18px;
  left: 20px;
  color: var(--wb-gold-soft);
  font-family: var(--wb-font-util);
  font-size: 12px;
  font-weight: 700;
  letter-spacing: .12em;
}

.wb-lightbox__close,
.wb-lightbox__nav {
  display: grid;
  width: 44px;
  height: 44px;
  padding: 0;
  border: 1px solid rgba(255, 255, 255, .42);
  border-radius: var(--wb-control-radius);
  background: rgba(8, 27, 44, .84);
  color: var(--wb-white);
  cursor: pointer;
  font-size: 24px;
  line-height: 1;
  place-items: center;
}

.wb-lightbox__close:hover,
.wb-lightbox__close:focus-visible,
.wb-lightbox__nav:not(:disabled):hover,
.wb-lightbox__nav:not(:disabled):focus-visible {
  border-color: var(--wb-gold-soft);
  background: var(--wb-gold);
  color: var(--wb-navy-deep);
  outline: 0;
}

.wb-lightbox__close {
  position: absolute;
  z-index: 2;
  top: 10px;
  right: 10px;
}

.wb-lightbox__nav {
  position: absolute;
  z-index: 2;
  top: 50%;
  transform: translateY(-50%);
}

.wb-lightbox__nav--previous {
  left: 10px;
}

.wb-lightbox__nav--next {
  right: 10px;
}

.wb-lightbox__nav:disabled {
  cursor: default;
  opacity: .3;
}

.wb-amenities .wb-media-card__body,
.wb-amenities .wb-feature {
  text-align: center;
}

.wb-amenities .wb-feature__icon {
  margin-inline: auto;
}

/* ---- FAQ ---- */

.wb-faq-list {
  max-width: 900px;
  margin: 36px auto 0;
}

.wb-faq {
  border-top: 1px solid var(--wb-line);
}

.wb-faq:last-child {
  border-bottom: 1px solid var(--wb-line);
}

.wb-faq summary {
  display: grid;
  min-height: 84px;
  align-items: center;
  gap: 18px;
  color: var(--wb-ink);
  cursor: pointer;
  font-family: var(--wb-font-display);
  font-size: clamp(19px, 2vw, 22px);
  font-weight: 600;
  grid-template-columns: 52px 1fr 36px;
  list-style: none;
}

.wb-faq summary::-webkit-details-marker {
  display: none;
}

.wb-faq__number {
  display: grid;
  width: 42px;
  height: 42px;
  border-radius: var(--wb-control-radius);
  background: var(--wb-cream);
  color: var(--wb-navy);
  font-family: var(--wb-font-util);
  font-size: 13px;
  font-weight: 600;
  line-height: 1;
  place-items: center;
}

.wb-faq__chevron {
  display: grid;
  width: 34px;
  height: 34px;
  border: 1px solid var(--wb-line);
  border-radius: var(--wb-control-radius);
  font-size: 20px;
  line-height: 1;
  place-items: center;
  transition: transform .2s ease;
}

.wb-faq[open] .wb-faq__chevron {
  transform: rotate(180deg);
}

.wb-faq__answer {
  padding: 0 54px 30px 70px;
  color: var(--wb-muted);
}

.wb-faq__answer a {
  color: var(--wb-navy);
  font-weight: 600;
  text-underline-offset: 2px;
}

.wb-faq__answer a:hover {
  color: var(--wb-gold-deep);
}

/* ---- Contact ---- */

.wb-contact-intro {
  max-width: 780px;
  margin-bottom: clamp(28px, 4vw, 44px);
}

.wb-contact-intro h2 {
  max-width: 15ch;
}

.wb-contact-hub {
  display: grid;
  align-items: stretch;
  grid-template-columns: minmax(0, 1.62fr) minmax(340px, 1fr);
}

.wb-contact-hub__details {
  display: grid;
  min-width: 0;
  align-content: stretch;
  grid-template-rows: minmax(0, 1fr) auto;
}

.wb-contact-primary,
.wb-contact-message,
.wb-contact-visit {
  transition: box-shadow .2s ease, transform .2s ease;
}

.wb-contact-primary {
  position: relative;
  z-index: 2;
  display: flex;
  justify-content: center;
  min-height: 430px;
  margin-right: -42px;
  padding: clamp(38px, 5.4vw, 66px) clamp(38px, 6vw, 72px);
  border-top: 4px solid var(--wb-gold);
  background:
    radial-gradient(circle at 90% 12%, rgba(227, 191, 124, .15), transparent 26%),
    var(--wb-navy-deep);
  box-shadow: var(--wb-shadow);
  color: var(--wb-cream);
  flex-direction: column;
}

.wb-contact-primary:hover,
.wb-contact-primary:focus-within {
  box-shadow: 0 22px 54px rgba(8, 27, 44, .24);
  transform: translateY(-3px);
}

.wb-contact-primary h3 {
  max-width: 13ch;
  color: var(--wb-white);
  font-size: clamp(30px, 3.6vw, 48px);
  line-height: 1.08;
}

.wb-contact-primary > p {
  max-width: 54ch;
  margin-top: 16px;
  color: rgba(246, 241, 231, .78);
}

.wb-contact-primary__phone {
  align-self: flex-start;
  margin-top: 24px;
  color: var(--wb-gold-soft);
  font-family: var(--wb-font-display);
  font-size: clamp(34px, 4.6vw, 58px);
  font-weight: 600;
  letter-spacing: -.015em;
  line-height: 1.05;
  text-decoration: none;
}

.wb-contact-primary__phone:hover,
.wb-contact-primary__phone:focus-visible {
  color: var(--wb-white);
  text-decoration: underline;
  text-decoration-color: var(--wb-gold);
  text-underline-offset: 6px;
}

.wb-contact-primary .wb-actions {
  margin-top: 30px;
}

.wb-contact-message {
  padding: 30px clamp(30px, 4vw, 48px);
  border: 1px solid var(--wb-line);
  border-top: 0;
  background: var(--wb-white);
  color: var(--wb-ink);
}

.wb-contact-message:hover,
.wb-contact-message:focus-within {
  box-shadow: var(--wb-shadow-soft);
  transform: translateY(-2px);
}

.wb-contact-message h3 {
  font-size: clamp(24px, 2.8vw, 32px);
}

.wb-contact-message p {
  max-width: 58ch;
  color: var(--wb-muted);
}

.wb-contact-message .wb-actions {
  margin-top: 20px;
}

.wb-contact-visit {
  position: relative;
  z-index: 1;
  overflow: hidden;
  min-height: 620px;
  background: var(--wb-navy);
  box-shadow: var(--wb-shadow);
}

.wb-contact-visit:hover,
.wb-contact-visit:focus-within {
  box-shadow: 0 22px 54px rgba(8, 27, 44, .24);
  transform: translateY(-3px);
}

.wb-contact-visit > img {
  width: 100%;
  height: 100%;
  min-height: 620px;
  object-fit: cover;
}

.wb-contact-visit::after {
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, transparent 38%, rgba(8, 27, 44, .78) 100%);
  content: '';
  pointer-events: none;
}

.wb-contact-visit__panel {
  position: absolute;
  z-index: 1;
  right: 22px;
  bottom: 22px;
  left: 22px;
  padding: 28px;
  border-top: 3px solid var(--wb-gold);
  background: rgba(8, 27, 44, .94);
  box-shadow: 0 14px 34px rgba(0, 0, 0, .24);
  color: var(--wb-cream);
  backdrop-filter: blur(5px);
}

.wb-contact-visit__panel h3 {
  color: var(--wb-white);
  font-size: clamp(25px, 2.6vw, 34px);
}

.wb-contact-visit__panel p {
  color: rgba(246, 241, 231, .78);
}

.wb-contact-visit__panel .wb-actions {
  margin-top: 20px;
}

.wb-resident-strip {
  padding-block: 20px;
}

.wb-resident-strip::after,
.wb-resident-strip::before {
  display: none;
}

.wb-resident-strip__inner {
  display: grid;
  min-height: 64px;
  align-items: center;
  gap: 18px 28px;
  grid-template-columns: auto 1fr auto;
}

.wb-resident-strip__inner h2,
.wb-resident-strip__inner p {
  margin: 0;
}

.wb-resident-strip__inner h2 {
  color: var(--wb-white);
  font-size: 20px;
  white-space: nowrap;
}

.wb-resident-strip__inner p {
  color: rgba(247, 242, 231, .78);
}

.wb-resident-strip__inner .wb-button {
  min-height: 44px;
}

.wb-notice {
  padding: 20px 22px;
  border-left: 3px solid var(--wb-gold);
  border-radius: 0 10px 10px 0;
  background: var(--wb-cream);
  color: var(--wb-muted);
}

/* ---- Policy pages ---- */

.wb-policy__layout {
  display: grid;
  align-items: start;
  gap: clamp(34px, 6vw, 84px);
  justify-content: center;
  grid-template-columns: minmax(230px, 300px) minmax(0, 680px);
}

.wb-policy__summary {
  position: sticky;
  top: 116px;
  padding: 26px;
  border-top: 3px solid var(--wb-gold);
  background: rgba(255, 255, 255, .72);
  box-shadow: var(--wb-shadow-soft);
  backdrop-filter: blur(8px);
}

.wb-policy__summary p {
  margin-bottom: 10px;
  color: var(--wb-navy);
  line-height: 1.5;
}

.wb-policy__copy {
  max-width: 680px;
}

.wb-policy__copy h2 {
  margin-top: 2.15em;
  margin-bottom: .55em;
  color: var(--wb-navy);
  font-size: clamp(23px, 2.6vw, 31px);
}

.wb-policy__copy h2:first-of-type {
  margin-top: 1.35em;
}

.wb-policy__copy p {
  margin-bottom: 1.15em;
}

.wb-policy__copy a {
  color: var(--wb-gold-deep);
  font-weight: 600;
  text-decoration: underline;
  text-underline-offset: 3px;
}

.wb-policy__effective {
  padding-bottom: 18px;
  border-bottom: 1px solid var(--wb-line);
  color: var(--wb-muted);
}

/* ---- CTA band ---- */

.wb-cta {
  padding: clamp(40px, 6vw, 72px);
  border-radius: var(--wb-radius);
  background: var(--wb-navy);
  color: var(--wb-cream);
  text-align: center;
}

.wb-cta .wb-lead {
  margin-inline: auto;
}

.wb-cta .wb-actions {
  justify-content: center;
}

:is(.wb-about, .wb-floor-plans, .wb-gallery, .wb-specials) .wb-cta {
  text-align: left;
}

:is(.wb-about, .wb-floor-plans, .wb-gallery, .wb-specials) .wb-cta .wb-lead {
  margin-inline: 0;
  text-align: left;
}

:is(.wb-about, .wb-floor-plans, .wb-gallery, .wb-specials) .wb-cta .wb-actions {
  justify-content: flex-start;
}

/* ---- Existing AssistLoop leasing controls ----
   AssistLoop keeps ownership of chat behavior and its iframe. These stronger
   rules align the preserved controls with the Waterford design system. */

body.wb-audit-remediation .bcio-floating-call-cta {
  position: fixed !important;
  overflow: hidden !important;
  left: 18px !important;
  bottom: 18px !important;
  z-index: 99980 !important;
  width: 52px !important;
  min-width: 52px !important;
  max-width: 52px !important;
  height: 52px !important;
  padding: 0 !important;
  border: 1px solid var(--wb-gold) !important;
  border-radius: var(--wb-control-radius) !important;
  background: var(--wb-navy-deep) !important;
  box-shadow: 0 8px 24px rgba(0, 0, 0, .25) !important;
  color: var(--wb-white) !important;
  display: grid !important;
  place-items: center !important;
}

/* Icon-only square: the label stays in the accessibility tree (alongside the
   link's own aria-label/title) but never clips inside the compact control. */
body.wb-audit-remediation .bcio-floating-call-text {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  margin: -1px !important;
  padding: 0 !important;
  overflow: hidden !important;
  border: 0 !important;
  clip: rect(0 0 0 0) !important;
  clip-path: inset(50%) !important;
  white-space: nowrap !important;
}

body.wb-audit-remediation .bcio-floating-call-cta:hover,
body.wb-audit-remediation .bcio-floating-call-cta:focus-visible {
  background: var(--wb-gold) !important;
  color: var(--wb-navy-deep) !important;
  outline: 3px solid var(--wb-gold-soft) !important;
  outline-offset: 3px !important;
  transform: none !important;
}

body.wb-audit-remediation .bcio-floating-phone-icon {
  display: grid !important;
  width: 36px !important;
  height: 36px !important;
  border-radius: var(--wb-control-radius) !important;
  background: var(--wb-gold) !important;
  box-shadow: none !important;
  color: var(--wb-navy-deep) !important;
  animation: none !important;
  place-items: center !important;
}

body.wb-audit-remediation .bcio-floating-phone-icon::after {
  display: none !important;
}

body.wb-audit-remediation .bcio-floating-phone-icon svg {
  width: 19px !important;
  height: 19px !important;
}

body.wb-audit-remediation .bcio-assistloop-widget {
  position: fixed !important;
  right: 18px !important;
  bottom: 18px !important;
  z-index: 99980 !important;
  max-width: calc(100vw - 92px) !important;
}

body.wb-audit-remediation .bcio-assistloop-launcher {
  display: inline-flex !important;
  min-height: 52px !important;
  align-items: center !important;
  gap: 10px !important;
  padding: 6px 14px 6px 6px !important;
  border: 1px solid var(--wb-gold) !important;
  border-radius: var(--wb-control-radius) !important;
  background: var(--wb-navy-deep) !important;
  box-shadow: 0 8px 24px rgba(0, 0, 0, .25) !important;
  color: var(--wb-white) !important;
}

/* Title and detail stack as two deliberate lines, never concatenated. */
body.wb-audit-remediation .bcio-assistloop-launcher-copy {
  display: flex !important;
  min-width: 0;
  align-items: flex-start !important;
  flex-direction: column !important;
  gap: 2px !important;
  line-height: 1.3 !important;
  text-align: left !important;
}

body.wb-audit-remediation .bcio-assistloop-launcher-copy strong,
body.wb-audit-remediation .bcio-assistloop-launcher-copy span {
  display: block !important;
  line-height: 1.3 !important;
}

body.wb-audit-remediation .bcio-assistloop-launcher:hover,
body.wb-audit-remediation .bcio-assistloop-launcher:focus-visible {
  background: var(--wb-navy) !important;
  outline: 3px solid var(--wb-gold-soft) !important;
  outline-offset: 3px !important;
  transform: none !important;
}

body.wb-audit-remediation .bcio-assistloop-launcher-icon {
  width: 38px !important;
  min-width: 38px !important;
  height: 38px !important;
  border-radius: var(--wb-control-radius) !important;
  background: var(--wb-gold) !important;
  box-shadow: none !important;
  color: var(--wb-navy-deep) !important;
}

body.wb-audit-remediation .bcio-assistloop-launcher-icon svg {
  width: 21px !important;
  height: 21px !important;
}

body.wb-audit-remediation .bcio-assistloop-launcher-copy strong {
  color: var(--wb-white) !important;
  font-family: var(--wb-font-util) !important;
  font-size: 11.5px !important;
  letter-spacing: .08em !important;
}

body.wb-audit-remediation .bcio-assistloop-launcher-copy span {
  color: var(--wb-gold-soft) !important;
  font-family: var(--wb-font-body) !important;
  font-size: 11px !important;
  font-weight: 600 !important;
  letter-spacing: 0 !important;
}

body.wb-audit-remediation .bcio-assistloop-chat-frame {
  overflow: hidden !important;
  border: 1px solid var(--wb-line) !important;
  border-top: 4px solid var(--wb-gold) !important;
  border-radius: var(--wb-control-radius) !important;
  background: var(--wb-white) !important;
  box-shadow: 0 24px 64px rgba(8, 27, 44, .34) !important;
}

body.wb-audit-remediation .bcio-assistloop-chat-topbar {
  background: var(--wb-navy-deep) !important;
  color: var(--wb-white) !important;
  font-family: var(--wb-font-util) !important;
}

body.wb-audit-remediation .bcio-assistloop-close {
  border: 1px solid rgba(255, 255, 255, .4) !important;
  border-radius: var(--wb-control-radius) !important;
  background: transparent !important;
}

body.wb-audit-remediation .bcio-assistloop-close:hover,
body.wb-audit-remediation .bcio-assistloop-close:focus-visible {
  background: var(--wb-gold) !important;
  color: var(--wb-navy-deep) !important;
}

/* ---- Back to top ---- */

.wb-back-to-top {
  position: fixed;
  right: 18px;
  bottom: 88px;
  z-index: 99990;
  display: inline-flex;
  min-height: 46px;
  align-items: center;
  gap: 8px;
  padding: 10px 16px;
  border: 0;
  border-radius: var(--wb-control-radius);
  background: var(--wb-navy-deep);
  box-shadow: 0 8px 24px rgba(0, 0, 0, .24);
  color: var(--wb-cream);
  cursor: pointer;
  font-family: var(--wb-font-util);
  font-size: 12.5px;
  font-weight: 700;
  letter-spacing: .06em;
  text-transform: uppercase;
}

.wb-back-to-top:hover,
.wb-back-to-top:focus-visible {
  background: var(--wb-navy);
  color: var(--wb-white);
}

.wb-back-to-top:focus-visible {
  outline: 3px solid var(--wb-gold-soft);
  outline-offset: 3px;
}

.wb-back-to-top[hidden],
html.wb-modal-open .wb-back-to-top {
  display: none;
}

/* ---- Footer harmonization ---- */

body.wb-audit-remediation .site-footer {
  background: var(--wb-navy-deep);
  color: rgba(246, 241, 231, .82);
}

body.wb-audit-remediation .site-footer a {
  color: var(--wb-gold-soft);
  text-underline-offset: 2px;
}

body.wb-audit-remediation .site-footer a:hover,
body.wb-audit-remediation .site-footer a:focus-visible {
  color: var(--wb-white);
}

body.wb-audit-remediation .site-footer a:focus-visible {
  outline: 3px solid var(--wb-gold-soft);
  outline-offset: 3px;
}

body.wb-audit-remediation .wb-footer-legal {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 0.6rem 1.25rem;
  width: min(100% - 2rem, 76rem);
  margin: 0 auto;
  padding: 1rem;
  color: var(--wb-white);
  background: var(--wb-navy-deep);
  border-top: 1px solid rgba(207, 169, 95, 0.42);
  font-size: 0.82rem;
  line-height: 1.4;
}

body.wb-audit-remediation .wb-footer-legal a {
  color: var(--wb-gold-soft);
  text-underline-offset: 0.22em;
}

body.wb-audit-remediation .site-footer .wb-footer-legal {
  background: transparent;
}

/* ---- Article (post) remediation ---- */

.single-post.wb-audit-remediation .entry-content a[href*="/wp-content/uploads/"] {
  cursor: default;
  pointer-events: none;
}

.blog.wb-audit-remediation .entry-hero,
.archive.wb-audit-remediation .entry-hero,
.single-post.wb-audit-remediation .entry-hero {
  background: var(--wb-cream);
  color: var(--wb-ink);
}

.blog.wb-audit-remediation .entry-hero h1,
.archive.wb-audit-remediation .entry-hero h1,
.single-post.wb-audit-remediation .entry-hero h1 {
  color: var(--wb-ink);
  font-family: var(--wb-font-display);
  font-size: clamp(32px, 4.5vw, 48px);
  font-weight: 600;
  letter-spacing: -.012em;
  line-height: 1.14;
}

.blog.wb-audit-remediation .content-area,
.archive.wb-audit-remediation .content-area,
.single-post.wb-audit-remediation .content-area {
  padding-top: 48px;
  color: var(--wb-ink);
  font-family: var(--wb-font-body);
}

:is(.blog, .archive, .single-post).wb-audit-remediation :is(.entry-title, .post-title, .entry-content h1, .entry-content h2, .entry-content h3, .entry-content h4, .entry-content h5, .entry-content h6) {
  color: var(--wb-ink);
  font-family: var(--wb-font-display);
  font-weight: 600;
  text-wrap: balance;
}

:is(.blog, .archive).wb-audit-remediation :is(.loop-entry, article) .entry-title {
  font-size: clamp(24px, 2.8vw, 32px);
  letter-spacing: -.008em;
  line-height: 1.22;
}

.single-post.wb-audit-remediation .entry-content {
  color: var(--wb-ink);
  font-family: var(--wb-font-body);
  font-size: 16px;
  line-height: 1.72;
}

:is(.blog, .archive, .single-post).wb-audit-remediation :is(.entry-summary, .entry-content) :is(p, li, td, th, figcaption),
:is(.blog, .archive, .single-post).wb-audit-remediation :is(.entry-meta, .posted-on, .post-more-link, .pagination) {
  font-family: var(--wb-font-body);
}

.single-post.wb-audit-remediation .entry-content h2 {
  margin: 2.1em 0 .65em;
  font-size: clamp(27px, 3vw, 36px);
  line-height: 1.2;
}

.single-post.wb-audit-remediation .entry-content h3 {
  margin: 1.8em 0 .55em;
  font-size: clamp(22px, 2.3vw, 28px);
  line-height: 1.25;
}

.single-post.wb-audit-remediation .entry-content h4 {
  margin: 1.6em 0 .5em;
  font-size: clamp(19px, 2vw, 23px);
  line-height: 1.3;
}

:is(.blog, .archive, .single-post).wb-audit-remediation :is(.entry-meta, .posted-on, .post-more-link, .pagination) {
  font-family: var(--wb-font-util);
  letter-spacing: .01em;
}

:is(.blog, .archive, .single-post).wb-audit-remediation .content-area :is(a, button):focus-visible {
  outline: 3px solid var(--wb-navy-deep);
  outline-offset: 3px;
}

.single-post.wb-audit-remediation .entry-content li:empty {
  display: none;
}

/* ---- Responsive ---- */

@media (max-width: 979px) {
  .wb-grid--4 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .wb-grid--3 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .wb-split,
  .wb-floor-plan {
    grid-template-columns: 1fr;
  }

  .wb-home-pathways__secondary {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .wb-home-pathways__secondary .wb-card {
    display: flex;
  }

  .wb-home-pathways__secondary .wb-card__image {
    min-height: 0;
    aspect-ratio: 4 / 3;
  }

  .wb-amenity-showcase,
  .wb-specials-confirmation {
    grid-template-columns: 1fr;
  }

  .wb-media-card--featured img {
    min-height: 400px;
  }

  .wb-gallery-group--community .wb-slide {
    flex-basis: calc((100% - 18px) / 2);
  }

  .wb-split--reverse .wb-split__media {
    order: 0;
  }

  .wb-floor-plan__image {
    min-height: 0;
  }

  .wb-contact-hub {
    gap: 0;
    grid-template-columns: 1fr;
  }

  .wb-contact-primary {
    min-height: 0;
    margin-right: 0;
  }

  .wb-contact-visit {
    min-height: 520px;
  }

  .wb-contact-visit > img {
    min-height: 520px;
  }

  .wb-stat-strip {
    grid-template-columns: repeat(2, 1fr);
  }

  .wb-stat:nth-child(2) {
    border-right: 0;
  }

  .wb-stat:nth-child(-n + 2) {
    border-bottom: 1px solid rgba(246, 241, 231, .16);
  }

  .wb-slide {
    flex-basis: calc((100% - 18px) / 2);
  }

  .wb-policy__layout {
    grid-template-columns: 1fr;
  }

  .wb-policy__summary {
    position: static;
  }

  .wb-resident-strip__inner {
    grid-template-columns: auto 1fr;
  }

  .wb-resident-strip__inner .wb-button {
    grid-column: 1 / -1;
    justify-self: start;
  }
}

@media (max-width: 639px) {
  .wb-shell,
  .wb-hero__content {
    width: min(100% - 28px, 1180px);
  }

  .wb-site {
    font-size: 15px;
  }

  .wb-section--navy::after {
    top: -18px;
    height: 40px;
  }

  body.wb-audit-remediation #masthead .site-branding img,
  body.wb-audit-remediation #masthead img.custom-logo,
  body.wb-audit-remediation #mobile-header .site-branding img,
  body.wb-audit-remediation #mobile-header img.custom-logo {
    height: 40px !important;
    max-height: 40px;
  }

  .wb-hero {
    min-height: 560px;
    background-position: 60% center;
  }

  .wb-hero--compact {
    min-height: 460px;
  }

  .wb-hero__content {
    padding-block: 68px 104px;
  }

  .wb-actions,
  .wb-actions .wb-button {
    width: 100%;
  }

  .wb-contact-primary {
    padding: 34px 22px;
  }

  .wb-contact-primary__phone {
    font-size: clamp(32px, 10vw, 44px);
  }

  .wb-contact-message {
    padding: 28px 22px;
  }

  .wb-contact-visit {
    min-height: 0;
    overflow: visible;
    background: var(--wb-white);
  }

  .wb-contact-visit > img {
    height: auto;
    min-height: 0;
    aspect-ratio: 4 / 3;
  }

  .wb-contact-visit::after {
    display: none;
  }

  .wb-contact-visit__panel {
    position: static;
    padding: 28px 22px;
    border-top-width: 4px;
    background: var(--wb-navy-deep);
    backdrop-filter: none;
  }

  .wb-grid--2,
  .wb-grid--3,
  .wb-grid--4 {
    grid-template-columns: 1fr;
  }

  .wb-home-pathways__secondary {
    grid-template-columns: 1fr;
  }

  .wb-home-pathways > .wb-card--featured .wb-card__image,
  .wb-media-card--featured img {
    min-height: 280px;
  }

  .wb-floor-plan__visuals {
    min-height: 0;
    grid-template-columns: 1fr;
  }

  .wb-floor-plan__visuals :is(.wb-floor-plan__drawing, .wb-floor-plan__photo) {
    height: auto;
  }

  .wb-floor-plan__drawing {
    aspect-ratio: 4 / 3;
  }

  .wb-floor-plan__photo {
    border-top: 1px solid var(--wb-line);
    border-left: 0;
    aspect-ratio: 16 / 10;
  }

  .wb-gallery-group--community {
    padding-inline: 14px;
  }

  .wb-gallery-group--community .wb-slide {
    flex-basis: 100%;
  }

  .wb-specials-offer {
    grid-template-columns: 1fr;
  }

  .wb-resident-strip {
    padding-block: 28px;
  }

  .wb-resident-strip__inner {
    grid-template-columns: 1fr;
  }

  .wb-resident-strip__inner h2 {
    white-space: normal;
  }

  .wb-resident-strip__inner .wb-button {
    width: 100%;
  }

  .wb-split__media img {
    min-height: 280px;
  }

  .wb-stat-strip {
    grid-template-columns: 1fr;
  }

  .wb-home-stats .wb-stat-strip {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .wb-home-stats .wb-stat:nth-child(odd) {
    border-right: 1px solid rgba(246, 241, 231, .16);
  }

  .wb-home-stats .wb-stat:nth-child(2) {
    border-right: 0;
  }

  .wb-home-stats .wb-stat:nth-last-child(-n + 2) {
    border-bottom: 0;
  }

  .wb-stat,
  .wb-stat:nth-child(2) {
    border-right: 0;
    border-bottom: 1px solid rgba(246, 241, 231, .16);
  }

  .wb-stat:last-child {
    border-bottom: 0;
  }

  .wb-floor-plan__image {
    padding: 18px;
  }

  .wb-floor-plan__body {
    padding: 28px 22px 32px;
  }

  .wb-floor-plan__body .wb-button {
    align-self: stretch;
  }

  .wb-floor-plan__facts li {
    align-items: flex-start;
    flex-direction: column;
    gap: 2px;
  }

  .wb-slide {
    flex-basis: 100%;
  }

  .wb-carousel-controls {
    justify-content: space-between;
  }

  .wb-carousel-status {
    min-width: 0;
  }

  body.wb-audit-remediation .bcio-floating-call-cta {
    left: 12px !important;
    bottom: 12px !important;
    width: 50px !important;
    min-width: 50px !important;
    max-width: 50px !important;
    height: 50px !important;
  }

  body.wb-audit-remediation .bcio-assistloop-widget {
    right: 12px !important;
    bottom: 12px !important;
    max-width: calc(100vw - 82px) !important;
  }

  body.wb-audit-remediation .bcio-assistloop-widget.is-open {
    right: 10px !important;
    bottom: 10px !important;
    left: 10px !important;
    width: calc(100vw - 20px) !important;
    max-width: none !important;
  }

  body.wb-audit-remediation .bcio-assistloop-launcher {
    max-width: calc(100vw - 82px) !important;
  }

  .wb-lightbox {
    padding: 8px;
  }

  .wb-lightbox__dialog {
    width: calc(100vw - 16px);
    height: min(90dvh, 760px);
    padding: 54px 10px 64px;
  }

  .wb-lightbox__image {
    max-height: calc(90dvh - 118px);
  }

  .wb-lightbox__nav {
    top: auto;
    bottom: 10px;
    transform: none;
  }

  .wb-lightbox__nav--previous {
    left: calc(50% - 50px);
  }

  .wb-lightbox__nav--next {
    right: calc(50% - 50px);
  }

  .wb-faq summary {
    min-height: 76px;
    gap: 10px;
    grid-template-columns: 42px 1fr 34px;
  }

  .wb-faq__answer {
    padding: 0 0 26px 52px;
  }

  .wb-cta {
    padding: 40px 22px;
  }

  .wb-back-to-top {
    right: 12px;
    bottom: 78px;
  }

  .wb-back-to-top span:last-child {
    display: none;
  }
}

@media (prefers-reduced-motion: reduce) {
  html {
    scroll-behavior: auto;
  }

  .wb-button,
  .wb-card,
  .wb-carousel-button,
  .wb-faq__chevron,
  .wb-carousel-track {
    scroll-behavior: auto;
    transition: none;
  }
}

/* ============================================================================
   Production contrast and footer cascade corrections

   Kadence applies opaque backgrounds to the footer row inners, so styling the
   outer .site-footer alone leaves the legacy white panels visible. Keep the
   approved navy/gold/cream composition on the actual painted rows and make the
   legacy black logo a white brand mark without replacing the source asset.
   ============================================================================ */

body.wb-audit-remediation .site-footer .site-footer-row-container-inner {
  background: var(--wb-navy-deep) !important;
  color: rgba(246, 241, 231, .84) !important;
}

body.wb-audit-remediation .site-footer .site-middle-footer-inner-wrap {
  padding: 40px 20px 30px !important;
}

body.wb-audit-remediation .site-footer img.wp-image-1381 {
  width: min(230px, 70vw) !important;
  height: auto !important;
  filter: brightness(0) invert(1);
  opacity: .96;
}

body.wb-audit-remediation .site-footer .wp-block-kadence-spacer {
  height: 16px !important;
}

body.wb-audit-remediation .site-footer h5.wp-block-kadence-advancedheading {
  margin: 0 !important;
  color: rgba(246, 241, 231, .84) !important;
  font-family: var(--wb-font-body) !important;
  font-size: 15px !important;
  font-weight: 500 !important;
  letter-spacing: .01em !important;
  line-height: 1.7 !important;
  text-transform: none !important;
}

body.wb-audit-remediation .site-footer h5.wp-block-kadence-advancedheading a,
body.wb-audit-remediation .site-footer .site-info a {
  color: var(--wb-gold-soft) !important;
}

body.wb-audit-remediation .site-footer .site-info {
  color: rgba(246, 241, 231, .78) !important;
  font-size: 14px !important;
}

body.wb-audit-remediation .site-footer .site-info p {
  color: inherit !important;
}

/* Eyebrows inside the two dark contact panels need the light-gold token. */
.wb-contact-primary .wb-eyebrow,
.wb-contact-visit__panel .wb-eyebrow {
  color: var(--wb-gold-soft) !important;
}

/* News category labels are small utility text on white cards. */
:is(.blog, .archive).wb-audit-remediation .entry-taxonomies a {
  color: var(--wb-gold-deep) !important;
  font-family: var(--wb-font-util) !important;
  font-size: 12px !important;
  font-weight: 700 !important;
  letter-spacing: .08em !important;
}

/* Bring the retained WordPress privacy page into the same accessible control
   and link palette as the rebuilt prospect pages. */
body.privacy-policy.wb-audit-remediation .entry-content p a:not(.kb-button) {
  color: var(--wb-gold-deep) !important;
  font-weight: 600 !important;
}

body.privacy-policy.wb-audit-remediation a.kb-button.kb-btn-global-fill {
  border-color: var(--wb-gold) !important;
  border-radius: var(--wb-control-radius) !important;
  background: var(--wb-gold) !important;
  color: var(--wb-navy-deep) !important;
}

body.privacy-policy.wb-audit-remediation a.kb-button.kb-btn-global-outline {
  border-color: var(--wb-gold-soft) !important;
  border-radius: var(--wb-control-radius) !important;
  background: rgba(8, 27, 44, .34) !important;
  color: var(--wb-gold-soft) !important;
}

body.privacy-policy.wb-audit-remediation a.kb-button:is(:hover, :focus-visible) {
  border-color: var(--wb-white) !important;
  background: var(--wb-white) !important;
  color: var(--wb-navy-deep) !important;
}

body.wb-audit-remediation .skip-link:focus {
  background: var(--wb-navy-deep) !important;
  color: var(--wb-white) !important;
}

@media (max-width: 639px) {
  body.wb-audit-remediation .site-footer .site-middle-footer-inner-wrap {
    padding: 32px 18px 24px !important;
  }

  body.wb-audit-remediation .site-footer h5.wp-block-kadence-advancedheading {
    font-size: 14px !important;
    line-height: 1.65 !important;
  }
}

/* ============================================================================
   Kadence Conversions leasing dialogs
   Scope: the four Waterford campaigns only (1867 message, 1869 two-bedroom,
   1874 one-bedroom, 1893 tour) plus the .wb-modal hook that site.js applies.
   Structural hooks (.wb-modal__panel/__body/__close/__title) are tagged by
   site.js. The direct .kadence-conversion child is the outer dialog panel;
   .kadence-conversion-inner remains its unboxed content body.
   ============================================================================ */

:is(#kadence-conversion-1867, #kadence-conversion-1869, #kadence-conversion-1874, #kadence-conversion-1893, .wb-modal) {
  --wb-field: 48px;
  box-sizing: border-box;
  color: var(--wb-ink);
  font-family: var(--wb-font-body);
  background: rgba(8, 27, 44, .62) !important;
}

:is(#kadence-conversion-1867, #kadence-conversion-1869, #kadence-conversion-1874, #kadence-conversion-1893, .wb-modal) * {
  box-sizing: border-box;
}

/* Overlay: calm navy scrim rather than flat black. */
:is(#kadence-conversion-1867, #kadence-conversion-1869, #kadence-conversion-1874, #kadence-conversion-1893, .wb-modal) :is(.wb-modal__overlay, [class*="overlay"], [class*="backdrop"]) {
  background: rgba(8, 27, 44, .62) !important;
}

/* Panel: responsive width, safe height, internal scrolling, soft elevation. */
:is(#kadence-conversion-1867, #kadence-conversion-1869, #kadence-conversion-1874, #kadence-conversion-1893, .wb-modal) > .kadence-conversion,
:is(#kadence-conversion-1867, #kadence-conversion-1869, #kadence-conversion-1874, #kadence-conversion-1893, .wb-modal) .wb-modal__panel {
  position: relative !important;
  overflow-y: auto !important;
  width: min(560px, calc(100vw - 32px)) !important;
  max-width: min(560px, calc(100vw - 32px)) !important;
  max-height: 88vh !important;
  max-height: min(88vh, 88dvh) !important;
  padding: 0 !important;
  border: 1px solid var(--wb-line) !important;
  border-top: 0 !important;
  border-radius: var(--wb-control-radius) !important;
  background: var(--wb-cream) !important;
  box-shadow: 0 26px 70px rgba(8, 27, 44, .34) !important;
  overscroll-behavior: contain;
  -webkit-overflow-scrolling: touch;
}

/* Kadence ships width, padding, border, and background on its inner layer.
   The outer panel above owns that presentation so the dialog renders once. */
:is(#kadence-conversion-1867, #kadence-conversion-1869, #kadence-conversion-1874, #kadence-conversion-1893, .wb-modal) > .kadence-conversion > .kadence-conversion-inner,
:is(#kadence-conversion-1867, #kadence-conversion-1869, #kadence-conversion-1874, #kadence-conversion-1893, .wb-modal) .wb-modal__body {
  position: static !important;
  overflow: visible !important;
  width: 100% !important;
  max-width: none !important;
  max-height: none !important;
  margin: 0 !important;
  padding: 0 40px 38px !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: var(--wb-cream) !important;
  box-shadow: none !important;
  transform: none !important;
}

:is(#kadence-conversion-1867, #kadence-conversion-1869, #kadence-conversion-1874, #kadence-conversion-1893, .wb-modal) .wb-modal__header {
  margin: 0 -40px 30px;
  padding: 30px 76px 26px 40px;
  border-bottom: 3px solid var(--wb-gold);
  background: var(--wb-navy-deep);
  color: var(--wb-white);
}

/* Title: restrained display type, sentence-cased by site.js, never all-caps. */
:is(#kadence-conversion-1867, #kadence-conversion-1869, #kadence-conversion-1874, #kadence-conversion-1893, .wb-modal) .wb-modal__title {
  margin: 0 0 10px !important;
  padding-right: 0 !important;
  color: var(--wb-white) !important;
  font-family: var(--wb-font-display) !important;
  font-size: clamp(24px, 3.4vw, 30px) !important;
  font-weight: 600 !important;
  letter-spacing: -.008em !important;
  line-height: 1.2 !important;
  text-align: left !important;
  text-transform: none !important;
}

/* Secondary form headings stay subordinate to the dialog title. */
:is(#kadence-conversion-1867, #kadence-conversion-1869, #kadence-conversion-1874, #kadence-conversion-1893, .wb-modal) .wb-modal__body :is(h2, h3, h4):not(.wb-modal__title) {
  margin: 22px 0 8px !important;
  padding-right: 0 !important;
  color: var(--wb-navy) !important;
  font-family: var(--wb-font-display) !important;
  font-size: clamp(19px, 2.5vw, 22px) !important;
  font-weight: 600 !important;
  line-height: 1.3 !important;
  text-align: left !important;
  text-transform: none !important;
}

:is(#kadence-conversion-1867, #kadence-conversion-1869, #kadence-conversion-1874, #kadence-conversion-1893, .wb-modal) .wb-modal__eyebrow {
  display: block;
  margin: 0 0 12px;
  padding-right: 0;
  color: var(--wb-gold-soft);
  font-family: var(--wb-font-util);
  font-size: 12px;
  font-weight: 600;
  letter-spacing: .18em;
  line-height: 1.4;
  text-transform: uppercase;
}

/* Reassurance line injected by site.js — never a promise, only context. */
:is(#kadence-conversion-1867, #kadence-conversion-1869, #kadence-conversion-1874, #kadence-conversion-1893, .wb-modal) .wb-modal__note {
  max-width: 46ch;
  margin: 0;
  color: rgba(247, 242, 231, .84);
  font-size: 15.5px;
  line-height: 1.6;
}

:is(#kadence-conversion-1867, #kadence-conversion-1869, #kadence-conversion-1874, #kadence-conversion-1893, .wb-modal) p {
  color: var(--wb-muted);
}

/* Close control: pinned to the top of the panel, so it stays reachable even
   when a long form scrolls inside the dialog. The negative bottom margin keeps
   it from pushing the eyebrow and title down. */
:is(#kadence-conversion-1867, #kadence-conversion-1869, #kadence-conversion-1874, #kadence-conversion-1893, .wb-modal) :is(.wb-modal__close, [class*="conversion-close"]) {
  position: sticky !important;
  top: 0 !important;
  right: auto !important;
  bottom: auto !important;
  left: auto !important;
  z-index: 5;
  display: grid !important;
  width: 44px !important;
  height: 44px !important;
  min-width: 44px;
  min-height: 44px;
  margin: 16px 16px -60px auto !important;
  padding: 0 !important;
  border: 1px solid var(--wb-gold) !important;
  border-radius: var(--wb-control-radius) !important;
  background: var(--wb-navy-deep) !important;
  box-shadow: none !important;
  color: var(--wb-white) !important;
  cursor: pointer;
  font-size: 20px !important;
  line-height: 1 !important;
  opacity: 1 !important;
  place-items: center;
  transform: none !important;
  transition: background .18s ease, color .18s ease, border-color .18s ease;
}

:is(#kadence-conversion-1867, #kadence-conversion-1869, #kadence-conversion-1874, #kadence-conversion-1893, .wb-modal) :is(.wb-modal__close, [class*="conversion-close"]):hover,
:is(#kadence-conversion-1867, #kadence-conversion-1869, #kadence-conversion-1874, #kadence-conversion-1893, .wb-modal) :is(.wb-modal__close, [class*="conversion-close"]):focus-visible {
  border-color: var(--wb-navy) !important;
  background: var(--wb-navy) !important;
  color: var(--wb-white) !important;
}

:is(#kadence-conversion-1867, #kadence-conversion-1869, #kadence-conversion-1874, #kadence-conversion-1893, .wb-modal) :is(.wb-modal__close, [class*="conversion-close"]):focus-visible {
  outline: 3px solid var(--wb-navy-deep) !important;
  outline-offset: 3px;
}

:is(#kadence-conversion-1867, #kadence-conversion-1869, #kadence-conversion-1874, #kadence-conversion-1893, .wb-modal) a:focus-visible {
  outline: 3px solid var(--wb-navy-deep);
  outline-offset: 3px;
}

/* ---- Fluent Forms inside the Waterford dialogs ---- */

:is(#kadence-conversion-1867, #kadence-conversion-1869, #kadence-conversion-1874, #kadence-conversion-1893, .wb-modal) .ff-el-group {
  margin-bottom: 18px !important;
}

:is(#kadence-conversion-1867, #kadence-conversion-1869, #kadence-conversion-1874, #kadence-conversion-1893, .wb-modal) .ff-el-group:last-child {
  margin-bottom: 0 !important;
}

/* The prior build shipped zero-height labels; restore them permanently. */
:is(#kadence-conversion-1867, #kadence-conversion-1869, #kadence-conversion-1874, #kadence-conversion-1893, .wb-modal) .ff-el-input--label,
:is(#kadence-conversion-1867, #kadence-conversion-1869, #kadence-conversion-1874, #kadence-conversion-1893, .wb-modal) .ff-el-input--label label {
  display: block !important;
  width: auto !important;
  height: auto !important;
  max-height: none !important;
  margin: 0 0 7px !important;
  padding: 0 !important;
  border: 0 !important;
  clip: auto !important;
  clip-path: none !important;
  color: var(--wb-navy) !important;
  font-family: var(--wb-font-util) !important;
  font-size: 13.5px !important;
  font-weight: 600 !important;
  letter-spacing: .02em !important;
  line-height: 1.45 !important;
  opacity: 1 !important;
  overflow: visible !important;
  position: static !important;
  text-indent: 0 !important;
  text-transform: none !important;
  visibility: visible !important;
  white-space: normal !important;
}

/* The wrapper owns the gap; the inner label must not double it. */
:is(#kadence-conversion-1867, #kadence-conversion-1869, #kadence-conversion-1874, #kadence-conversion-1893, .wb-modal) .ff-el-input--label label {
  margin: 0 !important;
}

:is(#kadence-conversion-1867, #kadence-conversion-1869, #kadence-conversion-1874, #kadence-conversion-1893, .wb-modal) .ff-el-is-required.asterisk-right label:after,
:is(#kadence-conversion-1867, #kadence-conversion-1869, #kadence-conversion-1874, #kadence-conversion-1893, .wb-modal) .ff-el-is-required.asterisk-left label:before {
  color: var(--wb-gold-deep) !important;
}

:is(#kadence-conversion-1867, #kadence-conversion-1869, #kadence-conversion-1874, #kadence-conversion-1893, .wb-modal) .ff-el-form-control {
  width: 100% !important;
  min-height: var(--wb-field) !important;
  padding: 12px 14px !important;
  border: 1px solid var(--wb-line) !important;
  border-radius: var(--wb-control-radius) !important;
  background: var(--wb-white) !important;
  box-shadow: none !important;
  color: var(--wb-ink) !important;
  font-family: var(--wb-font-body) !important;
  font-size: 16px !important;
  line-height: 1.5 !important;
  transition: border-color .18s ease, background .18s ease, box-shadow .18s ease;
}

:is(#kadence-conversion-1867, #kadence-conversion-1869, #kadence-conversion-1874, #kadence-conversion-1893, .wb-modal) textarea.ff-el-form-control {
  min-height: 128px !important;
  resize: vertical;
}

:is(#kadence-conversion-1867, #kadence-conversion-1869, #kadence-conversion-1874, #kadence-conversion-1893, .wb-modal) .ff-el-form-control::placeholder {
  color: #6b6459 !important;
  opacity: 1;
}

:is(#kadence-conversion-1867, #kadence-conversion-1869, #kadence-conversion-1874, #kadence-conversion-1893, .wb-modal) .ff-el-form-control:hover {
  border-color: #c3b696 !important;
}

:is(#kadence-conversion-1867, #kadence-conversion-1869, #kadence-conversion-1874, #kadence-conversion-1893, .wb-modal) .ff-el-form-control:focus,
:is(#kadence-conversion-1867, #kadence-conversion-1869, #kadence-conversion-1874, #kadence-conversion-1893, .wb-modal) .ff-el-form-control:focus-visible {
  border-color: var(--wb-navy) !important;
  background: var(--wb-white) !important;
  box-shadow: 0 0 0 3px rgba(16, 42, 67, .16) !important;
  outline: none !important;
}

/* Error state carries gold + weight + an icon glyph: legible without red. */
:is(#kadence-conversion-1867, #kadence-conversion-1869, #kadence-conversion-1874, #kadence-conversion-1893, .wb-modal) .ff-el-form-control[aria-invalid="true"],
:is(#kadence-conversion-1867, #kadence-conversion-1869, #kadence-conversion-1874, #kadence-conversion-1893, .wb-modal) .ff-el-is-error .ff-el-form-control {
  border-color: var(--wb-gold-deep) !important;
  border-width: 2px !important;
  background: #fdf7ea !important;
}

:is(#kadence-conversion-1867, #kadence-conversion-1869, #kadence-conversion-1874, #kadence-conversion-1893, .wb-modal) .error,
:is(#kadence-conversion-1867, #kadence-conversion-1869, #kadence-conversion-1874, #kadence-conversion-1893, .wb-modal) .text-danger,
:is(#kadence-conversion-1867, #kadence-conversion-1869, #kadence-conversion-1874, #kadence-conversion-1893, .wb-modal) .ff-el-is-error .error {
  display: block;
  margin-top: 6px;
  color: var(--wb-gold-deep) !important;
  font-family: var(--wb-font-util) !important;
  font-size: 13.5px !important;
  font-weight: 600 !important;
}

:is(#kadence-conversion-1867, #kadence-conversion-1869, #kadence-conversion-1874, #kadence-conversion-1893, .wb-modal) :is(.error, .text-danger):not(:empty):before {
  margin-right: 6px;
  content: '!';
  font-weight: 700;
}

/* Fluent Forms ships green success/red failure banners; both are re-toned. */
:is(#kadence-conversion-1867, #kadence-conversion-1869, #kadence-conversion-1874, #kadence-conversion-1893, .wb-modal) :is(.ff-message-success, .ff_submit_success, .ff-errors-in-stack, .ff-form-error-message) {
  padding: 16px 18px !important;
  border: 1px solid var(--wb-line) !important;
  border-left: 4px solid var(--wb-gold) !important;
  border-radius: 0 !important;
  background: var(--wb-cream) !important;
  color: var(--wb-ink) !important;
  font-size: 15.5px !important;
}

/* Submit: gold primary with navy text; hover reverses to the deep navy. */
:is(#kadence-conversion-1867, #kadence-conversion-1869, #kadence-conversion-1874, #kadence-conversion-1893, .wb-modal) .ff-btn-submit,
:is(#kadence-conversion-1867, #kadence-conversion-1869, #kadence-conversion-1874, #kadence-conversion-1893, .wb-modal) button[type="submit"] {
  display: inline-flex !important;
  width: 100% !important;
  min-height: 52px !important;
  align-items: center;
  justify-content: center;
  margin-top: 4px !important;
  padding: 14px 26px !important;
  border: 1.5px solid var(--wb-gold) !important;
  border-radius: var(--wb-control-radius) !important;
  background: var(--wb-gold) !important;
  box-shadow: none !important;
  color: var(--wb-navy-deep) !important;
  cursor: pointer;
  font-family: var(--wb-font-util) !important;
  font-size: 13.5px !important;
  font-weight: 700 !important;
  letter-spacing: .09em !important;
  line-height: 1.2 !important;
  text-transform: uppercase !important;
  transition: background .18s ease, color .18s ease, border-color .18s ease;
}

:is(#kadence-conversion-1867, #kadence-conversion-1869, #kadence-conversion-1874, #kadence-conversion-1893, .wb-modal) .ff-btn-submit:hover,
:is(#kadence-conversion-1867, #kadence-conversion-1869, #kadence-conversion-1874, #kadence-conversion-1893, .wb-modal) .ff-btn-submit:focus-visible,
:is(#kadence-conversion-1867, #kadence-conversion-1869, #kadence-conversion-1874, #kadence-conversion-1893, .wb-modal) button[type="submit"]:hover,
:is(#kadence-conversion-1867, #kadence-conversion-1869, #kadence-conversion-1874, #kadence-conversion-1893, .wb-modal) button[type="submit"]:focus-visible {
  border-color: var(--wb-navy-deep) !important;
  background: var(--wb-navy-deep) !important;
  color: var(--wb-white) !important;
}

:is(#kadence-conversion-1867, #kadence-conversion-1869, #kadence-conversion-1874, #kadence-conversion-1893, .wb-modal) .ff-btn-submit:focus-visible,
:is(#kadence-conversion-1867, #kadence-conversion-1869, #kadence-conversion-1874, #kadence-conversion-1893, .wb-modal) button[type="submit"]:focus-visible {
  outline: 2px solid var(--wb-gold-deep) !important;
  outline-offset: 3px;
}

/* Checkbox/radio rows keep a 44px row target without stretching the control. */
:is(#kadence-conversion-1867, #kadence-conversion-1869, #kadence-conversion-1874, #kadence-conversion-1893, .wb-modal) .ff-el-form-check {
  display: flex;
  min-height: 44px;
  align-items: center;
  gap: 10px;
}

:is(#kadence-conversion-1867, #kadence-conversion-1869, #kadence-conversion-1874, #kadence-conversion-1893, .wb-modal) .ff-el-form-check input {
  width: 20px !important;
  height: 20px !important;
  min-height: 0 !important;
  accent-color: var(--wb-navy);
}

:is(#kadence-conversion-1867, #kadence-conversion-1869, #kadence-conversion-1874, #kadence-conversion-1893, .wb-modal) .ff-el-form-check-label {
  color: var(--wb-ink) !important;
  font-size: 15px !important;
}

/* Footnote injected under the form: sets expectations, promises nothing. */
:is(#kadence-conversion-1867, #kadence-conversion-1869, #kadence-conversion-1874, #kadence-conversion-1893, .wb-modal) .wb-modal__footnote {
  margin: 18px 0 0;
  padding-top: 16px;
  border-top: 1px solid var(--wb-line);
  color: var(--wb-muted);
  font-family: var(--wb-font-util);
  font-size: 13px;
  line-height: 1.55;
}

/* Page scroll lock while a Waterford dialog is open. */
html.wb-modal-open,
html.wb-modal-open body {
  overflow: hidden !important;
}

@media (max-width: 639px) {
  :is(#kadence-conversion-1867, #kadence-conversion-1869, #kadence-conversion-1874, #kadence-conversion-1893, .wb-modal) > .kadence-conversion,
  :is(#kadence-conversion-1867, #kadence-conversion-1869, #kadence-conversion-1874, #kadence-conversion-1893, .wb-modal) .wb-modal__panel {
    width: calc(100vw - 20px) !important;
    max-width: calc(100vw - 20px) !important;
    max-height: 92vh;
    max-height: min(92vh, 92dvh);
    padding: 0 !important;
  }

  :is(#kadence-conversion-1867, #kadence-conversion-1869, #kadence-conversion-1874, #kadence-conversion-1893, .wb-modal) .wb-modal__body {
    padding: 0 20px 28px !important;
  }

  :is(#kadence-conversion-1867, #kadence-conversion-1869, #kadence-conversion-1874, #kadence-conversion-1893, .wb-modal) .wb-modal__header {
    margin: 0 -20px 24px;
    padding: 26px 64px 22px 20px;
  }

  :is(#kadence-conversion-1867, #kadence-conversion-1869, #kadence-conversion-1874, #kadence-conversion-1893, .wb-modal) :is(.wb-modal__close, [class*="conversion-close"]) {
    margin: 10px 10px -54px auto !important;
  }

  :is(#kadence-conversion-1867, #kadence-conversion-1869, #kadence-conversion-1874, #kadence-conversion-1893, .wb-modal) :is(.wb-modal__title, h1, h2, h3, h4) {
    font-size: 23px !important;
  }
}

@media (max-height: 620px) {
  :is(#kadence-conversion-1867, #kadence-conversion-1869, #kadence-conversion-1874, #kadence-conversion-1893, .wb-modal) .wb-modal__body {
    padding-bottom: 24px !important;
  }

  :is(#kadence-conversion-1867, #kadence-conversion-1869, #kadence-conversion-1874, #kadence-conversion-1893, .wb-modal) .wb-modal__header {
    margin-bottom: 20px;
    padding-top: 22px;
    padding-bottom: 18px;
  }

  :is(#kadence-conversion-1867, #kadence-conversion-1869, #kadence-conversion-1874, #kadence-conversion-1893, .wb-modal) .ff-el-group {
    margin-bottom: 14px !important;
  }
}

@media (prefers-reduced-motion: reduce) {
  :is(#kadence-conversion-1867, #kadence-conversion-1869, #kadence-conversion-1874, #kadence-conversion-1893, .wb-modal) :is(.ff-el-form-control, .ff-btn-submit, .wb-modal__close) {
    transition: none;
  }
}

/* ============================================================================
   Waterford filigree system
   Derived from the fine gold scrollwork framing the W in the property logo:
   double-rule corner brackets, diamond-finial rules, and a centered crest
   lozenge that rides the gold rules of the masthead, featured panels, modal
   headers, and footer. Placements are deliberate — heroes, section corners,
   navy featured panels, and the composed footer — while dense reading areas
   (policy copy, FAQ answers, article bodies) stay clean. Every ornament is a
   decorative pseudo-element: no markup changes, no new assets, nothing
   announced to assistive technology, nothing animated.
   ============================================================================ */

/* Heroes: a pair of double-rule corners on the open (right) side of the
   frame, mirrored vertically. They sit over the photography, away from the
   left-aligned hero copy. */
.wb-hero::before,
.wb-hero::after {
  position: absolute;
  width: clamp(64px, 8vw, 108px);
  aspect-ratio: 1;
  background:
    linear-gradient(rgba(227, 191, 124, .5), rgba(227, 191, 124, .5)) left top / 100% 1px no-repeat,
    linear-gradient(rgba(227, 191, 124, .5), rgba(227, 191, 124, .5)) left top / 1px 100% no-repeat,
    linear-gradient(rgba(227, 191, 124, .5), rgba(227, 191, 124, .5)) left 8px top 8px / calc(100% - 26px) 1px no-repeat,
    linear-gradient(rgba(227, 191, 124, .5), rgba(227, 191, 124, .5)) left 8px top 8px / 1px calc(100% - 26px) no-repeat;
  content: '';
  pointer-events: none;
}

.wb-hero::before {
  top: 22px;
  right: 22px;
  transform: scaleX(-1);
}

.wb-hero::after {
  right: 22px;
  bottom: 22px;
  transform: scale(-1);
}

/* Masthead: a small gold crest centered on the bottom rule, directly beneath
   the centered logo of the split navigation. Hidden once the navigation
   collapses and the logo moves left. */
body.wb-audit-remediation #masthead::after {
  position: absolute;
  bottom: -5px;
  left: 50%;
  width: 72px;
  height: 11px;
  background: var(--wb-gold);
  clip-path: polygon(0 5px, 30px 5px, 36px 0, 42px 5px, 72px 5px, 72px 6px, 42px 6px, 36px 11px, 30px 6px, 0 6px);
  content: '';
  pointer-events: none;
  transform: translateX(-50%);
}

@media (max-width: 1023px) {
  body.wb-audit-remediation #masthead::after {
    content: none;
  }
}

/* Home stats band: fine gold hairlines bracket the navy strip. */
.wb-home-stats {
  border-block: 1px solid rgba(199, 154, 46, .45);
}

/* Contact anchor panel: the oversized, whisper-quiet W monogram, kept from
   the approved direction and bleeding softly off the bottom-right corner. */
.wb-contact-primary {
  overflow: hidden;
}

.wb-contact-primary::before {
  position: absolute;
  z-index: -1;
  right: -24px;
  bottom: -72px;
  color: rgba(227, 191, 124, .055);
  content: 'W';
  font: 600 clamp(200px, 24vw, 320px)/.8 var(--wb-font-display);
  pointer-events: none;
}

/* CTA band: an inset hairline frame and a gold crest pendant centered on the
   panel's top edge. */
.wb-cta {
  position: relative;
}

.wb-cta::before {
  position: absolute;
  inset: 12px;
  border: 1px solid rgba(227, 191, 124, .26);
  border-radius: 8px;
  content: '';
  pointer-events: none;
}

.wb-cta::after {
  position: absolute;
  top: -5px;
  left: 50%;
  width: 88px;
  height: 11px;
  background: var(--wb-gold);
  clip-path: polygon(0 5px, 37px 5px, 44px 0, 51px 5px, 88px 5px, 88px 6px, 51px 6px, 44px 11px, 37px 6px, 0 6px);
  content: '';
  pointer-events: none;
  transform: translateX(-50%);
}

/* Modal headers: the same ornamental system at dialog scale — a diamond-
   finial rule leads the eyebrow, and a small gold pendant straddles the
   header's bottom rule. Form layout and field sizing are untouched. */
:is(#kadence-conversion-1867, #kadence-conversion-1869, #kadence-conversion-1874, #kadence-conversion-1893, .wb-modal) .wb-modal__header {
  position: relative;
}

:is(#kadence-conversion-1867, #kadence-conversion-1869, #kadence-conversion-1874, #kadence-conversion-1893, .wb-modal) .wb-modal__header::after {
  position: absolute;
  bottom: -7px;
  left: 50%;
  width: 80px;
  height: 12px;
  background: var(--wb-gold);
  clip-path: polygon(0 5px, 33px 5px, 40px 0, 47px 5px, 80px 5px, 80px 6px, 47px 6px, 40px 12px, 33px 6px, 0 6px);
  content: '';
  pointer-events: none;
  transform: translateX(-50%);
}

:is(#kadence-conversion-1867, #kadence-conversion-1869, #kadence-conversion-1874, #kadence-conversion-1893, .wb-modal) .wb-modal__eyebrow::before {
  display: inline-block;
  width: 40px;
  height: 7px;
  margin-right: 10px;
  background: currentColor;
  clip-path: polygon(3.5px 0, 7px 3px, 40px 3px, 40px 4px, 7px 4px, 3.5px 7px, 0 3.5px);
  content: '';
  vertical-align: 2px;
}

/* Footer: a composed branded finish. The oversized W monogram is preserved
   behind the content, a gold crest centers the top rule, and the column
   headings pick up a short gold underscore for clear hierarchy. */
body.wb-audit-remediation .site-footer {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  border-top: 1px solid rgba(199, 154, 46, .55);
}

body.wb-audit-remediation .site-footer::before {
  position: absolute;
  z-index: -1;
  top: -96px;
  left: 50%;
  color: rgba(227, 191, 124, .045);
  content: 'W';
  font: 600 clamp(280px, 36vw, 540px)/1 var(--wb-font-display);
  pointer-events: none;
  transform: translateX(-50%);
}

body.wb-audit-remediation .site-footer::after {
  position: absolute;
  top: -5px;
  left: 50%;
  width: 96px;
  height: 11px;
  background: var(--wb-gold);
  clip-path: polygon(0 5px, 41px 5px, 48px 0, 55px 5px, 96px 5px, 96px 6px, 55px 6px, 48px 11px, 41px 6px, 0 6px);
  content: '';
  pointer-events: none;
  transform: translateX(-50%);
}

body.wb-audit-remediation .site-footer :is(h2, h3, h4, .widget-title) {
  margin: 0 0 14px;
  padding-bottom: 12px;
  background: linear-gradient(var(--wb-gold), var(--wb-gold)) left bottom / 36px 1px no-repeat;
  color: var(--wb-gold-soft);
  font-family: var(--wb-font-util);
  font-size: 12.5px;
  font-weight: 700;
  letter-spacing: .16em;
  text-transform: uppercase;
}

/* Small screens simplify the ornaments rather than crop them: section
   corners step out, hero corners shrink and tuck tighter, the CTA frame
   pulls in. Nothing here can overflow the viewport — every ornament is
   inset within its (already clipped) container. */
@media (max-width: 979px) {
  .wb-hero::before,
  .wb-hero::after {
    width: 64px;
  }
}

@media (max-width: 639px) {
  .wb-section::before {
    content: none;
  }

  .wb-hero::before,
  .wb-hero::after {
    width: 44px;
  }

  .wb-hero::before {
    top: 12px;
    right: 12px;
  }

  .wb-hero::after {
    right: 12px;
    bottom: 12px;
  }

  .wb-cta::before {
    inset: 10px;
  }
}

/* ---- Heading capitalization contract ----
   Prospect-facing headings use title-style capitalization. Utility labels,
   navigation, buttons, and eyebrow text retain their intentional uppercase
   treatment and tighter tracking. */
body.wb-audit-remediation :is(h1, h2, h3, h4, h5, h6, .widget-title) {
  text-transform: capitalize !important;
}

/* ---- Tiered prospect footer ----
   Restore the four-column composition approved in the visual preview. The
   retained Kadence footer stays available in the rollback snapshot but is not
   painted or exposed to assistive technology while this release is active. */
body.wb-audit-remediation footer.site-footer:not(.wb-tiered-footer) {
  display: none !important;
}

body.wb-audit-remediation .wb-tiered-footer {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  padding: clamp(64px, 8vw, 96px) 24px 28px;
  border-top: 1px solid var(--wb-gold);
  background: var(--wb-navy-deep);
  color: var(--wb-cream);
}

body.wb-audit-remediation .wb-tiered-footer::before {
  z-index: 0;
}

body.wb-audit-remediation .wb-tiered-footer__inner,
body.wb-audit-remediation .wb-tiered-footer__bottom {
  position: relative;
  z-index: 1;
  width: min(1180px, 100%);
  margin-inline: auto;
}

body.wb-audit-remediation .wb-tiered-footer__inner {
  display: grid;
  align-items: start;
  gap: clamp(34px, 5vw, 72px);
  grid-template-columns: minmax(260px, 1.35fr) repeat(3, minmax(150px, 1fr));
}

body.wb-audit-remediation .wb-tiered-footer__intro {
  max-width: 320px;
}

body.wb-audit-remediation .wb-tiered-footer__brand {
  display: inline-block;
  margin-bottom: 24px;
}

body.wb-audit-remediation .wb-tiered-footer__brand img {
  display: block;
  width: 190px;
  height: auto;
}

body.wb-audit-remediation .wb-tiered-footer p {
  margin: 0;
  color: rgba(246, 241, 231, .76);
  font-family: var(--wb-font-body);
  font-size: 14px;
  line-height: 1.65;
}

body.wb-audit-remediation .wb-tiered-footer address {
  margin-top: 20px;
  color: rgba(246, 241, 231, .82);
  font-family: var(--wb-font-body);
  font-size: 14px;
  font-style: normal;
  line-height: 1.65;
}

body.wb-audit-remediation .wb-tiered-footer a {
  color: rgba(246, 241, 231, .84);
  text-decoration-color: rgba(227, 191, 124, .54);
  text-underline-offset: 4px;
}

body.wb-audit-remediation .wb-tiered-footer a:hover,
body.wb-audit-remediation .wb-tiered-footer a:focus-visible {
  color: var(--wb-gold-soft);
}

body.wb-audit-remediation .wb-tiered-footer__direction {
  display: inline-block;
  margin-top: 10px;
  color: var(--wb-gold-soft) !important;
  font-family: var(--wb-font-util);
  font-size: 12px;
  font-weight: 700;
  letter-spacing: .1em;
  text-decoration: none;
  text-transform: uppercase;
}

body.wb-audit-remediation .wb-tiered-footer__column {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 11px;
}

body.wb-audit-remediation .wb-tiered-footer__column h2 {
  margin: 0 0 10px;
  padding-bottom: 12px;
  background: linear-gradient(var(--wb-gold), var(--wb-gold)) left bottom / 36px 1px no-repeat;
  color: var(--wb-gold-soft);
  font-family: var(--wb-font-util);
  font-size: 12.5px;
  font-weight: 700;
  letter-spacing: .14em;
  line-height: 1.2;
  text-transform: capitalize !important;
}

body.wb-audit-remediation .wb-tiered-footer__column a {
  font-family: var(--wb-font-body);
  font-size: 14px;
  line-height: 1.45;
  text-decoration: none;
}

body.wb-audit-remediation .wb-tiered-footer__tour {
  padding-bottom: 3px;
  border-bottom: 1px solid rgba(227, 191, 124, .62);
  color: var(--wb-gold-soft) !important;
  font-weight: 600;
}

body.wb-audit-remediation .wb-tiered-footer__fair {
  margin-top: 9px;
  padding-top: 15px;
  border-top: 1px solid rgba(227, 191, 124, .22);
  color: rgba(246, 241, 231, .58);
  font-family: var(--wb-font-util);
  font-size: 11px;
  font-weight: 600;
  letter-spacing: .09em;
  line-height: 1.5;
  text-transform: uppercase;
}

body.wb-audit-remediation .wb-tiered-footer__bottom {
  display: flex;
  justify-content: space-between;
  gap: 18px;
  margin-top: 56px;
  padding-top: 24px;
  border-top: 1px solid rgba(227, 191, 124, .18);
}

body.wb-audit-remediation .wb-tiered-footer__bottom p {
  color: rgba(246, 241, 231, .52);
  font-size: 11.5px;
  letter-spacing: .03em;
}

@media (max-width: 980px) {
  body.wb-audit-remediation .wb-tiered-footer__inner {
    grid-template-columns: 1.35fr 1fr 1fr;
  }

  body.wb-audit-remediation .wb-tiered-footer__column:last-child {
    grid-column: 2 / -1;
  }
}

@media (max-width: 640px) {
  body.wb-audit-remediation .wb-tiered-footer {
    padding-inline: 20px;
  }

  body.wb-audit-remediation .wb-tiered-footer__inner {
    grid-template-columns: 1fr 1fr;
  }

  body.wb-audit-remediation .wb-tiered-footer__intro {
    max-width: none;
    grid-column: 1 / -1;
  }

  body.wb-audit-remediation .wb-tiered-footer__column:last-child {
    grid-column: auto;
  }

  body.wb-audit-remediation .wb-tiered-footer__bottom {
    flex-direction: column;
    margin-top: 42px;
  }
}

@media (max-width: 460px) {
  body.wb-audit-remediation .wb-tiered-footer__inner {
    grid-template-columns: 1fr;
  }

  body.wb-audit-remediation .wb-tiered-footer__intro,
  body.wb-audit-remediation .wb-tiered-footer__column:last-child {
    grid-column: auto;
  }
}
