/* ==========================================================================
   Velmont - stiluri proprii peste Bootstrap 5.3 (local, assets/vendor/bootstrap)

   Convenții
   - toate clasele proprii au prefixul vm- (Velmont); Bootstrap rămâne pentru grid, modaluri,
     carusel, tab-uri și tooltip-uri
   - culorile vin din variabilele de mai jos; nu folosiți culori scrise direct în componente noi
   - animațiile respectă prefers-reduced-motion
   - comportamentul (lightbox, hartă, subnavbar etc.) este în assets/js/main.js, declarat prin data-*
   - markup-ul este generat de tools/build_site.py; detalii în README.md

   Cuprins (în ordinea din fișier)
    1. Variabile, tipografie, culori utilitare, formulare
    2. Brand, header, meniu (culoare la hover), selector de limbă, buton pastilă .vm-btn, meniu lateral
    3. Pagina proiectului: intro, hero în straturi, modele + fațade, subnavbar
    4. Secțiuni generale, breadcrumb, hartă cu pini, dotări (choose)
    5. Butoane rotunde, imagini cu mărire, lightbox, chips, liste cu iconițe
    6. Pagina casei: hero, galerie + „Pe scurt”, planuri, navigare între case
    7. Footer, butoane ANPC, animații de apariție, pagini legale, „înapoi sus”
   ========================================================================== */

:root {
  --vm-green-900: #1b2e22;   /* culoarea principală (header fix, footer, text) */
  --vm-green-800: #243b2c;
  --vm-green-600: #3d5a45;
  --vm-olive: #7b8c55;       /* iconițe, eyebrow */
  --vm-sage: #b5c091;        /* accent (butoane, stări active) */
  --vm-cream: #f4f2eb;       /* fundaluri deschise */
  --vm-gold: #c2a14d;        /* casa curentă pe hartă */
  --vm-font-script: "Montserrat";   /* completare pentru alfabetele fără Montserrat (vezi mai jos) */

  --bs-primary: #3d5a45;
  --bs-primary-rgb: 61, 90, 69;
  --bs-link-color-rgb: 61, 90, 69;
  --bs-link-hover-color-rgb: 27, 46, 34;
}

/* Greacă și georgiană: Montserrat nu are aceste alfabete. Fontul potrivit se încarcă doar pe paginile limbii
   (LANGS[...]["font"] în tools/build_site.py) și e pus imediat după Montserrat în toate listele de fonturi. */
:root:lang(el) { --vm-font-script: "Manrope"; }
:root:lang(ka) {
  --vm-font-script: "Noto Sans Georgian";
  --bs-body-font-family: "Noto Sans Georgian", system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
}

h1, h2, h3, h4, h5, h6,
.h1, .h2, .h3, .h4, .h5, .h6,
.font-heading {
  font-family: "Montserrat", var(--vm-font-script), var(--bs-body-font-family);
  font-weight: 700;
  letter-spacing: -0.01em;
}

/* Culori utilitare
   -------------------------------------------------------------------------- */
.bg-vm-dark  { background-color: var(--vm-green-900) !important; color: #fff; }
.bg-vm-green { background-color: var(--vm-green-800) !important; color: #fff; }
.bg-vm-cream { background-color: var(--vm-cream) !important; }
.bg-vm-olive { background-color: var(--vm-olive) !important; color: #fff; }
.text-vm-olive { color: var(--vm-olive) !important; }
.text-vm-sage  { color: var(--vm-sage) !important; }

.form-control:focus,
.form-select:focus,
.form-check-input:focus {
  border-color: var(--vm-olive);
  box-shadow: 0 0 0 0.25rem rgba(123, 140, 85, 0.25);
}
.form-check-input:checked { background-color: var(--vm-green-800); border-color: var(--vm-green-800); }

/* Brand
   -------------------------------------------------------------------------- */
.brand {
  display: inline-flex;
  align-items: center;
  gap: 0.6rem;
  color: #fff;
  text-decoration: none;
}
.brand:hover { color: #fff; }
.brand-mark { width: 42px; height: 26px; color: var(--vm-sage); flex-shrink: 0; }
.brand-name {
  display: block;
  font-family: "Cinzel", Georgia, serif;
  font-weight: 600;
  font-size: 1.35rem;
  letter-spacing: 0.08em;
  line-height: 1;
}
.brand-sub {
  display: block;
  margin-top: 0.2rem;
  font-size: 0.6rem;
  letter-spacing: 0.45em;
  text-transform: uppercase;
  color: var(--vm-sage);
}

/* Header (transparent peste hero, sticky la scroll)
   -------------------------------------------------------------------------- */
html { scroll-padding-top: 5.5rem; }

.vm-header {
  --vm-header-fg: #fff;
  --vm-header-line: rgba(255, 255, 255, 0.18);
  position: absolute;
  inset: 0 0 auto 0;
  z-index: 1030;
  color: var(--vm-header-fg);
}
.vm-header-inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1.5rem;
  max-width: 1680px;
  margin-inline: auto;
  padding: 1.35rem clamp(1rem, 3vw, 3rem);
  border-bottom: 1px solid var(--vm-header-line);
  transition: padding 0.3s ease;
}
.vm-header .brand-name { font-size: 1.5rem; }
.vm-header.is-sticky {
  --vm-header-fg: var(--vm-green-900);
  --vm-header-line: transparent;
  position: fixed;
  background-color: #fff;
  box-shadow: 0 2px 12px rgba(19, 30, 22, 0.1);
  animation: vm-header-in 0.7s ease forwards;
}
.vm-header.is-sticky .vm-header-inner { padding-block: 0.7rem; }
.vm-header.is-sticky .brand { color: var(--vm-green-900); }
.vm-header.is-sticky .brand-sub,
.vm-header.is-sticky .brand-mark { color: var(--vm-olive); }
@keyframes vm-header-in {
  from { transform: translateY(-100%); }
  to { transform: translateY(0); }
}

.vm-nav {
  padding-inline: 0.75rem;
  border: 1px solid var(--vm-header-line);
  border-radius: 3rem;
  background-color: rgba(255, 255, 255, 0.06);
  backdrop-filter: blur(6px);
}
.vm-header.is-sticky .vm-nav { background-color: #f1f1ec; }
.vm-menu,
.vm-submenu { margin: 0; padding: 0; list-style: none; }
.vm-menu > li { position: relative; display: inline-block; margin-inline: 1rem; }
.vm-menu > li > a {
  position: relative;
  display: inline-flex;
  align-items: center;
  gap: 0.3rem;
  padding-block: 1rem;
  font-weight: 500;
  line-height: 1;
  color: var(--vm-header-fg);
  text-decoration: none;
}
.vm-menu > li > a .bi { font-size: 0.7rem; transition: transform 0.3s ease; }
.vm-menu > li:hover > a .bi { transform: rotate(180deg); }

/* Hover / focus / pagina curentă: fără subliniere și fără bold, doar culoarea se schimbă.
   Header închis la culoare (text închis sau header fix alb): negru perfect. Header transparent peste imagine: alb pur. */
.vm-header { --vm-menu-link: rgba(255, 255, 255, 0.78); --vm-menu-link-hover: #fff; }
.vm-header-dark,
.vm-header.is-sticky { --vm-menu-link: rgba(27, 46, 34, 0.72); --vm-menu-link-hover: #000; }
.vm-menu > li > a { color: var(--vm-menu-link); transition: color 0.2s ease; }
.vm-menu > li:hover > a,
.vm-menu > li:focus-within > a,
.vm-menu > li.is-active > a { color: var(--vm-menu-link-hover); }

.vm-submenu {
  position: absolute;
  top: 115%;
  left: -1.75rem;
  width: 16rem;
  padding-block: 1rem;
  border-radius: 1.25rem;
  background-color: #fff;
  box-shadow: 0 6px 30px rgba(0, 0, 0, 0.1);
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.3s ease, top 0.3s ease, visibility 0.3s ease;
}
.vm-menu > li:hover > .vm-submenu,
.vm-menu > li:focus-within > .vm-submenu { top: 100%; opacity: 1; visibility: visible; }
.vm-submenu a {
  display: flex;
  align-items: center;
  gap: 0.65rem;
  padding: 0.6rem 1.75rem;
  font-weight: 500;
  color: rgba(27, 46, 34, 0.72);
  text-decoration: none;
  transition: color 0.2s ease;
}
.vm-submenu a:hover,
.vm-submenu a:focus-visible { color: #000; }
.vm-submenu a:hover .bi,
.vm-submenu a:focus-visible .bi { color: #000; }
.vm-submenu a .bi { font-size: 1rem; color: var(--vm-olive); }

.vm-header-actions { display: flex; align-items: center; gap: 1.25rem; }
.vm-header-phone {
  align-items: center;
  gap: 0.6rem;
  font-weight: 600;
  color: var(--vm-header-fg);
  text-decoration: none;
  white-space: nowrap;
}
.vm-header-phone:hover { color: var(--vm-gold); }
.vm-header-phone .bi { font-size: 1.15rem; }

.vm-burger {
  display: inline-flex;
  flex-direction: column;
  align-items: flex-end;
  justify-content: center;
  gap: 5px;
  width: 2.75rem;
  height: 2.75rem;
  padding: 0 0.8rem;
  border: 0;
  border-radius: 50%;
  background-color: var(--vm-sage);
}
.vm-burger span { display: block; height: 2px; border-radius: 2px; background-color: var(--vm-green-900); transition: width 0.3s ease; }
.vm-burger span:first-child { width: 0.8rem; }
.vm-burger span:last-child { width: 1.25rem; }
.vm-burger:hover span:first-child { width: 1.25rem; }
.vm-burger:hover span:last-child { width: 0.8rem; }

@media (max-width: 575.98px) {
  .vm-header .brand-name { font-size: 1.2rem; }
  .vm-header .brand-mark { width: 34px; }
}

/* Buton pastilă cu punct care se transformă în săgeată
   -------------------------------------------------------------------------- */
.vm-btn {
  --vm-btn-fg: var(--vm-green-900);
  --vm-btn-bg: transparent;
  --vm-btn-border: rgba(27, 46, 34, 0.35);
  --vm-btn-icon: #fff;
  display: inline-flex;
  align-items: center;
  gap: 0.85rem;
  height: 3.25rem;
  padding: 0.4rem 0.4rem 0.4rem 1.5rem;
  border: 1px solid var(--vm-btn-border);
  border-radius: 3rem;
  font-weight: 600;
  line-height: 1;
  white-space: nowrap;
  color: var(--vm-btn-fg);
  background-color: var(--vm-btn-bg);
  text-decoration: none;
  transition: background-color 0.3s ease, border-color 0.3s ease, color 0.3s ease;
}
.vm-btn:hover { color: var(--vm-btn-fg); border-color: var(--vm-btn-fg); }
.vm-btn-dot {
  position: relative;
  display: inline-flex;
  flex-shrink: 0;
  align-items: center;
  justify-content: center;
  width: 2.4rem;
  height: 2.4rem;
}
.vm-btn-dot::before {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  width: 0.6rem;
  height: 0.6rem;
  border-radius: 50%;
  background-color: var(--vm-btn-fg);
  transform: translate(-50%, -50%);
  transition: width 0.3s ease, height 0.3s ease;
}
.vm-btn-dot .bi {
  position: relative;
  font-size: 0.85rem;
  color: var(--vm-btn-icon);
  opacity: 0;
  transform: translateY(0.4rem);
  transition: opacity 0.3s ease 0.08s, transform 0.3s ease 0.08s;
}
.vm-btn:hover .vm-btn-dot::before,
.vm-btn:focus-visible .vm-btn-dot::before { width: 100%; height: 100%; }
.vm-btn:hover .vm-btn-dot .bi,
.vm-btn:focus-visible .vm-btn-dot .bi { opacity: 1; transform: none; }

.vm-btn-light { --vm-btn-fg: #fff; --vm-btn-border: rgba(255, 255, 255, 0.45); --vm-btn-icon: var(--vm-green-900); }
.vm-btn-accent { --vm-btn-fg: var(--vm-green-900); --vm-btn-bg: var(--vm-sage); --vm-btn-border: var(--vm-sage); --vm-btn-icon: var(--vm-sage); }
.vm-btn-accent:hover { border-color: var(--vm-sage); }
.vm-btn-block { justify-content: space-between; width: 100%; }
.vm-header.is-sticky .vm-btn-light { --vm-btn-fg: var(--vm-green-900); --vm-btn-border: rgba(27, 46, 34, 0.35); --vm-btn-icon: #fff; }
@media (max-width: 991.98px) {
  .vm-btn { height: 2.75rem; padding-left: 1.2rem; gap: 0.5rem; font-size: 0.95rem; }
  .vm-btn-dot { width: 2rem; height: 2rem; }
}

/* Selectorul de limbă
   - în header: buton-pastilă cu glob + cod (RO, EN...) și dropdown Bootstrap cu numele native
   - în meniul lateral și în footer: pastile .vm-lang-pill (limba curentă este plină)
   Linkurile au hreflang și lang, ca motoarele de căutare și cititoarele de ecran să știe limba țintă.
   -------------------------------------------------------------------------- */
.vm-lang-btn {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  padding: 0.5rem 0.85rem;
  border: 1px solid var(--vm-header-line);
  border-radius: 3rem;
  font-size: 0.85rem;
  font-weight: 600;
  letter-spacing: 0.04em;
  line-height: 1;
  color: var(--vm-header-fg);
  background-color: rgba(255, 255, 255, 0.06);
  transition: color 0.2s ease, border-color 0.2s ease;
}
.vm-header .vm-lang-btn { border-color: rgba(255, 255, 255, 0.35); }
.vm-header .vm-lang-btn:hover,
.vm-header .vm-lang-btn[aria-expanded="true"] { border-color: #fff; }
.vm-header-dark .vm-lang-btn,
.vm-header.is-sticky .vm-lang-btn { border-color: rgba(27, 46, 34, 0.2); background-color: transparent; }
.vm-header-dark .vm-lang-btn:hover,
.vm-header.is-sticky .vm-lang-btn:hover,
.vm-header-dark .vm-lang-btn[aria-expanded="true"],
.vm-header.is-sticky .vm-lang-btn[aria-expanded="true"] { border-color: var(--vm-green-900); }
.vm-lang-btn:hover,
.vm-lang-btn:focus-visible,
.vm-lang-btn[aria-expanded="true"] { color: var(--vm-menu-link-hover); }
.vm-lang-btn .bi-globe2 { font-size: 1rem; }
.vm-lang-caret { font-size: 0.6rem; transition: transform 0.3s ease; }
.vm-lang-btn[aria-expanded="true"] .vm-lang-caret { transform: rotate(180deg); }
.vm-lang-menu {
  --bs-dropdown-min-width: 13rem;
  --bs-dropdown-padding-y: 0.6rem;
  --bs-dropdown-border-width: 0;
  --bs-dropdown-border-radius: 1.1rem;
  --bs-dropdown-box-shadow: 0 6px 30px rgba(0, 0, 0, 0.12);
  --bs-dropdown-link-color: rgba(27, 46, 34, 0.72);
  --bs-dropdown-link-hover-color: #000;
  --bs-dropdown-link-hover-bg: var(--vm-cream);
  --bs-dropdown-link-active-color: var(--vm-green-900);
  --bs-dropdown-link-active-bg: transparent;
  --bs-dropdown-item-padding-x: 1.25rem;
  --bs-dropdown-item-padding-y: 0.55rem;
  max-height: min(80vh, 40rem);   /* 14 limbi: încap toate pe desktop; pe ecranele joase lista derulează */
  overflow-y: auto;
  margin-top: 0.6rem !important;
  box-shadow: var(--bs-dropdown-box-shadow);
}
.vm-lang-menu .dropdown-item { display: flex; align-items: center; gap: 0.7rem; font-weight: 500; }
.vm-lang-menu .dropdown-item.is-active { font-weight: 600; color: var(--vm-green-900); }
.vm-lang-menu .bi-check2 { color: var(--vm-olive); }
.vm-lang-code {
  display: inline-grid;
  place-items: center;
  width: 2rem;
  height: 1.5rem;
  border-radius: 0.4rem;
  font-size: 0.7rem;
  font-weight: 700;
  letter-spacing: 0.05em;
  color: var(--vm-green-900);
  background-color: rgba(181, 192, 145, 0.35);
}
.vm-lang-menu .is-active .vm-lang-code { color: #fff; background-color: var(--vm-green-800); }

.vm-lang-pills { display: flex; flex-wrap: wrap; align-items: center; gap: 0.4rem; }
.vm-lang-pill {
  display: inline-grid;
  place-items: center;
  min-width: 2.6rem;
  padding: 0.4rem 0.6rem;
  border: 1px solid rgba(27, 46, 34, 0.18);
  border-radius: 3rem;
  font-size: 0.75rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  line-height: 1;
  color: var(--vm-green-900);
  text-decoration: none;
  transition: color 0.2s ease, background-color 0.2s ease, border-color 0.2s ease;
}
.vm-lang-pill:hover { color: #000; border-color: var(--vm-green-900); }
.vm-lang-pill.is-active { color: #fff; border-color: var(--vm-green-800); background-color: var(--vm-green-800); }
.vm-footer .vm-lang-pills { margin-top: 1rem; }
.vm-footer .vm-lang-pills > .bi { margin-right: 0.35rem; font-size: 1rem; color: var(--vm-sage); }
.vm-footer .vm-lang-pill { border-color: rgba(255, 255, 255, 0.22); color: rgba(255, 255, 255, 0.8); }
.vm-footer .vm-lang-pill:hover { color: #fff; border-color: var(--vm-sage); }
.vm-footer .vm-lang-pill.is-active { color: var(--vm-green-900); border-color: var(--vm-sage); background-color: var(--vm-sage); }
@media (max-width: 575.98px) {
  .vm-header-actions { gap: 0.75rem; }
  .vm-lang-btn { padding: 0.45rem 0.7rem; }
}

/* Meniu lateral (mobil / tabletă)
   -------------------------------------------------------------------------- */
.vm-offcanvas {
  --bs-offcanvas-width: 400px;
  --bs-offcanvas-padding-x: 2.25rem;
  --bs-offcanvas-padding-y: 1.75rem;
  color: var(--vm-green-900);
}
.vm-offcanvas .brand { color: var(--vm-green-900); }
.vm-offcanvas .brand-mark,
.vm-offcanvas .brand-sub { color: var(--vm-olive); }
.vm-offcanvas-close {
  margin-left: auto;
  padding: 0;
  border: 0;
  font-size: 1.6rem;
  line-height: 1;
  color: var(--vm-green-900);
  background: none;
  transition: transform 0.4s ease, color 0.3s ease;
}
.vm-offcanvas-close:hover { color: var(--vm-olive); transform: rotate(-90deg); }
.vm-offcanvas-menu { margin: 0 0 1.75rem; padding: 0; list-style: none; }
.vm-offcanvas-menu > li { border-bottom: 1px solid rgba(27, 46, 34, 0.1); }
.vm-offcanvas-menu a,
.vm-offcanvas-menu button {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 100%;
  padding: 0.85rem 0;
  border: 0;
  font-weight: 600;
  color: var(--vm-green-900);
  background: none;
  text-decoration: none;
}
.vm-offcanvas-menu button .bi { transition: transform 0.3s ease; }
.vm-offcanvas-menu button[aria-expanded="true"] .bi { transform: rotate(45deg); }
.vm-offcanvas-menu ul { margin: 0 0 0.75rem; padding: 0 0 0 1rem; list-style: none; }
.vm-offcanvas-menu ul a { padding-block: 0.45rem; font-weight: 500; color: #4a5a4f; }
.vm-offcanvas-title { margin-bottom: 0.4rem; font-size: 1.25rem; }
.vm-offcanvas-gallery {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 0.5rem;
  margin-bottom: 1.75rem;
}
.vm-offcanvas-gallery a { display: block; overflow: hidden; aspect-ratio: 1; border-radius: 0.4rem; }
.vm-offcanvas-gallery img { width: 100%; height: 100%; object-fit: cover; transition: transform 0.3s ease; }
.vm-offcanvas-gallery a:hover img { transform: scale(1.08); }
.vm-offcanvas-contact { margin: 0 0 1.75rem; padding: 0; list-style: none; }
.vm-offcanvas-contact li { margin-bottom: 0.35rem; }
.vm-offcanvas-contact a { font-weight: 600; color: var(--vm-green-900); text-decoration: none; }
.vm-offcanvas-contact a:hover { color: var(--vm-olive); }

/* Header: varianta cu text închis (pagini cu partea de sus deschisă)
   -------------------------------------------------------------------------- */
.vm-header-dark { --vm-header-fg: var(--vm-green-900); --vm-header-line: rgba(27, 46, 34, 0.12); }
.vm-header-dark .brand { color: var(--vm-green-900); }
.vm-header-dark .brand-sub,
.vm-header-dark .brand-mark { color: var(--vm-olive); }
.vm-header-dark .vm-nav { background-color: #f1f1ec; backdrop-filter: none; }
.vm-header-dark .vm-btn-light { --vm-btn-fg: var(--vm-green-900); --vm-btn-border: rgba(27, 46, 34, 0.35); --vm-btn-icon: #fff; }

/* Intro (pagina proiectului)
   -------------------------------------------------------------------------- */
.vm-intro { padding-block: clamp(7.5rem, 11vw, 10rem) clamp(2rem, 4vw, 3.5rem); }
/* Titlurile mari (intro și footer) rămân pe 2 rânduri în toate limbile.
   Mărimea de bază e cea de pe ecran (vw); min(..., cqi) o micșorează doar când coloana nu mai are loc
   pentru cel mai lung text tradus (rusă). cqi = procent din lățimea coloanei .vm-title-box.
   Raporturile vin din măsurători pe toate limbile: rusa încape pe 2 rânduri până la 8,79 cqi (intro)
   și 11,08 cqi (footer); valorile folosite lasă ~3% rezervă pentru diferențele dintre browsere. */
.vm-title-box { container-type: inline-size; }
.vm-intro-title {
  margin: 0;
  font-size: clamp(2.5rem, 5.6vw, 5rem);
  font-size: min(clamp(2.5rem, 5.6vw, 5rem), 8.5cqi);
  font-weight: 700;
  line-height: 1.02;
  letter-spacing: -0.035em;
  color: var(--vm-green-900);
}
.vm-intro-title span { color: var(--vm-olive); }
.vm-intro-card p { font-size: 1.05rem; color: #4d5a50; }
.vm-intro-card-media {
  position: relative;
  overflow: hidden;
  margin-bottom: 1rem;
  border-radius: 1rem;
  aspect-ratio: 16 / 9;
}
/* Imaginea panoramică (2.35:1) e mai lată decât cardul (16:9): se plimbă stânga–dreapta cu un zoom lent,
   fără să-i apară marginile (translate maxim -24% din lățimea imaginii; scale ≥ 1.05 acoperă mișcarea verticală) */
.vm-intro-pan {
  position: absolute;
  top: 0;
  left: 0;
  width: auto;
  max-width: none;
  height: 100%;
  aspect-ratio: 1920 / 818;
  transform: scale(1.05);
  will-change: transform;
  animation: vm-intro-pan 32s ease-in-out infinite;
}
@keyframes vm-intro-pan {
  0%   { transform: translate3d(0, 0, 0) scale(1.05); }
  22%  { transform: translate3d(-9%, -1%, 0) scale(1.16); }
  50%  { transform: translate3d(-23%, 0.5%, 0) scale(1.07); }
  74%  { transform: translate3d(-13%, 1%, 0) scale(1.18); }
  100% { transform: translate3d(0, 0, 0) scale(1.05); }
}
@media (prefers-reduced-motion: reduce) {
  .vm-intro-pan { animation: none; transform: translate3d(-12%, 0, 0) scale(1.05); }
}

.vm-intro-badges {
  position: absolute;
  left: 0.75rem;
  bottom: 0.75rem;
  z-index: 1;
  display: flex;
  gap: 0.4rem;
}
.vm-intro-badge {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  min-height: 1.9rem;
  padding: 0.35rem 0.8rem;
  border: 0;
  border-radius: 2rem;
  font-size: 0.8rem;
  font-weight: 600;
  line-height: 1.2;
  color: var(--vm-green-900);
  background-color: rgba(255, 255, 255, 0.92);
}
.vm-intro-badge-info {
  justify-content: center;
  width: 1.9rem;
  padding: 0;
  font-size: 0.95rem;
  cursor: help;
  transition: background-color 0.3s ease, color 0.3s ease;
}
.vm-intro-badge-info:hover,
.vm-intro-badge-info:focus-visible { color: #fff; background-color: var(--vm-green-900); }

.vm-tooltip {
  --bs-tooltip-bg: var(--vm-green-900);
  --bs-tooltip-color: #fff;
  --bs-tooltip-max-width: 15rem;
  --bs-tooltip-padding-x: 0.8rem;
  --bs-tooltip-padding-y: 0.5rem;
  --bs-tooltip-font-size: 0.8rem;
  --bs-tooltip-border-radius: 0.5rem;
}

/* Hero în straturi: cer → „Râșnov” → ansamblul decupat → carduri
   -------------------------------------------------------------------------- */
.vm-hero-area {
  position: relative;
  max-width: 1680px;
  margin-inline: auto;
  margin-bottom: clamp(2rem, 4vw, 3.5rem);
  padding-inline: clamp(0.75rem, 2vw, 1.5rem);
}
.vm-hero-box {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  aspect-ratio: 3 / 2;
  border-radius: 1.25rem;
  background: #9fc2e2 url("../img/rasnov/hero/rasnov-cer.jpg") center top / cover no-repeat;
  container-type: inline-size;
}
.vm-hero-word {
  position: absolute;
  inset: calc(9cqw + 10px) 0 auto 0;   /* +10px: „Râșnov” ceva mai jos */
  z-index: 1;
  margin: 0;
  text-align: center;
  white-space: nowrap;
  line-height: 1;
  pointer-events: none;
  user-select: none;
}
.vm-hero-word span {
  display: inline-block;
  font-family: "Montserrat", var(--vm-font-script), var(--bs-body-font-family);
  padding: 0.12em 0.12em 0.04em;
  font-size: 19cqw;
  font-weight: 700;
  line-height: 1;
  letter-spacing: -0.05em;
  color: transparent;
  background: linear-gradient(180deg, #fff 35%, #d2e4f3 100%);
  -webkit-background-clip: text;
  background-clip: text;
  will-change: transform;
}
.vm-hero-front {
  position: absolute;
  left: 0;
  bottom: 0;
  z-index: 2;
  width: 100%;
  height: auto;
  pointer-events: none;
}

.vm-hero-features { position: relative; z-index: 3; margin-top: 1rem; }
.vm-feature {
  display: flex;
  gap: 1rem;
  padding: 1.5rem;
  border-radius: 1.25rem;
  background-color: #fff;
  box-shadow: 0 10px 30px rgba(19, 30, 22, 0.08);
  transition: background-color 0.35s ease;
}
.vm-feature-icon {
  display: inline-flex;
  flex-shrink: 0;
  align-items: center;
  justify-content: center;
  width: 2.75rem;
  height: 2.75rem;
  border-radius: 50%;
  font-size: 1.25rem;
  line-height: 1;
  color: #fff;
  background-color: var(--vm-green-900);
  transition: color 0.35s ease, background-color 0.35s ease;
}
.vm-feature-title { margin: 0.3rem 0 0; font-size: 1.3rem; font-weight: 700; line-height: 1.15; color: var(--vm-green-900); }
.vm-feature-reveal { display: grid; grid-template-rows: 1fr; }
.vm-feature-reveal p { overflow: hidden; min-height: 0; margin: 0.6rem 0 0; color: #3f4a42; }

@media (min-width: 992px) {
  .vm-hero-box { aspect-ratio: 1680 / 960; }
  .vm-hero-word { inset: calc(2cqw + 10px) 0 auto 0; }
  .vm-hero-features {
    position: absolute;
    left: 0;
    right: 0;
    bottom: clamp(1.25rem, 2.5vw, 2.75rem);
    margin-top: 0;
  }
  /* pe desktop descrierea apare doar pe cardul activ (implicit cel din mijloc) sau la hover */
  .vm-feature-title { min-height: 2.3em; }
  .vm-feature-reveal { grid-template-rows: 0fr; opacity: 0; transition: grid-template-rows 0.35s ease, opacity 0.35s ease; }
  .vm-feature.is-active,
  .vm-feature:hover { background-color: var(--vm-sage); }
  .vm-feature.is-active .vm-feature-reveal,
  .vm-feature:hover .vm-feature-reveal { grid-template-rows: 1fr; opacity: 1; }
  .vm-hero-features:hover .vm-feature.is-active:not(:hover) { background-color: #fff; }
  .vm-hero-features:hover .vm-feature.is-active:not(:hover) .vm-feature-reveal { grid-template-rows: 0fr; opacity: 0; }
}
@media (min-width: 992px) and (max-width: 1199.98px) {
  .vm-feature { gap: 0.75rem; padding: 1.25rem; }
  .vm-feature-title { font-size: 1.1rem; }
  .vm-feature-icon { width: 2.4rem; height: 2.4rem; font-size: 1.1rem; }
}
@media (max-width: 575.98px) {
  .vm-hero-area { padding-inline: 0.5rem; }
  .vm-hero-box { aspect-ratio: 4 / 3; border-radius: 1rem; }
  .vm-hero-word { inset: calc(16cqw + 30px) 0 auto 0; }   /* pe telefon cu 30px mai jos */
  .vm-feature { padding: 1.15rem; }
  .vm-feature-title { font-size: 1.1rem; }
  .vm-feature-icon { width: 2.4rem; height: 2.4rem; font-size: 1.1rem; }
}

/* Modele: fațade cu hotspot-uri pe materiale (principală → laterală dreapta → posterioară → laterală stânga)
   -------------------------------------------------------------------------- */
.vm-models { padding-top: clamp(3rem, 7vw, 5.5rem); }
.vm-facade-stage {
  position: relative;
  overflow: hidden;
  padding-top: clamp(3.5rem, 10vw, 9rem);
  background-color: #f6f6f2;
}
.vm-facade-word {
  position: absolute;
  inset: clamp(0.5rem, 2vw, 1.5rem) 0 auto 0;
  font-family: "Montserrat", var(--vm-font-script), var(--bs-body-font-family);
  font-size: min(calc(152vw / var(--word-len, 6)), 22rem);
  font-weight: 700;
  line-height: 0.8;
  letter-spacing: -0.05em;
  text-align: center;
  white-space: nowrap;
  color: rgba(27, 46, 34, 0.055);
  pointer-events: none;
  user-select: none;
}
.vm-facade-carousel {
  position: relative;
  max-width: 1240px;
  margin-inline: auto;
  padding-inline: clamp(1rem, 4vw, 3rem);
}
/* lățimea fiecărei fațade vine din generator (proporțională cu cea mai lată), ca toate să fie la aceeași scară */
.vm-facade-figure { position: relative; margin: 0 auto; }
.vm-facade-figure img { display: block; width: 100%; height: auto; }
.vm-facade-carousel .carousel-item { transition-duration: 0.7s; }

.vm-hotspot {
  position: absolute;
  z-index: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 1.9rem;
  height: 1.9rem;
  padding: 0;
  border: 2px solid #fff;
  border-radius: 50%;
  font-size: 0.8rem;
  font-weight: 700;
  line-height: 1;
  color: #fff;
  background-color: var(--vm-green-900);
  box-shadow: 0 4px 12px rgba(19, 30, 22, 0.3);
  transform: translate(-50%, -50%);
  cursor: help;
  transition: background-color 0.25s ease, color 0.25s ease, transform 0.25s ease;
}
.vm-hotspot::before {
  content: "";
  position: absolute;
  inset: -7px;
  border: 2px solid rgba(181, 192, 145, 0.9);
  border-radius: 50%;
  animation: vm-hotspot-pulse 2.4s ease-out infinite;
  pointer-events: none;
}
.vm-hotspot:hover,
.vm-hotspot:focus-visible,
.vm-hotspot[aria-describedby] {
  z-index: 2;
  color: var(--vm-green-900);
  background-color: var(--vm-sage);
  transform: translate(-50%, -50%) scale(1.12);
}
@keyframes vm-hotspot-pulse {
  0% { opacity: 1; transform: scale(0.75); }
  100% { opacity: 0; transform: scale(1.45); }
}
@media (prefers-reduced-motion: reduce) {
  .vm-hotspot::before { animation: none; opacity: 0.5; }
}

.vm-facade-controls {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: clamp(0.75rem, 3vw, 2rem);
  padding: clamp(1.5rem, 3vw, 2.25rem) 1rem;
  background-color: #ebeae3;
}
.vm-facade-arrow {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  width: 3.25rem;
  height: 3.25rem;
  border: 1px solid rgba(27, 46, 34, 0.25);
  border-radius: 50%;
  font-size: 1.15rem;
  color: var(--vm-green-900);
  background-color: #fff;
  transition: background-color 0.3s ease, color 0.3s ease, border-color 0.3s ease;
}
.vm-facade-arrow:hover,
.vm-facade-arrow:focus-visible { color: #fff; border-color: var(--vm-green-900); background-color: var(--vm-green-900); }
.vm-facade-label { min-width: 14rem; margin: 0; text-align: center; }
.vm-facade-label span { display: block; font-family: "Montserrat", var(--vm-font-script), var(--bs-body-font-family); font-size: 1.1rem; font-weight: 700; color: var(--vm-green-900); }
.vm-facade-label small { display: block; margin-top: 0.15rem; font-size: 0.8rem; color: #6b756d; }

.vm-model-title { margin-bottom: 1rem; font-size: clamp(1.6rem, 3vw, 2.1rem); color: var(--vm-green-900); }
.vm-model-specs { display: flex; flex-wrap: wrap; gap: 0.75rem 2rem; margin: 0 0 1.5rem; padding: 0; list-style: none; }
.vm-model-specs strong { display: block; font-family: "Montserrat", var(--vm-font-script), var(--bs-body-font-family); font-size: 1.15rem; color: var(--vm-green-900); }
.vm-model-specs span { font-size: 0.85rem; color: #6b756d; }
.vm-model-houses-title {
  margin-bottom: 0.75rem;
  font-size: 0.75rem;
  font-weight: 600;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--vm-olive);
}
.vm-model-house {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  padding: 0.4rem 0.9rem;
  border: 1px solid rgba(27, 46, 34, 0.2);
  border-radius: 2rem;
  font-weight: 600;
  color: var(--vm-green-900);
  text-decoration: none;
  transition: background-color 0.25s ease, border-color 0.25s ease, color 0.25s ease;
}
.vm-model-house .bi { font-size: 0.75rem; }
.vm-model-house:hover { color: var(--vm-green-900); border-color: var(--vm-sage); background-color: var(--vm-sage); }
.vm-model { scroll-margin-top: 7.5rem; }
.vm-model + .vm-model { margin-top: clamp(3.5rem, 7vw, 6rem); }
.vm-model-head { padding-block: clamp(2rem, 4vw, 3rem) clamp(1.5rem, 3vw, 2.25rem); border-bottom: 1px solid rgba(27, 46, 34, 0.1); }
.vm-model-head .vm-model-title { margin-bottom: 0.6rem; }
.vm-model-intro { max-width: 40rem; color: #4d5a50; }
.vm-model-head .vm-model-specs { margin-bottom: 1.25rem; }
.vm-model-houses-title { margin-top: clamp(1.75rem, 3vw, 2.25rem); }

.vm-corp-list { display: grid; gap: clamp(1rem, 2vw, 1.5rem); }
.vm-corp-row { scroll-margin-top: 8rem; }
.vm-corp-detail {
  display: flex;
  height: 100%;
  overflow: hidden;
  border-radius: 1rem;
  background-color: #fff;
  box-shadow: 0 6px 24px rgba(19, 30, 22, 0.08);
}
.vm-corp-detail-media { flex: 0 0 46%; position: relative; min-height: 14rem; }
.vm-corp-detail-media img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.vm-corp-detail-media.is-drawing { background-color: #f6f6f2; }
.vm-corp-detail-media.is-drawing img { padding: 1.25rem 1rem 2.75rem; object-fit: contain; object-position: center bottom; }
.vm-corp-detail-body { flex: 1; padding: clamp(1.25rem, 2.5vw, 1.75rem); }
.vm-corp-detail-title { margin-bottom: 0.3rem; font-size: 1.4rem; color: var(--vm-green-900); }
.vm-corp-detail-where { margin-bottom: 1rem; font-size: 0.9rem; color: #6b756d; }
.vm-corp-detail-facts { display: grid; gap: 0.55rem; margin: 0; padding: 0; list-style: none; font-size: 0.92rem; color: #36413a; }
.vm-corp-detail-facts .bi { width: 1.25rem; margin-right: 0.35rem; color: var(--vm-olive); }

.vm-house-card {
  position: relative;
  display: flex;
  flex-direction: column;
  height: 100%;
  min-height: 14rem;
  padding: 1.25rem;
  border: 1px solid rgba(27, 46, 34, 0.12);
  border-radius: 1rem;
  color: var(--vm-green-900);
  background-color: #fff;
  text-decoration: none;
  transition: background-color 0.3s ease, border-color 0.3s ease, transform 0.3s ease, box-shadow 0.3s ease;
}
.vm-house-card:hover,
.vm-house-card:focus-visible {
  color: var(--vm-green-900);
  border-color: var(--vm-sage);
  background-color: var(--vm-sage);
  box-shadow: 0 10px 26px rgba(19, 30, 22, 0.12);
  transform: translateY(-3px);
}
.vm-house-card-status {
  align-self: flex-start;
  margin-bottom: auto;
  padding: 0.2rem 0.6rem;
  border-radius: 2rem;
  font-size: 0.72rem;
  font-weight: 600;
  color: #fff;
  background-color: var(--vm-olive);
}
.vm-house-card-label { margin-top: 1rem; font-size: 0.8rem; font-weight: 600; letter-spacing: 0.14em; text-transform: uppercase; opacity: 0.7; }
.vm-house-card-num { font-family: "Montserrat", var(--vm-font-script), var(--bs-body-font-family); font-size: clamp(2.6rem, 4vw, 3.4rem); font-weight: 700; line-height: 1; letter-spacing: -0.03em; }
.vm-house-card-meta { font-size: 0.85rem; line-height: 1.35; opacity: 0.8; }
.vm-house-card-cta { margin-top: 0.75rem; font-size: 0.85rem; font-weight: 700; }
.vm-house-card-cta .bi { transition: transform 0.3s ease; }
.vm-house-card:hover .vm-house-card-cta .bi { transform: translate(2px, -2px); }
@media (max-width: 575.98px) {
  .vm-corp-detail { flex-direction: column; }
  .vm-corp-detail-media { flex-basis: auto; min-height: 0; aspect-ratio: 16 / 9; }
  .vm-house-card { min-height: 11rem; padding: 1rem; }
}

/* Subnavbar cu modelele: apare sub header doar în zona modelelor */
.vm-subnav {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  z-index: 1025;
  border-bottom: 1px solid rgba(27, 46, 34, 0.1);
  background-color: rgba(255, 255, 255, 0.96);
  box-shadow: 0 8px 18px rgba(19, 30, 22, 0.06);
  backdrop-filter: blur(8px);
  opacity: 0;
  visibility: hidden;
  transform: translateY(-0.75rem);
  transition: opacity 0.3s ease, transform 0.3s ease, visibility 0.3s ease;
}
.vm-subnav.is-visible { opacity: 1; visibility: visible; transform: none; }
.vm-subnav .container { display: flex; align-items: center; gap: 1rem; }
.vm-subnav-label {
  flex-shrink: 0;
  font-size: 0.7rem;
  font-weight: 600;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--vm-olive);
}
.vm-subnav-list {
  display: flex;
  gap: 0.25rem;
  margin: 0;
  padding: 0.5rem 0;
  overflow-x: auto;
  list-style: none;
  scrollbar-width: none;
}
.vm-subnav-list::-webkit-scrollbar { display: none; }
.vm-subnav-list a {
  display: block;
  padding: 0.45rem 1rem;
  border-radius: 2rem;
  font-size: 0.9rem;
  font-weight: 600;
  white-space: nowrap;
  color: var(--vm-green-900);
  text-decoration: none;
  transition: background-color 0.25s ease, color 0.25s ease;
}
.vm-subnav-list a:hover { background-color: rgba(27, 46, 34, 0.07); }
.vm-subnav-list a.is-active { color: #fff; background-color: var(--vm-green-900); }
@media (max-width: 575.98px) {
  .vm-subnav-label { display: none; }
  .vm-subnav-list a { padding: 0.4rem 0.8rem; font-size: 0.82rem; }
}

.vm-models-compare { padding-block: clamp(2.5rem, 5vw, 4rem) clamp(3rem, 6vw, 4.5rem); }
.vm-models-compare .vm-btn[aria-expanded="true"] .vm-btn-dot .bi { transform: rotate(180deg); }
.vm-models-house { padding-bottom: 0; }

@media (max-width: 767.98px) {
  .vm-hotspot { width: 1.35rem; height: 1.35rem; border-width: 1.5px; font-size: 0.65rem; }
  .vm-hotspot::before { inset: -5px; }
  .vm-facade-arrow { width: 2.75rem; height: 2.75rem; }
  .vm-facade-label { min-width: 0; }
}

/* Secțiuni
   -------------------------------------------------------------------------- */
.section { padding-block: clamp(3rem, 7vw, 5.5rem); }
.section-eyebrow {
  margin-bottom: 0.5rem;
  font-size: 0.8rem;
  font-weight: 600;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--vm-olive);
}
.section-title { font-size: clamp(1.7rem, 3vw, 2.4rem); }

.page-header {
  padding-block: 8.5rem 2.75rem;
  color: #fff;
  background-color: var(--vm-green-900);
}

/* Breadcrumb cu separator săgeată (pagini de casă, contact) */
.vm-breadcrumb ol { display: flex; flex-wrap: wrap; align-items: center; gap: 0.35rem 0; margin: 0 0 1.25rem; padding: 0; list-style: none; font-size: 0.85rem; }
.vm-breadcrumb li { display: inline-flex; align-items: center; color: rgba(255, 255, 255, 0.72); }
.vm-breadcrumb li + li::before { content: "\F285"; margin-inline: 0.55rem; font-family: "bootstrap-icons"; font-size: 0.65rem; opacity: 0.55; }
.vm-breadcrumb a { color: var(--vm-sage); text-decoration: none; }
.vm-breadcrumb a:hover { color: #fff; }
.vm-breadcrumb a .bi { margin-right: 0.3rem; }

/* Iconițe dotări
   -------------------------------------------------------------------------- */
.feature-icon {
  display: inline-flex;
  flex-shrink: 0;
  align-items: center;
  justify-content: center;
  width: 3.25rem;
  height: 3.25rem;
  border-radius: 50%;
  font-size: 1.4rem;
  color: #fff;
  background-color: var(--vm-green-800);
}

/* Plan de ansamblu cu pini
   -------------------------------------------------------------------------- */
.site-map {
  position: relative;
  overflow: hidden;
  border-radius: 0.75rem;
}
.site-map img { display: block; width: 100%; height: auto; }
.site-map-wrap { position: relative; }
.site-map .site-map-plan {
  position: absolute;
  inset: 0;
  height: 100%;
  object-fit: cover;
  opacity: 0;
  transition: opacity 0.6s ease;
}
.site-map-wrap.is-plan .site-map-plan { opacity: 1; }
.site-map-wrap.is-plan .map-corp { color: #fff; background-color: var(--vm-green-900); }
.site-map-tools {
  position: absolute;
  top: 0.9rem;
  right: 0.9rem;
  z-index: 3;
  display: flex;
  align-items: center;
  gap: 0.5rem;
}
.site-map-switch {
  display: inline-flex;
  gap: 0.2rem;
  padding: 0.25rem;
  border-radius: 2rem;
  background-color: rgba(255, 255, 255, 0.94);
  box-shadow: 0 6px 18px rgba(19, 30, 22, 0.18);
}
.site-map-switch button {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  padding: 0.45rem 0.95rem;
  border: 0;
  border-radius: 2rem;
  font-size: 0.875rem;
  font-weight: 600;
  color: var(--vm-green-900);
  background: none;
  transition: background-color 0.3s ease, color 0.3s ease;
}
.site-map-switch button:hover { background-color: rgba(27, 46, 34, 0.08); }
.site-map-switch button.is-active { color: #fff; background-color: var(--vm-green-900); }
.site-map-wrap--compact .site-map-tools { position: static; margin-top: 0.75rem; }
.site-map-wrap--compact .site-map-switch { box-shadow: none; background-color: #f1f1ec; }
@media (max-width: 575.98px) {
  .site-map-tools { top: 0.5rem; right: 0.5rem; }
  .site-map-switch button { padding: 0.3rem 0.65rem; font-size: 0.75rem; }
}

.map-pin {
  position: absolute;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 2.5rem;
  height: 2.5rem;
  border: 3px solid #fff;
  border-radius: 50%;
  font-weight: 700;
  color: #fff;
  text-decoration: none;
  background-color: var(--vm-green-800);
  box-shadow: 0 0.25rem 0.75rem rgba(0, 0, 0, 0.35);
  transform: translate(-50%, -50%);
  transition: transform 0.15s ease, background-color 0.15s ease;
}
.map-pin:hover,
.map-pin:focus-visible {
  color: #fff;
  background-color: var(--vm-olive);
  transform: translate(-50%, -50%) scale(1.12);
}
.map-pin.is-current { z-index: 2; background-color: var(--vm-gold); transform: translate(-50%, -50%) scale(1.15); }
.map-pin.is-pair { color: var(--vm-green-900); background-color: #fff; border-color: var(--vm-gold); }
.map-corp {
  position: absolute;
  padding: 0.1rem 0.5rem;
  border-radius: 0.25rem;
  font-size: 0.75rem;
  font-weight: 600;
  white-space: nowrap;
  color: var(--vm-green-900);
  background-color: rgba(255, 255, 255, 0.92);
  transform: translate(-50%, -50%);
  pointer-events: none;
}
.site-map--compact .map-pin { width: 1.9rem; height: 1.9rem; border-width: 2px; font-size: 0.8rem; }
.site-map--compact .map-corp { font-size: 0.65rem; }
@media (max-width: 767.98px) {
  .map-pin { width: 1.6rem; height: 1.6rem; border-width: 2px; font-size: 0.7rem; }
  .map-corp { font-size: 0.6rem; padding: 0 0.3rem; }
  .site-map--compact .map-pin { width: 1.6rem; height: 1.6rem; font-size: 0.7rem; }
}
@media (max-width: 575.98px) {
  .map-pin,
  .site-map--compact .map-pin { width: 1.2rem; height: 1.2rem; border-width: 1.5px; font-size: 0.55rem; }
}

.legend-dot {
  display: inline-block;
  width: 0.8rem;
  height: 0.8rem;
  margin-right: 0.25rem;
  vertical-align: -0.1em;
  border: 2px solid #fff;
  border-radius: 50%;
  background-color: var(--vm-green-800);
  box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.25);
}
.legend-dot.is-current { background-color: var(--vm-gold); }
.legend-dot.is-pair { border-color: var(--vm-gold); background-color: #fff; box-shadow: none; }

/* Dotări: fundal fix (sticky) peste care urcă, cu viteze diferite, cardurile colorate
   -------------------------------------------------------------------------- */
.vm-choose {
  --vm-choose-radius: 1.5rem;
  position: relative;
  margin-inline: clamp(0rem, 1.5vw, 1.5rem);
  border-radius: var(--vm-choose-radius);
  overflow: clip;
  background-color: var(--vm-green-900);
}
.vm-choose-stage {
  position: sticky;
  top: 0;
  display: flex;
  align-items: center;
  height: 100vh;
  height: 100svh;
  overflow: hidden;
  color: #fff;
}
.vm-choose-bg { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transform: scale(1.04); }
.vm-choose-stage::after {
  content: "";
  position: absolute;
  inset: 0;
  background:
    radial-gradient(ellipse at center, rgba(19, 30, 22, 0.35) 0%, rgba(19, 30, 22, 0) 70%),
    linear-gradient(180deg, rgba(19, 30, 22, 0.25) 0%, rgba(19, 30, 22, 0.45) 45%, rgba(19, 30, 22, 0.92) 100%);
}
.vm-choose-heading { position: relative; z-index: 1; max-width: 50rem; text-align: center; }
.vm-choose-heading .section-eyebrow { color: var(--vm-sage); }
.vm-choose-heading-title {
  margin-bottom: 1rem;
  font-size: clamp(2.4rem, 6vw, 5rem);
  font-weight: 700;
  line-height: 1.02;
  letter-spacing: -0.035em;
  color: #fff;
  text-shadow: 0 2px 30px rgba(0, 0, 0, 0.25);
}
.vm-choose-heading-title span { color: var(--vm-sage); }
.vm-choose-heading-text { margin: 0 auto; max-width: 34rem; font-size: 1.1rem; color: rgba(255, 255, 255, 0.85); }

.vm-choose-cards {
  position: relative;
  z-index: 1;
  margin-top: -22vh;
  margin-top: -22svh;
  padding-bottom: clamp(4rem, 12vh, 9rem);
}
.vm-choose-row { display: flex; justify-content: space-between; gap: 1.5rem; padding-bottom: clamp(6rem, 26vh, 16rem); }
.vm-choose-row:last-child { padding-bottom: 0; }
.vm-choose-row.is-single { justify-content: flex-end; }
.vm-choose-row.is-single:has(.start) { justify-content: flex-start; }

.vm-choose-card {
  --card-fg: var(--vm-green-900);
  --card-muted: rgba(27, 46, 34, 0.75);
  width: min(100%, 20rem);
  padding: 1.75rem 1.75rem 1.5rem;
  border-radius: 1.25rem;
  color: var(--card-muted);
  background-color: #fff;
  box-shadow: 0 18px 40px rgba(0, 0, 0, 0.18);
  will-change: transform;
}
.vm-choose-card.is-low { margin-top: 3.5rem; }
.vm-choose-card.end.is-inset { margin-right: clamp(0rem, 12vw, 11rem); }
.vm-choose-card.start.is-inset { margin-left: clamp(0rem, 12vw, 11rem); }
.vm-choose-icon {
  display: flex;
  justify-content: flex-end;
  margin-bottom: clamp(2.5rem, 6vh, 4.5rem);
  font-size: 2.4rem;
  line-height: 1;
  color: var(--card-fg);
}
.vm-choose-title { margin-bottom: 0.6rem; font-size: 1.35rem; font-weight: 700; line-height: 1.15; color: var(--card-fg); }
.vm-choose-card p { font-size: 0.95rem; line-height: 1.55; }

.vm-choose-card.is-gold { --card-fg: var(--vm-green-900); --card-muted: rgba(27, 46, 34, 0.8); background-color: var(--vm-gold); }
.vm-choose-card.is-sage { --card-fg: var(--vm-green-900); --card-muted: rgba(27, 46, 34, 0.8); background-color: var(--vm-sage); }
.vm-choose-card.is-cream { background-color: var(--vm-cream); }
.vm-choose-card.is-green { --card-fg: #fff; --card-muted: rgba(255, 255, 255, 0.78); background-color: var(--vm-green-800); }
.vm-choose-card.is-green .vm-choose-icon { color: var(--vm-sage); }
.vm-choose-card.is-olive { --card-fg: #fff; --card-muted: rgba(255, 255, 255, 0.85); background-color: var(--vm-olive); }
.vm-choose-card.is-glass {
  --card-fg: #fff;
  --card-muted: rgba(255, 255, 255, 0.85);
  border: 1px solid rgba(255, 255, 255, 0.18);
  background: linear-gradient(240deg, rgba(0, 0, 0, 0.32) 18%, rgba(0, 0, 0, 0.1) 82%);
  backdrop-filter: blur(18px);
  -webkit-backdrop-filter: blur(18px);
}

@media (max-width: 991.98px) {
  .vm-choose-row { padding-bottom: clamp(3rem, 14vh, 7rem); }
  .vm-choose-card.end.is-inset,
  .vm-choose-card.start.is-inset { margin-inline: 0; }
  .vm-choose-card.is-low { margin-top: 2rem; }
}
@media (max-width: 575.98px) {
  .vm-choose { margin-inline: 0; border-radius: 0; }
  .vm-choose-row { flex-direction: column; gap: 1rem; padding-bottom: 1rem; }
  .vm-choose-row.is-single { align-items: stretch; }
  .vm-choose-cards { margin-top: -18svh; }
  .vm-choose-card { width: 100%; padding: 1.25rem; }
  /* pe telefon toate cardurile stau drept, pe toată lățimea, fără decalaj stânga / dreapta */
  .vm-choose-card,
  .vm-choose-card.start,
  .vm-choose-card.end { align-self: stretch; width: 100%; margin-top: 0; }
  .vm-choose-icon { margin-bottom: 1.5rem; font-size: 2rem; }
  .vm-choose-title { font-size: 1.15rem; }
}

/* Dotări - varianta statică (paginile caselor): același fundal și aceleași carduri, grilă clasică
   -------------------------------------------------------------------------- */
.vm-choose.is-static {
  isolation: isolate;
  padding-block: clamp(4rem, 8vw, 6.5rem);
  overflow: hidden;
}
.vm-choose.is-static .vm-choose-bg { position: absolute; inset: 0; z-index: -2; width: 100%; height: 100%; object-fit: cover; }
.vm-choose.is-static::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  background: linear-gradient(180deg, rgba(19, 30, 22, 0.55) 0%, rgba(19, 30, 22, 0.78) 45%, rgba(19, 30, 22, 0.94) 100%);
}
.vm-choose.is-static .vm-choose-heading { margin: 0 auto clamp(2.5rem, 5vw, 3.5rem); color: #fff; }
.vm-choose.is-static .vm-choose-heading-title { font-size: clamp(2rem, 4.5vw, 3.4rem); }
.vm-choose.is-static .vm-choose-card { display: flex; flex-direction: column; width: 100%; height: 100%; will-change: auto; }
.vm-choose.is-static .vm-choose-icon { margin-bottom: clamp(1.75rem, 4vw, 2.75rem); }
/* pe telefon cardurile devin compacte: iconița în stânga, textul în dreapta */
@media (max-width: 575.98px) {
  .vm-choose.is-static .vm-choose-card { display: grid; grid-template-columns: auto 1fr; column-gap: 1rem; align-items: start; padding: 1.1rem 1.15rem; }
  .vm-choose.is-static .vm-choose-icon { grid-row: span 2; justify-content: flex-start; margin: 0.1rem 0 0; font-size: 1.7rem; }
  .vm-choose.is-static .vm-choose-title { margin-bottom: 0.3rem; font-size: 1.05rem; }
  .vm-choose.is-static .vm-choose-card p { font-size: 0.9rem; }
}

/* Butoane rotunde cu iconiță (galerie, fațade, hartă, navigare între case)
   -------------------------------------------------------------------------- */
.vm-round-btn {
  display: inline-flex;
  flex-shrink: 0;
  align-items: center;
  justify-content: center;
  width: 2.9rem;
  height: 2.9rem;
  padding: 0;
  border: 1px solid rgba(27, 46, 34, 0.2);
  border-radius: 50%;
  font-size: 1.05rem;
  color: var(--vm-green-900);
  background-color: #fff;
  text-decoration: none;
  transition: background-color 0.3s ease, color 0.3s ease, border-color 0.3s ease;
}
.vm-round-btn:hover,
.vm-round-btn:focus-visible { color: #fff; border-color: var(--vm-green-900); background-color: var(--vm-green-900); }
.vm-round-btn.is-small { width: 2.4rem; height: 2.4rem; font-size: 0.9rem; box-shadow: 0 6px 18px rgba(19, 30, 22, 0.18); }
.vm-round-btn.is-light { color: #fff; border-color: rgba(255, 255, 255, 0.45); background-color: rgba(255, 255, 255, 0.08); }
.vm-round-btn.is-light:hover { color: var(--vm-green-900); border-color: #fff; background-color: #fff; }

/* Imagine care se deschide în lightbox: iconiță de mărire în colț */
.vm-zoom-media,
.vm-plan-card { position: relative; display: block; overflow: hidden; border-radius: 1rem; cursor: zoom-in; }
.vm-zoom-media img { display: block; width: 100%; height: auto; transition: transform 0.5s ease; }
.vm-zoom-media:hover img { transform: scale(1.03); }
.vm-zoom-icon {
  position: absolute;
  top: 0.75rem;
  right: 0.75rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2.4rem;
  height: 2.4rem;
  border-radius: 50%;
  color: var(--vm-green-900);
  background-color: rgba(255, 255, 255, 0.92);
  box-shadow: 0 6px 18px rgba(19, 30, 22, 0.18);
  transition: transform 0.3s ease;
}
.vm-zoom-media:hover .vm-zoom-icon,
.vm-plan-card:hover .vm-zoom-icon { transform: scale(1.1); }
.vm-media-badge {
  position: absolute;
  left: 0.75rem;
  bottom: 0.75rem;
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  padding: 0.25rem 0.65rem;
  border-radius: 2rem;
  font-size: 0.78rem;
  font-weight: 700;
  color: var(--vm-green-900);
  background-color: rgba(255, 255, 255, 0.92);
}
.vm-hint { display: flex; gap: 0.45rem; margin: 0.75rem 0 0; font-size: 0.85rem; color: #6b756d; }
.vm-hint .bi { color: var(--vm-olive); }

/* Lightbox: modal fullscreen pentru imagini, planuri și PDF-uri
   -------------------------------------------------------------------------- */
.vm-lightbox .modal-content { color: #fff; background-color: rgba(12, 20, 15, 0.97); border: 0; }
.vm-lightbox-bar { display: flex; align-items: center; gap: 1rem; padding: 0.85rem clamp(1rem, 3vw, 2rem); border-bottom: 1px solid rgba(255, 255, 255, 0.08); }
.vm-lightbox-count { flex-shrink: 0; min-width: 3.5rem; font-weight: 700; color: var(--vm-sage); }
.vm-lightbox-title { flex: 1; margin: 0; overflow: hidden; font-size: 0.95rem; white-space: nowrap; text-overflow: ellipsis; color: rgba(255, 255, 255, 0.85); }
.vm-lightbox-tool {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2.6rem;
  height: 2.6rem;
  border: 1px solid rgba(255, 255, 255, 0.2);
  border-radius: 50%;
  color: #fff;
  background: transparent;
  transition: background-color 0.3s ease, color 0.3s ease;
}
.vm-lightbox-tool:hover { color: var(--vm-green-900); background-color: #fff; }
.vm-lightbox-stage { position: relative; display: flex; flex: 1; align-items: center; justify-content: center; min-height: 0; padding: clamp(0.75rem, 3vw, 2rem) clamp(0.75rem, 6vw, 5.5rem); }
.vm-lightbox-media { display: flex; align-items: center; justify-content: center; width: 100%; height: 100%; }
.vm-lightbox-media img { max-width: 100%; max-height: calc(100vh - 8rem); object-fit: contain; border-radius: 0.5rem; }
.vm-lightbox-media iframe { width: 100%; height: calc(100vh - 8rem); border: 0; border-radius: 0.5rem; background-color: #fff; }
.vm-lightbox-stage.is-light .vm-lightbox-media img { padding: clamp(0.5rem, 2vw, 1.5rem); background-color: #f6f6f2; }
.vm-lightbox-media .spinner-border { color: var(--vm-sage); }
.vm-lightbox-nav {
  position: absolute;
  top: 50%;
  z-index: 1;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 3.25rem;
  height: 3.25rem;
  border: 1px solid rgba(255, 255, 255, 0.25);
  border-radius: 50%;
  font-size: 1.2rem;
  color: #fff;
  background-color: rgba(12, 20, 15, 0.6);
  transform: translateY(-50%);
  transition: background-color 0.3s ease, color 0.3s ease;
}
.vm-lightbox-nav:hover { color: var(--vm-green-900); background-color: var(--vm-sage); }
.vm-lightbox-nav.is-prev { left: clamp(0.5rem, 2vw, 1.5rem); }
.vm-lightbox-nav.is-next { right: clamp(0.5rem, 2vw, 1.5rem); }
.vm-lightbox-nav[hidden] { display: none; }
@media (max-width: 575.98px) {
  .vm-lightbox-nav { top: auto; bottom: 1rem; transform: none; }
}

/* Chips (etichete cu iconiță și tooltip) și lista cu iconițe
   -------------------------------------------------------------------------- */
.vm-chips { display: flex; flex-wrap: wrap; gap: 0.5rem; margin: 0 0 1.75rem; padding: 0; list-style: none; }
.vm-chip {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  padding: 0.4rem 0.85rem;
  border: 1px solid rgba(255, 255, 255, 0.25);
  border-radius: 2rem;
  font-size: 0.85rem;
  font-weight: 600;
  color: #fff;
  background-color: rgba(255, 255, 255, 0.08);
  cursor: help;
  backdrop-filter: blur(6px);
}
.vm-chip.is-status { color: var(--vm-green-900); border-color: var(--vm-sage); background-color: var(--vm-sage); }

.vm-checklist { display: grid; gap: 1rem; margin: 0; padding: 0; list-style: none; }
.vm-checklist li { display: flex; gap: 0.9rem; }
.vm-checklist li > .bi {
  display: inline-flex;
  flex-shrink: 0;
  align-items: center;
  justify-content: center;
  width: 2.5rem;
  height: 2.5rem;
  border-radius: 50%;
  font-size: 1.05rem;
  color: var(--vm-green-900);
  background-color: #eef0e4;
}
.vm-checklist strong { display: block; color: var(--vm-green-900); }
.vm-checklist span { display: block; color: #5f6b62; }
.vm-side-title { display: flex; align-items: center; gap: 0.5rem; margin-bottom: 1rem; font-size: 0.8rem; font-weight: 700; letter-spacing: 0.14em; text-transform: uppercase; color: #6b756d; }
.vm-side-title .bi { color: var(--vm-olive); }
.vm-map-legend { display: flex; flex-wrap: wrap; gap: 0.5rem 1.25rem; margin-top: 0.85rem; font-size: 0.85rem; color: #6b756d; }
.vm-map-legend .bi { color: var(--vm-olive); }

/* Pagina casei: hero cu imaginea corpului pierdută în gradient
   -------------------------------------------------------------------------- */
.vm-house-hero {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  padding-block: clamp(8rem, 12vw, 10rem) clamp(3rem, 6vw, 5rem);
  color: #fff;
  background-color: var(--vm-green-900);
}
.vm-house-hero-media { position: absolute; inset: 0 0 0 auto; z-index: -1; width: min(72%, 1300px); }
.vm-house-hero-media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  /* imaginea se estompează spre stânga (unde e textul) și spre partea de jos */
  -webkit-mask-image: linear-gradient(90deg, transparent 0%, rgba(0, 0, 0, 0.55) 30%, #000 65%), linear-gradient(180deg, #000 55%, transparent 100%);
  -webkit-mask-composite: source-in;
  mask-image: linear-gradient(90deg, transparent 0%, rgba(0, 0, 0, 0.55) 30%, #000 65%), linear-gradient(180deg, #000 55%, transparent 100%);
  mask-composite: intersect;
  animation: vm-house-hero-in 1.4s ease both;
}
/* casa fără randări (C8): fațada principală din planșe, întreagă, peste gradient */
.vm-house-hero-media img.is-drawing {
  padding: clamp(6rem, 9vw, 8rem) clamp(1rem, 3vw, 3rem) clamp(2rem, 4vw, 3.5rem);
  object-fit: contain;
  object-position: right bottom;
  filter: drop-shadow(0 18px 40px rgba(0, 0, 0, 0.35));
}
.vm-house-hero::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  background: linear-gradient(90deg, rgba(27, 46, 34, 0.55) 0%, rgba(27, 46, 34, 0) 55%);
  pointer-events: none;
}
@keyframes vm-house-hero-in {
  from { opacity: 0; transform: scale(1.06); }
  to { opacity: 1; transform: none; }
}
.vm-house-hero-inner { position: relative; }
.vm-house-hero .section-eyebrow { color: var(--vm-sage); }
.vm-house-title {
  margin-bottom: 0.75rem;
  font-size: clamp(3.2rem, 8vw, 6.5rem);
  font-weight: 700;
  line-height: 0.95;
  letter-spacing: -0.04em;
  color: #fff;
}
.vm-house-title span { color: var(--vm-sage); }
.vm-house-lead { max-width: 36rem; margin-bottom: 1.25rem; font-size: 1.1rem; color: rgba(255, 255, 255, 0.82); }
.vm-house-facts { display: flex; flex-wrap: wrap; gap: 0.75rem; margin: 0 0 2rem; padding: 0; list-style: none; }
.vm-house-facts li {
  display: grid;
  grid-template-columns: auto 1fr;
  column-gap: 0.6rem;
  align-items: center;
  min-width: 9.5rem;
  padding: 0.75rem 1rem;
  border: 1px solid rgba(255, 255, 255, 0.14);
  border-radius: 1rem;
  background-color: rgba(12, 20, 15, 0.35);
  backdrop-filter: blur(10px);
  cursor: help;
}
.vm-house-facts .bi { grid-row: span 2; font-size: 1.4rem; color: var(--vm-sage); }
.vm-house-facts strong { font-family: "Montserrat", var(--vm-font-script), var(--bs-body-font-family); font-size: 1.05rem; line-height: 1.15; }
.vm-house-facts span { font-size: 0.78rem; color: rgba(255, 255, 255, 0.65); }
.vm-house-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 0.6rem; }
@media (max-width: 991.98px) {
  .vm-house-hero { padding-top: clamp(20rem, 62vw, 30rem); }
  .vm-house-hero-media { inset: 0 0 auto 0; width: 100%; height: clamp(20rem, 62vw, 30rem); }
  .vm-house-hero-media img {
    -webkit-mask-image: linear-gradient(180deg, #000 45%, transparent 100%);
    mask-image: linear-gradient(180deg, #000 45%, transparent 100%);
  }
  .vm-house-hero::after { display: none; }
  .vm-house-hero-media img.is-drawing { padding: 6rem 1rem 2rem; object-position: center bottom; }
}
@media (max-width: 575.98px) {
  .vm-house-facts li { flex: 1 1 calc(50% - 0.75rem); min-width: 0; }
}

/* Pagina casei: galerie + cardul „Pe scurt”
   -------------------------------------------------------------------------- */
.vm-gallery .carousel { overflow: hidden; border-radius: 1.25rem; box-shadow: 0 12px 34px rgba(19, 30, 22, 0.12); }
.vm-gallery-slide { display: block; aspect-ratio: 16 / 9; cursor: zoom-in; }
.vm-gallery-slide img { width: 100%; height: 100%; object-fit: cover; }
.vm-gallery-bar { display: flex; align-items: center; gap: 0.6rem; margin-top: 1rem; }
.vm-gallery-count { min-width: 3.5rem; font-weight: 700; text-align: center; color: var(--vm-green-900); }
.vm-gallery-thumbs { display: flex; gap: 0.6rem; margin-top: 0.85rem; overflow-x: auto; padding-bottom: 0.25rem; scrollbar-width: thin; }
.vm-gallery-thumb {
  flex: 0 0 auto;
  width: 6.5rem;
  aspect-ratio: 16 / 10;
  padding: 0;
  overflow: hidden;
  border: 2px solid transparent;
  border-radius: 0.6rem;
  opacity: 0.6;
  background: none;
  transition: opacity 0.3s ease, border-color 0.3s ease;
}
.vm-gallery-thumb img { width: 100%; height: 100%; object-fit: cover; }
.vm-gallery-thumb:hover,
.vm-gallery-thumb.is-active { opacity: 1; border-color: var(--vm-olive); }

.vm-spec-card { position: sticky; top: 6.5rem; padding: clamp(1.25rem, 2.5vw, 1.75rem); border-radius: 1.25rem; background-color: var(--vm-cream); }
.vm-spec-title { display: flex; align-items: center; gap: 0.5rem; margin-bottom: 1rem; font-size: 1.25rem; color: var(--vm-green-900); }
.vm-spec-title .bi { color: var(--vm-olive); }
.vm-spec-list { margin: 0 0 1.25rem; }
.vm-spec-row { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding-block: 0.55rem; border-bottom: 1px solid rgba(27, 46, 34, 0.08); font-size: 0.92rem; }
.vm-spec-row:last-child { border-bottom: 0; }
.vm-spec-row dt { display: flex; align-items: center; gap: 0.5rem; margin: 0; font-weight: 500; color: #56625a; }
.vm-spec-row dt > .bi { width: 1.1rem; color: var(--vm-olive); }
.vm-spec-row dd { margin: 0; font-weight: 700; text-align: right; color: var(--vm-green-900); }
.vm-info { display: inline-flex; padding: 0; border: 0; font-size: 0.8rem; line-height: 1; color: #9aa39b; background: none; cursor: help; }
.vm-info:hover,
.vm-info:focus-visible { color: var(--vm-olive); }
.vm-spec-actions { display: grid; gap: 0.6rem; }
@media (max-width: 991.98px) {
  .vm-spec-card { position: static; }
}

/* Pagina casei: tab-uri, planuri și lista încăperilor
   -------------------------------------------------------------------------- */
.vm-tabs { display: inline-flex; gap: 0.25rem; margin: 0; padding: 0.3rem; list-style: none; border-radius: 3rem; background-color: #fff; }
.vm-tabs button {
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
  padding: 0.55rem 1.15rem;
  border: 0;
  border-radius: 3rem;
  font-weight: 600;
  color: var(--vm-green-900);
  background: none;
  transition: background-color 0.3s ease, color 0.3s ease;
}
.vm-tabs button:hover { background-color: rgba(27, 46, 34, 0.07); }
.vm-tabs button.active { color: #fff; background-color: var(--vm-green-900); }

.vm-plan-card { padding: clamp(0.5rem, 1.5vw, 1rem); background-color: #fff; box-shadow: 0 8px 26px rgba(19, 30, 22, 0.08); }
.vm-rooms-card { padding: clamp(1.25rem, 2.5vw, 1.75rem); border-radius: 1.25rem; background-color: #fff; box-shadow: 0 8px 26px rgba(19, 30, 22, 0.06); }
.vm-rooms-title { display: flex; align-items: center; gap: 0.5rem; margin: 0 0 0.5rem; font-size: 0.8rem; font-weight: 700; letter-spacing: 0.12em; text-transform: uppercase; color: #6b756d; }
.vm-rooms-title:not(:first-child) { margin-top: 1.5rem; }
.vm-rooms-title .bi { color: var(--vm-olive); }
.vm-rooms { margin: 0; padding: 0; list-style: none; }
.vm-rooms li { display: flex; align-items: center; gap: 0.7rem; padding-block: 0.5rem; border-bottom: 1px solid rgba(27, 46, 34, 0.07); font-size: 0.93rem; }
.vm-rooms li > .bi { display: inline-flex; flex-shrink: 0; align-items: center; justify-content: center; width: 2rem; height: 2rem; border-radius: 50%; color: var(--vm-green-900); background-color: #eef0e4; }
.vm-rooms li span { flex: 1; color: #3f4a42; }
.vm-room-code { margin-left: 0.35rem; padding: 0.05rem 0.4rem; border-radius: 0.3rem; font-size: 0.7rem; font-weight: 700; letter-spacing: 0.03em; color: var(--vm-olive); background-color: #eef0e4; }
.vm-rooms li strong { color: var(--vm-green-900); }
.vm-rooms.is-total li { border-bottom: 0; cursor: help; }
.vm-rooms.is-total li > .bi { color: #fff; background-color: var(--vm-green-900); }
.vm-rooms.is-total span { font-weight: 600; color: var(--vm-green-900); }

/* Pagina casei: navigarea între case
   -------------------------------------------------------------------------- */
.vm-pager { padding-block: clamp(2.5rem, 5vw, 4rem); }
.vm-pager-inner { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 1rem; padding-top: 1.5rem; border-top: 1px solid rgba(27, 46, 34, 0.12); }
.vm-pager-link { display: inline-flex; align-items: center; gap: 0.85rem; color: var(--vm-green-900); text-decoration: none; }
.vm-pager-link small { display: block; font-size: 0.75rem; letter-spacing: 0.08em; text-transform: uppercase; color: #6b756d; }
.vm-pager-link strong { display: block; font-family: "Montserrat", var(--vm-font-script), var(--bs-body-font-family); font-size: 1.15rem; }
.vm-pager-link.is-next { text-align: right; }
.vm-pager-link:hover { color: var(--vm-green-900); }
.vm-pager-link:hover .vm-round-btn { color: #fff; border-color: var(--vm-green-900); background-color: var(--vm-green-900); }
@media (max-width: 575.98px) {
  .vm-pager-inner > .vm-btn { order: 3; width: 100%; justify-content: space-between; }
}

/* Footer
   -------------------------------------------------------------------------- */
.vm-footer { padding: 0 1.5rem 1.5rem; }
.vm-footer-card {
  position: relative;
  overflow: hidden;
  border-radius: 1.5rem;
  color: rgba(255, 255, 255, 0.72);
  background-color: var(--vm-green-900);
}
.vm-footer a { color: #fff; text-decoration: none; transition: color 0.3s ease; }
.vm-footer a:hover { color: var(--vm-sage); }
.vm-footer .vm-btn-light:hover { color: #fff; }

.vm-footer-top {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  padding-block: clamp(5rem, 11vw, 9.5rem);
  background-color: var(--vm-green-900);
}
.vm-footer-top::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  background: linear-gradient(100deg, rgba(27, 46, 34, 0.97) 0%, rgba(27, 46, 34, 0.86) 55%, rgba(27, 46, 34, 0.6) 100%);
}
.vm-footer-top > .container { position: relative; }
/* object-fit: cover + scale ≥ 1.12 lasă loc pentru deplasarea de ±4% fără să apară marginile */
.vm-footer-top-bg {
  position: absolute;
  inset: 0;
  z-index: -2;
  width: 100%;
  height: 100%;
  object-fit: cover;
  transform: scale(1.12);
  will-change: transform;
  animation: vm-footer-pan 32s ease-in-out infinite;
}
@keyframes vm-footer-pan {
  0%   { transform: translate3d(3.5%, 0, 0) scale(1.12); }
  22%  { transform: translate3d(1.5%, -1%, 0) scale(1.22); }
  50%  { transform: translate3d(-3.5%, 0.5%, 0) scale(1.13); }
  74%  { transform: translate3d(-1%, 1%, 0) scale(1.24); }
  100% { transform: translate3d(3.5%, 0, 0) scale(1.12); }
}
@media (prefers-reduced-motion: reduce) {
  .vm-footer-top-bg { animation: none; }
}
.vm-footer-title {
  margin: 0;
  font-size: clamp(2.8rem, 7vw, 6rem);
  font-size: min(clamp(2.8rem, 7vw, 6rem), 10.7cqi);   /* vezi .vm-title-box */
  font-weight: 600;
  line-height: 1;
  letter-spacing: -0.03em;
  color: #fff;
}
.vm-footer-title span { color: var(--vm-sage); }
.vm-footer-top p { margin-bottom: 2.25rem; font-size: 1.1rem; line-height: 1.65; color: rgba(255, 255, 255, 0.8); }

.vm-footer-main {
  position: relative;
  padding-block: clamp(4rem, 8vw, 7rem) clamp(3.5rem, 6vw, 5.5rem);
  border-top: 1px solid rgba(255, 255, 255, 0.1);
}
.vm-footer-shape {
  position: absolute;
  right: -2rem;
  bottom: 0;
  width: min(55%, 720px);
  color: rgba(181, 192, 145, 0.09);
  pointer-events: none;
}
.vm-footer-main .container { position: relative; }
.vm-footer-label {
  display: block;
  margin-bottom: 1.5rem;
  font-size: 0.75rem;
  font-weight: 600;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--vm-sage);
}
.vm-footer-phone {
  display: inline-block;
  margin-bottom: 1rem;
  font-family: "Montserrat", var(--vm-font-script), var(--bs-body-font-family);
  font-size: clamp(1.7rem, 3vw, 2.5rem);
  font-weight: 600;
  letter-spacing: -0.02em;
  line-height: 1.1;
}
.vm-footer-main p { line-height: 1.65; }
.vm-footer-links { margin: 0; padding: 0; list-style: none; }
.vm-footer-links li { margin-bottom: 1.1rem; }
.vm-footer-links a { font-weight: 600; }
.vm-footer-partners { margin: 0; padding: 0; list-style: none; }
.vm-footer-partners li { display: flex; gap: 0.75rem; margin-bottom: 1.35rem; line-height: 1.35; }
.vm-footer-partners li > .bi { margin-top: 0.15rem; font-size: 1.1rem; color: var(--vm-sage); }
.vm-footer-partners small { display: block; margin-bottom: 0.2rem; color: rgba(255, 255, 255, 0.55); }
.vm-footer-partners strong { color: #fff; font-weight: 600; }

.vm-footer-bottom { padding-block: 1rem 2.5rem; }
/* Literele sunt întinse pe toată lățimea containerului (space-between), fără overflow ascuns,
   ca prima literă (V, care are serife late în Cinzel) să nu mai fie tăiată în stânga. */
.vm-footer-wordmark {
  display: flex;
  justify-content: space-between;
  margin-bottom: clamp(1.5rem, 3vw, 2.5rem);
  padding-inline: 0.02em;
  font-family: "Cinzel", Georgia, serif;
  font-size: min(14.5vw, 12.5rem);
  font-weight: 600;
  line-height: 1;
  white-space: nowrap;
  user-select: none;
}
.vm-footer-wordmark span {
  display: inline-block;
  color: transparent;
  background: linear-gradient(180deg, rgba(181, 192, 145, 0.55) 0%, rgba(181, 192, 145, 0.08) 95%);
  -webkit-background-clip: text;
  background-clip: text;
}
.vm-footer-legal {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 1.75rem 3rem;
  padding-top: 2rem;
  border-top: 1px solid rgba(255, 255, 255, 0.1);
  font-size: 0.9rem;
}
.vm-footer-legal-links { display: flex; flex-wrap: wrap; gap: 0.5rem 1.75rem; margin: 0 0 0.5rem; padding: 0; list-style: none; }
.vm-footer-legal-links a { display: inline-flex; align-items: center; gap: 0.4rem; font-weight: 600; }
.vm-footer-legal-links a .bi { color: var(--vm-sage); }
.vm-footer-legal-links a:hover { text-decoration: underline; text-underline-offset: 0.25em; }

/* Pictogramele ANPC (SAL / SOL) ca butoane: contur fin, fundal ușor transparent */
.vm-footer-anpc { display: flex; flex-wrap: wrap; align-items: center; gap: 0.75rem; }
.vm-anpc-btn {
  display: inline-flex;
  align-items: center;
  padding: 0.55rem 0.9rem;
  border: 1px solid rgba(255, 255, 255, 0.22);
  border-radius: 0.85rem;
  line-height: 0;
  background-color: rgba(255, 255, 255, 0.05);
  transition: background-color 0.3s ease, border-color 0.3s ease, transform 0.3s ease;
}
.vm-anpc-btn:hover,
.vm-anpc-btn:focus-visible { border-color: var(--vm-sage); background-color: rgba(255, 255, 255, 0.12); transform: translateY(-2px); }
.vm-anpc-btn img { width: auto; height: 37px; }
@media (max-width: 767.98px) {
  .vm-footer { padding: 0; }
  .vm-footer-card { border-radius: 1.5rem 1.5rem 0 0; }
}

/* Animații de apariție la scroll (footer)
   -------------------------------------------------------------------------- */
.js [data-reveal] {
  opacity: 0;
  transform: translateY(2.5rem);
  transition: opacity 0.9s ease, transform 0.9s cubic-bezier(0.22, 1, 0.36, 1);
  transition-delay: var(--reveal-delay, 0s);
}
.js [data-reveal="pop"] { transition-timing-function: ease, cubic-bezier(0.34, 1.56, 0.64, 1); }
.js .vm-footer-wordmark [data-reveal] { transform: translateY(60%); }
.js [data-reveal].is-revealed { opacity: 1; transform: none; }
@media (prefers-reduced-motion: reduce) {
  .js [data-reveal] { opacity: 1; transform: none; transition: none; }
}

/* Pagini legale în modal fullscreen
   -------------------------------------------------------------------------- */
.vm-legal-modal .modal-content { background-color: #fff; }
.vm-legal-bar {
  position: sticky;
  top: 0;
  z-index: 2;
  padding-block: 1rem;
  border-bottom: 1px solid rgba(27, 46, 34, 0.1);
  background-color: rgba(255, 255, 255, 0.95);
  backdrop-filter: blur(6px);
}
.vm-legal-bar .brand-name { color: var(--vm-green-900); }
.vm-legal-close {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  padding: 0.55rem 1.1rem;
  border: 1px solid rgba(27, 46, 34, 0.25);
  border-radius: 2rem;
  font-weight: 600;
  color: var(--vm-green-900);
  background: none;
  transition: border-color 0.3s ease, background-color 0.3s ease;
}
.vm-legal-close:hover { border-color: var(--vm-green-900); background-color: #f1f1ec; }
.vm-legal-content {
  max-width: 50rem;
  margin-inline: auto;
  padding-block: clamp(2.5rem, 6vw, 5rem);
  color: #36413a;
  line-height: 1.7;
}
.vm-legal-title { margin-bottom: 0.5rem; font-size: clamp(2rem, 4.5vw, 3.25rem); letter-spacing: -0.03em; color: var(--vm-green-900); }
.vm-legal-updated { margin-bottom: 0.75rem; font-size: 0.9rem; color: #7a847c; }
/* nota din traduceri: versiunea în limba română prevalează */
.vm-legal-note { margin-bottom: 2rem; padding: 0.75rem 1rem; border-left: 3px solid var(--vm-sage); font-size: 0.9rem; color: #5b665e; background-color: var(--vm-cream); }
.vm-legal-updated + p:not(.vm-legal-note) { margin-top: 1.25rem; }
.vm-legal-content h3 { margin: 2.5rem 0 0.85rem; font-size: 1.25rem; color: var(--vm-green-900); }
.vm-legal-content ul { padding-left: 1.2rem; }
.vm-legal-content li { margin-bottom: 0.5rem; }
.vm-legal-content .table { margin-block: 1rem; font-size: 0.95rem; }
.vm-legal-content .table th { color: var(--vm-green-900); white-space: nowrap; }
.vm-legal-switch {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.5rem 1rem;
  margin-top: 3.5rem;
  padding-top: 1.5rem;
  border-top: 1px solid rgba(27, 46, 34, 0.1);
}
.vm-legal-switch span { color: #7a847c; }
.vm-legal-switch a { font-weight: 600; }
.vm-todo { padding: 0 0.3em; border-radius: 0.25rem; color: #6b4e00; background-color: #fff1c2; }

/* Buton „înapoi sus”
   -------------------------------------------------------------------------- */
.vm-to-top {
  position: fixed;
  right: 1.25rem;
  bottom: 1.25rem;
  z-index: 1020;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2.75rem;
  height: 2.75rem;
  border: 0;
  border-radius: 50%;
  color: var(--vm-green-900);
  background-color: var(--vm-sage);
  box-shadow: 0 4px 14px rgba(0, 0, 0, 0.18);
  opacity: 0;
  visibility: hidden;
  transform: translateY(1rem);
  transition: opacity 0.3s ease, transform 0.3s ease, visibility 0.3s ease;
}
.vm-to-top.is-visible { opacity: 1; visibility: visible; transform: none; }
.vm-to-top:hover { background-color: #fff; }
