/* ============================================================
   Doña Lucía — Estepona private-sale property site
   Elegant modern Mediterranean · photo-forward · mobile-first
   ============================================================ */

:root {
  --bg: #faf9f7;
  --bg-alt: #f0ebe3;
  --surface: #ffffff;
  --ink: #1c2428;
  --ink-soft: #4a5560;
  --muted: #6b7680;
  --line: #e2ddd4;
  --accent: #1a5a6a;
  --accent-hover: #134850;
  --accent-soft: #e6f0f2;
  --gold: #9a7b4f;
  --gold-soft: #f5efe6;
  --whatsapp: #25d366;
  --whatsapp-hover: #1da851;
  --radius: 12px;
  --radius-lg: 20px;
  --shadow: 0 8px 30px rgba(28, 36, 40, 0.08);
  --shadow-lg: 0 20px 50px rgba(28, 36, 40, 0.12);
  --font-serif: "Cormorant Garamond", Georgia, "Times New Roman", serif;
  --font-sans: "Inter", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
  --max: 1120px;
  --header-h: 68px;
  --ease: cubic-bezier(0.22, 1, 0.36, 1);
}

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

html {
  scroll-behavior: smooth;
  -webkit-text-size-adjust: 100%;
}

body {
  margin: 0;
  font-family: var(--font-sans);
  font-size: 1rem;
  line-height: 1.65;
  color: var(--ink);
  background: var(--bg);
  -webkit-font-smoothing: antialiased;
}

img { max-width: 100%; height: auto; display: block; }
a { color: var(--accent); text-decoration-thickness: 1px; text-underline-offset: 3px; }
a:hover { color: var(--accent-hover); }
h1, h2, h3, h4 {
  font-family: var(--font-serif);
  font-weight: 500;
  line-height: 1.2;
  color: var(--ink);
  margin: 0 0 0.6em;
}
h1 { font-size: clamp(2.1rem, 5vw, 3.4rem); letter-spacing: -0.02em; }
h2 { font-size: clamp(1.75rem, 3.5vw, 2.5rem); }
h3 { font-size: clamp(1.25rem, 2.5vw, 1.5rem); }
p { margin: 0 0 1em; color: var(--ink-soft); }
ul { color: var(--ink-soft); }
strong { color: var(--ink); font-weight: 600; }

.container {
  width: min(100% - 2rem, var(--max));
  margin-inline: auto;
}

.section {
  padding: clamp(3.5rem, 8vw, 6rem) 0;
}
.section--alt { background: var(--bg-alt); }
.section--dark {
  background: linear-gradient(160deg, #1a3a4a 0%, #1a5a6a 100%);
  color: #fff;
}
.section--dark h2,
.section--dark h3,
.section--dark p,
.section--dark li { color: rgba(255,255,255,0.92); }
.section--dark .muted { color: rgba(255,255,255,0.7); }

.section-label {
  display: inline-block;
  font-size: 0.75rem;
  font-weight: 600;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--gold);
  margin-bottom: 0.75rem;
}
.section--dark .section-label { color: #d4b896; }

.lede {
  font-size: 1.125rem;
  max-width: 40rem;
  margin-bottom: 2rem;
}

.muted { color: var(--muted); font-size: 0.95rem; }
.note {
  font-size: 0.875rem;
  color: var(--muted);
  border-left: 3px solid var(--gold);
  padding: 0.75rem 1rem;
  background: var(--gold-soft);
  border-radius: 0 var(--radius) var(--radius) 0;
  margin: 1.5rem 0;
}
.section--dark .note {
  background: rgba(255,255,255,0.08);
  color: rgba(255,255,255,0.8);
  border-left-color: #d4b896;
}

/* ---------- Header ---------- */
.site-header {
  position: sticky;
  top: 0;
  z-index: 100;
  background: rgba(250, 249, 247, 0.92);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  border-bottom: 1px solid transparent;
  transition: border-color 0.3s var(--ease), box-shadow 0.3s var(--ease);
}
.site-header.is-scrolled {
  border-bottom-color: var(--line);
  box-shadow: 0 4px 20px rgba(28, 36, 40, 0.04);
}
.header-inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  height: var(--header-h);
  gap: 1rem;
}
.logo {
  font-family: var(--font-serif);
  font-size: 1.15rem;
  color: var(--ink);
  text-decoration: none;
  white-space: nowrap;
}
.logo span { color: var(--accent); }

.nav {
  display: flex;
  align-items: center;
  gap: 0.15rem;
}
.nav a {
  color: var(--ink-soft);
  text-decoration: none;
  font-size: 0.9rem;
  font-weight: 500;
  padding: 0.45rem 0.7rem;
  border-radius: 8px;
  transition: background 0.2s, color 0.2s;
}
.nav a:hover { background: var(--bg-alt); color: var(--ink); }

.nav-cta { display: none; }

.menu-toggle {
  display: none;
  width: 44px;
  height: 44px;
  border: 1px solid var(--line);
  border-radius: 10px;
  background: var(--surface);
  cursor: pointer;
  align-items: center;
  justify-content: center;
  flex-direction: column;
  gap: 5px;
  padding: 0;
}
.menu-toggle span {
  display: block;
  width: 18px;
  height: 2px;
  background: var(--ink);
  transition: transform 0.25s var(--ease), opacity 0.2s;
}
.menu-toggle[aria-expanded="true"] span:nth-child(1) {
  transform: translateY(7px) rotate(45deg);
}
.menu-toggle[aria-expanded="true"] span:nth-child(2) { opacity: 0; }
.menu-toggle[aria-expanded="true"] span:nth-child(3) {
  transform: translateY(-7px) rotate(-45deg);
}

@media (max-width: 900px) {
  .menu-toggle { display: flex; }
  .nav {
    position: fixed;
    inset: var(--header-h) 0 auto 0;
    flex-direction: column;
    align-items: stretch;
    background: var(--surface);
    padding: 1rem;
    border-bottom: 1px solid var(--line);
    box-shadow: var(--shadow);
    transform: translateY(-120%);
    opacity: 0;
    pointer-events: none;
    transition: transform 0.3s var(--ease), opacity 0.3s var(--ease);
  }
  .nav.is-open {
    transform: translateY(0);
    opacity: 1;
    pointer-events: auto;
  }
  .nav a { padding: 0.85rem 1rem; font-size: 1rem; }
  .nav-cta {
    display: block;
    margin-top: 0.5rem;
    text-align: center;
  }
}

.header-actions { display: none; }
@media (min-width: 901px) {
  .header-actions { display: flex; align-items: center; gap: 0.75rem; }
}

/* ---------- Buttons ---------- */
.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  padding: 0.85rem 1.4rem;
  font-family: var(--font-sans);
  font-size: 0.95rem;
  font-weight: 600;
  border-radius: 999px;
  border: none;
  cursor: pointer;
  text-decoration: none;
  transition: background 0.2s, transform 0.15s, box-shadow 0.2s, opacity 0.2s;
  white-space: nowrap;
}
.btn:active { transform: scale(0.98); }
.btn:disabled,
.btn.is-disabled {
  opacity: 0.45;
  cursor: not-allowed;
  pointer-events: none;
}
.btn--primary {
  background: var(--accent);
  color: #fff;
  box-shadow: 0 4px 14px rgba(26, 90, 106, 0.3);
}
.btn--primary:hover { background: var(--accent-hover); color: #fff; }
.btn--whatsapp {
  background: var(--whatsapp);
  color: #fff;
  box-shadow: 0 4px 14px rgba(37, 211, 102, 0.3);
}
.btn--whatsapp:hover { background: var(--whatsapp-hover); color: #fff; }
.btn--ghost {
  background: transparent;
  color: var(--ink);
  border: 1.5px solid var(--line);
}
.btn--ghost:hover { border-color: var(--accent); color: var(--accent); background: var(--accent-soft); }
.btn--light {
  background: #fff;
  color: var(--accent);
}
.btn--light:hover { background: var(--gold-soft); color: var(--accent-hover); }
.btn-row {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem;
  margin-top: 1.5rem;
}

.icon-wa {
  width: 1.15em;
  height: 1.15em;
  flex-shrink: 0;
}

/* ---------- Hero ---------- */
.hero {
  position: relative;
  min-height: min(88vh, 760px);
  display: flex;
  align-items: flex-end;
  color: #fff;
  overflow: hidden;
}
.hero__media {
  position: absolute;
  inset: 0;
}
.hero__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.hero__overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(
    to top,
    rgba(12, 28, 36, 0.88) 0%,
    rgba(12, 28, 36, 0.45) 45%,
    rgba(12, 28, 36, 0.25) 100%
  );
}
.hero__content {
  position: relative;
  z-index: 1;
  width: min(100% - 2rem, var(--max));
  margin: 0 auto;
  padding: 4rem 0 3.5rem;
}
.hero__badge {
  display: inline-block;
  font-size: 0.75rem;
  font-weight: 600;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  padding: 0.4rem 0.85rem;
  border: 1px solid rgba(255,255,255,0.35);
  border-radius: 999px;
  margin-bottom: 1.25rem;
  color: rgba(255,255,255,0.9);
}
.hero h1 { color: #fff; margin-bottom: 0.4em; }
.hero__sub {
  font-family: var(--font-serif);
  font-size: clamp(1.2rem, 2.5vw, 1.6rem);
  color: rgba(255,255,255,0.9);
  margin-bottom: 1.75rem;
}
.hero__price {
  display: none;
  font-size: 1.15rem;
  font-weight: 600;
  margin-bottom: 1rem;
  color: #d4b896;
}
.hero__price.is-visible { display: block; }

.key-facts {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  margin: 0 0 1.75rem;
  padding: 0;
  list-style: none;
}
.key-facts li {
  background: rgba(255,255,255,0.12);
  border: 1px solid rgba(255,255,255,0.2);
  backdrop-filter: blur(6px);
  padding: 0.45rem 0.9rem;
  border-radius: 999px;
  font-size: 0.875rem;
  font-weight: 500;
  color: #fff;
}

/* ---------- Feature strip ---------- */
.feature-strip {
  background: var(--surface);
  border-bottom: 1px solid var(--line);
  padding: 1.5rem 0;
}
.feature-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
  gap: 1rem;
  text-align: center;
}
.feature-item strong {
  display: block;
  font-family: var(--font-serif);
  font-size: 1.15rem;
  font-weight: 500;
  margin-bottom: 0.15rem;
}
.feature-item span {
  font-size: 0.8rem;
  color: var(--muted);
}

/* ---------- Cards / grids ---------- */
.two-col {
  display: grid;
  gap: 2.5rem;
  align-items: start;
}
@media (min-width: 800px) {
  .two-col { grid-template-columns: 1.1fr 0.9fr; gap: 3.5rem; }
  .two-col--reverse { direction: rtl; }
  .two-col--reverse > * { direction: ltr; }
}

.card {
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: var(--radius-lg);
  padding: 1.5rem;
  box-shadow: var(--shadow);
}
.card h3 { margin-top: 0; }

.room-list {
  display: grid;
  gap: 1rem;
  margin: 2rem 0 0;
  padding: 0;
  list-style: none;
}
@media (min-width: 600px) {
  .room-list { grid-template-columns: 1fr 1fr; }
}
.room-list li {
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: var(--radius);
  padding: 1.15rem 1.25rem;
}
.room-list h3 {
  font-size: 1.15rem;
  margin-bottom: 0.35rem;
}
.room-list p { margin: 0; font-size: 0.95rem; }

.highlights {
  display: grid;
  gap: 1rem;
  margin: 2rem 0 0;
}
@media (min-width: 700px) {
  .highlights { grid-template-columns: repeat(3, 1fr); }
}
.highlight {
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: var(--radius);
  padding: 1.35rem;
}
.highlight h3 {
  font-size: 1.2rem;
  margin-bottom: 0.4rem;
}
.highlight p { margin: 0; font-size: 0.95rem; }

/* ---------- Floor plan ---------- */
.floorplan-wrap {
  margin-top: 1.5rem;
}
.floorplan-btn {
  display: block;
  width: 100%;
  padding: 0;
  border: 1px solid var(--line);
  border-radius: var(--radius-lg);
  overflow: hidden;
  cursor: zoom-in;
  background: var(--surface);
  box-shadow: var(--shadow);
  transition: box-shadow 0.25s var(--ease);
}
.floorplan-btn:hover { box-shadow: var(--shadow-lg); }
.floorplan-btn img {
  width: 100%;
  height: auto;
  background: #f7f3ec;
}
.floorplan-caption {
  text-align: center;
  font-size: 0.875rem;
  color: var(--muted);
  margin-top: 0.85rem;
}

.stats-table {
  width: 100%;
  border-collapse: collapse;
  margin: 1.5rem 0;
  font-size: 0.95rem;
}
.stats-table th,
.stats-table td {
  text-align: left;
  padding: 0.75rem 0.5rem;
  border-bottom: 1px solid var(--line);
}
.stats-table th {
  font-weight: 500;
  color: var(--ink);
  width: 55%;
}
.stats-table td { color: var(--ink-soft); }
.stats-table caption {
  text-align: left;
  font-weight: 600;
  margin-bottom: 0.75rem;
  color: var(--ink);
  font-family: var(--font-serif);
  font-size: 1.2rem;
}

/* ---------- Gallery ---------- */
.gallery-filters {
  display: flex;
  flex-wrap: wrap;
  gap: 0.4rem;
  margin: 0 0 1.5rem;
  padding: 0;
  list-style: none;
}
.gallery-filters button {
  font-family: var(--font-sans);
  font-size: 0.85rem;
  font-weight: 500;
  padding: 0.45rem 0.9rem;
  border-radius: 999px;
  border: 1px solid var(--line);
  background: var(--surface);
  color: var(--ink-soft);
  cursor: pointer;
  transition: background 0.2s, color 0.2s, border-color 0.2s;
}
.gallery-filters button:hover,
.gallery-filters button.is-active {
  background: var(--accent);
  border-color: var(--accent);
  color: #fff;
}

.gallery-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 0.65rem;
}
@media (min-width: 700px) {
  .gallery-grid { grid-template-columns: repeat(3, 1fr); gap: 0.85rem; }
}
@media (min-width: 1000px) {
  .gallery-grid { grid-template-columns: repeat(4, 1fr); }
}

.gallery-item {
  position: relative;
  aspect-ratio: 4 / 3;
  border-radius: var(--radius);
  overflow: hidden;
  cursor: pointer;
  border: none;
  padding: 0;
  background: var(--bg-alt);
}
.gallery-item img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.45s var(--ease);
}
.gallery-item:hover img { transform: scale(1.04); }
.gallery-item__label {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  padding: 1.5rem 0.75rem 0.65rem;
  background: linear-gradient(transparent, rgba(0,0,0,0.65));
  color: #fff;
  font-size: 0.75rem;
  font-weight: 500;
  text-align: left;
}
.gallery-item.is-hidden { display: none; }

/* ---------- Lightbox ---------- */
.lightbox {
  position: fixed;
  inset: 0;
  z-index: 200;
  background: rgba(8, 14, 18, 0.94);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 1rem;
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.25s var(--ease);
}
.lightbox.is-open {
  opacity: 1;
  pointer-events: auto;
}
.lightbox__img {
  max-width: min(96vw, 1100px);
  max-height: 78vh;
  object-fit: contain;
  border-radius: 4px;
}
.lightbox__caption {
  color: rgba(255,255,255,0.8);
  margin-top: 1rem;
  font-size: 0.9rem;
  text-align: center;
}
.lightbox__close,
.lightbox__prev,
.lightbox__next {
  position: absolute;
  background: rgba(255,255,255,0.1);
  border: 1px solid rgba(255,255,255,0.2);
  color: #fff;
  width: 48px;
  height: 48px;
  border-radius: 50%;
  cursor: pointer;
  font-size: 1.4rem;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: background 0.2s;
}
.lightbox__close:hover,
.lightbox__prev:hover,
.lightbox__next:hover { background: rgba(255,255,255,0.2); }
.lightbox__close { top: 1rem; right: 1rem; }
.lightbox__prev { left: 1rem; top: 50%; transform: translateY(-50%); }
.lightbox__next { right: 1rem; top: 50%; transform: translateY(-50%); }

/* ---------- Location cards ---------- */
.place-grid {
  display: grid;
  gap: 1rem;
  margin-top: 2rem;
}
@media (min-width: 600px) {
  .place-grid { grid-template-columns: 1fr 1fr; }
}
@media (min-width: 900px) {
  .place-grid { grid-template-columns: repeat(3, 1fr); }
}
.place-card {
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: var(--radius);
  padding: 1.25rem;
}
.place-card h3 {
  font-size: 1.15rem;
  margin-bottom: 0.4rem;
}
.place-card p { margin: 0; font-size: 0.95rem; }

.map-placeholder {
  margin-top: 2rem;
  border-radius: var(--radius-lg);
  overflow: hidden;
  border: 1px solid var(--line);
  background: var(--bg-alt);
}
.map-placeholder img { width: 100%; aspect-ratio: 16 / 9; object-fit: cover; }
.map-placeholder figcaption {
  padding: 0.85rem 1rem;
  font-size: 0.875rem;
  color: var(--muted);
  background: var(--surface);
}

/* ---------- Why Estepona ---------- */
.why-grid {
  display: grid;
  gap: 1.25rem;
  margin-top: 2rem;
}
@media (min-width: 700px) {
  .why-grid { grid-template-columns: 1fr 1fr; }
}
.why-item {
  display: flex;
  gap: 1rem;
  align-items: flex-start;
}
.why-num {
  flex-shrink: 0;
  width: 2.25rem;
  height: 2.25rem;
  border-radius: 50%;
  background: rgba(255,255,255,0.12);
  border: 1px solid rgba(255,255,255,0.25);
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: var(--font-serif);
  font-size: 1.1rem;
  color: #d4b896;
}
.why-item h3 { margin-bottom: 0.25rem; font-size: 1.2rem; }
.why-item p { margin: 0; font-size: 0.95rem; }

/* ---------- Contact ---------- */
.contact-panel {
  display: grid;
  gap: 2rem;
}
@media (min-width: 800px) {
  .contact-panel { grid-template-columns: 1.2fr 0.8fr; align-items: start; }
}
.contact-details {
  list-style: none;
  margin: 1.5rem 0 0;
  padding: 0;
}
.contact-details li {
  display: flex;
  flex-direction: column;
  gap: 0.15rem;
  padding: 0.85rem 0;
  border-bottom: 1px solid var(--line);
}
.contact-details .label {
  font-size: 0.75rem;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--muted);
}
.contact-details .value {
  font-size: 1.05rem;
  color: var(--ink);
  word-break: break-word;
}
.contact-details a.value {
  text-decoration: none;
  color: var(--accent);
}
.contact-details a.value:hover { text-decoration: underline; }
.placeholder-tag {
  display: inline-block;
  font-size: 0.7rem;
  font-weight: 600;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  background: var(--gold-soft);
  color: var(--gold);
  padding: 0.15rem 0.5rem;
  border-radius: 4px;
  margin-left: 0.4rem;
  vertical-align: middle;
}

.contact-cta-card {
  background: var(--accent);
  color: #fff;
  border-radius: var(--radius-lg);
  padding: 1.75rem;
  box-shadow: var(--shadow-lg);
}
.contact-cta-card h3 { color: #fff; }
.contact-cta-card p { color: rgba(255,255,255,0.85); }
.contact-cta-card .btn { width: 100%; margin-top: 0.65rem; }
.contact-cta-card .btn--whatsapp { margin-top: 1rem; }

/* ---------- Footer ---------- */
.site-footer {
  background: #121a1e;
  color: rgba(255,255,255,0.7);
  padding: 2.5rem 0 2rem;
  font-size: 0.9rem;
}
.site-footer a { color: rgba(255,255,255,0.85); }
.footer-inner {
  display: flex;
  flex-wrap: wrap;
  gap: 1.5rem;
  justify-content: space-between;
  align-items: flex-start;
}
.footer-brand {
  font-family: var(--font-serif);
  font-size: 1.2rem;
  color: #fff;
  margin-bottom: 0.35rem;
}
.footer-nav {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem 1.25rem;
}
.footer-nav a { text-decoration: none; }
.footer-nav a:hover { color: #fff; }
.footer-note {
  width: 100%;
  margin-top: 1.5rem;
  padding-top: 1.25rem;
  border-top: 1px solid rgba(255,255,255,0.1);
  font-size: 0.8rem;
  color: rgba(255,255,255,0.45);
}

/* ---------- Floating WhatsApp (mobile) ---------- */
.fab-wa {
  position: fixed;
  right: 1rem;
  bottom: 1rem;
  z-index: 90;
  width: 56px;
  height: 56px;
  border-radius: 50%;
  background: var(--whatsapp);
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 6px 20px rgba(37, 211, 102, 0.45);
  text-decoration: none;
  transition: transform 0.2s, background 0.2s;
}
.fab-wa:hover { background: var(--whatsapp-hover); color: #fff; transform: scale(1.05); }
.fab-wa svg { width: 28px; height: 28px; }
.fab-wa.is-disabled {
  opacity: 0.4;
  pointer-events: none;
}
@media (min-width: 901px) {
  .fab-wa { bottom: 1.5rem; right: 1.5rem; }
}

/* ---------- Utilities ---------- */
.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0,0,0,0);
  border: 0;
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after {
    animation-duration: 0.01ms !important;
    transition-duration: 0.01ms !important;
  }
}

/* V3 brief additions */
.lang-switch{display:inline-flex;gap:.35rem;align-items:center;margin-left:.5rem;font-size:.82rem}.lang-switch a{opacity:.75}.lang-switch a.is-active{opacity:1;font-weight:700}.quick-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:2rem 0}.quick-grid img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:4px}.center{text-align:center}.brochure-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1rem}.brochure-card{text-decoration:none;color:inherit}.enquiry-form-wrap{max-width:760px;margin:2.5rem auto 0}.enquiry-form{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.enquiry-form label{display:flex;flex-direction:column;gap:.45rem;font-weight:600}.enquiry-form label:nth-child(4){grid-column:1/-1}.enquiry-form input,.enquiry-form textarea{font:inherit;padding:.85rem;border:1px solid #d4d0c8;border-radius:4px;background:#fff}.form-note{grid-column:1/-1;font-size:.85rem;opacity:.72}.discover-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:10px;margin-top:2rem}.discover-placeholder{min-height:150px;padding:1rem;border:1px solid rgba(255,255,255,.22);display:flex;flex-direction:column;justify-content:flex-end}.discover-placeholder span{font-size:.8rem;opacity:.75;margin-top:.3rem}.section--compact{padding-top:2rem;padding-bottom:2rem}.section--compact h2{font-size:1.5rem}@media(max-width:800px){.quick-grid{grid-template-columns:repeat(2,1fr)}.brochure-grid,.enquiry-form{grid-template-columns:1fr}.enquiry-form label:nth-child(4){grid-column:auto}.discover-grid{grid-template-columns:1fr 1fr}.lang-switch{margin:1rem 0}}

/* Final-draft completion placeholders */
.location-discover { margin-top: 4rem; padding-top: 3rem; border-top: 1px solid var(--line); }
.pending-card { border-style: dashed; }
.pending-value { font-family: var(--font-serif); font-size: 1.45rem; margin: .35rem 0 .6rem; }

/* ---------- V5 enquiry colour treatment ---------- */
.btn--enquire {
  background: #9a761f;
  color: #fff;
  box-shadow: 0 4px 14px rgba(154, 118, 31, 0.25);
}
.btn--enquire:hover { background: #7d5f18; color: #fff; }

.section--enquiry {
  background: #e8ded1;
}
.section--enquiry .enquiry-form-wrap {
  background: #f7f1e9;
  border: 1px solid #d8c7b4;
  border-radius: var(--radius-lg);
  padding: clamp(1.5rem, 4vw, 2.5rem);
  box-shadow: var(--shadow);
}
.section--enquiry .enquiry-form-wrap h3 { color: #654b3d; }
.btn--email {
  background: #8a755d;
  color: #fff;
  box-shadow: 0 4px 14px rgba(91, 75, 57, 0.22);
}
.btn--email:hover { background: #715f4c; color: #fff; }

/* V6 compact floor-plan layout */
.floorplan-v6{max-width:1000px;margin:0 auto}.floorplan-v6 .floorplan-btn img{width:100%;max-height:520px;object-fit:contain;background:#fff}.area-grid-v6{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin:1.5rem auto;max-width:900px}.area-card-v6{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:1rem 1.2rem}.area-card-v6 table{width:100%;border-collapse:collapse}.area-card-v6 td{padding:.38rem .2rem;border-bottom:1px solid var(--line)}.area-card-v6 td:last-child{text-align:right;font-weight:700;white-space:nowrap}.area-card-v6 tr:last-child td{border-bottom:0}.area-card-v6 .total-row td{font-weight:700}.area-card-v6 .small{font-size:.82rem;opacity:.75}@media(max-width:700px){.area-grid-v6{grid-template-columns:1fr}}

/* V6.1 compact floor-plan information */
.area-compact-v7{max-width:820px;margin:1rem auto .75rem;background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:.65rem .9rem}.area-compact-v7 table{width:100%;border-collapse:collapse;font-size:.82rem;line-height:1.25}.area-compact-v7 td{padding:.24rem .35rem;border-bottom:1px solid var(--line)}.area-compact-v7 td:nth-child(2),.area-compact-v7 td:nth-child(4){text-align:right;font-weight:600;white-space:nowrap}.area-compact-v7 tr:last-child td{border-bottom:0}.area-compact-v7 .small{font-size:.72rem;opacity:.72;margin:.45rem 0 0}@media(max-width:700px){.area-compact-v7 table{font-size:.76rem}.area-compact-v7 td{padding:.22rem .2rem}}


/* V6.2 refinements */
.logo{font-family:var(--font-sans);font-weight:800;letter-spacing:.015em;color:#29241f}.logo span{color:#51483e;font-weight:750}
.header-whatsapp{background:var(--whatsapp)!important;color:#fff!important;font-weight:700!important;padding:.42rem .7rem!important;margin-left:.35rem;border-radius:8px!important}.header-whatsapp:hover{background:var(--whatsapp-hover)!important;color:#fff!important}
.feature-strip{background:#ded2c2;border-top:1px solid #cbbbA8;border-bottom:1px solid #c4b39e;box-shadow:inset 0 1px 0 rgba(255,255,255,.35)}
.feature-item strong{color:#3b3128;font-weight:700}.feature-item span{color:#5b5045;font-weight:500}
.section--floorplan{background:#f6f1e9;border-top:1px solid #ddd1c2;border-bottom:1px solid #ddd1c2}
@media(max-width:800px){.header-whatsapp{margin:.75rem 0 1rem .4rem;display:inline-block}.logo{font-size:1.05rem}}

/* V6.3 header WhatsApp icon + First Look section break */
.header-whatsapp{width:36px;height:36px;padding:0!important;border-radius:50%!important;display:inline-flex!important;align-items:center;justify-content:center;font-size:1.05rem;line-height:1;text-decoration:none}.header-whatsapp span[aria-hidden="true"]{transform:rotate(-18deg);display:inline-block}.sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}.quick-gallery{background:#f0ebe3;border-top:1px solid #ddd1c2;border-bottom:1px solid #ddd1c2}.quick-gallery+.section{background:#faf9f7}
@media(max-width:800px){.header-whatsapp{margin:.65rem 0 .85rem .4rem!important}}

/* V6.5 standard handset icon + live Google map */
.header-whatsapp svg{display:block;width:19px;height:19px}.header-whatsapp span[aria-hidden="true"]{transform:none!important}.live-map{overflow:hidden}.live-map iframe{display:block;width:100%;height:clamp(340px,46vw,540px);border:0}.live-map figcaption{padding:.7rem 1rem}

/* V7: standard WhatsApp logo in header */
.header-whatsapp{background:transparent!important;color:#25d366!important;width:36px;height:36px;border-radius:0!important;padding:0!important;box-shadow:none!important}.header-whatsapp:hover{background:transparent!important;color:#1da851!important}.header-whatsapp svg{width:28px!important;height:28px!important}

/* V7.3 — tighter vertical rhythm */
.section{padding:clamp(2.5rem,5vw,4rem) 0}
.section--compact{padding-top:1.6rem;padding-bottom:1.6rem}
.section-label{margin-bottom:.5rem}
.lede{margin-bottom:1.35rem}
.quick-grid{margin:1.35rem 0}
.enquiry-form-wrap{margin-top:1.75rem}
.discover-grid{margin-top:1.35rem}
.location-discover{margin-top:2.5rem;padding-top:2rem}
.section--floorplan{padding-top:2rem;padding-bottom:2rem}
.section--floorplan .section-label{margin-bottom:.35rem}
.section--floorplan h2{margin-bottom:.65rem}
.floorplan-v6{margin-top:.75rem}
.floorplan-caption{margin-top:.45rem}
.area-compact-v7{margin:.65rem auto .45rem}
.floorplan-note{margin-top:.55rem;margin-bottom:0}
@media(max-width:700px){.section{padding:2.25rem 0}.section--floorplan{padding-top:1.75rem;padding-bottom:1.75rem}}

/* V7.4 — Discover Estepona photographic section */
.location-discover{background:#e8ded1;border:1px solid #d8c7b4;border-radius:var(--radius-lg);padding:clamp(1.5rem,3vw,2.4rem);margin-top:2.5rem}
.location-discover .lede{max-width:820px}
.discover-photo-grid{display:grid;grid-template-columns:repeat(4,1fr);grid-auto-rows:180px;gap:10px;margin-top:1.25rem}
.discover-photo{margin:0;overflow:hidden;border-radius:4px;background:#ddd}
.discover-photo--wide{grid-column:span 2}
.discover-photo img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .35s ease}
.discover-photo:hover img{transform:scale(1.025)}
.discover-credit{font-size:.78rem;opacity:.68;margin:.7rem 0 0}
@media(max-width:800px){.discover-photo-grid{grid-template-columns:repeat(2,1fr);grid-auto-rows:155px}.discover-photo--wide{grid-column:span 2}}


/* V7.5 — Estepona gallery rearranged only; original photographs remain uncropped */
.discover-photo-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-auto-rows:auto;gap:12px;align-items:start}
.discover-photo{margin:0;overflow:hidden;border-radius:4px;background:transparent}
.discover-photo--feature{grid-column:1/-1;max-width:900px;justify-self:center;width:100%;margin-bottom:2px}
.discover-photo--wide{grid-column:auto}
.discover-photo img{width:100%;height:auto;object-fit:contain;display:block;transition:transform .35s ease}
.discover-photo:hover img{transform:none}
@media(max-width:800px){.discover-photo-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.discover-photo--feature{grid-column:1/-1}.discover-photo-grid .discover-photo:last-child{grid-column:1/-1;max-width:520px;justify-self:center;width:100%}}
@media(max-width:520px){.discover-photo-grid{grid-template-columns:1fr}.discover-photo--feature,.discover-photo-grid .discover-photo:last-child{grid-column:auto;max-width:none}}

/* Version 11 — compact Estepona glimpse gallery */
.discover-photo-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:9px;max-width:920px;margin:1.05rem auto 0;align-items:center}
.discover-photo{margin:0;overflow:hidden;border-radius:4px;background:transparent}
.discover-photo img{width:100%;height:auto;object-fit:contain;display:block;transition:none}
.discover-photo--feature{grid-column:span 2;max-width:none;width:100%;margin:0}
.discover-photo--feature img{width:100%;height:190px;object-fit:cover;object-position:center 48%}
@media(max-width:800px){.discover-photo-grid{grid-template-columns:repeat(2,minmax(0,1fr));max-width:620px}.discover-photo--feature{grid-column:span 2}.discover-photo--feature img{height:165px}}
@media(max-width:520px){.discover-photo-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}.discover-photo--feature{grid-column:span 2}.discover-photo--feature img{height:145px}}

/* V7.7 — Discover Estepona: uniform gallery aligned with apartment gallery */
.discover-photo-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;max-width:940px;margin:1.15rem auto 0;align-items:stretch}
.discover-photo,.discover-photo--feature{grid-column:auto!important;width:100%;max-width:none;margin:0;aspect-ratio:4/3;overflow:hidden;border-radius:4px;background:#ddd}
.discover-photo img,.discover-photo--feature img{width:100%;height:100%;object-fit:cover;object-position:center;display:block;transition:transform .35s ease}
.discover-photo--feature img{object-position:center 48%}
.discover-photo:hover img{transform:scale(1.02)}
@media(max-width:800px){.discover-photo-grid{grid-template-columns:repeat(2,minmax(0,1fr));max-width:640px;gap:10px}.discover-photo,.discover-photo--feature{grid-column:auto!important}}
@media(max-width:520px){.discover-photo-grid{grid-template-columns:1fr 1fr;gap:8px}.discover-photo,.discover-photo--feature{grid-column:auto!important}}

/* V7.8 — compact nine-image Estepona gallery */
.location-discover .discover-photo-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;max-width:720px;margin:1rem auto 0;align-items:stretch}
.location-discover .discover-photo,.location-discover .discover-photo--feature{grid-column:auto!important;width:100%;aspect-ratio:4/3;overflow:hidden;background:rgba(255,255,255,.48);display:flex;align-items:center;justify-content:center}
.location-discover .discover-photo img,.location-discover .discover-photo--feature img{display:block;width:100%;height:100%;object-fit:contain!important;object-position:center}
@media(max-width:800px){.location-discover .discover-photo-grid{max-width:580px;gap:7px}}
@media(max-width:520px){.location-discover .discover-photo-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:5px}.location-discover .discover-photo,.location-discover .discover-photo--feature{aspect-ratio:1/1}}

/* Version 11: resort photographs moved from apartment gallery */
.resort-gallery{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-top:1.5rem}
.resort-gallery .gallery-item{aspect-ratio:4/3;min-height:0}
.resort-gallery .gallery-item img{width:100%;height:100%;object-fit:cover;display:block}
.resort-placeholder{aspect-ratio:4/3;border:1px dashed rgba(48,43,39,.35);background:rgba(255,255,255,.48);display:flex;align-items:center;justify-content:center;text-align:center;padding:1rem;color:#746d66;font-size:.82rem;letter-spacing:.02em}
@media(max-width:720px){.resort-gallery{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}}

/* Version 11: refined branding + confirmed running costs */
.logo{font-family:var(--font-serif);font-size:1.38rem;font-weight:600;letter-spacing:.025em;color:#29241f}.logo span{font-family:var(--font-sans);font-size:.72em;font-weight:650;letter-spacing:.09em;text-transform:uppercase;color:#51483e;margin-left:.18rem}
.section--costs .place-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:.9rem;margin-top:1.35rem}
.section--costs .cost-card{padding:1rem 1.1rem}
.energy-card__content{display:flex;align-items:center;gap:1rem}.energy-card__content img{width:92px;height:auto;border:1px solid var(--line);border-radius:6px}.energy-card__content p{margin:0 0 .35rem}.energy-card__content a{font-weight:650;font-size:.9rem}
@media(max-width:700px){.section--costs .place-grid{grid-template-columns:1fr}.energy-card__content img{width:78px}.logo{font-size:1.12rem}}

/* V7.11 refinements */
.logo,.logo span{color:#211c18 !important;}
.feature-grid{grid-template-columns:repeat(7,minmax(0,1fr));}
.feature-item strong{color:#2b251f;}
@media(max-width:1100px){.feature-grid{grid-template-columns:repeat(4,minmax(0,1fr));}}
@media(max-width:700px){.feature-grid{grid-template-columns:repeat(2,minmax(0,1fr));}}

/* Version 11: stronger asking-price emphasis */
.feature-item--price strong{font-size:clamp(1.35rem,2vw,1.75rem);font-weight:800;color:#2b251f;}
.feature-item--price span{font-weight:700;}

/* Version 11: compact location-distance panel */
.distance-panel{margin:1.65rem 0 1.4rem;padding:1.25rem 1.35rem;border:1px solid var(--line);border-radius:8px;background:rgba(255,255,255,.55)}
.distance-panel h3{margin:0 0 1rem;text-align:center}
.distance-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.85rem 1rem}
.distance-grid div{text-align:center;padding:.7rem .45rem}
.distance-grid strong{display:block;font-family:var(--font-serif);font-size:1.5rem;line-height:1.05;color:#2b251f}
.distance-grid span{display:block;margin-top:.28rem;font-size:.88rem}
.distance-note{margin:.85rem 0 0;text-align:center;font-size:.75rem;color:#746d66}
@media(max-width:700px){.distance-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* Version 11 mobile header and hero refinements */
.mobile-header-actions{display:none;align-items:center;gap:.55rem;margin-left:auto}
.mobile-whatsapp{display:inline-flex;align-items:center;justify-content:center;color:#25d366;width:32px;height:32px;text-decoration:none}
.mobile-whatsapp svg{width:27px;height:27px;display:block}
.mobile-lang{display:inline-flex;gap:.35rem;align-items:center;font-size:.78rem;font-weight:650}
.mobile-lang a{color:var(--ink-soft);text-decoration:none;padding:.2rem .1rem}
.mobile-lang a.is-active{color:var(--ink);font-weight:800}
@media(max-width:900px){
  .header-inner{gap:.45rem}
  .mobile-header-actions{display:flex}
  .nav .lang-switch,.nav .header-whatsapp{display:none!important}
  .hero__media img{object-position:22% center}
}
@media(max-width:520px){
  .logo{font-size:.94rem!important}
  .logo span{font-size:.68em}
  .mobile-header-actions{gap:.35rem}
  .menu-toggle{width:40px;height:40px}
  .hero__media img{object-position:18% center}
}

/* Version 11 refinements */
.btn--small{display:inline-block;padding:.55rem .8rem;font-size:.78rem;margin-top:.45rem}
.difference-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.75rem;margin-top:1.25rem}
.difference-grid div{border:1px solid rgba(128,104,67,.22);background:#fff;padding:1rem;text-align:center;font-weight:650;color:#39312a;border-radius:3px}
.section--different{padding-top:2.8rem;padding-bottom:2.8rem;background:#f7f4ef}
.section--different h2{text-align:center;margin-bottom:.4rem}
.gallery-enquire{margin-top:1.7rem}
.drive-time{display:block;margin-top:.22rem;font-size:.75rem;color:#746d66}
.thanks-section{text-align:center;padding:2.5rem 0 2.1rem}
.thanks-section h2{margin-bottom:.45rem}.thanks-section p{margin:0;color:var(--ink-soft)}
#privacy{padding:1.2rem 0}#privacy h2{font-size:1rem;margin-bottom:.3rem}#privacy p{font-size:.76rem;line-height:1.5;margin:0;max-width:850px}
.lightbox__counter{position:absolute;bottom:1.1rem;right:1.2rem;margin:0;color:#fff;font-size:.8rem;background:rgba(0,0,0,.4);padding:.25rem .5rem;border-radius:2px}
@media(max-width:700px){.difference-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:520px){.logo{font-size:1.12rem!important}.logo span{font-size:.72em}.mobile-header-actions{gap:.25rem}.mobile-whatsapp{width:28px;height:28px}.mobile-whatsapp svg{width:24px;height:24px}.mobile-lang{font-size:.72rem}.menu-toggle{width:36px;height:36px}.difference-grid{grid-template-columns:1fr 1fr;gap:.55rem}.difference-grid div{padding:.75rem .55rem;font-size:.86rem}}

/* V12 refinements */
.feature-grid--details{grid-template-columns:repeat(7,minmax(0,1fr));}
.difference-grid--editorial{grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem;}
.difference-grid--editorial article{border:1px solid rgba(128,104,67,.22);background:#fff;padding:1.2rem 1.1rem;text-align:left;border-radius:3px;}
.difference-grid--editorial h3{margin:0 0 .5rem;font-family:var(--font-serif);font-size:1.18rem;color:#2b251f;}
.difference-grid--editorial p{margin:0;font-weight:400;line-height:1.55;color:#51483e;}
@media(max-width:900px){.feature-grid--details{grid-template-columns:repeat(3,minmax(0,1fr));}}
@media(max-width:700px){.difference-grid--editorial{grid-template-columns:1fr;}.feature-grid--details{grid-template-columns:repeat(2,minmax(0,1fr));}}


/* V12: warmer sign-off and visually distinct privacy footer */
.thanks-section{background:#faf9f7;}
.thanks-section h2{font-family:var(--font-serif);font-size:clamp(1.8rem,3vw,2.45rem);font-weight:600;color:#9a7437;letter-spacing:.01em;}
#privacy{background:#eee8df;border-top:1px solid #d8cdbc;padding:1.35rem 0;}
#privacy h2{color:#51483e;font-size:1rem;margin-bottom:.35rem;}
#privacy p{color:#665d53;font-size:.78rem;line-height:1.5;margin:0;max-width:850px;}

/* V12 — stronger editorial treatment for the apartment highlights */
.section--different{
  background:#e7dfd3;
  padding-top:3.4rem;
  padding-bottom:3.4rem;
  border-top:1px solid rgba(128,104,67,.20);
  border-bottom:1px solid rgba(128,104,67,.20);
}
.section--different h2{
  font-family:var(--font-serif);
  font-size:clamp(2rem,3.4vw,2.8rem);
  font-weight:500;
  color:#9a7437;
  letter-spacing:.01em;
  margin-bottom:1.35rem;
}
.section--different .difference-grid--editorial{gap:1.15rem;margin-top:0;}
.section--different .difference-grid--editorial article{
  background:#f7f3ed;
  border:1px solid rgba(128,104,67,.30);
  padding:1.5rem 1.35rem;
  box-shadow:0 8px 24px rgba(58,47,37,.06);
}
.section--different .difference-grid--editorial h3{
  font-family:var(--font-serif);
  font-size:1.28rem;
  font-weight:500;
  color:#8d6a33;
  letter-spacing:.01em;
}
.section--different .difference-grid--editorial p{
  color:#342d27;
  font-weight:400;
  line-height:1.62;
}
.section--different .difference-grid--editorial strong{font-weight:400;color:inherit;}
@media(max-width:700px){.section--different{padding-top:2.7rem;padding-bottom:2.7rem}.section--different h2{font-size:2rem}.section--different .difference-grid--editorial article{padding:1.25rem 1.15rem}}


/* V12.2 — refined apartment-special section */
.section--different{
  background:#ddd1c1;
  padding:3.6rem 0;
  border-top:1px solid #c9b89f;
  border-bottom:1px solid #c9b89f;
}
.section--different .container{max-width:1120px;}
.section--different h2{
  text-align:center;
  font-family:var(--font-serif);
  font-size:clamp(2.15rem,3.6vw,3rem);
  font-weight:500;
  color:#9a7437;
  margin:0 0 1.7rem;
}
.section--different .difference-grid--editorial{gap:1.25rem;margin:0;}
.section--different .difference-grid--editorial article{
  background:#f8f5f0;
  border:1px solid rgba(128,104,67,.24);
  border-radius:16px;
  padding:1.65rem 1.5rem;
  text-align:center;
  box-shadow:0 8px 22px rgba(58,47,37,.08);
}
.section--different .difference-grid--editorial h3{
  font-family:var(--font-serif);
  font-size:1.32rem;
  font-weight:500;
  color:#8d6a33;
  margin:0 0 .65rem;
}
.section--different .difference-grid--editorial p{
  margin:0;
  color:#2f2924;
  font-weight:400;
  line-height:1.62;
}
@media(max-width:700px){
  .section--different{padding:2.8rem 0;}
  .section--different h2{font-size:2.05rem;margin-bottom:1.35rem;}
  .section--different .difference-grid--editorial{grid-template-columns:1fr;gap:.9rem;}
  .section--different .difference-grid--editorial article{border-radius:14px;padding:1.35rem 1.15rem;}
}

/* V12.2 — typography hierarchy refinement only */
.section--different h2{
  color:#2b251f;
}
.section--different .difference-grid--editorial h3{
  font-size:1.52rem;
  font-weight:600;
  color:#9a7437;
  margin:0 0 .65rem;
}
.section--different .difference-grid--editorial p{
  color:#342d27;
  font-weight:400;
}
@media(max-width:700px){
  .section--different .difference-grid--editorial h3{font-size:1.42rem;}
}


/* V12.4 — apartment-special content integrated into Apartment Highlights */
.quick-gallery .special-inline{
  margin-top:2.1rem;
  padding-top:1.9rem;
  border-top:1px solid rgba(128,104,67,.20);
}
.quick-gallery .special-inline h2{
  text-align:center;
  font-family:var(--font-serif);
  font-size:clamp(1.8rem,3vw,2.35rem);
  font-weight:500;
  color:#2b251f;
  margin:0 0 1.35rem;
}
.quick-gallery .special-inline .difference-grid--editorial{
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:1rem;
  margin:0;
}
.quick-gallery .special-inline .difference-grid--editorial article{
  background:rgba(255,255,255,.72);
  border:1px solid rgba(128,104,67,.20);
  border-radius:16px;
  padding:1.35rem 1.2rem;
  text-align:center;
  box-shadow:0 5px 16px rgba(58,47,37,.055);
}
.quick-gallery .special-inline .difference-grid--editorial h3{
  font-family:var(--font-serif);
  font-size:1.42rem;
  font-weight:600;
  color:#9a7437;
  margin:0 0 .55rem;
}
.quick-gallery .special-inline .difference-grid--editorial p{
  margin:0;
  color:#342d27;
  font-weight:400;
  line-height:1.58;
}
@media(max-width:700px){
  .quick-gallery .special-inline{margin-top:1.7rem;padding-top:1.55rem;}
  .quick-gallery .special-inline h2{font-size:1.8rem;margin-bottom:1.1rem;}
  .quick-gallery .special-inline .difference-grid--editorial{grid-template-columns:1fr;gap:.8rem;}
  .quick-gallery .special-inline .difference-grid--editorial article{padding:1.2rem 1rem;border-radius:14px;}
  .quick-gallery .special-inline .difference-grid--editorial h3{font-size:1.34rem;}
}

/* V12.4: concise floor-plan summary */
.floorplan-summary{display:flex;flex-wrap:wrap;gap:.65rem 1.4rem;justify-content:center;margin:.25rem auto 1.1rem;color:#51483e}
.floorplan-summary span{display:inline-flex;gap:.38rem;align-items:baseline;white-space:normal}
.floorplan-summary strong{font-family:var(--font-serif);font-size:1.08em;color:#29241f}
@media(max-width:640px){.floorplan-summary{justify-content:flex-start;gap:.45rem 1rem}.floorplan-summary span{flex:1 1 100%}}
