/* Clone of Minin Apartments layout language
   Brand/content: Mercuriali Living (no Minin name)
   Single full-bleed hero image · fixed dark header · centered container 73.75rem */

:root {
  --bg: #f2e9dc;
  --ink: #2c2117;
  --ink-soft: #4a3c2c;
  --cream: #fbf5ea;
  --border: #e3d2b8;
  --accent-gold: #b8763f;
  --accent-terracotta: #c76f4b;
  --muted: #7a6650;
  --font: "Mulish", system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;
  --font-display: "Cormorant Garamond", Georgia, serif;
  --container: 73.75rem;
  /* Fluid header: taller to fit logo + languages under it */
  --header-h: 78px;
  --logo-h: 36px;
  --pad-x: 16px;
  --safe-top: env(safe-area-inset-top, 0px);
  --safe-bottom: env(safe-area-inset-bottom, 0px);
  --header-total: calc(var(--header-h) + var(--safe-top));
}
@media (min-width: 768px) {
  :root {
    --header-h: 92px;
    --logo-h: 42px;
    --pad-x: 32px;
  }
}
@media (min-width: 1200px) {
  :root {
    --header-h: 104px;
    --logo-h: 48px;
    --pad-x: 48px;
  }
}

*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html {
  scroll-behavior: smooth;
  -webkit-text-size-adjust: 100%;
  text-size-adjust: 100%;
  /* Stable viewport units across Safari URL-bar show/hide */
  height: 100%;
  /* iOS Safari sometimes still allows horizontal scroll/bounce from a
     position:fixed descendant even with overflow-x:hidden on body alone. */
  overflow-x: hidden;
}
body {
  font-family: var(--font);
  font-size: 16px;
  font-weight: 400;
  line-height: 1.5;
  color: var(--ink);
  background: var(--bg);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  min-width: 320px;
  min-height: 100%;
  overflow-x: hidden;
  /* Prevent iOS rubber-band shifting fixed header */
  overscroll-behavior-x: none;
}
img {
  max-width: 100%;
  height: auto;
  display: block;
  border: 0;
  /* Avoid Safari flash / subpixel gaps on full-bleed images */
  -webkit-transform: translateZ(0);
  transform: translateZ(0);
}
a {
  color: inherit;
  text-decoration: none;
  -webkit-tap-highlight-color: transparent;
  touch-action: manipulation;
}
button {
  -webkit-appearance: none;
  appearance: none;
  -webkit-tap-highlight-color: transparent;
  touch-action: manipulation;
  font-family: inherit;
}
ul, li { list-style: none; }
/* iOS Safari details/summary consistency */
summary {
  list-style: none;
}
summary::-webkit-details-marker {
  display: none;
}

/* —— Container: comfortable side padding at every width —— */
.wrap {
  width: 100%;
  max-width: var(--container);
  margin: 0 auto;
  padding: 0 var(--pad-x);
  box-sizing: border-box;
}

/* —— Fixed dark header (safe-area for notched iPhones) —— */
.site-header {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  width: 100%;
  z-index: 9999;
  background: var(--ink);
  padding-top: var(--safe-top);
  /* Isolate header paint on iOS */
  -webkit-backface-visibility: hidden;
  backface-visibility: hidden;
}
.header-inner {
  max-width: 100%;
  width: 100%;
  padding: 8px var(--pad-x);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  min-height: var(--header-h);
  height: var(--header-h);
  box-sizing: border-box;
}
@media (min-width: 768px) {
  .header-inner { gap: 24px; }
}
.logo {
  font-family: var(--font-display);
  font-size: clamp(1rem, 3.5vw, 1.35rem);
  color: var(--bg);
  letter-spacing: 0.02em;
  white-space: nowrap;
  line-height: 1;
  max-width: min(200px, 42vw);
  max-height: var(--logo-h);
  overflow: hidden;
  display: flex;
  align-items: center;
  justify-content: center;
}
.logo-img {
  display: block;
  height: var(--logo-h);
  width: auto;
  max-width: min(200px, 42vw);
  max-height: var(--logo-h);
  object-fit: contain;
}
.logo-img--footer { height: 44px; max-width: 180px; max-height: 44px; }
.nav-desktop {
  display: none;
  gap: 28px;
  margin-left: auto;
  font-size: 15px;
  font-weight: 500;
  color: #f0f0f0;
}
.nav-desktop a:hover { opacity: 0.65; }
.btn-book {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  height: 40px;
  padding: 0 18px;
  background: var(--cream);
  color: var(--ink);
  font-size: 14px;
  font-weight: 600;
  border-radius: 4px;
  transition: background 0.3s;
}
.btn-book:hover { background: #eaeaea; }
.nav-toggle {
  display: none;
  width: 44px;
  height: 44px;
  border: 0;
  background: transparent;
  position: relative;
  cursor: pointer;
  align-self: center;
  margin-top: 0;
  padding: 0;
  -webkit-tap-highlight-color: transparent;
  touch-action: manipulation;
  z-index: 2;
}
.nav-toggle span,
.nav-toggle::before,
.nav-toggle::after {
  content: "";
  position: absolute;
  left: 50%;
  width: 22px;
  height: 2px;
  margin-left: -11px;
  background: var(--bg);
  border-radius: 20px;
  pointer-events: none;
}
.nav-toggle span { top: 50%; margin-top: -1px; }
.nav-toggle::before { top: 50%; margin-top: -8px; }
.nav-toggle::after { top: 50%; margin-top: 6px; width: 16px; }
/* Compound selector (not just .lang-switch--mobile) — needs to outrank the
   base .lang-switch{display:flex} rule regardless of file order, since both
   are single-class selectors of equal specificity and would otherwise be
   decided by source order alone. */
/* Full desktop nav from 1024px (iPad landscape + laptops); hamburger below */
@media (max-width: 1023px) {
  .nav-desktop { display: none !important; }
  .nav-toggle { display: block; }
}
@media (min-width: 1024px) {
  .nav-desktop { display: flex; }
  .nav-toggle { display: none; }
  .header-right { min-width: 0; } /* empty right column balances left nav */
}

.nav-drawer {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  /* iOS Safari: inset:0/bottom:0 on a fixed element is computed against the
     larger viewport (address bar hidden) while the visible area is smaller
     (address bar shown), so flex-centered content lands near the top
     instead of centered. Explicit dvh (falls back to vh) tracks the actual
     visible viewport, same fix already used for .hero. This outer layer
     stays a plain dark backdrop -- the actual floating panel is the
     admin-colorable/roundable element nested inside it. */
  height: 100vh;
  height: 100dvh;
  z-index: 10000;
  background: rgba(20, 15, 10, 0.35);
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 1.25rem;
  box-sizing: border-box;
}
body.menu-open,
html.menu-open {
  overflow: hidden;
  overscroll-behavior: none;
}
.nav-drawer[hidden] { display: none !important; }
.nav-drawer.is-open { display: flex !important; }
.nav-drawer-panel {
  position: relative;
  width: 100%;
  max-width: 26rem;
  max-height: 100%;
  overflow-y: auto;
  background: var(--nav-drawer-bg, rgba(246, 246, 246, 0.92));
  -webkit-backdrop-filter: blur(20px);
  backdrop-filter: blur(20px);
  border-radius: 28px;
  box-shadow: 0 20px 60px rgba(0, 0, 0, 0.25);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 2rem;
  padding: 3.5rem 1.5rem;
}
.nav-drawer nav {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  width: 100%;
  gap: 1.25rem;
  font-size: 1.25rem;
  color: var(--ink);
}
.nav-drawer .btn-book {
  margin-top: 1rem;
  background: var(--ink);
  color: #fff;
}

/* —— SINGLE image hero (same structure on Safari + Chrome) —— */
.hero {
  position: relative;
  /* Offset for fixed header + notch — identical math in all browsers */
  margin-top: var(--header-total);
  /* Prefer small viewport height so Safari/Chrome match with URL bars */
  height: calc(100svh - var(--header-total));
  min-height: 480px;
  max-height: 820px;
  overflow: hidden;
  background: #000;
  display: flex;
  align-items: center;
  justify-content: center;
}
@media (min-width: 768px) {
  .hero { min-height: 560px; }
}
/* Fallback when svh unsupported */
@supports not (height: 100svh) {
  .hero {
    height: calc(100vh - var(--header-total));
  }
}
@media (max-width: 767px) {
  .hero {
    height: auto;
    min-height: 0;
    max-height: none;
    flex-direction: column;
    background: #f6f6f6;
    overflow: visible;
  }
}
.hero-media {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  z-index: 0;
  overflow: hidden;
}
@media (max-width: 767px) {
  /* Full-screen photo on mobile, same idea as desktop's 100svh hero —
     small viewport height so Safari/Chrome agree despite the URL bar. */
  .hero-media {
    position: relative;
    top: auto;
    right: auto;
    bottom: auto;
    left: auto;
    width: 100%;
    height: calc(100svh - var(--header-total));
    min-height: 480px;
  }
}
@supports not (height: 100svh) {
  @media (max-width: 767px) {
    .hero-media { height: calc(100vh - var(--header-total)); }
  }
}
.hero-media img {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  max-width: none;
  object-fit: cover;
  object-position: center center;
  display: block;
}
.hero-veil {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  z-index: 1;
  background: linear-gradient(180deg, rgba(0,0,0,0.25) 0%, rgba(0,0,0,0.4) 100%);
  pointer-events: none;
}
.hero-content {
  /* Search bar is centered at 50% of the photo (see .hero-search) — the
     title sits in the band above it, on both desktop and mobile (mobile's
     photo is now full-screen height too, so the same overlay technique
     works on both: this is why the title stays light-on-photo rather than
     dark-on-plain-background like the pre-full-screen mobile layout). */
  position: absolute;
  inset: 0 0 46% 0;
  z-index: 2;
  max-width: 1090px;
  width: 100%;
  margin: 0 auto;
  padding: 48px 16px 40px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
  /* Just static title text, but its box overlaps .hero-search's area
     (same z-index, later in DOM => wins hit-testing there) — without this
     it silently swallows clicks meant for the Dates/Guests search fields. */
  pointer-events: none;
}
@media (min-width: 768px) {
  .hero-content { padding: 80px 24px 48px; }
}
@media (max-width: 767px) {
  .hero-content {
    padding: 24px 16px 12px;
    max-width: 100%;
  }
}
.hero-kicker {
  color: #a9a9a9;
  font-size: 14px;
  line-height: 1.4;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  margin-bottom: 12px;
}
@media (max-width: 767px) {
  .hero-kicker { font-size: 13px; margin-bottom: 10px; }
}
.hero h1 {
  font-family: var(--font-display);
  font-weight: 400;
  font-size: clamp(1.9rem, 6.5vw, 4rem);
  line-height: 1.1;
  color: #f6f6f6;
  margin-bottom: 12px;
  max-width: min(22ch, 100%);
  padding: 0 4px;
}
@media (max-width: 767px) {
  .hero h1 { font-size: clamp(1.75rem, 7.5vw, 2.25rem); max-width: 18ch; }
}
.hero-lead {
  max-width: min(36rem, 92%);
  font-size: clamp(14px, 1.6vw, 18px);
  line-height: 1.5;
  color: #d1d1d1;
  margin: 0;
}
@media (max-width: 767px) {
  .hero-lead { font-size: 15px; max-width: 340px; }
}
.hero-meta { display: none; }
.btn-primary,
.hero .btn-primary {
  margin-top: 28px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  height: 50px;
  min-width: 240px;
  padding: 0 24px;
  background: var(--cream);
  color: var(--ink);
  font-weight: 600;
  font-size: 15px;
  border-radius: 4px;
  border: 0;
  transition: background 0.3s;
  cursor: pointer;
}
.hero .btn-primary:hover { background: #eaeaea; }
@media (max-width: 767px) {
  .hero .btn-primary {
    margin-top: 28px;
    width: min(100%, 280px);
    min-width: 0;
    background: var(--ink);
    color: #fff;
  }
}

/* —— Generic section —— */
.section {
  margin-top: 100px;
  margin-bottom: 20px;
}
@media (max-width: 767px) {
  .section { margin-top: 80px; }
}
.section-title,
.title {
  font-family: var(--font-display);
  font-weight: 400;
  font-size: clamp(1.85rem, 4.5vw, 3.5rem);
  line-height: 1.15;
  color: var(--ink);
  margin-bottom: clamp(28px, 4vw, 48px);
  max-width: min(28ch, 100%);
}
@media (max-width: 767px) {
  .section-title { margin-bottom: 28px; }
}
.lede {
  color: var(--muted);
  max-width: 42rem;
  margin-bottom: 1.5rem;
  font-size: clamp(15px, 1.4vw, 17px);
  line-height: 1.65;
}
.empty { color: var(--muted); }

/* Trust block — centered cards in container */
.trust-grid {
  display: grid;
  gap: 16px;
  max-width: 100%;
}
@media (min-width: 900px) {
  .trust-grid {
    grid-template-columns: 1fr 1fr 1.2fr;
    gap: 16px;
  }
}
.trust-card,
.trust-about {
  background: var(--cream);
  border-radius: 8px;
  padding: 28px 24px;
  border: 1px solid var(--border);
}
.trust-platform {
  font-size: 13px;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--muted);
  margin-bottom: 12px;
}
.trust-stat strong {
  display: block;
  font-family: var(--font-display);
  font-size: 48px;
  font-weight: 400;
  line-height: 1;
  margin-bottom: 4px;
}
.trust-rating {
  color: var(--muted);
  margin: 8px 0 16px;
  font-size: 15px;
}
.trust-about-photo {
  width: 100%;
  max-width: 280px;
  aspect-ratio: 1;
  object-fit: cover;
  border-radius: 8px;
  margin: 0 auto 16px;
  display: block;
}
.trust-about {
  text-align: center;
}
.trust-about-text {
  text-align: left;
  margin-bottom: 16px;
  line-height: 1.55;
  font-size: 15px;
}
.text-link {
  font-size: 15px;
  font-weight: 600;
  border-bottom: 1px solid currentColor;
}
.text-link:hover { opacity: 0.55; }

/* Promo */
.band-promo {
  margin-top: 100px;
  background: #ebe9e8;
  padding: 56px 0;
}
.band-promo-inner {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 32px;
  max-width: 900px;
  margin: 0 auto;
}
.band-promo h2 {
  font-family: var(--font-display);
  font-size: clamp(1.5rem, 3vw, 2.25rem);
  font-weight: 400;
  margin-bottom: 8px;
  max-width: 20ch;
}
.band-promo p { color: var(--muted); margin: 0; max-width: 28rem; }
.band-promo-right { text-align: center; }
.discount {
  font-family: var(--font-display);
  font-size: 56px;
  line-height: 1;
  margin-bottom: 12px;
}
.band-promo .btn-primary {
  margin-top: 0;
  background: var(--ink);
  color: #fff;
}
.band-promo .btn-primary:hover { opacity: 0.9; }

/* Apartments — 2-col grid INSIDE container (not full-bleed) */
.apartments-section { margin-top: 120px; }
@media (max-width: 767px) {
  .apartments-section { margin-top: 80px; }
}
.apt-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 32px 20px;
}
/* Tablet portrait: 2 cards side by side when width allows */
@media (min-width: 640px) {
  .apt-grid {
    grid-template-columns: 1fr 1fr;
    gap: 36px 20px;
  }
}
@media (min-width: 1024px) {
  .apt-grid {
    gap: 44px 24px;
  }
}
.apt-card {
  display: flex;
  flex-direction: column;
  gap: 14px;
  max-width: 100%;
}
.apt-card-media {
  display: block;
  position: relative;
  overflow: hidden;
  border-radius: 16px;
  background: #ddd;
  /* Airbnb-style card photo: consistent 4:3 ratio via aspect-ratio, not a
     fixed height, so the grid stays even at any card width. */
  aspect-ratio: 4 / 3;
}
.apt-card-media img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.5s ease;
}
.apt-card:hover .apt-card-media img { transform: scale(1.03); }
.apt-rating-badge {
  position: absolute;
  top: 16px;
  right: 16px;
  min-width: 140px;
  height: 30px;
  padding: 0 10px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--cream);
  border-radius: 4px;
  font-size: 14px;
  font-weight: 600;
  color: #333;
  z-index: 2;
}
.apt-card-body { display: flex; flex-direction: column; gap: 10px; }
.apt-card h3 {
  font-family: var(--font-display);
  font-size: clamp(1.35rem, 2vw, 1.75rem);
  font-weight: 400;
  line-height: 1.2;
}
.apt-card h3 a:hover { opacity: 0.55; }
.apt-addr {
  font-size: 14px;
  color: var(--muted);
  line-height: 1.4;
}
.apt-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 12px 16px;
  align-items: center;
  margin-top: 8px;
}
.btn-outline {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  height: 44px;
  padding: 0 18px;
  border: 1px solid var(--ink);
  border-radius: 4px;
  font-size: 14px;
  font-weight: 600;
  background: transparent;
  transition: background 0.3s, color 0.3s;
}
.btn-outline:hover {
  background: var(--ink);
  color: #fff;
}
.section-foot { margin-top: 40px; }

/* Services — 2-col in container */
.service-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 22px 28px;
  max-width: 100%;
}
@media (min-width: 640px) {
  .service-grid {
    grid-template-columns: 1fr 1fr;
  }
}
@media (min-width: 1024px) {
  .service-grid {
    gap: 28px 40px;
  }
  .service-card:nth-child(even) {
    padding-left: 24px;
  }
}
.service-card {
  display: flex;
  gap: 16px;
  align-items: flex-start;
}
.service-num {
  font-size: 14px;
  font-weight: 700;
  color: var(--muted);
  min-width: 2rem;
  padding-top: 4px;
}
.service-card h3 {
  font-family: var(--font);
  font-size: 22px;
  font-weight: 600;
  line-height: 1.3;
  margin-bottom: 6px;
}
.service-card p {
  margin: 0;
  font-size: 15px;
  color: var(--muted);
  line-height: 1.45;
  max-width: 36ch;
}

/* Location — image contained, not full page */
.location-block {
  display: grid;
  gap: 32px;
  align-items: center;
}
@media (min-width: 900px) {
  .location-block {
    grid-template-columns: 1fr 1fr;
    gap: 48px;
  }
}
.location-visual {
  border-radius: 8px;
  overflow: hidden;
  background: #ddd;
  position: relative;
  height: 0;
  padding-bottom: 62%;
  max-width: 100%;
}
.location-visual img {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  max-width: none;
  object-fit: cover;
  object-position: center;
}

/* FAQ */
.faq-list {
  max-width: 820px;
  border-top: 1px solid var(--border);
}
.faq-item { border-bottom: 1px solid var(--border); }
.faq-item summary {
  list-style: none;
  cursor: pointer;
  display: flex;
  gap: 16px;
  align-items: baseline;
  padding: 20px 0;
  font-weight: 600;
  font-size: 16px;
}
.faq-item summary::-webkit-details-marker { display: none; }
.faq-n {
  color: var(--muted);
  font-size: 14px;
  min-width: 28px;
}
.faq-body {
  padding: 0 0 20px 44px;
  color: var(--muted);
  font-size: 15px;
  line-height: 1.55;
}
.faq-body p { margin: 0; }

/* Rules */
.rules-grid {
  display: grid;
  gap: 16px;
  grid-template-columns: 1fr;
}
@media (min-width: 700px) {
  .rules-grid { grid-template-columns: 1fr 1fr; }
}
@media (min-width: 1000px) {
  .rules-grid { grid-template-columns: 1fr 1fr 1fr; }
}
.rule-card {
  background: var(--cream);
  border: 1px solid var(--border);
  border-radius: 8px;
  padding: 20px;
}
.rule-card h3 {
  font-family: var(--font);
  font-size: 16px;
  font-weight: 700;
  margin-bottom: 8px;
}
.rule-card p {
  margin: 0;
  font-size: 14px;
  color: var(--muted);
  line-height: 1.45;
}

/* CTA */
.cta-contact {
  margin-top: 100px;
  background: var(--ink);
  color: #fff;
  padding: 80px 0;
}
.cta-contact .section-title { color: #fff; }
.cta-contact .lede { color: rgba(255,255,255,0.7); }
.cta-channels {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 12px;
}
.cta-social {
  display: flex; align-items: center; justify-content: center;
  width: 2.75rem; height: 2.75rem; border-radius: 50%;
  border: 1px solid rgba(255,255,255,0.4); color: #fff;
  transition: background 0.2s ease, color 0.2s ease;
}
.cta-social:hover { background: #fff; color: var(--ink); }
.cta-contact .btn-outline {
  border-color: rgba(255,255,255,0.4);
  color: #fff;
}
.cta-contact .btn-outline:hover {
  background: #fff;
  color: var(--ink);
}
.cta-contact .btn-primary {
  margin-top: 0;
  background: var(--cream);
  color: var(--ink);
}

/* Inner pages */
.page-hero {
  margin-top: calc(var(--header-total) + 40px);
  padding-bottom: 24px;
  padding-left: 0;
  padding-right: 0;
}
.page-hero h1 {
  font-family: var(--font-display);
  font-weight: 400;
  font-size: clamp(2.25rem, 5vw, 3.5rem);
  margin-bottom: 12px;
}
.page-hero .hero-kicker {
  color: var(--muted);
  font-size: 13px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  margin-bottom: 8px;
}
.detail-rating-row { display: flex; align-items: center; gap: 0.35rem; margin-top: 0.6rem; font-size: 0.95rem; }
.detail-rating { display: flex; align-items: center; gap: 0.3rem; font-weight: 700; }
.detail-rating .apt-star { color: var(--ink); flex: none; }
.detail-rating-count { color: var(--muted); }

.detail-layout {
  display: grid;
  grid-template-columns: 1fr;
  gap: 28px;
  margin-bottom: 80px;
  max-width: 100%;
}
@media (min-width: 960px) {
  .detail-layout {
    grid-template-columns: 1.35fr 1fr;
    gap: 40px;
  }
}
/* Airbnb-style photo grid: one large main photo + up to 4 smaller ones,
   all inside one prominent block instead of a modest capped-height photo
   with a thumbnail strip underneath. Photos beyond the visible 4 stay in
   the DOM (.gallery-item--overflow) so the lightbox can still reach them. */
.detail-gallery { position: relative; }
.detail-gallery-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  grid-template-rows: repeat(2, 1fr);
  gap: 8px;
  height: 340px;
  border-radius: 16px;
  overflow: hidden;
}
@media (min-width: 700px) {
  .detail-gallery-grid { height: 460px; }
}
.gallery-item--main { grid-column: 1 / 3; grid-row: 1 / 3; }
.gallery-item--main img, .gallery-item--main.apt-ph--gradient { width: 100%; height: 100%; object-fit: cover; }
.gallery-item--grid { grid-column: span 1; grid-row: span 1; }
.gallery-item--grid img { width: 100%; height: 100%; object-fit: cover; }
.gallery-item--overflow { display: none; }
/* Fewer than 4 extra photos: let the grid fill the gap instead of leaving
   empty cells (main photo is always child 1 of this grid). */
.detail-gallery-grid:not(:has(> .gallery-item--grid)) .gallery-item--main { grid-column: 1 / 5; }
.detail-gallery-grid:has(> .gallery-item--grid:nth-child(2)):not(:has(> .gallery-item--grid:nth-child(3))) .gallery-item--grid {
  grid-row: 1 / 3;
}
/* Airbnb-style overlay pill in the grid's corner, not a separate button
   below it. Always visible when there's more than the cover photo. */
.gallery-show-all {
  position: absolute; right: 1rem; bottom: 1rem; z-index: 2;
  display: flex; align-items: center; gap: 0.4rem;
  background: #fff; color: var(--ink); border: 1px solid var(--ink);
  padding: 0.5rem 0.9rem; border-radius: 999px; font-size: 0.8rem; font-weight: 700;
  box-shadow: 0 2px 10px rgba(0,0,0,0.18); cursor: pointer;
}
.gallery-show-all:hover { background: var(--cream); }
@media (max-width: 699px) {
  /* Airbnb's mobile pattern is a swipeable carousel, not the desktop mosaic —
     turn the same grid into a native horizontal scroll-snap row with every
     photo in it (not just the first 5), so swiping reveals everything. */
  .detail-gallery-grid {
    display: flex;
    grid-template-columns: none;
    grid-template-rows: none;
    overflow-x: auto;
    overflow-y: hidden;
    scroll-snap-type: x mandatory;
    -webkit-overflow-scrolling: touch;
    /* Without this, iOS Safari's gesture recognizer can get confused
       between "swipe the carousel" and "scroll the page" on a diagonal
       touch, which reads as the whole page dragging sideways. Explicitly
       claim only the horizontal axis and contain the carousel's own
       rubber-banding so it never bleeds into the page. */
    touch-action: pan-x;
    overscroll-behavior-x: contain;
    gap: 0;
    height: 280px;
    border-radius: 16px;
  }
  .gallery-item--main, .gallery-item--grid, .gallery-item--overflow {
    display: block;
    flex: 0 0 100%;
    scroll-snap-align: center;
  }
  .gallery-show-all { right: 0.75rem; bottom: 0.75rem; }
}
.gallery-item {
  display: block; width: 100%; height: 100%; padding: 0; border: none; background: none;
  cursor: pointer; font: inherit; text-align: left;
}
.gallery-item img { width: 100%; height: 100%; display: block; object-fit: cover; }
.gallery-item:hover img { opacity: 0.9; }
.detail-video, .detail-video-file {
  width: 100%; aspect-ratio: 16 / 9; border-radius: 16px; border: 1px solid var(--border);
  background: #000; overflow: hidden;
}
.detail-video iframe { width: 100%; height: 100%; border: 0; }
.lightbox {
  position: fixed; top: 0; left: 0; right: 0;
  height: 100vh;
  height: 100dvh;
  z-index: 20000; background: rgba(20, 15, 10, 0.92);
  display: flex; align-items: center; justify-content: center;
}
.lightbox[hidden] { display: none; }
.lightbox-img { max-width: 92vw; max-height: 88vh; object-fit: contain; }
.lightbox-close {
  position: absolute; top: 1.25rem; right: 1.5rem; background: none; border: none;
  color: var(--cream); font-size: 2rem; line-height: 1; cursor: pointer; padding: 0.25rem 0.5rem;
}
.lightbox-nav {
  position: absolute; top: 50%; transform: translateY(-50%); background: none; border: none;
  color: var(--cream); font-size: 2.5rem; line-height: 1; cursor: pointer; padding: 0.5rem 1rem;
}
.lightbox-prev { left: 0.5rem; }
.lightbox-next { right: 0.5rem; }
.detail-facts {
  margin: 0 0 20px;
  padding: 0;
}
.detail-facts li {
  display: flex;
  justify-content: space-between;
  padding: 12px 0;
  border-bottom: 1px solid var(--border);
  font-size: 15px;
}
.detail-facts span { color: var(--muted); }

.contact-board {
  max-width: 480px;
  margin: 0 auto 80px;
}
.contact-row {
  display: flex;
  flex-direction: column;
  gap: 4px;
  padding: 18px 0;
  border-bottom: 1px solid var(--border);
}
.contact-row span {
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--muted);
}
.contact-row a {
  font-size: 18px;
  font-weight: 600;
}
.contact-row a:hover { opacity: 0.55; }
.content-narrow {
  max-width: 640px;
  margin: 0 auto 80px;
}

/* Footer */
.site-footer {
  background: var(--ink);
  color: rgba(247, 247, 247, 0.55);
  padding: 48px 0 32px;
  margin-top: 80px;
}
.footer-grid {
  max-width: var(--container);
  margin: 0 auto;
  padding: 0 var(--pad-x);
  display: grid;
  gap: 28px;
}
@media (min-width: 768px) {
  .footer-grid {
    grid-template-columns: 1.4fr 1fr 1fr;
  }
}
.footer-brand {
  font-family: var(--font-display);
  color: var(--bg);
  font-size: 1.35rem;
  margin-bottom: 8px;
}
.footer-tag { font-size: 14px; margin: 0; }
.footer-links,
.footer-contact {
  display: flex;
  flex-direction: column;
  gap: 8px;
  font-size: 14px;
}
.footer-links a:hover,
.footer-contact a:hover { color: #fff; }
.footer-copy {
  max-width: var(--container);
  margin: 32px auto 0;
  padding: 0 var(--pad-x);
  font-size: 12px;
  opacity: 0.7;
}

.apt-ph {
  width: 100%;
  height: 100%;
  min-height: 200px;
  background: #ccc;
}

/* —— Centered brand: logo + languages under it —— */
.header-inner {
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: center;
  gap: 0.5rem;
  padding: 6px var(--pad-x);
  min-height: var(--header-h);
  height: var(--header-h);
  box-sizing: border-box;
  overflow: visible;
}
.nav-desktop--left {
  grid-column: 1;
  justify-self: start;
  align-self: center;
  gap: 1.75rem;
  margin-left: 0;
}
.header-brand {
  grid-column: 2;
  justify-self: center;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 2px;
  min-width: 0;
  z-index: 1;
}
.logo--center {
  font-family: var(--font-display);
  font-style: italic;
  font-size: 1.5rem;
  line-height: 1;
}
.header-right {
  grid-column: 3;
  justify-self: end;
  align-self: center;
  display: flex;
  align-items: center;
  justify-content: flex-end;
  min-width: 44px;
}
.nav-toggle { margin-top: 0; }
.lang-switch { display: flex; gap: 0.15rem; align-items: center; justify-content: center; }
.lang-switch button {
  background: none; border: none; font-size: 0.65rem; letter-spacing: 0.06em;
  color: rgba(251, 245, 234, 0.55); cursor: pointer;
  padding: 0.15rem 0.35rem; line-height: 1.1;
  -webkit-tap-highlight-color: transparent;
  touch-action: manipulation;
}
.lang-switch button.active { color: var(--accent-gold); font-weight: 700; }
.lang-switch--header {
  display: flex;
  margin: 0;
}
.lang-switch--header button { color: rgba(251, 245, 234, 0.55); }
.lang-switch--header button.active { color: var(--accent-gold); }
/* Legacy mobile class kept inert if any old markup remains */
.lang-switch.lang-switch--mobile { display: none !important; }
.lang-switch--drawer { }
.nav-desktop--right { display: none !important; }

/* The drawer's own toggle sits behind the drawer once open (drawer z-index
   is higher than the header's), so the hamburger becomes unclickable —
   this close button is the drawer's own visible, always-clickable control. */
.nav-close {
  position: absolute; top: 1.25rem; right: 1.5rem; background: none; border: none;
  font-size: 2rem; line-height: 1; color: var(--ink); cursor: pointer; padding: 0.25rem 0.5rem;
}

.site-footer {
  background: var(--ink);
  color: var(--cream);
  padding: 2.5rem var(--pad-x) 1.5rem;
  margin-top: 80px;
}
.footer-top {
  display: flex; flex-direction: column; align-items: center; gap: 0.9rem;
  padding-bottom: 1.5rem; border-bottom: 1px solid rgba(230,217,194,0.2);
  font-family: var(--font-display); font-style: italic; font-size: 1.3rem;
  text-align: center;
  max-width: var(--container);
  margin: 0 auto;
}
.footer-social-row { display: flex; flex-direction: row; gap: 1rem; }
.footer-social {
  display: flex; align-items: center; justify-content: center;
  width: 2.2rem; height: 2.2rem; border-radius: 50%; border: 1px solid rgba(230,217,194,0.3);
  color: var(--cream); text-decoration: none; transition: border-color 0.2s, color 0.2s;
}
.footer-social:hover { color: var(--accent-gold); border-color: var(--accent-gold); }
.footer-grid {
  display: grid;
  grid-template-columns: 1fr;
  max-width: 32rem;
  margin: 0 auto;
  gap: 1.5rem;
  padding: 1.75rem 0;
  text-align: center;
}
@media (min-width: 520px) {
  .footer-grid { grid-template-columns: repeat(2, 1fr); }
}
.footer-grid h4 { font-family: var(--font-display); font-weight: 400; margin: 0 0 0.75rem; color: #fff; }
.footer-links a, .footer-contact a {
  display: block; color: #c9b99a; text-decoration: none; font-size: 0.85rem; line-height: 2;
}
.footer-copy {
  border-top: 1px solid rgba(230,217,194,0.2);
  padding-top: 1rem;
  margin: 0 auto;
  max-width: var(--container);
  font-size: 0.75rem;
  color: #9a8a6d;
  text-align: center;
  opacity: 1;
}

/* —— Task 8: borderless onefinestay-style apartment cards + price —— */
.apt-card { border: none; box-shadow: none; background: none; }
.apt-ph--gradient {
  background: linear-gradient(135deg, #c9a876 0%, #a3855c 45%, #6b5138 100%);
}
/* Inside .apt-card-media the placeholder fills the same aspect-ratio box
   the img fills (see aspect-ratio: 4/3 on .apt-card-media) so the grey #ddd
   background never shows through on any card width. */
.apt-card-media .apt-ph--gradient {
  position: absolute;
  inset: 0;
}
.apt-card-body h3 { font-family: var(--font-display); font-style: italic; font-weight: 400; margin: 0; }
.apt-card-body h3 a { color: var(--ink); text-decoration: none; }
.apt-city, .apt-stats { color: var(--muted); font-size: 0.85rem; margin: 0.15rem 0; }
.apt-price { color: var(--ink); font-size: 0.95rem; margin-top: 0.4rem; }
.apt-price strong { font-size: 1.1rem; font-weight: 700; }

/* —— Task 12: Airbnb-style card layout (photo → title+rating → location →
   stats → price), palette/type unchanged from the site's own tokens —— */
.apt-heart {
  position: absolute;
  top: 12px;
  right: 12px;
  left: auto;
  z-index: 2;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 28px;
  height: 28px;
  font-size: 1.15rem;
  line-height: 1;
  color: #fff;
  text-shadow: 0 1px 3px rgba(0,0,0,0.45);
}
.apt-card-body { gap: 6px; text-align: center; }
.apt-card-top {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  justify-content: center;
  gap: 6px 10px;
}
.apt-card-top h3 {
  min-width: 0;
  flex: 1 1 auto;
  max-width: 100%;
  /* Full titles on all viewports — no silent ellipsis cut-off */
  overflow: visible;
  text-overflow: unset;
  white-space: normal;
  text-align: center;
  line-height: 1.25;
}
.apt-rating {
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  gap: 4px;
  font-family: var(--font);
  font-size: 0.85rem;
  font-weight: 600;
  color: var(--ink);
  white-space: nowrap;
}
.apt-star { flex: 0 0 auto; color: var(--accent-gold); }
.apt-review-count { color: var(--muted); font-weight: 400; }

/* —— Task 10: apartment detail — amenities, map, calendar, price sidebar —— */
/* Mobile/tablet first: single column. Two columns only when sidebar fits. */
.detail-layout {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1.75rem;
}
.detail-main { grid-column: auto; min-width: 0; }
.detail-sidebar {
  grid-column: auto;
  grid-row: auto;
  background: var(--cream);
  border: 1px solid var(--border);
  padding: 1.25rem;
  height: fit-content;
  position: static;
  border-radius: 16px;
  min-width: 0;
}
@media (min-width: 960px) {
  .detail-layout {
    grid-template-columns: minmax(0, 1.55fr) minmax(260px, 1fr);
    gap: 2.25rem;
  }
  .detail-main { grid-column: 1; }
  .detail-sidebar {
    grid-column: 2;
    grid-row: 1 / 3;
    position: sticky;
    top: calc(var(--header-total) + 1rem);
    padding: 1.5rem;
  }
}
.sidebar-price { font-size: 1.4rem; margin: 0 0 1rem; }
.sidebar-price span { font-size: 0.8rem; color: var(--muted); font-weight: normal; }
/* The generic .btn-primary is cream-on-transparent (built for sitting over
   a dark hero photo) — here it sits on the cream sidebar/mobile bar and
   was disappearing into the background. This is the actual booking CTA,
   so it gets its own high-contrast, unmistakably-a-button treatment. */
.btn-book-cta {
  display: flex; align-items: center; justify-content: center; gap: 0.5rem;
  width: 100%; height: 3.25rem; margin-top: 0.5rem;
  background: var(--accent-terracotta); color: #fff9f0;
  font-weight: 700; font-size: 0.95rem; letter-spacing: 0.01em;
  border-radius: 12px; box-shadow: 0 6px 16px rgba(199, 111, 75, 0.35);
  transition: background 0.2s ease, transform 0.15s ease, box-shadow 0.2s ease;
}
.btn-book-cta:hover { background: #b3603f; transform: translateY(-1px); box-shadow: 0 8px 20px rgba(199, 111, 75, 0.45); }
.btn-book-cta:active { transform: translateY(0); }
.detail-cover-ph { height: 420px; border-radius: 16px; }
.detail-section { margin-top: 2rem; }
.detail-section h3 { font-family: var(--font-display); font-weight: 400; border-bottom: 1px solid var(--border); padding-bottom: 0.6rem; margin-bottom: 1rem; }
/* Airbnb-style clean amenities list: icon + label per row, no description
   text (moved to a native title tooltip so the info isn't lost). */
.amenity-group { margin-bottom: 1.5rem; }
.amenity-group:last-child { margin-bottom: 0; }
.amenity-group-title { font-family: var(--font-display); font-weight: 400; font-size: 1.05rem; margin: 0 0 0.85rem; }
.btn-show-all-amenities {
  margin-top: 0.9rem; padding: 0.75rem 1.5rem; background: none;
  border: 1px solid var(--ink); border-radius: 8px; font-weight: 600; font-size: 0.9rem;
  cursor: pointer;
}
.btn-show-all-amenities:hover { background: var(--cream); }
.amenity-list { display: grid; grid-template-columns: 1fr; gap: 0.9rem 1.5rem; }
@media (min-width: 560px) {
  .amenity-list { grid-template-columns: 1fr 1fr; }
}
.amenity-row { display: flex; align-items: center; gap: 0.9rem; }
.amenity-row .amenity-icon { flex: none; }
.amenity-name { font-size: 0.95rem; }
.detail-map { width: 100%; height: 220px; border: 1px solid var(--border); border-radius: 16px; }
.detail-map--large { height: 380px; margin-top: 1rem; }
.detail-section--about {
  background: var(--cream);
  border: 1px solid var(--border);
  border-radius: 20px;
  padding: 1.75rem 1.75rem 1.5rem;
}
.detail-section--about h3 { border-bottom: none; padding-bottom: 0; margin-bottom: 0.75rem; }
.detail-rich-text p { margin: 0 0 1rem; line-height: 1.7; }
.detail-rich-text p:last-child { margin-bottom: 0; }
.detail-subsection { margin-top: 1.5rem; }
.detail-subsection h4 {
  font-family: var(--font); font-weight: 700; font-size: 1rem;
  margin-bottom: 0.5rem;
}
.detail-section--location .lede { margin-bottom: 0; }
.avail-nav { display: flex; align-items: center; justify-content: space-between; gap: 0.75rem; margin-bottom: 0.75rem; }
.avail-month-name { font-weight: 700; text-transform: capitalize; font-family: var(--font-display); font-size: 1.15rem; text-align: center; flex: 1; }
.avail-nav-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 34px;
  height: 34px;
  flex: none;
  border: 1px solid var(--border);
  border-radius: 50%;
  background: var(--cream);
  color: var(--ink);
  font-family: var(--font-display);
  font-size: 1.3rem;
  line-height: 1;
  cursor: pointer;
  transition: background 0.15s ease, border-color 0.15s ease, color 0.15s ease;
}
.avail-nav-btn:hover:not(:disabled) { background: var(--accent-gold); border-color: var(--accent-gold); color: #fff9f0; }
.avail-nav-btn:disabled { opacity: 0.35; cursor: not-allowed; color: var(--muted); }
.avail-grid { display: grid; grid-template-columns: repeat(7, 1fr); gap: 3px; margin-bottom: 1.5rem; }
.avail-grid > div { height: 32px; display: flex; align-items: center; justify-content: center; font-size: 0.8rem; background: var(--cream); border-radius: 2px; }
.avail-dow { background: none !important; color: var(--muted); font-weight: 700; }
.avail-day--past, .avail-day--booked { background: var(--border); color: #b3a186; text-decoration: line-through; cursor: not-allowed; }
.avail-day:not(.avail-day--past):not(.avail-day--booked) { cursor: pointer; }
.avail-day--selected { background: var(--accent-gold) !important; color: #fff9f0; }
.calendar-total-price {
  margin-top: 1rem; padding: 0.85rem 1rem; background: var(--cream); border: 1px solid var(--border);
  border-radius: 12px; font-size: 0.95rem; font-weight: 600; text-align: center;
}
.mobile-book-bar { display: none; }
/* Sticky book bar on phone + tablet; desktop keeps sticky sidebar */
@media (max-width: 959px) {
  .detail-layout { grid-template-columns: 1fr; padding-bottom: 5.5rem; }
  .detail-sidebar { display: none; }
  .mobile-book-bar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    position: fixed;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 500;
    max-width: 100vw;
    width: 100%;
    box-sizing: border-box;
    overflow: hidden;
    background: var(--cream);
    border-top: 1px solid var(--border);
    border-radius: 16px 16px 0 0;
    padding: 0.75rem 1rem calc(0.75rem + env(safe-area-inset-bottom, 0px));
    box-shadow: 0 -6px 20px rgba(0, 0, 0, 0.12);
  }
  .mobile-book-info { min-width: 0; overflow: hidden; flex: 1 1 auto; }
  .mobile-book-price { font-size: 1.05rem; margin: 0; white-space: nowrap; }
  .mobile-book-price span { font-size: 0.75rem; color: var(--muted); font-weight: normal; }
  .mobile-book-dates {
    margin: 0.15rem 0 0; font-size: 0.75rem; color: var(--muted);
    white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
  }
  .mobile-book-bar .btn-book-cta--mobile {
    flex: 0 0 auto;
    width: auto;
    min-width: 0;
    max-width: 48%;
    height: 2.85rem;
    padding: 0 1.1rem;
    white-space: nowrap;
    font-size: 0.9rem;
  }
}

/* —— Hero search bar — embedded in the hero photo, ~2/3 down —— */
/* Lives inside .hero-media (not .hero) so its anchor point tracks the
   same box on both desktop (media fills .hero absolutely) and mobile
   (media is a relative box sized by the padding-bottom ratio hack). */
.hero-search {
  position: absolute;
  z-index: 2;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
  display: flex;
  align-items: stretch;
  gap: 0;
  width: min(calc(100% - 24px), 420px);
  max-width: 420px;
  background: var(--cream);
  border-radius: 999px;
  /* Kept modest — .hero-media has overflow:hidden, so a wide blur would clip
     at the left/right edges when the bar sits close to the container bound. */
  box-shadow: 0 8px 20px rgba(0, 0, 0, 0.25);
  padding: 6px;
  box-sizing: border-box;
}
.hero-search-field {
  display: flex;
  align-items: center;
  gap: 10px;
  flex: 1 1 0;
  min-width: 0;
  padding: 8px 14px;
  border: none;
  background: none;
  font: inherit;
  text-align: left;
  cursor: pointer;
  border-radius: 999px;
}
.hero-search-field:hover, .hero-search-field[aria-expanded="true"] { background: rgba(44, 33, 23, 0.06); }
.hero-search-popover {
  position: absolute;
  top: calc(100% + 10px);
  left: 0;
  z-index: 5;
  background: var(--cream);
  border: 1px solid var(--border);
  border-radius: 8px;
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.2);
  padding: 14px;
  display: flex;
  gap: 12px;
  color: var(--ink);
  font-size: 13px;
}
.hero-search-popover[hidden] { display: none; }
.hero-search-popover--guests { left: auto; right: 0; flex-direction: column; gap: 8px; }
.hero-popover-field { display: flex; flex-direction: column; gap: 4px; }
.hero-popover-field span { font-size: 11px; text-transform: uppercase; letter-spacing: 0.05em; color: var(--muted); }
.hero-popover-field input[type="date"] {
  border: 1px solid var(--border); border-radius: 6px; padding: 6px 8px; font: inherit; color: var(--ink); background: #fff;
}
.hero-guest-stepper { display: flex; align-items: center; gap: 14px; }
.hero-guest-stepper button {
  width: 28px; height: 28px; border-radius: 50%; border: 1px solid var(--border); background: #fff;
  color: var(--ink); font-size: 16px; line-height: 1; cursor: pointer;
}
.hero-guest-stepper button:disabled { opacity: 0.35; cursor: not-allowed; }
.hero-guest-stepper span { min-width: 1.5em; text-align: center; }
@media (max-width: 767px) {
  .hero-search-popover { left: 50%; transform: translateX(-50%); right: auto; }
  .hero-search-popover--guests { left: 50%; right: auto; }
}
.hero-search-icon { flex-shrink: 0; }
.hero-search-text {
  display: flex;
  flex-direction: column;
  min-width: 0;
  line-height: 1.25;
}
.hero-search-label {
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: var(--muted);
}
.hero-search-value {
  font-size: 14px;
  font-weight: 600;
  color: var(--ink);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.hero-search-divider {
  width: 1px;
  flex-shrink: 0;
  margin: 6px 0;
  background: var(--border);
}
.hero-search-btn {
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 44px;
  height: 44px;
  margin-left: 4px;
  border-radius: 50%;
  background: var(--accent-terracotta);
  transition: opacity 0.3s;
}
.hero-search-btn:hover { opacity: 0.85; }
@media (max-width: 767px) {
  /* Only two fields now (City dropped — every listing is in Tashkent), so
     the same horizontal layout fits on a phone screen without truncating;
     just tightened padding/font-size a touch. Position stays centered in
     the photo like desktop — see the shared (non-breakpoint-gated) rule
     above, and .hero-content's matching mobile overlay treatment. */
  .hero-search { padding: 4px; box-shadow: 0 8px 20px rgba(0, 0, 0, 0.22); }
  .hero-search-field { gap: 8px; padding: 8px 10px; }
  .hero-search-value { font-size: 13px; }
  .hero-search-btn { width: 38px; height: 38px; }
  .hero-search-btn svg { width: 15px; height: 15px; }
}

/* —— Intro section — Nadya's bio, migrated off the old trust/reviews block —— */
.intro-wrap {
  max-width: min(48rem, 100%);
  margin: 0 auto;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 14px;
  text-align: center;
}
.intro-eyebrow {
  font-size: 13px;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--accent-gold);
}
.intro-title {
  font-family: var(--font-display);
  font-weight: 400;
  font-size: clamp(1.75rem, 4vw, 2.75rem);
  line-height: 1.2;
  color: var(--ink);
  margin: 0;
  max-width: none;
}
.intro-body {
  color: var(--muted);
  font-size: clamp(15px, 1.4vw, 17px);
  line-height: 1.7;
  margin: 0;
  max-width: 40rem;
}

/* ============================================================
   v18 RESPONSIVE SYSTEM — phone / tablet / desktop polish
   Last rules win over earlier cascade conflicts.
   Breakpoints: phone <640 | tablet 640–1023 | desktop ≥1024
   Detail sidebar: ≥960
   ============================================================ */

/* —— Prevent accidental page-wide horizontal scroll —— */
.site-header,
.site-footer,
.section,
.hero,
.page-hero,
.cta-contact,
.band-promo {
  max-width: 100vw;
}
.wrap,
.detail-layout,
.detail-main,
.detail-sidebar,
.apt-card,
.service-card,
.location-block,
.faq-list {
  min-width: 0;
}

/* —— Page hero (inner pages) —— */
.page-hero {
  margin-top: calc(var(--header-total) + 24px);
  padding-bottom: 16px;
}
@media (min-width: 768px) {
  .page-hero {
    margin-top: calc(var(--header-total) + 36px);
    padding-bottom: 24px;
  }
}
.page-hero h1 {
  font-size: clamp(1.85rem, 4.5vw, 3.25rem);
  line-height: 1.15;
  word-wrap: break-word;
  overflow-wrap: break-word;
}
.page-hero .wrap {
  padding-left: var(--pad-x);
  padding-right: var(--pad-x);
}

/* —— Section rhythm —— */
.section {
  margin-top: clamp(64px, 8vw, 100px);
  margin-bottom: 16px;
}
.apartments-section {
  margin-top: clamp(64px, 9vw, 120px);
}
.cta-contact {
  margin-top: clamp(64px, 8vw, 100px);
  padding: clamp(48px, 6vw, 80px) 0;
}
.band-promo {
  margin-top: clamp(64px, 8vw, 100px);
  padding: clamp(36px, 5vw, 56px) 0;
}

/* —— Trust grid: 1 → 2 → 3 —— */
.trust-grid {
  grid-template-columns: 1fr;
  gap: 14px;
}
@media (min-width: 640px) {
  .trust-grid {
    grid-template-columns: 1fr 1fr;
  }
}
@media (min-width: 1024px) {
  .trust-grid {
    grid-template-columns: 1fr 1fr 1.2fr;
    gap: 16px;
  }
}

/* —— Location block tablet —— */
@media (min-width: 768px) and (max-width: 899px) {
  .location-block {
    grid-template-columns: 1fr;
    gap: 24px;
  }
}
@media (min-width: 900px) {
  .location-block {
    grid-template-columns: 1fr 1fr;
    gap: 48px;
  }
}

/* —— Service cards: comfortable type —— */
.service-card h3 {
  font-size: clamp(1.05rem, 2.2vw, 1.375rem);
}
.service-card p {
  font-size: clamp(14px, 1.3vw, 16px);
  line-height: 1.5;
  max-width: 42ch;
}
@media (max-width: 639px) {
  .service-card:nth-child(even) {
    padding-left: 0;
  }
}

/* —— FAQ readable measure —— */
.faq-item summary {
  gap: 12px;
  padding: 16px 0;
  font-size: clamp(15px, 1.4vw, 16px);
  line-height: 1.35;
}
.faq-body {
  padding: 0 0 18px 0;
  font-size: clamp(14px, 1.3vw, 16px);
  line-height: 1.65;
  max-width: 40rem;
}
@media (min-width: 480px) {
  .faq-body { padding-left: 44px; }
}

/* —— Rules: 1 / 2 / 3 columns —— */
.rules-grid {
  grid-template-columns: 1fr;
  gap: 14px;
}
@media (min-width: 560px) {
  .rules-grid { grid-template-columns: 1fr 1fr; }
}
@media (min-width: 1000px) {
  .rules-grid { grid-template-columns: 1fr 1fr 1fr; }
}
.rule-card {
  padding: clamp(16px, 2vw, 20px);
}

/* —— CTA buttons stack cleanly on narrow phones —— */
.cta-channels {
  gap: 10px;
}
@media (max-width: 479px) {
  .cta-channels .btn-outline,
  .cta-channels .btn-primary {
    width: 100%;
  }
  .cta-social {
    width: 2.9rem;
    height: 2.9rem;
  }
}

/* —— Apartment card body —— */
.apt-card-body {
  padding: 0 2px;
}
.apt-card h3,
.apt-card-body h3 {
  font-size: clamp(1.2rem, 2.2vw, 1.65rem);
}
.apt-actions {
  justify-content: center;
}
@media (max-width: 639px) {
  .apt-actions .btn-outline {
    width: 100%;
  }
}

/* —— Gallery: fluid heights —— */
.detail-gallery-grid {
  height: clamp(240px, 42vw, 340px);
}
@media (min-width: 700px) {
  .detail-gallery-grid {
    height: clamp(360px, 38vw, 480px);
  }
}
@media (max-width: 699px) {
  .detail-gallery-grid {
    height: min(72vw, 320px);
  }
}
.gallery-show-all {
  font-size: clamp(0.72rem, 1.8vw, 0.8rem);
  padding: 0.45rem 0.8rem;
}

/* —— Detail map / video —— */
.detail-map {
  height: 200px;
}
.detail-map--large {
  height: clamp(220px, 40vw, 380px);
}
.detail-cover-ph {
  height: clamp(220px, 45vw, 420px);
}
.detail-section--about {
  padding: clamp(1.15rem, 3vw, 1.75rem);
  border-radius: 16px;
}
.detail-section h3 {
  font-size: clamp(1.2rem, 2.5vw, 1.5rem);
}

/* —— Calendar cells: touch-friendly on phones —— */
@media (max-width: 479px) {
  .avail-grid { gap: 2px; }
  .avail-grid > div {
    height: 36px;
    font-size: 0.78rem;
  }
  .avail-nav-btn {
    width: 38px;
    height: 38px;
  }
}
@media (min-width: 960px) {
  .avail-grid > div { height: 34px; }
}

/* —— Amenity list —— */
.amenity-list {
  grid-template-columns: 1fr;
}
@media (min-width: 480px) {
  .amenity-list { grid-template-columns: 1fr 1fr; }
}
.btn-show-all-amenities {
  width: 100%;
  max-width: 100%;
  box-sizing: border-box;
}
@media (min-width: 480px) {
  .btn-show-all-amenities { width: auto; }
}

/* —— Contact page —— */
.contact-board {
  max-width: min(480px, 100%);
  margin: 0 auto 64px;
  padding: 0;
}
.contact-row a {
  font-size: clamp(16px, 2.5vw, 18px);
  word-break: break-word;
}
.content-narrow {
  max-width: min(640px, 100%);
  margin: 0 auto 64px;
}

/* —— Nav drawer: comfortable on tablet + phone —— */
.nav-drawer {
  padding: max(1rem, env(safe-area-inset-top, 0px))
           max(1rem, env(safe-area-inset-right, 0px))
           max(1rem, env(safe-area-inset-bottom, 0px))
           max(1rem, env(safe-area-inset-left, 0px));
}
.nav-drawer-panel {
  max-width: min(26rem, 100%);
  max-height: min(100%, calc(100dvh - 2rem));
  padding: clamp(2.25rem, 6vw, 3.5rem) clamp(1.25rem, 4vw, 1.75rem);
  gap: clamp(1.25rem, 3vw, 2rem);
}
.nav-drawer nav {
  font-size: clamp(1.1rem, 3.5vw, 1.35rem);
  gap: 1.1rem;
}

/* —— Desktop header links spacing —— */
@media (min-width: 1024px) {
  .nav-desktop {
    gap: clamp(18px, 2vw, 28px);
    font-size: 15px;
  }
  .nav-desktop--left { gap: 1.75rem; }
  .nav-desktop--right { gap: 1.25rem; }
}

/* —— Hero content / search collision on short landscape phones —— */
@media (max-width: 900px) and (max-height: 500px) and (orientation: landscape) {
  .hero-media {
    min-height: 360px;
    height: calc(100svh - var(--header-total));
  }
  .hero-content {
    inset: 0 0 40% 0;
    padding: 12px 16px;
  }
  .hero h1 { font-size: 1.6rem; margin-bottom: 4px; }
  .hero-lead { display: none; }
  .hero-search {
    top: 58%;
    max-width: 360px;
  }
}

/* —— Very small phones (320–359) —— */
@media (max-width: 359px) {
  :root {
    --pad-x: 12px;
    --header-h: 72px;
    --logo-h: 32px;
  }
  .hero-search-label { font-size: 10px; }
  .hero-search-value { font-size: 12px; }
  .mobile-book-bar .btn-book-cta--mobile {
    padding: 0 0.85rem;
    font-size: 0.85rem;
  }
}

/* —— Mobile header: brand center (logo + langs), burger right —— */
@media (max-width: 1023px) {
  .header-inner {
    overflow: visible;
  }
  .header-brand {
    grid-column: 2;
    z-index: 1;
  }
  .header-right {
    grid-column: 3;
    z-index: 2;
  }
  .nav-toggle {
    display: block !important;
    width: 44px;
    height: 44px;
    margin-top: 0;
    position: relative;
  }
  .nav-toggle span,
  .nav-toggle::before,
  .nav-toggle::after {
    background: var(--bg);
    left: 50%;
    right: auto;
    width: 22px;
    margin-left: -11px;
  }
  .nav-toggle::after {
    width: 16px;
  }
  .lang-switch--header button {
    font-size: 0.62rem;
    padding: 0.12rem 0.3rem;
  }
}

/* —— Phone hero: no text cut-off at edges —— */
@media (max-width: 767px) {
  .hero-content {
    inset: 0 0 42% 0;
    padding: 20px 20px 8px;
    box-sizing: border-box;
    width: 100%;
    max-width: 100%;
  }
  .hero h1 {
    max-width: 100%;
    padding: 0 8px;
    box-sizing: border-box;
    /* avoid mid-word overflow on 320–375 screens */
    overflow-wrap: break-word;
    word-wrap: break-word;
    hyphens: manual;
  }
  .hero-lead {
    max-width: min(340px, calc(100% - 16px));
    padding: 0 8px;
    box-sizing: border-box;
  }
  .hero-search {
    width: min(calc(100% - 28px), 400px);
  }
}

/* —— Mobile book bar: never clip the CTA label —— */
@media (max-width: 959px) {
  .mobile-book-bar {
    gap: 0.5rem;
    padding-left: 0.85rem;
    padding-right: 0.85rem;
  }
  .mobile-book-bar .btn-book-cta--mobile {
    flex: 0 0 auto;
    max-width: none;
    width: auto;
    min-width: 7.5rem;
    padding: 0 1.15rem;
    font-size: 0.9rem;
    white-space: nowrap;
    overflow: visible;
  }
  .mobile-book-info {
    flex: 1 1 0;
    min-width: 0;
  }
}
@media (max-width: 359px) {
  .mobile-book-bar .btn-book-cta--mobile {
    min-width: 0;
    padding: 0 0.9rem;
    font-size: 0.82rem;
  }
}

/* —— Gallery "show all" pill stays fully on screen —— */
@media (max-width: 699px) {
  .gallery-show-all {
    right: 0.5rem;
    bottom: 0.5rem;
    max-width: calc(100% - 1rem);
    box-sizing: border-box;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
  }
}

/* —— Large desktop: breathing room + reading measure —— */
@media (min-width: 1200px) {
  .hero h1 {
    max-width: 22ch;
    font-size: clamp(2.75rem, 4.2vw, 4rem);
  }
  .hero-lead {
    max-width: 36rem;
    font-size: 18px;
  }
  .section-title,
  .title {
    max-width: 28ch;
  }
  .hero-search {
    max-width: 440px;
  }
}
@media (min-width: 1440px) {
  .wrap {
    padding-left: 48px;
    padding-right: 48px;
  }
}

/* —— Lightbox: safe on small screens —— */
.lightbox-img {
  max-width: min(92vw, 100%);
  max-height: min(82dvh, 88vh);
}
.lightbox-close {
  top: max(0.75rem, env(safe-area-inset-top, 0px));
  right: max(0.75rem, env(safe-area-inset-right, 0px));
}
.lightbox-nav {
  font-size: clamp(1.75rem, 5vw, 2.5rem);
  padding: 0.4rem 0.65rem;
}
@media (max-width: 479px) {
  .lightbox-prev { left: 0.15rem; }
  .lightbox-next { right: 0.15rem; }
}

/* —— Sticky footer social + copy stay inside safe area —— */
.site-footer {
  padding-bottom: calc(1.25rem + env(safe-area-inset-bottom, 0px));
}

/* —— Forms / inputs that may appear on contact —— */
input, select, textarea {
  max-width: 100%;
  font-size: 16px; /* prevent iOS zoom-on-focus */
}

/* —— Ensure sticky sidebar never clips under fixed header —— */
@media (min-width: 960px) {
  .detail-sidebar {
    max-height: calc(100dvh - var(--header-total) - 2rem);
    overflow-y: auto;
  }
}

/* —— Band promo stacks on tablet-ish widths —— */
.band-promo-inner {
  flex-direction: column;
  align-items: flex-start;
  text-align: left;
  gap: 24px;
  max-width: 100%;
  padding: 0;
}
@media (min-width: 700px) {
  .band-promo-inner {
    flex-direction: row;
    align-items: center;
    justify-content: space-between;
  }
  .band-promo-right { text-align: center; }
}
.discount {
  font-size: clamp(2.5rem, 6vw, 3.5rem);
}

/* —— Lang switcher touch targets —— */
.lang-switch button {
  min-width: 2rem;
  min-height: 2rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}
.nav-toggle {
  width: 44px;
  height: 44px;
  flex-shrink: 0;
  margin-top: 0;
}

/* —— Detail facts list: wrap long values —— */
.detail-facts li {
  gap: 12px;
  flex-wrap: wrap;
}
.detail-facts li span {
  word-break: break-word;
}
.detail-facts li strong,
.detail-facts li {
  min-width: 0;
}

/* —— Hero popovers stay on-screen —— */
.hero-search-popover {
  max-width: min(320px, calc(100vw - 24px));
  box-sizing: border-box;
}
@media (max-width: 767px) {
  .hero-search-popover {
    width: min(300px, calc(100vw - 24px));
  }
  .hero-popover-field input[type="date"] {
    width: 100%;
    min-width: 0;
  }
}

/* —— CTA block: center text, hide Contacts button (v19) —— */
.cta-contact .wrap {
  text-align: center;
}
.cta-contact .section-title {
  margin-left: auto;
  margin-right: auto;
  max-width: min(22ch, 100%);
  text-align: center;
}
.cta-contact .lede {
  margin-left: auto;
  margin-right: auto;
  text-align: center;
}
.cta-contact .cta-channels {
  justify-content: center;
  align-items: center;
}
/* Remove Contacts CTA — keep WhatsApp + email only */
.cta-contact .cta-channels > a.btn-primary,
.cta-contact .cta-channels > a.btn-outline {
  display: none !important;
}


/* CTA center+hide contacts */
.cta-contact .wrap { text-align: center; }
.cta-contact .section-title { margin-left: auto; margin-right: auto; max-width: min(22ch, 100%); text-align: center; }
.cta-contact .lede { margin-left: auto; margin-right: auto; text-align: center; }
.cta-contact .cta-channels { justify-content: center; align-items: center; }
.cta-contact .cta-channels > a.btn-primary,
.cta-contact .cta-channels > a.btn-outline { display: none !important; }


/* Footer contact: icons instead of plain email/phone text */
.footer-contact-icons {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  align-items: center;
  gap: 0.85rem;
}
.footer-contact .footer-social {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2.2rem;
  height: 2.2rem;
  border-radius: 50%;
  border: 1px solid rgba(230,217,194,0.3);
  color: var(--cream);
  text-decoration: none;
  transition: border-color 0.2s, color 0.2s;
}
.footer-contact .footer-social:hover {
  color: var(--accent-gold);
  border-color: var(--accent-gold);
}
/* Hide plain text email/phone only when icon row is present */
.footer-contact:has(.footer-contact-icons) > a[href^="mailto:"],
.footer-contact:has(.footer-contact-icons) > a[href^="tel:"] {
  display: none !important;
}



/* Footer email/phone as icons (works with cached HTML, no JS required) */
.footer-contact {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.75rem;
}
.footer-contact > a[href^="mailto:"],
.footer-contact > a[href^="tel:"] {
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  width: 2.2rem;
  height: 2.2rem;
  margin: 0 0.25rem;
  padding: 0;
  border-radius: 50%;
  border: 1px solid rgba(230, 217, 194, 0.3);
  color: transparent !important;
  font-size: 0 !important;
  line-height: 0 !important;
  overflow: hidden;
  text-indent: -9999px;
  vertical-align: middle;
  background-color: transparent;
  background-repeat: no-repeat;
  background-position: center;
  background-size: 18px 18px;
  transition: border-color 0.2s, background-color 0.2s;
}
.footer-contact > a[href^="mailto:"] {
  background-image: url("data:image/svg+xml,%3Csvg xmlns=http://www.w3.org/2000/svg width=18 height=18 viewBox=0 0 24 24 fill=none stroke=%23fbf5ea stroke-width=1.6%3E%3Crect x=3 y=5 width=18 height=14 rx=2/%3E%3Cpath d=m4 7 8 6 8-6/%3E%3C/svg%3E");
}
.footer-contact > a[href^="tel:"] {
  background-image: url("data:image/svg+xml,%3Csvg xmlns=http://www.w3.org/2000/svg width=18 height=18 viewBox=0 0 24 24 fill=none stroke=%23fbf5ea stroke-width=1.6%3E%3Cpath d=M6.2 3.8h2.6l1.2 3.6-1.6 1.6a13 13 0 0 0 5.8 5.8l1.6-1.6 3.6 1.2v2.6c0 .7-.5 1.2-1.1 1.3A15.5 15.5 0 0 1 3.9 5c.1-.6.6-1.2 1.3-1.2Z/%3E%3C/svg%3E");
}
.footer-contact > a[href^="mailto:"]:hover,
.footer-contact > a[href^="tel:"]:hover {
  border-color: var(--accent-gold);
  background-color: rgba(184, 118, 63, 0.12);
}
/* When JS/template already built an icon row, stack plain links stay hidden */
.footer-contact:has(.footer-contact-icons) > a[href^="mailto:"],
.footer-contact:has(.footer-contact-icons) > a[href^="tel:"] {
  display: none !important;
}
/* Layout for real icon row (from template or JS) */
.footer-contact-icons {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  align-items: center;
  gap: 0.85rem;
}
.footer-contact .footer-social {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2.2rem;
  height: 2.2rem;
  border-radius: 50%;
  border: 1px solid rgba(230,217,194,0.3);
  color: var(--cream);
  text-decoration: none;
  transition: border-color 0.2s, color 0.2s;
}
.footer-contact .footer-social:hover {
  color: var(--accent-gold);
  border-color: var(--accent-gold);
}
/* Put plain mail/tel links in a horizontal row */
.footer-contact {
  text-align: center;
}
.footer-contact > a[href^="mailto:"],
.footer-contact > a[href^="tel:"] {
  /* keep as inline-flex so they sit side by side under the heading */
}



/* ===== Minimal footer + no white strip (v20) ===== */
/* Kill cream gap between last dark CTA and footer */
.cta-contact {
  margin-bottom: 0 !important;
  margin-top: clamp(64px, 8vw, 100px);
}
.site-footer {
  margin-top: 0 !important;
  padding: 2.25rem 1.25rem 2rem !important;
  background: var(--ink) !important;
  border-top: none !important;
}
/* Hide old footer chrome for cached HTML */
.site-footer .footer-social-row,
.site-footer .footer-links,
.site-footer .footer-grid h4,
.site-footer .footer-copy,
.site-footer .footer-top .footer-social-row {
  display: none !important;
}
.site-footer .footer-top {
  border-bottom: none !important;
  padding-bottom: 0 !important;
  margin-bottom: 0 !important;
  gap: 1rem !important;
}
.site-footer .footer-grid {
  display: flex !important;
  justify-content: center !important;
  grid-template-columns: none !important;
  max-width: none !important;
  padding: 1rem 0 0 !important;
  margin: 0 !important;
  border: none !important;
  gap: 0 !important;
}
.site-footer .footer-contact {
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  gap: 0.85rem !important;
  text-align: center !important;
}
/* Minimal layout (new template) */
.footer-minimal {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 1.25rem;
  text-align: center;
}
.footer-minimal .logo {
  margin: 0;
}
.footer-contact-icons {
  display: flex !important;
  flex-wrap: wrap;
  justify-content: center;
  align-items: center;
  gap: 0.9rem;
}
.site-footer .footer-social,
.footer-contact-icons .footer-social {
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  width: 2.35rem !important;
  height: 2.35rem !important;
  border-radius: 50% !important;
  border: 1px solid rgba(230,217,194,0.35) !important;
  color: var(--cream) !important;
  background: transparent !important;
  text-decoration: none !important;
  font-size: 0 !important;
  line-height: 0 !important;
  overflow: hidden;
}
.site-footer .footer-social:hover,
.footer-contact-icons .footer-social:hover {
  color: var(--accent-gold) !important;
  border-color: var(--accent-gold) !important;
}
/* Plain text email/phone → icon circles if still in HTML */
.footer-contact > a[href^="mailto:"],
.footer-contact > a[href^="tel:"] {
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  width: 2.35rem !important;
  height: 2.35rem !important;
  margin: 0 0.2rem;
  padding: 0 !important;
  border-radius: 50% !important;
  border: 1px solid rgba(230,217,194,0.35) !important;
  color: transparent !important;
  font-size: 0 !important;
  text-indent: -9999px;
  overflow: hidden;
  background-repeat: no-repeat;
  background-position: center;
  background-size: 18px 18px;
}
.footer-contact > a[href^="mailto:"] {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' viewBox='0 0 24 24' fill='none' stroke='%23fbf5ea' stroke-width='1.6'%3E%3Crect x='3' y='5' width='18' height='14' rx='2'/%3E%3Cpath d='m4 7 8 6 8-6'/%3E%3C/svg%3E");
}
.footer-contact > a[href^="tel:"] {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' viewBox='0 0 24 24' fill='none' stroke='%23fbf5ea' stroke-width='1.6'%3E%3Cpath d='M6.2 3.8h2.6l1.2 3.6-1.6 1.6a13 13 0 0 0 5.8 5.8l1.6-1.6 3.6 1.2v2.6c0 .7-.5 1.2-1.1 1.3A15.5 15.5 0 0 1 3.9 5c.1-.6.6-1.2 1.3-1.2Z'/%3E%3C/svg%3E");
}
.footer-contact:has(.footer-contact-icons) > a[href^="mailto:"],
.footer-contact:has(.footer-contact-icons) > a[href^="tel:"] {
  display: none !important;
}
/* When icon row exists inside contact, show only that */
.footer-contact:has(.footer-contact-icons) {
  gap: 0;
}


/* Footer: logo only — no icons under logo */
.site-footer .footer-contact-icons,
.site-footer .footer-social,
.site-footer a[href^="mailto:"],
.site-footer a[href^="tel:"],
.site-footer a[href*="wa.me"],
.footer-minimal .footer-contact-icons {
  display: none !important;
}


/* Hide CTA title "Задать вопрос..." */
.cta-contact > .wrap > .section-title,
.cta-contact .section-title {
  display: none !important;
}


/* ===== Brand-colored CTA contact icons (v23) ===== */
.cta-contact .cta-channels {
  gap: 0.85rem;
  justify-content: center;
  align-items: center;
  flex-wrap: wrap;
}
.cta-contact .cta-social {
  width: 2.85rem;
  height: 2.85rem;
  border: none;
  border-radius: 50%;
  color: #fff;
  box-shadow: 0 3px 12px rgba(0, 0, 0, 0.2);
  transition: transform 0.18s ease, box-shadow 0.18s ease, filter 0.18s ease;
}
.cta-contact .cta-social:hover {
  transform: translateY(-2px) scale(1.05);
  filter: brightness(1.06);
  box-shadow: 0 6px 16px rgba(0, 0, 0, 0.26);
  background: inherit;
  color: #fff;
}
.cta-contact .cta-social--whatsapp {
  background: #25D366;
  color: #fff;
}
.cta-contact .cta-social--phone {
  background: #34C759;
  color: #fff;
}
.cta-contact .cta-social--telegram {
  background: #2AABEE;
  color: #fff;
}
.cta-contact .cta-social--email {
  background: #EA4335;
  color: #fff;
}
.cta-contact .cta-brand-icon {
  display: block;
  width: 1.3rem;
  height: 1.3rem;
}
@media (min-width: 768px) {
  .cta-contact .cta-social {
    width: 3rem;
    height: 3rem;
  }
  .cta-contact .cta-brand-icon {
    width: 1.4rem;
    height: 1.4rem;
  }
}



/* ===== Logo after CTA icons, tighter spacing (v25) ===== */
.cta-contact {
  margin-bottom: 0 !important;
  padding-bottom: 2rem !important;
}
.cta-contact .wrap {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  gap: 0;
}
.cta-contact .lede {
  margin-bottom: 1.25rem !important;
}
.cta-contact .cta-channels {
  margin-bottom: 0;
}
/* Logo sits just under the icon row */
.cta-brand-logo {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin-top: 0.75rem; /* closer to icons */
  text-decoration: none;
  color: var(--cream, #fbf5ea);
}
.cta-brand-logo-img {
  display: block;
  height: 48px;
  width: auto;
  max-width: min(220px, 70vw);
  object-fit: contain;
  /* lighten dark-ink logos on dark CTA background if needed */
  /* keep readable on dark CTA */
  filter: brightness(0) invert(0.93);
  opacity: 0.95;
}
.cta-brand-logo-text {
  font-family: var(--font-display, Georgia, serif);
  font-style: italic;
  font-size: 1.35rem;
  color: var(--cream, #fbf5ea);
}
@media (min-width: 768px) {
  .cta-brand-logo {
    margin-top: 0.9rem;
  }
  .cta-brand-logo-img {
    height: 54px;
  }
}
/* Footer slim: no second logo, no cream gap */
.site-footer--slim,
.site-footer.site-footer--minimal {
  margin-top: 0 !important;
  padding: 0 !important;
  min-height: 0 !important;
  border: none !important;
  background: var(--ink) !important;
}
.site-footer--slim {
  height: env(safe-area-inset-bottom, 0px);
}



/* ===== Center brand logo under icons (v26) ===== */
.cta-contact .wrap.cta-contact-inner,
.cta-contact .wrap {
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  justify-content: center !important;
  text-align: center !important;
  width: 100% !important;
  margin-left: auto !important;
  margin-right: auto !important;
  box-sizing: border-box !important;
}
.cta-contact .cta-channels {
  display: flex !important;
  justify-content: center !important;
  align-items: center !important;
  width: 100% !important;
}
.cta-brand-logo-wrap {
  display: flex !important;
  justify-content: center !important;
  align-items: center !important;
  width: 100% !important;
  margin-top: 0.75rem;
  text-align: center !important;
}
.cta-brand-logo {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  margin: 0 auto !important;
  float: none !important;
  text-align: center !important;
}
.cta-brand-logo-img {
  display: block !important;
  margin: 0 auto !important;
  height: 48px;
  width: auto;
  max-width: min(220px, 70vw);
  object-fit: contain;
  filter: brightness(0) invert(0.93);
  opacity: 0.95;
}
@media (min-width: 768px) {
  .cta-brand-logo-wrap { margin-top: 0.9rem; }
  .cta-brand-logo-img { height: 54px; }
}



/* ===== All public headings centered (v27) ===== */
.section-title,
.title,
.intro-title,
.page-hero h1,
.hero h1,
.band-promo h2,
.cta-contact .section-title,
.detail-section h3,
.detail-section--about h3,
.amenity-group-title,
.service-card h3,
.rule-card h3,
.faq-item summary,
main h1,
main h2,
main h3.title {
  text-align: center !important;
  margin-left: auto !important;
  margin-right: auto !important;
}

/* Keep readable measure but centered */
.section-title,
.title,
.intro-title,
.page-hero h1 {
  max-width: min(28ch, 100%);
}

.hero h1 {
  max-width: min(22ch, 100%);
}

.page-hero,
.page-hero .wrap,
.intro-wrap,
.section > .wrap,
.apartments-section > .wrap {
  text-align: center;
}

/* Subtitles / ledes under headings also centered for balance */
.section > .wrap > .lede,
.apartments-section .lede,
.page-hero .lede,
.intro-body,
.location-block .lede,
.cta-contact .lede {
  text-align: center !important;
  margin-left: auto !important;
  margin-right: auto !important;
}

/* Service cards: center title text inside each card */
.service-card {
  text-align: center;
}
.service-card h3,
.service-card p {
  text-align: center;
  margin-left: auto;
  margin-right: auto;
}

/* FAQ: center the question row content */
.faq-item summary {
  justify-content: center;
  text-align: center;
}
.faq-body {
  text-align: center;
  margin-left: auto;
  margin-right: auto;
  padding-left: 0 !important;
  padding-right: 0 !important;
}

/* Rules cards already grid; center titles inside */
.rule-card {
  text-align: center;
}
.rule-card h3,
.rule-card p {
  text-align: center;
}

/* Apartment detail headings */
.detail-section h3,
.detail-subsection h4 {
  text-align: center !important;
}
.detail-section--about,
.detail-rich-text {
  text-align: center;
}
.detail-rich-text p {
  text-align: center;
  margin-left: auto;
  margin-right: auto;
}

/* Location block title path */
.location-block .section-title,
.location-block h2 {
  text-align: center !important;
  margin-left: auto !important;
  margin-right: auto !important;
}



/* ===== Services: each item full-width row (v28) ===== */
.service-grid {
  display: flex !important;
  flex-direction: column !important;
  grid-template-columns: none !important;
  gap: 1.35rem !important;
  max-width: min(36rem, 100%);
  margin-left: auto !important;
  margin-right: auto !important;
  width: 100%;
}

.service-card {
  display: flex !important;
  flex-direction: row !important;
  align-items: flex-start !important;
  gap: 1rem 1.15rem !important;
  text-align: left !important;
  padding: 0 !important;
  width: 100%;
  box-sizing: border-box;
}

.service-card:nth-child(even) {
  padding-left: 0 !important;
}

.service-card .service-icon,
.service-card .service-num {
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 1.75rem;
  min-width: 1.75rem;
  margin-top: 0.2rem;
  color: var(--ink);
  line-height: 1;
}

.service-card .service-icon svg {
  width: 1.35rem;
  height: 1.35rem;
  display: block;
}

.service-card > div {
  flex: 1 1 auto;
  min-width: 0;
  text-align: left !important;
}

.service-card h3 {
  text-align: left !important;
  margin: 0 0 0.35rem !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
  max-width: none !important;
  font-size: clamp(1.05rem, 2vw, 1.25rem);
  line-height: 1.3;
}

.service-card p {
  text-align: left !important;
  margin: 0 !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
  max-width: none !important;
  font-size: 0.95rem;
  line-height: 1.5;
  color: var(--muted);
}



/* ===== FAQ section block centered (v30) ===== */
#faq.section > .wrap {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
}

#faq .section-title {
  text-align: center !important;
  margin-left: auto !important;
  margin-right: auto !important;
}

#faq .faq-list {
  width: 100%;
  max-width: min(40rem, 100%);
  margin-left: auto !important;
  margin-right: auto !important;
  text-align: center;
  border-top: 1px solid var(--border);
}

#faq .faq-item summary {
  display: flex;
  justify-content: center;
  align-items: baseline;
  gap: 0.75rem;
  text-align: center;
}

#faq .faq-item summary > span:last-child {
  text-align: center;
}

#faq .faq-body {
  text-align: center !important;
  margin-left: auto !important;
  margin-right: auto !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
  max-width: 36rem;
}

#faq .faq-body p {
  text-align: center;
}



/* ===== Apartment hero: rating + book under location, centered (v31) ===== */
.page-hero--apt .page-hero-apt,
.page-hero.page-hero--apt .wrap {
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  text-align: center !important;
}

.page-hero--apt .hero-kicker,
.page-hero--apt h1,
.page-hero--apt .page-hero-location,
.page-hero--apt .lede {
  text-align: center !important;
  margin-left: auto !important;
  margin-right: auto !important;
}

.page-hero--apt .detail-rating-row,
.detail-rating-row--center {
  display: flex !important;
  justify-content: center !important;
  align-items: center !important;
  gap: 0.35rem !important;
  width: 100% !important;
  margin-top: 0.85rem !important;
  margin-left: auto !important;
  margin-right: auto !important;
  text-align: center !important;
}

.page-hero-book {
  display: flex;
  justify-content: center;
  width: 100%;
  margin-top: 1.25rem;
  margin-bottom: 0.25rem;
}

.btn-book-cta--hero {
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  width: auto !important;
  min-width: min(320px, 88vw);
  max-width: 100%;
  height: 3.15rem;
  padding: 0 1.75rem !important;
  margin-top: 0 !important;
}

/* Sidebar: price only, no giant empty book card taking half the gallery row */
.detail-sidebar--compact {
  display: none !important;
}

/* Gallery full width when sidebar hidden */
.detail-layout {
  grid-template-columns: 1fr !important;
}



/* ============================================================
   Airbnb-style apartment detail (v32)
   Centered column, soft cards, easy reading
   ============================================================ */

/* Hero already centered — polish spacing */
.page-hero--apt {
  padding-bottom: 0.5rem;
}
.page-hero--apt .page-hero-apt {
  max-width: 48rem;
  margin: 0 auto;
  gap: 0;
}
.page-hero--apt h1 {
  font-size: clamp(1.85rem, 4.5vw, 2.75rem) !important;
  line-height: 1.15 !important;
  letter-spacing: -0.01em;
  max-width: 22ch !important;
}
.page-hero--apt .page-hero-location {
  font-size: 1rem !important;
  color: var(--muted) !important;
  margin-top: 0.65rem !important;
  margin-bottom: 0 !important;
}
.page-hero--apt .detail-rating-row--center {
  margin-top: 0.75rem !important;
  font-size: 0.95rem;
  color: var(--ink);
}
.page-hero--apt .detail-rating {
  font-weight: 600;
}
.page-hero-book {
  margin-top: 1.35rem !important;
}
.btn-book-cta--hero {
  min-width: min(280px, 90vw) !important;
  height: 3rem !important;
  border-radius: 10px !important;
  font-size: 1rem !important;
  font-weight: 600 !important;
  letter-spacing: 0.01em;
}

/* Main shell */
.section--apt-detail {
  padding-top: 1.25rem !important;
  padding-bottom: 3rem;
}
.section--apt-detail > .wrap.apt-detail,
.wrap.apt-detail {
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  gap: 2rem;
  max-width: 1120px;
}

/* Gallery — Airbnb mosaic, full width of column */
.apt-detail .detail-gallery {
  width: 100%;
  position: relative;
  border-radius: 16px;
  overflow: hidden;
}
.apt-detail .detail-gallery-grid {
  height: clamp(260px, 42vw, 480px) !important;
  gap: 8px !important;
  border-radius: 16px;
  overflow: hidden;
}
@media (max-width: 699px) {
  .apt-detail .detail-gallery-grid {
    height: min(68vw, 320px) !important;
    border-radius: 12px;
  }
}
.gallery-show-all {
  border-radius: 8px !important;
  font-weight: 600 !important;
  box-shadow: 0 2px 8px rgba(0,0,0,0.15) !important;
}

/* Content body — readable centered measure */
.apt-detail-body.detail-main,
.apt-detail .detail-main {
  width: 100% !important;
  max-width: 40rem !important;
  margin: 0 auto !important;
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 0;
  grid-column: auto !important;
}

/* Hide leftover sidebar if any */
.apt-detail .detail-sidebar,
.detail-sidebar--compact {
  display: none !important;
}
.apt-detail.detail-layout,
.detail-layout {
  display: flex !important;
  flex-direction: column !important;
  grid-template-columns: none !important;
  gap: 2rem !important;
}

/* Facts chips — Airbnb highlight strip */
.detail-facts--chips,
.detail-facts {
  list-style: none;
  display: flex !important;
  flex-wrap: wrap;
  justify-content: center;
  align-items: center;
  gap: 0.5rem 0.35rem;
  margin: 0 0 1.75rem !important;
  padding: 1rem 1.15rem !important;
  border: 1px solid var(--border);
  border-radius: 16px;
  background: var(--cream);
  max-width: 100%;
}
.detail-facts li {
  display: inline-flex !important;
  align-items: center;
  gap: 0.35rem;
  padding: 0.35rem 0.75rem !important;
  border: none !important;
  border-bottom: none !important;
  justify-content: center !important;
  font-size: 0.92rem;
  background: #fff;
  border-radius: 999px !important;
  border: 1px solid var(--border) !important;
  white-space: nowrap;
}
.detail-facts li span {
  color: var(--muted);
  font-weight: 500;
}
.detail-facts li strong {
  font-weight: 700;
  color: var(--ink);
}

/* Soft cards for every content block */
.apt-detail .detail-section {
  margin-top: 0 !important;
  margin-bottom: 1.25rem;
  padding: 1.5rem 1.35rem 1.4rem;
  background: #fff;
  border: 1px solid var(--border);
  border-radius: 20px;
  box-shadow: 0 1px 2px rgba(44, 33, 23, 0.04);
  text-align: center;
}

.apt-detail .detail-section h3 {
  font-family: var(--font-display) !important;
  font-weight: 400 !important;
  font-size: clamp(1.35rem, 2.5vw, 1.65rem) !important;
  border-bottom: none !important;
  padding-bottom: 0 !important;
  margin: 0 0 1rem !important;
  text-align: center !important;
  color: var(--ink);
}

/* About card — slightly softer */
.apt-detail .detail-section--about {
  background: var(--cream) !important;
  border: 1px solid var(--border) !important;
  border-radius: 20px !important;
  padding: 1.6rem 1.4rem 1.5rem !important;
}

.apt-detail .detail-rich-text,
.apt-detail .lede.detail-rich-text {
  max-width: 36rem;
  margin-left: auto !important;
  margin-right: auto !important;
  text-align: left !important; /* easier long-read, Airbnb style */
  font-size: 1rem !important;
  line-height: 1.7 !important;
  color: var(--ink-soft, var(--ink));
}
.apt-detail .detail-rich-text p {
  text-align: left !important;
  margin: 0 0 0.95rem !important;
  line-height: 1.7 !important;
}
.apt-detail .detail-rich-text p:last-child {
  margin-bottom: 0 !important;
}

.apt-detail .detail-subsection {
  margin-top: 1.35rem;
  padding-top: 1.15rem;
  border-top: 1px solid var(--border);
  text-align: left;
  max-width: 36rem;
  margin-left: auto;
  margin-right: auto;
}
.apt-detail .detail-subsection h4 {
  text-align: left !important;
  font-size: 1rem !important;
  font-weight: 700 !important;
  margin: 0 0 0.5rem !important;
  font-family: var(--font) !important;
}

/* Amenities */
.apt-detail .amenity-list {
  display: grid !important;
  grid-template-columns: 1fr !important;
  gap: 0.85rem 1.25rem !important;
  max-width: 28rem;
  margin: 0 auto;
  text-align: left;
}
@media (min-width: 520px) {
  .apt-detail .amenity-list {
    grid-template-columns: 1fr 1fr !important;
    max-width: 100%;
  }
}
.apt-detail .amenity-row {
  display: flex;
  align-items: center;
  gap: 0.85rem;
  padding: 0.55rem 0.65rem;
  border-radius: 12px;
  transition: background 0.15s ease;
}
.apt-detail .amenity-row:hover {
  background: var(--cream);
}
.apt-detail .amenity-icon {
  flex: none;
  width: 1.5rem;
  display: flex;
  justify-content: center;
  color: var(--ink);
}
.apt-detail .amenity-name {
  font-size: 0.95rem;
  line-height: 1.35;
  text-align: left;
}
.apt-detail .amenity-group-title {
  text-align: center !important;
  margin: 1.25rem 0 0.75rem !important;
  font-size: 1.1rem !important;
}
.apt-detail .btn-show-all-amenities {
  display: inline-flex;
  margin: 1.15rem auto 0;
  padding: 0.8rem 1.4rem;
  border-radius: 10px;
  border: 1px solid var(--ink);
  background: #fff;
  font-weight: 600;
  font-size: 0.9rem;
  cursor: pointer;
}
.apt-detail .btn-show-all-amenities:hover {
  background: var(--cream);
}
.apt-detail .detail-section:has(.btn-show-all-amenities),
.apt-detail .detail-section:has(.amenity-list) {
  text-align: center;
}

/* Calendar */
.apt-detail #availability {
  max-width: 22rem;
  margin: 0 auto;
}
.apt-detail .calendar-total-price {
  max-width: 22rem;
  margin: 1rem auto 0;
  border-radius: 12px;
}

/* Location */
.apt-detail .detail-section--location .lede {
  text-align: center !important;
  max-width: 32rem;
  margin: 0 auto 1rem !important;
  color: var(--muted);
}
.apt-detail .detail-map--large {
  height: clamp(240px, 40vw, 360px) !important;
  border-radius: 16px !important;
  border: 1px solid var(--border) !important;
  overflow: hidden;
  margin-top: 0.5rem !important;
}

/* Video */
.apt-detail .detail-video,
.apt-detail .detail-video-file {
  border-radius: 16px !important;
  overflow: hidden;
  border: 1px solid var(--border);
}

/* Mobile book bar — Airbnb-like */
.mobile-book-bar {
  border-radius: 0 !important;
  padding: 0.75rem 1rem calc(0.75rem + env(safe-area-inset-bottom, 0px)) !important;
}
.mobile-book-bar .btn-book-cta--mobile {
  border-radius: 10px !important;
  height: 2.75rem !important;
}

/* Desktop: slightly wider content breathing room */
@media (min-width: 900px) {
  .apt-detail .detail-section {
    padding: 1.75rem 1.75rem 1.6rem;
  }
  .page-hero--apt {
    margin-bottom: 0.5rem;
  }
}



/* ===== Airbnb overview + Guest Favorite bar (v33) ===== */
.airbnb-overview {
  width: 100%;
  max-width: 40rem;
  margin: 0 auto 1.5rem;
  text-align: left;
  padding: 0 0.15rem;
}
.airbnb-overview-title {
  font-family: var(--font) !important;
  font-size: clamp(1.25rem, 2.5vw, 1.5rem) !important;
  font-weight: 600 !important;
  line-height: 1.3 !important;
  margin: 0 0 0.4rem !important;
  text-align: left !important;
  color: var(--ink);
  border: none !important;
  padding: 0 !important;
}
.airbnb-overview-meta {
  margin: 0 0 1.15rem;
  font-size: 0.95rem;
  color: var(--muted);
  line-height: 1.45;
}

/* —— Guest favorite badge (Airbnb-style, mobile-first) —— */
.airbnb-guest-favorite {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 1rem;
  padding: 1.15rem 1.2rem 1.2rem;
  border: 1px solid rgba(0,0,0,0.12);
  border-radius: 16px;
  background: #fff;
  box-shadow: 0 1px 3px rgba(0,0,0,0.04);
  margin: 0.85rem 0 1.15rem;
}
.airbnb-guest-favorite--simple {
  flex-direction: row;
  align-items: center;
  justify-content: center;
  gap: 1.25rem;
  max-width: 18rem;
  margin-left: auto;
  margin-right: auto;
  padding: 0.95rem 1.25rem;
}

.gf-head {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  gap: 0.55rem;
}
.gf-badge-row {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.4rem;
}
.gf-laurel {
  color: var(--ink, #2c2117);
  flex-shrink: 0;
  display: block;
}
.gf-laurel--flip {
  transform: scaleX(-1);
}
.gf-badge-text {
  font-size: 0.95rem;
  font-weight: 700;
  line-height: 1.2;
  letter-spacing: -0.01em;
  color: var(--ink, #2c2117);
  white-space: nowrap;
  max-width: none;
}
.gf-copy {
  margin: 0;
  max-width: 22rem;
  font-size: 0.9rem;
  font-weight: 500;
  line-height: 1.4;
  color: var(--ink-soft, #4a3c2c);
}

.gf-stats {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 1.35rem;
  padding-top: 0.15rem;
}
.gf-col--rating,
.gf-col--reviews {
  text-align: center;
  min-width: 4.5rem;
  text-decoration: none;
  color: inherit;
}
.gf-score,
.gf-review-n {
  font-size: 1.4rem;
  font-weight: 700;
  line-height: 1.1;
  letter-spacing: -0.02em;
  color: var(--ink, #2c2117);
}
.gf-stars {
  display: flex;
  justify-content: center;
  gap: 1px;
  margin-top: 0.25rem;
  color: var(--ink, #2c2117);
}
.gf-divider {
  width: 1px;
  height: 2.6rem;
  background: rgba(0,0,0,0.12);
  flex-shrink: 0;
}
.gf-review-l {
  font-size: 0.8rem;
  margin-top: 0.2rem;
  color: var(--ink, #2c2117);
  text-decoration: underline;
  text-underline-offset: 2px;
  text-decoration-thickness: 1px;
}

/* Desktop: badge + copy left, stats right — one row */
@media (min-width: 700px) {
  .airbnb-guest-favorite:not(.airbnb-guest-favorite--simple) {
    flex-direction: row;
    align-items: center;
    justify-content: space-between;
    gap: 1.5rem;
    padding: 1.15rem 1.5rem;
  }
  .gf-head {
    flex-direction: row;
    align-items: center;
    text-align: left;
    gap: 1.1rem;
    flex: 1;
    min-width: 0;
  }
  .gf-copy {
    text-align: left;
    max-width: 16rem;
    font-size: 0.92rem;
  }
  .gf-stats {
    flex-shrink: 0;
    padding-top: 0;
  }
  .gf-badge-text {
    font-size: 1rem;
  }
}

/* Legacy class hooks (no-op / safe) */
.gf-col--badge { display: contents; }
.gf-col--copy { display: contents; }
.gf-col--copy p { margin: 0; }

/* ===== Airbnb reviews widget under location (v34) ===== */
.detail-section--reviews {
  text-align: center;
}
.detail-section--reviews h3 {
  margin-bottom: 0.5rem !important;
}
.reviews-summary {
  display: flex;
  justify-content: center;
  align-items: baseline;
  gap: 0.4rem;
  margin: 0 auto 1.25rem;
  font-size: 1rem;
  color: var(--ink);
}
.reviews-summary-score {
  font-weight: 700;
  font-size: 1.15rem;
}
.reviews-summary-count {
  color: var(--muted);
  font-weight: 500;
}

.airbnb-reviews-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1rem;
  text-align: left;
  max-width: 40rem;
  margin: 0 auto;
}
@media (min-width: 700px) {
  .airbnb-reviews-grid {
    grid-template-columns: 1fr 1fr;
    max-width: 100%;
    gap: 1.15rem;
  }
}

.airbnb-review-card {
  background: var(--cream, #fbf5ea);
  border: 1px solid var(--border);
  border-radius: 16px;
  padding: 1.1rem 1.15rem 1.15rem;
  box-shadow: 0 1px 2px rgba(44, 33, 23, 0.04);
  display: flex;
  flex-direction: column;
  gap: 0.45rem;
  min-height: 100%;
}

.airbnb-review-head {
  display: flex;
  align-items: center;
  gap: 0.75rem;
}
.airbnb-review-avatar {
  width: 48px;
  height: 48px;
  border-radius: 50%;
  object-fit: cover;
  flex: none;
  background: #e8dfd2;
}
.airbnb-review-avatar--placeholder {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-weight: 700;
  color: var(--ink);
  background: #e8dfd2;
}
.airbnb-review-name {
  font-weight: 700;
  font-size: 0.98rem;
  color: var(--ink);
  line-height: 1.25;
}
.airbnb-review-date {
  font-size: 0.85rem;
  color: var(--muted);
  margin-top: 0.1rem;
}
.airbnb-review-stars {
  font-size: 0.75rem;
  letter-spacing: 0.05em;
  color: var(--ink);
  line-height: 1;
}
.airbnb-review-text {
  margin: 0.15rem 0 0;
  font-size: 0.95rem;
  line-height: 1.55;
  color: var(--ink-soft, var(--ink));
  /* full text by default; JS may clamp long ones with .is-clamped */
}

.reviews-more {
  margin: 1.25rem 0 0;
  text-align: center;
}
.reviews-more a {
  font-weight: 600;
  font-size: 0.95rem;
  color: var(--ink);
  text-decoration: underline;
  text-underline-offset: 3px;
}
.reviews-more a:hover {
  opacity: 0.7;
}



/* ===== Full reviews on-site (v35) ===== */
.airbnb-review-text {
  display: block !important;
  -webkit-line-clamp: unset !important;
  line-clamp: unset !important;
  overflow: visible !important;
  white-space: pre-wrap;
  word-break: break-word;
}
.airbnb-review-text.is-clamped {
  display: -webkit-box !important;
  -webkit-line-clamp: 5 !important;
  line-clamp: 5 !important;
  -webkit-box-orient: vertical;
  overflow: hidden !important;
  white-space: normal;
}
.review-text-toggle {
  margin-top: 0.35rem;
  padding: 0;
  border: 0;
  background: none;
  font: inherit;
  font-weight: 700;
  font-size: 0.9rem;
  color: var(--ink);
  text-decoration: underline;
  text-underline-offset: 2px;
  cursor: pointer;
}
.review-text-toggle:hover {
  opacity: 0.7;
}
.btn-show-all-reviews {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin: 0.25rem auto 0;
  padding: 0.85rem 1.5rem;
  border-radius: 10px;
  border: 1px solid var(--ink);
  background: #fff;
  font-weight: 700;
  font-size: 0.95rem;
  cursor: pointer;
  color: var(--ink);
}
.btn-show-all-reviews:hover {
  background: var(--cream);
}
.airbnb-review-card--extra[hidden] {
  display: none !important;
}



/* ===== Contact page: brand icons like homepage CTA (v36) ===== */
.page-hero--contact .wrap {
  text-align: center;
}
.section--contact-icons {
  padding-bottom: 4rem;
}
.contact-icons-board {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  max-width: 36rem;
  margin: 0 auto;
  padding: 1rem 0 2rem;
}
.contact-channels.cta-channels {
  display: flex !important;
  flex-wrap: wrap;
  justify-content: center;
  align-items: center;
  gap: 1rem !important;
}
/* Reuse brand button colors; slightly larger on light contact page */
.contact-channels .cta-social {
  width: 3.1rem !important;
  height: 3.1rem !important;
  border: none !important;
  border-radius: 50% !important;
  color: #fff !important;
  box-shadow: 0 4px 14px rgba(0, 0, 0, 0.14);
  transition: transform 0.18s ease, box-shadow 0.18s ease, filter 0.18s ease;
}
.contact-channels .cta-social:hover {
  transform: translateY(-2px) scale(1.05);
  filter: brightness(1.05);
  box-shadow: 0 8px 18px rgba(0, 0, 0, 0.18);
  background: inherit !important;
  color: #fff !important;
}
.contact-channels .cta-social--whatsapp { background: #25D366 !important; }
.contact-channels .cta-social--phone { background: #34C759 !important; }
.contact-channels .cta-social--telegram { background: #2AABEE !important; }
.contact-channels .cta-social--email { background: #EA4335 !important; }
.contact-channels .cta-social--instagram {
  background: radial-gradient(circle at 30% 107%, #fdf497 0%, #fdf497 5%, #fd5949 45%, #d6249f 60%, #285AEB 90%) !important;
}
.contact-channels .cta-brand-icon {
  width: 1.45rem !important;
  height: 1.45rem !important;
  display: block;
}
@media (min-width: 768px) {
  .contact-channels .cta-social {
    width: 3.35rem !important;
    height: 3.35rem !important;
  }
  .contact-channels .cta-brand-icon {
    width: 1.55rem !important;
    height: 1.55rem !important;
  }
}



/* ===== Rating under title on apartment cards (v37) ===== */
.apt-card-body {
  text-align: center;
}
.apt-card-body h3 {
  margin: 0 0 0.35rem !important;
  text-align: center;
}
.apt-rating--under-title {
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  gap: 0.3rem;
  width: 100%;
  margin: 0 0 0.45rem;
  font-size: 0.9rem;
  font-weight: 600;
  color: var(--ink);
  white-space: nowrap;
}
.apt-rating--under-title .apt-star {
  color: var(--accent-gold, #b8763f);
  flex: none;
}
.apt-rating--under-title .apt-review-count {
  color: var(--muted);
  font-weight: 500;
}
.apt-card-body .apt-city,
.apt-card-body .apt-stats,
.apt-card-body .apt-price {
  text-align: center;
}
/* kill old side-by-side title row if leftover */
.apt-card-top {
  display: block;
}



/* ===== Why us section (v38) ===== */
.why-us-section .why-us-lede {
  text-align: center !important;
  max-width: 36rem;
  margin: 0 auto 1.75rem !important;
}
.why-us-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1rem;
  max-width: 52rem;
  margin: 0 auto;
}
@media (min-width: 700px) {
  .why-us-grid {
    grid-template-columns: 1fr 1fr;
    gap: 1.15rem 1.25rem;
  }
}
.why-us-card {
  background: var(--cream, #fbf5ea);
  border: 1px solid var(--border);
  border-radius: 18px;
  padding: 1.35rem 1.25rem 1.3rem;
  text-align: center;
  box-shadow: 0 1px 2px rgba(44, 33, 23, 0.04);
}
.why-us-num {
  font-size: 0.8rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  color: var(--accent-gold, #b8763f);
  margin-bottom: 0.55rem;
}
.why-us-card h3 {
  font-family: var(--font-display), Georgia, serif;
  font-weight: 400;
  font-size: clamp(1.2rem, 2vw, 1.4rem);
  margin: 0 0 0.5rem;
  color: var(--ink);
  text-align: center !important;
}
.why-us-card p {
  margin: 0 auto;
  max-width: 28rem;
  font-size: 0.95rem;
  line-height: 1.55;
  color: var(--muted);
  text-align: center;
}


/* Hero kicker removed from default copy; hide if empty */
.hero-kicker:empty { display: none; }


/* —— v40: languages centered under logo (final overrides) —— */
.header-brand {
  grid-column: 2 !important;
  justify-self: center !important;
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 1px;
}
.header-brand .logo,
.header-brand .logo--center {
  max-height: var(--logo-h);
}
.header-brand .logo-img {
  height: var(--logo-h);
  max-height: var(--logo-h);
}
.lang-switch--header {
  display: flex !important;
  justify-content: center;
  align-items: center;
  gap: 0.1rem;
  margin: 0;
  line-height: 1;
}
.lang-switch--header button {
  color: rgba(251, 245, 234, 0.55);
  font-size: 0.62rem;
  letter-spacing: 0.08em;
  padding: 0.1rem 0.32rem;
  min-height: 1.35rem;
  min-width: auto;
}
.lang-switch--header button.active {
  color: var(--accent-gold);
  font-weight: 700;
}
.lang-switch.lang-switch--mobile,
.nav-desktop--right {
  display: none !important;
}
.header-right {
  grid-column: 3 !important;
  justify-self: end !important;
}
@media (min-width: 768px) {
  .lang-switch--header button {
    font-size: 0.68rem;
    padding: 0.15rem 0.4rem;
  }
  .header-brand { gap: 3px; }
}

.nav-desktop.nav-desktop--left { margin-left: 0; }


/* —— v41: desktop langs on the right (as before); under-logo only on mobile —— */
.lang-switch--desktop {
  display: none;
  gap: 0.4rem;
  align-items: center;
  margin: 0;
}
.lang-switch--desktop button {
  color: rgba(251, 245, 234, 0.65);
  font-size: 0.7rem;
  letter-spacing: 0.05em;
  padding: 0.2rem 0.35rem;
  min-height: 2rem;
  min-width: 2rem;
}
.lang-switch--desktop button.active {
  color: var(--accent-gold);
  font-weight: 700;
}

/* Mobile / tablet: langs under logo, no right-side lang row */
@media (max-width: 1023px) {
  .lang-switch--header {
    display: flex !important;
  }
  .lang-switch--desktop {
    display: none !important;
  }
}

/* Computer: langs back to the right; logo alone in the center */
@media (min-width: 1024px) {
  :root {
    --header-h: 96px;
    --logo-h: 56px;
  }
  .header-inner {
    padding: 0 var(--pad-x);
  }
  .header-brand {
    gap: 0 !important;
  }
  .lang-switch--header {
    display: none !important;
  }
  .lang-switch--desktop {
    display: flex !important;
  }
  .header-right {
    display: flex !important;
    align-items: center;
    justify-content: flex-end;
    gap: 1.25rem;
    min-width: 0;
  }
  .nav-toggle {
    display: none !important;
  }
  .nav-desktop.nav-desktop--left {
    display: flex !important;
  }
}

@media (min-width: 1200px) {
  :root {
    --header-h: 96px;
    --logo-h: 56px;
  }
}


/* —— Apartment card video preview —— */
.apt-card-media--video {
  cursor: pointer;
}
.apt-card-media .apt-card-video,
.apt-card-media .apt-card-poster {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.5s ease;
}
.apt-card:hover .apt-card-media .apt-card-video,
.apt-card:hover .apt-card-media .apt-card-poster {
  transform: scale(1.03);
}
.apt-video-badge {
  position: absolute;
  left: 12px;
  bottom: 12px;
  z-index: 3;
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  padding: 0.35rem 0.65rem;
  border-radius: 999px;
  background: rgba(20, 15, 10, 0.72);
  color: #fbf5ea;
  font-size: 0.72rem;
  font-weight: 600;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  backdrop-filter: blur(6px);
  -webkit-backdrop-filter: blur(6px);
  pointer-events: none;
}
.apt-video-badge svg {
  display: block;
  flex-shrink: 0;
}
.apt-card-media--video::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(to top, rgba(0,0,0,0.28) 0%, transparent 45%);
  pointer-events: none;
  z-index: 1;
}
.apt-card-media--video .apt-heart {
  z-index: 3;
}
.detail-section#apt-video {
  scroll-margin-top: calc(var(--header-total, 80px) + 1rem);
}


/* —— Digital neighborhood guide —— */
.detail-section--guide {
  margin-top: 2.5rem;
  padding-top: 0.5rem;
}
.guide-head {
  text-align: center;
  max-width: 40rem;
  margin: 0 auto 1.75rem;
}
.guide-kicker {
  font-size: 0.72rem;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--accent-gold);
  margin: 0 0 0.6rem;
  font-weight: 600;
}
.detail-section--guide h3 {
  font-family: var(--font-display);
  font-size: clamp(1.75rem, 3.5vw, 2.35rem);
  font-weight: 400;
  font-style: italic;
  margin: 0 0 0.75rem;
  text-align: center;
}
.guide-intro {
  color: var(--ink-soft);
  line-height: 1.55;
  margin: 0;
  font-size: 1.02rem;
}
.guide-map-wrap {
  margin: 0 0 1.5rem;
}
.guide-map {
  width: 100%;
  height: min(360px, 55vw);
  min-height: 260px;
  border-radius: 18px;
  overflow: hidden;
  border: 1px solid var(--border);
  background: #e8e0d4;
  z-index: 1;
}
.guide-map-hint {
  font-size: 0.8rem;
  margin: 0.5rem 0 0;
  text-align: center;
}
.guide-filters {
  display: flex;
  flex-wrap: wrap;
  gap: 0.45rem;
  justify-content: center;
  margin: 0 0 1.35rem;
}
.guide-filter {
  border: 1px solid var(--border);
  background: rgba(255,255,255,0.45);
  color: var(--ink-soft);
  border-radius: 999px;
  padding: 0.45rem 0.9rem;
  font: inherit;
  font-size: 0.85rem;
  cursor: pointer;
  transition: background 0.2s, border-color 0.2s, color 0.2s;
}
.guide-filter:hover { border-color: var(--accent-gold); color: var(--ink); }
.guide-filter.is-active {
  background: var(--ink);
  border-color: var(--ink);
  color: var(--cream);
}
.guide-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1rem;
}
@media (min-width: 640px) {
  .guide-grid { grid-template-columns: 1fr 1fr; }
}
@media (min-width: 1024px) {
  .guide-grid { grid-template-columns: 1fr 1fr 1fr; gap: 1.15rem; }
}
.guide-card {
  background: rgba(255,255,255,0.55);
  border: 1px solid var(--border);
  border-radius: 18px;
  padding: 1.15rem 1.2rem 1.25rem;
  display: flex;
  flex-direction: column;
  gap: 0.55rem;
  min-height: 100%;
  box-shadow: 0 8px 28px rgba(44, 33, 23, 0.04);
}
.guide-card--favorite {
  border-color: rgba(184, 118, 63, 0.45);
  background: linear-gradient(165deg, rgba(251,245,234,0.95), rgba(255,255,255,0.7));
  box-shadow: 0 10px 32px rgba(184, 118, 63, 0.08);
}
.guide-card-top {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 0.5rem;
}
.guide-cat {
  font-size: 0.78rem;
  color: var(--muted);
  font-weight: 600;
}
.guide-walk {
  font-size: 0.75rem;
  color: var(--accent-gold);
  font-weight: 600;
  white-space: nowrap;
}
.guide-name {
  font-family: var(--font-display);
  font-size: 1.35rem;
  font-weight: 500;
  font-style: italic;
  margin: 0;
  line-height: 1.2;
  color: var(--ink);
}
.guide-desc {
  margin: 0;
  color: var(--ink-soft);
  font-size: 0.95rem;
  line-height: 1.45;
}
.guide-personal {
  margin: 0.15rem 0 0;
  padding: 0.75rem 0.9rem;
  border-left: 3px solid var(--accent-gold);
  background: rgba(184, 118, 63, 0.08);
  border-radius: 0 12px 12px 0;
  font-size: 0.92rem;
  line-height: 1.45;
  color: var(--ink);
  font-style: italic;
}
.guide-personal-label {
  display: block;
  font-style: normal;
  font-size: 0.68rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--accent-gold);
  font-weight: 700;
  margin-bottom: 0.3rem;
}
.guide-address {
  margin: 0;
  font-size: 0.82rem;
  color: var(--muted);
}
.guide-maps-btn {
  margin-top: auto;
  align-self: flex-start;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0.5rem 0.95rem;
  border-radius: 999px;
  background: var(--ink);
  color: var(--cream) !important;
  font-size: 0.82rem;
  font-weight: 600;
  text-decoration: none !important;
  transition: opacity 0.2s;
}
.guide-maps-btn:hover { opacity: 0.82; }
#neighborhood-guide {
  scroll-margin-top: calc(var(--header-total, 80px) + 1rem);
}


/* —— Клуб Mercuriali / loyalty —— */
.club-section {
  text-align: center;
}
.club-kicker {
  font-size: 0.72rem;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--accent-gold);
  font-weight: 600;
  margin: 0 0 0.65rem;
}
.club-lede {
  max-width: 38rem;
  margin-left: auto;
  margin-right: auto;
}
.club-tiers {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1.1rem;
  margin: 2rem auto 1.75rem;
  max-width: 64rem;
  text-align: left;
}
@media (min-width: 700px) {
  .club-tiers { grid-template-columns: repeat(3, 1fr); }
}
.club-tier {
  position: relative;
  border: 1px solid var(--border);
  border-radius: 20px;
  padding: 1.5rem 1.35rem 1.4rem;
  background: rgba(255,255,255,0.5);
  box-shadow: 0 12px 36px rgba(44, 33, 23, 0.05);
  display: flex;
  flex-direction: column;
  gap: 0.45rem;
  min-height: 100%;
}
.club-tier--circle {
  border-color: rgba(184, 118, 63, 0.35);
}
.club-tier--gold {
  background: linear-gradient(165deg, rgba(251,245,234,0.98), rgba(255,255,255,0.75));
  border-color: rgba(184, 118, 63, 0.55);
  box-shadow: 0 14px 40px rgba(184, 118, 63, 0.12);
}
.club-tier--inner {
  background: linear-gradient(165deg, #2c2117, #3d3124);
  border-color: #2c2117;
  color: var(--cream);
}
.club-tier--inner .club-tier-when,
.club-tier--inner .club-tier-perks { color: rgba(251,245,234,0.72); }
.club-tier--inner .club-tier-name { color: var(--cream); }
.club-tier--inner .club-tier-discount { color: #e0b57a; }
.club-tier-badge {
  font-size: 1.5rem;
  line-height: 1;
  color: var(--accent-gold);
  margin-bottom: 0.25rem;
}
.club-tier-when {
  margin: 0;
  font-size: 0.78rem;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--muted);
  font-weight: 600;
}
.club-tier-name {
  margin: 0;
  font-family: var(--font-display);
  font-style: italic;
  font-weight: 500;
  font-size: clamp(1.45rem, 2.5vw, 1.85rem);
  line-height: 1.15;
  color: var(--ink);
}
.club-tier-discount {
  margin: 0.15rem 0 0.2rem;
  font-size: 1.65rem;
  font-weight: 700;
  color: var(--accent-gold);
  letter-spacing: 0.02em;
}
.club-tier-perks {
  margin: 0;
  font-size: 0.95rem;
  line-height: 1.5;
  color: var(--ink-soft);
  flex: 1;
}
.club-how {
  max-width: 36rem;
  margin: 0 auto;
  text-align: center;
}
.club-how p {
  color: var(--ink-soft);
  line-height: 1.55;
  margin: 0 0 1.25rem;
}
.club-how h3 {
  font-family: var(--font-display);
  font-style: italic;
  font-weight: 500;
  font-size: 1.5rem;
  margin: 0 0 0.75rem;
}
.club-cta {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 48px;
  padding: 0 1.5rem;
  border-radius: 999px;
}
.page-hero--club {
  text-align: center;
}
.page-hero--club .lede {
  margin-left: auto;
  margin-right: auto;
}
.club-section--page .club-tiers {
  margin-top: 0.5rem;
}


/* —— Booking extras (допы) —— */
.detail-section--extras {
  margin-top: 0.5rem;
}
.extras-lede {
  margin-bottom: 1.1rem !important;
}
.extras-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 0.75rem;
}
@media (min-width: 640px) {
  .extras-grid { grid-template-columns: 1fr 1fr; }
}
.extra-card {
  display: flex;
  gap: 0.75rem;
  align-items: flex-start;
  padding: 1rem 1.05rem;
  border: 1px solid var(--border);
  border-radius: 16px;
  background: rgba(255,255,255,0.55);
  cursor: pointer;
  transition: border-color 0.2s, box-shadow 0.2s, background 0.2s;
}
.extra-card:has(.extra-check:checked),
.extra-card:has(input:checked) {
  border-color: rgba(184, 118, 63, 0.55);
  background: linear-gradient(165deg, rgba(251,245,234,0.95), rgba(255,255,255,0.75));
  box-shadow: 0 8px 24px rgba(184, 118, 63, 0.08);
}
.extra-check {
  margin-top: 0.2rem;
  width: 1.1rem;
  height: 1.1rem;
  accent-color: var(--accent-gold);
  flex-shrink: 0;
}
.extra-card-body {
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
  min-width: 0;
  flex: 1;
}
.extra-card-top {
  display: flex;
  justify-content: space-between;
  gap: 0.75rem;
  align-items: baseline;
}
.extra-title {
  font-weight: 600;
  color: var(--ink);
  font-size: 0.98rem;
}
.extra-price {
  font-weight: 700;
  color: var(--accent-gold);
  white-space: nowrap;
  font-size: 0.92rem;
}
.extra-price small {
  display: block;
  font-weight: 500;
  font-size: 0.72rem;
  color: var(--muted);
  text-align: right;
}
.extra-desc {
  font-size: 0.88rem;
  color: var(--ink-soft);
  line-height: 1.4;
}
.extras-summary {
  margin-top: 1.25rem;
  padding: 1.15rem 1.2rem;
  border-radius: 16px;
  border: 1px solid var(--border);
  background: rgba(255,255,255,0.6);
  text-align: center;
}
.extras-total {
  margin: 0 0 0.9rem;
  font-weight: 600;
  color: var(--ink);
}
.extras-request-btn {
  display: inline-flex;
  min-height: 48px;
  padding: 0 1.35rem;
  border-radius: 999px;
  align-items: center;
  justify-content: center;
}
.extras-hint {
  margin: 0.75rem 0 0;
  font-size: 0.82rem;
}
#booking-extras {
  scroll-margin-top: calc(var(--header-total, 80px) + 1rem);
}

/* —— Header + footer brand color #482e2c —— */
:root {
  --header-footer-bg: #482e2c;
}
.site-header,
.site-footer,
.site-footer.site-footer--minimal,
.site-footer.site-footer--slim {
  background: #482e2c !important;
  background-color: #482e2c !important;
}

/* —— CTA bottom bar + footer unified brand color #482e2c —— */
.cta-contact,
.cta-contact.section,
section.cta-contact {
  background: #482e2c !important;
  background-color: #482e2c !important;
}
.site-footer,
.site-footer.site-footer--minimal,
.site-footer.site-footer--slim,
.site-footer--slim,
footer.site-footer {
  background: #482e2c !important;
  background-color: #482e2c !important;
  margin-top: 0 !important;
  border-top: none !important;
}
/* Kill any light strip between CTA and footer */
.cta-contact + .site-footer,
.cta-contact + footer {
  margin-top: 0 !important;
}

/* ===== Dark cards #3d2d2e (v49) ===== */
:root {
  --card-bg: #3d2d2e;
  --card-ink: #fbf5ea;
  --card-muted: rgba(251, 245, 234, 0.72);
  --card-border: rgba(251, 245, 234, 0.16);
}

/* Soft content cards on apartment detail */
.apt-detail .detail-section {
  background: var(--card-bg) !important;
  border-color: var(--card-border) !important;
  color: var(--card-ink);
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.12);
}
.apt-detail .detail-section h3,
.apt-detail .detail-section h4,
.apt-detail .detail-subsection h4 {
  color: var(--card-ink) !important;
}
.apt-detail .detail-rich-text,
.apt-detail .lede.detail-rich-text,
.apt-detail .detail-rich-text p,
.apt-detail .detail-section p,
.apt-detail .detail-section .lede {
  color: var(--card-muted) !important;
}
.apt-detail .detail-subsection {
  border-top-color: var(--card-border);
}
.apt-detail .amenity-name,
.apt-detail .amenity-group-title {
  color: var(--card-ink) !important;
}
.apt-detail .amenity-icon {
  color: var(--card-ink) !important;
}
.apt-detail .amenity-row:hover {
  background: rgba(251, 245, 234, 0.08);
}
.apt-detail .btn-show-all-amenities {
  background: transparent;
  color: var(--card-ink);
  border-color: var(--card-ink);
}
.apt-detail .btn-show-all-amenities:hover {
  background: rgba(251, 245, 234, 0.12);
  color: var(--card-ink);
}

/* About card was cream — same dark family for consistency */
.apt-detail .detail-section--about {
  background: var(--card-bg) !important;
  border-color: var(--card-border) !important;
}

/* Fact chips on cream strip: dark pills */
.detail-facts li {
  background: var(--card-bg) !important;
  border-color: var(--card-border) !important;
  color: var(--card-ink);
}
.detail-facts li span {
  color: var(--card-muted);
}
.detail-facts li strong {
  color: var(--card-ink);
}

/* Guest favorite badge */
.airbnb-guest-favorite {
  background: var(--card-bg) !important;
  border-color: var(--card-border) !important;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.12);
  color: var(--card-ink);
}
.airbnb-guest-favorite .gf-laurel,
.airbnb-guest-favorite .gf-badge-text,
.airbnb-guest-favorite .gf-score,
.airbnb-guest-favorite .gf-review-n,
.airbnb-guest-favorite .gf-stars,
.airbnb-guest-favorite .gf-review-l {
  color: var(--card-ink) !important;
}
.airbnb-guest-favorite .gf-copy {
  color: var(--card-muted) !important;
}
.airbnb-guest-favorite .gf-divider {
  background: var(--card-border);
}

/* Review cards + show-all button inside dark section */
.airbnb-review-card {
  background: rgba(251, 245, 234, 0.08) !important;
  border-color: var(--card-border) !important;
  color: var(--card-ink);
}
.airbnb-review-name,
.airbnb-review-stars {
  color: var(--card-ink) !important;
}
.airbnb-review-date {
  color: var(--card-muted) !important;
}
.airbnb-review-text {
  color: var(--card-muted) !important;
}
.airbnb-review-avatar,
.airbnb-review-avatar--placeholder {
  background: rgba(251, 245, 234, 0.15) !important;
  color: var(--card-ink) !important;
}
.btn-show-all-reviews {
  background: transparent !important;
  color: var(--card-ink) !important;
  border-color: var(--card-ink) !important;
}
.btn-show-all-reviews:hover {
  background: rgba(251, 245, 234, 0.12) !important;
}
.review-text-toggle {
  color: var(--card-ink) !important;
}
.reviews-summary,
.reviews-more a {
  color: var(--card-ink) !important;
}

/* Why-us / rules / trust — cream cards → dark cards */
.why-us-card,
.rule-card,
.trust-card,
.trust-about {
  background: var(--card-bg) !important;
  border-color: var(--card-border) !important;
  color: var(--card-ink);
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
}
.why-us-card h3,
.rule-card h3,
.trust-card h3,
.trust-about h3,
.trust-stat strong {
  color: var(--card-ink) !important;
}
.why-us-card p,
.rule-card p,
.trust-rating,
.trust-platform {
  color: var(--card-muted) !important;
}

/* Club tiers (semi-white) + extras cards */
.club-tier:not(.club-tier--inner) {
  background: var(--card-bg) !important;
  border-color: var(--card-border) !important;
  color: var(--card-ink);
}
.club-tier:not(.club-tier--inner) .club-tier-name,
.club-tier:not(.club-tier--inner) .club-tier-when,
.club-tier:not(.club-tier--inner) .club-tier-perks {
  color: var(--card-ink);
}
.club-tier:not(.club-tier--inner) .club-tier-when,
.club-tier:not(.club-tier--inner) .club-tier-perks {
  color: var(--card-muted);
}
.club-tier--gold:not(.club-tier--inner) {
  background: linear-gradient(165deg, #4a3836, #3d2d2e) !important;
  border-color: rgba(184, 118, 63, 0.55) !important;
}
.extra-card {
  background: var(--card-bg) !important;
  border-color: var(--card-border) !important;
  color: var(--card-ink);
}
.extra-card:has(.extra-check:checked),
.extra-card:has(input:checked) {
  background: linear-gradient(165deg, #4a3836, #3d2d2e) !important;
  border-color: rgba(184, 118, 63, 0.55) !important;
}
.extra-title,
.extra-card-body {
  color: var(--card-ink);
}
.extra-desc,
.extra-price {
  color: var(--card-muted);
}


/* ===== Footer CTA: previous logo @ header size (v52) ===== */
.cta-brand-logo.logo,
.cta-brand-logo.logo--center,
.cta-contact .cta-brand-logo {
  max-height: var(--logo-h) !important;
  max-width: min(200px, 42vw) !important;
  height: auto !important;
  overflow: hidden !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  line-height: 1 !important;
}
.cta-contact .cta-brand-logo-img,
.cta-brand-logo-img.logo-img,
.cta-brand-logo .logo-img,
.cta-brand-logo-img {
  height: var(--logo-h) !important;
  max-height: var(--logo-h) !important;
  width: auto !important;
  max-width: min(200px, 42vw) !important;
  object-fit: contain !important;
  /* lighten dark signature on dark CTA bar */
  filter: brightness(0) invert(0.93) !important;
  opacity: 0.95 !important;
  margin: 0 auto !important;
  display: block !important;
}


/* ===== Hero search bar interior #c1b094 (v53) ===== */
.hero-search {
  background: #c1b094 !important;
  background-color: #c1b094 !important;
}
.hero-search-label {
  color: rgba(44, 33, 23, 0.65) !important;
}
.hero-search-value {
  color: #2c2117 !important;
}
.hero-search-divider {
  background: rgba(44, 33, 23, 0.22) !important;
}
.hero-search-field:hover,
.hero-search-field[aria-expanded="true"] {
  background: rgba(44, 33, 23, 0.08) !important;
}
.hero-search-icon {
  stroke: #2c2117 !important;
  color: #2c2117 !important;
}
.hero-search .hero-search-icon {
  /* SVG stroke is attribute; force via CSS filter-safe currentColor if used */
}
.hero-search svg.hero-search-icon {
  stroke: #2c2117 !important;
}


/* ===== Hero popovers: #c1b094 + smooth design (v54) ===== */
.hero-search {
  /* popovers position relative to the pill */
  position: absolute;
}

.hero-search-popover {
  position: absolute;
  top: calc(100% + 12px);
  left: 0;
  z-index: 20;
  display: flex !important;
  flex-wrap: wrap;
  align-items: stretch;
  gap: 12px;
  min-width: min(300px, calc(100vw - 28px));
  max-width: min(360px, calc(100vw - 24px));
  padding: 1.1rem 1.15rem 1.15rem;
  background: #c1b094 !important;
  background-color: #c1b094 !important;
  color: #2c2117 !important;
  border: 1px solid rgba(44, 33, 23, 0.1) !important;
  border-radius: 22px !important;
  box-shadow:
    0 4px 6px rgba(44, 33, 23, 0.06),
    0 18px 40px rgba(44, 33, 23, 0.18) !important;
  font-size: 13px;
  box-sizing: border-box;
  /* smooth open/close */
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transform: translateY(8px) scale(0.97);
  transition:
    opacity 0.28s cubic-bezier(0.22, 1, 0.36, 1),
    transform 0.28s cubic-bezier(0.22, 1, 0.36, 1),
    visibility 0.28s;
  will-change: opacity, transform;
}
.hero-search-popover.is-open {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
  transform: translateY(0) scale(1);
}
/* Keep layout while animating — override [hidden]{display:none} */
.hero-search-popover[hidden] {
  display: flex !important;
  /* still closed until .is-open */
}

/* tiny arrow toward the bar */
.hero-search-popover::before {
  content: "";
  position: absolute;
  top: -7px;
  left: 28px;
  width: 14px;
  height: 14px;
  background: #c1b094;
  border-left: 1px solid rgba(44, 33, 23, 0.1);
  border-top: 1px solid rgba(44, 33, 23, 0.1);
  transform: rotate(45deg);
  border-radius: 2px;
}
.hero-search-popover--guests {
  left: auto !important;
  right: 48px;
  flex-direction: column !important;
  gap: 0.85rem !important;
  min-width: 200px;
  align-items: center;
  text-align: center;
}
.hero-search-popover--guests::before {
  left: auto;
  right: 36px;
}

.hero-popover-field {
  display: flex;
  flex-direction: column;
  gap: 0.4rem;
  flex: 1 1 120px;
  min-width: 0;
}
.hero-popover-field span,
.hero-search-popover--guests > span:first-child {
  font-size: 0.7rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: rgba(44, 33, 23, 0.62) !important;
}

.hero-popover-field input[type="date"] {
  width: 100%;
  min-width: 0;
  box-sizing: border-box;
  border: 1px solid rgba(44, 33, 23, 0.14) !important;
  border-radius: 14px !important;
  padding: 0.7rem 0.75rem !important;
  font: inherit;
  font-size: 0.92rem;
  font-weight: 600;
  color: #2c2117 !important;
  background: rgba(251, 245, 234, 0.55) !important;
  box-shadow: inset 0 1px 2px rgba(44, 33, 23, 0.04);
  transition: border-color 0.2s ease, background 0.2s ease, box-shadow 0.2s ease;
  -webkit-appearance: none;
  appearance: none;
  color-scheme: light;
}
.hero-popover-field input[type="date"]:hover {
  background: rgba(251, 245, 234, 0.75) !important;
  border-color: rgba(44, 33, 23, 0.22) !important;
}
.hero-popover-field input[type="date"]:focus {
  outline: none;
  border-color: rgba(179, 90, 61, 0.55) !important;
  background: rgba(251, 245, 234, 0.9) !important;
  box-shadow: 0 0 0 3px rgba(179, 90, 61, 0.18);
}

.hero-guest-stepper {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 1rem;
  padding: 0.35rem 0.25rem 0.15rem;
}
.hero-guest-stepper button {
  width: 40px !important;
  height: 40px !important;
  border-radius: 50% !important;
  border: 1px solid rgba(44, 33, 23, 0.16) !important;
  background: rgba(251, 245, 234, 0.65) !important;
  color: #2c2117 !important;
  font-size: 1.25rem !important;
  font-weight: 500;
  line-height: 1;
  cursor: pointer;
  transition: background 0.2s ease, transform 0.15s ease, border-color 0.2s ease, opacity 0.2s;
  box-shadow: 0 1px 2px rgba(44, 33, 23, 0.06);
}
.hero-guest-stepper button:hover:not(:disabled) {
  background: rgba(251, 245, 234, 0.95) !important;
  border-color: rgba(179, 90, 61, 0.45) !important;
  transform: scale(1.05);
}
.hero-guest-stepper button:active:not(:disabled) {
  transform: scale(0.96);
}
.hero-guest-stepper button:disabled {
  opacity: 0.35;
  cursor: not-allowed;
}
.hero-guest-stepper span {
  min-width: 1.75em;
  text-align: center;
  font-size: 1.35rem;
  font-weight: 700;
  color: #2c2117;
  font-variant-numeric: tabular-nums;
}

@media (max-width: 767px) {
  .hero-search-popover {
    left: 50% !important;
    right: auto !important;
    transform: translateX(-50%) translateY(8px) scale(0.97);
    width: min(320px, calc(100vw - 24px));
  }
  .hero-search-popover.is-open {
    transform: translateX(-50%) translateY(0) scale(1);
  }
  .hero-search-popover--guests {
    left: 50% !important;
    right: auto !important;
  }
  .hero-search-popover::before,
  .hero-search-popover--guests::before {
    left: 50%;
    right: auto;
    margin-left: -7px;
  }
}


/* ===== Location section: text only, no photo (v55) ===== */
.location-block--text-only {
  display: block !important;
  grid-template-columns: none !important;
  max-width: 40rem;
  margin-left: auto;
  margin-right: auto;
  text-align: center;
}
.location-block--text-only .section-title,
.location-block--text-only .lede {
  text-align: center !important;
  margin-left: auto;
  margin-right: auto;
}
.location-block--text-only .lede {
  max-width: 36rem;
}
.location-visual {
  display: none !important;
}


/* ===== Club tiers: espresso + champagne (v57) — matches site palette =====
   Site anchors: #482e2c header, #3d2d2e cards, #c1b094 taupe, cream text.
   Quiet luxury: deep chocolate panels, fine champagne frame, cream type. */
.club-tier,
.club-tier.club-tier--circle,
.club-tier.club-tier--gold,
.club-tier.club-tier--inner,
.club-tier:not(.club-tier--inner) {
  background: linear-gradient(165deg, #453533 0%, #3a2a28 52%, #322422 100%) !important;
  border: 1px solid rgba(193, 176, 148, 0.28) !important;
  border-radius: 22px !important;
  box-shadow:
    0 1px 0 rgba(245, 237, 214, 0.06) inset,
    0 12px 32px rgba(0, 0, 0, 0.18) !important;
  color: #f5edd6 !important;
  position: relative;
  overflow: hidden;
}
.club-tier::after {
  content: "";
  position: absolute;
  inset: 6px;
  border-radius: 16px;
  border: 1px solid rgba(193, 176, 148, 0.1);
  pointer-events: none;
  z-index: 0;
}
.club-tier > * {
  position: relative;
  z-index: 1;
}

/* Circle — quiet entry tier */
.club-tier--circle {
  border-color: rgba(193, 176, 148, 0.32) !important;
}

/* Gold — warmer mid-tier, soft gold wash + stronger rim */
.club-tier--gold {
  background: linear-gradient(165deg, #4a3832 0%, #3d2d2a 45%, #342623 100%) !important;
  border-color: rgba(184, 118, 63, 0.45) !important;
  box-shadow:
    0 1px 0 rgba(232, 200, 150, 0.1) inset,
    0 0 0 1px rgba(184, 118, 63, 0.12),
    0 14px 36px rgba(0, 0, 0, 0.2) !important;
}
.club-tier--gold::after {
  border-color: rgba(184, 118, 63, 0.18);
}

/* Inner — deepest, most exclusive */
.club-tier--inner {
  background: linear-gradient(165deg, #2f2422 0%, #241c1a 50%, #1a1413 100%) !important;
  border-color: rgba(224, 181, 122, 0.42) !important;
  box-shadow:
    0 1px 0 rgba(224, 181, 122, 0.12) inset,
    0 0 0 1px rgba(224, 181, 122, 0.1),
    0 16px 40px rgba(0, 0, 0, 0.28) !important;
  color: #f5edd6 !important;
}
.club-tier--inner::after {
  border-color: rgba(224, 181, 122, 0.14);
}

/* Type hierarchy */
.club-tier .club-tier-badge {
  color: #c1b094 !important;
  filter: none;
  opacity: 0.95;
}
.club-tier .club-tier-when,
.club-tier:not(.club-tier--inner) .club-tier-when,
.club-tier--inner .club-tier-when {
  color: rgba(193, 176, 148, 0.85) !important;
  letter-spacing: 0.1em;
}
.club-tier .club-tier-name,
.club-tier:not(.club-tier--inner) .club-tier-name,
.club-tier--inner .club-tier-name {
  color: #f5edd6 !important;
  text-shadow: none;
}
.club-tier .club-tier-discount,
.club-tier--inner .club-tier-discount {
  color: #d4a574 !important;
  text-shadow: none;
  font-weight: 700;
}
.club-tier--gold .club-tier-discount {
  color: #e0b57a !important;
}
.club-tier--inner .club-tier-discount {
  color: #e8c48a !important;
}
.club-tier .club-tier-perks,
.club-tier:not(.club-tier--inner) .club-tier-perks,
.club-tier--inner .club-tier-perks {
  color: rgba(245, 237, 214, 0.72) !important;
  line-height: 1.55;
}

@media (hover: hover) {
  .club-tier {
    transition: transform 0.28s cubic-bezier(0.22, 1, 0.36, 1),
                box-shadow 0.28s ease,
                border-color 0.28s ease;
  }
  .club-tier:hover {
    transform: translateY(-2px);
    border-color: rgba(193, 176, 148, 0.48) !important;
    box-shadow:
      0 1px 0 rgba(245, 237, 214, 0.08) inset,
      0 16px 40px rgba(0, 0, 0, 0.24) !important;
  }
  .club-tier--gold:hover {
    border-color: rgba(184, 118, 63, 0.6) !important;
  }
  .club-tier--inner:hover {
    border-color: rgba(224, 181, 122, 0.55) !important;
  }
}


/* ===== Club tier text centered (v58) ===== */
.club-tier,
.club-tier.club-tier--circle,
.club-tier.club-tier--gold,
.club-tier.club-tier--inner {
  text-align: center !important;
  align-items: center !important;
}
.club-tier .club-tier-badge,
.club-tier .club-tier-when,
.club-tier .club-tier-name,
.club-tier .club-tier-discount,
.club-tier .club-tier-perks {
  text-align: center !important;
  margin-left: auto;
  margin-right: auto;
}
.club-tier .club-tier-perks {
  max-width: 22rem;
}
.club-tiers {
  text-align: center;
}


/* ===== Club page: compact but NO text clipping (v60) ===== */
body:has(.club-section--page) .site-footer,
body:has(.club-section--page) .site-footer--slim {
  display: none !important;
}

/* Full content visible; soft compact spacing (scroll only if screen is tiny) */
body:has(.club-section--page) main {
  min-height: calc(100dvh - var(--header-total, 80px));
  display: flex;
  flex-direction: column;
  box-sizing: border-box;
  overflow: visible;
  padding-bottom: max(0.75rem, env(safe-area-inset-bottom, 0px));
}

/* Hero under fixed header — never clip title/lede */
.page-hero.page-hero--club,
body:has(.club-section--page) .page-hero--club {
  margin-top: calc(var(--header-total, 80px) + 0.5rem) !important;
  padding: 0.75rem var(--pad-x) 0.5rem !important;
  flex: 0 0 auto;
  overflow: visible !important;
}
.page-hero--club .wrap {
  max-width: 42rem;
  margin: 0 auto;
  text-align: center;
  overflow: visible !important;
}
.page-hero--club .hero-kicker {
  margin: 0 0 0.4rem !important;
  font-size: 0.7rem !important;
  letter-spacing: 0.14em;
  display: block !important;
  overflow: visible !important;
  -webkit-line-clamp: unset !important;
}
.page-hero--club h1 {
  margin: 0 0 0.5rem !important;
  font-size: clamp(1.55rem, 3.5vw, 2.25rem) !important;
  line-height: 1.2 !important;
  overflow: visible !important;
  white-space: normal !important;
  -webkit-line-clamp: unset !important;
  text-overflow: unset !important;
}
.page-hero--club .lede {
  margin: 0 auto !important;
  max-width: 36rem;
  font-size: clamp(0.9rem, 1.5vw, 1.02rem) !important;
  line-height: 1.5 !important;
  display: block !important;
  overflow: visible !important;
  -webkit-line-clamp: unset !important;
  -webkit-box-orient: unset !important;
  white-space: normal !important;
  text-overflow: unset !important;
  max-height: none !important;
}

.club-section--page.section {
  flex: 1 1 auto;
  margin: 0 !important;
  padding: 0.5rem var(--pad-x) 1.25rem !important;
  display: flex !important;
  flex-direction: column !important;
  justify-content: flex-start !important;
  overflow: visible !important;
}
.club-section--page > .wrap {
  width: 100%;
  max-width: var(--container);
  margin: 0 auto;
  display: flex;
  flex-direction: column;
  gap: 1rem;
  overflow: visible;
}

.club-section--page .club-tiers {
  margin: 0 auto !important;
  gap: 0.85rem !important;
  max-width: 58rem;
  width: 100%;
}
.club-section--page .club-tier {
  padding: 1rem 1rem 1.05rem !important;
  border-radius: 18px !important;
  gap: 0.3rem !important;
  min-height: 0 !important;
  overflow: visible !important;
  text-align: center !important;
  align-items: center !important;
}
.club-section--page .club-tier-badge {
  font-size: 1.15rem !important;
  margin-bottom: 0.1rem !important;
  display: block !important;
}
.club-section--page .club-tier-when {
  font-size: 0.7rem !important;
  margin: 0 !important;
}
.club-section--page .club-tier-name {
  font-size: clamp(1.15rem, 2vw, 1.45rem) !important;
  line-height: 1.2 !important;
  margin: 0 !important;
  overflow: visible !important;
  white-space: normal !important;
}
.club-section--page .club-tier-discount {
  font-size: clamp(1.25rem, 2.2vw, 1.55rem) !important;
  margin: 0.1rem 0 !important;
}
.club-section--page .club-tier-perks {
  font-size: 0.88rem !important;
  line-height: 1.45 !important;
  margin: 0 !important;
  max-width: 20rem;
  display: block !important;
  overflow: visible !important;
  -webkit-line-clamp: unset !important;
  -webkit-box-orient: unset !important;
  max-height: none !important;
  white-space: normal !important;
}

.club-section--page .club-how {
  margin: 0 auto !important;
  max-width: 32rem;
  overflow: visible !important;
}
.club-section--page .club-how h3 {
  font-size: clamp(1.1rem, 2vw, 1.35rem) !important;
  margin: 0 0 0.4rem !important;
  display: block !important;
}
.club-section--page .club-how p {
  font-size: 0.92rem !important;
  line-height: 1.5 !important;
  margin: 0 0 0.85rem !important;
  display: block !important;
  overflow: visible !important;
  -webkit-line-clamp: unset !important;
  -webkit-box-orient: unset !important;
  max-height: none !important;
  white-space: normal !important;
}
.club-section--page .club-cta {
  min-height: 44px !important;
  padding: 0 1.35rem !important;
}

@media (max-width: 699px) {
  .club-section--page .club-tiers {
    grid-template-columns: 1fr !important;
    gap: 0.65rem !important;
  }
  .club-section--page .club-tier-perks {
    max-width: 100%;
  }
  .page-hero--club h1 {
    font-size: clamp(1.45rem, 6vw, 1.85rem) !important;
  }
}


/* ===== Club Mercuriali title centered (v61) ===== */
.page-hero--club,
.page-hero--club .wrap,
.club-section,
.club-section > .wrap,
.club-section--page,
.club-section--page > .wrap {
  text-align: center !important;
}
.page-hero--club h1,
.club-section .section-title,
.club-section h2.section-title {
  text-align: center !important;
  margin-left: auto !important;
  margin-right: auto !important;
  max-width: none !important;
  width: 100% !important;
  display: block !important;
}
.page-hero--club .hero-kicker,
.page-hero--club .lede,
.club-section .club-kicker,
.club-section .club-lede,
.club-section > .wrap > .lede {
  text-align: center !important;
  margin-left: auto !important;
  margin-right: auto !important;
}


/* ===== Gallery "show all photos" = block color (v62) ===== */
.gallery-show-all,
button.gallery-show-all,
#gallery-show-all {
  background: #3d2d2e !important;
  background-color: #3d2d2e !important;
  color: #f5edd6 !important;
  border: 1px solid rgba(193, 176, 148, 0.35) !important;
  box-shadow: 0 2px 10px rgba(0, 0, 0, 0.22) !important;
}
.gallery-show-all:hover,
button.gallery-show-all:hover,
#gallery-show-all:hover {
  background: #4a3836 !important;
  background-color: #4a3836 !important;
  color: #fbf5ea !important;
  border-color: rgba(193, 176, 148, 0.5) !important;
}
.gallery-show-all svg {
  stroke: #f5edd6 !important;
  color: #f5edd6 !important;
}


/* ===== Guest Favorite: emphasized frame (v63) ===== */
.airbnb-guest-favorite,
.airbnb-guest-favorite--simple {
  border: 1.5px solid rgba(193, 176, 148, 0.55) !important;
  border-radius: 18px !important;
  box-shadow:
    0 0 0 1px rgba(193, 176, 148, 0.12),
    0 1px 0 rgba(245, 237, 214, 0.08) inset,
    0 4px 16px rgba(0, 0, 0, 0.16) !important;
  position: relative;
}
.airbnb-guest-favorite::after {
  content: "";
  position: absolute;
  inset: 5px;
  border-radius: 13px;
  border: 1px solid rgba(193, 176, 148, 0.18);
  pointer-events: none;
  z-index: 0;
}
.airbnb-guest-favorite > * {
  position: relative;
  z-index: 1;
}


/* ===== Facts row: same frame as detail-section cards (v65) ===== */
.detail-facts,
.detail-facts--chips,
.apt-detail .detail-facts,
.apt-detail .detail-facts--chips {
  background: var(--card-bg, #3d2d2e) !important;
  background-color: var(--card-bg, #3d2d2e) !important;
  border: 1px solid var(--card-border, rgba(251, 245, 234, 0.16)) !important;
  border-radius: 20px !important;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.12) !important;
  padding: 1.15rem 1.25rem !important;
  margin: 0 0 1.25rem !important;
}
/* chips inside: subtle, not a second heavy frame */
.detail-facts li,
.detail-facts--chips li,
.apt-detail .detail-facts li {
  background: rgba(251, 245, 234, 0.06) !important;
  border: 1px solid rgba(251, 245, 234, 0.12) !important;
  border-radius: 999px !important;
  padding: 0.35rem 0.75rem !important;
  color: var(--card-ink, #fbf5ea) !important;
  box-shadow: none !important;
}
.detail-facts li span,
.apt-detail .detail-facts li span {
  color: var(--card-muted, rgba(251, 245, 234, 0.72)) !important;
}
.detail-facts li strong,
.apt-detail .detail-facts li strong {
  color: var(--card-ink, #fbf5ea) !important;
}


/* ===== Book on Airbnb: deeper luxury burgundy (v67) ===== */
.btn-book-cta,
.btn-book-cta--hero,
.btn-book-cta--mobile,
a.btn-book-cta,
#book-btn,
#book-btn-mobile {
  background: linear-gradient(165deg, #5c1a28 0%, #3d101c 48%, #240a12 100%) !important;
  background-color: #3d101c !important;
  color: #f7ebe6 !important;
  border: 1px solid rgba(180, 140, 120, 0.22) !important;
  box-shadow:
    0 1px 0 rgba(255, 210, 200, 0.1) inset,
    0 0 0 1px rgba(20, 6, 10, 0.35),
    0 10px 28px rgba(20, 6, 10, 0.55) !important;
  transition:
    transform 0.18s ease,
    box-shadow 0.22s ease,
    filter 0.2s ease !important;
  text-shadow: 0 1px 2px rgba(0, 0, 0, 0.35);
  letter-spacing: 0.03em;
}
.btn-book-cta:hover,
.btn-book-cta--hero:hover,
.btn-book-cta--mobile:hover,
a.btn-book-cta:hover,
#book-btn:hover,
#book-btn-mobile:hover {
  background: linear-gradient(165deg, #6e2232 0%, #4a1422 48%, #2c0c16 100%) !important;
  background-color: #4a1422 !important;
  transform: translateY(-1px);
  box-shadow:
    0 1px 0 rgba(255, 215, 205, 0.14) inset,
    0 0 0 1px rgba(20, 6, 10, 0.4),
    0 12px 32px rgba(20, 6, 10, 0.6) !important;
  filter: brightness(1.06);
  color: #fff6f2 !important;
}
.btn-book-cta:active,
.btn-book-cta--hero:active,
.btn-book-cta--mobile:active {
  transform: translateY(0);
  filter: brightness(0.96);
  box-shadow:
    0 1px 0 rgba(255, 200, 190, 0.08) inset,
    0 4px 14px rgba(20, 6, 10, 0.45) !important;
}


/* ===== Book CTA fully rounded pill (v68) ===== */
.btn-book-cta,
.btn-book-cta--hero,
.btn-book-cta--mobile,
a.btn-book-cta,
#book-btn,
#book-btn-mobile {
  border-radius: 999px !important;
}


/* ===== Hero search btn = same luxury burgundy as book CTA (v69) ===== */
.hero-search-btn,
a.hero-search-btn {
  background: linear-gradient(165deg, #5c1a28 0%, #3d101c 48%, #240a12 100%) !important;
  background-color: #3d101c !important;
  border: 1px solid rgba(180, 140, 120, 0.22) !important;
  box-shadow:
    0 1px 0 rgba(255, 210, 200, 0.1) inset,
    0 4px 14px rgba(20, 6, 10, 0.45) !important;
  transition: transform 0.18s ease, box-shadow 0.2s ease, filter 0.2s ease !important;
}
.hero-search-btn:hover,
a.hero-search-btn:hover {
  background: linear-gradient(165deg, #6e2232 0%, #4a1422 48%, #2c0c16 100%) !important;
  background-color: #4a1422 !important;
  transform: scale(1.04);
  box-shadow:
    0 1px 0 rgba(255, 215, 205, 0.14) inset,
    0 6px 18px rgba(20, 6, 10, 0.55) !important;
  filter: brightness(1.06);
  opacity: 1 !important;
}
.hero-search-btn svg,
.hero-search-btn:hover svg {
  stroke: #f7ebe6 !important;
}


/* ===== Club CTA "Стать своим" = luxury burgundy (v70) ===== */
.club-cta,
a.club-cta,
.btn-primary.club-cta,
.club-section .club-cta,
.club-section--page .club-cta {
  background: linear-gradient(165deg, #5c1a28 0%, #3d101c 48%, #240a12 100%) !important;
  background-color: #3d101c !important;
  color: #f7ebe6 !important;
  border: 1px solid rgba(180, 140, 120, 0.22) !important;
  border-radius: 999px !important;
  box-shadow:
    0 1px 0 rgba(255, 210, 200, 0.1) inset,
    0 0 0 1px rgba(20, 6, 10, 0.35),
    0 10px 28px rgba(20, 6, 10, 0.55) !important;
  text-shadow: 0 1px 2px rgba(0, 0, 0, 0.35);
  letter-spacing: 0.03em;
  font-weight: 700 !important;
  transition:
    transform 0.18s ease,
    box-shadow 0.22s ease,
    filter 0.2s ease !important;
}
.club-cta:hover,
a.club-cta:hover,
.btn-primary.club-cta:hover {
  background: linear-gradient(165deg, #6e2232 0%, #4a1422 48%, #2c0c16 100%) !important;
  background-color: #4a1422 !important;
  color: #fff6f2 !important;
  transform: translateY(-1px);
  box-shadow:
    0 1px 0 rgba(255, 215, 205, 0.14) inset,
    0 0 0 1px rgba(20, 6, 10, 0.4),
    0 12px 32px rgba(20, 6, 10, 0.6) !important;
  filter: brightness(1.06);
  opacity: 1 !important;
}
.club-cta:active {
  transform: translateY(0);
  filter: brightness(0.96);
}


/* ===== Amenity icons light cream (v71) ===== */
.apt-detail .amenity-icon,
.apt-detail .amenity-icon svg,
.amenity-row .amenity-icon,
.amenity-row .amenity-icon svg,
.amenity-list .amenity-icon,
.amenity-list svg {
  color: #f5edd6 !important;
  stroke: #f5edd6 !important;
  fill: none !important;
  opacity: 0.92;
}
.apt-detail .amenity-icon svg [fill]:not([fill="none"]),
.amenity-row .amenity-icon svg [fill]:not([fill="none"]) {
  fill: #f5edd6 !important;
}
.apt-detail .amenity-icon svg [stroke],
.amenity-row .amenity-icon svg [stroke] {
  stroke: #f5edd6 !important;
}
.apt-detail .amenity-name {
  color: #f5edd6 !important;
}


/* Amenity icons: force light cream via currentColor (v71b) */
.amenity-icon,
.apt-detail .amenity-icon,
.amenity-row .amenity-icon {
  color: #f5edd6 !important;
}
.amenity-icon svg,
.apt-detail .amenity-icon svg {
  color: #f5edd6 !important;
  stroke: #f5edd6 !important;
}
.amenity-icon svg *,
.apt-detail .amenity-icon svg * {
  stroke: currentColor !important;
}


/* ===== Club page: everything gently centered (v73) ===== */
body:has(.club-section--page) main {
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  justify-content: center !important;
  min-height: calc(100dvh - var(--header-total, 80px));
  text-align: center !important;
}

.page-hero--club,
.page-hero--club .wrap,
.club-section--page,
.club-section--page > .wrap,
.club-section--page .club-how,
.club-section--page .club-tiers {
  text-align: center !important;
  margin-left: auto !important;
  margin-right: auto !important;
}

.page-hero.page-hero--club {
  width: 100%;
  display: flex !important;
  justify-content: center !important;
  align-items: center !important;
  margin-top: calc(var(--header-total, 80px) + 0.35rem) !important;
  padding: 0.6rem var(--pad-x) 0.4rem !important;
}
.page-hero--club .wrap {
  width: 100%;
  max-width: 40rem;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0.35rem;
}
.page-hero--club .hero-kicker,
.page-hero--club h1,
.page-hero--club .lede {
  text-align: center !important;
  margin-left: auto !important;
  margin-right: auto !important;
  width: 100%;
}

.club-section--page.section {
  width: 100%;
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  justify-content: center !important;
  padding-top: 0.35rem !important;
  padding-bottom: 1.25rem !important;
}
.club-section--page > .wrap {
  width: 100%;
  max-width: var(--container);
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 1.1rem;
}

.club-section--page .club-tiers {
  width: 100%;
  max-width: 56rem;
  justify-items: center;
  align-items: stretch;
}
.club-section--page .club-tier {
  width: 100%;
  text-align: center !important;
  align-items: center !important;
  justify-content: flex-start !important;
}
.club-section--page .club-tier-perks {
  margin-left: auto !important;
  margin-right: auto !important;
}

.club-section--page .club-how {
  width: 100%;
  max-width: 32rem;
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center !important;
}
.club-section--page .club-how h3,
.club-section--page .club-how p {
  text-align: center !important;
  margin-left: auto !important;
  margin-right: auto !important;
}
.club-section--page .club-cta {
  margin-left: auto !important;
  margin-right: auto !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
}


/* ===== Book buttons: cleaner rounded ends + smoother hover (v74) ===== */
.btn-book-cta,
.btn-book-cta--hero,
.btn-book-cta--mobile,
a.btn-book-cta,
#book-btn,
#book-btn-mobile {
  border-radius: 999px !important;
  overflow: hidden !important;
  -webkit-backface-visibility: hidden;
  backface-visibility: hidden;
  -webkit-transform: translateZ(0);
  transform: translateZ(0);
  /* crisp soft edges */
  -webkit-font-smoothing: antialiased;
  isolation: isolate;
  transition:
    transform 0.28s cubic-bezier(0.22, 1, 0.36, 1),
    box-shadow 0.28s cubic-bezier(0.22, 1, 0.36, 1),
    filter 0.28s ease,
    background 0.28s ease,
    border-color 0.28s ease !important;
}
.btn-book-cta:hover,
.btn-book-cta--hero:hover,
.btn-book-cta--mobile:hover,
a.btn-book-cta:hover,
#book-btn:hover,
#book-btn-mobile:hover {
  border-radius: 999px !important;
  /* soft lift without distorting the pill ends */
  transform: translateY(-1px) translateZ(0) scale(1.015) !important;
  filter: brightness(1.07) saturate(1.05);
  box-shadow:
    0 1px 0 rgba(255, 220, 210, 0.16) inset,
    0 0 0 1px rgba(255, 200, 190, 0.08),
    0 12px 30px rgba(20, 6, 10, 0.55) !important;
}
.btn-book-cta:active,
.btn-book-cta--hero:active,
.btn-book-cta--mobile:active {
  border-radius: 999px !important;
  transform: translateY(0) translateZ(0) scale(0.99) !important;
  transition-duration: 0.12s !important;
}

/* same polish for club + search if they share the look */
.club-cta,
.hero-search-btn {
  border-radius: 999px !important;
  overflow: hidden !important;
  -webkit-backface-visibility: hidden;
  backface-visibility: hidden;
  transform: translateZ(0);
  transition:
    transform 0.28s cubic-bezier(0.22, 1, 0.36, 1),
    box-shadow 0.28s cubic-bezier(0.22, 1, 0.36, 1),
    filter 0.28s ease !important;
}
.club-cta:hover {
  border-radius: 999px !important;
  transform: translateY(-1px) translateZ(0) scale(1.015) !important;
}
.hero-search-btn:hover {
  border-radius: 999px !important;
  transform: scale(1.05) translateZ(0) !important;
}


/* ===== Header menu colors more visible (v75) ===== */
/* Desktop nav links */
.nav-desktop,
.nav-desktop.nav-desktop--left,
.nav-desktop a {
  color: #f5edd6 !important;
  font-weight: 600 !important;
  letter-spacing: 0.02em;
}
.nav-desktop a:hover {
  color: #e0b57a !important;
  opacity: 1 !important;
}

/* Language switcher under logo + desktop right */
.lang-switch button,
.lang-switch--header button,
.lang-switch--desktop button {
  color: rgba(245, 237, 214, 0.78) !important;
  font-weight: 600 !important;
  font-size: 0.72rem !important;
  letter-spacing: 0.08em !important;
}
.lang-switch button.active,
.lang-switch--header button.active,
.lang-switch--desktop button.active {
  color: #e0b57a !important;
  font-weight: 800 !important;
}
.lang-switch button:hover,
.lang-switch--header button:hover,
.lang-switch--desktop button:hover {
  color: #f5edd6 !important;
}

/* Burger: was using --bg (same dark as header) — nearly invisible */
.nav-toggle span,
.nav-toggle::before,
.nav-toggle::after {
  background: #f5edd6 !important;
  background-color: #f5edd6 !important;
  width: 22px !important;
  height: 2.5px !important;
  border-radius: 99px !important;
  box-shadow: 0 0 0 0.5px rgba(0,0,0,0.15);
}
.nav-toggle::after {
  width: 16px !important;
}
.nav-toggle:hover span,
.nav-toggle:hover::before,
.nav-toggle:hover::after {
  background: #e0b57a !important;
}


/* ===== Catalog apartments: text a bit lower (v76) ===== */
.page-hero--catalog {
  margin-top: calc(var(--header-total, 80px) + 2.25rem) !important;
  padding-top: 0.75rem !important;
  padding-bottom: 1.5rem !important;
}
@media (min-width: 768px) {
  .page-hero--catalog {
    margin-top: calc(var(--header-total, 96px) + 2.75rem) !important;
    padding-top: 1rem !important;
    padding-bottom: 1.75rem !important;
  }
}
@media (max-width: 699px) {
  .page-hero--catalog {
    margin-top: calc(var(--header-total, 78px) + 2.5rem) !important;
    padding-top: 1rem !important;
  }
}


/* ===== Contact page: text lower like catalog (v77) ===== */
.page-hero--contact {
  margin-top: calc(var(--header-total, 80px) + 2.25rem) !important;
  padding-top: 0.75rem !important;
  padding-bottom: 1.5rem !important;
}
@media (min-width: 768px) {
  .page-hero--contact {
    margin-top: calc(var(--header-total, 96px) + 2.75rem) !important;
    padding-top: 1rem !important;
    padding-bottom: 1.75rem !important;
  }
}
@media (max-width: 699px) {
  .page-hero--contact {
    margin-top: calc(var(--header-total, 78px) + 2.5rem) !important;
    padding-top: 1rem !important;
  }
}


/* ===== Club page mobile adaptation (v78) ===== */
@media (max-width: 699px) {
  /* Don’t force vertical center-lock on phones — natural top flow + scroll */
  body:has(.club-section--page) main {
    min-height: auto !important;
    height: auto !important;
    max-height: none !important;
    justify-content: flex-start !important;
    overflow: visible !important;
    padding-bottom: calc(1.5rem + env(safe-area-inset-bottom, 0px)) !important;
  }

  /* Hero: same lower offset as catalog/contact */
  .page-hero.page-hero--club,
  body:has(.club-section--page) .page-hero--club {
    margin-top: calc(var(--header-total, 78px) + 2.5rem) !important;
    padding: 1rem 1.15rem 1.1rem !important;
    width: 100%;
    box-sizing: border-box;
  }
  .page-hero--club .wrap {
    max-width: 100% !important;
    padding: 0 !important;
    gap: 0.45rem !important;
  }
  .page-hero--club .hero-kicker {
    font-size: 0.68rem !important;
    letter-spacing: 0.14em !important;
    margin: 0 0 0.35rem !important;
  }
  .page-hero--club h1 {
    font-size: clamp(1.55rem, 7vw, 1.95rem) !important;
    line-height: 1.2 !important;
    margin: 0 0 0.55rem !important;
    padding: 0 0.25rem;
  }
  .page-hero--club .lede {
    font-size: 0.92rem !important;
    line-height: 1.5 !important;
    max-width: 22rem !important;
    padding: 0 0.35rem;
    margin: 0 auto !important;
  }

  /* Tiers: full-width stack, comfortable cards */
  .club-section--page.section {
    padding: 0.35rem 1rem 1.5rem !important;
    justify-content: flex-start !important;
    width: 100%;
    box-sizing: border-box;
  }
  .club-section--page > .wrap {
    gap: 0.85rem !important;
    width: 100% !important;
    max-width: 100% !important;
    padding: 0 !important;
  }
  .club-section--page .club-tiers {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 0.75rem !important;
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 auto !important;
  }
  .club-section--page .club-tier {
    width: 100% !important;
    max-width: 100% !important;
    box-sizing: border-box !important;
    padding: 1.15rem 1.1rem 1.2rem !important;
    border-radius: 18px !important;
    gap: 0.35rem !important;
  }
  .club-section--page .club-tier::after {
    inset: 5px;
    border-radius: 13px;
  }
  .club-section--page .club-tier-badge {
    font-size: 1.2rem !important;
  }
  .club-section--page .club-tier-when {
    font-size: 0.72rem !important;
  }
  .club-section--page .club-tier-name {
    font-size: 1.35rem !important;
    line-height: 1.2 !important;
  }
  .club-section--page .club-tier-discount {
    font-size: 1.45rem !important;
  }
  .club-section--page .club-tier-perks {
    font-size: 0.9rem !important;
    line-height: 1.45 !important;
    max-width: 100% !important;
    padding: 0 0.15rem;
  }

  /* How + CTA */
  .club-section--page .club-how {
    width: 100% !important;
    max-width: 100% !important;
    padding: 0.35rem 0.25rem 0 !important;
    gap: 0;
  }
  .club-section--page .club-how h3 {
    font-size: 1.2rem !important;
    margin: 0.5rem 0 0.4rem !important;
  }
  .club-section--page .club-how p {
    font-size: 0.9rem !important;
    line-height: 1.5 !important;
    margin: 0 0 1rem !important;
    max-width: 22rem;
  }
  .club-section--page .club-cta,
  .btn-primary.club-cta {
    width: 100% !important;
    max-width: 18rem !important;
    min-height: 48px !important;
    padding: 0 1.25rem !important;
    font-size: 0.95rem !important;
    box-sizing: border-box !important;
  }
}

/* Slightly wider phones still stack if under 900 for comfort */
@media (min-width: 700px) and (max-width: 899px) {
  .page-hero.page-hero--club {
    margin-top: calc(var(--header-total, 92px) + 2rem) !important;
    padding: 1rem var(--pad-x) 1rem !important;
  }
  .club-section--page .club-tiers {
    grid-template-columns: 1fr !important;
    max-width: 28rem !important;
    gap: 0.85rem !important;
  }
}


/* ===== Home hero: mobile text + search adaptation (v79) ===== */
@media (max-width: 767px) {
  /* Photo fills viewport under header */
  .hero-media {
    height: calc(100svh - var(--header-total, 78px)) !important;
    min-height: min(520px, 85svh) !important;
    max-height: none !important;
  }

  /* Title + lead: sit in upper half, clear of search, more air under header */
  .hero-content {
    position: absolute !important;
    top: 0 !important;
    left: 0 !important;
    right: 0 !important;
    bottom: auto !important;
    inset: auto 0 auto 0 !important;
    height: 48% !important;
    padding: 1.75rem 1.15rem 0.5rem !important;
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    justify-content: flex-end !important;
    text-align: center !important;
    z-index: 3 !important;
    pointer-events: none !important;
    box-sizing: border-box !important;
  }
  .hero h1 {
    font-size: clamp(1.7rem, 7.2vw, 2.15rem) !important;
    line-height: 1.15 !important;
    max-width: 14ch !important;
    margin: 0 auto 0.65rem !important;
    padding: 0 0.25rem;
    text-shadow: 0 2px 18px rgba(0, 0, 0, 0.35);
  }
  .hero-lead {
    font-size: 0.92rem !important;
    line-height: 1.45 !important;
    max-width: 20rem !important;
    margin: 0 auto !important;
    padding: 0 0.5rem 0.35rem !important;
    text-shadow: 0 1px 12px rgba(0, 0, 0, 0.35);
    opacity: 0.95;
  }

  /* Search: below title band, full usable width, comfy taps */
  .hero-search {
    top: 58% !important;
    left: 50% !important;
    transform: translate(-50%, -50%) !important;
    width: min(calc(100% - 1.5rem), 400px) !important;
    max-width: calc(100vw - 1.5rem) !important;
    padding: 5px 5px 5px 6px !important;
    gap: 0 !important;
    z-index: 4 !important;
    box-shadow:
      0 4px 6px rgba(0, 0, 0, 0.12),
      0 12px 28px rgba(0, 0, 0, 0.22) !important;
  }
  .hero-search-field {
    gap: 0.45rem !important;
    padding: 0.55rem 0.55rem !important;
    min-width: 0 !important;
    flex: 1 1 0 !important;
  }
  .hero-search-icon {
    width: 14px !important;
    height: 14px !important;
    flex-shrink: 0 !important;
  }
  .hero-search-label {
    font-size: 0.62rem !important;
    letter-spacing: 0.06em !important;
    line-height: 1.1 !important;
  }
  .hero-search-value {
    font-size: 0.82rem !important;
    font-weight: 700 !important;
    line-height: 1.2 !important;
  }
  .hero-search-divider {
    margin: 8px 0 !important;
    opacity: 0.85;
  }
  .hero-search-btn {
    width: 42px !important;
    height: 42px !important;
    margin-left: 2px !important;
    flex-shrink: 0 !important;
  }
  .hero-search-btn svg {
    width: 16px !important;
    height: 16px !important;
  }

  /* Popovers: full-width friendly, below bar */
  .hero-search-popover,
  .hero-search-popover--guests {
    left: 50% !important;
    right: auto !important;
    width: min(300px, calc(100vw - 1.5rem)) !important;
    max-width: calc(100vw - 1.5rem) !important;
    top: calc(100% + 10px) !important;
    z-index: 6 !important;
  }
  .hero-search-popover.is-open {
    /* keep open animation from earlier with translateX */
  }
}

/* Very small phones */
@media (max-width: 359px) {
  .hero h1 {
    font-size: 1.55rem !important;
    max-width: 12ch !important;
  }
  .hero-lead {
    font-size: 0.85rem !important;
  }
  .hero-search {
    width: calc(100% - 1rem) !important;
    top: 60% !important;
  }
  .hero-search-value {
    font-size: 0.75rem !important;
  }
  .hero-search-btn {
    width: 38px !important;
    height: 38px !important;
  }
}

/* Fix open animation + centering on mobile for popovers */
@media (max-width: 767px) {
  .hero-search-popover {
    transform: translateX(-50%) translateY(8px) scale(0.97) !important;
  }
  .hero-search-popover.is-open {
    transform: translateX(-50%) translateY(0) scale(1) !important;
  }
}


/* ===== Hero: title above search, lead below (v80) ===== */
.hero-content--title {
  position: absolute;
  z-index: 3;
  left: 50%;
  top: 38%;
  transform: translate(-50%, -100%);
  width: min(100%, 40rem);
  padding: 0 1.25rem 0.85rem;
  margin: 0;
  inset: auto;
  height: auto;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: flex-end;
  text-align: center;
  pointer-events: none;
  box-sizing: border-box;
}
.hero-content--title h1 {
  margin: 0 !important;
  text-align: center;
}

.hero-search {
  top: 42% !important;
  transform: translate(-50%, 0) !important;
}

.hero-content--lead {
  position: absolute;
  z-index: 3;
  left: 50%;
  top: calc(42% + 3.6rem);
  transform: translateX(-50%);
  width: min(100%, 36rem);
  padding: 0.85rem 1.25rem 0;
  margin: 0;
  inset: auto;
  height: auto;
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  pointer-events: none;
  box-sizing: border-box;
}
.hero-content--lead .hero-lead {
  margin: 0 auto !important;
  font-size: clamp(0.85rem, 1.6vw, 1.05rem) !important;
  line-height: 1.45 !important;
  max-width: 28rem !important;
  opacity: 0.92;
  text-shadow: 0 1px 12px rgba(0, 0, 0, 0.35);
}

@media (max-width: 767px) {
  .hero-content--title {
    top: 40% !important;
    transform: translate(-50%, -100%) !important;
    width: 100% !important;
    padding: 0 1.1rem 0.7rem !important;
    height: auto !important;
    inset: auto !important;
  }
  .hero-content--title h1 {
    font-size: clamp(1.65rem, 7vw, 2.05rem) !important;
    max-width: 14ch !important;
    line-height: 1.15 !important;
    text-shadow: 0 2px 18px rgba(0, 0, 0, 0.4);
  }
  .hero-search {
    top: 42% !important;
    transform: translate(-50%, 0) !important;
  }
  .hero-content--lead {
    top: calc(42% + 3.35rem) !important;
    transform: translateX(-50%) !important;
    width: 100% !important;
    padding: 0.7rem 1.15rem 0 !important;
    height: auto !important;
    inset: auto !important;
  }
  .hero-content--lead .hero-lead {
    font-size: 0.82rem !important;
    line-height: 1.4 !important;
    max-width: 18rem !important;
    padding: 0 !important;
  }
}

@media (min-width: 768px) {
  .hero-content--title {
    top: 40%;
    padding-bottom: 1rem;
  }
  .hero-search {
    top: 44% !important;
  }
  .hero-content--lead {
    top: calc(44% + 3.9rem);
  }
  .hero-content--lead .hero-lead {
    font-size: 1.02rem !important;
    max-width: 32rem !important;
  }
}


/* ===== Hero stack: all centered as one unit (v81) ===== */
.hero {
  position: relative;
}
.hero-stack {
  position: absolute !important;
  z-index: 4 !important;
  left: 50% !important;
  top: 50% !important;
  transform: translate(-50%, -50%) !important;
  width: min(calc(100% - 1.5rem), 440px) !important;
  max-width: calc(100vw - 1.5rem) !important;
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 0.85rem !important;
  text-align: center !important;
  box-sizing: border-box !important;
  margin: 0 !important;
  padding: 0 !important;
  pointer-events: none; /* title/lead don't block; search re-enables */
}

/* Reset previous absolute positions on children */
.hero-stack .hero-content,
.hero-stack .hero-content--title,
.hero-stack .hero-content--lead {
  position: static !important;
  inset: auto !important;
  top: auto !important;
  left: auto !important;
  right: auto !important;
  bottom: auto !important;
  transform: none !important;
  width: 100% !important;
  max-width: 100% !important;
  height: auto !important;
  margin: 0 !important;
  padding: 0 !important;
  display: block !important;
  text-align: center !important;
  pointer-events: none !important;
  box-sizing: border-box !important;
}

.hero-stack .hero-content--title h1 {
  margin: 0 auto 0.15rem !important;
  text-align: center !important;
  font-size: clamp(1.75rem, 5.5vw, 3.25rem) !important;
  line-height: 1.12 !important;
  max-width: 16ch !important;
  text-shadow: 0 2px 18px rgba(0, 0, 0, 0.35);
}

.hero-stack .hero-search {
  position: relative !important;
  left: auto !important;
  top: auto !important;
  right: auto !important;
  bottom: auto !important;
  transform: none !important;
  width: 100% !important;
  max-width: 100% !important;
  margin: 0 !important;
  pointer-events: auto !important; /* clickable */
  z-index: 5 !important;
}

.hero-stack .hero-content--lead .hero-lead {
  margin: 0.15rem auto 0 !important;
  text-align: center !important;
  font-size: clamp(0.82rem, 1.8vw, 1rem) !important;
  line-height: 1.45 !important;
  max-width: 22rem !important;
  opacity: 0.95;
  text-shadow: 0 1px 12px rgba(0, 0, 0, 0.35);
  color: inherit;
}

/* Mobile */
@media (max-width: 767px) {
  .hero-media {
    position: relative !important;
    height: calc(100svh - var(--header-total, 78px)) !important;
    min-height: 480px !important;
  }
  /* stack sits over the photo */
  .hero-stack {
    /* position relative to .hero which contains media */
    width: min(calc(100% - 1.25rem), 400px) !important;
    gap: 0.75rem !important;
  }
  .hero-stack .hero-content--title h1 {
    font-size: clamp(1.65rem, 7vw, 2.05rem) !important;
    max-width: 14ch !important;
  }
  .hero-stack .hero-content--lead .hero-lead {
    font-size: 0.82rem !important;
    max-width: 18rem !important;
  }
  .hero-stack .hero-search {
    padding: 5px !important;
  }
  .hero-stack .hero-search-btn {
    width: 42px !important;
    height: 42px !important;
  }
}

/* Desktop: slightly wider stack */
@media (min-width: 768px) {
  .hero-stack {
    width: min(calc(100% - 2rem), 460px) !important;
    gap: 1rem !important;
  }
  .hero-stack .hero-content--lead .hero-lead {
    font-size: 1rem !important;
    max-width: 28rem !important;
  }
}

/* Popovers stay usable under search */
.hero-stack .hero-search-popover {
  position: absolute !important;
  z-index: 20 !important;
}


/* Ensure stack centers on the photo box on mobile */
@media (max-width: 767px) {
  .hero {
    height: auto !important;
    min-height: 0 !important;
    display: block !important;
    position: relative !important;
  }
  .hero-media {
    display: block !important;
    width: 100% !important;
  }
  /* stack is positioned vs .hero; make hero height = media height */
  .hero:has(.hero-media) {
    /* media defines height */
  }
}


/* ===== Hero title single line (v82) ===== */
.hero-stack .hero-content--title h1,
.hero-content--title h1,
.hero h1 {
  max-width: none !important;
  width: max-content !important;
  max-width: min(100%, 96vw) !important;
  white-space: nowrap !important;
  font-size: clamp(1.15rem, 4.2vw, 2.75rem) !important;
  line-height: 1.15 !important;
  margin-left: auto !important;
  margin-right: auto !important;
  text-align: center !important;
}
@media (max-width: 767px) {
  .hero-stack .hero-content--title h1,
  .hero-content--title h1,
  .hero h1 {
    white-space: nowrap !important;
    max-width: calc(100vw - 1.5rem) !important;
    width: auto !important;
    font-size: clamp(1.05rem, 5.8vw, 1.55rem) !important;
    letter-spacing: -0.01em;
  }
}
@media (max-width: 359px) {
  .hero-stack .hero-content--title h1,
  .hero h1 {
    font-size: clamp(0.95rem, 5.2vw, 1.25rem) !important;
  }
}


/* ===== Cooperation page + site footer links (v83) ===== */
.page-hero--coop {
  margin-top: calc(var(--header-total, 80px) + 2.25rem) !important;
  padding-top: 0.75rem !important;
  padding-bottom: 1.25rem !important;
  text-align: center;
}
.section--coop {
  padding-bottom: 3rem;
}
.coop-panels {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1rem;
  max-width: 52rem;
  margin: 0 auto 1.75rem;
}
@media (min-width: 720px) {
  .coop-panels {
    grid-template-columns: repeat(3, 1fr);
    gap: 1.1rem;
    max-width: 64rem;
  }
}
.coop-card {
  background: var(--card-bg, #3d2d2e);
  border: 1px solid var(--card-border, rgba(251, 245, 234, 0.16));
  border-radius: 20px;
  padding: 1.35rem 1.2rem 1.4rem;
  text-align: center;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.12);
  color: var(--card-ink, #fbf5ea);
}
.coop-card-title {
  font-family: var(--font-display);
  font-weight: 400;
  font-style: italic;
  font-size: clamp(1.2rem, 2.2vw, 1.45rem);
  margin: 0 0 0.65rem;
  color: #f5edd6;
}
.coop-card-body {
  margin: 0;
  font-size: 0.92rem;
  line-height: 1.5;
  color: rgba(245, 237, 214, 0.78);
}
.coop-cta-wrap {
  text-align: center;
  margin: 0 auto 1rem;
}
.coop-cta {
  display: inline-flex !important;
  min-height: 48px !important;
  padding: 0 1.5rem !important;
}

/* Real footer with links (replaces empty slim) */
.site-footer.site-footer--links {
  display: block !important;
  margin-top: 0 !important;
  padding: 2rem var(--pad-x) calc(1.25rem + env(safe-area-inset-bottom, 0px)) !important;
  background: #482e2c !important;
  color: rgba(245, 237, 214, 0.75);
  min-height: 0 !important;
  height: auto !important;
  border-top: 1px solid rgba(193, 176, 148, 0.18);
}
.footer-links-inner {
  max-width: var(--container);
  margin: 0 auto;
  display: grid;
  grid-template-columns: 1fr;
  gap: 1.5rem;
  text-align: center;
}
@media (min-width: 640px) {
  .footer-links-inner {
    grid-template-columns: 1fr 1fr;
    text-align: left;
    align-items: start;
  }
  .footer-col--brand {
    text-align: right;
  }
}
.footer-col {
  display: flex;
  flex-direction: column;
  gap: 0.45rem;
  align-items: center;
}
@media (min-width: 640px) {
  .footer-col { align-items: flex-start; }
  .footer-col--brand { align-items: flex-end; }
}
.footer-col-title {
  font-size: 0.72rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: #c1b094;
  margin: 0 0 0.35rem;
  font-weight: 700;
}
.footer-col a {
  color: rgba(245, 237, 214, 0.85);
  text-decoration: none;
  font-size: 0.92rem;
  line-height: 1.6;
}
.footer-col a:hover {
  color: #e0b57a;
}
.footer-brand-link {
  font-family: var(--font-display);
  font-style: italic;
  font-size: 1.25rem;
  color: #f5edd6 !important;
}
.footer-copy-line {
  margin: 0.35rem 0 0;
  font-size: 0.75rem;
  color: rgba(193, 176, 148, 0.75);
}

/* club page was hiding footer — only hide true slim empty, not links footer */
body:has(.club-section--page) .site-footer--slim {
  display: none !important;
}
body:has(.club-section--page) .site-footer--links {
  display: block !important;
}


/* ===== Footer centered nav + logo (v84) ===== */
.site-footer.site-footer--links {
  text-align: center !important;
}
.footer-links-inner {
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 1.35rem !important;
  text-align: center !important;
  grid-template-columns: none !important;
}
.footer-col,
.footer-col--brand {
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  justify-content: center !important;
  text-align: center !important;
  width: 100% !important;
  max-width: 32rem;
}
.footer-col-title {
  text-align: center !important;
  width: 100%;
}
.footer-col:first-child {
  flex-direction: row !important;
  flex-wrap: wrap !important;
  justify-content: center !important;
  gap: 0.65rem 1.25rem !important;
}
.footer-col:first-child .footer-col-title {
  flex: 0 0 100%;
  margin-bottom: 0.15rem;
}
.footer-brand-link,
.footer-copy-line {
  text-align: center !important;
}
@media (min-width: 640px) {
  .footer-links-inner {
    grid-template-columns: none !important;
    text-align: center !important;
  }
  .footer-col,
  .footer-col--brand {
    align-items: center !important;
    text-align: center !important;
  }
}


/* ===== Footer: no title, logo under nav (v85) ===== */
.footer-col-title { display: none !important; }
.footer-links-inner {
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 1.15rem !important;
  text-align: center !important;
}
.footer-col--nav {
  display: flex !important;
  flex-direction: row !important;
  flex-wrap: wrap !important;
  justify-content: center !important;
  align-items: center !important;
  gap: 0.65rem 1.25rem !important;
  width: 100% !important;
}
.footer-col--brand {
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  justify-content: center !important;
  width: 100% !important;
  margin-top: 0.15rem;
}
.footer-site-logo {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  max-height: var(--logo-h, 42px) !important;
  margin: 0 auto !important;
  text-decoration: none !important;
}
.footer-site-logo-img,
.footer-site-logo .cta-brand-logo-img,
.footer-site-logo .logo-img {
  height: var(--logo-h, 42px) !important;
  max-height: var(--logo-h, 42px) !important;
  width: auto !important;
  max-width: min(200px, 50vw) !important;
  object-fit: contain !important;
  /* same light treatment as homepage CTA footer logo */
  filter: brightness(0) invert(0.93) !important;
  opacity: 0.95 !important;
  margin: 0 auto !important;
  display: block !important;
}


/* ===== Contact icons = book CTA burgundy (v86) ===== */
.cta-contact .cta-social,
.cta-contact .cta-social--whatsapp,
.cta-contact .cta-social--phone,
.cta-contact .cta-social--telegram,
.cta-contact .cta-social--email,
.cta-contact .cta-social--instagram,
.contact-channels .cta-social,
.contact-channels .cta-social--whatsapp,
.contact-channels .cta-social--phone,
.contact-channels .cta-social--telegram,
.contact-channels .cta-social--email,
.contact-channels .cta-social--instagram,
a.cta-social {
  background: linear-gradient(165deg, #5c1a28 0%, #3d101c 48%, #240a12 100%) !important;
  background-color: #3d101c !important;
  color: #f7ebe6 !important;
  border: 1px solid rgba(180, 140, 120, 0.22) !important;
  box-shadow:
    0 1px 0 rgba(255, 210, 200, 0.1) inset,
    0 6px 16px rgba(20, 6, 10, 0.4) !important;
  transition: transform 0.2s ease, filter 0.2s ease, box-shadow 0.2s ease !important;
}
.cta-contact .cta-social:hover,
.contact-channels .cta-social:hover,
a.cta-social:hover {
  background: linear-gradient(165deg, #6e2232 0%, #4a1422 48%, #2c0c16 100%) !important;
  background-color: #4a1422 !important;
  color: #fff6f2 !important;
  filter: brightness(1.06);
  transform: translateY(-1px) scale(1.04);
  box-shadow:
    0 1px 0 rgba(255, 215, 205, 0.14) inset,
    0 8px 20px rgba(20, 6, 10, 0.5) !important;
}
.cta-contact .cta-social svg,
.contact-channels .cta-social svg,
a.cta-social svg {
  color: #f7ebe6 !important;
  fill: currentColor !important;
}
.cta-contact .cta-social svg path,
.contact-channels .cta-social svg path,
a.cta-social svg path {
  fill: currentColor !important;
}


/* ===== Contact icons: crisper softer circular ends (v87) ===== */
.cta-contact .cta-social,
.contact-channels .cta-social,
a.cta-social,
.cta-social {
  border-radius: 50% !important;
  overflow: hidden !important;
  -webkit-backface-visibility: hidden;
  backface-visibility: hidden;
  -webkit-transform: translateZ(0);
  transform: translateZ(0);
  isolation: isolate;
  -webkit-font-smoothing: antialiased;
  /* slightly softer edge */
  box-shadow:
    0 1px 0 rgba(255, 210, 200, 0.12) inset,
    0 0 0 0.5px rgba(255, 200, 190, 0.08),
    0 6px 16px rgba(20, 6, 10, 0.4) !important;
  transition:
    transform 0.28s cubic-bezier(0.22, 1, 0.36, 1),
    box-shadow 0.28s cubic-bezier(0.22, 1, 0.36, 1),
    filter 0.28s ease,
    background 0.28s ease !important;
}
.cta-contact .cta-social:hover,
.contact-channels .cta-social:hover,
a.cta-social:hover,
.cta-social:hover {
  border-radius: 50% !important;
  transform: translateY(-1px) translateZ(0) scale(1.05) !important;
  filter: brightness(1.06);
  box-shadow:
    0 1px 0 rgba(255, 220, 210, 0.16) inset,
    0 0 0 0.5px rgba(255, 200, 190, 0.12),
    0 10px 24px rgba(20, 6, 10, 0.5) !important;
}
.cta-contact .cta-social:active,
.contact-channels .cta-social:active,
.cta-social:active {
  border-radius: 50% !important;
  transform: translateY(0) translateZ(0) scale(0.98) !important;
  transition-duration: 0.12s !important;
}
.cta-contact .cta-social svg,
.contact-channels .cta-social svg,
.cta-social svg {
  display: block !important;
  shape-rendering: geometricPrecision;
}


/* ===== Contact icons: elegant rim highlight (v88) ===== */
.cta-contact .cta-social,
.contact-channels .cta-social,
a.cta-social.cta-social--whatsapp,
a.cta-social.cta-social--phone,
a.cta-social.cta-social--telegram,
a.cta-social.cta-social--email,
a.cta-social.cta-social--instagram,
.cta-social {
  position: relative !important;
  border-radius: 50% !important;
  overflow: visible !important; /* allow soft outer glow */
  border: none !important;
  background:
    radial-gradient(circle at 32% 28%, rgba(255, 230, 220, 0.22) 0%, rgba(255, 230, 220, 0) 42%),
    linear-gradient(165deg, #6a2030 0%, #3d101c 48%, #1f080f 100%) !important;
  background-color: #3d101c !important;
  box-shadow:
    /* inner top highlight */
    inset 0 1.5px 0 rgba(255, 228, 214, 0.28),
    inset 0 -1.5px 0 rgba(0, 0, 0, 0.28),
    /* champagne rim */
    0 0 0 1px rgba(224, 181, 122, 0.35),
    0 0 0 2px rgba(92, 26, 40, 0.55),
    /* soft outer glow */
    0 6px 18px rgba(20, 6, 10, 0.45),
    0 0 22px rgba(160, 60, 80, 0.12) !important;
  -webkit-backface-visibility: hidden;
  backface-visibility: hidden;
  transform: translateZ(0);
  isolation: isolate;
}
/* Fine glass rim ring */
.cta-contact .cta-social::before,
.contact-channels .cta-social::before,
.cta-social::before {
  content: "" !important;
  position: absolute !important;
  inset: 2px !important;
  border-radius: 50% !important;
  border: 1px solid rgba(255, 236, 220, 0.14) !important;
  box-shadow: inset 0 1px 0 rgba(255, 240, 230, 0.12) !important;
  pointer-events: none !important;
  z-index: 1 !important;
}
/* Soft specular arc at top */
.cta-contact .cta-social::after,
.contact-channels .cta-social::after,
.cta-social::after {
  content: "" !important;
  position: absolute !important;
  left: 18% !important;
  right: 18% !important;
  top: 3px !important;
  height: 38% !important;
  border-radius: 50% !important;
  background: linear-gradient(
    180deg,
    rgba(255, 245, 235, 0.28) 0%,
    rgba(255, 245, 235, 0.08) 45%,
    rgba(255, 245, 235, 0) 100%
  ) !important;
  pointer-events: none !important;
  z-index: 1 !important;
}
.cta-contact .cta-social svg,
.contact-channels .cta-social svg,
.cta-social svg {
  position: relative !important;
  z-index: 2 !important;
  color: #f7ebe6 !important;
  filter: drop-shadow(0 1px 1px rgba(0, 0, 0, 0.25));
}
.cta-contact .cta-social:hover,
.contact-channels .cta-social:hover,
.cta-social:hover {
  background:
    radial-gradient(circle at 32% 28%, rgba(255, 235, 225, 0.28) 0%, rgba(255, 235, 225, 0) 45%),
    linear-gradient(165deg, #7a2838 0%, #4a1422 48%, #2a0c14 100%) !important;
  box-shadow:
    inset 0 1.5px 0 rgba(255, 232, 220, 0.35),
    inset 0 -1.5px 0 rgba(0, 0, 0, 0.25),
    0 0 0 1px rgba(232, 200, 150, 0.5),
    0 0 0 2px rgba(110, 34, 50, 0.45),
    0 10px 26px rgba(20, 6, 10, 0.55),
    0 0 28px rgba(180, 70, 90, 0.18) !important;
  transform: translateY(-1px) translateZ(0) scale(1.05) !important;
  filter: none;
}
.cta-contact .cta-social:hover::before,
.contact-channels .cta-social:hover::before,
.cta-social:hover::before {
  border-color: rgba(255, 240, 230, 0.22) !important;
}
.cta-contact .cta-social:hover::after,
.contact-channels .cta-social:hover::after,
.cta-social:hover::after {
  background: linear-gradient(
    180deg,
    rgba(255, 248, 240, 0.38) 0%,
    rgba(255, 245, 235, 0.1) 50%,
    rgba(255, 245, 235, 0) 100%
  ) !important;
}


/* ===== Contact icons fill = exact book CTA burgundy (v89) ===== */
.cta-contact .cta-social,
.contact-channels .cta-social,
a.cta-social.cta-social--whatsapp,
a.cta-social.cta-social--phone,
a.cta-social.cta-social--telegram,
a.cta-social.cta-social--email,
a.cta-social.cta-social--instagram,
.cta-social {
  background: linear-gradient(165deg, #5c1a28 0%, #3d101c 48%, #240a12 100%) !important;
  background-color: #3d101c !important;
  color: #f7ebe6 !important;
  /* keep refined rim, no light fill wash inside */
  box-shadow:
    0 1px 0 rgba(255, 210, 200, 0.1) inset,
    0 0 0 1px rgba(180, 140, 120, 0.22),
    0 0 0 1px rgba(20, 6, 10, 0.35),
    0 8px 22px rgba(20, 6, 10, 0.5) !important;
}
.cta-contact .cta-social::after,
.contact-channels .cta-social::after,
.cta-social::after {
  /* remove bright internal specular wash so fill matches book button */
  opacity: 0.35 !important;
  background: linear-gradient(
    180deg,
    rgba(255, 245, 235, 0.12) 0%,
    rgba(255, 245, 235, 0) 70%
  ) !important;
  height: 30% !important;
  top: 4px !important;
}
.cta-contact .cta-social::before,
.contact-channels .cta-social::before,
.cta-social::before {
  border-color: rgba(255, 236, 220, 0.1) !important;
  box-shadow: none !important;
}
.cta-contact .cta-social:hover,
.contact-channels .cta-social:hover,
.cta-social:hover {
  background: linear-gradient(165deg, #6e2232 0%, #4a1422 48%, #2c0c16 100%) !important;
  background-color: #4a1422 !important;
  box-shadow:
    0 1px 0 rgba(255, 215, 205, 0.14) inset,
    0 0 0 1px rgba(180, 140, 120, 0.3),
    0 0 0 1px rgba(20, 6, 10, 0.4),
    0 10px 26px rgba(20, 6, 10, 0.55) !important;
}


/* ===== Apt card photo frame = book CTA burgundy (v91) ===== */
.apt-card-media,
a.apt-card-media,
.apt-card-media--video {
  border: 1.5px solid rgba(92, 26, 40, 0.85) !important;
  border-radius: 16px !important;
  box-shadow:
    0 0 0 1px rgba(61, 16, 28, 0.35),
    0 1px 0 rgba(255, 210, 200, 0.08) inset,
    0 8px 22px rgba(20, 6, 10, 0.28) !important;
  box-sizing: border-box !important;
  overflow: hidden !important;
  background: #240a12 !important;
  transition:
    border-color 0.25s ease,
    box-shadow 0.25s ease,
    transform 0.25s ease !important;
}
.apt-card:hover .apt-card-media,
.apt-card:hover a.apt-card-media {
  border-color: rgba(110, 34, 50, 0.95) !important;
  box-shadow:
    0 0 0 1px rgba(92, 26, 40, 0.45),
    0 1px 0 rgba(255, 215, 205, 0.12) inset,
    0 12px 28px rgba(20, 6, 10, 0.38) !important;
}
/* Keep image clipped to rounded frame */
.apt-card-media img,
.apt-card-media .apt-card-video,
.apt-card-media .apt-card-poster {
  border-radius: inherit;
}


/* ===== Coop: 4 cards incl. corporations (v92) ===== */
.coop-panels {
  grid-template-columns: 1fr !important;
  max-width: 52rem !important;
}
@media (min-width: 640px) {
  .coop-panels {
    grid-template-columns: 1fr 1fr !important;
    max-width: 48rem !important;
    gap: 1.1rem !important;
  }
}
@media (min-width: 960px) {
  .coop-panels {
    grid-template-columns: repeat(4, 1fr) !important;
    max-width: 72rem !important;
  }
}


/* ===== Intro: circular mini photo on the right (v93) ===== */
.intro-wrap--with-photo {
  display: flex !important;
  flex-direction: row !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 1.75rem 2.25rem !important;
  text-align: left !important;
  max-width: min(52rem, 100%) !important;
  margin-left: auto !important;
  margin-right: auto !important;
}
.intro-wrap--with-photo .intro-copy {
  flex: 1 1 auto;
  min-width: 0;
  max-width: 36rem;
  text-align: center;
}
.intro-wrap--with-photo .intro-eyebrow,
.intro-wrap--with-photo .intro-title,
.intro-wrap--with-photo .intro-body {
  text-align: center !important;
  margin-left: auto !important;
  margin-right: auto !important;
}
.intro-photo {
  flex: 0 0 auto;
  width: 112px;
  height: 112px;
  border-radius: 50%;
  overflow: hidden;
  position: relative;
  border: 2px solid rgba(193, 176, 148, 0.45);
  box-shadow:
    0 0 0 1px rgba(72, 46, 44, 0.25),
    0 8px 24px rgba(0, 0, 0, 0.22);
  background: #3d2d2e;
}
.intro-photo-img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center top;
  display: block;
}
@media (min-width: 768px) {
  .intro-photo {
    width: 132px;
    height: 132px;
  }
  .intro-wrap--with-photo {
    gap: 2.5rem;
  }
}
@media (max-width: 559px) {
  .intro-wrap--with-photo {
    flex-direction: column-reverse !important;
    gap: 1.35rem !important;
  }
  .intro-photo {
    width: 96px;
    height: 96px;
  }
}


/* ===== Intro photo larger + further right (v94) ===== */
.intro-wrap--with-photo {
  max-width: min(58rem, 100%) !important;
  justify-content: space-between !important;
  gap: 2rem 3rem !important;
  padding-left: 0.5rem !important;
  padding-right: 0.25rem !important;
}
.intro-wrap--with-photo .intro-copy {
  flex: 1 1 auto;
  max-width: 34rem;
  margin-right: auto;
  margin-left: 0;
}
.intro-photo {
  width: 168px !important;
  height: 168px !important;
  margin-left: auto !important;
  margin-right: 0.25rem !important;
  flex-shrink: 0 !important;
}
@media (min-width: 768px) {
  .intro-photo {
    width: 196px !important;
    height: 196px !important;
    margin-right: 0.5rem !important;
  }
  .intro-wrap--with-photo {
    max-width: min(62rem, 100%) !important;
    gap: 2.5rem 3.5rem !important;
    padding-right: 0.5rem !important;
  }
}
@media (min-width: 1100px) {
  .intro-photo {
    width: 220px !important;
    height: 220px !important;
    margin-right: 0.75rem !important;
  }
  .intro-wrap--with-photo {
    max-width: min(68rem, 100%) !important;
  }
}
@media (max-width: 559px) {
  .intro-wrap--with-photo {
    justify-content: center !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
  }
  .intro-wrap--with-photo .intro-copy {
    margin-left: auto !important;
    margin-right: auto !important;
  }
  .intro-photo {
    width: 140px !important;
    height: 140px !important;
    margin-left: auto !important;
    margin-right: auto !important;
  }
}


/* ===== Why us: up to 7 cards (v95) ===== */
.why-us-grid {
  grid-template-columns: 1fr !important;
  max-width: 56rem !important;
}
@media (min-width: 640px) {
  .why-us-grid {
    grid-template-columns: 1fr 1fr !important;
  }
}
@media (min-width: 960px) {
  .why-us-grid {
    grid-template-columns: 1fr 1fr 1fr !important;
    max-width: 64rem !important;
  }
}


/* ===== Intro portrait crop for full-body photo (v96) ===== */
.intro-photo-img {
  object-fit: cover !important;
  object-position: center 12% !important;
}


/* ===== Intro portrait face-centered (v97) ===== */
.intro-photo-img {
  object-position: center center !important;
}


/* ===== Intro: bigger photo, text closer (v98) ===== */
.intro-wrap--with-photo {
  max-width: min(54rem, 100%) !important;
  justify-content: center !important;
  align-items: center !important;
  gap: 1.15rem 1.5rem !important;
  padding-left: 0.5rem !important;
  padding-right: 0.5rem !important;
}
.intro-wrap--with-photo .intro-copy {
  flex: 1 1 auto !important;
  max-width: 30rem !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
}
.intro-photo {
  width: 220px !important;
  height: 220px !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
  flex-shrink: 0 !important;
}
@media (min-width: 768px) {
  .intro-wrap--with-photo {
    gap: 1.35rem 1.75rem !important;
    max-width: min(58rem, 100%) !important;
  }
  .intro-photo {
    width: 260px !important;
    height: 260px !important;
  }
  .intro-wrap--with-photo .intro-copy {
    max-width: 32rem !important;
  }
}
@media (min-width: 1100px) {
  .intro-photo {
    width: 280px !important;
    height: 280px !important;
  }
  .intro-wrap--with-photo {
    gap: 1.5rem 2rem !important;
    max-width: min(62rem, 100%) !important;
  }
}
@media (max-width: 559px) {
  .intro-wrap--with-photo {
    flex-direction: column-reverse !important;
    gap: 1.15rem !important;
  }
  .intro-photo {
    width: 180px !important;
    height: 180px !important;
    margin: 0 auto !important;
  }
  .intro-wrap--with-photo .intro-copy {
    max-width: 100% !important;
    margin: 0 auto !important;
  }
}


/* ===== Intro body paragraphs readable (v99) ===== */
.intro-body {
  max-width: 36rem;
  margin-left: auto;
  margin-right: auto;
}
.intro-body p {
  margin: 0 0 0.95rem !important;
  line-height: 1.65 !important;
  font-size: inherit;
  text-align: center !important;
  color: inherit;
}
.intro-body p:last-child {
  margin-bottom: 0 !important;
}
/* Slight emphasis on welcome closing lines */
.intro-body p:nth-last-child(2),
.intro-body p:last-child {
  font-weight: 500;
}
.intro-wrap--with-photo .intro-body {
  max-width: 32rem !important;
}


/* ===== Intro welcome lines (v100) ===== */
.intro-body p:nth-last-child(2) {
  margin-top: 1.15rem !important;
  font-weight: 600 !important;
}
.intro-body p:last-child {
  font-family: var(--font-display) !important;
  font-style: italic !important;
  font-size: 1.15em !important;
  font-weight: 400 !important;
  opacity: 0.95;
}


/* ===== Intro: founder line stands gently (v101) ===== */
.intro-body p:nth-child(2) {
  font-weight: 500 !important;
  letter-spacing: 0.01em;
  margin-top: 0.35rem !important;
  margin-bottom: 1.1rem !important;
  opacity: 0.95;
}


/* ===== Intro body: clean readable rhythm (v102) ===== */
.intro-body {
  max-width: 34rem !important;
  margin-left: auto !important;
  margin-right: auto !important;
  text-align: center !important;
}
.intro-body .intro-p,
.intro-body p {
  margin: 0 0 1rem !important;
  padding: 0 !important;
  line-height: 1.7 !important;
  font-size: 0.98rem !important;
  font-weight: 400 !important;
  letter-spacing: 0.01em;
  text-align: center !important;
  white-space: normal !important;
  word-spacing: normal !important;
}
.intro-body .intro-p--open {
  margin-bottom: 0.55rem !important;
}
.intro-body .intro-p--role {
  margin-top: 0 !important;
  margin-bottom: 1.25rem !important;
  font-weight: 500 !important;
  letter-spacing: 0.015em;
  opacity: 0.95;
}
.intro-body .intro-p--welcome {
  margin-top: 1.35rem !important;
  margin-bottom: 0.4rem !important;
  font-weight: 600 !important;
}
.intro-body .intro-p--tagline {
  margin-top: 0 !important;
  margin-bottom: 0 !important;
  font-family: var(--font-display) !important;
  font-style: italic !important;
  font-size: 1.2rem !important;
  font-weight: 400 !important;
  line-height: 1.45 !important;
  opacity: 0.95;
}
.intro-body .intro-p:last-child {
  margin-bottom: 0 !important;
}
@media (max-width: 559px) {
  .intro-body .intro-p,
  .intro-body p {
    font-size: 0.94rem !important;
    line-height: 1.65 !important;
  }
  .intro-body .intro-p--tagline {
    font-size: 1.1rem !important;
  }
}


/* ===== Extras: book + WhatsApp side by side (v103) ===== */
.extras-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem;
  justify-content: center;
  align-items: center;
  margin: 0.85rem 0 0.35rem;
}
.extras-actions .extras-book-btn,
.extras-actions .extras-request-btn {
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  min-height: 48px;
  padding: 0 1.35rem !important;
  width: auto !important;
  margin: 0 !important;
  border-radius: 999px !important;
  text-decoration: none;
  font-weight: 700;
  white-space: nowrap;
}
.extras-actions .extras-book-btn {
  min-width: min(220px, 100%);
}
.extras-actions .extras-request-btn {
  min-width: min(240px, 100%);
}
.extras-actions--always {
  margin-top: 1rem;
}
.detail-section--extras:has(#extras-summary:not([hidden])) .extras-actions--always {
  display: none !important;
}
@media (max-width: 560px) {
  .extras-actions {
    flex-direction: column;
    width: 100%;
  }
  .extras-actions .extras-book-btn,
  .extras-actions .extras-request-btn {
    width: 100% !important;
    min-width: 0;
  }
}
