/* Smart Residence - site public. Temă luminoasă, un singur accent albastru, colțuri 16px / butoane pastilă. */
@font-face { font-family: 'Geist'; src: url('../vendor/fonts/geist-latin-ext.woff2') format('woff2'); font-weight: 100 900; font-display: swap;
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: 'Geist'; src: url('../vendor/fonts/geist-latin.woff2') format('woff2'); font-weight: 100 900; font-display: swap;
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }

@font-face { font-family: 'Geist'; src: url('../vendor/fonts/geist-cyrillic-ext.woff2') format('woff2'); font-weight: 100 900; font-display: swap;
  unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F; }
@font-face { font-family: 'Geist'; src: url('../vendor/fonts/geist-cyrillic.woff2') format('woff2'); font-weight: 100 900; font-display: swap;
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; }
:root {
  --bg: #FFFFFF;
  --bg-2: #F5F8FD;
  --bg-3: #EDF3FC;
  --ink: #0F1B2D;
  --ink-2: #3F4D63;
  --ink-3: #66758C;
  --line: #E2E9F3;
  --line-2: #D3DDEB;
  --accent: #1B6BF0;
  --accent-2: #0F57D6;
  --accent-soft: #E9F1FE;
  --ok: #16A34A;
  --ok-soft: #E8F7EE;
  --warn: #B45309;
  --err: #C2410C;
  --r: 16px;
  --r-sm: 10px;
  --umbra: 0 1px 2px rgba(20, 45, 95, .06), 0 10px 30px -12px rgba(20, 45, 95, .18);
  --umbra-mare: 0 2px 6px rgba(20, 45, 95, .06), 0 30px 70px -24px rgba(20, 45, 95, .32);
  --ease: cubic-bezier(.16, 1, .3, 1);
  --container: 1240px;
  --nav-h: 68px;
}

*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }
body { margin: 0; background: var(--bg); color: var(--ink); font: 400 16px/1.55 'Geist', system-ui, -apple-system, 'Segoe UI', sans-serif;
  -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility; overflow-x: hidden; }
img { display: block; max-width: 100%; }
a { color: inherit; text-decoration: none; }
button { font: inherit; color: inherit; cursor: pointer; background: none; border: 0; padding: 0; }
input, select, textarea { font: inherit; color: inherit; }
h1, h2, h3, h4 { margin: 0; font-weight: 600; letter-spacing: -0.02em; line-height: 1.15; }
p { margin: 0; }
.container { width: 100%; max-width: var(--container); margin: 0 auto; padding: 0 24px; }
.sr { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.ph { line-height: 1; }
:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; border-radius: 6px; }

/* Butoane */
.btn { display: inline-flex; align-items: center; justify-content: center; gap: 8px; height: 48px; padding: 0 22px; border-radius: 999px;
  font-weight: 600; font-size: 15px; white-space: nowrap; transition: transform .2s var(--ease), background .2s, box-shadow .2s, color .2s; }
.btn:active { transform: translateY(1px) scale(.985); }
.btn-plin { background: var(--accent); color: #fff; box-shadow: 0 8px 20px -8px rgba(27, 107, 240, .6); }
.btn-plin:hover { background: var(--accent-2); }
.btn-contur { border: 1px solid var(--line-2); background: #fff; color: var(--ink); }
.btn-contur:hover { border-color: var(--accent); color: var(--accent); }
.btn-mic { height: 40px; padding: 0 16px; font-size: 14px; }
.btn-lat { width: 100%; }
.btn[disabled] { opacity: .5; pointer-events: none; }

/* Navigare */
.nav { position: fixed; top: 14px; left: 0; right: 0; z-index: 50; pointer-events: none; }
.nav-bara { pointer-events: auto; max-width: 1180px; margin: 0 auto; height: var(--nav-h); display: flex; align-items: center; gap: 24px;
  padding: 0 10px 0 22px; border-radius: 999px; background: rgba(255, 255, 255, .86); backdrop-filter: blur(18px) saturate(160%);
  -webkit-backdrop-filter: blur(18px) saturate(160%); border: 1px solid rgba(255, 255, 255, .7); box-shadow: var(--umbra); transition: box-shadow .3s; }
.nav.derulat .nav-bara { box-shadow: var(--umbra-mare); }
.marca { display: flex; align-items: center; gap: 10px; font-weight: 650; letter-spacing: -0.01em; font-size: 17px; }
.marca-semn { width: 34px; height: 34px; border-radius: 10px; background: var(--accent); color: #fff; display: grid; place-items: center;
  font-size: 13px; font-weight: 700; letter-spacing: .02em; }
.nav-linkuri { display: flex; gap: 4px; margin-left: auto; }
.nav-linkuri a { padding: 8px 14px; border-radius: 999px; font-size: 15px; color: var(--ink-2); transition: background .2s, color .2s; }
.nav-linkuri a:hover { background: var(--bg-2); color: var(--ink); }
.nav-dreapta { display: flex; align-items: center; gap: 8px; }
.nav-tel { display: inline-flex; align-items: center; gap: 8px; height: 44px; padding: 0 14px; border-radius: 999px; color: var(--ink-2); font-size: 15px; }
.nav-tel:hover { background: var(--bg-2); color: var(--ink); }
.nav-meniu { display: none; width: 44px; height: 44px; border-radius: 999px; place-items: center; font-size: 22px; }
.nav-sertar { display: none; }

/* EROU */
.erou { position: relative; min-height: 100dvh; display: flex; flex-direction: column; justify-content: flex-end; overflow: hidden; background: #dfe7f2; }
.erou-slides { position: absolute; inset: 0; }
.erou-slide { position: absolute; inset: 0; margin: 0; opacity: 0; transition: opacity 1.4s ease; }
.erou-slide img { width: 100%; height: 100%; object-fit: cover; transform: scale(1.08); transition: transform 8s linear; }
.erou-slide.activ { opacity: 1; }
.erou-slide.activ img { transform: scale(1); }
.erou-voal { position: absolute; inset: 0; background: linear-gradient(180deg, rgba(15, 27, 45, .18) 0%, rgba(15, 27, 45, 0) 30%, rgba(15, 27, 45, 0) 45%, rgba(15, 27, 45, .52) 100%); pointer-events: none; }
.erou-continut { position: relative; z-index: 2; padding-bottom: 40px; padding-top: calc(var(--nav-h) + 60px); }
.erou-titlu { color: #fff; font-size: clamp(30px, 4.2vw, 52px); font-weight: 600; letter-spacing: -0.03em; line-height: 1.08; max-width: 14ch;
  text-shadow: 0 2px 30px rgba(10, 20, 40, .35); margin-bottom: 28px; }
.erou-jos { display: flex; align-items: flex-end; justify-content: space-between; gap: 24px; }
.erou-indicator { display: flex; flex-direction: column; align-items: flex-end; gap: 10px; color: #fff; min-width: 220px; }
.erou-eticheta { font-size: 14px; font-weight: 500; text-shadow: 0 1px 12px rgba(0, 0, 0, .35); min-height: 20px; transition: opacity .4s; }
.erou-bare { display: flex; gap: 6px; }
.erou-bara { width: 34px; height: 4px; border-radius: 4px; background: rgba(255, 255, 255, .38); overflow: hidden; position: relative; }
.erou-bara::after { content: ''; position: absolute; inset: 0; background: #fff; transform-origin: left; transform: scaleX(0); }
.erou-bara.gata::after { transform: scaleX(1); }
.erou-bara.activ::after { animation: bara var(--durata, 6s) linear forwards; }
@keyframes bara { to { transform: scaleX(1); } }

/* Căutarea (unealta din erou) */
.cautare { position: relative; background: #fff; border-radius: 24px; box-shadow: var(--umbra-mare); padding: 18px; max-width: 980px; width: 100%; }
.cautare-ap { display: flex; gap: 6px; margin-bottom: 14px; flex-wrap: wrap; }
.chip { display: inline-flex; align-items: center; gap: 8px; height: 38px; padding: 0 14px 0 6px; border-radius: 999px; border: 1px solid var(--line);
  font-size: 14px; font-weight: 500; color: var(--ink-2); background: #fff; transition: all .2s var(--ease); }
.chip img { width: 28px; height: 28px; border-radius: 999px; object-fit: cover; }
.chip .ph { width: 28px; height: 28px; border-radius: 999px; display: grid; place-items: center; background: var(--bg-2); font-size: 15px; }
.chip small { color: var(--ink-3); font-weight: 400; }
.chip:hover { border-color: var(--line-2); color: var(--ink); }
.chip-text { display: inline-flex; align-items: baseline; gap: 6px; }
.chip[data-ap="toate"] .chip-text small { display: none; }
.nume-scurt { display: none; }
.chip[aria-pressed="true"] { border-color: var(--accent); background: var(--accent-soft); color: var(--accent-2); }
.chip[aria-pressed="true"] small { color: var(--accent-2); opacity: .75; }
.cautare-rand { display: grid; grid-template-columns: 1fr 1fr 1fr auto; gap: 8px; align-items: stretch; }
.camp { position: relative; text-align: left; border: 1px solid var(--line); border-radius: 14px; padding: 10px 14px; background: #fff; min-height: 60px;
  display: flex; flex-direction: column; justify-content: center; transition: border-color .2s, box-shadow .2s; }
.camp:hover { border-color: var(--line-2); }
.camp.deschis, .camp:focus-visible { border-color: var(--accent); box-shadow: 0 0 0 4px var(--accent-soft); outline: 0; }
.camp-eticheta { font-size: 12px; font-weight: 600; color: var(--ink-3); display: flex; align-items: center; gap: 6px; }
.camp-valoare { font-size: 15px; font-weight: 500; color: var(--ink); margin-top: 2px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.camp-valoare.gol { color: var(--ink-3); font-weight: 400; }
.cautare .btn-plin { height: auto; min-height: 60px; border-radius: 14px; padding: 0 26px; }
.cautare-subsol { display: flex; align-items: center; gap: 14px; margin-top: 12px; font-size: 13px; color: var(--ink-3); flex-wrap: wrap; }
.cautare-subsol b { color: var(--ink); font-weight: 600; }
.nota-pill { display: inline-flex; align-items: center; justify-content: center; min-width: 30px; height: 24px; padding: 0 6px; border-radius: 7px 7px 7px 2px;
  background: #003B95; color: #fff; font-size: 12.5px; font-weight: 700; }
.cautare-rezultate { display: none; margin-top: 14px; border-top: 1px solid var(--line); padding-top: 14px; }
.cautare-rezultate.vizibil { display: grid; gap: 10px; animation: apare .5s var(--ease); }
@keyframes apare { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: none; } }
.rezultat { display: grid; grid-template-columns: 64px 1fr auto; gap: 14px; align-items: center; padding: 10px; border-radius: 14px; background: var(--bg-2); }
.rezultat img { width: 64px; height: 64px; border-radius: 12px; object-fit: cover; }
.rezultat h4 { font-size: 15px; font-weight: 600; }
.rezultat-info { font-size: 13.5px; color: var(--ink-3); margin-top: 2px; display: flex; gap: 10px; flex-wrap: wrap; align-items: center; }
.rezultat-info .liber { color: var(--ok); font-weight: 600; display: inline-flex; align-items: center; gap: 4px; }
.rezultat-info .ocupat { color: var(--err); font-weight: 500; }
.rezultat-pret { text-align: right; display: flex; align-items: center; gap: 14px; }
.rezultat-pret strong { font-size: 17px; font-weight: 650; display: block; }
.rezultat-pret span { font-size: 12.5px; color: var(--ink-3); }
.rezultat.indisponibil { opacity: .9; }
.schelet { background: linear-gradient(90deg, var(--bg-2) 0%, #fff 50%, var(--bg-2) 100%); background-size: 200% 100%; animation: sclipire 1.2s infinite; border-radius: 14px; height: 84px; }
@keyframes sclipire { to { background-position: -200% 0; } }

/* Fereastra-calendar (pop-up) */
.pop { position: absolute; z-index: 60; background: #fff; border-radius: 20px; box-shadow: var(--umbra-mare); border: 1px solid var(--line); padding: 18px;
  opacity: 0; transform: translateY(8px) scale(.98); pointer-events: none; transition: opacity .22s var(--ease), transform .22s var(--ease); }
.pop.deschis { opacity: 1; transform: none; pointer-events: auto; }
/* nu încape deasupra câmpurilor (ar intra sub meniu): fixată chiar sub meniu, cât încape pe ecran */
.pop.pop-fix { position: fixed; top: var(--pop-sus); bottom: auto; left: var(--pop-stanga); right: auto; width: var(--pop-lat);
  max-height: calc(100vh - var(--pop-sus) - 16px); overflow: auto; }
.pop-calendar { left: 18px; right: 18px; bottom: calc(100% + 10px); max-width: 720px; }
.pop-oaspeti { width: 320px; bottom: calc(100% + 10px); }
.pop-cap { display: none; }
.pop-subsol { display: flex; justify-content: space-between; align-items: center; gap: 10px; margin-top: 12px; padding-top: 12px; border-top: 1px solid var(--line); font-size: 14px; color: var(--ink-3); }
.pop-subsol .btn { height: 40px; }
.link-simplu { color: var(--ink-2); font-weight: 500; text-decoration: underline; text-underline-offset: 3px; }

.cal { user-select: none; position: relative; }
.cal-nav button { position: absolute; top: 0; z-index: 2; width: 38px; height: 38px; border-radius: 999px; display: grid; place-items: center; font-size: 18px; color: var(--ink-2); }
.cal-nav .inapoi { left: 0; } .cal-nav .inainte { right: 0; }
.cal-nav button:hover:not([disabled]) { background: var(--bg-2); }
.cal-nav button[disabled] { opacity: .25; cursor: default; }
.cal-luni { display: grid; grid-template-columns: repeat(var(--luni, 2), 1fr); gap: 28px; }
.cal-luna h5 { margin: 0 0 4px; text-align: center; font-size: 15px; font-weight: 600; height: 38px; line-height: 38px; }
.cal-grila { display: grid; grid-template-columns: repeat(7, 1fr); gap: 2px 0; }
.cal-zs { font-size: 11.5px; color: var(--ink-3); text-align: center; padding: 4px 0 6px; font-weight: 500; }
.zi { position: relative; height: 50px; display: flex; flex-direction: column; align-items: center; justify-content: center; font-size: 14.5px; font-weight: 500;
  border-radius: 12px; transition: background .15s; }
.zi small { font-size: 10.5px; font-weight: 500; color: var(--ink-3); margin-top: 1px; letter-spacing: -0.01em; }
.zi:hover:not(.inactiv):not(.gol) { background: var(--bg-2); }
.zi.gol { pointer-events: none; }
.zi.trecut { color: #B3BDCC; pointer-events: none; }
.zi.ocupat { color: #A5AFBE; text-decoration: line-through; text-decoration-color: #C5CEDB; }
.zi.ocupat small { visibility: hidden; }
.zi.inactiv { cursor: default; }
.zi.doar-plecare { color: var(--ink-2); text-decoration: none; }
.zi.interval { background: var(--accent-soft); border-radius: 0; }
.zi.previzualizare { background: var(--bg-3); border-radius: 0; }
.zi.start, .zi.final { background: var(--accent) !important; color: #fff; border-radius: 12px; }
.zi.start small, .zi.final small { color: rgba(255, 255, 255, .85); }
.zi.start.cu-final { border-radius: 12px 0 0 12px; }
.zi.final { border-radius: 0 12px 12px 0; }
.zi.azi::before { content: ''; position: absolute; top: 6px; right: 9px; width: 5px; height: 5px; border-radius: 99px; background: var(--accent); }
.cal-mesaj { min-height: 20px; font-size: 13.5px; color: var(--ink-3); margin-top: 6px; }
.cal-mesaj.eroare { color: var(--err); }
.cal-incarcare { opacity: .5; pointer-events: none; }

.stepper { display: flex; align-items: center; justify-content: space-between; padding: 12px 0; }
.stepper + .stepper { border-top: 1px solid var(--line); }
.stepper b { display: block; font-weight: 600; font-size: 15px; }
.stepper span { font-size: 13px; color: var(--ink-3); }
.stepper-ctrl { display: flex; align-items: center; gap: 12px; }
.stepper-ctrl button { width: 36px; height: 36px; border-radius: 999px; border: 1px solid var(--line-2); display: grid; place-items: center; font-size: 16px; }
.stepper-ctrl button:hover:not([disabled]) { border-color: var(--ink-2); }
.stepper-ctrl button[disabled] { opacity: .35; cursor: default; }
.stepper-ctrl output { min-width: 18px; text-align: center; font-weight: 600; }

/* Secțiuni */
.sectiune { padding: 120px 0; }
.sectiune-cap { max-width: 640px; margin-bottom: 44px; }
.sectiune-cap h2 { font-size: clamp(28px, 3.1vw, 40px); }
.sectiune-cap p { color: var(--ink-3); font-size: 17px; margin-top: 12px; max-width: 52ch; }
.sus-mic { font-size: 13px; font-weight: 600; color: var(--accent); letter-spacing: .08em; text-transform: uppercase; margin-bottom: 12px; display: block; }
.apare-la-derulare { opacity: 0; transform: translateY(26px); transition: opacity .9s var(--ease), transform .9s var(--ease); }
.apare-la-derulare.vazut { opacity: 1; transform: none; }

/* Apartamentele */
.apartamente-grila { display: grid; grid-template-columns: 7fr 5fr; gap: 28px; align-items: start; }
.apartamente-grila > :nth-child(2) { margin-top: 90px; }
.ap-card { display: block; border-radius: 24px; background: #fff; transition: transform .5s var(--ease); }
.ap-poze { position: relative; aspect-ratio: 4 / 3.1; border-radius: 24px; overflow: hidden; background: var(--bg-2); box-shadow: var(--umbra); }
.apartamente-grila > :nth-child(2) .ap-poze { aspect-ratio: 4 / 4.2; }
.ap-poze img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; opacity: 0; transition: opacity .35s ease, transform 1.2s var(--ease); }
.ap-poze img.activ { opacity: 1; }
.ap-poze.lin img { transition: opacity 1.1s ease, transform 1.2s var(--ease); }  /* trecerea singură: mai lină decât cea după mouse */
.ap-card:hover .ap-poze img.activ { transform: scale(1.03); }
.ap-segmente { position: absolute; top: 14px; left: 14px; right: 14px; display: flex; gap: 4px; z-index: 2; }
.ap-segmente span { flex: 1; height: 3px; border-radius: 3px; background: rgba(255, 255, 255, .45); transition: background .2s; }
.ap-segmente span.activ { background: #fff; }
.ap-insigna { position: absolute; left: 14px; bottom: 14px; z-index: 2; display: inline-flex; align-items: center; gap: 8px; background: rgba(255, 255, 255, .94);
  border-radius: 999px; padding: 6px 12px 6px 6px; font-size: 13px; font-weight: 600; box-shadow: var(--umbra); }
.ap-corp { padding: 20px 6px 6px; display: grid; grid-template-columns: 1fr auto; gap: 8px 16px; align-items: end; }
.ap-corp h3 { font-size: 24px; }
.ap-corp p { color: var(--ink-3); font-size: 15px; margin-top: 4px; }
.ap-date { grid-column: 1 / -1; display: flex; flex-wrap: wrap; gap: 8px; margin-top: 10px; }
.fapt { display: inline-flex; align-items: center; gap: 8px; font-size: 14px; color: var(--ink-2); padding: 6px 12px 6px 6px; border-radius: 999px; background: var(--bg-2); }
.fapt .ph { width: 28px; height: 28px; border-radius: 999px; background: #fff; display: grid; place-items: center; font-size: 15px; color: var(--accent); }
.ap-pret { text-align: right; }
.ap-pret small { display: block; font-size: 13px; color: var(--ink-3); }
.ap-pret strong { font-size: 22px; font-weight: 650; letter-spacing: -0.02em; }
.ap-pret strong span { font-size: 14px; font-weight: 500; color: var(--ink-3); }
.sageata { width: 48px; height: 48px; border-radius: 999px; background: var(--ink); color: #fff; display: grid; place-items: center; font-size: 18px;
  transition: background .3s, transform .4s var(--ease); flex-shrink: 0; }
.ap-card:hover .sageata { background: var(--accent); transform: rotate(-45deg); }

/* Povestea: cadru lipit la derulare */
.poveste { background: var(--bg-2); }
.poveste-grila { display: grid; grid-template-columns: 5fr 7fr; gap: 64px; }
.poveste-pasi { padding: 20vh 0 12vh; }
.pas { min-height: 56vh; display: flex; flex-direction: column; justify-content: center; opacity: .28; transition: opacity .6s var(--ease); }
.pas.activ { opacity: 1; }
.pas-nr { width: 44px; height: 44px; border-radius: 14px; background: #fff; box-shadow: var(--umbra); display: grid; place-items: center; font-size: 20px; color: var(--accent); margin-bottom: 18px; }
.pas h3 { font-size: clamp(24px, 2.5vw, 32px); }
.pas p { color: var(--ink-3); font-size: 16.5px; margin-top: 10px; max-width: 36ch; }
.pas .ap-legatura { display: inline-flex; align-items: center; gap: 6px; margin-top: 16px; font-size: 14px; font-weight: 600; color: var(--accent); }
.pasi-banda { display: contents; }
.poveste-grila > *, .poveste-pasi { min-width: 0; }
.poveste-cadru { position: sticky; top: calc(var(--nav-h) + 40px); height: calc(100vh - var(--nav-h) - 80px); margin-top: 10vh; }
.poveste-scena { position: relative; height: 100%; border-radius: 28px; overflow: hidden; box-shadow: var(--umbra-mare); background: #dfe7f2; }
.poveste-scena img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; clip-path: inset(0 0 100% 0); transform: scale(1.12);
  transition: clip-path 1.1s var(--ease), transform 1.6s var(--ease); }
.poveste-scena img.activ { clip-path: inset(0 0 0 0); transform: scale(1); }
.poveste-scena img.dedesubt { clip-path: inset(0 0 0 0); transform: scale(1); }
.poveste-progres { position: absolute; right: 18px; top: 50%; transform: translateY(-50%); display: flex; flex-direction: column; gap: 6px; z-index: 3; }
.poveste-progres span { width: 4px; height: 22px; border-radius: 4px; background: rgba(255, 255, 255, .5); transition: background .3s, height .4s var(--ease); }
.poveste-progres span.activ { background: #fff; height: 40px; }

/* Facilități (bento) */
.bento { display: grid; grid-template-columns: repeat(4, 1fr); grid-auto-rows: 170px; gap: 16px; }
.dala { position: relative; border-radius: 22px; background: #fff; border: 1px solid var(--line); padding: 22px; display: flex; flex-direction: column; justify-content: space-between;
  overflow: hidden; transition: transform .5s var(--ease), box-shadow .5s var(--ease); }
.dala:hover { transform: translateY(-4px); box-shadow: var(--umbra); }
.dala-ic { width: 48px; height: 48px; border-radius: 14px; background: var(--accent-soft); color: var(--accent); display: grid; place-items: center; font-size: 24px; }
.dala h4 { font-size: 17px; font-weight: 600; }
.dala small { display: block; margin-top: 3px; font-size: 13px; color: var(--ink-3); }
.dala-foto { grid-row: span 2; padding: 0; border: 0; color: #fff; justify-content: flex-end; }
.dala-foto img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: transform 1.2s var(--ease); }
.dala-foto:hover img { transform: scale(1.05); }
.dala-foto::after { content: ''; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(15, 27, 45, 0) 45%, rgba(15, 27, 45, .6) 100%); }
.dala-foto .dala-text { position: relative; z-index: 2; padding: 22px; }
.dala-foto small { color: rgba(255, 255, 255, .85); }
.dala-lata { grid-column: span 2; }
.dala-albastra { background: var(--accent); border-color: var(--accent); color: #fff; }
.dala-albastra .dala-ic { background: rgba(255, 255, 255, .16); color: #fff; }
.dala-albastra small { color: rgba(255, 255, 255, .8); }
.dala-cifra { font-size: 44px; font-weight: 650; letter-spacing: -0.04em; line-height: 1; }
.dala-cifra span { font-size: 16px; font-weight: 500; letter-spacing: 0; margin-left: 4px; opacity: .85; }

/* Recenzii */
.recenzii-grila { display: grid; grid-template-columns: 360px 1fr; gap: 48px; align-items: center; }
.scor { background: #fff; border-radius: 28px; border: 1px solid var(--line); padding: 32px; text-align: center; box-shadow: var(--umbra); }
.inel { position: relative; width: 190px; height: 190px; margin: 0 auto 18px; }
.inel svg { width: 100%; height: 100%; transform: rotate(-90deg); }
.inel circle { fill: none; stroke-width: 12; }
.inel .pista { stroke: var(--bg-3); }
.inel .umplere { stroke: var(--accent); stroke-linecap: round; transition: stroke-dashoffset 1.8s var(--ease); }
.inel-text { position: absolute; inset: 0; display: grid; place-items: center; align-content: center; }
.inel-text strong { font-size: 52px; font-weight: 650; letter-spacing: -0.04em; line-height: 1; }
.inel-text span { font-size: 14px; color: var(--ink-3); margin-top: 6px; }
.scor h3 { font-size: 20px; }
.scor p { color: var(--ink-3); font-size: 14.5px; margin-top: 6px; }
.scor-ap { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin-top: 22px; text-align: left; }
.scor-ap div { background: var(--bg-2); border-radius: 14px; padding: 12px 14px; }
.scor-ap b { font-size: 20px; font-weight: 650; display: block; }
.scor-ap span { font-size: 12.5px; color: var(--ink-3); }
.banda { display: flex; gap: 16px; overflow-x: auto; scroll-snap-type: x mandatory; padding: 6px 4px 24px; scrollbar-width: none; cursor: grab; }
.banda::-webkit-scrollbar { display: none; }
.banda.trage { cursor: grabbing; scroll-snap-type: none; }
/* cât curge singură, fără „agățare" de carduri; marginea din dreapta se stinge ușor în loc să taie cardul */
.banda.curge { scroll-snap-type: none; -webkit-mask-image: linear-gradient(90deg, transparent, #000 40px, #000 calc(100% - 70px), transparent);
  mask-image: linear-gradient(90deg, transparent, #000 40px, #000 calc(100% - 70px), transparent); }
.citat { flex: 0 0 340px; scroll-snap-align: start; background: #fff; border-radius: 22px; border: 1px solid var(--line); padding: 24px; display: flex; flex-direction: column; gap: 16px;
  justify-content: space-between; min-height: 220px; }
.citat blockquote { margin: 0; font-size: 16px; line-height: 1.55; color: var(--ink); display: -webkit-box; -webkit-line-clamp: 4; -webkit-box-orient: vertical; overflow: hidden; }
.citat footer { display: flex; align-items: center; gap: 12px; font-size: 14px; }
.avatar { width: 40px; height: 40px; border-radius: 999px; background: var(--accent-soft); color: var(--accent-2); display: grid; place-items: center; font-weight: 650; }
.citat footer b { display: block; font-weight: 600; }
.citat footer span { color: var(--ink-3); font-size: 13px; }
.banda-ctrl { display: flex; gap: 8px; margin-top: 4px; }
.banda-ctrl button { width: 44px; height: 44px; border-radius: 999px; border: 1px solid var(--line-2); display: grid; place-items: center; font-size: 18px; background: #fff; }
.banda-ctrl button:hover { border-color: var(--accent); color: var(--accent); }

/* Locație */
.locatie { position: relative; border-radius: 28px; overflow: hidden; height: 640px; box-shadow: var(--umbra); border: 1px solid var(--line); }
#harta { position: absolute; inset: 0; background: var(--bg-3); }
.locatie-card { position: absolute; z-index: 500; top: 20px; left: 20px; width: 340px; max-height: calc(100% - 40px); overflow: auto; background: #fff; border-radius: 22px; padding: 22px; box-shadow: var(--umbra-mare); }
.locatie-card h3 { font-size: 20px; margin-bottom: 14px; }
.loc-ap { display: flex; gap: 12px; align-items: flex-start; padding: 10px; border-radius: 14px; cursor: pointer; transition: background .2s; }
.loc-ap:hover, .loc-ap.activ { background: var(--bg-2); }
.loc-ap .ph { width: 36px; height: 36px; border-radius: 12px; background: var(--accent-soft); color: var(--accent); display: grid; place-items: center; font-size: 18px; flex-shrink: 0; }
.loc-ap b { display: block; font-size: 15px; font-weight: 600; }
.loc-ap span { font-size: 13.5px; color: var(--ink-3); }
.aproape { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 16px; padding-top: 16px; border-top: 1px solid var(--line); }
.aproape span { font-size: 13px; padding: 6px 10px; border-radius: 999px; background: var(--bg-2); color: var(--ink-2); }
.aproape span b { font-weight: 600; color: var(--ink); }
.leaflet-container { font-family: inherit; }
.leaflet-tile-pane { filter: grayscale(1) contrast(.92) brightness(1.06); }
.pin-harta { width: 44px; height: 44px; border-radius: 999px 999px 999px 4px; transform: rotate(-45deg); background: var(--accent); box-shadow: 0 10px 24px -6px rgba(27, 107, 240, .7);
  display: grid; place-items: center; border: 3px solid #fff; }
.pin-harta i { transform: rotate(45deg); color: #fff; font-size: 18px; }

/* Rezervare directă */
.direct { background: linear-gradient(135deg, #F3F7FE 0%, #E7F0FE 100%); border-radius: 32px; padding: 64px; display: grid; grid-template-columns: 1.1fr 1fr; gap: 48px; align-items: center; overflow: hidden; position: relative; }
.direct h2 { font-size: clamp(28px, 3vw, 40px); }
.direct p { color: var(--ink-2); margin-top: 12px; font-size: 17px; max-width: 42ch; }
.direct-butoane { display: flex; gap: 10px; margin-top: 28px; flex-wrap: wrap; }
.avantaje { display: grid; gap: 12px; }
.avantaj { display: flex; gap: 16px; align-items: center; background: #fff; border-radius: 18px; padding: 16px 18px; box-shadow: var(--umbra); }
.avantaj .ph { width: 46px; height: 46px; border-radius: 14px; background: var(--accent-soft); color: var(--accent); display: grid; place-items: center; font-size: 22px; flex-shrink: 0; }
.avantaj b { display: block; font-weight: 600; }
.avantaj span { font-size: 14px; color: var(--ink-3); }

/* Subsol */
.subsol { padding: 80px 0 40px; border-top: 1px solid var(--line); margin-top: 120px; }
.subsol-grila { display: grid; grid-template-columns: 1.4fr 1fr 1fr 1fr; gap: 40px; }
.subsol h5 { font-size: 13px; font-weight: 600; color: var(--ink-3); margin: 0 0 14px; }
.subsol ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; font-size: 15px; }
.subsol ul a:hover { color: var(--accent); }
.subsol-desc { color: var(--ink-3); font-size: 15px; margin-top: 14px; max-width: 34ch; }
.subsol-jos { display: flex; justify-content: space-between; gap: 20px; margin-top: 56px; padding-top: 24px; border-top: 1px solid var(--line); font-size: 13.5px; color: var(--ink-3); flex-wrap: wrap; }
.subsol-jos a:hover { color: var(--ink); }

.plutitor { position: fixed; right: 18px; bottom: 18px; z-index: 40; display: flex; flex-direction: column; gap: 10px; }
.plutitor a { width: 54px; height: 54px; border-radius: 999px; display: grid; place-items: center; font-size: 26px; color: #fff; box-shadow: var(--umbra-mare); transition: transform .3s var(--ease); }
.plutitor a:hover { transform: translateY(-2px) scale(1.04); }
.plutitor .wa { background: #1FAF55; }
.plutitor .tel { background: var(--accent); display: none; }

/* PAGINA APARTAMENTULUI */
.ap-pagina { padding-top: calc(var(--nav-h) + 44px); }
.mozaic { display: grid; grid-template-columns: 2fr 1fr 1fr; grid-template-rows: 250px 250px; gap: 10px; border-radius: 24px; overflow: hidden; position: relative; }
.mozaic button { position: relative; overflow: hidden; background: var(--bg-2); }
.mozaic button:first-child { grid-row: span 2; }
.mozaic img { width: 100%; height: 100%; object-fit: cover; transition: transform 1s var(--ease), filter .3s; }
.mozaic button:hover img { transform: scale(1.04); filter: brightness(.94); }
.mozaic-toate { position: absolute; right: 16px; bottom: 16px; z-index: 2; }
.mozaic-toate .btn { background: #fff; box-shadow: var(--umbra); border: 0; }
.ap-cap { display: flex; justify-content: space-between; align-items: flex-end; gap: 24px; margin: 34px 0 30px; flex-wrap: wrap; }
.ap-cap h1 { font-size: clamp(30px, 3.6vw, 46px); letter-spacing: -0.03em; }
.ap-cap p { color: var(--ink-3); margin-top: 8px; display: flex; align-items: center; gap: 6px; }
.ap-scor { display: flex; align-items: center; gap: 12px; background: var(--bg-2); border-radius: 18px; padding: 10px 16px 10px 10px; }
.ap-scor .nota-pill { height: 40px; min-width: 46px; font-size: 17px; border-radius: 12px 12px 12px 3px; color: #fff; }
.ap-scor b { display: block; font-size: 15px; }
.ap-scor span { font-size: 13px; color: var(--ink-3); }
.ap-layout { display: grid; grid-template-columns: minmax(0, 1fr) 400px; gap: 56px; align-items: start; }
.ap-layout > * { min-width: 0; }
.ap-bloc { padding: 34px 0; border-top: 1px solid var(--line); }
.ap-bloc:first-child { border-top: 0; padding-top: 0; }
.ap-bloc h2 { font-size: 24px; margin-bottom: 18px; }
.ap-descriere { color: var(--ink-2); font-size: 16.5px; max-width: 62ch; white-space: pre-line; }
.fapte-mari { display: grid; grid-template-columns: repeat(4, 1fr); gap: 12px; }
.fapte-mari div { background: var(--bg-2); border-radius: 18px; padding: 16px; }
.fapte-mari .ph { font-size: 24px; color: var(--accent); }
.fapte-mari b { display: block; font-size: 20px; font-weight: 650; margin-top: 10px; }
.fapte-mari span { font-size: 13.5px; color: var(--ink-3); }
.facilitati-lista { display: grid; grid-template-columns: repeat(2, 1fr); gap: 10px 24px; }
.facilitate { display: flex; align-items: center; gap: 12px; font-size: 15.5px; }
.facilitate .ph { width: 40px; height: 40px; border-radius: 12px; background: var(--accent-soft); color: var(--accent); display: grid; place-items: center; font-size: 20px; flex-shrink: 0; }
.paturi { display: grid; grid-template-columns: repeat(auto-fill, minmax(180px, 1fr)); gap: 12px; }
.paturi div { border: 1px solid var(--line); border-radius: 16px; padding: 16px; font-size: 14.5px; color: var(--ink-2); }
.paturi .ph { font-size: 24px; color: var(--accent); display: block; margin-bottom: 8px; }
.cal-inline { border: 1px solid var(--line); border-radius: 22px; padding: 20px; }
.card-rezervare { position: sticky; top: calc(var(--nav-h) + 40px); background: #fff; border-radius: 24px; box-shadow: var(--umbra-mare); border: 1px solid var(--line); padding: 24px; }
.card-rezervare .pret-mare { font-size: 28px; font-weight: 650; letter-spacing: -0.03em; }
.card-rezervare .pret-mare span { font-size: 15px; color: var(--ink-3); font-weight: 400; letter-spacing: 0; }
.card-campuri { display: grid; grid-template-columns: 1fr 1fr; border: 1px solid var(--line-2); border-radius: 16px; margin: 18px 0 12px; overflow: hidden; }
.card-campuri .camp { border: 0; border-radius: 0; min-height: 58px; }
.card-campuri .camp + .camp { border-left: 1px solid var(--line-2); }
.card-campuri .camp-oaspeti { grid-column: span 2; border-left: 0 !important; border-top: 1px solid var(--line-2); }
.card-campuri .camp.deschis { box-shadow: inset 0 0 0 2px var(--accent); }
.oferta { margin-top: 16px; display: grid; gap: 8px; font-size: 15px; }
.oferta-linie { display: flex; justify-content: space-between; gap: 12px; color: var(--ink-2); }
.oferta-total { display: flex; justify-content: space-between; padding-top: 12px; margin-top: 4px; border-top: 1px solid var(--line); font-weight: 650; font-size: 17px; }
.oferta-nota { font-size: 13px; color: var(--ink-3); text-align: center; margin-top: 10px; }
.card-rezervare .pop-calendar { left: auto; right: 0; top: calc(100% - 180px); bottom: auto; width: 720px; }
.card-rezervare .pop-oaspeti { right: 0; top: 200px; bottom: auto; }
.alte-ap { display: grid; grid-template-columns: repeat(2, 1fr); gap: 24px; }
.bara-mobil { display: none; }

/* Galerie pe tot ecranul */
.galerie { position: fixed; inset: 0; z-index: 100; background: rgba(250, 252, 255, .98); display: none; flex-direction: column; overflow: hidden; }
.galerie.deschisa { display: flex; animation: apare .3s var(--ease); }
.galerie-cap { display: flex; justify-content: space-between; align-items: center; padding: 16px 24px; }
.galerie-cap span { font-size: 14px; color: var(--ink-3); }
.galerie-cap button { width: 44px; height: 44px; border-radius: 999px; display: grid; place-items: center; font-size: 22px; background: #fff; box-shadow: var(--umbra); }
.galerie-scena { --pad-x: 84px; --pad-jos: 16px; flex: 1 1 auto; position: relative; min-height: 0; overflow: hidden; touch-action: pan-y; }
/* Poza se încadrează mereu întreagă în spațiul rămas (nu împinge galeria afară din ecran). */
.galerie-scena img { position: absolute; top: 0; bottom: var(--pad-jos); left: var(--pad-x); right: var(--pad-x); margin: auto;
  width: auto; height: auto; max-width: calc(100% - 2 * var(--pad-x)); max-height: calc(100% - var(--pad-jos)); object-fit: contain;
  border-radius: 16px; box-shadow: var(--umbra-mare); user-select: none; -webkit-user-drag: none; }
.galerie-sag { position: absolute; top: 50%; transform: translateY(-50%); width: 52px; height: 52px; border-radius: 999px; background: #fff; box-shadow: var(--umbra); display: grid; place-items: center; font-size: 22px; }
.galerie-sag.st { left: 18px; } .galerie-sag.dr { right: 18px; }
.galerie-mini { display: flex; gap: 8px; overflow-x: auto; padding: 0 24px 20px; scrollbar-width: none; flex-shrink: 0; }
.galerie-mini button { flex: 0 0 76px; height: 56px; border-radius: 10px; overflow: hidden; opacity: .5; transition: opacity .2s; border: 2px solid transparent; }
.galerie-mini button.activ { opacity: 1; border-color: var(--accent); }
.galerie-mini img { width: 100%; height: 100%; object-fit: cover; }

/* Cererea de factură */
.alegere-tip { display: flex; gap: 8px; flex-wrap: wrap; }
.alegere-tip label { display: flex; align-items: center; gap: 8px; border: 1px solid var(--line-2); border-radius: 999px; padding: 9px 16px; cursor: pointer; font-size: 15px; font-weight: 500; }
.alegere-tip label:has(input:checked) { border-color: var(--accent); background: var(--accent-soft); color: var(--accent-2); }
.alegere-tip input { accent-color: var(--accent); width: 18px !important; height: 18px; padding: 0 !important; border: 0 !important; box-shadow: none !important; flex-shrink: 0; margin: 0; }
.alegere-tip label { white-space: nowrap; }
[hidden] { display: none !important; }

/* Recenzii verificate */
.stele-rand { display: inline-flex; flex-direction: row-reverse; gap: 4px; }
.stele-rand input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.stele-rand label { font-size: 46px; color: #D5DDEA; cursor: pointer; transition: color .15s, transform .2s var(--ease); line-height: 1; }
.stele-rand label:hover { transform: scale(1.12); }
.stele-rand label:hover, .stele-rand label:hover ~ label, .stele-rand input:checked ~ label { color: #F5A623; }
.stele-rand input:focus-visible + label { outline: 2px solid var(--accent); outline-offset: 3px; border-radius: 8px; }
.stele-mici { color: #F5A623; font-size: 15px; letter-spacing: 2px; }
.verificat { display: inline-flex; align-items: center; gap: 4px; color: var(--ok); font-weight: 600; }
.scor-site { display: inline-flex; align-items: center; gap: 10px; margin-top: 10px; font-size: 14.5px; color: var(--ink-2); }

/* Formular rezervare + pagina oaspetelui */
.pagina-simpla { padding-top: calc(var(--nav-h) + 56px); padding-bottom: 40px; }
.rezerva-grila { display: grid; grid-template-columns: 1fr 420px; gap: 48px; align-items: start; }
.formular { display: grid; gap: 18px; }
.formular h1 { font-size: clamp(28px, 3vw, 38px); }
.grup { display: grid; gap: 8px; align-content: start; }
.grup label { font-size: 14px; font-weight: 600; color: var(--ink-2); }
.grup input, .grup textarea, .grup select { width: 100%; border: 1px solid var(--line-2); border-radius: 14px; padding: 13px 15px; background: #fff; font-size: 16px; transition: border-color .2s, box-shadow .2s; }
.grup input:focus, .grup textarea:focus, .grup select:focus { outline: 0; border-color: var(--accent); box-shadow: 0 0 0 4px var(--accent-soft); }
.grup input::placeholder, .grup textarea::placeholder { color: #8391A6; }
.grup .ajutor { font-size: 13px; color: var(--ink-3); }
.grup .eroare, .eroare-text { font-size: 13.5px; color: var(--err); font-weight: 500; }
.grup.are-eroare input { border-color: var(--err); }
.doua { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; align-items: start; }
.bifa { display: flex; gap: 12px; align-items: flex-start; font-size: 14.5px; color: var(--ink-2); }
.bifa input { width: 20px; height: 20px; margin-top: 1px; accent-color: var(--accent); flex-shrink: 0; }
.bifa a { color: var(--accent); text-decoration: underline; text-underline-offset: 3px; }
.rezumat { position: sticky; top: calc(var(--nav-h) + 40px); background: #fff; border: 1px solid var(--line); border-radius: 24px; overflow: hidden; box-shadow: var(--umbra); }
.rezumat img { width: 100%; height: 200px; object-fit: cover; }
.rezumat-corp { padding: 22px; display: grid; gap: 14px; }
.rezumat-corp h3 { font-size: 20px; }
.rezumat-rand { display: flex; align-items: center; gap: 12px; font-size: 15px; color: var(--ink-2); }
.rezumat-rand .ph { width: 36px; height: 36px; border-radius: 12px; background: var(--bg-2); display: grid; place-items: center; font-size: 17px; color: var(--accent); }
.caseta { border-radius: 18px; padding: 18px 20px; display: flex; gap: 14px; align-items: flex-start; font-size: 15px; }
.caseta .ph { font-size: 24px; flex-shrink: 0; }
.caseta-info { background: var(--accent-soft); color: var(--accent-2); }
.caseta-ok { background: var(--ok-soft); color: #166534; }
.caseta-atentie { background: #FFF6E5; color: #92400E; }
.caseta-eroare { background: #FEF0EA; color: #9A3412; }
.stare-mare { text-align: center; max-width: 640px; margin: 0 auto; }
.stare-ic { width: 84px; height: 84px; border-radius: 28px; display: grid; place-items: center; font-size: 42px; margin: 0 auto 22px; }
.stare-ic.ok { background: var(--ok-soft); color: var(--ok); }
.stare-ic.asteapta { background: var(--accent-soft); color: var(--accent); }
.stare-ic.rau { background: #FEF0EA; color: var(--err); }
.stare-mare h1 { font-size: clamp(28px, 3.4vw, 40px); }
.stare-mare > p { color: var(--ink-3); font-size: 17px; margin-top: 10px; }
.bilet { margin-top: 36px; text-align: left; background: #fff; border: 1px solid var(--line); border-radius: 24px; box-shadow: var(--umbra); overflow: hidden; }
.bilet-cap { display: flex; gap: 16px; align-items: center; padding: 18px; border-bottom: 1px dashed var(--line-2); }
.bilet-cap img { width: 84px; height: 84px; object-fit: cover; border-radius: 16px; }
.bilet-cap h3 { font-size: 19px; }
.bilet-cap span { font-size: 14px; color: var(--ink-3); }
.bilet-grila { display: grid; grid-template-columns: repeat(3, 1fr); }
.bilet-grila div { padding: 16px 18px; border-right: 1px solid var(--line); }
.bilet-grila div:last-child { border-right: 0; }
.bilet-grila small { display: block; font-size: 12.5px; color: var(--ink-3); }
.bilet-grila b { font-size: 16px; font-weight: 600; }
.bilet-corp { padding: 18px; border-top: 1px solid var(--line); display: grid; gap: 10px; }
.text-legal { max-width: 760px; }
.text-legal h1 { font-size: 36px; margin-bottom: 24px; }
.text-legal div { color: var(--ink-2); white-space: pre-line; font-size: 16px; line-height: 1.7; }
.text-legal .text-legal-corp { white-space: normal; }
.text-legal-corp h2 { font-size: 21px; margin: 34px 0 10px; color: var(--ink); letter-spacing: -0.01em; }
.text-legal-corp h2:first-child { margin-top: 0; }
.text-legal-corp p { margin: 0 0 12px; }
.text-legal-corp ul { margin: 0 0 14px; padding-left: 20px; display: grid; gap: 6px; }
.text-legal-corp a { color: var(--accent); text-decoration: underline; text-underline-offset: 3px; word-break: break-word; }

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration: .01ms !important; transition-duration: .01ms !important; scroll-behavior: auto !important; }
  .apare-la-derulare { opacity: 1; transform: none; }
  .erou-slide img { transform: none !important; }
}

/* Tabletă */
@media (max-width: 1080px) {
  .nav-linkuri { display: none; }
  .nav-meniu { display: grid; }
  .nav-dreapta { margin-left: auto; }
  .ap-layout { grid-template-columns: 1fr; }
  .card-rezervare { display: none; }
  .bara-mobil { display: flex; position: fixed; left: 12px; right: 12px; bottom: 12px; z-index: 45; background: #fff; border-radius: 20px; box-shadow: var(--umbra-mare);
    padding: 12px 12px 12px 18px; align-items: center; justify-content: space-between; gap: 12px; border: 1px solid var(--line); }
  .bara-mobil b { font-size: 17px; font-weight: 650; }
  .bara-mobil span { display: block; font-size: 13px; color: var(--ink-3); }
  body:has(.bara-mobil) .plutitor { bottom: 96px; }
  .rezerva-grila { grid-template-columns: 1fr; }
  .rezumat { position: static; order: -1; }
  .bento { grid-template-columns: repeat(2, 1fr); }
  .recenzii-grila { grid-template-columns: 1fr; }
  .scor { max-width: 420px; }
  .direct { grid-template-columns: 1fr; padding: 44px; }
  .subsol-grila { grid-template-columns: 1fr 1fr; }
  .nav-sertar { display: block; position: fixed; inset: 0; z-index: 49; background: #fff; padding: calc(var(--nav-h) + 40px) 28px 28px;
    opacity: 0; pointer-events: none; transition: opacity .3s; }
  .nav-sertar.deschis { opacity: 1; pointer-events: auto; }
  .nav-sertar a { display: block; font-size: 19px; font-weight: 600; letter-spacing: -0.01em; padding: 13px 0; border-bottom: 1px solid var(--line); }
  .nav-sertar a.sub { font-size: 16px; font-weight: 500; color: var(--ink-2); padding: 10px 0 10px 14px; }
  .nav-sertar a.tel { display: flex; align-items: center; gap: 10px; margin-top: 18px; border: 0; font-size: 16px; font-weight: 600; color: var(--accent);
    background: var(--accent-soft); border-radius: 999px; padding: 12px 18px; justify-content: center; }
}

/* Telefon */
@media (max-width: 760px) {
  :root { --nav-h: 60px; }
  .container { padding-left: 16px; padding-right: 16px; }
  .nav { top: 10px; padding: 0 10px; }
  .nav-bara { padding: 0 6px 0 14px; gap: 10px; }
  .nav-tel span, .nav-dreapta .btn-plin { display: none; }
  .marca { font-size: 16px; }
  .erou { min-height: 100svh; }
  .erou-continut { padding-bottom: 16px; }
  .erou-titlu { font-size: 32px; margin-bottom: 18px; max-width: 12ch; }
  .erou-jos { flex-direction: column; align-items: stretch; }
  .erou-indicator { order: -1; align-items: flex-start; min-width: 0; }
  .cautare { padding: 12px; border-radius: 22px; }
  /* toate trei alegerile încap pe ecran (Premium Tei nu mai iese în dreapta) */
  .cautare-ap { display: grid; grid-auto-flow: column; grid-auto-columns: minmax(0, 1fr); gap: 6px; margin: 0 0 10px; }
  .chip { height: auto; min-height: 48px; padding: 6px 4px; gap: 0; border-radius: 14px; min-width: 0; justify-content: center; }
  .chip img, .chip .ph { display: none; }
  .chip-text { flex-direction: column; align-items: center; gap: 1px; min-width: 0; line-height: 1.2; text-align: center; }
  .chip-text > span { font-size: 13px; font-weight: 600; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; max-width: 100%; }
  .chip-text small { font-size: 11.5px; }
  .chip[data-ap="toate"] .chip-text small { display: block; }
  .nume-lung { display: none; }
  .nume-scurt { display: block; }
  .cautare-rand { grid-template-columns: 1fr 1fr; }
  .camp-oaspeti { grid-column: span 2; }
  .cautare .btn-plin { grid-column: span 2; min-height: 54px; }
  .cautare-subsol { display: none; }
  .rezultat { grid-template-columns: 52px 1fr; }
  .rezultat img { width: 52px; height: 52px; }
  .rezultat-pret { grid-column: 1 / -1; justify-content: space-between; text-align: left; }
  .pop { position: fixed; left: 0 !important; right: 0 !important; bottom: 0 !important; top: auto !important; width: auto !important; max-width: none;
    border-radius: 24px 24px 0 0; max-height: 88svh; overflow: auto; transform: translateY(40px); padding: 16px 16px calc(16px + env(safe-area-inset-bottom)); }
  .pop.deschis { transform: none; }
  .pop-cap { display: flex; justify-content: space-between; align-items: center; margin-bottom: 8px; }
  .pop-cap b { font-size: 17px; }
  .pop-cap button { width: 38px; height: 38px; border-radius: 999px; background: var(--bg-2); display: grid; place-items: center; font-size: 18px; }
  .cal-luni { --luni: 1 !important; }
  .cal-luna:not(:first-child) h5 { margin-top: 18px; }
  .zi { height: 46px; }
  .sectiune { padding: 72px 0; }
  .apartamente-grila { grid-template-columns: 1fr; gap: 36px; }
  .apartamente-grila > :nth-child(2) { margin-top: 0; }
  .apartamente-grila > :nth-child(2) .ap-poze { aspect-ratio: 4 / 3.1; }
  .ap-corp { grid-template-columns: 1fr; }
  .ap-corp .sageata { display: none; }
  .ap-pret { text-align: left; }
  .poveste-grila { grid-template-columns: 1fr; gap: 0; }
  .poveste-cadru { display: none; }
  .poveste-pasi { padding: 0; }
  .poveste-pasi .sectiune-cap { margin-bottom: 18px !important; }
  .pasi-banda { display: flex; gap: 12px; overflow-x: auto; scroll-snap-type: x mandatory; margin: 0 -16px; padding: 0 16px 8px; scrollbar-width: none; }
  .pasi-banda::-webkit-scrollbar { display: none; }
  .pas { flex: 0 0 82%; min-height: 0; opacity: 1; padding: 0; scroll-snap-align: start; background: #fff; border-radius: 20px; overflow: hidden; box-shadow: var(--umbra); }
  .pas-foto { display: block !important; overflow: hidden; margin: 0; aspect-ratio: 4 / 3; }
  .pas-foto img { width: 100%; height: 100%; object-fit: cover; }
  .pas-nr { display: none; }
  .pas h3 { font-size: 19px; padding: 14px 16px 0; }
  .pas p { font-size: 14.5px; margin-top: 4px; padding: 0 16px; }
  .pas .ap-legatura { margin: 10px 16px 16px; }
  .bento { grid-template-columns: 1fr 1fr; grid-auto-rows: auto; gap: 10px; }
  .dala { padding: 14px; border-radius: 18px; flex-direction: row; align-items: center; justify-content: flex-start; gap: 12px; grid-column: span 2; }
  .dala h4 { font-size: 15px; }
  .dala small { font-size: 12.5px; }
  .dala-ic { width: 40px; height: 40px; font-size: 20px; border-radius: 12px; flex-shrink: 0; }
  .dala-foto { grid-column: span 1; grid-row: auto; height: 190px; padding: 0; }
  .dala-foto .dala-text { padding: 12px; }
  .dala-foto h4 { font-size: 14.5px; }
  .dala-albastra { flex-direction: row; }
  .dala-cifra { font-size: 30px; }
  .citat { flex-basis: 84%; }
  .locatie { height: auto; display: flex; flex-direction: column; }
  #harta { position: relative; height: 320px; }
  .locatie-card { position: static; width: auto; box-shadow: none; border-radius: 0; }
  .direct { padding: 28px 22px; border-radius: 26px; }
  .subsol { margin-top: 72px; padding-top: 56px; }
  .subsol-grila { grid-template-columns: 1fr; gap: 30px; }
  .plutitor { right: 12px; bottom: 12px; }
  .plutitor { right: 10px; bottom: 10px; }
  .plutitor a { width: 46px; height: 46px; font-size: 23px; box-shadow: 0 6px 18px -6px rgba(20, 100, 60, .55); }
  .plutitor .tel { display: none; }
  body:has(.bara-mobil) .plutitor, body:has(.pagina-simpla) .plutitor { display: none; }
  .plutitor { transition: opacity .3s, transform .3s var(--ease); }
  body.in-erou .plutitor { opacity: 0; transform: translateY(20px); pointer-events: none; }
  .ap-pagina { padding-top: calc(var(--nav-h) + 24px); }
  .mozaic { grid-template-columns: 1fr; grid-template-rows: 280px; border-radius: 20px; margin: 0 -4px; }
  .mozaic button:not(:first-child) { display: none; }
  .mozaic button:first-child { grid-row: auto; }
  .fapte-mari { grid-template-columns: 1fr 1fr; }
  .facilitati-lista { grid-template-columns: 1fr; }
  .paturi { grid-template-columns: 1fr 1fr; gap: 8px; }
  .paturi div { padding: 12px; font-size: 13.5px; }
  .paturi .ph { font-size: 20px; margin-bottom: 4px; }
  .cal-inline { padding: 12px; border-radius: 18px; }
  .alte-ap { grid-template-columns: 1fr; }
  .galerie-scena { --pad-x: 8px; --pad-jos: 10px; }
  .galerie-sag { display: none; }
  .doua { grid-template-columns: 1fr; }
  .bilet-grila { grid-template-columns: 1fr 1fr; }
  .bilet-grila div:nth-child(2) { border-right: 0; }
  .bilet-grila div:nth-child(3) { grid-column: span 2; border-top: 1px solid var(--line); }
}

/* Clasificarea oficială + insigna SAL (Ordinul ANPC 449/2022, modificat prin 270/2026) */
.subsol-legal { display: flex; justify-content: space-between; align-items: flex-end; gap: 32px; flex-wrap: wrap; margin-top: 48px; padding-top: 28px; border-top: 1px solid var(--line); }
.clasificare h5 { margin-bottom: 12px; }
.certificate { display: flex; gap: 12px; flex-wrap: wrap; }
.certificat { display: flex; align-items: center; gap: 12px; padding: 10px 14px; border: 1px solid var(--line); font-size: 13px; color: var(--ink-3); line-height: 1.35; }
a.certificat[href]:hover { border-color: var(--ink-2); }
.certificat b { display: block; color: var(--ink); font-weight: 600; font-size: 13.5px; }
.stele-cert { color: #E0A21B; letter-spacing: 2px; font-size: 15px; white-space: nowrap; }
.clasificare-nota { font-size: 12.5px; color: var(--ink-3); margin-top: 10px; }
.insigna-sal { display: inline-block; line-height: 0; }
.insigna-sal img { width: 201px; height: 50px; display: block; }
.clasificat { display: inline-flex; align-items: center; gap: 8px; margin-top: 10px; font-size: 13.5px; color: var(--ink-2); }
a.clasificat[href]:hover { text-decoration: underline; text-underline-offset: 3px; }
@media (max-width: 760px) {
  .subsol-legal { flex-direction: column; align-items: flex-start; gap: 22px; }
  .certificate { flex-direction: column; width: 100%; }
}

/* Comutatorul de aspect (Modern / Clasic), jos în stânga */
.comutator-tema { position: fixed; left: 14px; bottom: 14px; z-index: 41; display: flex; padding: 3px; gap: 2px; border-radius: 999px;
  background: rgba(255, 255, 255, .94); border: 1px solid var(--line); box-shadow: var(--umbra); backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px); }
.comutator-tema a { display: inline-flex; align-items: center; height: 32px; padding: 0 12px; border-radius: 999px; font-size: 12.5px; font-weight: 600; color: var(--ink-3); white-space: nowrap; }
.comutator-tema a[aria-current="true"] { background: var(--ink); color: #fff; }
.comutator-tema { max-width: calc(100vw - 90px); overflow-x: auto; scrollbar-width: none; }
.comutator-tema::-webkit-scrollbar { display: none; }
html[data-tema="clasica"] .comutator-tema, html[data-tema="clasica"] .comutator-tema a { border-radius: 2px; }
html[data-tema="clasica"] .comutator-tema a { letter-spacing: .12em; text-transform: uppercase; font-size: 10.5px; }
/* Bara de previzualizare a unui aspect (doar pentru cine a deschis ?tema=...) */
.bara-previz { position: fixed; left: 50%; bottom: 14px; transform: translateX(-50%); z-index: 70; display: flex; align-items: center; gap: 14px;
  flex-wrap: wrap; justify-content: center; max-width: calc(100vw - 24px); padding: 10px 16px; border-radius: 14px; background: #fff;
  border: 1px solid var(--line-2); box-shadow: var(--umbra-mare); font-size: 13.5px; color: var(--ink-2); }
.bara-previz a { font-weight: 700; color: var(--accent); text-decoration: underline; text-underline-offset: 3px; }
body:has(.bara-previz) .plutitor { display: none; }
/* peste căutarea din erou nu stă: apare după ce derulezi (ca butonul WhatsApp) */
.comutator-tema { transition: opacity .3s, transform .3s var(--ease); }
body.in-erou .comutator-tema { opacity: 0; transform: translateY(20px); pointer-events: none; }
body:has(.comutator-tema) .subsol { padding-bottom: 88px; }
@media (min-width: 1081px) { .comutator-tema { flex-direction: column; border-radius: 18px; } }
@media (max-width: 1080px) { body:has(.bara-mobil) { padding-bottom: 100px; } }
@media (max-width: 760px) {
  .comutator-tema { left: 10px; bottom: 10px; }
  .comutator-tema a { height: 36px; padding: 0 12px; }
  html[data-tema="clasica"] .comutator-tema a { font-size: 11.5px; }
  .bara-previz { bottom: 10px; font-size: 13px; }
  body:has(.bara-mobil) .bara-previz { bottom: 96px; }
  /* pe paginile cu formular și pe pagina apartamentului nu plutește peste câmpuri: stă la capătul paginii */
  body:has(.pagina-simpla) .comutator-tema, body:has(.bara-mobil) .comutator-tema { position: static; width: max-content; margin: 0 auto 24px; }
}

/* Marca înregistrată Smart apartament (fișierele din static/img/marca) */
.marca-img { height: 34px; width: auto; display: block; }
.marca-subsol { width: 170px; height: auto; display: block; }
@media (max-width: 760px) { .marca-img { height: 26px; } .marca-subsol { width: 120px; } }

/* Limba site-ului: butonul cu globul din meniu, lista din sertar (telefon) și banda „e și în limba ta” */
.limba-alege { position: relative; }
.limba-alege summary { list-style: none; display: inline-flex; align-items: center; gap: 6px; height: 44px; padding: 0 12px; border-radius: 999px;
  color: var(--ink-2); font-size: 14px; font-weight: 600; letter-spacing: .02em; cursor: pointer; user-select: none; }
.limba-alege summary::-webkit-details-marker { display: none; }
.limba-alege summary i { font-size: 19px; }
.limba-alege summary:hover, .limba-alege[open] summary { background: var(--bg-2); color: var(--ink); }
.limba-lista { position: absolute; right: 0; top: calc(100% + 10px); min-width: 210px; padding: 6px; border-radius: 16px; background: #fff;
  border: 1px solid var(--line); box-shadow: var(--umbra-mare); display: grid; gap: 2px; z-index: 60; }
.limba-lista a { display: flex; align-items: center; gap: 12px; padding: 10px 12px; border-radius: 10px; font-size: 15px; color: var(--ink-2); }
.limba-lista a b { width: 26px; font-size: 12px; letter-spacing: .04em; color: var(--ink-3, var(--ink-2)); font-weight: 700; }
.limba-lista a:hover { background: var(--bg-2); color: var(--ink); }
.limba-lista a[aria-current] { color: var(--accent); background: var(--accent-soft); font-weight: 600; }
.limba-lista a[aria-current] b { color: var(--accent); }
.sertar-limbi { display: none; }
.bara-limba { position: fixed; left: 50%; bottom: 14px; transform: translateX(-50%); z-index: 70; display: flex; align-items: center; gap: 12px;
  max-width: calc(100vw - 24px); padding: 10px 10px 10px 16px; border-radius: 14px; background: #fff; border: 1px solid var(--line-2);
  box-shadow: var(--umbra-mare); font-size: 14px; color: var(--ink-2); }
.bara-limba[hidden] { display: none; }
.bara-limba > i { font-size: 19px; color: var(--accent); }
.bara-limba a { font-weight: 700; color: var(--accent); white-space: nowrap; }
.bara-limba button { width: 34px; height: 34px; border-radius: 999px; display: grid; place-items: center; color: var(--ink-2); font-size: 16px; flex: none; }
.bara-limba button:hover { background: var(--bg-2); }
body:has(.bara-limba:not([hidden])) .plutitor { display: none; }
@media (max-width: 980px) {
  .sertar-limbi { display: grid; grid-template-columns: repeat(2, 1fr); gap: 8px; margin-top: 18px; }
  .nav-sertar .sertar-limbi a { font-size: 15px; font-weight: 500; padding: 10px 12px; border: 1px solid var(--line); border-radius: 12px; color: var(--ink-2); }
  .nav-sertar .sertar-limbi a[aria-current] { border-color: var(--accent); color: var(--accent); background: var(--accent-soft); font-weight: 600; }
}
@media (max-width: 760px) {
  .limba-alege summary { padding: 0 10px; height: 40px; }
  .limba-lista { position: fixed; left: 12px; right: 12px; top: calc(var(--nav-h) + 24px); grid-template-columns: repeat(2, 1fr); }
  /* pe telefon banda ia toată lățimea (centrată cu left:50% ar primi doar jumătate de ecran și s-ar strânge pe 4 rânduri) */
  .bara-limba { left: 12px; right: 12px; transform: none; bottom: 10px; flex-wrap: wrap; justify-content: center; font-size: 13.5px; }
  body:has(.bara-mobil) .bara-limba { bottom: 96px; }
}

/* „TVA inclus” sub total */
.oferta-tva { text-align: right; font-size: 12.5px; color: var(--ink-3); margin-top: 2px; }
