/* ==========================================================================
   Meva Estates — Property single (custom ficha)
   Generous vertical rhythm: sections breathe more than the mockup.
   ========================================================================== */

*,
*::before,
*::after { box-sizing: border-box; }

html { scroll-behavior: smooth; }

body.mv-property {
  margin: 0;
  background: #fff;
  color: var(--ink);
  font-family: var(--sans);
  font-size: 16px;
  line-height: 1.7;
  -webkit-font-smoothing: antialiased;
  overflow-x: clip;
  --radius: 6px; /* match home-v2 cards */
}

/* Premium white CTA */
.mv-btn--premium {
  background: #fff;
  color: var(--charcoal);
  border: 1px solid rgba(43, 41, 37, .14);
  box-shadow: 0 1px 2px rgba(31, 29, 24, .04), 0 10px 28px rgba(31, 29, 24, .07);
}
.mv-btn--premium:hover {
  background: #fff;
  color: var(--forest);
  border-color: var(--gold);
  box-shadow: 0 12px 32px rgba(31, 29, 24, .12);
}
body.mv-property .mv-header__cta.mv-btn--premium {
  background: #fff;
  border-color: rgba(43, 41, 37, .14);
  color: var(--charcoal);
}
body.mv-property .mv-header__cta.mv-btn--premium:hover {
  border-color: var(--gold);
  color: var(--forest);
}


body.mv-property .mv-page {
  padding-top: 0;
  background: #fff;
}

body.mv-property .mvp img { max-width: 100%; height: auto; display: block; }
body.mv-property .mvp .mvp-hero__shot img,
body.mv-property .mvp .mvp-gallery__shot img,
body.mv-property .mvp .mv-dev__media img {
  height: 100%;
}
body.mv-property .mv-logo img {
  width: auto;
  height: 42px;
  max-height: 42px;
  object-fit: contain;
}
body.mv-property .mv-logo--foot img {
  height: 80px;
  max-height: 80px;
}
body.mv-property .mvp button { font: inherit; color: inherit; background: none; border: 0; cursor: pointer; }
body.mv-property .mvp a { color: inherit; text-decoration: none; }

/* Restore brand CTAs against the button/a resets above */
body.mv-property .mv-btn--forest,
body.mv-property button.mv-btn--forest,
body.mv-property a.mv-btn--forest {
  background: var(--forest);
  border: 1px solid var(--forest);
  color: #fff;
}
body.mv-property .mv-btn--forest:hover,
body.mv-property button.mv-btn--forest:hover,
body.mv-property a.mv-btn--forest:hover {
  background: var(--forest-dark);
  border-color: var(--forest-dark);
  color: #fff;
}
/* ul.mv-shell must keep chrome shell centering (ul reset would kill margin-inline) */
body.mv-property ul.mv-shell {
  width: 100%;
  max-width: var(--shell);
  margin-inline: auto;
  padding-inline: var(--gutter);
}
body.mv-property p { margin: 0; }
body.mv-property .mvp ul:not(.mv-dev__specs),
body.mv-property .mvp ol { margin: 0; padding: 0; list-style: none; }
body.mv-property input,
body.mv-property textarea { font: inherit; color: inherit; }
body.mv-property :focus-visible { outline: 2px solid var(--gold); outline-offset: 3px; }

.mvp h1, .mvp h2, .mvp h3 {
  margin: 0;
  font-family: var(--serif);
  font-weight: 400;
  letter-spacing: -.012em;
  color: var(--charcoal);
  font-optical-sizing: auto;
}
.mvp h2.mvp-enquire__title { margin-bottom: 22px; }
.mvp h2.mvp-section__title { margin-bottom: 25px; }

/* --------------------------------------------------------------- top bar */

.mvp-top {
  padding: 22px 0 18px;
}
.mvp-top__inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
}

.mvp-crumbs ol {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 6px 0;
  font-size: 16px;
  color: var(--muted);
}
.mvp-crumbs li {
  display: inline-flex;
  align-items: center;
  max-width: none;
}
.mvp-crumbs li + li::before {
  content: "›";
  margin: 0 8px;
  color: var(--hair);
  flex: none;
}
.mvp-crumbs a:hover { color: var(--charcoal); }
.mvp-crumbs [aria-current] {
  color: var(--charcoal);
  white-space: normal;
  overflow: visible;
  text-overflow: unset;
}

.mvp-actions {
  display: flex;
  align-items: center;
  gap: 4px;
  flex: none;
}
.mvp-action {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  padding: 8px 12px;
  border-radius: 999px;
  font-size: 16px;
  font-weight: 500;
  color: var(--ink);
  transition: background .2s var(--ease), color .2s var(--ease);
}
.mvp-action:hover,
.mvp-action[aria-pressed="true"] {
  background: var(--cream);
  color: var(--charcoal);
}
.mvp-action .mv-i { color: var(--muted); }

/* ------------------------------------------------------------ hero gallery */

.mvp-hero {
  padding: 0;
  width: 100vw;
  max-width: 100vw;
  margin-left: calc(50% - 50vw);
  position: relative;
  left: 0;
}

.mvp-hero__grid {
  display: grid;
  grid-template-columns: 1.7fr 1fr;
  gap: 15px;
  width: 100%;
  height: min(580px, 64vh);
  min-height: 420px;
  padding: 0 clamp(16px, 3vw, 40px);
}

.mvp-hero__main {
  position: relative;
  margin: 0;
  border-radius: var(--radius);
  overflow: hidden;
  background: #ebe6dc;
  height: 100%;
}
.mvp-hero__side {
  display: grid;
  grid-template-rows: 1fr 1fr;
  gap: 15px;
  height: 100%;
  min-height: 0;
}
.mvp-hero__side .mvp-hero__shot {
  border-radius: var(--radius);
  overflow: hidden;
  min-height: 0;
  height: 100%;
}

.mvp-hero__shot {
  position: relative;
  display: block;
  width: 100%;
  height: 100%;
  padding: 0;
  overflow: hidden;
  background: var(--cream-deep);
}
.mvp-hero__main > .mvp-hero__shot {
  position: absolute;
  inset: 0;
}
.mvp-hero__shot img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform .7s var(--ease);
}
.mvp-hero__shot:hover img { transform: scale(1.03); }

.mvp-hero__caption {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 2;
  margin: 0;
  padding: 64px 28px 26px;
  max-width: none;
  font-family: var(--serif);
  font-style: italic;
  font-size: clamp(20px, 1.8vw, 28px);
  line-height: 1.25;
  color: #fff;
  background: linear-gradient(180deg, transparent 0%, rgba(20, 18, 14, .58) 100%);
  text-shadow: 0 1px 12px rgba(20, 18, 14, .35);
  pointer-events: none;
}

.mvp-hero__more {
  position: absolute;
  right: 14px;
  bottom: 14px;
  z-index: 2;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 9px 14px;
  border-radius: 999px;
  background: rgba(255, 255, 255, .94);
  font-size: 12.5px;
  font-weight: 500;
  color: var(--charcoal);
  box-shadow: 0 8px 22px rgba(31, 29, 24, .16);
}
.mvp-hero__more--icon { padding: 10px; }
.mvp-hero__placeholder { width: 100%; height: 100%; min-height: 420px; background: var(--cream-deep); }

/* -------------------------------------------------------- title / price */

.mvp-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 48px;
  padding: 88px 0 48px;
}
.mvp-head__title {
  font-size: clamp(32px, 3.6vw, 48px);
  line-height: 1.1;
  margin-bottom: 15px;
}
.mvp-head__loc {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-size: 18px;
  color: var(--muted);
}
.mvp-head__loc .mv-i { color: var(--gold); flex: none; }
.mvp-head__maplink {
  display: inline-flex;
  color: var(--muted);
  transition: color .2s var(--ease);
}
.mvp-head__maplink:hover { color: var(--charcoal); }

.mvp-head__price {
  flex: none;
  text-align: right;
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 16px;
  padding-top: 4px;
}
.mvp-head__amount {
  font-family: var(--serif);
  font-size: clamp(24px, 2.1vw, 30px);
  line-height: 1.1;
  color: var(--charcoal);
}
.mvp-head__cta { border-radius: 999px; }

/* ---------------------------------------------------------------- specs */

body.mv-property ul.mvp-specs.mv-shell {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-start;
  align-items: center;
  gap: 18px 48px;
  width: 100%;
  max-width: none;
  margin-inline: 0;
  margin-bottom: 8px;
  padding-block: 18px;
  /* Same inset as .mv-shell. 100vw counted the scrollbar and pushed the icons right. */
  padding-inline: max(var(--gutter), calc((100% - var(--shell)) / 2 + var(--gutter))) !important;
  border-top: 1px solid var(--hair-soft);
  border-bottom: 1px solid var(--hair-soft);
  position: relative;
  box-sizing: border-box;
  background: var(--hair-soft);
}
.mvp-specs li {
  display: flex;
  align-items: center;
  gap: 12px;
  flex: 0 0 auto;
  min-width: 0;
  font-size: 16px;
  color: var(--muted);
}
.mvp-specs li > span {
  display: flex;
  flex-direction: column;
  gap: 2px;
  min-width: 0;
  line-height: 1.25;
}
.mvp-specs .mv-i { color: var(--charcoal); flex: none; }
.mvp-specs strong {
  display: block;
  font-weight: 600;
  font-size: 16px;
  color: var(--charcoal);
  line-height: 1.2;
}

/* ---------------------------------------------------------- sticky nav */

.mvp-nav {
  position: sticky;
  top: var(--mvp-header-offset, 73px);
  z-index: 90;
  margin-top: 0;
  margin-bottom: 0;
  background: #fff;
  border-bottom: 1px solid var(--hair-soft);
  transition: background .25s var(--ease), border-color .25s var(--ease);
}
.mvp-nav.is-stuck {
  background: #e8ede4;
  box-shadow: none;
  border-bottom-color: rgba(63, 74, 56, .12);
}
/* Flush against sticky header — kill the 1px seam */
body.mv-property .mv-header--solid {
  border-bottom: none;
  box-shadow: none;
}
body.mv-property .mv-header--solid.is-stuck {
  background: rgba(248, 246, 240, .96);
  border-bottom: none;
  box-shadow: none;
}
body.mv-property .mvp-nav.is-stuck {
  top: calc(var(--mvp-header-offset, 73px) - 1px);
}
.mvp-nav .mv-shell {
  overflow-x: auto;
  padding-inline: 0;
}
body.mv-property .mvp-nav > .mv-shell {
  padding-inline: 0;
}
.mvp-nav__list,
.mvp-nav ul {
  display: flex;
  gap: 8px 28px;
  padding: 0;
  min-width: max-content;
}
.mvp-nav a {
  display: inline-block;
  padding: 18px 0 16px;
  font-size: 16px;
  font-weight: 500;
  color: var(--muted);
  border-bottom: 2px solid transparent;
  transition: color .2s var(--ease), border-color .2s var(--ease);
}
.mvp-nav a:hover { color: var(--charcoal); }
.mvp-nav a.is-active {
  color: var(--charcoal);
  border-bottom-color: var(--gold);
}

/* ----------------------------------------------------- body + sidebar */

.mvp-body {
  display: grid;
  grid-template-columns: minmax(0, 1.65fr) minmax(300px, .88fr);
  column-gap: 80px;
  row-gap: 0;
  align-items: start;
  padding: 64px 0 56px;
}

.mvp-main {
  min-width: 0;
  position: relative;
  z-index: 1;
}

/* Generous section separation */
.mvp-section,
.mvp-map,
.mvp-gallery,
.mvp-similar {
  padding: 64px 0 72px;
  border-top: 1px solid var(--hair-soft);
}
.mvp-section:first-child {
  border-top: 0;
}

.mvp-label {
  display: flex;
  align-items: center;
  gap: 14px;
  margin-bottom: 25px !important;
  font-size: 18px;
  font-weight: 500;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--muted);
}
.mvp-label::before {
  content: "";
  width: 32px;
  height: 2px;
  background: var(--gold);
  flex: none;
}

.mvp-section__title {
  font-size: clamp(26px, 2.4vw, 34px);
  line-height: 1.2;
  margin-bottom: 25px;
  max-width: 16em;
}

.mvp-prose {
  max-width: 60ch;
  font-size: 16px;
  line-height: 1.82;
  color: var(--ink);
}
.mvp-prose p + p { margin-top: 1.35em; }
.mvp-prose a { text-decoration: underline; text-underline-offset: 3px; }

/* ---------------------------------------------------------- details */

.mvp-details {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 32px 48px;
  margin-top: 12px;
}
.mvp-details li {
  display: flex;
  align-items: flex-start;
  gap: 14px;
}
.mvp-details__icon {
  display: grid;
  place-items: center;
  width: 38px;
  height: 38px;
  border-radius: 50%;
  background: var(--cream);
  color: var(--charcoal);
  flex: none;
}
.mvp-details__label {
  display: block;
  margin-bottom: 3px;
  font-size: 16px;
  color: var(--muted);
}
.mvp-details__value {
  font-size: 16px;
  font-weight: 560;
  color: var(--charcoal);
}

/* --------------------------------------------------------- features */

.mvp-features {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 22px 24px;
  margin-top: 12px;
}
.mvp-features li {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  font-size: 16px;
  color: var(--ink);
}
.mvp-features__icon {
  display: grid;
  place-items: center;
  width: 22px;
  height: 22px;
  margin-top: 1px;
  border-radius: 50%;
  background: rgba(194, 161, 90, .14);
  color: var(--gold-dark);
  flex: none;
}

/* ------------------------------------------------------------- aside */

.mvp-aside {
  display: flex;
  flex-direction: column;
  gap: 14px;
}

.mvp-usp {
  padding: 14px 16px;
  background: #f7f5f0;
  border: 1px solid var(--hair);
  border-radius: var(--radius);
}
.mvp-usp__head {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  margin-bottom: 8px;
}
.mvp-usp__icon {
  display: grid;
  place-items: center;
  width: 28px;
  height: 28px;
  border-radius: 50%;
  background: #fff;
  color: var(--gold-dark);
  flex: none;
}
.mvp-usp__title {
  font-size: 16px;
  line-height: 1.3;
}
.mvp-usp__list {
  display: flex;
  flex-direction: column;
  gap: 6px;
}
.mvp-usp__list li {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  font-size: 16px;
  color: var(--ink);
}
.mvp-usp__check {
  color: var(--gold-dark);
  flex: none;
  margin-top: 2px;
}

.mvp-enquire {
  position: sticky;
  top: calc(var(--mvp-header-offset, 73px) + 64px);
  z-index: 5;
  padding: 18px 18px 16px;
  background: #fff;
  border: 1px solid var(--hair);
  border-radius: var(--radius);
  box-shadow: 0 20px 48px rgba(31, 29, 24, .08);
}
.mvp-enquire__title {
  font-size: 17px;
  line-height: 1.25;
  margin-bottom: 12px;
}
.mvp-enquire__fields {
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.mvp-field input,
.mvp-field textarea {
  width: 100%;
  padding: 10px 12px;
  border: 1px solid var(--hair);
  border-radius: var(--radius);
  background: #fff;
  font-size: 16px;
  transition: border-color .2s var(--ease), box-shadow .2s var(--ease);
}
.mvp-field textarea { resize: vertical; min-height: 84px; max-height: 160px; line-height: 1.45; padding-block: 12px; }
.mvp-field input:focus,
.mvp-field textarea:focus {
  outline: none;
  border-color: var(--gold);
  box-shadow: 0 0 0 3px rgba(194, 161, 90, .18);
}
.mvp-enquire .mv-consent {
  gap: 6px;
  margin: 10px 0 0;
}
.mvp-enquire .mv-consent label {
  font-size: 12px;
  line-height: 1.35;
}
.mvp-enquire__submit {
  width: 100%;
  justify-content: center;
  margin-top: 12px;
  margin-bottom: 0;
  border-radius: 999px;
}
body.mv-property p.mvp-enquire__note {
  margin-top: 14px;
  font-size: 12px;
  line-height: 1.5;
  color: var(--muted);
}
.mvp-enquire__ok,
.mvp-enquire__err {
  margin: 12px 0 0;
  padding: 14px 16px;
  border-radius: var(--radius);
  font-size: 16px;
  line-height: 1.5;
}
.mvp-enquire__ok {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  background: #e8ede4;
  color: var(--forest-dark);
  border: 1px solid rgba(63, 74, 56, .18);
}
.mvp-enquire__ok strong {
  display: block;
  font-family: var(--serif);
  font-weight: 500;
  font-size: 18px;
  color: var(--forest-dark);
  margin-bottom: 2px;
}
.mvp-enquire__ok-icon {
  flex: none;
  display: grid;
  place-items: center;
  width: 28px;
  height: 28px;
  border-radius: 50%;
  background: rgba(63, 74, 56, .16);
  color: var(--forest-dark);
}
.mvp-enquire__err { background: rgba(178, 74, 58, .09); color: #9c3f2f; }
.mvp-enquire__ok[hidden],
.mvp-enquire__err[hidden] { display: none !important; }
.mvp-enquire.is-sent .mvp-enquire__fields,
.mvp-enquire.is-sent .mv-consent,
.mvp-enquire.is-sent .mvp-enquire__submit,
.mvp-enquire.is-sent .mvp-enquire__note { display: none; }
.mvp-enquire.is-sent .mvp-enquire__title { margin-bottom: 18px; }

/* ---------------------------------------------------------------- map */

.mvp-map {
  position: relative;
  z-index: 0;
  isolation: isolate;
  overflow: hidden;
}
.mvp-map .mvp-label { margin-bottom: 25px; }
.mvp-map__frame {
  position: relative;
  z-index: 0;
  isolation: isolate;
  width: 100%;
  height: min(380px, 52vw);
  max-height: 420px;
  border-radius: var(--radius);
  overflow: hidden;
  background: #ebe6dc;
  border: 1px solid var(--hair-soft);
}
.mvp-map__canvas {
  width: 100%;
  height: 100%;
}
.mvp-map__frame .leaflet-container {
  width: 100%;
  height: 100%;
  font: inherit;
  background: #f3efe6;
  z-index: 0 !important;
}
.mvp-map__frame .leaflet-pane,
.mvp-map__frame .leaflet-top,
.mvp-map__frame .leaflet-bottom {
  z-index: 1 !important;
}
.mvp-map__frame .leaflet-control-zoom {
  z-index: 2 !important;
}
.mvp-map__frame .leaflet-tile-pane {
  filter: grayscale(.45) sepia(.28) saturate(.55) hue-rotate(18deg) brightness(1.03) contrast(.92);
}
.mvp-map__frame .leaflet-control-zoom a {
  color: var(--charcoal) !important;
  border-color: var(--hair) !important;
}
.mvp-map__frame .leaflet-marker-icon.mvp-map__marker {
  border: 0 !important;
  background: transparent !important;
  box-shadow: 0 8px 22px rgba(31, 29, 24, .28);
  border-radius: 50%;
}
.mvp-map__pin {
  width: 22px;
  height: 22px;
  margin-left: -11px;
  margin-top: -11px;
  border-radius: 50%;
  background: var(--forest);
  border: 3px solid #fff;
  box-shadow: 0 6px 18px rgba(31, 29, 24, .35);
}
.mvp-map__pin::after {
  content: "";
  position: absolute;
  inset: 4px;
  border-radius: 50%;
  background: var(--gold);
}
.mvp-map__halo {
  width: 72px;
  height: 72px;
  margin-left: -36px;
  margin-top: -36px;
  border-radius: 50%;
  background: rgba(63, 74, 56, .14);
  border: 1px solid rgba(194, 161, 90, .35);
}

/* ------------------------------------------------------------ gallery */

.mvp-gallery__head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  margin-bottom: 28px;
}
.mvp-gallery__head .mvp-label { margin-bottom: 0; } /* spacing on head */
.mvp-gallery__row {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 15px;
}
.mvp-gallery__shot {
  position: relative;
  display: block;
  width: 100%;
  aspect-ratio: 3 / 2;
  overflow: hidden;
  border-radius: var(--radius);
  background: var(--cream-deep);
  padding: 0;
}
.mvp-gallery__shot img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform .6s var(--ease);
}
.mvp-gallery__shot:hover img { transform: scale(1.04); }

/* ------------------------------------------------------------ similar */

.mvp-similar__head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  margin-bottom: 28px;
}
.mvp-similar__title {
  font-size: clamp(26px, 2.4vw, 34px);
}
.mvp-similar .mv-dev-grid { margin: 0; }

.mvp-card {
  background: #fff;
  border: 1px solid var(--hair-soft);
  border-radius: var(--radius);
  overflow: hidden;
  transition: box-shadow .3s var(--ease), transform .3s var(--ease);
}
.mvp-card:hover {
  box-shadow: 0 18px 40px rgba(31, 29, 24, .1);
  transform: translateY(-2px);
}
.mvp-card__media {
  display: block;
  aspect-ratio: 16 / 11;
  overflow: hidden;
  background: var(--cream-deep);
}
.mvp-card__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform .7s var(--ease);
}
.mvp-card:hover .mvp-card__media img { transform: scale(1.04); }
.mvp-card__body { padding: 22px 22px 24px; }
.mvp-card__title {
  font-size: 20px;
  line-height: 1.25;
  margin-bottom: 6px;
}
.mvp-card__place {
  font-size: 13px;
  color: var(--muted);
  margin-bottom: 12px;
}
.mvp-card__price {
  font-family: var(--serif);
  font-size: 20px;
  color: var(--charcoal);
  margin-bottom: 14px;
}
.mvp-card__specs {
  display: flex;
  flex-wrap: wrap;
  gap: 14px;
  font-size: 12.5px;
  color: var(--muted);
}
.mvp-card__specs li {
  display: inline-flex;
  align-items: center;
  gap: 6px;
}

/* ------------------------------------------------------- sticky mobile CTA */

.mvp-sticky-cta {
  display: none;
  position: fixed;
  left: 16px;
  right: 16px;
  bottom: 16px;
  z-index: 50; /* below header (100) and section nav (90) */
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 15px 20px;
  border-radius: 999px;
  font-size: 16px;
  font-weight: 500;
  box-shadow: 0 14px 36px rgba(31, 29, 24, .2);
  opacity: 0;
  pointer-events: none;
  transform: translateY(14px);
  transition: opacity .25s var(--ease), transform .25s var(--ease);
}
.mvp-sticky-cta.is-visible {
  opacity: 1;
  pointer-events: auto;
  transform: none;
}

/* Keep enquire form clear of sticky header + section nav */
#enquire,
.mvp-enquire {
  scroll-margin-top: calc(var(--mvp-header-offset, 73px) + 72px);
}

/* ------------------------------------------------------------- lightbox */

.mvp-lightbox {
  position: fixed !important;
  inset: 0 !important;
  z-index: 9999 !important;
  display: none;
  align-items: center;
  justify-content: center;
  margin: 0;
  background: rgba(20, 18, 14, .92);
  pointer-events: none;
}
.mvp-lightbox.is-open {
  display: flex !important;
  pointer-events: auto;
}
.mvp-lightbox__img {
  max-width: min(1100px, 92vw);
  max-height: 86vh;
  object-fit: contain;
  border-radius: var(--radius);
}
.mvp-lightbox__close,
.mvp-lightbox__prev,
.mvp-lightbox__next {
  position: absolute;
  display: grid;
  place-items: center;
  width: 48px;
  height: 48px;
  border-radius: 50%;
  border: 1px solid rgba(255, 255, 255, .18);
  background: rgba(255, 255, 255, .96);
  color: var(--charcoal);
  box-shadow: 0 10px 28px rgba(0, 0, 0, .28);
  transition: background .2s var(--ease), color .2s var(--ease), transform .2s var(--ease);
}
.mvp-lightbox__close:hover,
.mvp-lightbox__prev:hover,
.mvp-lightbox__next:hover {
  background: #fff;
  color: var(--forest);
  transform: scale(1.04);
}
.mvp-lightbox__close {
  top: 20px;
  right: 20px;
  font-size: 26px;
  line-height: 1;
  color: var(--charcoal);
}
.mvp-lightbox__prev { left: max(16px, 3vw); top: 50%; margin-top: -24px; }
.mvp-lightbox__next { right: max(16px, 3vw); top: 50%; margin-top: -24px; }
.mvp-lightbox__count {
  position: absolute;
  left: 50%;
  bottom: 28px;
  transform: translateX(-50%);
  display: inline-flex;
  align-items: center;
  gap: 12px;
  padding: 10px 18px;
  border-radius: 999px;
  background: rgba(20, 18, 14, .55);
  backdrop-filter: blur(8px);
  font-family: var(--serif);
  font-size: 14px;
  letter-spacing: .08em;
  color: rgba(255, 255, 255, .9);
  font-variant-numeric: tabular-nums;
}

/* Protect chrome footer from property resets */
body.mv-property .mv-foot,
body.mv-property .mv-foot a,
body.mv-property .mv-foot button,
body.mv-property .mv-foot input {
  font-family: var(--sans);
}
body.mv-property .mv-header a.mv-btn--gold {
  color: #fff !important;
}

/* ---------------------------------------------------------- responsive */

@media (max-width: 1024px) {
  .mvp-body {
    grid-template-columns: 1fr;
    column-gap: 0;
    row-gap: 24px;
    padding-top: 28px;
    padding-bottom: 40px;
  }
  .mvp-aside,
  .mvp-enquire { position: static; }
  .mvp-features { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  body.mv-property ul.mvp-specs.mv-shell {
    gap: 16px 28px;
    justify-content: left;
  }
}

@media (max-width: 768px) {
  body.mv-property {
    --gutter: 15px;
  }
  body.mv-property .mv-page { padding-top: 0; }
  body.mv-property .mv-shell,
  body.mv-property ul.mv-shell {
    padding-inline: 15px;
  }
  body.mv-property .mvp-nav > .mv-shell {
    padding-inline: 15px;
  }

  .mvp-top {
    padding: 16px 0 14px;
  }
  .mvp-top__inner {
    flex-direction: column;
    align-items: flex-start;
    gap: 12px;
  }
  .mvp-crumbs {
    width: 100%;
  }
  .mvp-crumbs ol {
    font-size: 13px;
    line-height: 1.45;
    gap: 2px 0;
  }
  .mvp-crumbs li + li::before {
    margin: 0 6px;
  }
  /* Current page is the H1 — drop it from crumbs on small screens */
  .mvp-crumbs li:last-child {
    display: none;
  }
  .mvp-actions {
    gap: 2px;
  }

  .mvp-hero__grid {
    grid-template-columns: 1fr;
    height: auto;
    min-height: 0;
    padding: 0 15px;
    gap: 15px;
  }
  .mvp-hero__main { min-height: 280px; height: 280px; }
  .mvp-hero__side {
    grid-template-columns: 1fr 1fr;
    grid-template-rows: auto;
    min-height: 0;
    height: auto;
    gap: 15px;
  }
  .mvp-hero__side .mvp-hero__shot { aspect-ratio: 4 / 3; height: auto; }
  .mvp-hero__caption { font-size: 18px; padding: 48px 18px 18px; }

  .mvp-head {
    flex-direction: column;
    gap: 24px;
    padding: 28px 0 20px;
  }
  .mvp-head__title {
    margin-bottom: 15px;
  }
  .mvp-head__price { align-items: flex-start; text-align: left; width: 100%; }
  .mvp-head__cta { width: 100%; justify-content: center; }

  body.mv-property ul.mvp-specs.mv-shell {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 16px 12px;
    padding-block: 18px;
    margin-bottom: 0;
    justify-content: stretch;
  }
  .mvp-specs li {
    flex: none;
    width: 100%;
    min-width: 0;
    font-size: 14px;
    gap: 10px;
  }
  .mvp-specs strong { font-size: 15px; }

  .mvp-section,
  .mvp-map,
  .mvp-gallery,
  .mvp-similar { padding: 36px 0 40px; }

  .mvp-nav a { padding: 14px 0 12px; }

  .mvp-details {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 20px 16px;
  }
  .mvp-details__icon {
    width: 34px;
    height: 34px;
  }
  .mvp-details__label { font-size: 13px; }
  .mvp-details__value { font-size: 15px; }
  .mvp-features { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .mvp-gallery__row { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 15px; }
  .mvp-similar__head { flex-wrap: wrap; }
  .mvp-map__frame { height: 300px; }

  .mvp-field textarea {
    min-height: 120px;
    max-height: 260px;
  }

  .mvp-sticky-cta { display: inline-flex; }
  body.mv-property .mv-page { padding-bottom: 88px; }
  .mvp-action span { display: none; }
}

@media (max-width: 480px) {
  body.mv-property ul.mvp-specs.mv-shell { gap: 12px 18px; }
  .mvp-gallery__row { grid-template-columns: 1fr; }
}

@media print {
  .mv-header, .mv-foot, .mvp-nav, .mvp-sticky-cta, .mvp-enquire, .mvp-actions { display: none !important; }
  body.mv-property .mv-page { padding-top: 0; }
}

/* Hide leftover WP Residence / Elementor chrome on the custom ficha */
body.mv-property #compare_close,
body.mv-property #compare_close_top,
body.mv-property .comparision-wrapper,
body.mv-property #compare_widget_btn,
body.mv-property .prop_compare,
body.mv-property .modal,
body.mv-property .modal-backdrop,
body.mv-property #owner_contact,
body.mv-property .wpestate_estate_property_design_gallery_wrapper,
body.mv-property .elementor_agent_wrapper,
body.mv-property .contact_form_ajax_submit,
body.mv-property .estate_property-template-default > .content_wrapper:not(.mvp),
body.mv-property .sidebar_agent_form,
body.mv-property #advanced_search_shortcode,
body.mv-property .adv-search-1,
body.mv-property .theme_slider_wrapper,
body.mv-property .master_header,
body.mv-property #colophon,
body.mv-property .wpestate_footer_widget,
body.mv-property .contactformwrapper,
body.mv-property #contact_modal,
body.mv-property .modal.fade {
  display: none !important;
}
