:root {
  --ink: #f8f4ea;
  --muted: #c8c0b3;
  --paper: #080807;
  --paper-soft: #11100e;
  --surface: #171513;
  --surface-soft: rgba(255, 250, 239, 0.07);
  --line: rgba(255, 250, 239, 0.14);
  --accent: #d7b65a;
  --button-bg: var(--accent);
  --button-ink: #0b0a09;
  --ease-out: cubic-bezier(0.16, 1, 0.3, 1);
  --shadow: 0 24px 70px rgba(0, 0, 0, 0.36);
  --shadow-soft: 0 18px 46px rgba(0, 0, 0, 0.28);
  --radius: 1.15rem;
  --page-gutter: 18px;
  --section-heading-size: clamp(1.9rem, 3.1vw, 2.65rem);
  --eyebrow-size: .72rem;
}

* {
  box-sizing: border-box;
}

html {
  scroll-behavior: auto;
  scroll-padding-top: 7rem;
  background: var(--paper);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

body {
  margin: 0;
  overflow-x: hidden;
  color: var(--ink);
  background:
    radial-gradient(circle at 85% 8%, rgba(215, 182, 90, 0.12), transparent 24rem),
    linear-gradient(135deg, var(--paper), var(--paper-soft) 56%, #070605);
  font-family: var(--wsh-font-family, system-ui, sans-serif);
}

img {
  display: block;
  max-width: 100%;
  outline: 1px solid rgba(255, 255, 255, 0.1);
  outline-offset: -1px;
}

.brand-logo {
  outline: 0;
}

picture {
  display: block;
}

a {
  color: inherit;
  text-decoration: none;
}

.skip-link {
  position: absolute;
  left: 1rem;
  top: 1rem;
  z-index: 3;
  padding: 0.75rem 1rem;
  border-radius: 999px;
  background: var(--button-bg);
  color: var(--button-ink);
  font-weight: var(--wsh-font-weight-bold);
  box-shadow: var(--shadow-soft);
  transform: translateY(-5rem);
  transition: transform 180ms var(--ease-out);
}

.skip-link:focus {
  transform: translateY(0);
}

.site-header {
  position: sticky;
  top: 0;
  z-index: 2;
  padding: 0.95rem clamp(1rem, 3vw, 3rem);
}

.nav-shell,
.hero,
.section-grid,
.updates-preview,
.idx-preview,
.updates-page-hero,
.updates-feed-section,
.image-feature,
.home-value-section,
.neighborhoods,
.meet-jeff,
.professional-background,
.contact-section,
.site-footer {
  width: min(1120px, calc(100% - 2rem));
  margin: 0 auto;
}

main[id], section[id], article[id], :is(h1, h2, h3)[id] {
  scroll-margin-top: 3rem;
}

.nav-shell {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1.25rem;
  padding: 0.58rem 0.7rem 0.58rem 0.95rem;
  border-radius: 999px;
  border: 1px solid rgba(255, 250, 239, 0.1);
  background: rgba(12, 11, 10, 0.8);
  box-shadow: 0 14px 38px rgba(0, 0, 0, 0.24);
  backdrop-filter: blur(18px);
}

.brand {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
  min-height: 2.75rem;
  padding: 0.25rem 0.8rem;
  border-radius: 999px;
  background: #030303;
}

.brand-logo {
  width: 15rem;
  height: 2.42rem;
  object-fit: contain;
  object-position: center;
}

.nav-links {
  display: flex;
  align-items: center;
  gap: 1.05rem;
  color: var(--muted);
  font-size: 0.82rem;
  font-weight: var(--wsh-font-weight-semibold);
}

.nav-links a,
.mobile-menu a,
.text-link,
.site-footer a {
  transition-property: color, border-color;
  transition-duration: 220ms;
  transition-timing-function: var(--ease-out);
}

.nav-links a {
  display: inline-flex;
  align-items: center;
  min-height: 2.75rem;
  padding: 0 0.05rem;
  border-bottom: 1px solid transparent;
}

.text-link:hover,
.site-footer a:hover {
  color: var(--accent);
}

.mobile-menu-toggle {
  display: none;
  align-items: center;
  justify-content: center;
  gap: 0.55rem;
  min-height: 2.75rem;
  border: 1px solid rgba(255, 250, 239, 0.12);
  border-radius: 999px;
  padding: 0.65rem 0.8rem 0.65rem 0.95rem;
  background: rgba(255, 250, 239, 0.08);
  color: var(--ink);
  font: inherit;
  font-size: 0.78rem;
  font-weight: var(--wsh-font-weight-bold);
  cursor: pointer;
  touch-action: manipulation;
  transition-property: transform, background-color, border-color;
  transition-duration: 220ms;
  transition-timing-function: var(--ease-out);
}

.mobile-menu-toggle:hover {
  background: rgba(255, 250, 239, 0.12);
  border-color: rgba(255, 250, 239, 0.18);
}

.mobile-menu-toggle:active {
  box-shadow: inset 0 2px 4px rgba(11, 10, 9, 0.18);
}

.mobile-menu-icon {
  position: relative;
  width: 1rem;
  height: 0.7rem;
}

.mobile-menu-icon span {
  position: absolute;
  left: 0;
  width: 100%;
  height: 2px;
  border-radius: 999px;
  background: currentColor;
  transition-property: transform;
  transition-duration: 220ms;
  transition-timing-function: var(--ease-out);
}
.mobile-menu-icon.wsh-menu-close-icon { width: 24px; height: 24px; }
.mobile-menu-icon.wsh-menu-close-icon > .wsh-control-icon { width: 24px; height: 24px; }

.mobile-menu-icon span:first-child {
  top: 0.1rem;
}

.mobile-menu-icon span:last-child {
  top: 0.5rem;
}

.mobile-menu-toggle[aria-expanded="true"] .mobile-menu-icon span:first-child {
  top: 0.34rem;
  transform: rotate(45deg);
}

.mobile-menu-toggle[aria-expanded="true"] .mobile-menu-icon span:last-child {
  top: 0.34rem;
  transform: rotate(-45deg);
}

.mobile-menu {
  position: absolute;
  top: calc(100% + 0.6rem);
  /* Leave room for the header and screen edge, including landscape phones. */
  max-height: calc(100vh - 7rem);
  max-height: calc(100dvh - 7rem);
  overflow-y: auto;
  overscroll-behavior-y: contain;
  right: 0;
  left: 0;
  display: grid;
  gap: 0.2rem;
  padding: 0.75rem;
  border: 1px solid rgba(255, 250, 239, 0.11);
  border-radius: 1.1rem;
  background:
    linear-gradient(180deg, rgba(22, 20, 17, 0.98), rgba(10, 9, 8, 0.98)),
    var(--paper-soft);
  box-shadow:
    0 0 0 1px rgba(255, 250, 239, 0.04),
    0 22px 60px rgba(0, 0, 0, 0.5);
  backdrop-filter: blur(18px);
  transform-origin: top center;
}

.mobile-menu[hidden] {
  display: none;
}

.mobile-menu a {
  display: flex;
  align-items: center;
  justify-content: space-between;
  min-height: 2.75rem;
  border-radius: 0.75rem;
  padding: 0.72rem 0.85rem;
  color: var(--muted);
  font-size: 0.9rem;
  font-weight: var(--wsh-font-weight-bold);
}

.mobile-menu .mobile-menu-cta {
  justify-content: center;
  margin-top: 0.25rem;
  background: var(--button-bg);
  color: var(--button-ink);
}

.nav-cta,
.primary-button,
.contact-card button,
.value-card button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.7rem;
  border: 0;
  border-radius: 999px;
  background: var(--button-bg);
  color: var(--button-ink);
  font: inherit;
  font-size: 0.86rem;
  font-weight: var(--wsh-font-weight-bold);
  white-space: normal;
  padding: 0.85rem 1.1rem;
  cursor: pointer;
  min-height: 2.75rem;
  transition-property: transform, background-color, box-shadow;
  transition-duration: 240ms;
  transition-timing-function: var(--ease-out);
}

.primary-button {
  padding: 1rem 1.2rem 1rem 1.35rem;
}


/* Hover and press feedback must not move the clickable hit area. */
.nav-cta:hover,
.primary-button:hover,
.contact-card button:not(:disabled):hover,
.value-card button:not(:disabled):hover {
  background: #ecda9e;
}

.primary-button:hover .button-icon {
  background: rgba(11, 10, 9, 0.14);
  transform: translateX(2px);
}

.nav-cta:active,
.primary-button:active,
.contact-card button:not(:disabled):active,
.value-card button:not(:disabled):active {
  box-shadow: inset 0 2px 4px rgba(11, 10, 9, 0.18);
}

.hero {
  min-height: auto;
  display: grid;
  grid-template-columns: minmax(0, 0.92fr) minmax(340px, 1.08fr);
  align-items: center;
  gap: clamp(2.25rem, 4vw, 4.25rem);
  padding: clamp(3.5rem, 6vw, 5.5rem) 0;
  border-top: 1px solid var(--line);
}

.hero-copy,
.section-content,
.home-value-copy,
.neighborhood-copy,
.meet-copy,
.idx-preview-copy,
.background-copy,
.contact-intro {
  min-width: 0;
}

.neighborhood-copy h2 {
  overflow-wrap: anywhere;
}

.hero-copy {
  max-width: 36rem;
}

.eyebrow,
.section-kicker {
  margin: 0 0 0.75rem;
  color: var(--accent);
  font-size: 0.72rem;
  font-weight: var(--wsh-font-weight-bold);
  letter-spacing: 0.16em;
  line-height: 1.5;
  text-transform: uppercase;
}

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

h1,
h2,
h3 {
  font-weight: var(--wsh-font-weight-bold);
  letter-spacing: 0;
  text-wrap: balance;
}

h1 {
  max-width: 10.5ch;
  margin-bottom: 1.25rem;
  font-size: clamp(2.05rem, 3.05vw, 2.78rem);
  line-height: 0.98;
}

.hero h1 {
  max-width: 11.5ch;
  font-size: clamp(1.7rem, 2.35vw, 2.25rem);
  line-height: 1.04;
}

.local-guidance {
  grid-template-columns: minmax(0, 0.86fr) minmax(340px, 1.14fr);
  gap: clamp(2rem, 4vw, 3.6rem);
  padding-top: clamp(3.75rem, 6vw, 5.1rem);
  padding-bottom: clamp(3.75rem, 6vw, 5.1rem);
}

.local-guidance h1 {
  max-width: 14ch;
  font-size: clamp(1.62rem, 2.15vw, 2.08rem);
  line-height: 1.08;
}

.local-guidance .hero-text {
  max-width: 54ch;
}

.local-guidance .hero-media-shell picture,
.local-guidance .hero-media-shell img {
  min-height: 360px;
}

h2 {
  max-width: 14ch;
  margin-bottom: 1.1rem;
  font-size: clamp(1.38rem, 2.05vw, 1.95rem);
  line-height: 1.04;
}

h3 {
  margin-bottom: 0.65rem;
  font-size: 1.08rem;
  line-height: 1.15;
}

.hero-text,
.section-content > p,
.idx-preview-copy > p,
.idx-status,
.image-feature p,
.home-value-copy p,
.neighborhood-copy p,
.meet-copy > p,
.background-copy > p,
.background-details p,
.contact-section p,
.service-list p,
.thank-you-card p:not(.eyebrow) {
  max-width: 62ch;
  color: var(--muted);
  font-size: 1rem;
  line-height: 1.75;
  text-wrap: pretty;
}

.hero-actions {
  display: flex;
  align-items: center;
  gap: 1.25rem;
  flex-wrap: wrap;
  margin-top: 1.6rem;
}

.text-link {
  display: inline-flex;
  align-items: center;
  min-height: 2.75rem;
  color: var(--muted);
  font-size: 0.9rem;
  font-weight: var(--wsh-font-weight-bold);
}

.hero-media-shell,
.image-feature picture,
.neighborhoods picture {
  min-width: 0;
  padding: 0.55rem;
  border-radius: 1.45rem;
  background: var(--surface-soft);
  box-shadow: var(--shadow-soft);
}

.hero-media-shell picture {
  aspect-ratio: 1500 / 844;
  min-height: 420px;
}

.hero-media-shell picture,
.hero-media-shell img,
.image-feature picture,
.image-feature img,
.neighborhoods picture,
.neighborhoods img,
.portrait-image {
  width: 100%;
  height: 100%;
  object-fit: cover;
  border-radius: 1.15rem;
}

.hero-media-shell img {
  min-height: 420px;
}

.section-grid,
.updates-preview,
.updates-page-hero,
.updates-feed-section,
.home-value-section,
.neighborhoods,
.meet-jeff,
.contact-section {
  padding: clamp(4.5rem, 8vw, 7rem) 0;
  border-top: 1px solid var(--line);
}

.updates-preview {
  display: grid;
  grid-template-columns: minmax(0, 0.82fr) minmax(320px, 1fr);
  gap: clamp(2rem, 5vw, 4rem);
  align-items: center;
}

.idx-preview {
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, 0.78fr) minmax(360px, 1.22fr);
  gap: clamp(2.25rem, 5vw, 4.5rem);
  align-items: center;
  padding: clamp(4.75rem, 8vw, 7rem) 0;
  border-top: 1px solid var(--line);
  isolation: isolate;
}

.idx-preview-copy {
  max-width: 35rem;
}

.idx-preview-copy h2 {
  max-width: 13ch;
}

.idx-status {
  margin: 1.15rem 0 0;
  padding-left: 0.95rem;
  border-left: 2px solid rgba(215, 182, 90, 0.42);
  font-size: 0.9rem;
}

.idx-paths {
  display: grid;
  gap: 0.55rem;
  margin-top: 1.15rem;
}

.idx-paths a {
  position: relative;
  display: block;
  padding: 0.78rem 2.1rem 0.8rem 0.9rem;
  border: 1px solid rgba(255, 250, 239, 0.08);
  border-radius: 0.9rem;
  background: rgba(255, 250, 239, 0.032);
  color: var(--ink);
  text-decoration: none;
  transition:
    border-color 220ms var(--ease-out),
    background-color 220ms var(--ease-out),
    transform 220ms var(--ease-out);
}

.idx-paths a::after {
  content: "";
  width: 1em;
  height: 1em;
  background: currentColor;
  mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round' d='M5 12h14m-6-6 6 6-6 6'/%3E%3C/svg%3E") center / contain no-repeat;
  position: absolute;
  top: 0.8rem;
  right: 0.9rem;
  color: var(--accent);
  font-size: 0.82rem;
  font-weight: var(--wsh-font-weight-bold);
}

.idx-paths a:hover {
  border-color: rgba(215, 182, 90, 0.35);
  background: rgba(255, 250, 239, 0.075);
}

.idx-paths strong {
  font-size: 0.84rem;
}

.idx-paths span {
  display: block;
  margin-top: 0.12rem;
  color: var(--muted);
  font-size: 0.8rem;
  line-height: 1.45;
}

.idx-showcase {
  position: relative;
  display: grid;
  align-items: end;
  min-height: 32rem;
  isolation: isolate;
}

.idx-search-panel {
  position: relative;
  z-index: 2;
  display: grid;
  gap: 0.62rem;
  width: min(100%, 45rem);
  margin: 0 auto -3rem;
  padding: 0.65rem;
  border: 1px solid rgba(255, 250, 239, 0.14);
  border-radius: 1.25rem;
  background:
    linear-gradient(135deg, rgba(255, 250, 239, 0.055), rgba(255, 250, 239, 0.02)),
    rgba(18, 16, 14, 0.9);
  box-shadow:
    0 22px 54px rgba(0, 0, 0, 0.38),
    inset 0 1px 0 rgba(255, 255, 255, 0.04);
  backdrop-filter: blur(18px);
}

.idx-search-panel-address {
  max-width: 43rem;
}

.idx-search-panel-live {
  max-width: 43rem;
  gap: 0.8rem;
  padding: 0.85rem;
}

.idx-live-search-heading {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 1rem;
  padding: 0 0.2rem;
}

.idx-live-search-heading span {
  color: var(--accent);
  font-size: 0.68rem;
  font-weight: var(--wsh-font-weight-bold);
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

.idx-live-search-heading strong {
  color: var(--ink);
  font-size: 0.88rem;
}

.idx-search-panel-live bb-widget,
.idx-widget-shell bb-widget,
.mls-disclaimer bb-widget,
.policy-disclaimer bb-widget {
  display: block;
  width: 100%;
}

.idx-widget-loading {
  margin: 0;
  padding: 1rem;
  border: 1px solid rgba(255, 250, 239, 0.08);
  border-radius: 0.85rem;
  background: rgba(255, 250, 239, 0.04);
  color: var(--muted);
  font-size: 0.82rem;
  font-weight: var(--wsh-font-weight-bold);
  text-align: center;
}

.idx-main-search {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 0.55rem;
}

.idx-search-panel label {
  display: grid;
  gap: 0.3rem;
  min-width: 0;
  padding: 0.62rem 0.72rem;
  border: 1px solid rgba(255, 250, 239, 0.08);
  border-radius: 0.88rem;
  background: rgba(255, 250, 239, 0.055);
}

.idx-search-panel label > span {
  color: var(--muted);
  font-size: 0.66rem;
  font-weight: var(--wsh-font-weight-bold);
  letter-spacing: 0.12em;
  line-height: 1;
  text-transform: uppercase;
}

.idx-search-panel input,
.idx-search-panel select {
  width: 100%;
  min-width: 0;
  border: 0;
  background: transparent;
  color: var(--ink);
  font: inherit;
  font-size: 0.9rem;
  font-weight: var(--wsh-font-weight-bold);
  outline: 0;
}

.idx-search-panel input::placeholder {
  color: rgba(248, 244, 234, 0.52);
}

.idx-search-panel select {
  appearance: none;
  background-image:
    linear-gradient(45deg, transparent 50%, var(--muted) 50%),
    linear-gradient(135deg, var(--muted) 50%, transparent 50%);
  background-position:
    calc(100% - 0.48rem) 54%,
    calc(100% - 0.24rem) 54%;
  background-size: 0.34rem 0.34rem, 0.34rem 0.34rem;
  background-repeat: no-repeat;
  padding-right: 1rem;
}

.idx-search-panel option {
  background: var(--button-bg);
  color: var(--button-ink);
}

.idx-search-panel button {
  align-self: stretch;
  min-height: 3.6rem;
  border: 0;
  border-radius: 0.9rem;
  padding: 0.8rem 1rem;
  background: var(--button-bg);
  color: var(--button-ink);
  font: inherit;
  font-size: 0.86rem;
  font-weight: var(--wsh-font-weight-bold);
  white-space: nowrap;
  cursor: pointer;
  transition: transform 220ms var(--ease-out), background-color 220ms var(--ease-out);
}

.idx-search-panel button:hover {
  background: #e2d8c6;
}

.idx-search-panel button:active {
  box-shadow: inset 0 2px 4px rgba(11, 10, 9, 0.18);
}

.idx-filter-drawer {
  overflow: clip;
  border: 1px solid rgba(255, 250, 239, 0.08);
  border-radius: 1rem;
  background: rgba(255, 250, 239, 0.035);
}

.idx-filter-drawer summary {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  gap: 0.52rem;
  align-items: baseline;
  min-height: 2.55rem;
  padding: 0.68rem 0.82rem;
  color: var(--ink);
  cursor: pointer;
  list-style: none;
}

.idx-filter-drawer summary::-webkit-details-marker {
  display: none;
}

.idx-filter-drawer summary::after {
  content: "+";
  justify-self: end;
  color: var(--accent);
  font-size: 1rem;
  font-weight: var(--wsh-font-weight-bold);
}

.idx-filter-drawer[open] summary::after {
  content: "-";
}

.idx-filter-drawer summary strong {
  font-size: 0.8rem;
}

.idx-filter-drawer summary span {
  color: var(--muted);
  font-size: 0.76rem;
  line-height: 1.4;
}

.idx-filter-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0.55rem;
  padding: 0 0.65rem 0.65rem;
}

.idx-form-message {
  min-height: 1.2rem;
  margin: -0.16rem 0 0;
  color: rgba(248, 244, 234, 0.76);
  font-size: 0.78rem;
  font-weight: var(--wsh-font-weight-bold);
  line-height: 1.45;
}

.idx-form-message.is-error {
  color: #f0c7a8;
}

.idx-search-hints {
  position: relative;
  z-index: 2;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: 0.48rem;
  width: min(100%, 40rem);
  margin: 3.35rem auto 0.7rem;
}

.idx-search-hints span,
.idx-search-hints button {
  font: inherit;
  font-size: 0.76rem;
  font-weight: var(--wsh-font-weight-bold);
}

.idx-search-hints span {
  color: var(--muted);
}

.idx-search-hints button {
  min-height: 2.35rem;
  border: 1px solid rgba(255, 250, 239, 0.1);
  border-radius: 999px;
  padding: 0.56rem 0.78rem;
  background: rgba(255, 250, 239, 0.055);
  color: var(--ink);
  cursor: pointer;
  transition:
    border-color 220ms var(--ease-out),
    background-color 220ms var(--ease-out),
    transform 220ms var(--ease-out);
}

.idx-search-hints button:hover {
  border-color: rgba(215, 182, 90, 0.35);
  background: rgba(255, 250, 239, 0.09);
}

.idx-search-hints button:active {
  box-shadow: inset 0 2px 4px rgba(11, 10, 9, 0.18);
}

.idx-listing-stage {
  position: relative;
  min-height: 28rem;
  overflow: hidden;
  border: 1px solid rgba(255, 250, 239, 0.08);
  border-radius: 1.65rem;
  background:
    radial-gradient(circle at 70% 15%, rgba(215, 182, 90, 0.22), transparent 38%),
    var(--surface);
  box-shadow: var(--shadow);
}

.idx-listing-card {
  position: absolute;
  inset: 0;
  display: grid;
  align-content: end;
  opacity: 0;
  transform: scale(1.025);
  transition:
    opacity 520ms var(--ease-out),
    transform 720ms var(--ease-out);
  pointer-events: none;
}

.idx-listing-card.is-active {
  opacity: 1;
  transform: scale(1);
  pointer-events: auto;
}

.idx-listing-card::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
  background:
    linear-gradient(180deg, transparent 35%, rgba(10, 9, 8, 0.3) 58%, rgba(10, 9, 8, 0.9)),
    linear-gradient(90deg, rgba(10, 9, 8, 0.44), transparent 58%);
}

.idx-listing-card img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.idx-listing-card-copy {
  position: relative;
  z-index: 2;
  max-width: 23rem;
  padding: 5.15rem clamp(1.2rem, 3vw, 2rem) clamp(1.3rem, 3vw, 2rem);
}

.idx-listing-card-copy p,
.idx-listing-card-copy span {
  color: rgba(248, 244, 234, 0.76);
  text-wrap: pretty;
}

.idx-listing-card-copy p {
  margin: 0 0 0.72rem;
  color: var(--accent);
  font-size: 0.68rem;
  font-weight: var(--wsh-font-weight-bold);
  letter-spacing: 0.13em;
  text-transform: uppercase;
}

.idx-listing-card-copy h3 {
  max-width: 14ch;
  margin-bottom: 0.7rem;
  color: var(--ink);
  font-size: clamp(1.35rem, 2.3vw, 1.9rem);
}

.idx-listing-card-copy span {
  display: block;
  max-width: 32ch;
  font-size: 0.95rem;
  line-height: 1.55;
}

.idx-carousel-controls {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.85rem;
  margin-top: 1rem;
}

.idx-carousel-controls > button {
  min-height: 2.75rem;
  border: 1px solid rgba(255, 250, 239, 0.1);
  border-radius: 999px;
  padding: 0.72rem 0.9rem;
  background: rgba(255, 250, 239, 0.055);
  color: var(--ink);
  font: inherit;
  font-size: 0.78rem;
  font-weight: var(--wsh-font-weight-bold);
  cursor: pointer;
}

.idx-carousel-dots {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.45rem;
}

.idx-carousel-dots button {
  width: 0.62rem;
  height: 0.62rem;
  border: 0;
  border-radius: 50%;
  padding: 0;
  background: rgba(255, 250, 239, 0.24);
  cursor: pointer;
}

.idx-carousel-dots button.is-active {
  background: var(--accent);
}

.updates-preview-copy {
  max-width: 35rem;
}

.updates-preview-copy p:not(.eyebrow),
.updates-page-hero p:not(.eyebrow),
.update-card-body p {
  max-width: 62ch;
  color: var(--muted);
  font-size: 1rem;
  line-height: 1.75;
  text-wrap: pretty;
}

.updates-preview-copy .text-link {
  margin-top: 0.9rem;
}

.update-card {
  overflow: hidden;
  border-radius: 1.45rem;
  border: 1px solid rgba(255, 250, 239, 0.08);
  background:
    linear-gradient(135deg, rgba(255, 250, 239, 0.08), rgba(255, 250, 239, 0.035)),
    var(--surface);
  box-shadow: var(--shadow-soft);
}

.update-card-expandable {
  position: relative;
  cursor: zoom-in;
  transition:
    transform 220ms var(--ease-out),
    box-shadow 220ms var(--ease-out);
}

.update-card-expandable:hover {
  box-shadow:
    0 26px 70px rgba(0, 0, 0, 0.28),
    0 0 0 1px rgba(255, 250, 239, 0.1);
}

.update-card-expandable:has(.update-expand-control:focus-visible) {
  outline: 2px solid var(--accent);
  outline-offset: 4px;
}

.update-card-expandable a,
.update-card-expandable button,
.update-card-expandable video {
  cursor: pointer;
}

.update-card-featured {
  display: grid;
  grid-template-columns: minmax(0, 0.95fr) minmax(0, 1.05fr);
  min-height: 22rem;
}

.update-media {
  position: relative;
  display: block;
  overflow: hidden;
  aspect-ratio: 16 / 10;
  min-height: 14rem;
  background:
    linear-gradient(135deg, rgba(39, 34, 29, 0.98), rgba(16, 14, 12, 0.98)),
    var(--surface);
}

.update-card-featured .update-media {
  align-self: center;
  min-height: 0;
}

.update-media-placeholder {
  background:
    linear-gradient(135deg, rgba(255, 250, 239, 0.11), rgba(255, 250, 239, 0.04)),
    rgba(255, 250, 239, 0.06);
}

.update-media picture,
.update-media img,
.update-media video {
  display: block;
  width: 100%;
  height: 100%;
  min-height: 0;
}

.update-media img,
.update-media video {
  object-fit: cover;
}

.update-media-framed {
  display: grid;
  place-items: center;
  isolation: isolate;
  background:
    radial-gradient(circle at 50% 42%, rgba(215, 182, 90, 0.18), transparent 62%),
    linear-gradient(135deg, rgba(42, 36, 30, 0.98), rgba(14, 13, 11, 0.98));
}

.update-media-video {
  display: grid;
  place-items: center;
  isolation: isolate;
  background:
    radial-gradient(circle at 50% 42%, rgba(215, 182, 90, 0.15), transparent 62%),
    linear-gradient(135deg, rgba(35, 31, 27, 0.98), rgba(8, 8, 7, 0.98));
}

.update-card-featured .update-media-video {
  align-self: stretch;
  min-height: 100%;
  aspect-ratio: auto;
}

.update-card-featured:has(.update-media-framed) {
  grid-template-columns: minmax(0, 1.15fr) minmax(0, 0.95fr);
  min-height: 0;
}

.update-media-framed .update-media-backdrop,
.update-media-video .update-media-backdrop {
  position: absolute;
  inset: -1.25rem;
  z-index: 0;
  opacity: 0.22;
  filter: blur(18px) saturate(0.9) brightness(0.74);
  transform: scale(1.1);
}

.update-media-framed .update-media-backdrop img,
.update-media-video .update-media-backdrop img {
  width: 100%;
  height: 100%;
  min-height: 0;
  object-fit: cover;
}

.update-media-backdrop picture {
  width: 100%;
  height: 100%;
}

.update-media-framed > picture {
  position: relative;
  z-index: 1;
}

.update-media-framed > picture img {
  object-fit: cover;
  padding: 0;
}

.update-media video {
  display: block;
  background: #030303;
}

.update-media-video video {
  position: relative;
  z-index: 1;
  height: auto;
  max-height: 100%;
  object-fit: contain;
  background: transparent;
  box-shadow: 0 18px 42px rgba(0, 0, 0, 0.26);
}

.update-media-video .update-media-backdrop {
  opacity: 0.4;
  filter: blur(24px) saturate(0.84) brightness(0.58);
  transform: scale(1.18);
}

.update-media-link,
.update-video-link {
  position: relative;
  display: grid;
  place-items: center;
  color: var(--ink);
  font-weight: var(--wsh-font-weight-bold);
  text-align: center;
  transition: color 220ms var(--ease-out), background-color 220ms var(--ease-out);
}

.update-video-link img {
  grid-area: 1 / 1;
}

.update-video-link .video-play-pill {
  position: relative;
  z-index: 1;
  grid-area: 1 / 1;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.55rem;
  min-height: 3rem;
  padding: 0.85rem 1.05rem 0.85rem 0.92rem;
  border-radius: 999px;
  background: var(--button-bg);
  color: var(--button-ink);
  box-shadow: var(--shadow-soft);
}

.play-mark {
  display: inline-block;
  width: 1.55rem;
  height: 1.55rem;
  border-radius: 50%;
  background: rgba(11, 10, 9, 0.1);
  position: relative;
}

.play-mark::before {
  content: "";
  position: absolute;
  top: 50%;
  left: 54%;
  width: 0;
  height: 0;
  border-top: 0.28rem solid transparent;
  border-bottom: 0.28rem solid transparent;
  border-left: 0.42rem solid currentColor;
  transform: translate(-42%, -50%);
}

.update-video-link::after {
  content: "";
  position: absolute;
  inset: 0;
  background: rgba(0, 0, 0, 0.18);
}

.update-video-link:hover .video-play-pill {
  background: #e2d8c6;
}

.update-media-link:hover {
  color: var(--accent);
  background: rgba(255, 250, 239, 0.09);
}

.update-card-body {
  display: grid;
  align-content: center;
  gap: 0.95rem;
  padding: clamp(1.35rem, 3vw, 2rem);
}

.update-card-body h3 {
  max-width: 18ch;
  margin: 0;
  font-size: clamp(1.2rem, 2vw, 1.62rem);
}

.update-card-body p {
  margin: 0;
}

.update-expand-control {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  justify-self: start;
  gap: 0.65rem;
  min-height: 2.75rem;
  margin: 0;
  padding: 0.55rem 0.55rem 0.55rem 0.82rem;
  border: 0;
  border-radius: 999px;
  background: rgba(255, 250, 239, 0.055);
  color: var(--muted);
  font: inherit;
  font-size: 0.84rem;
  font-weight: var(--wsh-font-weight-bold);
  box-shadow: inset 0 0 0 1px rgba(255, 250, 239, 0.1);
  transition:
    background-color 180ms var(--ease-out),
    color 180ms var(--ease-out),
    transform 180ms var(--ease-out);
}

.update-expand-control:hover {
  background: rgba(255, 250, 239, 0.11);
  color: var(--ink);
}

.update-expand-control:active {
  box-shadow: inset 0 2px 4px rgba(11, 10, 9, 0.18);
}

.update-expand-control:focus-visible {
  outline: 2px solid var(--accent);
  outline-offset: 3px;
}

.update-expand-mark {
  display: grid;
  width: 1.65rem;
  height: 1.65rem;
  place-items: center;
  border-radius: 50%;
  background: rgba(255, 250, 239, 0.1);
  font-size: 1rem;
  line-height: 1;
}

.update-card-actions {
  display: flex;
  flex-wrap: nowrap;
  align-items: center;
  gap: 0.65rem;
  margin-top: 0.25rem;
}

.update-card-actions .update-button,
.update-card-actions .update-expand-control {
  margin-top: 0;
}

.update-card-actions .update-button {
  min-height: 2.75rem;
  padding: 0.7rem 0.72rem 0.7rem 0.9rem;
  font-size: 0.78rem;
}

.update-card-actions .update-button .button-icon,
.update-card-actions .update-expand-mark {
  width: 1.55rem;
  height: 1.55rem;
}

.update-card-actions .update-expand-control {
  min-height: 2.75rem;
  padding: 0.48rem 0.5rem 0.48rem 0.72rem;
  font-size: 0.78rem;
  white-space: nowrap;
}

html.has-update-lightbox {
  overflow: hidden;
}

.update-lightbox {
  width: min(94vw, 72rem);
  max-width: none;
  max-height: calc(100dvh - 2rem);
  margin: auto;
  padding: 0;
  overflow: visible;
  border: 0;
  background: transparent;
  color: var(--ink);
  opacity: 0;
  transform: translateY(0.7rem) scale(0.985);
  transition:
    opacity 160ms var(--ease-out),
    transform 160ms var(--ease-out);
}

.update-lightbox::backdrop {
  background: rgba(4, 4, 3, 0.84);
  backdrop-filter: blur(9px);
}

.update-lightbox.is-open {
  opacity: 1;
  transform: translateY(0) scale(1);
}

.update-lightbox-shell {
  position: relative;
  max-height: calc(100dvh - 2rem);
  overflow: hidden;
  border-radius: 1.5rem;
  background:
    linear-gradient(135deg, rgba(255, 250, 239, 0.09), rgba(255, 250, 239, 0.035)),
    #171512;
  box-shadow:
    0 36px 100px rgba(0, 0, 0, 0.58),
    0 0 0 1px rgba(255, 250, 239, 0.12);
}

.update-lightbox-toolbar {
  position: absolute;
  top: 0.85rem;
  right: 0.85rem;
  z-index: 4;
  display: flex;
  align-items: center;
  gap: 0.5rem;
}

.update-lightbox-zoom,
.update-lightbox-close {
  display: inline-flex;
  min-height: 2.75rem;
  align-items: center;
  justify-content: center;
  border: 0;
  border-radius: 999px;
  background: rgba(10, 9, 8, 0.84);
  color: var(--ink);
  font: inherit;
  font-size: 0.82rem;
  font-weight: var(--wsh-font-weight-bold);
  box-shadow:
    0 10px 28px rgba(0, 0, 0, 0.26),
    inset 0 0 0 1px rgba(255, 250, 239, 0.14);
  backdrop-filter: blur(12px);
  transition:
    background-color 180ms var(--ease-out),
    transform 180ms var(--ease-out);
}

.update-lightbox-zoom[hidden] {
  display: none;
}

.update-lightbox-zoom {
  gap: 0.55rem;
  padding: 0.55rem 0.65rem 0.55rem 0.9rem;
}

.update-lightbox-zoom [data-lightbox-zoom-mark] {
  display: grid;
  width: 1.65rem;
  height: 1.65rem;
  place-items: center;
  border-radius: 50%;
  background: rgba(255, 250, 239, 0.12);
  font-size: 1rem;
  line-height: 1;
}

.update-lightbox-close {
  width: 2.75rem;
  padding: 0;
  font-size: 1.65rem;
  line-height: 1;
}

.update-lightbox-zoom:hover,
.update-lightbox-close:hover {
  background: rgba(41, 37, 31, 0.96);
}

.update-lightbox-zoom:active,
.update-lightbox-close:active {
  box-shadow: inset 0 2px 4px rgba(11, 10, 9, 0.18);
}

.update-lightbox-zoom:focus-visible,
.update-lightbox-close:focus-visible {
  outline: 2px solid var(--accent);
  outline-offset: 3px;
}

.update-lightbox-post {
  display: grid;
  max-height: calc(100dvh - 2rem);
}

.update-lightbox-post.has-media {
  grid-template-columns: minmax(0, 1.4fr) minmax(18rem, 0.72fr);
}

.update-lightbox-media {
  display: grid;
  min-height: min(70vh, 46rem);
  max-height: calc(100dvh - 2rem);
  place-items: center;
  overflow: auto;
  overscroll-behavior: contain;
  background: #050504;
}

.update-lightbox-media picture,
.update-lightbox-media img,
.update-lightbox-media video {
  display: block;
  width: 100%;
  height: 100%;
  max-height: calc(100dvh - 2rem);
}

.update-lightbox-media img,
.update-lightbox-media video {
  object-fit: contain;
}

.update-lightbox-media img {
  cursor: zoom-in;
}

.update-lightbox-media.is-zoomed {
  display: block;
}

.update-lightbox-media.is-zoomed img {
  width: auto;
  min-width: 150%;
  height: auto;
  max-width: none;
  max-height: none;
  cursor: zoom-out;
}

.update-lightbox-copy {
  display: grid;
  align-content: safe center;
  gap: 1.1rem;
  min-height: 22rem;
  max-height: calc(100dvh - 2rem);
  /* Keep long posts below the fixed zoom/close controls in the copy column. */
  padding: 5rem clamp(2rem, 4vw, 3rem) clamp(2rem, 4vw, 3rem);
  overflow: auto;
}

.update-lightbox-copy h2 {
  max-width: 16ch;
  margin: 0;
  font-size: clamp(1.75rem, 3.6vw, 3rem);
  line-height: 1.02;
  text-wrap: balance;
}

.update-lightbox-summary {
  max-width: 48ch;
  margin: 0;
  color: var(--muted);
  font-size: 1rem;
  line-height: 1.72;
  white-space: pre-line;
}

.update-lightbox-button {
  justify-self: start;
  margin-top: 0.25rem;
}

.update-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 0.45rem;
  align-items: center;
  color: var(--muted) !important;
  font-size: 0.7rem !important;
  font-weight: var(--wsh-font-weight-bold);
  letter-spacing: 0.08em;
  line-height: 1.4 !important;
  text-transform: uppercase;
}

.update-category {
  display: inline-flex;
  align-items: center;
  min-height: 1.55rem;
  padding: 0.24rem 0.48rem;
  border: 1px solid rgba(215, 182, 90, 0.2);
  border-radius: 0.42rem;
  background: rgba(215, 182, 90, 0.1);
  color: var(--accent);
}

.update-status {
  display: inline-flex;
  align-items: center;
  min-height: 1.55rem;
  padding: 0.24rem 0.48rem;
  border: 1px solid rgba(255, 255, 255, 0.18);
  border-radius: 0.42rem;
  color: var(--ink);
}

.update-meta time,
.update-meta span:not(.update-category, .update-status) {
  color: var(--muted);
  font-variant-numeric: tabular-nums;
}

.update-button {
  width: fit-content;
  margin-top: 0.2rem;
}

.updates-page-hero {
  padding: clamp(4rem, 8vw, 6rem) 0 clamp(2.5rem, 5vw, 4rem);
}

.updates-page-hero h1 {
  max-width: 13ch;
}

.updates-feed-section {
  padding-bottom: clamp(4.5rem, 8vw, 7rem);
}

.updates-feed {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1.1rem;
}

.section-grid {
  display: grid;
  grid-template-columns: 0.32fr 0.68fr;
  gap: clamp(2rem, 5vw, 5rem);
}

.service-list {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1rem;
  margin-top: 2rem;
}

.approach-photo {
  margin: 2rem 0 0;
  padding: 0.55rem;
  border-radius: 1.45rem;
  background: var(--surface-soft);
  box-shadow: var(--shadow-soft);
}

.approach-photo img {
  width: 100%;
  height: clamp(16rem, 48vw, 30rem);
  aspect-ratio: 1400 / 760;
  border-radius: 1.15rem;
  object-fit: cover;
  object-position: 48% 45%;
}

.approach-photo figcaption {
  margin: 0;
  padding: 0.85rem 0.2rem 0.25rem;
  color: var(--muted);
  font-size: 0.82rem;
  font-weight: var(--wsh-font-weight-bold);
  line-height: 1.45;
  text-wrap: pretty;
}

.service-list article,
.contact-card,
.value-card,
.experience-callout div {
  padding: 1.35rem;
  border-radius: var(--radius);
  border: 1px solid rgba(255, 250, 239, 0.08);
  background: var(--surface-soft);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.04);
}

.service-list article {
  transition: transform 240ms var(--ease-out), box-shadow 240ms var(--ease-out), background-color 240ms var(--ease-out);
}

.service-list article:hover {
  transform: translateY(-3px);
  background: rgba(255, 250, 239, 0.09);
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.06),
    0 16px 34px rgba(0, 0, 0, 0.2);
}

.image-feature {
  display: grid;
  grid-template-columns: 1.08fr 0.92fr;
  gap: clamp(2rem, 5vw, 4.5rem);
  align-items: center;
  padding: 0 0 clamp(4.5rem, 8vw, 7rem);
}

.image-feature img {
  aspect-ratio: 1.18;
}

.image-feature picture {
  aspect-ratio: 1400 / 788;
}

.home-value-section {
  display: grid;
  grid-template-columns: minmax(0, 0.95fr) minmax(320px, 0.78fr);
  gap: clamp(2rem, 5vw, 5rem);
  align-items: start;
}

.neighborhoods {
  display: grid;
  grid-template-columns: 0.8fr 1.2fr;
  gap: clamp(2rem, 5vw, 5rem);
  align-items: end;
}

.neighborhoods img {
  aspect-ratio: 1.7;
}

.neighborhoods picture {
  aspect-ratio: 1400 / 788;
}

.meet-jeff {
  display: grid;
  grid-template-columns: minmax(260px, 0.74fr) minmax(0, 1fr);
  gap: clamp(2rem, 5vw, 5rem);
  align-items: center;
}

.updates-preview:first-child,
.idx-preview:first-child,
.meet-jeff:first-child {
  padding-top: clamp(2.5rem, 5vw, 4.5rem);
  border-top: 0;
}

.portrait-card {
  width: min(100%, 390px);
  justify-self: center;
  padding: 0.55rem;
  border-radius: 1.45rem;
  background: var(--surface-soft);
  box-shadow: var(--shadow);
}

.portrait-card picture {
  aspect-ratio: 720 / 900;
}

.portrait-image {
  height: auto;
  aspect-ratio: auto;
  object-fit: contain;
  object-position: center;
}

.meet-copy {
  max-width: 42rem;
}

.meet-actions {
  display: flex;
  align-items: center;
  gap: 1.25rem;
  flex-wrap: wrap;
  margin-top: 1.75rem;
}

.experience-callout {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.85rem;
  margin-top: 2rem;
}

.check-list {
  display: grid;
  gap: 0.7rem;
  margin: 1.6rem 0 0;
  padding: 0;
  color: var(--ink);
  font-size: 0.9rem;
  font-weight: var(--wsh-font-weight-bold);
  list-style: none;
}

.check-list li {
  position: relative;
  padding-left: 1.45rem;
}

.check-list li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0.45rem;
  width: 0.45rem;
  height: 0.45rem;
  border-radius: 50%;
  background: var(--accent);
}

.neighborhood-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 0.55rem;
  margin-top: 1.6rem;
}

.neighborhood-tags span,
.neighborhood-tags a {
  padding: 0.45rem 0.7rem;
  border: 1px solid rgba(255, 250, 239, 0.12);
  border-radius: 999px;
  color: var(--ink);
  background: rgba(255, 250, 239, 0.055);
  font-size: 0.78rem;
  font-weight: var(--wsh-font-weight-bold);
}

.experience-callout strong {
  display: block;
  color: var(--ink);
  font-size: clamp(1.65rem, 3vw, 2.45rem);
  font-weight: var(--wsh-font-weight-bold);
  letter-spacing: -0.04em;
  line-height: 1;
  font-variant-numeric: tabular-nums;
}

.experience-callout span {
  display: block;
  margin-top: 0.65rem;
  color: var(--muted);
  font-size: 0.76rem;
  font-weight: var(--wsh-font-weight-bold);
  letter-spacing: 0.11em;
  line-height: 1.45;
  text-transform: uppercase;
}

.professional-background {
  display: grid;
  grid-template-columns: minmax(0, 0.82fr) minmax(0, 1.18fr);
  gap: clamp(2rem, 4.5vw, 4.5rem);
  align-items: start;
  padding: clamp(4rem, 6vw, 5.5rem) 0;
  border-top: 1px solid var(--line);
}

.background-copy h2 {
  max-width: 15ch;
}

.resume-link {
  display: inline-flex;
  align-items: center;
  gap: 0.9rem;
  width: fit-content;
  margin-top: 1.55rem;
  padding: 0.82rem 1rem 0.82rem 0.82rem;
  border: 1px solid rgba(215, 182, 90, 0.26);
  border-radius: 999px;
  background: rgba(215, 182, 90, 0.08);
  color: var(--ink);
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.045),
    0 14px 34px rgba(0, 0, 0, 0.16);
  transition-property: transform, border-color, background-color, box-shadow;
  transition-duration: 220ms;
  transition-timing-function: var(--ease-out);
}

.resume-link:hover {
  border-color: rgba(215, 182, 90, 0.5);
  background: rgba(215, 182, 90, 0.13);
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.055),
    0 18px 38px rgba(0, 0, 0, 0.22);
}

.resume-link:active {
  box-shadow: inset 0 2px 4px rgba(11, 10, 9, 0.18);
}

.resume-link strong,
.resume-link small {
  display: block;
}

.resume-link strong {
  font-size: 0.86rem;
  font-weight: var(--wsh-font-weight-bold);
  line-height: 1.15;
}

.resume-link small {
  margin-top: 0.18rem;
  color: var(--muted);
  font-size: 0.72rem;
  font-weight: var(--wsh-font-weight-bold);
}

.resume-icon {
  display: grid;
  place-items: center;
  width: 2.65rem;
  height: 2.65rem;
  border-radius: 50%;
  background: var(--accent);
  color: #0b0a09;
  flex: 0 0 auto;
}

.resume-icon svg {
  width: 1.22rem;
  height: 1.22rem;
  fill: none;
  stroke: currentColor;
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-width: 1.85;
}

.background-details {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.85rem;
}

.background-details article {
  min-height: 100%;
  padding: 1.15rem;
  border: 1px solid rgba(255, 250, 239, 0.1);
  border-radius: 1.05rem;
  background: rgba(255, 250, 239, 0.055);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.04);
}

.background-details span {
  display: inline-flex;
  margin-bottom: 0.72rem;
  color: var(--accent);
  font-size: 0.68rem;
  font-weight: var(--wsh-font-weight-bold);
  letter-spacing: 0.13em;
  line-height: 1.3;
  text-transform: uppercase;
}

.background-details h3 {
  max-width: 15ch;
  margin-bottom: 0.6rem;
}

.background-details p {
  margin-bottom: 0;
  font-size: 0.92rem;
  line-height: 1.65;
}

.contact-section {
  display: grid;
  grid-template-columns: 0.9fr 1fr;
  gap: clamp(2rem, 5vw, 5rem);
  align-items: start;
}

.contact-intro {
  display: grid;
  gap: 1rem;
}

.contact-card,
.value-card {
  display: grid;
  gap: 1rem;
}

.contact-card label,
.value-card label {
  display: grid;
  gap: 0.45rem;
  color: var(--muted);
  font-size: 0.82rem;
  font-weight: var(--wsh-font-weight-bold);
}

.contact-card input,
.contact-card textarea,
.value-card input,
.value-card select {
  width: 100%;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: rgba(255, 250, 239, 0.08);
  color: var(--ink);
  font: inherit;
  /* Fields sit inside their small bold labels: typed text is regular, and
     16px avoids iOS Safari zooming the page on focus. */
  font-size: 16px;
  font-weight: 400;
  min-height: 48px;
  padding: 0.9rem 1rem;
  outline: none;
  transition-property: border-color, box-shadow, background-color;
  transition-duration: 180ms;
  transition-timing-function: var(--ease-out);
}

.value-card select {
  appearance: none;
  color-scheme: dark;
  background-image:
    linear-gradient(45deg, transparent 50%, var(--muted) 50%),
    linear-gradient(135deg, var(--muted) 50%, transparent 50%);
  background-position:
    calc(100% - 1.24rem) 50%,
    calc(100% - 0.92rem) 50%;
  background-size: 0.38rem 0.38rem, 0.38rem 0.38rem;
  background-repeat: no-repeat;
  padding-right: 2.9rem;
}

.value-card select option {
  background: var(--surface);
  color: var(--ink);
}

.contact-card textarea {
  resize: vertical;
}

.contact-card input:focus,
.contact-card textarea:focus,
.value-card input:focus,
.value-card select:focus {
  border-color: var(--wsh-focus-color);
  box-shadow: var(--wsh-focus-shadow);
}

.contact-card input:user-invalid,
.contact-card textarea:user-invalid,
.value-card input:user-invalid,
.value-card select:user-invalid {
  border-color: rgba(235, 146, 115, 0.78);
  box-shadow: var(--wsh-error-shadow);
}

.contact-card input[aria-invalid="true"],
.contact-card textarea[aria-invalid="true"],
.value-card input[aria-invalid="true"],
.value-card select[aria-invalid="true"] {
  border-color: rgba(235, 146, 115, 0.86);
  box-shadow: var(--wsh-error-shadow);
}

.field-error {
  min-height: 1.1rem;
  color: #ffb199;
  font-size: 0.76rem;
  font-weight: var(--wsh-font-weight-bold);
  line-height: 1.45;
}
.field-error:empty { display: none; }

.contact-card button,
.value-card button {
  width: 100%;
  min-height: 3.15rem;
  margin-top: 0.25rem;
}

.form-note {
  margin: 0.15rem 0 0;
  color: var(--muted);
  font-size: 0.76rem;
  line-height: 1.55;
  text-align: center;
}

.hidden-field {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip: rect(0 0 0 0);
  clip-path: inset(50%);
  white-space: nowrap;
}

.hidden-field input {
  width: 1px;
  height: 1px;
  min-height: 0;
  padding: 0;
  border: 0;
}

.site-footer {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  overflow-wrap: anywhere;
  padding: 2.4rem 0 3rem;
  border-top: 1px solid var(--line);
  color: var(--muted);
}

.footer-main {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 2rem;
}

.site-footer strong {
  display: block;
  margin-bottom: 0.35rem;
  color: var(--ink);
  font-size: 1rem;
  font-weight: var(--wsh-font-weight-bold);
}

.site-footer p {
  margin: 0;
  font-size: 0.82rem;
  line-height: 1.6;
  text-wrap: pretty;
}

.footer-brand {
  min-width: 0;
  display: grid;
  gap: 0.38rem;
}

.brokerage-line {
  margin-top: 0.2rem !important;
}

.footer-actions {
  display: grid;
  justify-items: end;
  gap: 0.55rem;
}

.footer-social,
.footer-links {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 0.7rem 1.1rem;
}

.footer-social {
  align-items: center;
  color: var(--muted);
  gap: 0.65rem;
}

.footer-social-label {
  color: var(--muted);
  font-size: 0.78rem;
  font-weight: var(--wsh-font-weight-bold);
}

.footer-social-links {
  display: flex;
  align-items: center;
  gap: 0.5rem;
}

.site-footer a {
  display: inline-flex;
  align-items: center;
  min-height: 2.75rem;
  flex: 0 0 auto;
  font-size: 0.86rem;
  font-weight: var(--wsh-font-weight-bold);
  color: var(--ink);
  border-bottom: 1px solid rgba(248, 244, 234, 0.4);
}

.brokerage-line a {
  color: var(--muted);
  border-bottom-color: rgba(248, 244, 234, 0.24);
}

.site-footer .social-icon-link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2.75rem;
  min-height: 2.75rem;
  border: 1px solid rgba(255, 250, 239, 0.1);
  border-radius: 999px;
  background: rgba(255, 250, 239, 0.055);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.045);
  transition-property: transform, background-color, border-color, box-shadow;
  transition-duration: 220ms;
  transition-timing-function: var(--ease-out);
}

.site-footer .social-icon-link:hover {
  border-color: rgba(215, 182, 90, 0.42);
  background: rgba(215, 182, 90, 0.1);
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.06),
    0 10px 24px rgba(0, 0, 0, 0.18);
}

.site-footer .social-icon-link:active {
  box-shadow: inset 0 2px 4px rgba(11, 10, 9, 0.18);
}

.mls-disclaimer {
  width: 100%;
  color: rgba(200, 192, 179, 0.76);
  font-size: 0.7rem;
  line-height: 1.5;
  text-align: center;
}

.footer-compliance {
  width: min(38rem, 100%);
  margin: 2rem auto 0;
  padding-top: 1.5rem;
  border-top: 1px solid rgba(255, 250, 239, 0.08);
}

.footer-compliance-label {
  margin: 0 0 0.85rem !important;
  color: rgba(200, 192, 179, 0.68);
  font-size: 0.68rem !important;
  font-weight: var(--wsh-font-weight-bold);
  letter-spacing: 0.12em;
  text-align: center;
  text-transform: uppercase;
}

.mls-disclaimer a {
  display: inline;
  min-height: 0;
  border: 0;
  color: inherit;
  font-size: inherit;
  font-weight: inherit;
}

.social-icon-link img {
  width: 1.05rem;
  height: 1.05rem;
  outline: 0;
}

.policy-page {
  width: min(960px, calc(100% - 2rem));
  margin: 0 auto;
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 2rem;
  padding: 3rem 0 4rem;
}

.policy-disclaimer {
  width: min(760px, 100%);
  margin: 1.5rem auto 0;
  color: rgba(200, 192, 179, 0.76);
  font-size: 0.72rem;
  line-height: 1.55;
  text-align: center;
}

.idx-page {
  width: min(1220px, calc(100% - 2rem));
  min-height: 70vh;
  margin: 0 auto;
  padding: clamp(4.25rem, 8vw, 7rem) 0 clamp(4rem, 7vw, 6rem);
}

.idx-page-heading {
  max-width: 48rem;
  margin-bottom: clamp(2rem, 4vw, 3.25rem);
}

.idx-page-heading h1 {
  max-width: 14ch;
  margin: 0.55rem 0 1rem;
  font-size: clamp(2.25rem, 5vw, 4.8rem);
  line-height: 0.98;
  text-wrap: balance;
}

.idx-page-heading > p:last-of-type {
  max-width: 42rem;
  margin: 0;
  color: var(--muted);
  line-height: 1.75;
}

.idx-jump-link {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  margin-top: 0.9rem;
  color: var(--accent);
  font-size: 0.86rem;
  font-weight: var(--wsh-font-weight-semibold);
  text-decoration: none;
}

.idx-jump-label {
  text-decoration: underline;
  text-decoration-skip-ink: none;
  text-underline-offset: 0.2em;
}

.idx-jump-link:hover,
.idx-jump-link:focus-visible { color: var(--cream); }

#contact-jeff { scroll-margin-top: 6rem; }

.idx-widget-shell {
  min-height: 30rem;
  padding: clamp(1rem, 2vw, 1.5rem);
  border: 1px solid rgba(255, 250, 239, 0.12);
  border-radius: var(--radius);
  background: rgba(255, 250, 239, 0.045);
  box-shadow: var(--shadow-soft);
}

.idx-details-page {
  padding-top: clamp(2rem, 5vw, 4rem);
}

.idx-detail-actions {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  margin-bottom: 1.25rem;
}

.idx-detail-actions .primary-button {
  flex: 0 0 auto;
}

@media (max-width: 720px) {
  .idx-live-search-heading {
    align-items: flex-start;
    flex-direction: column;
    gap: 0.2rem;
  }

  .idx-page {
    padding-top: 3rem;
  }

  .idx-widget-shell {
    padding: 0.65rem;
    border-radius: 0.9rem;
  }

  .idx-detail-actions {
    align-items: stretch;
    flex-direction: column;
  }

  .idx-detail-actions .primary-button {
    justify-content: center;
  }

  .mls-disclaimer {
    text-align: center;
  }
}

.policy-card {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  min-width: 0;
  overflow-wrap: anywhere;
  gap: 1.35rem;
  padding: clamp(1.5rem, 5vw, 3.5rem);
  border: 1px solid rgba(255, 250, 239, 0.08);
  border-radius: 1.5rem;
  background: var(--surface-soft);
  box-shadow: var(--shadow);
}

.policy-card h1 {
  max-width: 13ch;
}

.policy-card h2 {
  max-width: none;
  margin: 0;
  font-size: 1.05rem;
}

.policy-card p:not(.eyebrow),
.policy-card li {
  max-width: 70ch;
  color: var(--muted);
  line-height: 1.75;
  text-wrap: pretty;
}

.policy-card p,
.policy-card ul {
  margin: 0;
}

.policy-card ul {
  display: grid;
  gap: 0.55rem;
  padding-left: 1.1rem;
}

.policy-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.85rem 1.1rem;
  margin-top: 0.5rem;
}

[data-reveal].reveal-pending {
  opacity: 0;
  transform: translateY(16px);
  transition-property: opacity, transform;
  transition-duration: 500ms;
  transition-timing-function: ease-out;
  transition-delay: var(--reveal-delay, 0ms);
}

[data-reveal].reveal-pending.is-visible, [data-reveal].reveal-immediate {
  opacity: 1;
  transform: none;
}
.reveal-immediate { transition: none !important; }

.thank-you-page {
  width: min(960px, calc(100% - 2rem));
  min-height: 100dvh;
  margin: 0 auto;
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  align-content: center;
  gap: 2rem;
  padding: 3rem 0;
}

.thank-you-brand {
  width: fit-content;
}

.thank-you-card {
  min-width: 0;
  overflow-wrap: anywhere;
  padding: clamp(2rem, 6vw, 4rem);
  border-radius: 1.5rem;
  border: 1px solid rgba(255, 250, 239, 0.08);
  background: var(--surface-soft);
  box-shadow: var(--shadow);
}

.thank-you-card h1 {
  max-width: 12ch;
}

.thank-you-next {
  margin-top: 1.45rem;
  padding-top: 1.35rem;
  box-shadow: inset 0 1px 0 rgba(255, 250, 239, 0.1);
}

.thank-you-next h2 {
  margin: 0 0 0.65rem;
  font-size: 0.92rem;
  font-weight: var(--wsh-font-weight-bold);
}

.thank-you-next ul {
  display: grid;
  gap: 0.5rem;
  margin: 0;
  padding-left: 1.05rem;
  color: var(--muted);
  font-size: 0.95rem;
  line-height: 1.65;
  text-wrap: pretty;
}

.thank-you-actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.85rem 1.1rem;
  margin-top: 1.55rem;
}

:focus-visible {
  outline: 3px solid rgba(215, 182, 90, 0.55);
  outline-offset: 4px;
}

@media (prefers-reduced-motion: reduce) {
  .primary-button:hover .button-icon { transform: none; }
  [data-reveal] { opacity: 1 !important; transform: none !important; transition: none !important; }
  *,
  *::before,
  *::after {
    scroll-behavior: auto !important;
    transition-duration: 0.01ms !important;
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
  }
}

@media (max-width: 920px) {
  .nav-shell {
    position: relative;
    justify-content: space-between;
    border-radius: 1.2rem;
  }

  .nav-links,
  .nav-cta {
    display: none;
  }

  .mobile-menu-toggle {
    display: inline-flex;
  }

  .hero,
  .section-grid,
  .updates-preview,
  .idx-preview,
  .updates-feed,
  .update-card-featured,
  .image-feature,
  .home-value-section,
  .neighborhoods,
  .meet-jeff,
  .professional-background,
  .contact-section,
  .service-list {
    grid-template-columns: 1fr;
  }

  .hero {
    min-height: auto;
    grid-template-columns: minmax(0, 1fr);
    padding-top: 2.5rem;
    gap: 2rem;
  }

  .local-guidance {
    gap: 1.75rem;
  }

  .updates-preview {
    align-items: start;
  }

  .idx-preview {
    align-items: start;
    gap: 2rem;
  }

  .idx-search-panel {
    margin-bottom: -2.2rem;
  }

  .idx-main-search {
    grid-template-columns: minmax(0, 1fr) auto;
  }

  .idx-search-hints {
    margin-top: 2.8rem;
  }

  .idx-search-panel button {
    grid-column: auto;
  }

  .update-card-featured:has(.update-media-framed) {
    grid-template-columns: 1fr;
    min-height: 0;
  }

  .update-lightbox-post.has-media {
    grid-template-columns: 1fr;
    overflow: auto;
  }

  .update-lightbox-media {
    min-height: min(54vh, 34rem);
    max-height: min(54vh, 34rem);
  }

  .update-lightbox-media img,
  .update-lightbox-media video {
    max-height: min(54vh, 34rem);
  }

  .update-lightbox-copy {
    min-height: 0;
    max-height: none;
    padding-top: clamp(2rem, 4vw, 3rem);
    overflow: visible;
  }

  .hero-media-shell img {
    min-height: min(340px, 86vw);
  }

  .hero-media-shell picture {
    min-height: min(340px, 86vw);
  }

  .local-guidance .hero-media-shell picture,
  .local-guidance .hero-media-shell img {
    min-height: min(310px, 78vw);
  }

  .portrait-image {
    max-height: min(580px, 118vw);
  }

  .footer-main {
    align-items: flex-start;
    flex-direction: column;
  }

  .footer-compliance {
    margin-top: 1.5rem;
    padding-top: 1.25rem;
  }

  .footer-links {
    justify-content: flex-start;
  }

  .footer-actions {
    justify-items: start;
  }

  .footer-social {
    justify-content: flex-start;
  }
}

@media (max-width: 560px) {
  .nav-shell,
  .hero,
  .section-grid,
  .updates-preview,
  .idx-preview,
  .updates-page-hero,
  .updates-feed-section,
  .image-feature,
  .home-value-section,
  .neighborhoods,
  .meet-jeff,
  .professional-background,
  .contact-section,
  .site-footer {
    width: calc(100vw - 2rem);
  }

  .site-header {
    padding: 0.75rem 1rem;
  }

  .nav-shell {
    padding: 0.5rem 0.62rem;
    box-shadow: 0 12px 34px rgba(0, 0, 0, 0.28);
  }

  .brand {
    padding: 0.2rem 0.58rem;
  }

  .brand-logo {
    width: clamp(8.85rem, 44vw, 10rem);
    height: 1.95rem;
  }

  .mobile-menu-toggle-label {
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
    clip: rect(0 0 0 0);
    clip-path: inset(50%);
    white-space: nowrap;
  }

  .mobile-menu-toggle {
    min-width: 2.75rem;
    min-height: 2.75rem;
    padding: 0.65rem 0.82rem;
  }

  .mobile-menu {
    top: calc(100% + 0.5rem);
    max-height: calc(100dvh - 6.4rem);
    overflow-y: auto;
    padding: 0.6rem;
    border-radius: 1rem;
  }

  .mobile-menu a {
    min-height: 2.9rem;
    padding: 0.74rem 0.82rem;
  }

  .section-grid,
  .updates-preview,
  .idx-preview,
  .updates-page-hero,
  .updates-feed-section,
  .image-feature,
  .home-value-section,
  .neighborhoods,
  .meet-jeff,
  .professional-background,
  .contact-section {
    padding-top: 3.65rem;
    padding-bottom: 3.65rem;
  }

  .meet-jeff,
  .professional-background,
  .section-grid,
  .local-guidance {
    padding-top: 3.15rem;
    padding-bottom: 3.25rem;
  }

  .updates-preview {
    gap: 1.45rem;
  }

  .idx-preview {
    gap: 1.65rem;
  }

  .idx-status {
    margin-top: 1rem;
    font-size: 0.88rem;
  }

  .idx-showcase {
    min-height: 0;
  }

  .idx-search-panel {
    margin-bottom: 0.85rem;
    border-radius: 1.05rem;
  }

  .idx-main-search,
  .idx-filter-grid {
    grid-template-columns: 1fr;
  }

  .idx-search-panel label {
    padding: 0.72rem 0.82rem;
  }

  .idx-search-panel button {
    min-height: 3.15rem;
  }

  .idx-search-hints {
    justify-content: flex-start;
    margin-top: 0.75rem;
    margin-bottom: 1rem;
  }

  .idx-search-hints button {
    min-height: 2.75rem;
  }

  .idx-listing-stage {
    min-height: 24rem;
    border-radius: 1.2rem;
  }

  .idx-listing-card-copy {
    padding: 1.25rem;
  }

  .idx-listing-card-copy h3 {
    max-width: 13ch;
    font-size: 1.28rem;
  }

  .idx-carousel-controls {
    align-items: stretch;
  }

  .idx-carousel-controls > button {
    flex: 1 1 0;
  }

  .updates-preview:first-child,
  .idx-preview:first-child,
  .meet-jeff:first-child {
    padding-top: 2.2rem;
  }

  .updates-preview-copy .text-link {
    margin-top: 0.25rem;
  }

  .update-card {
    border-radius: 1.2rem;
  }

  .update-card-featured {
    min-height: 0;
  }

  .update-media,
  .update-media picture,
  .update-media img,
  .update-media video {
    min-height: 12.25rem;
  }

  .update-card-body {
    gap: 0.72rem;
    padding: 1.08rem 1.12rem 1.18rem;
  }

  .update-card-body h3 {
    max-width: none;
    font-size: 1.08rem;
    line-height: 1.18;
  }

  .update-card-body p {
    font-size: 0.94rem;
    line-height: 1.62;
  }

  .update-card-expandable:hover {
    transform: none;
  }

  .update-expand-control {
    min-height: 2.75rem;
    margin-top: 0.35rem;
  }

  .update-lightbox {
    width: calc(100vw - 0.75rem);
    max-height: calc(100dvh - 0.75rem);
  }

  .update-lightbox-shell,
  .update-lightbox-post {
    max-height: calc(100dvh - 0.75rem);
    border-radius: 1rem;
  }

  .update-lightbox-toolbar {
    top: 0.55rem;
    right: 0.55rem;
  }

  .update-lightbox-zoom {
    width: 2.75rem;
    padding: 0;
  }

  .update-lightbox-zoom [data-lightbox-zoom-label] {
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
    clip: rect(0 0 0 0);
    clip-path: inset(50%);
    white-space: nowrap;
  }

  .update-lightbox-media {
    min-height: min(48vh, 27rem);
    max-height: min(48vh, 27rem);
  }

  .update-lightbox-media picture,
  .update-lightbox-media img,
  .update-lightbox-media video {
    max-height: min(48vh, 27rem);
  }

  .update-lightbox-media.is-zoomed img {
    min-width: 190%;
  }

  .update-lightbox-copy {
    gap: 0.8rem;
    padding: 1.25rem 1.15rem 1.4rem;
  }

  .update-lightbox-copy h2 {
    max-width: 18ch;
    padding-right: 2.5rem;
    font-size: clamp(1.4rem, 7vw, 2rem);
  }

  .update-lightbox-summary {
    font-size: 0.94rem;
    line-height: 1.62;
  }

  .update-meta {
    gap: 0.42rem;
    font-size: 0.66rem !important;
  }

  .update-video-link .video-play-pill {
    min-height: 2.75rem;
    padding: 0.78rem 1rem;
  }

  .portrait-card {
    width: min(100%, 350px);
  }

  h1 {
    font-size: clamp(1.68rem, 6.7vw, 2rem);
    line-height: 1.03;
  }

  .hero h1 {
    max-width: 14ch;
    font-size: clamp(1.5rem, 6vw, 1.85rem);
  }

  h2 {
    font-size: clamp(1.24rem, 5.2vw, 1.55rem);
  }

  .hero-text {
    max-width: 32ch;
    font-size: 0.95rem;
    line-height: 1.7;
  }

  .local-guidance h1 {
    max-width: 15ch;
    font-size: clamp(1.42rem, 5.8vw, 1.72rem);
  }

  .local-guidance .hero-text {
    max-width: 34ch;
  }

  .section-content > p,
  .idx-preview-copy > p,
  .idx-status,
  .updates-preview-copy p:not(.eyebrow),
  .updates-page-hero p:not(.eyebrow),
  .update-card-body p,
  .image-feature p,
  .home-value-copy p,
  .neighborhood-copy p,
  .meet-copy > p,
  .contact-section p,
  .service-list p {
    max-width: 34ch;
  }

  .hero-media-shell,
  .image-feature picture,
  .neighborhoods picture,
  .portrait-card,
  .approach-photo {
    padding: 0.42rem;
    border-radius: 1.2rem;
  }

  .hero-media-shell picture,
  .hero-media-shell img,
  .image-feature picture,
  .image-feature img,
  .neighborhoods picture,
  .neighborhoods img,
  .portrait-image,
  .approach-photo img {
    border-radius: 0.92rem;
  }

  .approach-photo {
    margin-top: 1.45rem;
  }

  .approach-photo img {
    height: min(15rem, 62vw);
    object-position: 40% 45%;
  }

  .approach-photo figcaption {
    padding-top: 0.72rem;
    font-size: 0.78rem;
  }

  .service-list {
    gap: 0.78rem;
    margin-top: 1.35rem;
  }

  .service-list article,
  .contact-card,
  .value-card,
  .experience-callout div {
    padding: 1.08rem;
    border-radius: 1rem;
  }

  .contact-card,
  .value-card {
    gap: 0.88rem;
  }

  .contact-card input,
  .contact-card textarea,
  .value-card input,
  .value-card select {
    min-height: 48px;
    border-radius: 8px;
    padding: 0.9rem 0.95rem;
  }

  .hidden-field input {
    width: 1px;
    height: 1px;
    min-height: 0;
    padding: 0;
  }

  .value-card select {
    background-position:
      calc(100% - 1.12rem) 50%,
      calc(100% - 0.8rem) 50%;
    padding-right: 2.6rem;
  }

  .contact-card button,
  .value-card button {
    min-height: 3.25rem;
  }

  .neighborhood-tags {
    gap: 0.45rem;
    margin-top: 1.25rem;
  }

  .neighborhood-tags span,
  .neighborhood-tags a {
    padding: 0.48rem 0.68rem;
  }

  .hero-actions {
    align-items: flex-start;
    flex-direction: column;
    gap: 0.85rem;
  }

  .primary-button,
  .text-link {
    width: 100%;
    justify-content: center;
  }

  .meet-actions {
    align-items: flex-start;
    flex-direction: column;
    gap: 0.95rem;
    margin-top: 1.35rem;
  }

  .experience-callout {
    margin-top: 1.45rem;
  }

  .thank-you-page {
    width: calc(100vw - 2rem);
    align-content: start;
    padding-top: 1rem;
  }

  .thank-you-card {
    padding: min(1.5rem, 24px);
    border-radius: 1rem;
  }

  .thank-you-actions {
    align-items: stretch;
    flex-direction: column;
  }

  .policy-page {
    width: calc(100vw - 2rem);
    padding-top: 1rem;
  }

  .policy-card {
    padding: min(1.5rem, 24px);
    border-radius: 1rem;
  }

  .policy-actions {
    align-items: stretch;
    flex-direction: column;
  }

  .experience-callout {
    grid-template-columns: 1fr;
    gap: 0.72rem;
  }

  .background-details {
    grid-template-columns: 1fr;
  }

  .resume-link {
    width: 100%;
    justify-content: flex-start;
  }
}

@media (max-width: 374px) {
  .site-header {
    padding-inline: 0.75rem;
  }

  .nav-shell,
  .hero,
  .section-grid,
  .updates-preview,
  .idx-preview,
  .updates-page-hero,
  .updates-feed-section,
  .image-feature,
  .home-value-section,
  .neighborhoods,
  .meet-jeff,
  .professional-background,
  .contact-section,
  .site-footer {
    width: calc(100vw - 1.5rem);
  }

  .brand {
    padding-inline: 0.48rem;
  }

  .brand-logo {
    width: 8.7rem;
  }

  .mobile-menu-toggle {
    min-width: 2.75rem;
    min-height: 2.75rem;
    padding: 0.6rem 0.75rem;
  }
}

/* Search-first refinement: retain the established warm black and gold palette. */
.site-header { z-index: 40; }
.nav-shell { position: relative; width: min(1120px, 100%); flex-wrap: wrap; gap: 1rem; }
.nav-shell .brand-logo { width: 12.5rem; height: 2.1rem; }
.search-nav-button { display: inline-flex; align-items: center; justify-content: center; min-width: 0; min-height: 44px; padding: .7rem 1.1rem; border-radius: 999px; background: var(--accent); color: #17140d; font-size: .82rem; font-weight: var(--wsh-font-weight-bold); white-space: nowrap; text-align: center; transition: background .2s; }
.search-nav-button:hover { background: #ecda9e; }
.nav-links { flex-shrink: 0; max-width: 100%; flex-wrap: wrap; margin-left: auto; margin-right: 1.25rem; gap: 1.2rem; }
a:focus-visible, button:focus-visible, summary:focus-visible { outline: 2px solid #efd996; outline-offset: 5px; }
.search-intro, .featured-listings, .background-disclosure { width: min(1120px, calc(100% - 2rem)); margin-inline: auto; }
.search-intro { padding: clamp(2rem, 5vw, 4rem) 0 3rem; text-align: center; }
.search-intro h1 { max-width: 20ch; margin: .8rem auto 1rem; font-size: clamp(2.35rem, 5.3vw, 4.3rem); line-height: 1.08; letter-spacing: -.045em; text-wrap: balance; }
.search-intro-text { color: var(--muted); font-size: 1.02rem; margin-bottom: 1.7rem; }
.search-surface { width: min(100%, 760px); margin: 0 auto; padding: 1.2rem 1.5rem; text-align: left; border: 1px solid rgba(215,182,90,.3); border-radius: 1.1rem; background: #f7f5ef; color: #25251f; box-shadow: 0 18px 60px #0004; }
.search-caption { display: block; font-weight: var(--wsh-font-weight-bold); font-size: .85rem; margin-bottom: .6rem; }
.search-surface bb-widget, .listing-gallery-shell bb-widget, .account-panel bb-widget { display: block; }
.search-surface .idx-widget-loading { color: #45453f; border-color: #c8c5b8; }
.search-shortcuts { display: flex; flex-wrap: wrap; justify-content: center; gap: .3rem 1.5rem; margin: 1rem auto .4rem; }
.search-shortcuts a { display: inline-flex; align-items: center; gap: .65rem; min-height: 44px; font-size: .86rem; color: var(--accent); }
.search-reassurance { max-width: 55ch; margin: .5rem auto 0; color: var(--muted); font-size: .8rem; line-height: 1.6; }
.featured-listings { padding: 2.6rem 0 3.4rem; border-top: 1px solid #ffffff16; }
.section-heading-row { display: flex; justify-content: space-between; align-items: end; gap: 1rem; }
.section-heading-row h2 { margin-bottom: 0; font-size: clamp(1.65rem, 3vw, 2.3rem); max-width: none; }
.section-description { color: var(--muted); max-width: 62ch; margin: .8rem 0 1.5rem; }
.listing-gallery-shell { min-height: 180px; }
.listing-help { color: var(--muted); margin-top: 1rem; font-size: .85rem; }
.listing-help a, .form-note a { text-decoration: underline; text-underline-offset: 3px; }
.background-disclosure { border-block: 1px solid #ffffff20; margin-bottom: 2rem; }
.background-disclosure summary { display: flex; justify-content: space-between; gap: 1rem; cursor: pointer; padding: 1.3rem 0; font-size: .95rem; font-weight: var(--wsh-font-weight-bold); color: var(--accent); }
.background-disclosure .professional-background { width: 100%; padding-block: 1rem 2rem; }
.background-disclosure[open] summary span { transform: rotate(45deg); }
.account-panel { padding: 1.3rem; border: 1px solid #ffffff25; border-radius: 1rem; margin-bottom: 2rem; }
.alert-guide { max-width: 850px; margin: 2rem auto; padding: clamp(1.1rem, 4vw, 2.5rem); border: 1px solid #ffffff20; border-radius: 1.3rem; background: #ffffff04; }
.alert-guide h2 { font-size: 1.8rem; max-width: none; }
.alert-guide p { color: var(--muted); }
.alert-guide ol { padding-left: 1.35rem; margin-block: 1.8rem; }
.alert-guide li { padding-left: .4rem; margin-block: 1.2rem; color: var(--accent); }
.alert-guide strong, .alert-guide li span { display: block; }
.alert-guide li span { color: var(--muted); font-size: .9rem; margin-top: .3rem; }
.account-actions { display: flex; align-items: center; flex-wrap: wrap; gap: 1.2rem; margin-bottom: 1rem; }
.form-status { border: 1px solid #d7b65a70; border-radius: .65rem; padding: .8rem; color: var(--ink); }
.form-status[hidden] { display: none; }
button:disabled { opacity: .65; cursor: not-allowed; }
form[aria-busy="true"] button:disabled { cursor: wait; }
.privacy-settings { display: block; color: var(--muted); background: transparent; border: 0; padding: .8rem 0; min-height: 44px; text-decoration: underline; cursor: pointer; font: inherit; font-size: .8rem; }
.privacy-settings[hidden] { display: none; }
.analytics-choice { position: fixed; z-index: 100; bottom: max(1rem, env(safe-area-inset-bottom)); left: 1rem; right: 1rem; max-width: 470px; padding: 1.2rem; background: #20201b; color: #f5f3ea; border: 1px solid #8e8055; border-radius: 1rem; box-shadow: 0 10px 45px #0008; }
.analytics-choice p { font-size: .88rem; line-height: 1.6; }
.analytics-choice-actions { display: flex; gap: .7rem; flex-wrap: wrap; }
.analytics-choice button { min-height: 44px; border-radius: .55rem; padding: .65rem 1rem; border: 1px solid #d7b65a; background: transparent; color: #f5f3ea; font: inherit; cursor: pointer; }
.analytics-choice button[data-choice="granted"] { background: #d7b65a; color: #17140d; }
@media (max-width: 1100px) {
 .nav-shell { flex-wrap: nowrap; }
 .nav-links { display: none; }
 .mobile-menu-toggle { display: inline-flex; }
 .search-nav-button { margin-left: auto; }
}
@media (max-width: 560px) {
 .site-header { padding: .6rem .65rem; }
 .nav-shell { width: 100%; gap: .5rem; padding: .4rem; }
 .nav-shell .brand { padding: .15rem; min-width: 0; }
 .nav-shell .brand-logo { width: clamp(100px, 31vw, 150px); height: 1.7rem; }
 .search-nav-button { min-width: 0; white-space: normal; padding: .6rem .8rem; font-size: .76rem; }
 .primary-button { padding: min(1rem, 16px) min(1.2rem, 19.2px) min(1rem, 16px) min(1.35rem, 21.6px); gap: min(.7rem, 11.2px); }
 .footer-actions { min-width: 0; }
 .mobile-menu-toggle { width: 44px; min-width: 44px; padding: min(.65rem, 10.4px); flex-shrink: 0; }
 .search-intro { padding-block: 1.6rem 2rem; }
 .search-intro .eyebrow { max-width: 32ch; margin-inline: auto; line-height: 1.7; }
 .search-intro h1 { font-size: clamp(2.1rem, 9vw, 2.8rem); }
 .search-intro-text { font-size: .9rem; max-width: 30ch; margin: 0 auto 1.1rem; }
 .search-surface { padding: .8rem; }
 .search-shortcuts { gap: .1rem .9rem; }
 .search-shortcuts a { font-size: .79rem; }
 .search-reassurance { font-size: .77rem; }
 .section-heading-row { align-items: start; flex-direction: column; }
 .featured-listings { padding-block: 2rem; }
 .section-description { font-size: .9rem; }
 .background-disclosure .professional-background { width: 100%; }
}
.direct-contact, .footer-contact-links { display: flex; flex-wrap: wrap; gap: .5rem 1.4rem; }
.direct-contact { margin-top: 1.2rem; }
.direct-contact a, .footer-contact-links a { display: inline-flex; align-items: center; min-height: 44px; color: var(--accent); font-size: .9rem; }
.footer-contact-links { padding-bottom: 1.1rem; margin-bottom: 1.5rem; border-bottom: 1px solid #ffffff18; }
/* Provider dialogs use light surfaces; preserve readable controls inside them. */
.bfg-modal-wrap .sbtn-link-secondary { color: #34372c !important; background: #f3f1e9 !important; border: 1px solid #a8ab9a !important; min-height: 44px; }
.bfg-modal-wrap .sbtn-link-secondary:focus-visible { outline: 3px solid #69591f; outline-offset: 2px; }
.bfg-modal-wrap .sbtn-link-secondary action, .bfg-modal-wrap .sbtn-link-secondary i { color: inherit !important; }

/* Compact homepage and direct calling, following Jeff's September feedback. */
.call-nav-button { display: inline-flex; align-items: center; justify-content: center; gap: .45rem; flex-shrink: 0; min-height: 44px; padding: .6rem .85rem; color: var(--accent); border: 1px solid #d7b65a70; border-radius: 999px; font-size: .8rem; font-weight: var(--wsh-font-weight-bold); white-space: nowrap; }
.call-nav-button svg { width: 18px; height: 18px; fill: none; stroke: currentColor; stroke-width: 1.7; }
.call-nav-button:hover { background: #d7b65a20; }
.nav-shell { gap: .7rem; }
.nav-shell .brand-logo { width: 10rem; }
.nav-links { gap: 1rem; }
.search-intro { padding-block: clamp(1.4rem, 3vw, 2.6rem) 2rem; }
.search-intro h1 { font-size: clamp(2.3rem, 4.6vw, 3.7rem); }
.search-intro-text { margin-bottom: 1.2rem; }
.search-surface { padding: .75rem 1rem; }
.featured-listings { padding-block: 1.8rem 2.4rem; }
.section-description { margin-bottom: 1rem; }
.listing-strip-footer { display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin-top: .7rem; }
.listing-strip-footer > a { min-height: 44px; display: inline-flex; align-items: center; font-size: .85rem; }
.listing-strip-controls { display: flex; gap: .5rem; }
.listing-strip-controls[hidden] { display: none; }
.listing-strip-controls button { width: 44px; height: 44px; border: 1px solid #d7b65a60; border-radius: 50%; background: transparent; color: var(--accent); font: inherit; font-size: 1.3rem; cursor: pointer; }
.listing-strip-controls button:disabled { opacity: .3; cursor: default; }
@media (max-width: 560px) {
 .nav-shell { gap: .35rem; }
 .call-nav-button { width: 44px; padding: 0; }
 .call-nav-button span { display: none; }
 .nav-shell .brand-logo { width: clamp(75px, 22vw, 120px); }
 .search-nav-button { padding-inline: .65rem; font-size: .72rem; }
 .search-intro { padding-block: 1.3rem 1.6rem; }
 .search-intro h1 { font-size: clamp(2.15rem, 8vw, 2.8rem); }
 .search-intro-text { font-size: .85rem; }
 .section-heading-row { flex-direction: row; align-items: center; }
 .section-heading-row h2 { font-size: 1.4rem; }
 .section-heading-row > a { font-size: .75rem; flex-shrink: 0; }
}
.section-heading-row > .text-link { width: auto; }

/* A quieter editorial hierarchy, with shared spacing and restrained surfaces. */
:root { --heading-font: var(--wsh-font-family, system-ui, sans-serif); }
main h1, main h2 { font-family: var(--heading-font); font-weight: var(--wsh-font-weight-semibold); letter-spacing: -.025em; line-height: 1.13; }
main h2 { max-width: 23ch; font-size: clamp(1.9rem, 3.1vw, 2.65rem); }
.search-intro h1 { font-size: clamp(2.7rem, 5.6vw, 4.6rem); line-height: 1.08; letter-spacing: -.04em; }
.search-intro { padding-block: clamp(2rem, 4vw, 3.6rem) 2.8rem; }
.search-intro-text { line-height: 1.7; margin-bottom: 1.6rem; }
.search-surface { border-radius: 12px; padding: 1.15rem; box-shadow: 0 8px 24px #0002; }
.search-caption { font-size: .78rem; letter-spacing: .025em; margin-bottom: .75rem; }
.section-heading-row h2 { font-size: clamp(1.75rem, 3vw, 2.5rem); }
.meet-jeff, #approach, .home-value-section, .neighborhoods, .updates-preview, .contact-section { padding-block: clamp(3rem, 6vw, 5rem); }
.meet-copy > p, .section-content > p, .home-value-copy > p, .neighborhood-copy > p { line-height: 1.8; max-width: 57ch; }
.portrait-card, .update-card, .service-card, .form-card { box-shadow: none; border-radius: 12px; }
.portrait-image { border-radius: 8px; }
.primary-button, .secondary-button, .contact-form button, .home-value-form button { border-radius: 8px; min-height: 48px; box-shadow: none; }
.updates-preview { align-items: center; gap: clamp(2rem, 5vw, 4rem); }
.updates-preview .update-card-featured { grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); padding: 0; border-radius: 12px; overflow: hidden; background: #191814; box-shadow: none; }
.updates-preview .update-card-body { padding: 1.4rem; }
.updates-preview .update-card-body h3 { font-size: 1.15rem; line-height: 1.4; }
.updates-preview .update-card-body > p { font-size: .88rem; line-height: 1.7; }
.updates-preview-copy h2 { max-width: 22ch; }
@media(max-width:560px) {
 .search-intro h1 { font-size: clamp(2.5rem, 10vw, 3.4rem); }
 .search-intro { padding-block: 1.8rem 2rem; }
 .search-surface { padding: .9rem; }
 .section-heading-row { flex-wrap: wrap; gap: .65rem; }
 .section-heading-row h2 { font-size: 1.85rem; }
 .section-heading-row > a { min-height: 44px; display: inline-flex; align-items: center; }
 .updates-preview .update-card-featured { grid-template-columns: minmax(0,1fr); }
 .updates-preview .update-card-body { padding: 1.2rem; }
 main h2 { font-size: 2rem; }
}

/* Tonal dark surfaces integrate search and provider disclosures with the brand. */
.search-intro h1 { font-size: clamp(2.6rem, 5vw, 4rem); letter-spacing: -.055em; line-height: 1.12; }
.search-surface { background: #191a17; color: #f2f0e8; border: 1px solid #ffffff20; box-shadow: 0 12px 36px #0002; padding: 1.2rem; }
.search-caption { color: #c5c4bb; font-weight: var(--wsh-font-weight-medium); }
.search-surface .idx-widget-loading { color: #c5c4bb; border-color: #ffffff20; }
.mls-disclaimer { max-width: 960px; background: transparent; border-radius: 0; box-shadow: none; text-align: left; }
@media(max-width:560px) { .search-intro h1 { font-size: clamp(2.4rem, 9vw, 3.1rem); } }

/* Final brand, photography and footer details. */
.nav-shell .brand { background: transparent; border: 0; box-shadow: none; padding: .3rem .45rem; }
.brand-wordmark { display: inline-block; color: #f0ede3; font-family: var(--wsh-font-family, system-ui, sans-serif); font-size: 1.15rem; font-weight: var(--wsh-font-weight-bold); letter-spacing: -.055em; line-height: 1.2; white-space: nowrap; }
.brand-wordmark > span { color: #d7bd70; }
.brand-wordmark small { font-size: .65em; font-weight: var(--wsh-font-weight-medium); letter-spacing: -.025em; color: #b8b7ad; }
.portrait-card, .approach-photo { padding: 6px; border: 1px solid #ffffff1c; border-radius: 14px; background: #191a17; box-shadow: none; overflow: hidden; }
.portrait-card picture { display: block; overflow: hidden; border-radius: 9px; }
.portrait-image, .approach-photo img { filter: saturate(.88) contrast(1.03); }
.approach-photo img { width: 100%; height: auto; aspect-ratio: 3 / 2; object-fit: cover; border-radius: 9px; }
.approach-photo figcaption { padding: .85rem .6rem .45rem; color: #c2c2b7; font-size: .8rem; line-height: 1.6; }
.footer-contact-links { align-items: center; padding-bottom: 1.5rem; margin-bottom: 2rem; }
.footer-group-label { display: block; color: #c9bb8c; font-size: .68rem; font-weight: var(--wsh-font-weight-bold); letter-spacing: .12em; text-transform: uppercase; }
.footer-contact-links > .footer-group-label { flex-basis: 100%; }
.footer-main { align-items: start; gap: 2rem 4rem; }
.footer-actions { grid-template-columns: auto auto; align-items: start; justify-items: start; gap: 3rem; }
.footer-links { display: grid; justify-content: start; gap: .2rem; }
.footer-social { display: grid; justify-content: start; gap: .75rem; }
.footer-links a { justify-self: start; min-height: 36px; border-bottom: 0; }
.footer-compliance { width: 100%; margin-top: 2.5rem; padding-top: 2rem; }
.footer-compliance-label { text-align: left; }
.mls-disclaimer { max-width: none; }
@media(max-width:720px) { .footer-main { flex-direction: column; align-items: stretch; } .footer-actions { width: 100%; grid-template-columns: 1fr 1fr; gap: 1rem; } }
@media(max-width:560px) { .nav-shell .brand { padding: .2rem 0; flex-shrink: 1; } .brand-wordmark { font-size: clamp(.72rem, 3.1vw, 1rem); letter-spacing: -.055em; } .brand-wordmark small { display: none; } .footer-contact-links { column-gap: 1.3rem; } }

/* Reuse the house emblem from Jeff's original artwork, alongside the crisp wordmark. */
.brand-house { display: inline-block; flex: 0 0 30px; width: 30px; height: 30px; border-radius: 50%; background-image: url('/assets/brand/west-sac-homes-site-logo.png'); background-repeat: no-repeat; background-size: 720px auto; background-position: center -73px; }
.brand { gap: .45rem; }
@media(max-width:560px) { .nav-shell .brand { gap: .25rem; } .brand-house { flex-basis: 22px; width: 22px; height: 22px; background-size: 540px auto; background-position: center -55px; } .nav-shell .brand-wordmark { font-size: clamp(.65rem, 2.65vw, .9rem); } }

/* A quiet homepage with three clear destinations. */
.welcome-home {
  max-width: 960px;
  margin: 0 auto;
  padding: clamp(60px, 8vw, 108px) 0 64px;
  text-align: center;
}
.welcome-home h1, .destination-intro h1 {
  font-family: var(--wsh-font-family, system-ui, sans-serif);
  font-size: clamp(2.35rem, 5.2vw, 4.5rem);
  font-weight: var(--wsh-font-weight-medium);
  line-height: 1.12;
  letter-spacing: -.045em;
  max-width: none;
  width: auto;
  margin: 22px auto;
}
.welcome-subtitle, .destination-intro > p:last-child {
  max-width: 640px;
  margin: 0 auto;
  color: var(--muted);
  line-height: 1.7;
}
.home-pathways {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 18px;
  margin: 44px auto 0;
  max-width: 800px;
}
.home-pathways a {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  min-height: 78px;
  padding: 20px 24px;
  border: 1px solid #d7b65a66;
  border-radius: 5px;
  color: var(--ink);
  background: #ffffff03;
  font-size: 1.1rem;
  text-decoration: none;
  transition: background .18s, border-color .18s;
}
.home-pathways a:hover, .home-pathways a:focus-visible {
  background: #d7b65a12;
  border-color: #d7b65a;
}
.home-pathways svg { width: 21px; height: 21px; fill: none; stroke: #d7b65a; stroke-width: 1.5; flex-shrink: 0; }
.home-page .featured-listings { margin-top: 0; }
.destination-intro { max-width: 840px; margin: 0 auto; padding: 72px 0 32px; text-align: center; }
.destination-intro { padding-inline: var(--page-gutter); }
.destination-page .search-intro { padding-top: 32px; }
.destination-page .search-intro h2 { max-width: none; margin-inline: auto; font-size: clamp(1.7rem, 3vw, 2.5rem); }
.destination-link { text-align: center; margin: 0 0 48px; }
.destination-page .contact-section, .destination-page .home-value-section { margin-top: 36px; }
@media (max-width: 600px) {
  .welcome-home { padding: 44px 0 40px; }
  .welcome-home h1 { font-size: clamp(2rem, 8.7vw, 3rem); }
  .home-pathways { grid-template-columns: 1fr; gap: 10px; max-width: 400px; margin-top: 30px; }
  .home-pathways a { min-height: 60px; padding: 16px 20px; }
  .destination-intro { padding: 42px var(--page-gutter) 20px; }
}

/* The home hero shares the same navigation shell as interior pages. */
.home-page .site-header { position: fixed; inset: 0 0 auto; }
.home-page .site-header.is-scrolled { background-color: #080807; }
.home-page .welcome-home {
  position: relative; isolation: isolate; width: 100%; max-width: none; margin: 0;
  min-height: 100svh;
  display: grid; place-items: center; padding: 140px 24px 80px; color: #fff;
}
.welcome-background { position: absolute; inset: 0; z-index: -2; overflow: hidden; }
.welcome-background img { width: 100%; height: 100%; object-fit: cover; object-position: 54% 55%; }
.home-page .welcome-home::before { content: ''; position: absolute; inset: 0; z-index: -1; background: linear-gradient(180deg,rgba(4,4,4,.7),rgba(4,4,4,.36) 45%,rgba(4,4,4,.57)); }
.welcome-content { min-width: 0; width: min(100%, 900px); overflow-wrap: anywhere; }
.home-page .welcome-home h1 { font-family: var(--wsh-font-family, system-ui, sans-serif); font-size: clamp(3.3rem, 7vw, 6.2rem); font-weight: var(--wsh-font-weight-normal); letter-spacing: -.025em; line-height: 1.02; color: #fff; text-wrap: balance; margin: 26px auto; }
.home-page .welcome-home .eyebrow { color: #fff; font-size: .7rem; letter-spacing: .19em; }
.home-page .welcome-subtitle { color: #fff; font-size: .95rem; max-width: 500px; }
.hero-actions { display: flex; justify-content: center; gap: 16px; margin-top: 36px; }
.hero-actions a { display: inline-flex; justify-content: center; align-items: center; min-width: 220px; min-height: 56px; padding: 16px 24px; font-size: .8rem; font-weight: var(--wsh-font-weight-semibold); letter-spacing: .09em; text-transform: uppercase; border: 1px solid #fff; border-radius: 0; text-decoration: none; transition: background .18s, color .18s; }
.hero-search { background: #f6f2e9; color: #18221b; }
.hero-question { background: rgba(9,20,13,.2); color: #fff; }
.hero-actions a:hover { background: #d7b65a; color: #111; border-color: #d7b65a; }
.home-page .home-pathways { width: min(100% - 40px, 1000px); margin: 0 auto; padding: 36px 0; gap: 0; }
.home-page .home-pathways a { background: none; border: 0; border-right: 1px solid var(--line); border-radius: 0; padding: 16px 36px; min-height: 64px; }
.home-page .home-pathways a:last-child { border-right: 0; }
.home-page .home-pathways a:hover { background: #ffffff06; }
.home-page .featured-listings h2 { font-family: var(--wsh-font-family, system-ui, sans-serif); font-weight: var(--wsh-font-weight-semibold); font-size: clamp(2rem,3.2vw,3rem); }
.photo-credit { font-size: .7rem; color: var(--muted); text-align: center; margin: 20px auto; }
@media (max-width: 600px) {
 .home-page .welcome-home { min-height: 700px; min-height: 100svh; padding: 118px 24px 54px; }
 .home-page .welcome-home h1 { font-size: clamp(2.9rem, 12vw, 4rem); line-height: 1.04; }
 .home-page .welcome-home .eyebrow { max-width: 260px; margin-inline: auto; line-height: 1.8; }
 .home-page .welcome-subtitle { max-width: 290px; font-size: .85rem; }
 .hero-actions { flex-direction: column; max-width: 290px; margin: 30px auto 0; gap: 12px; }
 .hero-actions a { width: 100%; min-width: 0; }
 .home-page .home-pathways { padding: 20px 0; }
 .home-page .home-pathways a { border-right: 0; border-bottom: 1px solid var(--line); padding: 18px 8px; }
 .home-page .home-pathways a:last-child { border-bottom: 0; }
}
@media (max-height: 500px) and (min-width: 601px) {
 .home-page .welcome-home { min-height: 520px; }
}

/* Quiet monochrome welcome and compact footer navigation. */
.welcome-background img { filter: grayscale(1); }
.welcome-subtitle p { margin: 0; }
.welcome-subtitle p + p { margin-top: .35rem; }
.footer-explore { min-width: 180px; width: 100%; border-block: 1px solid var(--line); }
.footer-explore summary { display: flex; align-items: center; justify-content: space-between; gap: 24px; min-height: 48px; padding: 12px 0; cursor: pointer; color: var(--ink); font-size: 1rem; list-style: none; }
.footer-explore summary::-webkit-details-marker { display: none; }
.footer-explore summary span { color: var(--accent); font-size: 1.25rem; transition: transform .15s; }
.footer-explore[open] summary span { transform: rotate(45deg); }
.footer-explore .footer-links { padding: 0 0 12px; gap: 0; }
.footer-explore .footer-links a { min-height: 44px; align-items: center; width: 100%; }
.footer-explore summary:focus-visible { outline: 2px solid var(--accent); outline-offset: 4px; }
.footer-actions { grid-template-columns: auto minmax(180px, 220px); gap: 36px; align-items: start; }
@media (max-width: 720px) {
 .footer-main { gap: 24px; }
 .footer-actions { grid-template-columns: 1fr; gap: 24px; }
 .footer-social { display: flex; align-items: center; justify-content: space-between; width: 100%; }
 .footer-explore { min-width: 0; }
}

.footer-contact-links { display: grid; grid-template-columns: 96px minmax(0,1fr); gap: 24px; align-items: center; }
.footer-portrait { display: block; width: 96px; height: 120px; object-fit: contain; border-radius: 6px; }
.footer-contact-copy { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 24px; }
.footer-contact-copy > .footer-group-label { flex-basis: 100%; margin-bottom: 4px; }
@media(max-width:560px) {
 .footer-contact-links { grid-template-columns: 80px minmax(0,1fr); gap: 18px; }
 .footer-portrait { width: 80px; height: 100px; }
 .footer-contact-copy { display: grid; gap: 0; justify-items: start; }
 .footer-contact-copy .footer-group-label { line-height: 1.5; }
}

/* Jeff’s signature replaces the hero eyebrow without an image backing. */
.hero-signature { display: block; width: clamp(230px, 30vw, 360px); max-width: 100%; height: auto; margin: 0 auto; clip-path: inset(1px); }

/* Portrait welcome and compact navigation. */
.home-page .hero-signature { width: clamp(240px, 29vw, 330px); clip-path: inset(1px); }
.home-page .welcome-home h1 { font-size: clamp(2.5rem, 5.3vw, 4.6rem); line-height: 1.14; margin: 22px auto; }
.home-page .welcome-subtitle { color: #f2d465; font-size: 1.1rem; }
.header-explore { position: relative; grid-column: 3; justify-self: end; }
.header-explore summary { display: grid; place-items: center; width: 48px; height: 48px; cursor: pointer; list-style: none; color: white; }
.header-explore summary::-webkit-details-marker { display: none; }
.hamburger { display: grid; gap: 6px; width: 25px; }
.hamburger i { display: block; height: 2px; width: 100%; background: currentColor; }
.header-explore .footer-links { position: absolute; right: 0; top: 56px; width: 230px; max-height: calc(100svh - 120px); overflow-y: auto; padding: 16px; background: #151512; border: 1px solid #ffffff26; display: grid; grid-template-columns: minmax(0, 1fr); justify-content: stretch; gap: 0; box-shadow: 0 12px 32px #0006; }
.header-explore .footer-links a { width: 100%; min-height: 44px; display: flex; align-items: center; justify-self: stretch; padding: 10px 12px; border-left: 2px solid transparent; border-radius: 4px; }
.header-explore .footer-links a:hover,
.header-explore .footer-links a:focus-visible { background: rgba(215, 182, 90, .18); border-left-color: #d7b65a; color: #f4df9b; }
.header-explore .footer-links a:focus-visible { outline: 2px solid #d7b65a; outline-offset: -2px; }
.header-explore summary:focus-visible { outline: 2px solid #f2d465; outline-offset: 3px; }
@media(max-width:600px) {
 .home-page .welcome-home h1 { font-size: clamp(2rem, 8.5vw, 3.2rem); }
 .home-page .welcome-subtitle { font-size: 1rem; }
 .home-page .hero-signature { width: 260px; }
}

/* Keep homepage controls and pathway layout consistent at every width. */
.home-page .home-pathways { grid-template-columns: repeat(3, minmax(0, 1fr)); max-width: 1000px; }
.home-page .home-pathways a { justify-content: center; text-align: center; }
@media(max-width:600px) {
 .hero-actions { flex-direction: row; max-width: 460px; gap: 12px; }
 .hero-actions a { flex: 1; padding: 14px 8px; font-size: .65rem; letter-spacing: .04em; }
 .home-page .home-pathways a { border-bottom: 0; border-right: 1px solid var(--line); font-size: .85rem; padding: 14px 5px; min-height: 52px; }
 .home-page .home-pathways a:last-child { border-right: 0; }
}

.home-page .listing-strip-controls { display: none; }

/* Keep the revised portrait balanced above the headline. */
.home-page .hero-signature { height: clamp(180px, 18vw, 210px); object-fit: contain; transform: translateY(-18px); }

/* Display the entire supplied canvas, including both lower swooshes. */
.home-page .hero-signature { width: min(510px, 100%); height: auto; clip-path: none; object-fit: contain; }

/* Transparent hero artwork must not inherit the site-wide photo outline. */
.home-page .hero-signature { outline: none; }

/* Compact, keyboard-accessible disclosure on desktop and mobile. */
.footer-compliance > summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  min-height: 44px;
  margin: 0;
  cursor: pointer;
  list-style: none;
}
.footer-compliance > summary::-webkit-details-marker { display: none; }
.footer-compliance > summary::after { content: '+'; font-size: 1.25rem; }
.footer-compliance[open] > summary::after { content: '−'; }
.footer-compliance > summary:focus-visible { outline: 2px solid #d7b857; outline-offset: 4px; }
.footer-compliance[open] .mls-disclaimer { margin-top: 1.5rem; }

/* Search-first homepage and area guide. */
.home-search-section { width: min(100% - 2rem, 1120px); margin: 0 auto; padding: clamp(2.5rem, 5vw, 4rem) 0; display: grid; grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr); gap: clamp(1.5rem, 4vw, 4rem); align-items: center; border-bottom: 1px solid var(--line); }
.home-search-copy h2 { margin: .5rem 0 1rem; font-size: clamp(2rem, 4vw, 3rem); line-height: 1.12; }
.home-search-copy p:last-child { color: var(--muted); max-width: 42ch; }
.home-search-section .search-surface { width: 100%; }
.search-surface { display: grid; }
.search-surface > .search-caption { grid-area: 1 / 1; }
.search-surface > bb-widget[data-type="QuickSearch"] { display: block; grid-area: 2 / 1; min-height: 86px; }
.search-surface > [data-idx-widget-loading] { grid-area: 2 / 1; align-self: center; pointer-events: none; }
@media (max-width: 560px) {
  .search-surface > bb-widget[data-type="QuickSearch"] { min-height: 150px; }
}

/* The MLS price selector is portaled outside its widget shadow root. */
#MBBv3_PriceSelect_popout .bfg-input-options-wrap {
  border: 1px solid #676149 !important;
  border-radius: 8px !important;
  background: #20221d !important;
  color: #f2f0e8 !important;
  box-shadow: 0 18px 36px #0008 !important;
}
#MBBv3_PriceSelect_popout .bfg-price-divider { color: #c3bfb2 !important; }
#MBBv3_PriceSelect_popout .bfg-price-sub-input {
  min-height: 36px;
  border: 1px solid #777052 !important;
  border-radius: 5px !important;
  background: #2b2e27 !important;
  color: #f2f0e8 !important;
}
#MBBv3_PriceSelect_popout .bfg-price-sub-input::placeholder { color: #c3bfb2 !important; }
#MBBv3_PriceSelect_popout .bfg-input-option-list li {
  border-radius: 4px;
  color: #f2f0e8 !important;
}
#MBBv3_PriceSelect_popout .bfg-input-option-list li:hover,
#MBBv3_PriceSelect_popout .bfg-input-option-list li:focus {
  background: #34382d !important;
  color: #f4df9b !important;
}
.neighborhood-tags a { text-decoration: none; transition: border-color .18s, background .18s; }
.neighborhood-tags a:hover, .neighborhood-tags a:focus-visible { border-color: var(--accent); background: rgba(215, 182, 90, .14); }
.area-guide-page { width: min(100% - 2rem, 1120px); margin: 0 auto; }
.area-guide-intro { padding-bottom: clamp(2.5rem, 5vw, 4rem); }
.area-guide-intro h1 { max-width: 17ch; margin-inline: auto; }
.area-search { display: grid; grid-template-columns: minmax(0, .82fr) minmax(0, 1.18fr); gap: clamp(1.5rem, 4vw, 4rem); align-items: center; padding: clamp(2rem, 5vw, 4rem); border: 1px solid var(--line); border-radius: 18px; background: #151612; }
.area-search h2 { margin: .45rem 0 1rem; font-size: clamp(1.8rem, 3vw, 2.6rem); }
.area-search p:last-child { color: var(--muted); }
.area-search .search-surface { width: 100%; }
.area-search .search-surface { padding: 0; border: 0; background: transparent; box-shadow: none; }
.area-jump-links { display: flex; flex-wrap: wrap; gap: .65rem; padding: 2rem 0; }
.area-jump-links a { display: inline-flex; align-items: center; min-height: 44px; padding: .55rem .9rem; color: var(--ink); border: 1px solid var(--line); border-radius: 999px; text-decoration: none; font-size: .85rem; }
.area-jump-links a:hover, .area-jump-links a:focus-visible { border-color: var(--accent); color: var(--accent); }
.area-guide-list { padding: clamp(2rem, 5vw, 4rem) 0; border-top: 1px solid var(--line); }
.area-guide-heading { max-width: 660px; margin-bottom: 2rem; }
.area-guide-heading h2, .area-guide-resources h2, .area-guide-contact h2 { margin: .5rem 0 1rem; font-size: clamp(1.8rem, 3vw, 2.8rem); }
.area-guide-heading p:last-child, .area-guide-resources p, .area-guide-contact p { color: var(--muted); }
.area-guide-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; }
.area-guide-card { display: flex; flex-direction: column; min-width: 0; padding: clamp(1.4rem, 3vw, 2rem); border: 1px solid var(--line); border-radius: 16px; background: #151612; }
.area-guide-card[id] { scroll-margin-top: 12rem; }
.area-guide-number { color: var(--accent); font-size: .75rem; letter-spacing: .18em; }
.area-guide-card h3 { margin: 1rem 0 .65rem; font-size: clamp(1.3rem, 2vw, 1.7rem); }
.area-guide-card p { flex: 1; color: var(--muted); line-height: 1.65; }
.area-guide-card .text-link { align-self: flex-start; margin-top: 1rem; }
.area-guide-search-links { display: flex; flex-wrap: wrap; gap: .15rem 1.25rem; margin-top: 1rem; }
.area-guide-search-links .text-link { margin-top: .25rem; }
.area-guide-resources, .area-guide-contact { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: clamp(1.5rem, 4vw, 4rem); padding: clamp(2.5rem, 5vw, 4rem) 0; border-top: 1px solid var(--line); }
.area-guide-resources ul { margin: 0; padding: 0; list-style: none; }
.area-guide-resources li + li { border-top: 1px solid var(--line); }
.area-guide-resources a { display: flex; align-items: center; min-height: 52px; color: var(--ink); text-decoration: none; }
.area-guide-resources a:hover { color: var(--accent); }
.area-guide-contact { grid-template-columns: minmax(0, 38rem) auto; align-items: center; justify-content: start; }
.area-guide-contact .primary-button { justify-self: start; }

/* Seller service details. */
.seller-process { width: min(100% - 2rem, 1120px); margin: 0 auto; padding: clamp(2.5rem, 6vw, 5rem) 0; border-top: 1px solid var(--line); }
.seller-process-intro { max-width: 680px; }
.seller-process-intro h2 { margin: .5rem 0 1rem; font-size: clamp(2rem, 4vw, 3rem); }
.seller-process-intro p:last-child { color: var(--muted); }
.seller-process-steps { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem; margin: 2rem 0; padding: 0; list-style: none; }
.seller-process-steps li { padding: clamp(1.3rem, 2.5vw, 2rem); border: 1px solid var(--line); border-radius: 14px; background: #151612; }
.seller-process-steps .step-number { color: var(--accent); font-size: .8rem; letter-spacing: .14em; }
.seller-process-steps h3 { margin: 1rem 0 .5rem; font-size: 1.25rem; }
.seller-process-steps p, .seller-credentials p { color: var(--muted); line-height: 1.65; }
.seller-credentials { display: flex; flex-direction: column; align-items: flex-start; max-width: 760px; padding: 1.5rem 0 0; }
.seller-credentials strong { font-size: 1.1rem; }
.seller-credentials .text-link { margin-top: .5rem; }

@media (max-width: 760px) {
  .home-search-section, .area-search, .area-guide-resources, .area-guide-contact { grid-template-columns: 1fr; }
  html { scroll-padding-top: 5.5rem; }
  main[id], section[id], article[id], :is(h1, h2, h3)[id] { scroll-margin-top: 2.5rem; }
  .area-guide-card[id] { scroll-margin-top: 3.5rem; }
  .area-guide-grid { grid-template-columns: 1fr; }
  .seller-process-steps { grid-template-columns: 1fr; }
  .area-guide-contact .primary-button { justify-self: start; }
}
@media (max-width: 560px) {
  .home-search-section { padding-block: 2rem; }
  .area-search { padding: 1.2rem; }
  .area-jump-links { gap: .45rem; }
  .area-jump-links a { font-size: .78rem; }
}

/* Shared navigation geometry, including a readable mark on phones. */
.site-header, .home-page .site-header { padding: 16px 20px; }
.nav-shell, .home-page .nav-shell {
  width: min(1120px, 100%);
  display: flex;
  flex-wrap: nowrap;
  gap: 16px;
  padding: 12px;
}
.nav-shell .brand { min-width: 0; flex-shrink: 1; padding: 0; background: transparent; }
.search-nav-button { flex-shrink: 0; }
.nav-shell .brand-logo { width: 220px; height: auto; max-width: 100%; }
.nav-links { margin-right: 0; gap: 4px; }
.nav-links a { padding-inline: 10px; white-space: nowrap; }
.mobile-menu-toggle { flex-shrink: 0; }
@media (max-width: 1100px) {
  .nav-shell .brand { margin-right: auto; }
  .search-nav-button { margin-left: 0; }
}
@media (max-width: 600px) {
  .site-header, .home-page .site-header { padding: 12px; }
  .nav-shell, .home-page .nav-shell { display: grid; grid-template-columns: 44px minmax(0, 1fr) 44px; gap: 8px; padding: 6px 8px; }
  .nav-shell .brand { margin: 0; }
  .nav-shell .brand-logo { width: 220px; height: auto; }
  .search-nav-button { display: none; }
  .mobile-menu-toggle { width: 44px; height: 44px; padding: 10px; }
  .mobile-menu-toggle-label { position: absolute; width: 1px; height: 1px; padding: 0; clip-path: inset(50%); overflow: hidden; white-space: nowrap; }
  .mobile-menu { max-height: calc(100dvh - 104px); }
}
/* Prioritize the live search controls and results over introductory copy. */
.results-page .idx-page { padding-top: 24px; }
.results-page .idx-page-heading { max-width: none; margin-bottom: 20px; }
.results-page .idx-page-heading h1 { max-width: none; font-size: clamp(1.6rem, 3vw, 2rem); line-height: 1.2; margin: 8px 0; text-wrap: pretty; }
.results-page .idx-page-heading .eyebrow { margin: 0; }
.results-page .idx-page-heading > p:last-of-type { line-height: 1.5; font-size: .95rem; }
.results-page .idx-jump-link { margin-top: 8px; min-height: 32px; }
.results-page .idx-page { width: min(1240px, calc(100% - 2rem)); }
.results-page .idx-widget-shell { padding: 0; border: 0; border-radius: 0; background: transparent; box-shadow: none; }
.results-page .idx-page-heading { margin-bottom: 12px; }
.results-page .idx-page-heading > p.eyebrow { color: var(--accent); font-size: 11px; line-height: 16px; letter-spacing: .15em; }
.results-page .idx-page-heading h1 { font-size: clamp(26px, 2.1vw, 30px); font-weight: 600; letter-spacing: -.025em; }
.results-page .results-contact-skip { position: absolute; width: 1px; height: 1px; min-height: 0; padding: 0; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
.results-page .results-contact-skip:focus { position: static; width: auto; height: auto; min-height: 44px; clip-path: none; }
.wsh-results-resume { display: flex; align-items: center; gap: 4px; min-height: 44px; max-width: 100%; padding: 0; border: 0; background: transparent; color: var(--muted); font-size: 12px; line-height: 18px; text-align: left; cursor: pointer; }
.wsh-results-resume strong { color: var(--accent); font-weight: 500; overflow-wrap: anywhere; }
.wsh-results-resume:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; border-radius: 4px; }
.wsh-results-resume:disabled { opacity: .65; cursor: default; }
.wsh-results-resume[hidden] { display: none; }
/* One opening alongside the original, unchanged inquiry form. */
.contact-page .contact-section { margin-top: 0; padding-block: 32px 64px; border-top: 0; }
.contact-page .contact-intro h1 { margin: 0; max-width: 18ch; font-size: clamp(2rem, 4vw, 3rem); line-height: 1.12; }
.contact-page .contact-intro > p { margin: 0; }
.contact-page .direct-contact { display: flex; flex-wrap: wrap; gap: 8px 20px; }
.contact-page .direct-contact a { display: inline-flex; align-items: center; min-height: 44px; }
@media (max-width: 720px) {
  .contact-page .contact-section { grid-template-columns: minmax(0, 1fr); gap: 24px; padding-top: 20px; }
  .contact-page .contact-intro h1 { max-width: none; }
}

/* Use the same gold primary action across the hero, inquiry, and valuation forms. */
.hero-actions .hero-search { background: var(--accent); border-color: var(--accent); color: var(--button-ink); }
.hero-actions .hero-search:hover { background: #ecda9e; border-color: #ecda9e; }
.contact-card button, .value-card button { border-radius: 8px; }

/* A quiet route highlight; hover brightens text without adding another line. */
.nav-links a, .mobile-menu a {
  text-decoration: none;
  transition: color 160ms var(--ease-out), background-color 160ms var(--ease-out);
}
.nav-links a { border-radius: 999px; }
.nav-links { position: relative; isolation: isolate; }
.nav-links::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: var(--nav-wash-width, 0px);
  height: var(--nav-wash-height, 0px);
  transform: translate(var(--nav-wash-x, 0px), var(--nav-wash-y, 0px));
  border-radius: 999px;
  background-color: rgba(215, 182, 90, 0.07);
  opacity: 0;
  pointer-events: none;
  z-index: -1;
  transition: opacity 160ms var(--ease-out);
}
.nav-links.nav-wash-travel::before {
  transition: opacity 160ms var(--ease-out), transform 180ms var(--ease-out), width 180ms var(--ease-out);
}
.nav-links[data-nav-wash-visible="true"]::before { opacity: 1; }
.nav-links a:hover, .mobile-menu a:hover { color: var(--ink); }
.nav-links a:is([aria-current="page"], [aria-current="true"]),
.mobile-menu a:is([aria-current="page"], [aria-current="true"]) {
  color: var(--accent);
  background-color: rgba(215, 182, 90, 0.14);
}
@media (prefers-reduced-motion: reduce) {
  .nav-links a, .mobile-menu a, .nav-links::before { transition: none !important; }
}

/* One small gold eyebrow scale. */
.contact-intro > .eyebrow, .meet-copy > .eyebrow, .background-copy > .eyebrow {
  color: var(--accent); font-size: var(--eyebrow-size); font-weight: var(--wsh-font-weight-bold);
  line-height: 1.5; letter-spacing: .16em; text-transform: uppercase;
}
.destination-page .home-value-copy h2, .seller-process-intro h2 { font-size: var(--section-heading-size); line-height: 1.13; }

/* F21: Retain Back and contact, without another large CTA or nested frame on
   the standalone mobile first impression. Summary facts keep their own scale. */
@media (max-width: 767px) {
  .idx-details-page { padding-top: 8px; }
  .idx-details-page .idx-detail-actions { margin-bottom: 8px; gap: 12px; flex-direction: row; align-items: center; justify-content: space-between; flex-wrap: nowrap; }
  .idx-details-page .idx-detail-actions a { min-height: 44px; margin: 0; display: inline-flex; align-items: center; font-size: .82rem; }
  .idx-details-page .idx-detail-actions [data-property-inquiry] {
    width: auto; flex: 0 1 auto; padding: 0; border: 0; background: transparent; color: var(--accent); box-shadow: none;
    text-decoration: underline; text-underline-offset: .3em;
  }
  .idx-details-page .idx-detail-actions [data-property-inquiry] > .button-icon { display: none; }
  .idx-details-page .idx-widget-shell { padding: 0; border: 0; border-radius: 0; background: transparent; box-shadow: none; }
}

/* Group informational sections with spacing; retain control and card boundaries. */
:is(.hero, .section-grid, .updates-preview, .updates-page-hero, .updates-feed-section,
  .home-value-section, .neighborhoods, .meet-jeff, .contact-section, .idx-preview,
  .featured-listings, .area-guide-list, .area-guide-resources, .area-guide-contact,
  .seller-process, .site-footer) { border-top: 0; }
.home-search-section, .footer-contact-links { border-bottom: 0; }
.home-page .home-pathways a { border: 0; }
.area-guide-resources li + li { border-top: 0; }

/* Keep the native price editor and option callbacks inside the visible viewport. */
#MBBv3_PriceSelect_popout .bfg-input-options-wrap.wsh-filter-panel {
  width: 100% !important; max-height: var(--wsh-menu-max-height, 50dvh) !important;
  overflow-y: auto; overscroll-behavior: contain; border-color: var(--wsh-line) !important;
  border-radius: 10px !important; background: var(--wsh-panel) !important; color: var(--wsh-text) !important;
}
#MBBv3_PriceSelect_popout .bfg-price-sub-input { box-sizing: border-box; width: 100%; min-height: 44px; font: 16px/1.4 system-ui,sans-serif; background: var(--wsh-field) !important; border-color: var(--wsh-line) !important; color: var(--wsh-text) !important; }
#MBBv3_PriceSelect_popout .bfg-input-option-list { padding: 6px !important; margin: 0 !important; }
#MBBv3_PriceSelect_popout .bfg-input-option-list li { min-height: 44px; padding: 10px 12px !important; font: 16px/1.4 system-ui,sans-serif; color: var(--wsh-text) !important; }
#MBBv3_PriceSelect_popout .bfg-input-option-list li:is(:hover,:focus-visible) { background: #d7b65a20 !important; color: var(--wsh-gold) !important; }
#MBBv3_PriceSelect_popout#MBBv3_PriceSelect_popout .mbb-form-search { padding: 0 !important; margin: 0 !important; }
#MBBv3_PriceSelect_popout#MBBv3_PriceSelect_popout .bfg-input-options-wrap.wsh-filter-panel { position: static !important; inset: auto !important; width: 100% !important; min-width: 0 !important; margin: 0 !important; }
#MBBv3_PriceSelect_popout#MBBv3_PriceSelect_popout .bfg-price-sub-input { font-size: 16px !important; }
#MBBv3_PriceSelect_popout#MBBv3_PriceSelect_popout .bfg-input-options-wrap.wsh-filter-panel { max-width: none !important; }
#MBBv3_PriceSelect_popout .bfg-input-option-list { padding-bottom: max(6px, env(safe-area-inset-bottom)) !important; }

/* One button family (design brief §2): same height, corners, type and padding
   for every primary and secondary action, wherever it appears. */
.primary-button, .secondary-button, .contact-card button, .value-card button,
.contact-form button, .home-value-form button, .update-button, .update-card-actions .update-button {
  min-height: 48px;
  border-radius: 8px;
  padding: 12px 20px;
  font-size: 14px;
  line-height: 1.4;
}
.update-card-actions .update-button { white-space: nowrap; }

/* Detail consistency pass (October 13, 2026): one size per heading role.
   Page titles: Connect, Saved homes and Updates match Buyers, Sellers,
   Neighborhoods and About. (Privacy, Thank you and 404 stay compact by design;
   the results page keeps its compact title above the search.) */
.contact-page .contact-intro h1,
body:not(.results-page) .idx-page-heading h1,
.updates-page-hero h1 {
  font-size: clamp(2.35rem, 5.2vw, 4.5rem);
  font-weight: var(--wsh-font-weight-medium, 500);
  letter-spacing: -.045em;
  line-height: 1.08;
}
/* Section headings: one size everywhere. */
.home-search-copy h2, .home-page .featured-listings h2, .destination-page .search-intro h2,
.area-search h2, .area-guide-heading h2, .area-guide-resources h2, .area-guide-contact h2, .alert-guide h2 {
  font-size: var(--section-heading-size);
  letter-spacing: -.025em;
}
/* Small labels above headings are always gold, at one size. */
.area-guide-heading .eyebrow, .area-guide-resources .eyebrow, .area-guide-contact .eyebrow, .alert-guide .eyebrow { color: var(--accent); }
.results-page .idx-page-heading > p.eyebrow { font-size: .72rem; letter-spacing: .16em; }
/* Card titles: small feature and step cards share one size; content cards share another. */
.background-details h3, .service-list h3, .seller-process-steps h3 { font-size: 1.25rem; }
.area-guide-card h3, .update-card-body h3 { font-size: clamp(1.2rem, 2vw, 1.62rem); }
@media (max-width: 767px) {
  .home-search-copy h2, .home-page .featured-listings h2, .destination-page .search-intro h2,
  .area-search h2, .area-guide-heading h2, .area-guide-resources h2, .area-guide-contact h2, .alert-guide h2 { font-size: 2rem; }
}

/* Owner request (October 13, 2026): the home hero buttons join the site's one
   button family (sentence case, 8px corners, normal spacing). */
.hero-actions a,
.hero-actions a:is(.hero-search, .hero-question) {
  min-height: 48px;
  padding: 12px 24px;
  border-radius: 8px;
  font-size: 14px;
  font-weight: var(--wsh-font-weight-bold, 700);
  letter-spacing: normal;
  text-transform: none;
  line-height: 1.4;
}
/* A soft fade behind the floating navigation, so page content scrolling past
   does not show above it. On the home page it appears once past the hero. */
.site-header::before {
  content: "";
  position: absolute;
  inset: 0 0 -24px;
  z-index: -1;
  pointer-events: none;
  background: linear-gradient(to bottom, rgba(8, 8, 7, .96) 0%, rgba(8, 8, 7, .85) 55%, rgba(8, 8, 7, 0) 100%);
  opacity: 1;
  transition: opacity .2s ease;
}
.home-page .site-header:not(.is-scrolled)::before { opacity: 0; }
@media (prefers-reduced-motion: reduce) { .site-header::before { transition: none; } }

/* Owner request (October 13, 2026): a slightly larger portrait on the home hero.
   Desktop/tablet: 510px → 600px (~18%). Phones: the column is already full,
   so let it extend a little into the side margins (~7%). */
.home-page .hero-signature { width: min(600px, 100%); }
@media (max-width: 480px) {
  .home-page .hero-signature { width: calc(100% + 24px); max-width: none; margin-inline: -12px; }
}

/* The property view's backdrop was 50% black, leaving the busy results page
   clearly visible around it; dim it further so the property stands alone. */
dialog#MBBv3_PropDetailsPopUp::backdrop { background-color: rgba(8, 8, 7, .82); }

/* Home pathways: three outlined tiles in the site's button family. */
.home-page .home-pathways { width: min(100% - 40px, 1120px); max-width: 1120px; margin: 0 auto; padding: 0 0 72px; gap: 16px; grid-template-columns: repeat(3, minmax(0, 1fr)); }
.home-page .home-pathways a,
.home-page .home-pathways a:last-child { justify-content: space-between; min-height: 64px; padding: 16px 22px; border: 1px solid rgba(215, 182, 90, .4); border-radius: 8px; background: rgba(255, 255, 255, .02); color: var(--ink); font-size: 1rem; font-weight: var(--wsh-font-weight-semibold); text-align: left; }
.home-page .home-pathways a:hover,
.home-page .home-pathways a:focus-visible { border-color: #d7b65a; background: rgba(215, 182, 90, .08); }
.home-page .pathway-arrow { color: #d7b65a; }
@media (max-width: 600px) {
  .home-page .home-pathways { width: calc(100% - 32px); grid-template-columns: 1fr; gap: 10px; padding: 0 0 48px; }
  .home-page .home-pathways a,
  .home-page .home-pathways a:last-child { min-height: 56px; padding: 14px 18px; font-size: 1rem; border: 1px solid rgba(215, 182, 90, .4); }
}

/* Both footer disclosures use the same gold plus that turns to a close mark. */
.footer-compliance > summary::after,
.footer-compliance[open] > summary::after { content: '+'; color: var(--accent); font-size: 1.25rem; font-weight: 400; letter-spacing: 0; transition: transform .15s; }
.footer-compliance[open] > summary::after { transform: rotate(45deg); }

/* Body copy that sets no line height of its own matches the rest of the site. */
:where(main) p:where(:not(.eyebrow)) { line-height: 1.7; }
.seller-credentials { margin-top: 1rem; padding-top: 2rem; border-top: 1px solid var(--line); }
.seller-credentials strong { margin-bottom: .5rem; }
.seller-credentials p { margin: 0; }

/* One size for the privacy small print under every form. */
.contact-section p.form-note, p.form-note { font-size: .8125rem; line-height: 1.6; }

/* Saved homes lines up with the navigation and footer like other content pages. */
.idx-page.saved-homes-page { width: min(1120px, calc(100% - 2rem)); }

/* Privacy: a little air under each heading, and links that read as links. */
.policy-card section > h2 { margin-bottom: .4rem; }
.policy-card section a { color: var(--ink); text-decoration: underline; text-underline-offset: 3px; }
.policy-card section a:hover { color: var(--accent); }

/* Updates: same top rhythm as the other content pages, no double gap before the feed. */
@media (min-width: 601px) {
  .updates-page-hero { padding-top: 72px; }
  .updates-feed-section { padding-top: 24px; }
}

/* The search label reads like every other form label. */
.search-caption { font-size: .82rem; font-weight: var(--wsh-font-weight-bold); letter-spacing: 0; color: #c8c0b3; }

/* Phones: links follow the alignment of the text they sit under. */
@media (max-width: 560px) {
  .neighborhood-copy .text-link { width: auto; justify-content: flex-start; }
  .featured-listings .section-heading-row .section-description { margin: .75rem 0 0; }
}
.featured-listings .section-heading-row .section-description { margin-bottom: 0; }
.featured-listings > .section-heading-row { margin-bottom: 1.5rem; }

/* One area-chip style on Buyers and Neighborhoods, with a full-size touch target. */
.neighborhood-tags a,
.area-jump-links a { display: inline-flex; align-items: center; min-height: 44px; padding: 0 16px; border: 1px solid rgba(255, 250, 239, .14); border-radius: 999px; background: rgba(255, 250, 239, .04); color: var(--ink); font-size: .85rem; font-weight: var(--wsh-font-weight-semibold); letter-spacing: 0; line-height: 1.2; }
.neighborhood-tags a:hover,
.area-jump-links a:hover { border-color: var(--accent); color: var(--accent); }

/* Phones: the kicker sits with its heading, as eyebrows do everywhere else. */
@media (max-width: 760px) {
  .section-grid { row-gap: 0; }
  .section-grid > .section-kicker { margin-bottom: .75rem; }
  .seller-credentials .text-link { width: auto; justify-content: flex-start; }
}

/* Call and email links match the footer contact links (link standard tier 1: glow, no line). */
.direct-contact a { color: var(--accent); font-weight: var(--wsh-font-weight-semibold); font-size: .95rem; min-height: 44px; border-radius: 999px; padding-inline: 12px; margin-inline: -12px; transition: color 160ms var(--ease-out), background-color 160ms var(--ease-out); }
.direct-contact a:is(:hover, :focus-visible) { color: #ecd38a; background-color: rgba(215, 182, 90, 0.07); }

/* Saved homes: step descriptions breathe like other body text. */
.alert-guide li span { line-height: 1.6; }

/* Updates on phones: no double gap between the intro and the feed. */
@media (max-width: 600px) {
  .updates-page-hero { padding-bottom: 32px; }
  .updates-feed-section { padding-top: 8px; }
}

/* Price menu: the dash sits level with the Min and Max fields. */
#MBBv3_PriceSelect_popout .row:has(> .bfg-price-divider) { align-items: center !important; }
#MBBv3_PriceSelect_popout .bfg-price-divider { padding: 0 !important; color: var(--muted); line-height: 1 !important; }
.hero-signature-picture, .approach-photo > picture { display: contents; }

/* Results: hold the page's space until the live search arrives, so the footer does not
   rise into view and then drop away (measured layout shift 0.74 on phones). */
.results-page .idx-widget-shell:has(> [data-idx-widget-loading]:not([hidden])) { position: relative; min-height: 100svh; }
.results-page .idx-widget-shell > [data-idx-widget-loading] { position: absolute; inset: 0 0 auto; }
/* Saved homes: the account box settles at 88px; hold that size while it loads so the alerts
   section below does not jump (it grew to 216px, then shrank). */
.saved-homes-page .account-panel { position: relative; min-height: 88px; }
.saved-homes-page .account-panel:has(> [data-idx-widget-loading]:not([hidden])) { height: 88px; overflow: hidden; }
.saved-homes-page .account-panel > [data-idx-widget-loading]:not([hidden]) { position: absolute; inset: 0; z-index: 2; display: grid; place-items: center; margin: 0; border: 0; border-radius: inherit; background: #141310; color: var(--muted); font-weight: var(--wsh-font-weight-medium); }
/* The provider's own white skeleton bars draw over the message; the message covers them. */
/* Updates: hold the feed's space while posts load so the footer does not rise and drop. */
.updates-feed:has(> .update-card-loading) { min-height: 100svh; align-content: start; }

/* Hover feedback for every remaining control (an audit found these did not respond). */
:is(.footer-explore, .footer-compliance) > summary:hover,
details > summary:hover { color: var(--accent); }
.form-note a:hover, .policy-card section a:hover { color: var(--accent); }
.form-note a { transition: color 180ms; }
.background-disclosure > summary:hover { color: #f4df9b; }
/* Update cards: the body column never grows past the card, and the two buttons share a row
   only when they fit (on 320px phones "Expand" moves under the main button). */
.update-card-body { grid-template-columns: minmax(0, 1fr); }
.update-card-actions { flex-wrap: wrap; }
.update-card-body h3 { overflow-wrap: anywhere; }

/* Standalone listing page: one frame (the listing's own card), not a card inside a box. */
.idx-details-page .idx-widget-shell { padding: 0; border: 0; border-radius: 0; background: transparent; box-shadow: none; }
/* Phones: the inquiry action stays a button (compact, outlined) instead of becoming a
   wrapped underlined link; the long wording returns on wider screens. */
@media (max-width: 767px) {
  .idx-details-page .idx-detail-actions [data-property-inquiry] { padding: 0 16px; border: 1px solid var(--accent); border-radius: 8px; text-decoration: none; white-space: nowrap; font-weight: var(--wsh-font-weight-semibold); }
  .idx-details-page .idx-detail-actions [data-property-inquiry]:hover { background: rgba(215, 182, 90, .12); }
  .idx-details-page .cta-long { display: none; }
}
@media (max-width: 767px) {
  .idx-details-page .idx-detail-actions .text-link { width: auto; justify-content: flex-start; }
}

/* Open phone/tablet menu: the page behind is dimmed. (A scroll lock on html made the page
   jump on open and return to the top on close, so the page is left scrollable.) The dim
   layer takes taps itself: a tap on it lands on body and closes the menu, instead of
   reaching an MLS listing underneath, which handles taps before the site's close handler. */
html.wsh-menu-open body::after { content: ""; position: fixed; inset: 0; z-index: 39; background: rgba(8, 8, 7, .72); }

/* New listings: Buying Buddy's own "Listed within" filter (create_dt), linked from the
   home search and echoed above the results it opens. */
.home-search-tools { display: grid; gap: 14px; min-width: 0; }
.new-listing-links { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
.new-listing-links > span { margin-right: 4px; color: var(--muted); font-size: .9rem; font-weight: var(--wsh-font-weight-semibold); }
.new-listing-links a { display: inline-flex; align-items: center; min-height: 44px; padding: 0 16px; border: 1px solid #d7b65a66; border-radius: 999px; color: var(--ink); font-size: .9rem; font-weight: var(--wsh-font-weight-semibold); white-space: nowrap; transition: background .18s, border-color .18s, color .18s; }
.new-listing-links a:hover { background: #d7b65a12; border-color: var(--accent); }
.new-listing-links a[aria-current="page"] { background: var(--accent); border-color: var(--accent); color: var(--button-ink); }
.new-listing-links[hidden] { display: none; }
.new-listing-links a.new-listing-alert { gap: 8px; padding: 0 8px; border-color: transparent; color: var(--accent); }
.new-listing-links a.new-listing-alert:hover { background: none; border-color: transparent; }
.new-listing-alert svg { width: 18px; height: 18px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.idx-page-heading .new-listing-links { margin-top: 14px; }
/* Below desktop the label takes its own line so the three ranges stay on one row. */
@media (max-width: 1279px) { .new-listing-links > span { flex-basis: 100%; } }
@media (max-width: 380px) { .new-listing-links { gap: 6px; } .new-listing-links a { padding: 0 12px; } .new-listing-links a.new-listing-alert { padding: 0 4px; gap: 6px; } }

/* Footer: the MLS disclosure reads like its sibling "Explore" row (sentence case, same
   size and color), and on phones the two rows share one divider instead of leaving an
   empty band between two lines. */
.footer-compliance > summary.footer-compliance-label { margin: 0 !important; padding: 12px 0; min-height: 48px; color: var(--ink); font-size: 1rem !important; font-weight: var(--wsh-font-weight-normal); letter-spacing: 0; text-transform: none; }
@media (max-width: 720px) {
  .footer-compliance { margin-top: 0; padding-top: 0; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
}

/* Text for screen readers only (for example, a section heading the layout makes obvious). */
.visually-hidden { position: absolute !important; width: 1px; height: 1px; margin: -1px; padding: 0; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }

/* Homepage seller prompt: one band after the listings, linking to the sellers
   page's home value request. */
.home-value-cta { display: flex; align-items: center; justify-content: space-between; gap: 24px 40px; width: min(100% - 40px, 1120px); margin: 0 auto 72px; padding: 32px 36px; border: 1px solid #d7b65a40; border-radius: 22px; background: linear-gradient(135deg, #d7b65a14, #ffffff05); }
.home-value-cta .eyebrow { margin: 0 0 8px; }
.home-value-cta h2 { margin: 0; font-size: clamp(1.6rem, 2.6vw, 2.2rem); font-weight: var(--wsh-font-weight-semibold); }
.home-value-cta p:not(.eyebrow) { max-width: 560px; margin: 10px 0 0; color: var(--muted); }
.home-value-cta .primary-button { flex: none; }
.home-value-cta p.home-value-cta-link { margin: 6px 0 0; }
.home-value-cta-link .text-link { color: var(--accent); }
@media (max-width: 720px) {
  .home-value-cta { flex-direction: column; align-items: stretch; width: calc(100% - 32px); margin-bottom: 48px; padding: 24px 20px; }
  .home-value-cta .primary-button { justify-content: center; }
}

/* Client reviews (rendered by scripts/build-reviews.js only when approved reviews exist). */
.client-reviews { width: min(100% - 40px, 1120px); margin: 0 auto 72px; }
.client-reviews h2 { margin: 0 0 24px; font-size: clamp(1.6rem, 2.6vw, 2.2rem); font-weight: var(--wsh-font-weight-semibold); }
.review-list { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 300px), 1fr)); gap: 16px; }
.review-card { display: flex; flex-direction: column; gap: 18px; margin: 0; padding: 28px; border: 1px solid var(--line); border-radius: 22px; background: #ffffff06; }
.review-card blockquote { margin: 0; }
.review-card blockquote p { margin: 0; color: var(--ink); font-size: 1.05rem; line-height: 1.6; }
.review-card blockquote p::before { content: "\201C"; }
.review-card blockquote p::after { content: "\201D"; }
.review-card figcaption { display: grid; gap: 4px; margin-top: auto; font-size: .9rem; color: var(--muted); }
.review-card figcaption strong { color: var(--ink); font-weight: var(--wsh-font-weight-semibold); }
.review-card figcaption a { color: var(--accent); width: fit-content; }
@media (max-width: 720px) { .client-reviews { width: calc(100% - 32px); margin-bottom: 48px; } .review-card { padding: 22px 20px; } }

/* Market report: link band on Neighborhoods, full report on /market-report. */
.market-snapshot { display: flex; align-items: center; justify-content: space-between; gap: 24px 40px; margin: clamp(2.5rem, 6vw, 4.5rem) 0; padding: clamp(1.5rem, 4vw, 2.5rem); border: 1px solid var(--line); border-radius: 18px; background: #151612; }
.market-snapshot h2 { margin: .45rem 0 .8rem; font-size: clamp(1.8rem, 3vw, 2.6rem); }
.market-snapshot p:last-child { max-width: 620px; margin-bottom: 0; color: var(--muted); }
.market-snapshot .primary-button { flex: none; }
.market-report-shell { position: relative; min-height: 320px; margin: 0 0 clamp(2.5rem, 6vw, 4.5rem); overflow-x: clip; }
.market-report-shell bb-widget { display: block; }
@media (max-width: 720px) {
  .market-snapshot { flex-direction: column; align-items: stretch; }
  .market-snapshot .primary-button { justify-content: center; }
}
.home-value-copy > p.home-value-market-link { max-width: none; margin: 12px 0 0; padding: 0; text-align: left; }
.home-value-market-link .text-link { width: auto; justify-content: flex-start; }

/* Expand and zoom marks: the "+" is drawn as two centred bars. A text "+" sits about 2px low
   in its circle, because the glyph is not centred on the font's line. The text stays for
   copy and paste and readers; only its drawing is replaced. */
.update-expand-mark,
.update-lightbox-zoom [data-lightbox-zoom-mark] { position: relative; font-size: 0 !important; color: transparent; }
.update-expand-mark::before, .update-expand-mark::after,
.update-lightbox-zoom [data-lightbox-zoom-mark]::before, .update-lightbox-zoom [data-lightbox-zoom-mark]::after {
  content: ""; position: absolute; left: 50%; top: 50%; width: 10px; height: 1.6px; margin: -0.8px 0 0 -5px;
  border-radius: 1px; background: var(--ink, #f8f4ea);
}
.update-expand-mark::after,
.update-lightbox-zoom [data-lightbox-zoom-mark]::after { transform: rotate(90deg); }
/* Zoomed in: the mark reads as a minus. */
.update-lightbox-zoom[aria-pressed="true"] [data-lightbox-zoom-mark]::after { display: none; }

/* Results: if the live search fails, the message returns to the page flow and stops holding a
   full screen of space. Buying Buddy may still draw its "Get alerts" banner when the search
   fails, and while the message sat on top of the reserved space the two overlapped. */
.results-page .idx-widget-shell > [data-idx-widget-loading][data-wsh-load-failed] { position: static; margin-top: 16px; }
.results-page .idx-widget-shell:has(> [data-wsh-load-failed]) { min-height: 0; }

/* Footer: the main pages live in the header bar (and the phone menu); the footer keeps
   only the links found nowhere else, always visible. */
.footer-mini-links { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 24px; }
.footer-mini-links a { display: inline-flex; align-items: center; min-height: 44px; color: var(--muted); font-size: .95rem; font-weight: var(--wsh-font-weight-medium); text-decoration: none; }
@media (max-width: 720px) { .footer-mini-links { margin-bottom: 12px; } }

/* ---------------------------------------------------------------------------------
   Link standard (docs/design-brief.md › "Links and interactive states"). One rule per
   kind of link; no underlines except links inside running text.
   1. Navigation (header, phone menu, footer): plain text; soft gold glow on hover or
      keyboard focus (the header wash, 7%); current page: gold text on a 14% glow.
   2. Buttons and pills: unchanged (gold fill or outline; outline brightens with glow).
   3. "Go to" links (.text-link, alert link, skip link): gold or muted text with an arrow
      or icon; on hover the text brightens and the arrow nudges; no underline.
   4. Links inside a sentence (form notes, policy text, listing help): a thin underline
      that is always visible, gold on hover. Needed so the link isn't told by colour alone.
   --------------------------------------------------------------------------------- */

/* 1. Navigation: footer links lose their permanent hairline and hover underline. The
      padding/negative margin pair gives the glow room without moving the text. */
.site-footer a:not(.social-icon-link):not(.footer-group-label) {
  border-bottom: 0 !important;
  text-decoration: none !important;
  border-radius: 999px;
  padding-inline: 12px;
  margin-inline: -12px;
  transition: color 160ms var(--ease-out), background-color 160ms var(--ease-out);
}
.site-footer a:not(.social-icon-link):not(.footer-group-label):is(:hover, :focus-visible) { background-color: rgba(215, 182, 90, 0.07); text-decoration: none !important; }
.footer-mini-links a:hover { color: var(--ink); }
.footer-mini-links a:is([aria-current="page"], [aria-current="true"]) { color: var(--accent); background-color: rgba(215, 182, 90, 0.14); }
.privacy-settings { text-decoration: none; border-radius: 999px; padding-inline: 12px; margin-inline: -12px; transition: color 160ms var(--ease-out), background-color 160ms var(--ease-out); }
.privacy-settings:is(:hover, :focus-visible) { color: var(--ink); background-color: rgba(215, 182, 90, 0.07); }

/* 3. "Go to" links. */
.text-link, .text-link:hover, .new-listing-links a.new-listing-alert:hover, .idx-jump-label,
.idx-details-page .idx-detail-actions [data-property-inquiry] { text-decoration: none !important; }
.text-link { gap: 0.4em; }
.text-link:hover { color: var(--ink); }
.home-value-cta-link .text-link:hover, .new-listing-links a.new-listing-alert:hover, .idx-details-page .idx-detail-actions [data-property-inquiry]:hover { color: #ecd38a; }
span.link-arrow, .idx-jump-link > span[aria-hidden="true"], .new-listing-alert svg { display: inline-block; transition: transform 160ms var(--ease-out); }
/* Links with an arrow flow as text, so a link that wraps on a narrow phone keeps its
   arrow right after the last word (as a flex item it drifted to the far edge). The
   padding keeps the 44px tap height. text-align mirrors the old justify-content. */
.text-link:has(> .link-arrow) { display: inline-block; padding-block: 0.72rem; line-height: 1.45; text-align: left; }
.text-link > .link-arrow { margin-left: 0.4em; }
.text-link > .link-arrow-back { margin: 0 0.4em 0 0; }
@media (max-width: 560px) {
  .text-link:has(> .link-arrow) { text-align: center; }
  :is(.section-heading-row, .neighborhood-copy, .seller-credentials, .idx-details-page .idx-detail-actions, .home-value-market-link, .home-value-cta-link) .text-link:has(> .link-arrow) { text-align: left; }
  /* Area guide cards: links sit left in a row under the card text, as on desktop. */
  .area-guide-card .text-link:has(> .link-arrow) { width: auto; text-align: left; }
}
.text-link:hover .link-arrow { transform: translateX(3px); }
.text-link:hover .link-arrow-back { transform: translateX(-3px); }
.idx-jump-link:hover > span[aria-hidden="true"] { transform: translateY(2px); }
.new-listing-alert:hover svg { transform: rotate(-12deg); }
@media (prefers-reduced-motion: reduce) {
  span.link-arrow, .idx-jump-link > span[aria-hidden="true"], .new-listing-alert svg { transition: none; transform: none !important; }
}

/* 4. Links inside a sentence keep a quiet, always-visible underline. */
:is(.listing-help, .form-note, .policy-card section) a { text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 3px; text-decoration-color: rgba(248, 244, 234, 0.45); }
:is(.listing-help, .form-note, .policy-card section) a:hover { color: var(--accent); text-decoration-color: currentColor; }

/* Brokerage: the eXp Realty logo (white reverse for the dark footer) above the licensed
   brokerage name, which stays as text because California advertising rules call for the
   broker's licensed name, not only a logo. */
.brokerage-line .brokerage-logo-link { display: inline-grid; justify-items: start; gap: 6px; padding: 6px 12px; margin-inline: -12px; border-radius: 14px; }
.brokerage-logo { display: block; width: 72px; height: auto; outline: 0 !important; }
.brokerage-name { font-size: 0.78rem; font-weight: var(--wsh-font-weight-medium); color: var(--muted); }
.brokerage-line .brokerage-logo-link:is(:hover, :focus-visible) .brokerage-name { color: var(--ink); }

/* Footer: Jeff's cut-out portrait (no frame) and his gold signature under the contact links. */
.footer-contact-links { grid-template-columns: 120px minmax(0,1fr); align-items: start; }
.footer-portrait { width: 120px; height: auto; border-radius: 0; outline: 0 !important; }
.footer-signature { display: block; flex: 0 0 200px; width: 200px; margin-right: calc(100% - 200px); height: auto; margin-top: 10px; outline: 0 !important; }
@media (max-width: 560px) {
  .footer-contact-links { grid-template-columns: 96px minmax(0,1fr); }
  .footer-portrait { width: 96px; height: auto; }
  .footer-signature { flex: none; width: 168px; margin-right: 0; margin-top: 8px; }
}

/* Homepage welcome (owner's choice): the headline and experience line are images of
   Cinzel and Times New Roman lettering, so the site keeps its one system-ui text font.
   The real words stay in the alt text for search engines and screen readers. */
.home-page .welcome-home h1.welcome-title-art { margin: 26px auto 26px; line-height: 0; }
.welcome-title-art img { display: block; width: min(720px, 88vw); height: auto; margin: 0 auto; outline: 0 !important; }
.welcome-subtitle-art p { line-height: 0; }
.welcome-subtitle-art img { display: block; width: 300px; height: auto; margin: 0 auto; outline: 0 !important; }
@media (max-width: 560px) {
  .home-page .welcome-home h1.welcome-title-art { margin: 18px auto 18px; }
  .welcome-subtitle-art img { width: 240px; }
/* Loading skeletons. Each one mirrors the loaded widget's measured layout (Playwright,
   1440x900 and 390x844, Oct 18 2026), so nothing moves when the live content replaces it.
   The widget stays invisible underneath until it has finished laying out (site.js), then
   swaps in one step. A failed load turns the skeleton back into the plain message. */
.wsh-skeleton:not([data-wsh-load-failed]) { padding: 0; border: 0; border-radius: 0; background: none; }
.wsh-skel { display: grid; align-content: start; pointer-events: none; }
.wsh-skel i { display: block; min-width: 0; height: 18px; border-radius: 6px; background: rgba(255, 250, 239, .07); animation: wsh-skel-pulse 1.8s ease-in-out infinite; }
.wsh-skel .sk-push { flex: 1; }
.wsh-skel .sk-btn { width: 118px; height: 44px; border-radius: 8px; }
.wsh-skel .sk-gold { background: rgba(215, 182, 90, .22); }
.wsh-skel .sk-line { width: 100%; height: 14px; }
.wsh-skel .sk-title { width: 80%; height: 28px; }
.wsh-skel :is(.sk-w20) { width: 20%; } .wsh-skel .sk-w40 { width: 40%; } .wsh-skel .sk-w60 { width: 60%; } .wsh-skel .sk-w80 { width: 80%; }
.wsh-skel .sk-w44 { width: 44px; } .wsh-skel .sk-w68 { width: 68px; } .wsh-skel .sk-w84 { width: 84px; } .wsh-skel .sk-w112 { width: 112px; }
.wsh-skel .sk-w123 { width: 123px; } .wsh-skel .sk-w126 { width: 126px; } .wsh-skel .sk-w165 { width: 165px; }
@keyframes wsh-skel-pulse { 50% { opacity: .55; } }
@media (prefers-reduced-motion: reduce) { .wsh-skel i { animation: none; } }

/* Shells hold the loaded size, show the skeleton on top and keep the widget hidden. */
:is(.idx-widget-shell, .market-report-shell, .listing-gallery-shell):has(> .wsh-skeleton:not([hidden]):not([data-wsh-load-failed])) { position: relative; }
:is(.idx-widget-shell, .market-report-shell, .listing-gallery-shell):has(> .wsh-skeleton:not([hidden]):not([data-wsh-load-failed])) > bb-widget { visibility: hidden; }
:is(.idx-widget-shell, .market-report-shell, .listing-gallery-shell) > .wsh-skeleton:not([hidden]):not([data-wsh-load-failed]) { position: absolute; inset: 0 0 auto; z-index: 1; margin: 0; }
.idx-details-page .idx-widget-shell:has(> .wsh-skeleton:not([hidden]):not([data-wsh-load-failed])),
.market-report-shell:has(> .wsh-skeleton:not([hidden]):not([data-wsh-load-failed])) { min-height: 100svh; }

/* Property page: toolbar 68px, then summary | gallery 360px | contact rail, then section tabs. */
.wsh-skel-details { border: 1px solid rgb(73, 66, 55); border-radius: 16px; background: rgb(23, 21, 19); padding-bottom: 12px; }
.wsh-skel-details .sk-toolbar { display: flex; align-items: center; gap: 4px; height: 68px; padding: 0 24px; }
.wsh-skel-details .sk-toolbar .sk-w123 + .sk-w123 { margin-left: 8px; }
.wsh-skel-details .sk-hero { display: grid; grid-template-columns: minmax(240px, .9fr) minmax(0, 1.5fr) minmax(205px, .7fr); align-items: start; gap: 24px; margin: 20px 24px 12px; }
.wsh-skel-details .sk-summary { display: grid; justify-items: start; }
.wsh-skel-details .sk-summary .sk-title { width: 92%; height: 34px; }
.wsh-skel-details .sk-summary .sk-line { height: 18px; margin-top: 8px; }
.wsh-skel-details .sk-badge { width: 132px; height: 22px; margin-top: 18px; }
.wsh-skel-details .sk-price { width: 173px; height: 38px; margin-top: 14px; }
.wsh-skel-details .sk-facts { display: flex; flex-wrap: wrap; gap: 12px 16px; width: 100%; margin-top: 18px; padding-top: 17px; border-top: 1px solid rgba(255, 250, 239, .08); }
.wsh-skel-details .sk-facts i { height: 24px; }
.wsh-skel-details .sk-facts i:nth-child(1) { width: 69px; } .wsh-skel-details .sk-facts i:nth-child(2) { width: 73px; } .wsh-skel-details .sk-facts i:nth-child(3) { width: 107px; }
.wsh-skel-details .sk-facts i:nth-child(4) { width: 127px; } .wsh-skel-details .sk-facts i:nth-child(5) { width: 84px; } .wsh-skel-details .sk-facts i:nth-child(6) { width: 100px; }
.wsh-skel-details .sk-gallery { display: grid; grid-template-columns: minmax(0, 1.65fr) minmax(0, 1fr); grid-template-rows: repeat(2, minmax(0, 1fr)); gap: 8px; height: 360px; }
.wsh-skel-details .sk-photo { height: auto; border-radius: 8px; }
.wsh-skel-details .sk-photo:first-child { grid-row: 1 / -1; }
.wsh-skel-details .sk-rail { display: grid; align-content: start; gap: 0; padding-left: 18px; border-left: 1px solid rgba(255, 250, 239, .08); }
.wsh-skel-details .sk-rail > .sk-line:first-child { height: 20px; }
.wsh-skel-details .sk-agent { width: 88px; height: 110px; margin-top: 32px; }
.wsh-skel-details .sk-rail > .sk-w60 { height: 76px; margin-top: 12px; }
.wsh-skel-details .sk-rail .sk-wide { width: 100%; margin-top: 42px; }
.wsh-skel-details .sk-rail .sk-wide + .sk-wide { margin-top: 19px; }
.wsh-skel-details .sk-tabs { display: flex; gap: 4px; margin: 8px 24px 0; }
.wsh-skel-details .sk-pill { width: 102px; height: 44px; border-radius: 999px; }
.wsh-skel-details .sk-pill:nth-child(2) { width: 85px; } .wsh-skel-details .sk-pill:nth-child(3) { width: 97px; } .wsh-skel-details .sk-pill:nth-child(4) { width: 126px; }
@media (min-width: 768px) and (max-width: 1099px) {
  .wsh-skel-details .sk-hero { grid-template-columns: minmax(0, 1fr) minmax(0, 1.4fr); }
  .wsh-skel-details .sk-rail { grid-column: 1 / -1; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); column-gap: 24px; padding: 16px 0 0; border-left: 0; border-top: 1px solid rgba(255, 250, 239, .08); }
  .wsh-skel-details .sk-rail > .sk-line:first-child { grid-column: 1; grid-row: 1; }
  .wsh-skel-details .sk-rail .sk-agent { grid-column: 2; grid-row: 1; margin-top: 0; }
  .wsh-skel-details .sk-rail > .sk-w60 { grid-column: 2; grid-row: 2; }
  .wsh-skel-details .sk-rail .sk-wide { grid-column: 1; grid-row: 3; margin-top: 49px; }
  .wsh-skel-details .sk-rail .sk-wide + .sk-wide { grid-row: 4; margin-top: 19px; }
}
@media (max-width: 767px) {
  .wsh-skel-details { border: 0; border-radius: 0; }
  .wsh-skel-details .sk-toolbar { padding: 0 16px; }
  .wsh-skel-details .sk-toolbar > :is(.sk-push, .sk-w123) { display: none; }
  .wsh-skel-details .sk-toolbar .sk-btn:first-child { width: 105px; }
  .wsh-skel-details .sk-toolbar .sk-w84 { width: 75px; }
  .wsh-skel-details .sk-toolbar .sk-w68 { width: 60px; }
  .wsh-skel-details .sk-hero { display: flex; flex-direction: column; gap: 18px; margin: 12px 16px; }
  .wsh-skel-details .sk-gallery { order: -1; display: block; width: 100%; height: auto; }
  .wsh-skel-details .sk-gallery .sk-photo:first-child { aspect-ratio: 4 / 3; height: auto; }
  .wsh-skel-details .sk-gallery .sk-photo:not(:first-child) { display: none; }
  .wsh-skel-details .sk-summary { width: 100%; }
  .wsh-skel-details .sk-summary .sk-title { height: 29px; }
  .wsh-skel-details .sk-summary .sk-line { margin-top: 5px; height: 20px; }
  .wsh-skel-details .sk-badge { margin-top: 10px; }
  .wsh-skel-details .sk-price { height: 34px; margin-top: 10px; }
  .wsh-skel-details .sk-facts { gap: 10px 16px; margin-top: 12px; padding-top: 12px; }
  .wsh-skel-details .sk-rail { display: none; }
  .wsh-skel-details .sk-tabs { justify-content: space-between; margin: 16px 16px 0; }
  .wsh-skel-details .sk-pill { width: 70px; } .wsh-skel-details .sk-pill:nth-child(2) { width: 56px; } .wsh-skel-details .sk-pill:nth-child(3) { width: 66px; } .wsh-skel-details .sk-pill:nth-child(4) { width: 91px; }
}

/* Results: account row, search panel, results toolbar, then cards beside the map.
   The grids copy results-widget.css (#mbb-primary-search, .results-container-layout). */
.wsh-skel-results .sk-account { display: flex; justify-content: flex-end; gap: 8px; }
.wsh-skel-results .sk-search { display: grid; grid-template-columns: minmax(200px, 1.8fr) minmax(128px, .85fr) repeat(2, minmax(128px, .65fr)) minmax(170px, .9fr) 114px 81px; gap: 10px; margin-top: 14px; padding: 41px 20px 15px; border: 1px solid rgb(73, 66, 55); border-radius: 14px; }
.wsh-skel-results .sk-field { height: 44px; border-radius: 8px; }
.wsh-skel-results .sk-toolbar { display: flex; align-items: center; gap: 4px; height: 52px; margin-top: 19px; }
.wsh-skel-results .sk-count { width: 79px; height: 18px; }
.wsh-skel-results .sk-toolbar .sk-w44 { margin-right: 8px; }
.wsh-skel-results .sk-views { width: 316px; height: 52px; border-radius: 999px; }
.wsh-skel-results .sk-toolbar .sk-w112 { margin-left: 23px; }
.wsh-skel-results .sk-body { display: grid; grid-template-columns: minmax(0, 1.75fr) minmax(300px, 1fr); gap: 20px; margin-top: 14px; }
.wsh-skel-results .sk-cards { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; align-content: start; }
.wsh-skel-results .sk-card { display: grid; gap: 12px; align-content: start; padding-bottom: 97px; border: 1px solid rgb(73, 66, 55); border-radius: 12px; background: rgb(23, 21, 19); overflow: hidden; }
.wsh-skel-results .sk-card .sk-photo { height: auto; aspect-ratio: 3 / 2; border-radius: 0; margin-bottom: 16px; }
.wsh-skel-results .sk-card .sk-line { margin-inline: 18px; width: auto; }
.wsh-skel-results .sk-card .sk-w40 { height: 26px; margin-right: 60%; } .wsh-skel-results .sk-card .sk-w60 { margin-right: 40%; } .wsh-skel-results .sk-card .sk-w80 { margin-right: 20%; }
.wsh-skel-results .sk-map { height: 640px; border-radius: 14px; }
@media (max-width: 1100px) {
  .wsh-skel-results .sk-search { grid-template-columns: minmax(200px, 1.6fr) repeat(2, minmax(110px, 1fr)); row-gap: 33px; padding-bottom: 20px; }
  .wsh-skel-results .sk-search .sk-gold { width: 81px; margin-top: -23px; }
  .wsh-skel-results .sk-toolbar { margin-top: 15px; }
  .wsh-skel-results .sk-body { grid-template-columns: minmax(0, 1.5fr) minmax(280px, 1fr); }
  .wsh-skel-results .sk-cards { grid-template-columns: minmax(0, 1fr); }
  .wsh-skel-results .sk-card + .sk-card { display: none; }
}
@media (max-width: 767px) {
  .wsh-skel-results .sk-search { grid-template-columns: repeat(2, minmax(0, 1fr)); row-gap: 33px; padding: 37px 15px 15px; }
  .wsh-skel-results .sk-search .sk-location { grid-column: 1 / -1; }
  .wsh-skel-results .sk-search .sk-desktop { display: none; }
  .wsh-skel-results .sk-search .sk-gold { width: auto; margin-top: 0; }
  .wsh-skel-results .sk-toolbar { flex-wrap: wrap; height: auto; margin-top: 20px; row-gap: 10px; }
  .wsh-skel-results .sk-toolbar .sk-w44 { margin-right: 0; }
  .wsh-skel-results .sk-toolbar .sk-w112 { display: none; }
  .wsh-skel-results .sk-views { width: 100%; }
  .wsh-skel-results .sk-body { grid-template-columns: minmax(0, 1fr); }
  .wsh-skel-results .sk-map { display: none; }
}

/* Market report: report heading, then the summary card with six figures. */
.wsh-skel-market .sk-heading { width: 58%; height: 32px; margin-top: 10px; }
.wsh-skel-market .sk-card { display: grid; gap: 10px; align-content: start; height: 447px; margin-top: 59px; padding: 24px; border-radius: 14px; background: rgb(36, 33, 28); }
.wsh-skel-market .sk-card > .sk-line { height: 16px; }
.wsh-skel-market .sk-stats { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 16px; margin-top: 20px; }
.wsh-skel-market .sk-stats > div { display: grid; }
.wsh-skel-market .sk-stats .sk-line { height: 14px; margin-top: 10px; }
.wsh-skel-market .sk-stats .sk-w80 { margin-top: 9px; }
.wsh-skel-market .sk-number { width: 70%; height: 42px; }
@media (max-width: 767px) {
  .wsh-skel-market .sk-heading { width: 100%; height: 42px; }
  .wsh-skel-market .sk-card { height: 1292px; margin-top: 59px; }
  .wsh-skel-market .sk-card > .sk-w60 { width: 100%; height: 40px; }
  .wsh-skel-market .sk-card > .sk-w40 { width: 100%; height: 40px; }
  .wsh-skel-market .sk-stats { grid-template-columns: repeat(2, minmax(0, 1fr)); row-gap: 24px; }
}

/* Home: Jeff's listings strip (cards 268x380, 240x370 on phones). */
.listing-gallery-shell { min-height: 398px; }
.wsh-skel-strip { display: flex; gap: 16px; padding-top: 4px; overflow: hidden; }
.wsh-skel-strip .sk-card { display: grid; align-content: start; flex: 0 0 268px; height: 380px; border: 1px solid rgba(255, 255, 255, .15); border-radius: 12px; background: rgb(24, 23, 19); overflow: hidden; }
.wsh-skel-strip .sk-photo { height: 140px; border-radius: 0; }
.wsh-skel-strip :is(.sk-price, .sk-line) { width: auto; margin: 4px 16px 0; }
.wsh-skel-strip .sk-price { height: 20px; margin-top: 19px; margin-right: 50%; }
.wsh-skel-strip .sk-price + .sk-line { margin-top: 18px; }
.wsh-skel-strip .sk-w60 { margin-right: 40%; } .wsh-skel-strip .sk-w80 { margin-right: 20%; } .wsh-skel-strip .sk-w40 { margin-right: 55%; }
.wsh-skel-strip .sk-w60 + .sk-w40 { margin-top: 30px; } .wsh-skel-strip .sk-w40 + .sk-w40 { margin-top: 10px; }
.wsh-skel-strip .sk-w40 + .sk-w80 { margin-top: 28px; } .wsh-skel-strip .sk-w80 + .sk-w80 { margin-top: 7px; margin-right: 10%; }
@media (max-width: 560px) {
  .listing-gallery-shell { min-height: 388px; }
  .wsh-skel-strip .sk-card { flex-basis: 240px; height: 370px; }
  .wsh-skel-strip .sk-photo { height: 130px; }
}

/* Updates: two post cards, 16:10 media over the text. */
.update-card-loading { padding: 0; }
.update-card-loading .wsh-skel i { border-radius: 6px; }
.update-card-loading .sk-media { height: auto; aspect-ratio: 549 / 343; border-radius: 0; }
.update-card-loading .sk-body { display: grid; gap: 14px; padding: 32px 32px 38px; }
.update-card-loading .sk-line { height: 16px; }
.update-card-loading .sk-title { width: 92%; height: 26px; }
.update-card-loading .sk-btn { width: 126px; margin-top: 21px; }
@media (max-width: 920px) {
  .update-card-loading + .update-card-loading { display: none; }
  .update-card-loading .sk-body { gap: 12px; padding: 17px 18px 19px; }
  .update-card-loading .sk-btn { margin-top: 28px; }
}
