:root {
  --mls-bg: #f3f8f5;
  --mls-bg-2: #f1ede5;
  --mls-bg-3: #e7e0d2;
  --mls-cream: #17292a;
  --mls-paper: #ffffff;
  --mls-gold: #4f8962;
  --mls-gold-2: #3c5644;
  --mls-sand: #fcd8a1;
  --mls-clay: #daab8b;
  --mls-text: #313e3e;
  --mls-muted: #686868;
  --mls-ink: #17292a;
  --mls-brand-forest: #163f22;
  --mls-brand-green: #2f7d3a;
  --mls-sold: #8f2d2d;
  --mls-serif: "Cormorant Garamond", "Times New Roman", serif;
  --mls-sans: "Source Sans 3", "Segoe UI", sans-serif;
}

.screen-reader-text {
  clip: rect(1px, 1px, 1px, 1px);
  position: absolute !important;
  height: 1px;
  width: 1px;
  overflow: hidden;
}

html {
  scroll-behavior: smooth;
}

body.mls-site {
  margin: 0;
  background: var(--mls-bg);
  color: var(--mls-text);
  font-family: var(--mls-sans);
  line-height: 1.55;
}

body.mls-site a {
  color: inherit;
}

body.mls-home {
  overflow-x: hidden;
}

.mls-header {
  position: sticky;
  top: 0;
  top: var(--wp-admin--admin-bar--height, 0px);
  z-index: 40;
  background: rgba(255, 255, 255, 0.92);
  backdrop-filter: blur(12px);
  border-bottom: 1px solid rgba(23, 41, 42, 0.08);
  color: var(--mls-ink);
}

body.mls-site .mls-header a:not(.mls-nav__cta) {
  color: var(--mls-ink) !important;
}

body.mls-site .mls-header .mls-drop a {
  color: var(--mls-ink) !important;
}

body.admin-bar .mls-header {
  top: 32px;
  top: var(--wp-admin--admin-bar--height, 32px);
}

@media screen and (max-width: 782px) {
  body.admin-bar .mls-header {
    top: 46px;
    top: var(--wp-admin--admin-bar--height, 46px);
  }
}

@media screen and (max-width: 600px) {
  body.admin-bar .mls-header {
    top: 0;
  }
}

.mls-header__inner {
  max-width: 1180px;
  margin: 0 auto;
  padding: 1.3rem 1.25rem;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
}

.mls-logo {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  text-decoration: none;
  font-weight: 600;
  letter-spacing: 0.02em;
  color: var(--mls-ink);
}

.mls-logo img {
  max-height: 54px;
  width: auto;
}

.mls-logo__mark {
  display: block;
  flex-shrink: 0;
  width: 3rem;
  height: 2.6rem;
  overflow: hidden;
}

.mls-logo__mark img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: contain;
}

.mls-logo__text {
  font-size: 1.3rem;
  font-weight: 800;
  letter-spacing: 0.01em;
  color: var(--mls-brand-forest);
  white-space: nowrap;
}

.mls-header__phone {
  gap: 0.4rem;
}

body.mls-site .mls-header .mls-nav .mls-header__phone,
body.mls-site .mls-header .mls-mobile-nav .mls-header__phone {
  color: var(--mls-brand-forest) !important;
  font-size: 1.12rem;
  font-weight: 700;
}

.mls-nav .mls-header__phone {
  border-left: 1px solid rgba(23, 41, 42, 0.15);
  padding-left: 1rem;
  margin-left: 0.35rem;
}

.mls-header__phone svg {
  width: 1rem;
  height: 1rem;
  fill: currentColor;
}

/* The phone number and the translate button wrap as one unit, so a bar that
   runs out of room never leaves the translate button stranded on its own. */
.mls-nav__actions {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  flex: 0 0 auto;
}

.mls-nav__actions .mls-header__phone {
  margin-left: 0;
}

/* A second copy of the phone and the language switch, shown only on tablet
   widths where the menu needs the row below the logo to itself. */
.mls-header__meta {
  display: none;
}

/* Current page: green text with an underline, like the reference header. */
body.mls-site .mls-header .mls-nav a.is-active,
body.mls-site .mls-header .mls-mobile-nav a.is-active {
  color: var(--mls-brand-green) !important;
  font-weight: 700;
  text-decoration: underline;
  text-decoration-thickness: 2px;
  text-underline-offset: 0.5em;
}

.mls-nav {
  display: none;
  align-items: center;
  gap: 0.95rem;
  font-size: 0.98rem;
  flex: 0 0 auto;
}

.mls-nav a {
  text-decoration: none;
  color: var(--mls-ink);
}

.mls-nav__cta,
.mls-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0.7rem 1.15rem;
  text-decoration: none;
  font-weight: 600;
  letter-spacing: 0.02em;
  border: 1px solid transparent;
  transition: background 0.2s ease, color 0.2s ease, border-color 0.2s ease;
}

.mls-nav__cta,
.mls-btn--gold {
  background: var(--mls-gold);
  color: #fff !important;
}

.mls-nav__cta:hover,
.mls-btn--gold:hover {
  background: var(--mls-gold-2);
}

.mls-nav__translate {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
  width: 2.25rem;
  height: 2.25rem;
  padding: 0;
  border: 1px solid rgba(23, 41, 42, 0.28);
  border-radius: 999px;
  background: transparent;
  color: var(--mls-ink);
  font: inherit;
  font-size: 0.78rem;
  font-weight: 700;
  letter-spacing: 0.02em;
  line-height: 1;
  cursor: pointer;
  transition: background 0.2s ease, color 0.2s ease, border-color 0.2s ease;
}

.mls-nav__translate:hover,
.mls-nav__translate:focus-visible {
  border-color: var(--mls-gold);
  background: var(--mls-gold);
  color: #fff;
}

.mls-google-translate {
  position: absolute;
  width: 1px;
  height: 1px;
  margin: -1px;
  padding: 0;
  overflow: hidden;
  clip: rect(0 0 0 0);
  clip-path: inset(50%);
  white-space: nowrap;
  border: 0;
}

.mls-btn--pill {
  border-radius: 999px;
  padding: 0.75rem 1.4rem;
}

.mls-btn--ghost {
  border-color: rgba(23, 41, 42, 0.35);
  color: var(--mls-ink) !important;
}

/* Mobile menu button ---------------------------------------------------------
   A soft rounded square instead of a bare outlined box, with the bars folding
   into a cross while the menu is open. The open state is driven by the
   aria-expanded attribute the toggle script already maintains, so the button
   also reports its state properly for assistive technology. */
.mls-nav-toggle {
  width: 2.75rem;
  height: 2.75rem;
  padding: 0;
  display: grid;
  place-items: center;
  grid-auto-rows: 2px;
  /* place-items centres each bar in its cell; align/justify-content centre the
     three-row track itself, otherwise the bars sit at the top of the button. */
  align-content: center;
  justify-content: center;
  gap: 5px;
  border: 1px solid rgba(23, 41, 42, 0.1);
  border-radius: 13px;
  background: var(--mls-bg-2);
  color: var(--mls-ink);
  cursor: pointer;
  -webkit-tap-highlight-color: transparent;
  transition: background 0.2s ease, border-color 0.2s ease, box-shadow 0.2s ease;
}

.mls-nav-toggle:hover {
  background: #fff;
  border-color: rgba(23, 41, 42, 0.24);
  box-shadow: 0 6px 16px rgba(23, 41, 42, 0.12);
}

.mls-nav-toggle:focus-visible {
  outline: none;
  border-color: var(--mls-gold);
  box-shadow: 0 0 0 3px rgba(79, 137, 98, 0.25);
}

.mls-nav-toggle span:not(.screen-reader-text) {
  display: block;
  width: 18px;
  height: 2px;
  border-radius: 999px;
  background: currentColor;
  transition: transform 0.25s ease, opacity 0.18s ease;
}

/* Open: top and bottom bars meet in the middle and cross, the middle one fades.
   The bars sit on a 7px grid pitch (2px bar + 5px gap), hence the offsets. */
.mls-nav-toggle[aria-expanded="true"] {
  background: #fff;
  border-color: rgba(23, 41, 42, 0.24);
}

.mls-nav-toggle[aria-expanded="true"] span:nth-of-type(2) {
  transform: translateY(7px) rotate(45deg);
}

.mls-nav-toggle[aria-expanded="true"] span:nth-of-type(3) {
  opacity: 0;
  transform: scaleX(0.3);
}

.mls-nav-toggle[aria-expanded="true"] span:nth-of-type(4) {
  transform: translateY(-7px) rotate(-45deg);
}

.mls-mobile-nav {
  display: grid;
  gap: 0.75rem;
  padding: 0 1.25rem 1.1rem;
}

.mls-mobile-nav[hidden],
.mls-mobile-drop__list[hidden] {
  display: none;
}

.mls-mobile-nav a {
  text-decoration: none;
  color: var(--mls-ink);
}

.mls-mobile-nav .mls-nav__translate {
  justify-self: start;
  margin-top: 0.15rem;
}

/* The hero is kept short on purpose: a tall box would crop the wide panorama
   down to a zoomed-in slice of it. */
.mls-hero {
  min-height: clamp(24rem, 46vh, 40rem);
  display: grid;
  /* Two rows now (copy, then the search bar): centre the pair as a group. */
  align-content: center;
  place-items: center;
  padding: 2.5rem 1.25rem 2.75rem;
  background:
    linear-gradient(180deg, rgba(8, 18, 26, 0.12) 0%, rgba(8, 18, 26, 0.24) 100%),
    url("../images/hero-landscape.webp") center 45% / cover no-repeat;
}

/* width:100% + min-width:0 matters: the hero is a grid with place-items:center,
   which sizes this item to its content's max-content width — and the search
   form's intrinsic width made the whole block wider than the screen, so on a
   phone the headline text ran off the right edge and was clipped. */
.mls-hero__inner {
  width: 100%;
  min-width: 0;
  max-width: 820px;
  text-align: center;
}

.mls-kicker {
  margin: 0 0 1rem;
  text-transform: uppercase;
  letter-spacing: 0.22em;
  font-size: 0.78rem;
  color: var(--mls-sand);
  text-shadow: 0 1px 10px rgba(12, 26, 21, 0.6);
}

.mls-hero__title {
  margin: 0;
  font-family: "Lora", var(--mls-serif);
  font-weight: 700;
  font-size: clamp(2.3rem, 5.3vw, 4.2rem);
  line-height: 1.12;
  letter-spacing: 0.01em;
  color: #f8f3e9;
  /* Soft dark halo so the headline never clashes with the photo. */
  text-shadow:
    0 1px 3px rgba(0, 0, 0, 0.7),
    0 2px 12px rgba(0, 0, 0, 0.75),
    0 0 30px rgba(0, 0, 0, 0.7),
    0 0 60px rgba(0, 0, 0, 0.5);
}

.mls-hero__text {
  margin: 1rem auto 0;
  max-width: 44rem;
  font-size: 1.12rem;
  line-height: 1.6;
  color: #f5efe3;
  text-shadow:
    0 1px 3px rgba(0, 0, 0, 0.8),
    0 0 16px rgba(0, 0, 0, 0.8),
    0 0 34px rgba(0, 0, 0, 0.6);
}

/* Kicker flanked by two short rules. */
.mls-hero .mls-kicker {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.9rem;
  margin-bottom: 0.75rem;
}

.mls-hero .mls-kicker::before,
.mls-hero .mls-kicker::after {
  content: "";
  width: 3.5rem;
  height: 1px;
  background: currentColor;
  opacity: 0.6;
}

.mls-hero__actions {
  margin-top: 1.5rem;
  display: flex;
  justify-content: center;
  gap: 0.8rem;
  flex-wrap: wrap;
}

/* Two hero CTAs: search + financing, uppercase with an icon. */
.mls-hero__btn {
  gap: 0.55rem;
  padding: 0.85rem 1.5rem;
  border-radius: 4px;
  text-transform: uppercase;
  letter-spacing: 0.07em;
  font-size: 0.82rem;
  font-weight: 700;
}

.mls-hero__btn-icon {
  width: 1.05rem;
  height: 1.05rem;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.8;
  stroke-linecap: round;
  stroke-linejoin: round;
  flex: 0 0 auto;
}

.mls-hero .mls-btn--ghost {
  background: #fff;
  border-color: transparent;
  color: var(--mls-brand-forest) !important;
}

.mls-hero .mls-btn--ghost:hover,
.mls-hero .mls-btn--ghost:focus-visible {
  background: var(--mls-brand-forest);
  color: #fff !important;
}

.mls-listings {
  padding: 1rem 1.25rem 4.5rem;
  max-width: 1180px;
  margin: 0 auto;
}

.mls-listings__intro {
  max-width: 40rem;
  margin-bottom: 2rem;
}

.mls-section-title,
.mls-trust h2,
.mls-cta h2,
.mls-page__title {
  font-family: var(--mls-serif);
  font-weight: 600;
  line-height: 1.15;
  color: var(--mls-ink);
}

.mls-section-title {
  margin: 0 0 0.7rem;
  font-size: clamp(1.8rem, 3vw, 2.6rem);
}

.mls-section-text {
  margin: 0;
  color: var(--mls-muted);
}

.mls-section-text__link {
  font-weight: 700;
  color: var(--mls-brand-forest);
  text-decoration: underline;
  text-underline-offset: 0.2em;
}

.mls-section-text__link:hover,
.mls-section-text__link:focus-visible {
  color: var(--mls-brand-green);
}

.mls-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1.1rem;
}

.mls-card {
  background: var(--mls-paper);
  color: var(--mls-ink);
  overflow: hidden;
  display: flex;
  flex-direction: column;
  min-height: 100%;
  border: 1px solid rgba(23, 41, 42, 0.08);
  transition: transform 0.18s ease, box-shadow 0.18s ease;
}

.mls-card:hover {
  transform: translateY(-3px);
  box-shadow: 0 12px 28px rgba(23, 41, 42, 0.14);
}

.mls-card a {
  color: inherit;
  text-decoration: none;
}

.mls-card__media {
  position: relative;
  display: block;
  aspect-ratio: 4 / 3;
  background: #e4ede6;
  overflow: hidden;
}

.mls-card__media img,
.mls-card__fallback {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.mls-card__fallback {
  background:
    linear-gradient(160deg, #7fae8e 0%, #4f8962 60%, #3c5644 100%);
}

.mls-card__sold {
  position: absolute;
  top: 0.8rem;
  left: 0.8rem;
  background: var(--mls-sold);
  color: #fff;
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.12em;
  padding: 0.28rem 0.5rem;
}

/* Estatik's Labels are coloured pills (the colour comes from the label itself).
   Its own white-text rule only covers its listings grid, so in the single
   listing gallery the text inherited the dark ink colour; white reads on every
   colour the editor can pick, and matches the chips on our cards. */
.es-gallery__image .es-badges .es-badge,
.es-gallery__image .es-badges .es-badge a {
  color: #fff;
}

/* Sit the label flush with the left edge of the photo and drop it a little below
   the top, instead of Estatik's inset corner placement. Estatik only styles
   position/z-index/padding here, so these two properties are ours to set. */
.es-gallery__image .es-badges {
  top: 2.5rem;
  left: 0;
  margin-left: 0;
}

/* Estatik gives each badge a 4px margin; drop the left one so the chip touches
   the edge of the photo like the one on our cards. */
.es-gallery__image .es-badges .es-badge {
  margin-left: 0;
}

/* Estatik's Labels (ticked in the listing editor) sit over the card photo, flush
   with its left edge like the badge on the listing page. */
.mls-card__labels {
  position: absolute;
  top: 2.5rem;
  left: 0;
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-start;
  gap: 0.3rem;
  max-width: 80%;
}

/* The SOLD flag owns the top-left corner of the card; drop the labels clear of it. */
.mls-card__media:has(.mls-card__sold) .mls-card__labels {
  top: 4.1rem;
}

.mls-card__label {
  background: var(--mls-brand-forest);
  color: #fff;
  font-size: 0.66rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  line-height: 1.2;
  text-transform: uppercase;
  padding: 0.28rem 0.55rem;
  border-radius: 999px;
}

.mls-card__body {
  padding: 1.05rem 1.1rem 1.2rem;
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
  flex: 1;
}

.mls-card__title {
  margin: 0;
  font-family: var(--mls-serif);
  font-size: 1.55rem;
  font-weight: 600;
}

.mls-card__badge,
.mls-card__address {
  margin: 0;
  font-size: 0.92rem;
}

.mls-card__badge {
  color: #686868;
}

.mls-card__price {
  margin: 0.4rem 0 0;
  display: flex;
  gap: 0.4rem;
  align-items: baseline;
}

.mls-card__price span {
  color: #686868;
  font-size: 0.9rem;
}

.mls-card__link {
  margin-top: auto;
  padding-top: 0.7rem;
  font-weight: 600;
  font-size: 0.92rem;
  color: var(--mls-gold);
}

.mls-card.is-sold .mls-card__media img {
  filter: grayscale(0.35) brightness(0.9);
}

.mls-listings__cta {
  display: flex;
  justify-content: center;
  margin-top: 2.2rem;
}

.mls-trust {
  background: var(--mls-bg-2);
  border-top: 1px solid rgba(23, 41, 42, 0.08);
  border-bottom: 1px solid rgba(23, 41, 42, 0.08);
}

.mls-trust__inner {
  max-width: 1180px;
  margin: 0 auto;
  padding: 3.5rem 1.25rem;
  display: grid;
  gap: 2rem;
}

.mls-trust__col {
  display: grid;
  gap: 0.55rem;
  justify-items: center;
  text-align: center;
}

.mls-trust__icon {
  width: 7rem;
  height: auto;
  margin-bottom: 0.35rem;
}

.mls-trust h2 {
  margin: 0;
  font-family: var(--mls-sans);
  font-size: 1.05rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--mls-brand-forest);
}

.mls-trust p {
  margin: 0;
  color: var(--mls-muted);
  max-width: 22rem;
}

.mls-cta {
  padding: 4.5rem 1.25rem;
  text-align: center;
  background:
    radial-gradient(700px 240px at 50% 0%, rgba(252, 216, 161, 0.35), transparent 70%),
    var(--mls-gold);
  color: #fff;
}

.mls-cta__inner {
  max-width: 40rem;
  margin: 0 auto;
}

.mls-cta h2 {
  margin: 0;
  font-size: clamp(2rem, 4vw, 3rem);
  color: #fff;
}

.mls-cta p {
  color: rgba(255, 255, 255, 0.9);
  margin: 1rem 0 1.6rem;
}

.mls-cta .mls-btn--gold {
  background: var(--mls-ink);
  color: #fff !important;
}

.mls-cta .mls-btn--gold:hover {
  background: #000;
}

/* Testimonials: a centred row of cards instead of a scroller ----------------
   The quotes used to live in a horizontally scrolling strip, so most of them
   hid behind a swipe and the section read like a carousel. A wrapping flex row
   shows every card at once and centres the leftovers when the number of quotes
   does not divide evenly — the count comes from the site settings, so no fixed
   column count is assumed. */
.mls-quotes {
  padding: 0 1.25rem 4.5rem;
  max-width: 1180px;
  margin: 0 auto;
}

.mls-quotes__track {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  align-items: stretch;
  gap: 1.1rem;
}

.mls-quote {
  flex: 1 1 300px;
  max-width: 372px;
  margin: 0;
  display: flex;
  flex-direction: column;
  padding: 1.45rem 1.4rem 1.3rem;
  background: var(--mls-paper);
  color: var(--mls-ink);
  border: 1px solid rgba(23, 41, 42, 0.08);
  border-radius: 16px;
  box-shadow: 0 10px 26px rgba(23, 41, 42, 0.05);
  transition: transform 0.25s ease, box-shadow 0.25s ease, border-color 0.25s ease;
}

.mls-quote:hover {
  transform: translateY(-2px);
  border-color: rgba(79, 137, 98, 0.35);
  box-shadow: 0 16px 34px rgba(23, 41, 42, 0.1);
}

.mls-quote__stars {
  margin: 0 0 0.65rem;
  color: #c98a2e;
  font-size: 0.95rem;
  letter-spacing: 0.18em;
}

.mls-quote__text {
  margin: 0;
  font-size: 0.98rem;
  line-height: 1.6;
}

/* margin-top:auto keeps every author line on the same baseline across a row. */
.mls-quote footer {
  margin-top: auto;
  padding-top: 1rem;
  color: var(--mls-muted);
  font-size: 0.88rem;
  font-weight: 600;
}

@media (max-width: 640px) {
  .mls-quote {
    flex-basis: 100%;
    max-width: none;
  }
}

.mls-footer {
  border-top: 1px solid rgba(23, 41, 42, 0.08);
  background: #fff;
  padding: 3rem 1.25rem 1.5rem;
}

.mls-footer__inner {
  max-width: 1180px;
  margin: 0 auto;
  text-align: center;
}

/* Footer grid: brand/social on the left, subscribe alerts on the right. */
.mls-footer__grid {
  display: grid;
  grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr);
  column-gap: 2.5rem;
  row-gap: 1.8rem;
  align-items: start;
  justify-items: center;
  text-align: center;
  padding-bottom: 0;
  border-bottom: 0;
}

.mls-footer__brand {
  display: flex;
  flex-direction: column;
  align-items: center;
}

.mls-footer__tagline {
  font-family: var(--mls-serif);
  font-size: 1.6rem;
  margin: 0 0 0.7rem;
}

.mls-footer__contact {
  margin: 0 0 1.1rem;
  color: var(--mls-muted);
  font-size: 1rem;
}

.mls-footer__contact a {
  text-decoration: none;
}

.mls-footer__contact a:hover {
  color: var(--mls-gold);
}

.mls-footer__social {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: 0.55rem;
  list-style: none;
  margin: 0;
  padding: 0;
}

.mls-footer__social-link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2.6rem;
  height: 2.6rem;
  border-radius: 999px;
  border: 0;
  color: #fff !important;
  text-decoration: none;
  transition: filter 0.15s ease, transform 0.15s ease;
}

.mls-footer__social-link .mls-footer__social-icon {
  fill: currentColor;
}

.mls-footer__social-link:hover,
.mls-footer__social-link:focus {
  filter: brightness(1.15);
  transform: translateY(-2px);
  outline: none;
}

.mls-footer__social-link--facebook {
  background: #365493;
}

.mls-footer__social-link--twitter {
  background: #000;
}

.mls-footer__social-link--instagram {
  background: radial-gradient(circle at 30% 107%, #fdf497 0%, #fd5949 45%, #d6249f 60%, #285aeb 90%);
}

.mls-footer__social-link--youtube {
  background: #ff0000;
}

.mls-footer__social-link--linkedin {
  background: #0a66c2;
}

.mls-footer__social-icon {
  display: block;
}

.mls-footer__social .screen-reader-text {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

.mls-footer__heading {
  margin: 0 0 0.65rem;
  font-size: 0.8rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  line-height: 1.3;
  color: var(--mls-gold, #b98a2f);
}

.mls-footer__alerts-desc {
  margin: 0 0 0.9rem;
  font-size: 0.9rem;
  line-height: 1.4;
  color: var(--mls-muted);
}

.mls-footer__alerts-stack {
  display: flex;
  flex-direction: column;
  align-items: center;
  width: 100%;
}

.mls-footer-subscribe__open {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 42px;
  padding: 0.55rem 1.15rem;
  border: 0;
  border-radius: 8px;
  background: var(--mls-gold, #b98a2f);
  color: #fff;
  font-size: 0.95rem;
  font-weight: 700;
  font-family: inherit;
  cursor: pointer;
  width: 11.5rem;
  max-width: 100%;
  transition: filter 0.15s ease;
}

.mls-footer-subscribe__open:hover,
.mls-footer-subscribe__open:focus {
  filter: brightness(1.06);
  outline: none;
}

/* Subscribe modal (lazy CRM form iframe). */
.mls-subscribe-modal {
  padding: 0;
  border: 0;
  border-radius: 14px;
  max-width: min(440px, calc(100vw - 2rem));
  width: 100%;
  margin: 0;
  position: fixed;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  overflow: visible;
  background: transparent;
}

.mls-subscribe-modal[open] {
  position: fixed;
  inset: auto;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  margin: 0;
}

.mls-subscribe-modal::backdrop {
  background: rgba(10, 18, 12, 0.72);
  backdrop-filter: blur(2px);
}

.mls-subscribe-modal__panel {
  position: relative;
  background: #fff;
  border-radius: 14px;
  border: 1px solid rgba(26, 48, 31, 0.1);
  overflow: hidden;
}

.mls-subscribe-modal__head {
  position: absolute;
  top: 0.65rem;
  right: 0.65rem;
  z-index: 2;
}

.mls-subscribe-modal__close {
  appearance: none;
  border: 0;
  background: rgba(26, 48, 31, 0.06);
  color: #17292a;
  width: 2rem;
  height: 2rem;
  border-radius: 999px;
  font-size: 1.35rem;
  line-height: 1;
  cursor: pointer;
  flex-shrink: 0;
}

.mls-subscribe-modal__body {
  padding: 0;
}

@media (max-width: 760px) {
  .mls-footer__grid {
    grid-template-columns: 1fr;
  }
}

.mls-footer__meta {
  margin: 1.6rem 0 0;
  color: var(--mls-muted);
  font-size: 0.98rem;
}

.mls-footer__meta a {
  text-decoration: none;
}

.mls-page {
  background: var(--mls-bg);
  color: var(--mls-ink);
  min-height: 60vh;
}

.mls-page__inner {
  max-width: 860px;
  margin: 0 auto;
  padding: 3rem 1.25rem 4rem;
}

.mls-page__title {
  color: var(--mls-ink);
  font-size: 2.4rem;
  margin: 0 0 1.2rem;
}

.mls-page__body :where(p, li) {
  line-height: 1.7;
}

@media (min-width: 720px) {
  .mls-nav {
    display: flex;
  }

  .mls-nav-toggle,
  .mls-mobile-nav {
    display: none;
  }

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

  .mls-trust__inner {
    grid-template-columns: repeat(3, 1fr);
    gap: 2.5rem;
  }
}

.mls-search {
  margin: 2rem auto 0;
  max-width: 1180px;
  width: 100%;
  /* border-box keeps the 0.7rem of padding inside that width. As a content-box
     the bar was padding wider than the column holding it — 1202px inside the
     archive's 1180px column — so it could never line up with the map. */
  box-sizing: border-box;
  display: grid;
  gap: 0.55rem;
  background: rgba(255, 255, 255, 0.96);
  padding: 0.7rem;
  text-align: left;
}

/* The bar and the map are the same column: same max width, same 1.25rem gutter
   from the page edges, so they line up exactly at every viewport. */
.mls-hero__search {
  width: 100%;
  max-width: 1180px;
}

.mls-hero__search .mls-search {
  margin-top: 1.5rem;
}

.mls-search input,
.mls-search select {
  width: 100%;
  border: 1px solid rgba(23, 41, 42, 0.15);
  background: #fff;
  color: var(--mls-ink);
  padding: 0.7rem 0.75rem;
  font: inherit;
}

.mls-search .mls-btn {
  width: 100%;
}

.mls-map {
  max-width: 1180px;
  margin: 0 auto;
  padding: 0 1.25rem 3.5rem;
}

.mls-map__intro {
  max-width: 40rem;
  margin-bottom: 1.2rem;
}

.mls-map__canvas {
  /* Tall enough that fitting every parcel lands one zoom level closer in. */
  position: relative;
  height: 660px;
  width: 100%;
  background: var(--mls-bg-2);
  z-index: 1;
}

/* Shown inside the canvas while the map waits for the visitor's first gesture
   (see lazyLoadMapAssets in frontend.js): it replaces what would otherwise be
   an empty box for someone who only reads the first screen. */
.mls-map__canvas.is-waiting {
  background:
    radial-gradient(circle at 50% 45%, rgba(79, 137, 98, 0.10), transparent 62%),
    var(--mls-bg-2);
}

.mls-map__start {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  display: inline-flex;
  align-items: center;
  gap: .55rem;
  padding: .95rem 1.6rem;
  border: 1px solid transparent;
  border-radius: 4px;
  background: var(--mls-gold);
  color: #fff;
  font-family: var(--mls-sans);
  font-size: 1rem;
  font-weight: 700;
  letter-spacing: .02em;
  cursor: pointer;
  box-shadow: 0 6px 18px rgba(23, 41, 42, .22);
  transition: background .2s ease;
}

.mls-map__start::before {
  content: "";
  width: 1.05rem;
  height: 1.05rem;
  background: currentColor;
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M9 3 3 5.4v15.2L9 18.2l6 2.4 6-2.4V3l-6 2.4z' fill='none' stroke='black' stroke-width='1.8'/%3E%3C/svg%3E") center / contain no-repeat;
  mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M9 3 3 5.4v15.2L9 18.2l6 2.4 6-2.4V3l-6 2.4z' fill='none' stroke='black' stroke-width='1.8'/%3E%3C/svg%3E") center / contain no-repeat;
}

.mls-map__start:hover,
.mls-map__start:focus-visible {
  background: var(--mls-gold-2);
}

.mls-map__canvas:has(.mls-gmap) {
  height: auto;
}

.mls-map__canvas .leaflet-container {
  height: 100%;
  width: 100%;
  font-family: var(--mls-sans);
}

.mls-map-info {
  display: block;
  width: 270px;
  max-width: min(270px, 72vw);
  overflow: hidden;
  border-radius: 14px;
  color: #17292a;
  background: #fff;
  box-shadow: 0 12px 30px rgba(18, 45, 34, 0.16);
  font-family: var(--mls-sans);
}

/* The whole card is the link, so a popup with many parcels never depends on
   hitting a small "View details". */
.mls-map-info--link {
  text-decoration: none;
  cursor: pointer;
}

.mls-map-info img {
  width: 100%;
  height: 142px;
  object-fit: cover;
  display: block;
  margin: 0;
}

.mls-map-info strong {
  display: block;
  padding: 12px 14px 0;
  color: #18382b;
  font-size: 0.98rem;
  line-height: 1.35;
}

.mls-map-info__price {
  display: block;
  padding: 5px 14px 0;
  color: #b17b2a;
  font-size: 1.05rem;
  font-weight: 800;
}

.mls-map-info__cta {
  display: inline-block;
  margin: 10px 14px 14px;
  padding: 7px 11px;
  border-radius: 7px;
  color: #fff;
  background: #1f5b3d;
  font-size: 0.78rem;
  font-weight: 700;
  text-decoration: none;
}

.mls-map-info__nav {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.6rem;
  padding: 10px 14px 14px;
  color: #587064;
  font-size: 0.78rem;
  font-weight: 700;
}

.mls-map-info__nav button {
  width: 30px;
  height: 30px;
  border: 0;
  border-radius: 50%;
  color: #fff;
  background: #1f5b3d;
  font-size: 1.1rem;
  line-height: 1;
  cursor: pointer;
}

.mls-map-info__nav button:hover {
  background: #16462f;
}

.mls-map-info a {
  color: #3c5644;
  font-weight: 600;
}

/* One pin, several listings: stacked cards inside the info window. */
.mls-map-info-group {
  max-width: 240px;
}

.mls-map-info-group__item + .mls-map-info-group__item {
  margin-top: 12px;
  padding-top: 12px;
  border-top: 1px solid #e2e6e3;
}

.mls-gmap {
  display: grid;
  grid-template-columns: minmax(220px, 280px) 1fr;
  height: 480px;
  background: #fff;
}

.mls-gmap__list {
  overflow: auto;
  border-right: 1px solid rgba(23, 41, 42, 0.08);
}

.mls-gmap__row {
  border-bottom: 1px solid rgba(23, 41, 42, 0.08);
}

.mls-gmap__item {
  display: grid;
  gap: 0.15rem;
  width: 100%;
  text-align: left;
  background: transparent;
  border: 0;
  padding: 0.7rem 0.85rem 0.25rem;
  color: #17292a;
  font: inherit;
  cursor: pointer;
}

.mls-gmap__link {
  display: inline-block;
  padding: 0 0.85rem 0.7rem;
  color: #3c5644;
  font-size: 0.78rem;
  font-weight: 600;
}

.mls-gmap__item strong {
  font-size: 0.88rem;
  line-height: 1.3;
}

.mls-gmap__item span {
  color: #686868;
  font-size: 0.82rem;
}

.mls-gmap__row:has(.is-active),
.mls-gmap__row:hover {
  background: #f3f8f5;
}

.mls-gmap__frame {
  width: 100%;
  height: 100%;
  border: 0;
}

@media (max-width: 719px) {
  .mls-gmap {
    grid-template-columns: 1fr;
    grid-template-rows: 260px 220px;
  }

  .mls-gmap__list {
    order: 2;
    border-right: 0;
    border-top: 1px solid rgba(23, 41, 42, 0.08);
  }
}

.mls-nav__item {
  position: relative;
  flex: 0 0 auto;
}

/* Plain text nav links; the dropdown trigger adds a chevron. */
.mls-nav a {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  padding: 0.25rem 0;
  font-weight: 600;
  white-space: nowrap;
  flex: 0 0 auto;
  transition: color 0.18s ease;
}

.mls-nav a:hover,
.mls-nav a:focus-visible {
  color: var(--mls-gold-2) !important;
  text-decoration: none;
}

/* Dropdown trigger chevron. */
.mls-nav__item--drop > a::after {
  content: "";
  width: 7px;
  height: 7px;
  margin-top: -3px;
  border-right: 1.8px solid currentColor;
  border-bottom: 1.8px solid currentColor;
  transform: rotate(45deg);
  transition: transform 0.18s ease;
}

.mls-nav__item--drop:hover > a::after,
.mls-nav__item--drop:focus-within > a::after {
  transform: rotate(-135deg);
  margin-top: 3px;
}

.mls-drop {
  display: none;
  position: absolute;
  top: calc(100% + 0.55rem);
  left: 50%;
  transform: translateX(-50%) translateY(6px);
  min-width: 250px;
  max-height: 70vh;
  overflow: auto;
  margin: 0;
  padding: 0.55rem;
  list-style: none;
  background: var(--mls-paper);
  color: var(--mls-ink);
  border: 1px solid rgba(23, 41, 42, 0.08);
  border-radius: 12px;
  box-shadow: 0 18px 44px rgba(23, 41, 42, 0.18);
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.18s ease, transform 0.18s ease, visibility 0.18s;
  z-index: 50;
}

/* Small pointer arrow connecting the dropdown to the nav item. */
.mls-drop::before {
  content: "";
  position: absolute;
  top: -6px;
  left: 50%;
  transform: translateX(-50%) rotate(45deg);
  width: 12px;
  height: 12px;
  background: var(--mls-paper);
  border-left: 1px solid rgba(23, 41, 42, 0.08);
  border-top: 1px solid rgba(23, 41, 42, 0.08);
}

.mls-drop li + li {
  border-top: 1px solid rgba(23, 41, 42, 0.05);
}

.mls-drop a {
  display: flex;
  align-items: center;
  gap: 0.6rem;
  padding: 0.55rem 0.7rem;
  color: var(--mls-ink) !important;
  font-weight: 500;
  text-decoration: none;
  border-radius: 8px;
  transition: background 0.15s ease, color 0.15s ease, padding-left 0.15s ease;
}

/* Land-pin bullet for each state row. */
.mls-drop a::before {
  content: "";
  flex-shrink: 0;
  width: 8px;
  height: 8px;
  border-radius: 50% 50% 50% 0;
  transform: rotate(-45deg);
  background: var(--mls-gold);
  opacity: 0.55;
  transition: background 0.15s ease, opacity 0.15s ease;
}

.mls-drop a:hover,
.mls-drop a:focus-visible {
  background: var(--mls-bg);
  color: var(--mls-gold-2) !important;
  padding-left: 0.95rem;
}

.mls-drop a:hover::before,
.mls-drop a:focus-visible::before {
  background: var(--mls-gold);
  opacity: 1;
}

.mls-nav__item--drop:hover .mls-drop,
.mls-nav__item--drop:focus-within .mls-drop {
  display: block;
  opacity: 1;
  visibility: visible;
  transform: translateX(-50%) translateY(0);
}

.mls-mobile-drop__btn {
  display: block;
  width: 100%;
  text-align: left;
  background: transparent;
  border: 0;
  color: var(--mls-ink);
  font: inherit;
  padding: 0;
}

.mls-mobile-drop__list {
  display: grid;
  gap: 0.45rem;
  padding: 0.4rem 0 0.6rem 0.8rem;
}

.mls-disclaimer {
  margin: 1.4rem auto 0;
  max-width: 46rem;
  font-size: 0.8rem;
  line-height: 1.55;
  color: var(--mls-muted);
}

.mls-disclaimer p {
  margin: 0 0 0.4rem;
}

.mls-contact-page {
  background: #fff;
  padding: 0;
}

.mls-contact-hero {
  background: #fff;
}

.mls-contact-hero__inner,
.mls-contact-form-section__inner {
  max-width: 760px;
  margin: 0 auto;
  padding: 0 1.5rem;
}

.mls-contact-hero__inner {
  padding-top: 4.5rem;
  padding-bottom: 1.5rem;
}

.mls-contact-hero__title {
  font-family: var(--mls-serif);
  font-weight: 500;
  font-size: clamp(1.75rem, 3vw, 2.15rem);
  line-height: 1.25;
  color: var(--mls-ink);
  margin: 0 0 1.1rem;
  max-width: 26ch;
}

.mls-contact-hero__intro {
  margin: 0;
  max-width: 30rem;
  font-family: var(--mls-serif);
  font-size: 1.08rem;
  line-height: 1.7;
  color: #3d4a44;
}

.mls-contact-hero__info {
  margin-top: 20px;
}

.mls-contact-hero__info p {
  margin: 0;
  font-family: var(--mls-serif);
  font-size: 1.05rem;
  line-height: 1.8;
  color: #17292a;
}

.mls-contact-hero__info a {
  color: #4f8962;
  font-weight: 600;
  text-decoration: none;
}

.mls-contact-hero__info a:hover {
  text-decoration: underline;
}

.mls-contact-form-section {
  background: #fff;
  padding: 1.5rem 0 4.5rem;
}

.mls-form {
  display: grid;
  gap: 0.85rem;
  background: #fff;
  padding: 1.4rem;
}

.mls-form--contact {
  background: transparent;
  padding: 0;
  max-width: 32rem;
  gap: 1.05rem;
}

.mls-form--contact input,
.mls-form--contact textarea {
  border-radius: 4px;
  padding: 0.85rem 0.9rem;
}

.mls-form__submit {
  justify-self: start;
  min-width: 8.5rem;
  border-radius: 999px;
  margin-top: 0.35rem;
}

.mls-contact-band {
  background: var(--mls-gold-2);
  color: #fff;
}

.mls-contact-band__inner {
  max-width: 1100px;
  margin: 0 auto;
  padding: 3.5rem 1.5rem 3.75rem;
  display: grid;
  gap: 2.5rem;
}

.mls-contact-band__name {
  font-family: var(--mls-serif);
  font-weight: 600;
  font-size: clamp(1.8rem, 3vw, 2.4rem);
  line-height: 1.15;
  margin: 0 0 0.85rem;
  color: #fff;
}

.mls-contact-band__tagline,
.mls-contact-band__support {
  margin: 0 0 0.35rem;
  color: rgba(255, 255, 255, 0.88);
  font-size: 1.02rem;
}

.mls-contact-band__support {
  margin-bottom: 1.4rem;
}

.mls-contact-band__brand {
  text-align: center;
}

.mls-contact-band__brand .mls-btn--gold {
  background: var(--mls-sand);
  color: var(--mls-ink);
  font-weight: 700;
}

.mls-contact-band__brand .mls-btn--gold:hover {
  background: #ecc98f;
  color: var(--mls-ink);
}

.mls-contact-band__now {
  display: flex;
  flex-direction: column;
  gap: 0.45rem;
}

.mls-contact-band__now-link {
  font-family: var(--mls-serif);
  font-size: clamp(1.6rem, 3vw, 2.1rem);
  font-weight: 600;
  color: #fff !important;
  text-decoration: underline;
  text-underline-offset: 0.28em;
  width: fit-content;
}

.mls-contact-band__detail {
  margin: 0;
  font-size: 0.95rem;
  color: rgba(255, 255, 255, 0.8);
}

.mls-contact-band__detail a {
  color: inherit;
  text-decoration: none;
}

.mls-contact-band__detail a:hover {
  color: var(--mls-sand);
}

body.mls-contact .mls-footer__tagline {
  display: none;
}

.mls-form label {
  display: grid;
  gap: 0.35rem;
  font-size: 0.92rem;
}

.mls-form input,
.mls-form textarea {
  border: 1px solid rgba(23, 41, 42, 0.15);
  padding: 0.7rem 0.75rem;
  font: inherit;
}

.mls-hp {
  position: absolute;
  left: -9999px;
  height: 0;
  overflow: hidden;
}

.mls-notice {
  padding: 0.75rem 0.9rem;
  margin-bottom: 1rem;
}

.mls-notice--ok {
  background: #e4f3e8;
}

.mls-notice--err {
  background: #f8e4e4;
}

.mls-kicker--ink {
  color: #3c5644;
}

/* About Us page: story column beside the family photo, with a feature strip. */
.mls-about {
  background: #fff;
}

.mls-about__grid {
  display: grid;
  grid-template-columns: 1fr;
}

.mls-about__copy {
  max-width: 44rem;
  margin: 0 auto;
  padding: 3rem 1.5rem;
}

.mls-about__kicker {
  display: flex;
  align-items: center;
  gap: 0.9rem;
  margin-bottom: 1.1rem;
  color: var(--mls-brand-green);
  text-shadow: none;
}

.mls-about__kicker::before,
.mls-about__kicker::after {
  content: "";
  width: 3.5rem;
  height: 1px;
  background: currentColor;
  opacity: 0.6;
}

.mls-about__title {
  margin: 0 0 1.35rem;
  font-family: var(--mls-serif);
  font-weight: 700;
  font-size: clamp(2.2rem, 4.9vw, 3.9rem);
  line-height: 1.03;
  letter-spacing: -0.004em;
}

.mls-about__line {
  display: block;
}

.mls-about__line--navy {
  color: #2a2c63;
}

.mls-about__line--green {
  color: var(--mls-brand-forest);
}

.mls-about__copy > p:not(.mls-kicker) {
  margin: 0 0 1.2rem;
  font-size: 1.06rem;
  line-height: 1.75;
  color: var(--mls-text);
}

.mls-about__action {
  margin-top: 1.7rem;
}

.mls-about__action .mls-btn {
  padding: 1.05rem 2rem;
  font-size: 0.95rem;
}

.mls-about__action .mls-hero__btn-icon {
  width: 1.3rem;
  height: 1.3rem;
}

.mls-about__action .mls-btn--gold {
  background: var(--mls-brand-forest);
}

.mls-about__action .mls-btn--gold:hover,
.mls-about__action .mls-btn--gold:focus-visible {
  background: var(--mls-brand-green);
}

.mls-about__media {
  min-height: 18rem;
}

.mls-about__media img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.mls-about__features {
  display: grid;
  grid-template-columns: 1fr;
  background: #eef4ec;
  padding: 0 1.25rem;
}

.mls-about__feature {
  padding: 2rem 1rem;
  text-align: center;
  border-top: 1px solid rgba(23, 41, 42, 0.08);
}

.mls-about__feature-icon svg {
  width: 2.5rem;
  height: 2.5rem;
  fill: var(--mls-brand-forest);
}

.mls-about__feature h2 {
  margin: 0.75rem 0 0.35rem;
  font-family: var(--mls-sans);
  font-size: 1.05rem;
  font-weight: 700;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  color: #2a2c63;
}

.mls-about__feature p {
  margin: 0;
  color: var(--mls-muted);
}

.mls-about .mls-btn {
  color: #fff !important;
}

@media (min-width: 900px) {
  .mls-about__grid {
    grid-template-columns: 1.05fr 0.95fr;
    align-items: stretch;
  }

  .mls-about__copy {
    max-width: none;
    margin: 0;
    padding: 4rem 3.5rem 4rem max(1.5rem, calc((100vw - 1180px) / 2));
  }

  /* Soft white fade on the photo's left edge, blending it into the copy. */
  .mls-about__media {
    position: relative;
  }

  .mls-about__media::before {
    content: "";
    position: absolute;
    inset: 0;
    z-index: 1;
    pointer-events: none;
    background: linear-gradient(
      90deg,
      #fff 0%,
      rgba(255, 255, 255, 0.92) 6%,
      rgba(255, 255, 255, 0) 34%
    );
  }

  .mls-about__features {
    grid-template-columns: repeat(4, 1fr);
  }

  .mls-about__feature {
    border-top: 0;
    border-left: 1px solid rgba(23, 41, 42, 0.08);
  }

  .mls-about__feature:first-child {
    border-left: 0;
  }
}

body.single-properties,
body.tax-es_location,
body.tax-es_category,
body.tax-es_type,
body.tax-es_label {
  background: var(--mls-paper);
  color: var(--mls-ink);
}

.post-type-archive-properties .page-header .page-title,
.tax-es_location .page-header .page-title,
.single-properties .property-title,
.single-properties .es-address,
.single-properties .es-single,
.single-properties .es-property-section__title,
.single-properties .es-property-field,
.single-properties .es-breadcrumbs {
  color: var(--mls-ink);
}

.mls-listing {
  max-width: 1180px;
  margin: 0 auto;
  padding: 1.5rem 1.25rem 3rem;
}

.mls-listing a {
  color: var(--mls-ink);
}

.mls-listing a:hover {
  color: var(--mls-gold);
}

.single-properties .property-title {
  font-family: var(--mls-serif);
  font-size: clamp(1.6rem, 3vw, 2.35rem);
  font-weight: 600;
  line-height: 1.2;
}

.single-properties .es-price {
  font-family: var(--mls-serif);
  color: var(--mls-ink);
}

/* Single listing price: a soft brand-green chip so it reads first, without shouting. */
.single-properties .es-single__header-right .es-price-container .es-price {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  /* Estatik offsets this element with top:-5px; keep the chip optically centred. */
  position: static;
  top: 0;
  /* Cormorant Garamond has a tall ascent, so with line-height:1 the glyph body
     sits above the box centre. The +/- 0.1em padding pair shifts it back down
     optically, and being em-based it scales with every font-size. */
  padding: calc(0.45rem - 0.1em) 1.15rem calc(0.45rem + 0.1em);
  background: rgba(79, 137, 98, 0.12);
  border: 1px solid rgba(79, 137, 98, 0.32);
  border-radius: 999px;
  color: var(--mls-gold-2);
  font-size: 2.4rem;
  font-weight: 700;
  line-height: 1;
  letter-spacing: 0.01em;
  white-space: nowrap;
}

@media (max-width: 760px) {
  .single-properties .es-single__header-right .es-price-container .es-price {
    font-size: 1.9rem;
    padding: 0.2rem 0.9rem 0.6rem;
  }
}

.single-properties .es-property-section__title {
  font-family: var(--mls-serif);
}

.single-properties .es-property-field--post_content .es-property-field__label,
.single-properties .es-full-content-link {
  display: none;
}

.single-properties .es-entity-field--post_content--collapsed .es-entity-field__value {
  max-height: none;
  overflow: visible;
}

.single-properties .es-property-field--post_content {
  display: block;
}

.single-properties .es-property-field--post_content .es-property-field__value,
.single-properties .es-property-field--post_content .es-property-field__value p,
.single-properties .es-property-field--post_content .es-property-field__value li {
  color: var(--mls-ink);
}

.single-properties .es-property-field--post_content img {
  max-width: 100%;
  height: auto;
}

.single-properties .es-dymanic-content,
.single-properties .es-dymanic-content span {
  color: var(--mls-ink) !important;
}

.mls-listing-map-wrap {
  width: 100%;
}

.mls-listing-map {
  height: 350px;
  width: 100%;
  overflow: hidden;
  background: #e8e4dc;
}

.mls-listing-map__frame {
  display: block;
  width: 100%;
  height: 350px;
  border: 0;
}

.mls-listing-map__open {
  display: inline-block;
  margin-top: 0.75rem;
  font-weight: 600;
}

.mls-archive-hero {
  padding: 3.2rem 1.25rem 2.4rem;
  background:
    linear-gradient(180deg, rgba(23, 41, 42, 0.55) 0%, rgba(23, 41, 42, 0.4) 100%),
    url("../images/hero-landscape.webp") center 45% / cover no-repeat;
}

.mls-archive-hero__inner {
  max-width: 1180px;
  margin: 0 auto;
}

.mls-archive-hero__title {
  margin: 0;
  font-family: var(--mls-serif);
  font-weight: 600;
  font-size: clamp(2.1rem, 4.5vw, 3.4rem);
  line-height: 1.1;
  color: #fff;
}

.mls-archive-hero__text {
  margin: 0.9rem 0 0;
  max-width: 40rem;
  color: #fff6f2;
  font-size: 1.05rem;
}

.mls-archive-hero .mls-search {
  margin-left: 0;
}

.mls-states {
  display: flex;
  flex-wrap: wrap;
  gap: 0.45rem;
  margin: 0 0 1.4rem;
}

.mls-states a {
  text-decoration: none;
  color: var(--mls-ink);
  border: 1px solid rgba(23, 41, 42, 0.18);
  padding: 0.35rem 0.75rem;
  font-size: 0.88rem;
  border-radius: 999px;
  background: #fff;
}

.mls-states a:hover,
.mls-states a.is-active {
  background: var(--mls-gold);
  color: #fff;
  border-color: var(--mls-gold);
}

.mls-archive-count {
  margin: 0 0 1.2rem;
  color: var(--mls-muted);
  font-size: 0.95rem;
}

.mls-hide-sold-toggle {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  margin: 0 0 1.4rem;
  color: var(--mls-text, inherit);
  font-size: 0.95rem;
  cursor: pointer;
  user-select: none;
}

.mls-hide-sold-toggle input {
  width: 1.1rem;
  height: 1.1rem;
  accent-color: #b98a2f;
  cursor: pointer;
}

.mls-search__toggle {
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
  color: var(--mls-muted);
  font-size: 0.92rem;
  cursor: pointer;
  user-select: none;
  align-self: center;
}

.mls-search__toggle input {
  accent-color: #b98a2f;
  cursor: pointer;
}

.mls-archive-empty {
  margin: 2rem 0 3rem;
  color: var(--mls-muted);
  font-size: 1.05rem;
}

.mls-pagination,
.mls-archive-listings .navigation.pagination {
  margin-top: 2.4rem;
}

.mls-archive-listings .nav-links {
  display: flex;
  flex-wrap: wrap;
  gap: 0.4rem;
  justify-content: center;
  align-items: center;
}

.mls-archive-listings .page-numbers {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 2.4rem;
  height: 2.4rem;
  padding: 0 0.7rem;
  text-decoration: none;
  color: var(--mls-ink);
  border: 1px solid rgba(23, 41, 42, 0.16);
  background: #fff;
  font-size: 0.92rem;
}

.mls-archive-listings .page-numbers:hover,
.mls-archive-listings .page-numbers.current {
  background: var(--mls-gold);
  color: #fff;
  border-color: var(--mls-gold);
}

@media (max-width: 719px) {
  .single-properties .es-breadcrumbs__item--title {
    display: none;
  }
}

@media (min-width: 720px) {
  .mls-nav {
    display: flex;
  }

  .mls-nav-toggle,
  .mls-mobile-nav {
    display: none;
  }

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

  .mls-trust__inner {
    grid-template-columns: repeat(3, 1fr);
    gap: 2.5rem;
  }

  .mls-search {
    grid-template-columns: 1.4fr 0.9fr 0.7fr 0.7fr auto;
    align-items: stretch;
  }

  .mls-search .mls-btn {
    width: auto;
    white-space: nowrap;
  }

  .mls-contact-hero__inner {
    padding-top: 5.5rem;
  }

  .mls-contact-band__inner {
    grid-template-columns: 1.15fr 0.85fr;
    align-items: start;
    gap: 3rem;
    padding: 4.25rem 1.5rem 4.5rem;
  }

  .mls-contact-band__now {
    padding-top: 0.35rem;
  }
}

@media (min-width: 1024px) {
  .mls-grid {
    grid-template-columns: repeat(3, 1fr);
  }

  .mls-quotes__track {
    grid-auto-flow: row;
    grid-template-columns: repeat(3, 1fr);
    overflow: visible;
  }

  .mls-quotes__track .mls-quote:nth-child(n + 4) {
    display: none;
  }
}

/* Reserve This Parcel button on single listings */
.mls-reserve-wrap {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 12px;
  /* The listing's text blocks are 600px wide inside the 800px column (Estatik's
     sections carry 100px of side padding), so the pair is capped and centred to
     the same measure. */
  max-width: 600px;
  margin: 14px auto 30px;
}

/* The theme header renders its own Request info button; the styled pair below replaces it. */
.es-single .es-btn--request-info {
  display: none !important;
}

/* Estatik's Compare / Save / Share controls are not used on this site: remove
   them in every layout Estatik renders — desktop gallery, mobile gallery and the
   default control bar — together with the rows that hold nothing else, and the
   "Share this property" dialog those buttons open. */
.es-control--property-gallery,
.es-control--mobile-gallery,
.es-control--es-control--default,
.es-control__item--compare,
.es-control__item--wishlist,
.es-control__item--sharing,
.es-btn__compare,
.es-btn__wishlist,
a[data-popup-id="#es-share-popup"],
.es-share-popup,
.es-authentication-popup,
#es-authentication-popup {
  display: none !important;
}

/* Magnific Popup's stylesheet is only loaded on single listings, but Estatik
   prints its dialogs with .mfp-hide wherever it likes — that class is the only
   thing keeping them invisible, so it is kept here for every other page. */
.mfp-hide {
  display: none !important;
}

/* Both buttons take an equal share of the row, so the pair reads as one balanced
   unit whatever their labels are; they still stack once the column is too narrow
   for two of them. */
.mls-reserve-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  flex: 1 1 0;
  width: auto;
  max-width: 100%;
  min-width: 0;
  margin: 0;
  padding: 14px 20px;
  background: linear-gradient(180deg, #2e7d4f 0%, #1b5e38 45%, #14482b 100%);
  color: #fff;
  font-family: "Source Sans 3", sans-serif;
  font-size: 19px;
  font-weight: 700;
  line-height: 1.2;
  text-align: center;
  text-decoration: none;
  text-shadow: 0 1px 2px rgba(0, 0, 0, 0.5);
  border: 3px solid #0d3a20;
  border-radius: 12px;
  box-shadow:
    inset 0 0 0 2px rgba(255, 255, 255, 0.55),
    inset 0 2px 3px rgba(255, 255, 255, 0.35),
    0 4px 10px rgba(0, 0, 0, 0.25);
}

.mls-reserve-btn:hover,
.mls-reserve-btn:focus {
  color: #fff;
  filter: brightness(1.08);
}

.mls-listing .mls-reserve-btn,
.mls-listing .mls-reserve-btn:hover,
.mls-listing .mls-reserve-btn:focus {
  color: #fff;
  text-decoration: none;
}

.mls-reserve-btn__icon {
  flex: none;
  width: 20px;
  height: 20px;
}

/* Single listing: single FAQ button replacing legacy action buttons/accordion */
.mls-listing-faq {
  margin: 30px 0 12px;
  text-align: center;
}

.mls-listing .mls-listing-faq__btn,
.mls-listing .mls-listing-faq__btn:hover,
.mls-listing .mls-listing-faq__btn:focus {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 18rem;
  padding: 1.15rem 3rem;
  border-radius: 10px;
  color: #fff !important;
  font-size: 1.35rem;
  font-weight: 700;
  line-height: 1.2;
  text-decoration: none;
  background: var(--mls-gold) !important;
}

.mls-listing .mls-listing-faq__btn:hover,
.mls-listing .mls-listing-faq__btn:focus {
  background: var(--mls-gold-2) !important;
}

/* Nearby properties on single listings */
.mls-nearby {
  max-width: 1180px;
  margin: 0 auto;
  padding: 10px 20px 40px;
}

.mls-nearby__title {
  margin-bottom: 24px;
}

/* Consultation card on the contact page */
.mls-consult {
  background: #fff;
  padding: 3rem 1.5rem 4rem;
}

.mls-consult__card {
  max-width: 1080px;
  margin: 0 auto;
  background: #fff;
  border: 1px solid rgba(23, 41, 42, 0.12);
  box-shadow: 0 10px 30px rgba(23, 41, 42, 0.08);
  display: grid;
  grid-template-columns: 1fr 0.95fr;
  gap: 2.5rem;
  padding: 3rem;
}

.mls-consult__title {
  font-family: var(--mls-serif);
  font-weight: 500;
  font-size: clamp(1.7rem, 3vw, 2.1rem);
  line-height: 1.25;
  color: var(--mls-ink);
  margin: 0 0 1rem;
  max-width: 24ch;
}

.mls-consult__intro {
  margin: 0 0 1.75rem;
  font-family: var(--mls-serif);
  font-size: 1.02rem;
  line-height: 1.7;
  color: #3d4a44;
}

.mls-consult__form {
  display: block;
}

.mls-consult__field {
  display: block;
  border: 0;
  padding: 0;
  margin: 0 0 1.15rem;
}

.mls-consult__field legend,
.mls-consult__label {
  display: block;
  font-size: 1.05rem;
  font-weight: 600;
  color: var(--mls-ink);
  margin-bottom: 0.3rem;
}

.mls-consult__req {
  font-size: 0.8rem;
  font-weight: 400;
  color: #7a8580;
}

.mls-consult__hint {
  display: block;
  font-size: 0.88rem;
  color: #7a8580;
  margin-bottom: 0.45rem;
}

.mls-consult__row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1rem;
}

.mls-consult__field input,
.mls-consult__field select,
.mls-consult__field textarea {
  width: 100%;
  padding: 0.65rem 0.8rem;
  font-family: var(--mls-sans);
  font-size: 1rem;
  color: var(--mls-ink);
  background: #faf3e8;
  border: 1px solid rgba(23, 41, 42, 0.14);
  border-radius: 6px;
}

.mls-consult__field input:focus,
.mls-consult__field select:focus,
.mls-consult__field textarea:focus {
  outline: 2px solid var(--mls-gold);
  outline-offset: 1px;
}

.mls-consult__submit {
  display: inline-block;
  margin-top: 0.5rem;
  padding: 0.95rem 2.2rem;
  background: var(--mls-ink);
  color: #fff;
  font-family: var(--mls-serif);
  font-size: 1.1rem;
  font-weight: 600;
  border: 0;
  border-radius: 8px;
  cursor: pointer;
}

.mls-consult__submit:hover,
.mls-consult__submit:focus {
  background: #22393a;
}

.mls-consult__media {
  position: relative;
  min-height: 420px;
  overflow: hidden;
  border-radius: 4px;
}

.mls-consult__media img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.mls-consult__pin {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
}

@media (max-width: 900px) {
  .mls-consult__card {
    grid-template-columns: 1fr;
    padding: 2rem 1.4rem;
  }

  .mls-consult__media {
    min-height: 260px;
    order: -1;
  }
}

/* Sticky social buttons — exact clone of the live woodmart widget
   (css/parts/el-social-icons.min.css + el-social-styles.min.css + opt-sticky-social.min.css). */
@font-face {
  font-weight: normal;
  font-style: normal;
  font-family: "woodmart-font";
  src: url("../fonts/woodmart-font-1-400.woff2") format("woff2");
}

.wd-social-icons {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: var(--wd-social-gap, calc(var(--wd-social-size, 40px) / 4));
  justify-content: var(--wd-align);
}

.wd-social-icons > a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: var(--wd-social-size, 40px);
  height: var(--wd-social-size, 40px);
  font-size: var(--wd-social-icon-size, calc(var(--wd-social-size, 40px) / 2.5));
  color: var(--wd-social-color, #fff) !important;
  background-color: var(--wd-social-bg, unset);
  box-shadow: var(--wd-social-shadow);
  border: var(--wd-social-brd) var(--wd-social-brd-color);
  border-radius: var(--wd-social-radius);
  line-height: 1;
  text-decoration: none;
}

.wd-social-icons > a:hover {
  color: var(--wd-social-color-hover, var(--wd-social-color));
  background-color: var(--wd-social-bg-hover, var(--wd-social-bg));
  border-color: var(--wd-social-brd-color-hover, var(--wd-social-brd-color));
  box-shadow: var(--wd-social-shadow-hover);
}

.wd-social-icons .wd-icon:before {
  content: var(--wd-social-icon, unset);
  font-family: "woodmart-font";
}

.social-facebook {
  --wd-social-brand-color: #365493;
  --wd-social-icon: "\f180";
}

.social-twitter {
  --wd-social-brand-color: #000;
  --wd-social-icon: "\f154";
}

.social-instagram {
  --wd-social-brand-color: #774430;
  --wd-social-icon: "\f163";
}

.social-youtube {
  --wd-social-brand-color: #CB2027;
  --wd-social-icon: "\f162";
}

.social-linkedin {
  --wd-social-brand-color: #0274B3;
  --wd-social-icon: "\f158";
}

.wd-social-icons.wd-style-colored {
  --wd-social-color: #fff;
  --wd-social-shadow-hover: inset 0 0 200px rgba(0, 0, 0, 0.15);
}

.wd-social-icons.wd-style-colored > a {
  --wd-social-bg: var(--wd-social-brand-color);
}

.wd-social-icons.wd-shape-square {
  --wd-social-radius: 0;
}

.wd-sticky-social {
  position: fixed;
  top: 50%;
  flex-direction: column;
  transition: all 0.5s cubic-bezier(0.19, 1, 0.22, 1) 1s;
  gap: 0 !important;
  z-index: 390;
}

.wd-sticky-social .wd-social-icon {
  overflow: hidden;
  min-width: var(--wd-social-size, 40px);
  width: auto;
  font-size: 14px;
}

.wd-sticky-social .wd-social-icon:hover {
  box-shadow: none;
}

.wd-sticky-social .wd-social-icon:hover .wd-icon-name {
  max-width: 220px;
}

.wd-sticky-social .wd-icon {
  width: var(--wd-social-size, 40px);
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

.wd-sticky-social .wd-icon-name {
  overflow: hidden;
  padding: 0;
  max-width: 0;
  white-space: nowrap;
  font-weight: 600;
  font-family: var(--wd-text-font, inherit);
  transition: padding 0.4s cubic-bezier(0.175, 0.885, 0.32, 1.15),
    max-width 0.4s cubic-bezier(0.175, 0.885, 0.32, 1.15);
}

.wd-sticky-social.wd-loaded {
  transform: translate3d(0, -50%, 0);
}

.wd-sticky-social-right {
  right: 0;
  transform: translate3d(100%, -50%, 0);
  align-items: flex-end;
}

.wd-sticky-social-right .wd-social-icon {
  flex-direction: row-reverse;
}

.wd-sticky-social-right .wd-social-icon:hover .wd-icon-name {
  padding-left: 15px;
}

@media (max-width: 1024px) {
  .wd-sticky-social {
    display: none;
  }
}

/* -------------------------------------------------------------------------
 * Properties archive: results + the listings sidebar as a right rail.
 * ---------------------------------------------------------------------- */
.mls-archive-body {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 2.5rem;
  align-items: start;
}

.mls-archive-body__main {
  min-width: 0;
}

@media (min-width: 1100px) {
  .mls-archive-body--rail {
    grid-template-columns: minmax(0, 1fr) 340px;
  }
}

/* Below the two-column breakpoint the rail stacks: give it the full width
   instead of the ported 340px column. */
@media (max-width: 1099px) {
  .mls-archive-body .ls-listings-sidebar {
    width: 100%;
    max-width: 100%;
  }
}

/* Here the rail flows with the page instead of the ported plugin's sticky,
   viewport-height panel, which is meant for the single-property layout. */
.mls-archive-body .ls-listings-sidebar {
  position: static;
  top: auto;
  height: auto;
  max-height: none;
  overflow: visible;
  align-self: start;
  background: transparent;
  border-left: 0;
  padding: 0;
}

/* -------------------------------------------------------------------------
 * Blog: hero, topic filter, post cards, sidebar and closing CTA.
 * ---------------------------------------------------------------------- */
.mlsb {
  --mlsb-navy: #0d1a6f;
  --mlsb-green: #05543a;
  --mlsb-green-dark: #03422d;
  --mlsb-orange: #fe5301;
  --mlsb-slate: #5b6577;
  --mlsb-ink: #1f3350;
  --mlsb-line: #e3e6ec;
  --mlsb-panel: #f7f8fa;
  background: #fbfbfc;
}

.mlsb a {
  text-decoration: none;
}

/* Hero ------------------------------------------------------------------- */
.mlsb__hero {
  position: relative;
  padding: 3.25rem 1.25rem 3.5rem;
  background: #e6ded1 url("../images/sell-hero.webp") center / cover no-repeat;
}

/* Light veil behind the copy keeps the navy headline readable on the photo. */
.mlsb__hero::before {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(
    90deg,
    rgba(255, 255, 255, 0.92) 0%,
    rgba(255, 255, 255, 0.74) 40%,
    rgba(255, 255, 255, 0.12) 68%,
    rgba(255, 255, 255, 0) 82%
  );
}

.mlsb__hero-inner {
  position: relative;
  max-width: 1180px;
  margin: 0 auto;
}

.mlsb__kicker {
  display: flex;
  align-items: center;
  gap: 1rem;
  margin: 0 0 0.9rem;
  color: var(--mlsb-green);
  text-shadow: none;
}

.mlsb__kicker::after {
  content: "";
  flex: 0 0 3.6rem;
  height: 1px;
  background: currentColor;
  opacity: 0.75;
}

.mlsb__title {
  margin: 0 0 0.7rem;
  font-family: "Lora", var(--mls-serif);
  font-weight: 700;
  font-size: clamp(2.35rem, 4.8vw, 3.55rem);
  line-height: 1.07;
  letter-spacing: -0.01em;
}

.mlsb__title-navy,
.mlsb__title-green {
  display: block;
}

.mlsb__title-navy {
  color: var(--mlsb-navy);
}

.mlsb__title-green {
  color: var(--mlsb-green);
}

.mlsb__sub {
  margin: 0 0 0.75rem;
  font-size: clamp(1.1rem, 1.6vw, 1.28rem);
  font-weight: 700;
  color: var(--mlsb-navy);
}

.mlsb__intro {
  max-width: 44rem;
  margin: 0;
  font-size: 1.05rem;
  line-height: 1.62;
  color: var(--mlsb-ink);
}

/* Topic filter ----------------------------------------------------------- */
.mlsb__tabs {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 0.85rem;
  max-width: 1180px;
  margin: 0 auto;
  padding: 1.6rem 1.25rem 0;
}

.mlsb__tab {
  position: relative;
  display: inline-flex;
  align-items: center;
  gap: 0.6rem;
  padding: 0.85rem 1.2rem;
  border: 1px solid var(--mlsb-line);
  border-radius: 10px;
  background: #fff;
  color: var(--mlsb-navy) !important;
  font-size: 0.98rem;
  font-weight: 600;
  transition: border-color 0.2s ease, background 0.2s ease, color 0.2s ease;
}

.mlsb__tab:hover {
  border-color: var(--mlsb-green);
  color: var(--mlsb-green) !important;
}

.mlsb__tab-icon {
  display: inline-flex;
}

.mlsb__tab-icon svg {
  width: 1.4rem;
  height: 1.4rem;
  fill: none;
  stroke: var(--mlsb-green);
  stroke-width: 1.7;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.mlsb__tab.is-active {
  background: var(--mlsb-green);
  border-color: var(--mlsb-green);
  color: #fff !important;
}

.mlsb__tab.is-active .mlsb__tab-icon svg {
  stroke: #fff;
}

/* Pointer below the active tab, as in the mock. */
.mlsb__tab.is-active::after {
  content: "";
  position: absolute;
  left: 50%;
  bottom: -8px;
  width: 18px;
  height: 8px;
  transform: translateX(-50%);
  background: var(--mlsb-green);
  clip-path: polygon(0 0, 100% 0, 50% 100%);
}

/* Body layout ------------------------------------------------------------ */
.mlsb__body {
  display: grid;
  /* minmax(0, …) keeps a card image's intrinsic width from widening the
     column past the viewport on narrow screens. */
  grid-template-columns: minmax(0, 1fr);
  gap: 2.4rem;
  align-items: start;
  max-width: 1180px;
  margin: 0 auto;
  padding: 2.2rem 1.25rem 3.2rem;
}

.mlsb__main,
.mlsb__side {
  min-width: 0;
}

.mlsb__grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 2.3rem 1.7rem;
}

.mlsb__context {
  margin: 0 0 1.7rem;
  color: var(--mlsb-slate);
  font-size: 1rem;
}

.mlsb__context a {
  margin-left: 0.5rem;
  color: var(--mlsb-green) !important;
  font-weight: 600;
}

.mlsb__context a:hover {
  text-decoration: underline;
}

/* Post cards ------------------------------------------------------------- */
.mlsb-card {
  display: flex;
  flex-direction: column;
}

.mlsb-card__media {
  position: relative;
  margin: 0 0 1.15rem;
  line-height: 0;
}

.mlsb-card__media a {
  display: block;
  border-radius: 12px;
  overflow: hidden;
}

.mlsb-card__img {
  display: block;
  width: 100%;
  max-width: 100%;
  height: auto;
  aspect-ratio: 16 / 10;
  object-fit: cover;
  transition: transform 0.35s ease, filter 0.35s ease;
}

.mlsb-card:hover .mlsb-card__img {
  transform: scale(1.04);
  filter: brightness(0.95);
}

.mlsb-card__img--empty {
  background: linear-gradient(135deg, #eef1f0 0%, #dde3e0 100%);
}

.mlsb-card__badge {
  position: absolute;
  left: 14px;
  bottom: 14px;
  padding: 0.42rem 0.85rem;
  border-radius: 6px;
  background: var(--mlsb-green);
  color: #fff !important;
  font-size: 0.82rem;
  font-weight: 600;
  line-height: 1.3;
}

.mlsb-card__title {
  margin: 0 0 0.6rem;
  font-family: "Lora", var(--mls-serif);
  font-weight: 700;
  font-size: clamp(1.35rem, 2vw, 1.62rem);
  line-height: 1.22;
}

.mlsb-card__title a {
  color: var(--mlsb-navy) !important;
}

.mlsb-card__title a:hover {
  color: var(--mlsb-green) !important;
}

.mlsb-card__excerpt {
  margin: 0 0 1rem;
  color: var(--mlsb-slate);
  font-size: 1rem;
  line-height: 1.6;
}

.mlsb-card__meta {
  display: flex;
  flex-wrap: wrap;
  gap: 0.6rem 1.5rem;
  margin: 0 0 1.05rem;
  color: var(--mlsb-slate);
  font-size: 0.95rem;
}

.mlsb-card__meta-item {
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
}

.mlsb-card__meta-item svg {
  width: 1.05rem;
  height: 1.05rem;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.6;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.mlsb-card__more {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  align-self: flex-start;
  color: var(--mlsb-green) !important;
  font-size: 1.02rem;
  font-weight: 700;
}

.mlsb-card__more:hover {
  text-decoration: underline;
}

.mlsb-card__more svg {
  width: 1.15rem;
  height: 1.15rem;
  fill: none;
  stroke: currentColor;
  stroke-width: 2;
  stroke-linecap: round;
  stroke-linejoin: round;
}

/* Sidebar ---------------------------------------------------------------- */
.mlsb__side {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 1.5rem;
}

.mlsb__panel {
  min-width: 0;
  padding: 1.5rem;
  border: 1px solid var(--mlsb-line);
  border-radius: 14px;
  background: var(--mlsb-panel);
}

.mlsb__panel h2 {
  margin: 0 0 1rem;
  font-family: "Lora", var(--mls-serif);
  font-weight: 700;
  font-size: clamp(1.25rem, 1.8vw, 1.45rem);
  color: var(--mlsb-navy);
}

.mlsb__search-form {
  position: relative;
  display: flex;
  align-items: stretch;
}

.mlsb__search-icon {
  position: absolute;
  top: 50%;
  left: 0.85rem;
  display: inline-flex;
  transform: translateY(-50%);
  color: var(--mlsb-slate);
  pointer-events: none;
}

.mlsb__search-icon svg {
  width: 1.15rem;
  height: 1.15rem;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.9;
  stroke-linecap: round;
}

.mlsb__search-form input {
  flex: 1 1 auto;
  min-width: 0;
  height: 3rem;
  padding: 0 0.9rem 0 2.65rem;
  border: 1px solid var(--mlsb-line);
  border-right: 0;
  border-radius: 8px 0 0 8px;
  background: #fff;
  color: var(--mlsb-ink);
  font: inherit;
  font-size: 0.98rem;
}

.mlsb__search-form input::placeholder {
  color: #96a0b2;
}

.mlsb__search-form button {
  flex: 0 0 auto;
  padding: 0 1.35rem;
  border: 0;
  border-radius: 0 8px 8px 0;
  background: var(--mlsb-green);
  color: #fff;
  font: inherit;
  font-weight: 600;
  cursor: pointer;
  transition: background 0.2s ease;
}

.mlsb__search-form button:hover,
.mlsb__search-form button:focus-visible {
  background: var(--mlsb-green-dark);
}

.mlsb__popular-list {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 1rem;
  margin: 0;
  padding: 0;
  list-style: none;
}

.mlsb__pop {
  display: grid;
  grid-template-columns: 92px minmax(0, 1fr);
  gap: 0.85rem;
  align-items: center;
}

.mlsb__pop-thumb {
  display: block;
  border-radius: 8px;
  overflow: hidden;
}

.mlsb__pop-thumb img {
  display: block;
  width: 100%;
  height: 66px;
  object-fit: cover;
}

.mlsb__pop-thumb--empty {
  display: block;
  height: 66px;
  background: linear-gradient(135deg, #eef1f0 0%, #dde3e0 100%);
}

.mlsb__pop-title {
  display: block;
  color: var(--mlsb-navy) !important;
  font-size: 1rem;
  font-weight: 700;
  line-height: 1.3;
}

.mlsb__pop:hover .mlsb__pop-title {
  color: var(--mlsb-green) !important;
}

.mlsb__pop-date {
  display: block;
  margin-top: 0.3rem;
  color: var(--mlsb-slate);
  font-size: 0.88rem;
}

.mlsb__suggest-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 3rem;
  height: 3rem;
  margin-bottom: 0.9rem;
  border-radius: 50%;
  background: var(--mlsb-green);
  color: #fff;
}

.mlsb__suggest-icon svg {
  width: 1.5rem;
  height: 1.5rem;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.7;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.mlsb__suggest p {
  margin: 0 0 1.1rem;
  color: var(--mlsb-slate);
  font-size: 0.98rem;
}

.mlsb__suggest-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.6rem;
  width: 100%;
  padding: 0.9rem 1.2rem;
  border: 1px solid var(--mlsb-line);
  border-radius: 8px;
  background: #fff;
  color: var(--mlsb-navy) !important;
  font-weight: 600;
  transition: border-color 0.2s ease, color 0.2s ease;
}

.mlsb__suggest-btn svg {
  width: 1.1rem;
  height: 1.1rem;
  fill: none;
  stroke: currentColor;
  stroke-width: 2;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.mlsb__suggest-btn:hover,
.mlsb__suggest-btn:focus-visible {
  border-color: var(--mlsb-green);
  color: var(--mlsb-green) !important;
}

/* Empty state ------------------------------------------------------------ */
.mlsb__empty {
  padding: 2.6rem 1.5rem;
  border: 1px dashed var(--mlsb-line);
  border-radius: 14px;
  background: #fff;
  text-align: center;
}

.mlsb__empty h2 {
  margin: 0 0 0.5rem;
  font-family: "Lora", var(--mls-serif);
  font-weight: 700;
  font-size: 1.5rem;
  color: var(--mlsb-navy);
}

.mlsb__empty p {
  margin: 0 0 1.3rem;
  color: var(--mlsb-slate);
}

.mlsb__empty-btn {
  display: inline-flex;
  align-items: center;
  gap: 0.55rem;
  padding: 0.85rem 1.4rem;
  border-radius: 8px;
  background: var(--mlsb-green);
  color: #fff !important;
  font-weight: 600;
}

.mlsb__empty-btn svg {
  width: 1.1rem;
  height: 1.1rem;
  fill: none;
  stroke: currentColor;
  stroke-width: 2;
  stroke-linecap: round;
  stroke-linejoin: round;
}

/* Pagination ------------------------------------------------------------- */
.mlsb__pagination {
  margin: 2.6rem 0 0;
}

.mlsb__pagination ul {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 0.45rem;
  margin: 0;
  padding: 0;
  list-style: none;
}

.mlsb__pagination .page-numbers {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 2.6rem;
  height: 2.6rem;
  padding: 0 0.8rem;
  border: 1px solid var(--mlsb-line);
  border-radius: 8px;
  background: #fff;
  color: var(--mlsb-navy) !important;
  font-size: 0.95rem;
}

.mlsb__pagination .page-numbers:hover {
  border-color: var(--mlsb-green);
  color: var(--mlsb-green) !important;
}

.mlsb__pagination .page-numbers.current {
  background: var(--mlsb-green);
  border-color: var(--mlsb-green);
  color: #fff !important;
}

/* Closing CTA ------------------------------------------------------------ */
.mlsb__cta {
  padding: 3.2rem 1.25rem;
  background: #b98a55 url("../images/process-cta.webp") center / cover no-repeat;
}

.mlsb__cta-inner {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1.8rem;
  align-items: center;
  max-width: 1180px;
  margin: 0 auto;
}

.mlsb__cta-card {
  max-width: 34rem;
  padding: 2rem 2.1rem;
  border-radius: 14px;
  background: rgba(255, 255, 255, 0.94);
  box-shadow: 0 16px 38px rgba(23, 41, 42, 0.16);
}

.mlsb__cta-card h2 {
  margin: 0 0 0.7rem;
  font-family: "Lora", var(--mls-serif);
  font-weight: 700;
  font-size: clamp(1.8rem, 3vw, 2.4rem);
  color: var(--mlsb-navy);
}

.mlsb__cta-card p {
  margin: 0 0 1.4rem;
  font-size: 1.05rem;
  line-height: 1.65;
  color: var(--mlsb-ink);
}

.mlsb__cta-btn {
  display: inline-flex;
  align-items: center;
  gap: 0.7rem;
  padding: 1rem 2rem;
  border-radius: 8px;
  background: var(--mlsb-orange);
  color: #fff !important;
  font-weight: 700;
  box-shadow: 0 10px 24px rgba(254, 83, 1, 0.32);
  transition: filter 0.2s ease;
}

.mlsb__cta-btn:hover,
.mlsb__cta-btn:focus-visible {
  filter: brightness(0.93);
}

.mlsb__cta-btn svg {
  width: 1.15rem;
  height: 1.15rem;
  fill: none;
  stroke: currentColor;
  stroke-width: 2;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.mlsb__cta-facts {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  padding: 1.7rem 0.75rem;
  border-radius: 14px;
  background: rgba(255, 255, 255, 0.92);
  box-shadow: 0 16px 38px rgba(23, 41, 42, 0.14);
}

.mlsb__cta-fact {
  padding: 0 1rem;
  color: var(--mlsb-green);
  text-align: center;
}

.mlsb__cta-fact + .mlsb__cta-fact {
  border-left: 1px solid rgba(5, 84, 58, 0.22);
}

.mlsb__cta-fact svg {
  width: 2.1rem;
  height: 2.1rem;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.8;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.mlsb__cta-fact.is-solid svg {
  fill: currentColor;
  stroke: none;
}

.mlsb__cta-fact span {
  display: block;
  margin-top: 0.55rem;
  font-family: "Lora", var(--mls-serif);
  font-weight: 700;
  font-size: 1.08rem;
  line-height: 1.25;
  white-space: pre-line;
}

/* Wide screens ----------------------------------------------------------- */
@media (min-width: 640px) {
  .mlsb__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (min-width: 980px) {
  .mlsb__body {
    grid-template-columns: minmax(0, 1fr) 340px;
    gap: 2.7rem;
  }

  .mlsb__cta-inner {
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 3rem;
  }
}

@media (max-width: 639px) {
  .mlsb__hero {
    padding: 2.5rem 1.25rem 2.75rem;
  }

  .mlsb__tabs {
    gap: 0.6rem;
  }

  .mlsb__tab {
    padding: 0.7rem 0.95rem;
    font-size: 0.92rem;
  }

  .mlsb__cta-facts {
    grid-template-columns: 1fr;
    gap: 1.2rem;
    padding: 1.5rem 1rem;
  }

  .mlsb__cta-fact + .mlsb__cta-fact {
    border-left: 0;
    border-top: 1px solid rgba(5, 84, 58, 0.22);
    padding-top: 1.2rem;
  }
}

/* -------------------------------------------------------------------------
 * Property search: compact primary row + expandable filter panel.
 * ---------------------------------------------------------------------- */
.mls-search {
  display: block;
  border-radius: 10px;
  box-shadow: 0 8px 26px rgba(23, 41, 42, 0.1);
}

.mls-search__row {
  display: grid;
  /* keyword, state, price, land size, then the two buttons */
  grid-template-columns: minmax(0, 1.5fr) minmax(0, 0.9fr) minmax(0, 0.9fr) minmax(0, 0.9fr) auto auto;
  gap: 0.55rem;
  align-items: center;
}

.mls-field {
  display: flex;
  flex-direction: column;
  gap: 0.25rem;
  min-width: 0;
}

.mls-search__extras .mls-field > label {
  font-size: 0.75rem;
  font-weight: 600;
  letter-spacing: 0.02em;
  color: var(--mls-muted);
  text-transform: uppercase;
}

.mls-search__submit {
  height: 44px;
  padding: 0 1.35rem;
  white-space: nowrap;
}

.mls-search__more {
  height: 44px;
  padding: 0 1rem;
  border: 1px solid rgba(23, 41, 42, 0.2);
  border-radius: 6px;
  background: #fff;
  color: var(--mls-ink);
  font: inherit;
  font-weight: 600;
  font-size: 0.92rem;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  white-space: nowrap;
}

.mls-search__more:hover {
  border-color: var(--mls-gold);
  color: var(--mls-gold-2);
}

.mls-search__badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 1.25rem;
  height: 1.25rem;
  padding: 0 0.3rem;
  border-radius: 999px;
  background: var(--mls-gold);
  color: #fff;
  font-size: 0.72rem;
  line-height: 1;
}

.mls-search__extras {
  margin-top: 0.75rem;
  padding-top: 0.85rem;
  border-top: 1px solid rgba(23, 41, 42, 0.1);
}

.mls-search__extras[hidden] {
  display: none;
}

.mls-search__grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(170px, 1fr));
  gap: 0.7rem 0.8rem;
  align-items: end;
}

/* Checkbox filters are boxed like the select fields, so the whole panel keeps
   one rhythm of controls instead of a row of loose labels. */
.mls-field--check {
  flex-direction: row;
  align-items: center;
  gap: 0.55rem;
  min-height: 48px;
  margin: 0;
  padding: 0 0.9rem;
  border: 1px solid rgba(23, 41, 42, 0.15);
  background: #fff;
  color: var(--mls-ink);
  font-size: 0.95rem;
  cursor: pointer;
  transition: border-color 0.2s ease, background 0.2s ease;
}

.mls-field--check:hover {
  border-color: var(--mls-gold);
}

.mls-field--check:has(input:checked) {
  border-color: var(--mls-brand-forest);
  background: #f2f7f3;
}

.mls-field--check input {
  width: auto;
  margin: 0;
  accent-color: var(--mls-brand-forest);
  cursor: pointer;
}

.mls-field__inline {
  display: flex;
  gap: 0.45rem;
}

.mls-field__inline select {
  flex: 1 1 auto;
}

/* Matches the select fields beside it: white box, same border, same height.
   The homepage form sits inside .mls-hero, whose ghost-button rule would
   otherwise leave it borderless, in Arial, and shorter than the select. */
.mls-search .mls-search__near {
  height: 48px;
  padding: 0 0.8rem;
  border: 1px solid rgba(23, 41, 42, 0.15);
  background: #fff;
  color: var(--mls-ink) !important;
  font-family: inherit;
  font-size: 0.88rem;
  cursor: pointer;
  white-space: nowrap;
}

.mls-search .mls-search__near:hover,
.mls-search .mls-search__near:focus-visible {
  border-color: var(--mls-gold);
  background: #f2f7f3;
  color: var(--mls-gold-2) !important;
}

.mls-search__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.6rem;
  margin-top: 0.9rem;
}

.mls-search__actions .mls-btn {
  height: 40px;
  padding: 0 1.1rem;
  font-size: 0.9rem;
}

@media (max-width: 1023px) {
  .mls-search__row {
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  }

  /* Four fields + two buttons pair up evenly across three rows, so the
     keyword field no longer needs a row of its own. */
  .mls-field--wide {
    grid-column: auto;
  }

  .mls-search__submit,
  .mls-search__more {
    grid-column: span 1;
  }
}

@media (max-width: 560px) {
  .mls-search__row {
    grid-template-columns: 1fr;
  }
}

/* Results header: count, sort, view switch, active filter chips. */
.mls-results-bar {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  margin: 0 0 1rem;
}

.mls-results-bar__tools {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.7rem;
}

.mls-results-bar__sort select {
  height: 40px;
  padding: 0 0.7rem;
  border: 1px solid rgba(23, 41, 42, 0.2);
  border-radius: 6px;
  background: #fff;
  font: inherit;
  font-size: 0.9rem;
  color: var(--mls-ink);
  cursor: pointer;
}

.mls-view-toggle {
  display: inline-flex;
  border: 1px solid rgba(23, 41, 42, 0.2);
  border-radius: 6px;
  overflow: hidden;
}

.mls-view-toggle__btn {
  padding: 0 0.9rem;
  height: 38px;
  border: 0;
  border-right: 1px solid rgba(23, 41, 42, 0.12);
  background: #fff;
  color: var(--mls-ink);
  font: inherit;
  font-size: 0.88rem;
  font-weight: 600;
  cursor: pointer;
}

.mls-view-toggle__btn:last-child {
  border-right: 0;
}

.mls-view-toggle__btn:hover {
  background: #f3f8f5;
}

.mls-view-toggle__btn.is-active {
  background: var(--mls-gold);
  color: #fff;
}

.mls-chips {
  display: flex;
  flex-wrap: wrap;
  gap: 0.45rem;
  margin: 0 0 1.1rem;
}

.mls-chip {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  padding: 0.3rem 0.7rem;
  border: 1px solid rgba(79, 137, 98, 0.35);
  border-radius: 999px;
  background: rgba(79, 137, 98, 0.1);
  color: var(--mls-gold-2) !important;
  font-size: 0.84rem;
  text-decoration: none;
}

.mls-chip:hover {
  background: rgba(79, 137, 98, 0.2);
}

.mls-chip__x {
  font-size: 1rem;
  line-height: 1;
}

.mls-chip--clear {
  border-style: dashed;
  color: var(--mls-muted) !important;
  background: transparent;
}

/* List view for the archive grid. */
.mls-grid--list {
  grid-template-columns: 1fr;
}

.mls-grid--list .mls-card {
  display: grid;
  grid-template-columns: 260px 1fr;
  align-items: stretch;
}

.mls-grid--list .mls-card__media {
  height: 100%;
  width: 100%;
  /* The 4:3 ratio would otherwise drive the width and push the image over the text. */
  aspect-ratio: auto;
}

@media (max-width: 700px) {
  .mls-grid--list .mls-card {
    grid-template-columns: 1fr;
  }

  /* Back to a single column: the picture needs its own height again. */
  .mls-grid--list .mls-card__media {
    height: auto;
    aspect-ratio: 4 / 3;
  }
}

/* Archive map panel. */
.mls-archive-map[hidden] {
  display: none;
}

.mls-archive-map__hint {
  margin: 0.6rem 0 0;
  color: var(--mls-muted);
  font-size: 0.88rem;
  text-align: center;
}

.mls-archive-main[data-mls-view="map"] .mls-listings > .mls-grid,
.mls-archive-main[data-mls-view="map"] .mls-pagination,
.mls-archive-main[data-mls-view="map"] .mls-archive-empty {
  display: none;
}

/* Save-search dialog. */
.mls-save-search {
  display: grid;
  gap: 0.7rem;
  padding: 1.6rem;
  min-width: min(420px, 90vw);
}

.mls-save-search h3 {
  margin: 0;
  font-family: var(--mls-serif);
  font-size: 1.5rem;
}

.mls-save-search p {
  margin: 0;
  color: var(--mls-muted);
  font-size: 0.92rem;
}

.mls-save-search input[type="email"] {
  height: 44px;
  padding: 0 0.8rem;
  border: 1px solid rgba(23, 41, 42, 0.2);
  border-radius: 6px;
  font: inherit;
}

.mls-save-search__actions {
  display: flex;
  justify-content: flex-end;
  gap: 0.6rem;
}

/* -------------------------------------------------------------------------
 * FAQ page: grouped accordion with a sticky topic rail.
 * ---------------------------------------------------------------------- */
.mls-faq {
  background: #fff;
}

.mls-faq__hero {
  background:
    radial-gradient(700px 220px at 50% 0%, rgba(79, 137, 98, 0.12), transparent 70%),
    var(--mls-bg-2);
  padding: 3rem 1.25rem 2.4rem;
  text-align: center;
}

.mls-faq__hero-inner {
  max-width: 46rem;
  margin: 0 auto;
}

.mls-faq__title {
  margin: 0.3rem 0 0.7rem;
  font-family: var(--mls-serif);
  font-size: clamp(2rem, 4vw, 2.9rem);
  font-weight: 600;
  color: var(--mls-ink);
}

.mls-faq__intro {
  margin: 0 auto;
  max-width: 38rem;
  color: #4a5c5c;
  line-height: 1.65;
}

.mls-faq__meta {
  margin: 1rem 0 0;
  color: var(--mls-gold-2);
  font-size: 0.85rem;
  font-weight: 600;
  letter-spacing: 0.02em;
  text-transform: uppercase;
}

.mls-faq__body {
  display: grid;
  grid-template-columns: minmax(0, 230px) minmax(0, 1fr);
  gap: 3rem;
  max-width: 1120px;
  margin: 0 auto;
  padding: 2.6rem 1.25rem 4rem;
  align-items: start;
}

.mls-faq__nav ul {
  list-style: none;
  margin: 0;
  padding: 0;
  position: sticky;
  top: 96px;
  display: grid;
  gap: 0.15rem;
}

.mls-faq__nav a {
  display: block;
  padding: 0.55rem 0.85rem;
  border-left: 3px solid transparent;
  color: #4a5c5c !important;
  font-size: 0.93rem;
  font-weight: 600;
  text-decoration: none;
  transition: border-color 0.15s ease, background 0.15s ease, color 0.15s ease;
}

.mls-faq__nav a:hover,
.mls-faq__nav a:focus {
  border-left-color: var(--mls-gold);
  background: rgba(79, 137, 98, 0.07);
  color: var(--mls-gold-2) !important;
}

.mls-faq__group {
  scroll-margin-top: 96px;
  margin-bottom: 2.4rem;
}

.mls-faq__group-title {
  margin: 0 0 0.9rem;
  font-family: var(--mls-serif);
  font-size: 1.5rem;
  font-weight: 600;
  color: var(--mls-ink);
}

.mls-faq__item {
  border: 1px solid rgba(23, 41, 42, 0.1);
  border-radius: 10px;
  background: #fff;
  margin-bottom: 0.6rem;
  transition: border-color 0.15s ease, box-shadow 0.15s ease;
}

.mls-faq__item[open] {
  border-color: rgba(79, 137, 98, 0.45);
  box-shadow: 0 6px 18px rgba(23, 41, 42, 0.06);
}

.mls-faq__q {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1rem;
  padding: 1rem 1.15rem;
  cursor: pointer;
  font-weight: 600;
  color: var(--mls-ink);
  line-height: 1.45;
  list-style: none;
}

.mls-faq__q::-webkit-details-marker {
  display: none;
}

.mls-faq__q:hover {
  color: var(--mls-gold-2);
}

.mls-faq__toggle {
  flex: none;
  position: relative;
  width: 1.05rem;
  height: 1.05rem;
  margin-top: 0.2rem;
  border-radius: 50%;
  background: rgba(79, 137, 98, 0.12);
}

.mls-faq__toggle::before,
.mls-faq__toggle::after {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  width: 0.55rem;
  height: 2px;
  border-radius: 2px;
  background: var(--mls-gold-2);
  transform: translate(-50%, -50%);
}

.mls-faq__toggle::after {
  transform: translate(-50%, -50%) rotate(90deg);
  transition: transform 0.2s ease;
}

.mls-faq__item[open] .mls-faq__toggle::after {
  transform: translate(-50%, -50%) rotate(0deg);
}

.mls-faq__a {
  padding: 0 1.15rem 1.15rem;
  color: #4a5c5c;
  line-height: 1.7;
  border-top: 1px solid rgba(23, 41, 42, 0.07);
  margin-top: 0;
  padding-top: 0.9rem;
}

.mls-faq__a p {
  margin: 0;
}

.mls-faq__a ul {
  margin: 0;
  padding-left: 1.1rem;
  display: grid;
  gap: 0.35rem;
}

.mls-faq__cta {
  margin-top: 2.6rem;
  padding: 2rem;
  border-radius: 14px;
  background: linear-gradient(180deg, rgba(79, 137, 98, 0.1), rgba(79, 137, 98, 0.04));
  border: 1px solid rgba(79, 137, 98, 0.25);
  text-align: center;
}

.mls-faq__cta h2 {
  margin: 0 0 0.5rem;
  font-family: var(--mls-serif);
  font-size: 1.6rem;
  color: var(--mls-ink);
}

.mls-faq__cta p {
  margin: 0 auto 1.2rem;
  max-width: 34rem;
  color: #4a5c5c;
}

.mls-faq__cta-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.7rem;
  justify-content: center;
}

@media (max-width: 900px) {
  .mls-faq__body {
    grid-template-columns: 1fr;
    gap: 1.6rem;
  }

  .mls-faq__nav ul {
    position: static;
    display: flex;
    flex-wrap: wrap;
    gap: 0.4rem;
  }

  .mls-faq__nav a {
    border: 1px solid rgba(23, 41, 42, 0.15);
    border-radius: 999px;
    padding: 0.35rem 0.8rem;
    font-size: 0.85rem;
  }

  .mls-faq__nav a:hover,
  .mls-faq__nav a:focus {
    border-color: var(--mls-gold);
  }
}

/* -------------------------------------------------------------------------
 * Our Process page: four numbered steps, financing band, enquiry form.
 * ---------------------------------------------------------------------- */
.mls-process__hero {
  background:
    radial-gradient(700px 220px at 50% 0%, rgba(79, 137, 98, 0.12), transparent 70%),
    var(--mls-bg-2);
  padding: 3rem 1.25rem 2.4rem;
  text-align: center;
}

.mls-process__hero-inner {
  max-width: 46rem;
  margin: 0 auto;
}

.mls-process__title {
  margin: 0.3rem 0 0.7rem;
  font-family: var(--mls-serif);
  font-size: clamp(2rem, 4vw, 2.9rem);
  font-weight: 600;
  color: var(--mls-ink);
}

.mls-process__intro {
  margin: 0 auto;
  max-width: 38rem;
  color: #4a5c5c;
  line-height: 1.65;
}

.mls-process__facts {
  list-style: none;
  margin: 1.4rem 0 0;
  padding: 0;
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 0.5rem;
}

.mls-process__facts li {
  padding: 0.35rem 0.9rem;
  border: 1px solid rgba(79, 137, 98, 0.35);
  border-radius: 999px;
  background: rgba(79, 137, 98, 0.1);
  color: var(--mls-gold-2);
  font-size: 0.84rem;
  font-weight: 600;
}

.mls-process__steps {
  padding: 3rem 1.25rem 1rem;
}

.mls-process__steps-inner {
  max-width: 940px;
  margin: 0 auto;
}

.mls-process__section-title {
  margin: 0 0 1.6rem;
  font-family: var(--mls-serif);
  font-size: clamp(1.5rem, 3vw, 2rem);
  font-weight: 600;
  color: var(--mls-ink);
  text-align: center;
}

.mls-steps {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1rem;
}

.mls-steps__item {
  display: flex;
  gap: 1rem;
  padding: 1.35rem 1.4rem;
  border: 1px solid rgba(23, 41, 42, 0.1);
  border-radius: 12px;
  background: #fff;
  transition: border-color 0.15s ease, box-shadow 0.15s ease, transform 0.15s ease;
}

.mls-steps__item:hover {
  border-color: rgba(79, 137, 98, 0.4);
  box-shadow: 0 8px 22px rgba(23, 41, 42, 0.07);
  transform: translateY(-2px);
}

.mls-steps__num {
  flex: none;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2.6rem;
  height: 2.6rem;
  border-radius: 50%;
  background: linear-gradient(180deg, #2e7d4f 0%, #1b5e38 100%);
  color: #fff;
  font-weight: 700;
  font-size: 1.15rem;
}

.mls-steps__title {
  margin: 0 0 0.35rem;
  font-size: 1.12rem;
  font-weight: 700;
  color: var(--mls-ink);
}

.mls-steps__text {
  margin: 0;
  color: #4a5c5c;
  font-size: 0.95rem;
  line-height: 1.6;
}

.mls-process__financing {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 1.4rem;
  margin: 2.2rem 0 0;
  padding: 1.8rem 2rem;
  border-radius: 14px;
  background: linear-gradient(180deg, rgba(79, 137, 98, 0.1), rgba(79, 137, 98, 0.04));
  border: 1px solid rgba(79, 137, 98, 0.25);
}

.mls-process__financing-text h2 {
  margin: 0 0 0.4rem;
  font-family: var(--mls-serif);
  font-size: 1.5rem;
  color: var(--mls-ink);
}

.mls-process__financing-text p {
  margin: 0;
  max-width: 44rem;
  color: #4a5c5c;
  line-height: 1.65;
}

.mls-process__form {
  padding: 2.6rem 1.25rem 4rem;
}

.mls-process__form-inner {
  max-width: 900px;
  margin: 0 auto;
  text-align: center;
}

.mls-process__form-inner h2 {
  margin: 0 0 0.5rem;
  font-family: var(--mls-serif);
  font-size: clamp(1.5rem, 3vw, 2rem);
  font-weight: 600;
  color: var(--mls-ink);
}

.mls-process__form-inner > p {
  margin: 0 auto 1.4rem;
  max-width: 34rem;
  color: #4a5c5c;
}

.mls-process__form-frame {
  border: 1px solid rgba(23, 41, 42, 0.1);
  border-radius: 14px;
  background: #fff;
  overflow: hidden;
  box-shadow: 0 10px 30px rgba(23, 41, 42, 0.07);
}

.mls-process__form-alt {
  margin: 1.2rem 0 0;
  color: var(--mls-muted);
  font-size: 0.92rem;
}

.mls-process__form-alt a {
  color: var(--mls-gold-2) !important;
  font-weight: 600;
}

@media (max-width: 760px) {
  .mls-steps {
    grid-template-columns: 1fr;
  }

  .mls-process__financing {
    padding: 1.4rem;
  }
}

/* Land-alert subscribe band inside a listing (same modal as the footer). */
.mls-listing-alerts {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 1rem 1.6rem;
  max-width: 620px;
  margin: 0 auto 30px;
  padding: 1.1rem 1.4rem;
  border: 1px solid rgba(79, 137, 98, 0.28);
  border-radius: 12px;
  background: linear-gradient(180deg, rgba(79, 137, 98, 0.1), rgba(79, 137, 98, 0.04));
  text-align: left;
}

.mls-listing-alerts__title {
  margin: 0 0 0.2rem;
  font-family: var(--mls-serif);
  font-size: 1.25rem;
  font-weight: 600;
  color: var(--mls-ink);
}

.mls-listing-alerts__desc {
  margin: 0;
  color: #4a5c5c;
  font-size: 0.9rem;
}

@media (max-width: 560px) {
  .mls-listing-alerts {
    justify-content: center;
    text-align: center;
  }
}

/* Flexible CRM embeds: the form drives its own height, the card follows. */
.mls-subscribe-modal__panel {
  display: flex;
  flex-direction: column;
}

.mls-subscribe-modal__body {
  padding: 0;
  overflow: hidden;
}

.mls-subscribe-modal__body iframe {
  display: block;
  width: 100%;
  min-height: 320px;
  border: 0;
  transition: height 0.2s ease;
}

.mls-subscribe-modal {
  max-height: calc(100vh - 2rem);
  overflow: auto;
}

.mls-process__form-frame {
  min-height: 0;
}

.mls-process__form-frame iframe {
  display: block;
  width: 100%;
  min-height: 420px;
  border: 0;
  transition: height 0.2s ease;
}

@media (prefers-reduced-motion: reduce) {
  .mls-subscribe-modal__body iframe,
  .mls-process__form-frame iframe {
    transition: none;
  }
}

@media (max-width: 760px) {
  .mls-process__form-frame,
  .mls-process__form-frame iframe {
    min-height: 420px;
    height: auto;
  }
}

/* The CRM embed script may absolutely position unknown iframes; keep ours in flow. */
.mls-subscribe-modal__body iframe,
.mls-process__form-frame iframe {
  position: static !important;
  overflow: hidden !important;
}

/* Sell Your Land page. */
.mls-sell__lead {
  margin: 0 0 1.4rem;
  max-width: 46rem;
  color: #4a5c5c;
}

.mls-sell__cta {
  margin: 1.7rem 0 0;
  display: flex;
  flex-wrap: wrap;
  gap: 0.7rem;
  justify-content: center;
  align-items: center;
}

.mls-checklist {
  margin: 0 0 2rem;
  padding: 0;
  list-style: none;
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
  gap: 0.7rem 1.4rem;
}

.mls-checklist__item {
  position: relative;
  padding-left: 1.8rem;
  color: var(--mls-ink);
  line-height: 1.45;
}

.mls-checklist__item::before {
  content: "\2713";
  position: absolute;
  left: 0;
  color: var(--mls-gold);
  font-weight: 700;
}

/* Testimonials page. */
.mls-videos {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: 1.5rem;
}

.mls-video {
  margin: 0;
}

.mls-video__frame {
  position: relative;
  aspect-ratio: 16 / 9;
  border: 1px solid rgba(23, 41, 42, 0.1);
  border-radius: 14px;
  overflow: hidden;
  background: #0f1b1c;
  box-shadow: 0 10px 30px rgba(23, 41, 42, 0.07);
}

.mls-video__frame iframe {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  border: 0;
}

.mls-video__caption {
  margin: 0.7rem 0 0;
  font-weight: 600;
  line-height: 1.35;
  color: var(--mls-ink);
}

.mls-testimonials__quotes {
  /* Closes the page now that the form section is gone. */
  padding: 3rem 1.25rem 3.5rem;
}

.mls-quotes-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: 1.1rem;
  text-align: left;
}

/* The bar and the menu -------------------------------------------------------
   The header column is capped at 1220px, and nine links plus the phone number
   and the translate button need about 1250px at the design's 16px label size —
   so at full size the row overflowed the page between 1200px and 1259px and
   wrapped to two lines above that. Slightly smaller labels with no tracking fit
   the row with about 50px to spare at every desktop width, which keeps the
   intended single line. The bar is still allowed to wrap as a safety net, so
   nothing can push the page wider than the screen again. */
@media (min-width: 1024px) {
  .mls-header__inner {
    flex-wrap: wrap;
    row-gap: 0.55rem;
    padding-left: 16px;
    padding-right: 16px;
  }

  .mls-nav {
    justify-content: center;
    min-width: 0;
    gap: 0.45rem 0.7rem;
    font-size: 0.9rem;
  }

  .mls-nav a {
    letter-spacing: normal;
  }

  .mls-logo__text {
    font-size: 1.08rem;
  }
}

/* Too narrow for one row beside the logo: the phone and the language switch stay
   up beside the logo, and the menu links take the centred row below. */
@media (min-width: 720px) and (max-width: 1023px) {
  .mls-header__inner {
    flex-wrap: wrap;
    row-gap: 0.55rem;
  }

  .mls-nav {
    flex-basis: 100%;
    flex-wrap: wrap;
    justify-content: center;
    gap: 0.5rem 0.9rem;
    font-size: 0.9rem;
  }

  .mls-header__meta {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    flex: 0 0 auto;
  }

  .mls-header__meta .mls-header__phone {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
  }

  body.mls-site .mls-header .mls-header__meta .mls-header__phone {
    color: var(--mls-brand-forest) !important;
    font-size: 1rem;
    font-weight: 700;
  }

  /* The menu row is links only now that the phone has moved up. */
  .mls-nav__actions {
    display: none;
  }
}

/* A CRM form in a narrow column reads as a phone layout. Give the page-level
   embeds the site's standard width so they render their desktop form. */
.mls-process__form--wide .mls-process__form-inner {
  max-width: 1180px;
}

/* CRM embeds inject their own wrapper divs; keep them flexible so the form
   always gets the full width of the column and grows with its content. */
.mls-process__form-frame .ep-iFrameContainer,
.mls-process__form-frame .ep-wrapper {
  width: 100% !important;
  max-width: none !important;
}

.mls-process__form-frame iframe {
  width: 100% !important;
  max-width: none !important;
  min-height: 620px;
}

/* Footer disclaimer — sits below the columns, centred like the rest of the footer. */
.mls-footer__disclaimer {
  max-width: 62rem;
  margin: 2.2rem auto 0;
  color: var(--mls-muted);
  font-size: 0.88rem;
  line-height: 1.65;
  text-align: center;
}

/* ---------------------------------------------------------------------------
 * Sell Your Land page
 * ------------------------------------------------------------------------ */
.mls-sell {
  background: #fff;
}

.mls-sell__hero {
  position: relative;
  padding: 4.5rem 1.25rem 5.5rem;
  text-align: center;
  background: #cfe3ef url("../images/sell-hero.webp") center / cover no-repeat;
}

/* Light wash so the dark headline stays readable over the bright sky. */
.mls-sell__hero::before {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(
    180deg,
    rgba(255, 255, 255, 0.62) 0%,
    rgba(255, 255, 255, 0.26) 45%,
    rgba(255, 255, 255, 0) 78%
  );
}

.mls-sell__hero-inner {
  position: relative;
  max-width: 900px;
  margin: 0 auto;
}

.mls-sell__kicker {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.9rem;
  margin-bottom: 1.2rem;
  color: #2a2c63;
  text-shadow: none;
}

.mls-sell__kicker::before,
.mls-sell__kicker::after {
  content: "";
  width: 4rem;
  height: 1px;
  background: currentColor;
  opacity: 0.5;
}

.mls-sell__title {
  margin: 0 0 1rem;
  font-family: var(--mls-serif);
  font-weight: 700;
  font-size: clamp(2.3rem, 5.2vw, 4.1rem);
  line-height: 1.04;
}

.mls-sell__title-line {
  display: block;
}

.mls-sell__title-line--navy {
  color: #2a2c63;
}

.mls-sell__title-line--green {
  color: #14532d;
}

.mls-sell__sub {
  margin: 0 auto 1.8rem;
  max-width: 42rem;
  font-size: 1.2rem;
  color: #24303a;
}

.mls-sell__cta {
  margin: 0;
}

.mls-sell__cta-btn,
.mls-sell__submit {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.7rem;
  padding: 1.05rem 2.1rem;
  border: 0;
  border-radius: 6px;
  background: #e2582b;
  color: #fff !important;
  font: inherit;
  font-size: 1.05rem;
  font-weight: 700;
  text-decoration: none;
  cursor: pointer;
  box-shadow: 0 10px 24px rgba(226, 88, 43, 0.35);
  transition: background 0.2s ease, transform 0.15s ease;
}

.mls-sell__cta-btn:hover,
.mls-sell__cta-btn:focus-visible,
.mls-sell__submit:hover,
.mls-sell__submit:focus-visible {
  background: #c9481f;
  transform: translateY(-1px);
}

.mls-sell__cta-icon,
.mls-sell__cta-chevron,
.mls-sell__secure svg {
  width: 1.15rem;
  height: 1.15rem;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.9;
  stroke-linecap: round;
  stroke-linejoin: round;
  flex: 0 0 auto;
}

.mls-sell__body {
  display: grid;
  grid-template-columns: 1fr;
  gap: 2.5rem;
  max-width: 1180px;
  margin: 0 auto;
  padding: 3rem 1.25rem 4rem;
  align-items: start;
}

.mls-sell__lead {
  margin: 0 0 2rem;
  font-size: 1.1rem;
  line-height: 1.7;
  color: var(--mls-text);
}

.mls-sell__lead strong {
  color: var(--mls-ink);
}

.mls-sell__badges {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1.6rem;
  margin: 0 0 2.2rem;
  padding: 0 0 2.2rem;
  list-style: none;
  border-bottom: 1px solid rgba(23, 41, 42, 0.1);
}

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

.mls-sell__badge-icon,
.mls-sell__item-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 3.4rem;
  height: 3.4rem;
  border-radius: 50%;
  background: #e9f4ec;
  color: #1f6b3a;
}

.mls-sell__badge-icon svg,
.mls-sell__item-icon svg {
  width: 1.6rem;
  height: 1.6rem;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.8;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.mls-sell__badge h2 {
  margin: 0.7rem 0 0.3rem;
  font-family: var(--mls-sans);
  font-size: 1rem;
  font-weight: 800;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--mls-ink);
}

.mls-sell__badge p {
  margin: 0;
  font-size: 0.95rem;
  color: var(--mls-muted);
}

.mls-sell__list {
  margin: 0;
  padding: 0;
  list-style: none;
}

.mls-sell__item {
  display: flex;
  align-items: flex-start;
  gap: 1.1rem;
  padding: 1.5rem 0;
  border-top: 1px solid rgba(23, 41, 42, 0.1);
}

.mls-sell__list .mls-sell__item:first-child {
  border-top: 0;
  padding-top: 0;
}

.mls-sell__item-icon {
  flex: 0 0 auto;
  background: #fff;
  border: 1.6px solid #cfe6d6;
}

.mls-sell__item-body h3 {
  margin: 0 0 0.35rem;
  font-family: var(--mls-serif);
  font-weight: 700;
  font-size: 1.45rem;
  color: #2a2c63;
}

.mls-sell__item-body p {
  margin: 0;
  color: var(--mls-text);
}

.mls-sell__item-body a {
  color: #1f6b3a;
  font-weight: 700;
}

/* Intake form card */
.mls-sell__form-card {
  background: #fff;
  border: 1px solid rgba(23, 41, 42, 0.1);
  border-radius: 12px;
  padding: 1.8rem 1.6rem;
  box-shadow: 0 16px 40px rgba(23, 41, 42, 0.08);
}

.mls-sell__form-card h2 {
  margin: 0 0 0.35rem;
  font-family: var(--mls-serif);
  font-weight: 700;
  font-size: 1.6rem;
  color: #2a2c63;
}

.mls-sell__form-sub {
  margin: 0 0 1.2rem;
  color: var(--mls-muted);
}

/* CRM embed — same widget as the contact and listing pages. */
.mls-sell__form-frame {
  margin: 0.4rem 0 0;
}

.mls-sell__form-frame iframe {
  display: block;
  width: 100%;
  border: 0;
}

.mls-sell__secure {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  margin: 1rem 0 0;
  font-size: 0.85rem;
  color: var(--mls-muted);
}

@media (min-width: 720px) {
  .mls-sell__badges {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (min-width: 1024px) {
  .mls-sell__body {
    grid-template-columns: minmax(0, 1fr) 380px;
    gap: 3.5rem;
  }

  .mls-sell__badges {
    grid-template-columns: repeat(4, 1fr);
  }
}

/* ---------------------------------------------------------------------------
 * Testimonials page
 * ------------------------------------------------------------------------ */
.mls-testi {
  background: #fff;
}

.mls-testi__hero {
  position: relative;
  padding: 3.5rem 1.25rem 4rem;
  background: #cfe3ef url("../images/hero-landscape.webp") center 45% / cover no-repeat;
}

/* Light wash on the left so the dark headline stays readable. */
.mls-testi__hero::before {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(
    100deg,
    rgba(255, 255, 255, 0.86) 0%,
    rgba(255, 255, 255, 0.62) 42%,
    rgba(255, 255, 255, 0.18) 72%,
    rgba(255, 255, 255, 0.04) 100%
  );
}

.mls-testi__hero-inner {
  position: relative;
  display: grid;
  grid-template-columns: 1fr;
  gap: 2rem;
  align-items: center;
  max-width: 1180px;
  margin: 0 auto;
}

.mls-testi__kicker {
  margin: 0 0 1rem;
  font-family: var(--mls-sans);
  font-size: 0.8rem;
  font-weight: 700;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: #2f7d3a;
}

.mls-testi__title {
  margin: 0 0 1rem;
  font-family: var(--mls-serif);
  font-weight: 700;
  font-size: clamp(2.2rem, 4.6vw, 3.5rem);
  line-height: 1.05;
}

.mls-testi__title-line {
  display: block;
}

.mls-testi__title-line--navy {
  color: #2a2c63;
}

.mls-testi__title-line--green {
  color: #14532d;
}

.mls-testi__sub {
  margin: 0;
  max-width: 34rem;
  font-size: 1.12rem;
  color: #24303a;
}

.mls-testi__card {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 0.8rem;
  padding: 1.5rem 1.1rem;
  border-radius: 14px;
  background: rgba(233, 244, 236, 0.94);
  box-shadow: 0 16px 38px rgba(23, 41, 42, 0.14);
  text-align: center;
}

.mls-testi__card-item svg {
  width: 2rem;
  height: 2rem;
  fill: none;
  stroke: #1f6b3a;
  stroke-width: 1.8;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.mls-testi__card-item h2 {
  margin: 0.6rem 0 0;
  font-family: var(--mls-sans);
  font-size: 0.82rem;
  font-weight: 800;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  color: var(--mls-ink);
}

.mls-testi__wrap {
  max-width: 1180px;
  margin: 0 auto;
}

.mls-testi__intro {
  padding: 3rem 1.25rem 3.5rem;
  background: #fff;
}

.mls-testi__lede p {
  margin: 0 0 1rem;
  max-width: 62rem;
  font-size: 1.1rem;
  line-height: 1.75;
  color: var(--mls-text);
}

.mls-testi__rule {
  width: 3.5rem;
  height: 3px;
  margin: 1.6rem 0 1rem;
  background: #1f6b3a;
}

.mls-testi__h2 {
  margin: 0 0 0.9rem;
  font-family: var(--mls-serif);
  font-weight: 700;
  font-size: clamp(1.9rem, 3.4vw, 2.8rem);
  color: #2a2c63;
}

.mls-testi__h2-navy {
  color: #2a2c63;
}

.mls-testi__h2-green {
  color: #14532d;
}

.mls-testi__note {
  margin: 0 0 0.9rem;
  max-width: 62rem;
  line-height: 1.7;
  color: var(--mls-text);
}

.mls-testi__videos {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1rem;
  margin-top: 1.8rem;
}

.mls-testi__video {
  position: relative;
  display: block;
  padding: 0;
  border: 0;
  border-radius: 10px;
  overflow: hidden;
  aspect-ratio: 16 / 9;
  background: #0f1a1f;
  cursor: pointer;
}

.mls-testi__video img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.mls-testi__play {
  position: absolute;
  inset: 0;
  display: grid;
  place-items: center;
}

.mls-testi__play > span {
  display: grid;
  place-items: center;
  width: 3.4rem;
  height: 3.4rem;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.92);
  box-shadow: 0 8px 20px rgba(0, 0, 0, 0.25);
}

.mls-testi__play svg {
  width: 1.3rem;
  height: 1.3rem;
  margin-left: 3px;
  fill: #1f6b3a;
}

.mls-testi__caption {
  position: absolute;
  right: 0;
  bottom: 0;
  left: 0;
  padding: 2.6rem 0.95rem 0.7rem;
  background: linear-gradient(180deg, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 0.75) 100%);
  color: #fff;
  font-size: 1rem;
  font-weight: 700;
  text-align: left;
}

.mls-testi__frame {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  border: 0;
}

.mls-testi__trust {
  padding: 3.5rem 1.25rem 4rem;
  background: #eaf3ec;
}

.mls-testi__trust-inner {
  display: grid;
  grid-template-columns: 1fr;
  gap: 2rem;
  align-items: center;
  max-width: 1180px;
  margin: 0 auto;
}

.mls-testi__trust-text p {
  margin: 0 0 1rem;
  max-width: 40rem;
  font-size: 1.08rem;
  line-height: 1.75;
  color: var(--mls-text);
}

.mls-testi__trust-text strong {
  color: var(--mls-ink);
}

.mls-testi__trust-art {
  max-width: 24rem;
}

.mls-testi__trust-art img {
  display: block;
  width: 100%;
  height: auto;
}

@media (min-width: 720px) {
  .mls-testi__videos {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (min-width: 900px) {
  .mls-testi__hero-inner {
    grid-template-columns: 1.15fr 0.85fr;
    gap: 3rem;
  }

  .mls-testi__trust-inner {
    grid-template-columns: 1.4fr 0.6fr;
    gap: 3rem;
  }
}

@media (min-width: 1024px) {
  .mls-testi__videos {
    grid-template-columns: repeat(3, 1fr);
  }
}

/* ---------------------------------------------------------------------------
 * Our Process page
 * ------------------------------------------------------------------------ */
.mls-proc {
  background: #fff;
}

.mls-proc__hero {
  position: relative;
  padding: 3.5rem 1.25rem 4rem;
  background: #cfe3ef url("../images/hero-landscape.webp") center 45% / cover no-repeat;
}

/* Light wash on the left so the dark headline stays readable. */
.mls-proc__hero::before {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(
    100deg,
    rgba(255, 255, 255, 0.88) 0%,
    rgba(255, 255, 255, 0.62) 44%,
    rgba(255, 255, 255, 0.16) 74%,
    rgba(255, 255, 255, 0.04) 100%
  );
}

.mls-proc__hero-inner {
  position: relative;
  display: grid;
  grid-template-columns: 1fr;
  gap: 2rem;
  align-items: center;
  max-width: 1180px;
  margin: 0 auto;
}

.mls-proc__kicker {
  display: flex;
  align-items: center;
  gap: 1rem;
  margin: 0 0 1rem;
  color: #2a2c63;
  text-shadow: none;
}

.mls-proc__kicker::after {
  content: "";
  flex: 0 0 5rem;
  height: 1px;
  background: currentColor;
  opacity: 0.45;
}

.mls-proc__title {
  margin: 0 0 1rem;
  font-family: var(--mls-serif);
  font-weight: 700;
  font-size: clamp(2.2rem, 4.6vw, 3.5rem);
  line-height: 1.05;
}

.mls-proc__title-line {
  display: block;
}

.mls-proc__title-line--navy {
  color: #2a2c63;
}

.mls-proc__title-line--green {
  color: #14532d;
}

.mls-proc__sub {
  margin: 0;
  max-width: 36rem;
  font-size: 1.1rem;
  line-height: 1.65;
  color: #24303a;
}

.mls-proc__card {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  padding: 1.5rem 0.5rem;
  border-radius: 14px;
  background: rgba(233, 244, 236, 0.95);
  box-shadow: 0 16px 38px rgba(23, 41, 42, 0.14);
}

.mls-proc__card-item {
  padding: 0 0.7rem;
  text-align: center;
  border-left: 1px solid rgba(23, 41, 42, 0.14);
}

.mls-proc__card-item:first-child {
  border-left: 0;
}

.mls-proc__card-item svg {
  width: 2.1rem;
  height: 2.1rem;
  fill: none;
  stroke: #1f6b3a;
  stroke-width: 1.8;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.mls-proc__card-item h2 {
  margin: 0.6rem 0 0;
  font-family: var(--mls-sans);
  font-size: 0.82rem;
  font-weight: 800;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  color: var(--mls-ink);
}

.mls-proc__body {
  max-width: 1180px;
  margin: 0 auto;
  padding: 3rem 1.25rem 3.5rem;
}

.mls-proc__steps {
  display: grid;
  grid-template-columns: 1fr;
  gap: 2.2rem;
  margin: 0 0 2.8rem;
  padding: 0;
  list-style: none;
}

.mls-proc__step {
  position: relative;
}

.mls-proc__head {
  display: flex;
  align-items: center;
  gap: 0.7rem;
  margin-bottom: 1rem;
}

.mls-proc__num {
  display: grid;
  place-items: center;
  flex: 0 0 auto;
  width: 2.6rem;
  height: 2.6rem;
  border-radius: 50%;
  background: #1f6b3a;
  color: #fff;
  font-family: var(--mls-serif);
  font-size: 1.35rem;
  font-weight: 700;
  line-height: 1;
}

.mls-proc__head h2 {
  margin: 0;
  font-family: var(--mls-serif);
  font-weight: 700;
  font-size: 1.3rem;
  line-height: 1.15;
  color: #2a2c63;
}

.mls-proc__img img {
  display: block;
  width: 100%;
  height: 13rem;
  object-fit: cover;
  border-radius: 8px;
}

.mls-proc__step p {
  margin: 1rem 0 0;
  color: var(--mls-text);
  line-height: 1.7;
}

.mls-proc__arrow {
  display: none;
}

.mls-proc__info {
  display: flex;
  align-items: flex-start;
  gap: 1.2rem;
  padding: 1.5rem 1.7rem;
  border: 1px solid #d3e2f7;
  border-radius: 10px;
  background: #e8f0fb;
}

.mls-proc__info-icon {
  display: grid;
  place-items: center;
  flex: 0 0 auto;
  width: 3rem;
  height: 3rem;
  border-radius: 50%;
  background: #1d5bb8;
  color: #fff;
  font-family: var(--mls-serif);
  font-size: 1.6rem;
  font-style: italic;
  font-weight: 700;
}

.mls-proc__info h2 {
  margin: 0 0 0.4rem;
  font-family: var(--mls-serif);
  font-weight: 700;
  font-size: 1.45rem;
  color: #1d5bb8;
}

.mls-proc__info p {
  margin: 0;
  color: #2a3d5c;
  line-height: 1.7;
}

.mls-proc__cta {
  padding: 3.5rem 1.25rem;
  background: #b98a55 url("../images/process-cta.webp") center / cover no-repeat;
}

.mls-proc__cta-inner {
  display: grid;
  grid-template-columns: 1fr;
  gap: 2rem;
  align-items: center;
  max-width: 1180px;
  margin: 0 auto;
}

.mls-proc__cta-card {
  max-width: 34rem;
  padding: 2rem 2.1rem;
  border-radius: 14px;
  background: rgba(255, 255, 255, 0.94);
  box-shadow: 0 16px 38px rgba(23, 41, 42, 0.16);
}

.mls-proc__cta-card h2 {
  margin: 0 0 0.7rem;
  font-family: var(--mls-serif);
  font-weight: 700;
  font-size: clamp(1.8rem, 3vw, 2.4rem);
  color: #2a2c63;
}

.mls-proc__cta-card p {
  margin: 0 0 1.4rem;
  font-size: 1.05rem;
  line-height: 1.65;
  color: var(--mls-text);
}

.mls-proc__cta-btn {
  display: inline-flex;
  align-items: center;
  gap: 0.7rem;
  padding: 1rem 2rem;
  border-radius: 6px;
  background: #e2582b;
  color: #fff !important;
  font-weight: 700;
  text-decoration: none;
  box-shadow: 0 10px 24px rgba(226, 88, 43, 0.35);
}

.mls-proc__cta-btn:hover,
.mls-proc__cta-btn:focus-visible {
  background: #c9481f;
}

.mls-proc__cta-btn svg {
  width: 1.15rem;
  height: 1.15rem;
  fill: none;
  stroke: currentColor;
  stroke-width: 2;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.mls-proc__cta-art {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1.5rem;
  justify-items: center;
}

.mls-proc__cta-art-item {
  color: #fff;
  text-align: center;
}

.mls-proc__cta-art-item svg {
  width: 2.2rem;
  height: 2.2rem;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.8;
  stroke-linecap: round;
  stroke-linejoin: round;
  filter: drop-shadow(0 1px 4px rgba(0, 0, 0, 0.45));
}

.mls-proc__cta-art-item span {
  display: block;
  margin-top: 0.55rem;
  font-family: var(--mls-serif);
  font-weight: 700;
  font-size: 1.15rem;
  line-height: 1.2;
  text-shadow: 0 1px 6px rgba(0, 0, 0, 0.5);
}

@media (min-width: 720px) {
  .mls-proc__steps {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (min-width: 900px) {
  .mls-proc__hero-inner {
    grid-template-columns: 1.2fr 0.8fr;
    gap: 3rem;
  }

  .mls-proc__cta-inner {
    grid-template-columns: 1fr auto;
    gap: 3rem;
  }
}

@media (min-width: 1024px) {
  .mls-proc__steps {
    grid-template-columns: repeat(4, 1fr);
    gap: 2.6rem;
  }

  .mls-proc__arrow {
    display: grid;
    place-items: center;
    position: absolute;
    top: 9.6rem;
    right: -1.5rem;
    z-index: 2;
    width: 2.3rem;
    height: 2.3rem;
    border-radius: 50%;
    background: #1f6b3a;
    color: #fff;
  }

  .mls-proc__arrow svg {
    width: 1rem;
    height: 1rem;
    fill: none;
    stroke: currentColor;
    stroke-width: 2.6;
    stroke-linecap: round;
    stroke-linejoin: round;
  }
}

/* ---------------------------------------------------------------------------
 * Contact Us page
 * ------------------------------------------------------------------------ */
.mls-cont {
  background: #fff;
}

.mls-cont__hero {
  position: relative;
  padding: 3.5rem 1.25rem 4rem;
  background: #b98a55 url("../images/process-cta.webp") center / cover no-repeat;
}

.mls-cont__hero::before {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(
    100deg,
    rgba(255, 255, 255, 0.9) 0%,
    rgba(255, 255, 255, 0.66) 44%,
    rgba(255, 255, 255, 0.16) 74%,
    rgba(255, 255, 255, 0.04) 100%
  );
}

.mls-cont__hero-inner {
  position: relative;
  max-width: 1180px;
  margin: 0 auto;
}

.mls-cont__kicker {
  display: flex;
  align-items: center;
  gap: 1rem;
  margin: 0 0 1rem;
  color: #2a2c63;
  text-shadow: none;
}

.mls-cont__kicker::after {
  content: "";
  flex: 0 0 5rem;
  height: 1px;
  background: currentColor;
  opacity: 0.45;
}

.mls-cont__title {
  margin: 0 0 1rem;
  font-family: var(--mls-serif);
  font-weight: 700;
  font-size: clamp(2.2rem, 4.6vw, 3.5rem);
  line-height: 1.05;
}

.mls-cont__title-line {
  display: block;
}

.mls-cont__title-line--navy {
  color: #2a2c63;
}

.mls-cont__title-line--green {
  color: #14532d;
}

.mls-cont__sub {
  margin: 0;
  max-width: 36rem;
  font-size: 1.1rem;
  line-height: 1.65;
  color: #24303a;
}

.mls-cont__body {
  padding: 3rem 1.25rem 3.5rem;
  background: #f7f9f6;
}

.mls-cont__inner {
  display: grid;
  grid-template-columns: 1fr;
  gap: 2.5rem;
  align-items: start;
  max-width: 1180px;
  margin: 0 auto;
}

.mls-cont__phone-icon {
  display: grid;
  place-items: center;
  width: 6.5rem;
  height: 6.5rem;
  margin-bottom: 1.2rem;
  border-radius: 50%;
  background: #e9f4ec;
  color: #1f6b3a;
}

.mls-cont__phone-icon svg {
  width: 2.9rem;
  height: 2.9rem;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.7;
  stroke-linecap: round;
  stroke-linejoin: round;
}

/* Solid glyphs (phone, people) match the reference artwork. */
.mls-cont__glyph-fill {
  fill: currentColor !important;
  stroke: none !important;
}

.mls-cont__call-title {
  margin: 0 0 0.3rem;
  font-family: var(--mls-serif);
  font-weight: 700;
  font-size: 1.7rem;
  color: #2a2c63;
}

.mls-cont__call-number {
  margin: 0 0 0.6rem;
  font-family: var(--mls-serif);
  font-weight: 700;
  font-size: clamp(1.9rem, 3.4vw, 2.6rem);
  line-height: 1.1;
}

.mls-cont__call-number a {
  color: #14532d !important;
  text-decoration: none;
}

.mls-cont__call-note {
  margin: 0;
  max-width: 26rem;
  font-size: 1.12rem;
  color: var(--mls-text);
}

.mls-cont__hr {
  margin: 1.8rem 0;
  border: 0;
  border-top: 1px solid rgba(23, 41, 42, 0.16);
}

.mls-cont__list {
  display: grid;
  gap: 1.4rem;
  margin: 0;
  padding: 0;
  list-style: none;
}

.mls-cont__list-item {
  display: flex;
  align-items: flex-start;
  gap: 1rem;
}

.mls-cont__list-icon {
  display: grid;
  place-items: center;
  flex: 0 0 auto;
  width: 3.6rem;
  height: 3.6rem;
  border-radius: 50%;
  background: #e9f4ec;
  color: #1f6b3a;
}

.mls-cont__list-icon svg {
  width: 1.7rem;
  height: 1.7rem;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.8;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.mls-cont__list-item h3 {
  margin: 0 0 0.2rem;
  font-family: var(--mls-serif);
  font-weight: 700;
  font-size: 1.25rem;
  color: #2a2c63;
}

.mls-cont__list-item p {
  margin: 0;
  color: var(--mls-text);
}

/* Message form card */
.mls-cont__card {
  padding: 1.8rem 1.7rem;
  border: 1px solid rgba(23, 41, 42, 0.1);
  border-radius: 14px;
  background: #fff;
  box-shadow: 0 16px 40px rgba(23, 41, 42, 0.08);
}

.mls-cont__card-head {
  display: flex;
  align-items: flex-start;
  gap: 1rem;
  margin-bottom: 1.2rem;
}

.mls-cont__card-icon {
  display: grid;
  place-items: center;
  flex: 0 0 auto;
  width: 3.4rem;
  height: 3.4rem;
  border-radius: 50%;
  background: #e9f4ec;
  color: #1f6b3a;
}

.mls-cont__card-icon svg {
  width: 1.7rem;
  height: 1.7rem;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.8;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.mls-cont__card-head h2 {
  margin: 0 0 0.25rem;
  font-family: var(--mls-serif);
  font-weight: 700;
  font-size: 1.7rem;
  color: #2a2c63;
}

.mls-cont__card-head p {
  margin: 0;
  color: var(--mls-text);
}

.mls-cont__form {
  display: grid;
  gap: 0.9rem;
}

.mls-cont__grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 0.9rem;
}

.mls-cont__form input[type="text"],
.mls-cont__form input[type="email"],
.mls-cont__form input[type="tel"],
.mls-cont__form select,
.mls-cont__form textarea {
  width: 100%;
  padding: 0.85rem 1rem;
  border: 1px solid rgba(23, 41, 42, 0.18);
  border-radius: 8px;
  background: #fff;
  color: var(--mls-ink);
  font: inherit;
  font-size: 1rem;
}

.mls-cont__form textarea {
  resize: vertical;
}

/* Text inputs are content-box by default (Chrome gives <select> and buttons
   border-box), so `width: 100%` plus a control's own padding and border made it
   wider than the box holding it: the contact form's two-column row overlapped and
   its full-width fields stuck 34px out of the card, the county field covered the
   zoning select, and the search bar came out wider than the map column. Keep the
   padding inside the width in every form our own components lay out. */
.mls-search input:not([type="checkbox"]):not([type="radio"]),
.mls-search select,
.mls-search textarea,
.mls-cont__form input:not([type="checkbox"]):not([type="radio"]),
.mls-cont__form select,
.mls-cont__form textarea,
.mlsb__search-form input,
.mlsb__search-form select,
.mls-save-search input,
.mls-save-search select,
.mls-results-bar__sort select {
  box-sizing: border-box;
}

.mls-cont__form input:focus,
.mls-cont__form select:focus,
.mls-cont__form textarea:focus {
  outline: 2px solid rgba(47, 125, 58, 0.35);
  outline-offset: 1px;
  border-color: #2f7d3a;
}

.mls-cont__hp {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip: rect(0 0 0 0);
  clip-path: inset(50%);
}

.mls-cont__submit {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.7rem;
  width: 100%;
  margin-top: 0.2rem;
  padding: 1.05rem 2rem;
  border: 0;
  border-radius: 8px;
  background: #1f6b3a;
  color: #fff;
  font: inherit;
  font-size: 1.05rem;
  font-weight: 700;
  cursor: pointer;
  box-shadow: 0 12px 26px rgba(31, 107, 58, 0.28);
}

.mls-cont__submit:hover,
.mls-cont__submit:focus-visible {
  background: #185a30;
}

.mls-cont__submit svg {
  width: 1.15rem;
  height: 1.15rem;
  fill: none;
  stroke: currentColor;
  stroke-width: 2;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.mls-cont__secure {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  margin: 0.2rem 0 0;
  font-size: 0.85rem;
  color: var(--mls-muted);
}

.mls-cont__secure svg {
  width: 1rem;
  height: 1rem;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.8;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.mls-cont__notice {
  margin: 0 0 1rem;
  padding: 0.7rem 0.9rem;
  border-radius: 8px;
  font-size: 0.95rem;
}

.mls-cont__notice--ok {
  background: #e9f4ec;
  color: #185a30;
}

.mls-cont__notice--err {
  background: #fdecea;
  color: #8f2d2d;
}

@media (min-width: 640px) {
  .mls-cont__grid {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (min-width: 900px) {
  .mls-cont__inner {
    grid-template-columns: 0.9fr 1.1fr;
    gap: 3rem;
  }
}

/* ---------------------------------------------------------------------------
 * FAQ page
 * ------------------------------------------------------------------------ */
.mlsf {
  background: #fff;
}

.mlsf__hero {
  position: relative;
  padding: 3.5rem 1.25rem 4rem;
  background: #b98a55 url("../images/process-cta.webp") center / cover no-repeat;
}

.mlsf__hero::before {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(
    100deg,
    rgba(255, 255, 255, 0.9) 0%,
    rgba(255, 255, 255, 0.66) 44%,
    rgba(255, 255, 255, 0.16) 74%,
    rgba(255, 255, 255, 0.04) 100%
  );
}

.mlsf__hero-inner {
  position: relative;
  display: grid;
  grid-template-columns: 1fr;
  gap: 2rem;
  align-items: center;
  max-width: 1180px;
  margin: 0 auto;
}

.mlsf__kicker {
  display: flex;
  align-items: center;
  gap: 1rem;
  margin: 0 0 1rem;
  color: #2a2c63;
  text-shadow: none;
}

.mlsf__kicker::after {
  content: "";
  flex: 0 0 5rem;
  height: 1px;
  background: currentColor;
  opacity: 0.45;
}

.mlsf__title {
  margin: 0 0 0.8rem;
  font-family: var(--mls-serif);
  font-weight: 700;
  font-size: clamp(2.2rem, 4.6vw, 3.5rem);
  line-height: 1.05;
}

.mlsf__title-line--navy {
  display: block;
  color: #2a2c63;
}

.mlsf__title-line--green {
  display: block;
  color: #14532d;
}

.mlsf__sub {
  margin: 0 0 0.7rem;
  font-family: var(--mls-serif);
  font-weight: 700;
  font-size: 1.35rem;
  color: #2a2c63;
}

.mlsf__intro {
  margin: 0 0 0.6rem;
  max-width: 34rem;
  font-size: 1.08rem;
  line-height: 1.65;
  color: #24303a;
}

.mlsf__note {
  margin: 0;
  max-width: 34rem;
  font-size: 1.02rem;
  color: #24303a;
}

.mlsf__note a {
  color: #1f6b3a;
  font-weight: 700;
}

.mlsf__card {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  padding: 1.5rem 0.5rem;
  border-radius: 14px;
  background: rgba(233, 244, 236, 0.95);
  box-shadow: 0 16px 38px rgba(23, 41, 42, 0.14);
}

.mlsf__card-item {
  padding: 0 0.7rem;
  text-align: center;
  border-left: 1px solid rgba(23, 41, 42, 0.14);
}

.mlsf__card-item:first-child {
  border-left: 0;
}

.mlsf__card-item svg {
  width: 2.1rem;
  height: 2.1rem;
  fill: none;
  stroke: #1f6b3a;
  stroke-width: 1.8;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.mlsf__card-item h2 {
  margin: 0.6rem 0 0;
  font-family: var(--mls-sans);
  font-size: 0.82rem;
  font-weight: 800;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  color: var(--mls-ink);
}

/* Topic tabs */
.mlsf__tabs {
  display: flex;
  flex-wrap: wrap;
  gap: 0.6rem;
  max-width: 1180px;
  margin: 0 auto;
  padding: 1.2rem 1.25rem;
}

.mlsf__tab {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  padding: 0.75rem 1.1rem;
  border: 1px solid rgba(23, 41, 42, 0.16);
  border-radius: 8px;
  background: #fff;
  color: var(--mls-ink);
  font-size: 0.98rem;
  font-weight: 700;
  text-decoration: none;
}

.mlsf__tab svg {
  width: 1.15rem;
  height: 1.15rem;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.8;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.mlsf__tab:hover,
.mlsf__tab:focus-visible {
  border-color: #1f6b3a;
  color: #1f6b3a;
}

.mlsf__tab.is-active {
  background: #1f6b3a;
  border-color: #1f6b3a;
  color: #fff !important;
}

/* Questions + sidebar */
.mlsf__body {
  display: grid;
  grid-template-columns: 1fr;
  gap: 2.5rem;
  align-items: start;
  max-width: 1180px;
  margin: 0 auto;
  padding: 0 1.25rem 3.5rem;
}

.mlsf__group {
  margin-bottom: 2.8rem;
  scroll-margin-top: 6rem;
}

.mlsf__group:last-child {
  margin-bottom: 0;
}

.mlsf__group-title {
  margin: 0 0 0.3rem;
  font-family: var(--mls-serif);
  font-weight: 700;
  font-size: clamp(1.7rem, 3vw, 2.3rem);
  color: #2a2c63;
}

.mlsf__group-sub {
  margin: 0 0 1.2rem;
  color: var(--mls-text);
}

.mlsf__item {
  border: 1px solid rgba(23, 41, 42, 0.14);
  border-radius: 8px;
  background: #fff;
}

.mlsf__item + .mlsf__item {
  margin-top: 0.7rem;
}

.mlsf__item[open] {
  box-shadow: 0 10px 26px rgba(23, 41, 42, 0.08);
}

.mlsf__q {
  display: flex;
  align-items: center;
  gap: 0.9rem;
  padding: 0.85rem 1rem;
  list-style: none;
  cursor: pointer;
}

.mlsf__q::-webkit-details-marker {
  display: none;
}

.mlsf__num {
  display: grid;
  place-items: center;
  flex: 0 0 auto;
  width: 2.1rem;
  height: 2.1rem;
  border-radius: 50%;
  background: #1f6b3a;
  color: #fff;
  font-size: 0.95rem;
  font-weight: 800;
}

.mlsf__q-text {
  flex: 1;
  font-size: 1.05rem;
  font-weight: 700;
  color: #2a2c63;
}

.mlsf__chev {
  width: 0.6rem;
  height: 0.6rem;
  border-right: 2px solid #1f6b3a;
  border-bottom: 2px solid #1f6b3a;
  transform: rotate(45deg);
  transition: transform 0.2s ease;
}

.mlsf__item[open] .mlsf__chev {
  transform: rotate(-135deg);
}

.mlsf__a {
  padding: 0 1rem 1.1rem 4rem;
  color: var(--mls-text);
}

.mlsf__a p {
  margin: 0 0 0.7rem;
  line-height: 1.7;
}

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

.mlsf__a ul {
  margin: 0.2rem 0 0.7rem;
  padding-left: 1.1rem;
}

.mlsf__a li {
  margin-bottom: 0.35rem;
  line-height: 1.65;
}

.mlsf__side {
  display: grid;
  gap: 1.5rem;
}

.mlsf__side-card {
  padding: 1.6rem 1.5rem;
  border: 1px solid #d8e7dc;
  border-radius: 12px;
  background: #eef6f0;
}

.mlsf__side-card h2 {
  margin: 0 0 0.2rem;
  font-family: var(--mls-serif);
  font-weight: 700;
  font-size: 1.6rem;
  color: #2a2c63;
}

.mlsf__side-sub {
  margin: 0 0 0.7rem;
  font-family: var(--mls-serif);
  font-weight: 700;
  font-size: 1.2rem;
  color: #1f6b3a;
}

.mlsf__side-card p {
  margin: 0 0 0.9rem;
  line-height: 1.65;
  color: var(--mls-text);
}

.mlsf__side-phone {
  display: flex;
  align-items: center;
  gap: 0.9rem;
  margin: 1.1rem 0 0.8rem;
}

.mlsf__side-icon {
  display: grid;
  place-items: center;
  flex: 0 0 auto;
  width: 3.4rem;
  height: 3.4rem;
  border-radius: 50%;
  background: #fff;
  color: #1f6b3a;
}

.mlsf__side-icon svg {
  width: 1.7rem;
  height: 1.7rem;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.8;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.mlsf__glyph-fill {
  fill: currentColor !important;
  stroke: none !important;
}

.mlsf__side-label {
  display: block;
  font-size: 0.9rem;
  color: var(--mls-muted);
}

.mlsf__side-number {
  display: block;
  font-family: var(--mls-serif);
  font-weight: 700;
  font-size: 1.45rem;
  color: #14532d !important;
  text-decoration: none;
}

.mlsf__side-email {
  font-size: 0.98rem;
}

.mlsf__side-email a {
  color: #1f6b3a;
  font-weight: 700;
}

.mlsf__side-or {
  display: flex;
  align-items: center;
  gap: 0.8rem;
  margin: 1rem 0;
  font-size: 0.85rem;
  letter-spacing: 0.12em;
  color: var(--mls-muted);
}

.mlsf__side-or::before,
.mlsf__side-or::after {
  content: "";
  flex: 1;
  height: 1px;
  background: rgba(23, 41, 42, 0.16);
}

.mlsf__side-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.7rem;
  width: 100%;
  padding: 1rem 1.4rem;
  border-radius: 8px;
  background: #e2582b;
  color: #fff !important;
  font-weight: 700;
  text-decoration: none;
}

.mlsf__side-btn:hover,
.mlsf__side-btn:focus-visible {
  background: #c9481f;
}

.mlsf__side-btn svg {
  width: 1.15rem;
  height: 1.15rem;
  fill: none;
  stroke: currentColor;
  stroke-width: 2;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.mlsf__side-note {
  margin: 0.7rem 0 0;
  font-size: 0.88rem;
  color: var(--mls-muted);
}

.mlsf__side-cta {
  padding: 1.6rem 1.5rem;
  border-radius: 12px;
  background: #6f9c7a url("../images/process-cta.webp") center / cover no-repeat;
}

.mlsf__side-cta h2 {
  margin: 0 0 0.6rem;
  font-family: var(--mls-serif);
  font-weight: 700;
  font-size: 1.6rem;
  color: #fff;
  text-shadow: 0 1px 8px rgba(0, 0, 0, 0.5);
}

.mlsf__side-cta p {
  margin: 0 0 1.1rem;
  color: #fff;
  text-shadow: 0 1px 8px rgba(0, 0, 0, 0.5);
}

/* Why-buy strip */
.mlsf__why {
  padding: 3rem 1.25rem 3.5rem;
  background: #f7f9f6;
  text-align: center;
}

.mlsf__why h2 {
  margin: 0 0 0.4rem;
  font-family: var(--mls-serif);
  font-weight: 700;
  font-size: clamp(1.8rem, 3.2vw, 2.5rem);
  color: #2a2c63;
}

.mlsf__why-sub {
  margin: 0 0 2rem;
  color: var(--mls-text);
}

.mlsf__why-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1.8rem;
  max-width: 1180px;
  margin: 0 auto;
}

.mlsf__why-item {
  text-align: center;
}

.mlsf__why-icon {
  display: inline-grid;
  place-items: center;
  width: 5rem;
  height: 5rem;
  border-radius: 50%;
  background: #e9f4ec;
  color: #1f6b3a;
}

.mlsf__why-icon svg {
  width: 2.2rem;
  height: 2.2rem;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.8;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.mlsf__why-item h3 {
  margin: 0.9rem 0 0.3rem;
  font-family: var(--mls-serif);
  font-weight: 700;
  font-size: 1.3rem;
  color: #2a2c63;
}

.mlsf__why-item p {
  margin: 0;
  color: var(--mls-text);
}

@media (min-width: 640px) {
  .mlsf__why-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (min-width: 900px) {
  .mlsf__hero-inner {
    grid-template-columns: 1.15fr 0.85fr;
    gap: 3rem;
  }

  .mlsf__body {
    grid-template-columns: minmax(0, 1fr) 340px;
    gap: 3rem;
  }

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

/* Phone-sized hero backdrops -------------------------------------------------
   The desktop photos are 1600px wide — at 412 CSS pixels a phone was pulling
   three times the pixels it can show, about 110KB per hero. These 900px files
   keep the same crop, position and overlay; only background-image changes, so
   the gradient layers and background sizing stay identical. */
@media (max-width: 760px) {
  .mls-hero {
    background-image:
      linear-gradient(180deg, rgba(8, 18, 26, 0.12) 0%, rgba(8, 18, 26, 0.24) 100%),
      url("../images/hero-landscape-900.webp");
  }

  .mls-archive-hero {
    background-image:
      linear-gradient(180deg, rgba(23, 41, 42, 0.55) 0%, rgba(23, 41, 42, 0.4) 100%),
      url("../images/hero-landscape-900.webp");
  }

  .mlsb__hero,
  .mls-sell__hero {
    background-image: url("../images/sell-hero-900.webp");
  }

  .mls-testi__hero,
  .mls-proc__hero {
    background-image: url("../images/hero-landscape-900.webp");
  }
}

/* Phone-sized hero spacing ---------------------------------------------------
   A 412px screen has room for the headline, the two buttons and the search bar
   only if each of them is scaled for it: at the desktop sizes the search bar
   started around 500px down and fell off the bottom of a 667px-tall phone. */
@media (max-width: 640px) {
  /* Tighter still: on a phone the search form is the thing the visitor came
     for, so every pixel above it counts. */
  .mls-hero {
    padding: 1rem 1.25rem 1.75rem;
  }

  .mls-search {
    margin-top: 1rem;
    gap: 0.45rem;
    padding: 0.5rem;
  }

  .mls-hero__title {
    font-size: clamp(1.85rem, 8.2vw, 2.4rem);
    line-height: 1.14;
  }

  .mls-hero__text {
    margin-top: 0.7rem;
    font-size: 1rem;
    line-height: 1.55;
  }

  .mls-hero__actions {
    margin-top: 0.9rem;
    gap: 0.5rem;
  }

  .mls-hero__text {
    margin-top: 0.55rem;
  }

  .mls-search {
    margin-top: 1.25rem;
    padding: 0.6rem;
  }
}

/* Sections below the first screen are skipped until they are scrolled to ------
   A long page is expensive to lay out even though nobody has seen most of it:
   on a throttled phone the full-document layout was the largest single block of
   main-thread work on the homepage. content-visibility lets the browser skip the
   off-screen sections, and contain-intrinsic-size (with `auto`, which remembers
   the real height after the first paint) keeps the scrollbar and any layout
   shift exactly as they were. The hero and the search form stay out of this so
   the first screen is laid out immediately. */
.mls-map,
.mls-listings,
.mls-trust,
.mls-cta,
.mls-quotes,
.mls-footer {
  content-visibility: auto;
}

.mls-map {
  contain-intrinsic-size: auto 820px;
}

.mls-listings {
  contain-intrinsic-size: auto 1500px;
}

.mls-trust {
  contain-intrinsic-size: auto 430px;
}

.mls-cta {
  contain-intrinsic-size: auto 520px;
}

/* The strip became a card row, so the remembered height differs by breakpoint. */
.mls-quotes {
  contain-intrinsic-size: auto 1150px;
}

@media (min-width: 700px) {
  .mls-quotes {
    contain-intrinsic-size: auto 520px;
  }
}

.mls-footer {
  contain-intrinsic-size: auto 620px;
}

/* "Our Properties" is a button now: it opens the state list instead of jumping
   straight to the archive, so a state can be picked. The archive itself is the
   first entry of that list. */
.mls-nav__drop-btn {
  appearance: none;
  border: 0;
  background: none;
  padding: 0;
  margin: 0;
  font: inherit;
  color: inherit;
  letter-spacing: inherit;
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  cursor: pointer;
}

.mls-nav__drop-btn::after {
  content: "";
  width: 7px;
  height: 7px;
  margin-top: -3px;
  border-right: 1.8px solid currentColor;
  border-bottom: 1.8px solid currentColor;
  transform: rotate(45deg);
  transition: transform 0.18s ease;
}

.mls-nav__item--drop:hover .mls-nav__drop-btn::after,
.mls-nav__drop-btn[aria-expanded="true"]::after {
  transform: rotate(-135deg);
  margin-top: 3px;
}

.mls-nav__drop-btn[aria-expanded="true"] + .mls-drop {
  display: block;
  opacity: 1;
  visibility: visible;
  transform: translateX(-50%) translateY(0);
}

.mls-drop__all {
  font-weight: 700;
  color: var(--mls-brand-forest) !important;
  border-bottom: 1px solid rgba(23, 41, 42, 0.08);
}

/* Fields in the More filters grid have to be allowed to shrink into their own
   track. Without this the county box keeps its intrinsic width (about 240px),
   which is wider than the column, so it slides over the zoning select next to it
   and the two look misaligned at tablet widths. */
.mls-search__grid > * {
  min-width: 0;
}

.mls-search__grid .mls-field,
.mls-search__grid input,
.mls-search__grid select,
.mls-search__grid .mls-field__control {
  width: 100%;
  min-width: 0;
  max-width: 100%;
  box-sizing: border-box;
}

/* A text input inherited the field's line box and came out about 49px tall while
   a select next to it used line-height: normal and came out about 43px, so the
   controls in one row sat at two different heights. Pin one height for all of
   them (the value the radius select already used). */
.mls-search input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]),
.mls-search select,
.mls-search__submit,
.mls-search__more {
  height: 48px;
  padding-top: 0;
  padding-bottom: 0;
  line-height: 1.25;
  box-sizing: border-box;
}
