/* ============================================================
   ZAFRA CHALET — Poiana Țapului, Bucegi
   Premium one-page presentation
   ============================================================ */

/* ---------- Tokens ---------- */
:root{
  --ink:          #0B0C0A;
  --ink-2:        #101210;
  --ink-3:        #161916;
  --surface:      #1A1E1A;
  --line:         rgba(232,224,208,.13);
  --line-soft:    rgba(232,224,208,.07);

  --paper:        #F3EFE6;
  --paper-dim:    rgba(243,239,230,.68);
  --paper-faint:  rgba(243,239,230,.42);

  --brass:        #C9A15A;
  --brass-hi:     #E6CE9A;
  --brass-deep:   #8C6C33;
  --pine:         #2B3A30;

  --serif: "Cormorant Garamond", "Iowan Old Style", "Palatino Linotype", Georgia, serif;
  --sans:  "Jost", "Avenir Next", "Segoe UI", system-ui, -apple-system, sans-serif;

  --ease:   cubic-bezier(.22,1,.36,1);
  --ease-io:cubic-bezier(.65,0,.35,1);

  --gut: clamp(20px, 5vw, 84px);
  --maxw: 1400px;
}

/* ---------- Reset ---------- */
*,*::before,*::after{ box-sizing:border-box; }
html{ -webkit-text-size-adjust:100%; scroll-behavior:smooth; }
body{
  margin:0;
  background:var(--ink);
  color:var(--paper);
  font-family:var(--sans);
  font-weight:300;
  font-size:clamp(15px,.44vw + 13.6px,17px);
  line-height:1.75;
  overflow-x:hidden;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}
img{ max-width:100%; display:block; }
a{ color:inherit; text-decoration:none; }
button{ font:inherit; color:inherit; background:none; border:0; cursor:pointer; }
h1,h2,h3,h4{ margin:0; font-family:var(--serif); font-weight:300; line-height:1.04; letter-spacing:-.015em; }
p{ margin:0 0 1.15em; }
::selection{ background:var(--brass); color:var(--ink); }

/* ---------- Ambient texture ---------- */
.grain{
  position:fixed; inset:0; z-index:999; pointer-events:none;
  opacity:.028; mix-blend-mode:overlay; will-change:opacity;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='220' height='220'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='4' stitchTiles='stitch'/></filter><rect width='220' height='220' filter='url(%23n)'/></svg>");
}
.glow{
  position:fixed; z-index:1; pointer-events:none;
  width:640px; height:640px; margin:-320px 0 0 -320px; border-radius:50%;
  background:radial-gradient(circle, rgba(201,161,90,.075), transparent 62%);
  opacity:0; transition:opacity .6s var(--ease);
  will-change:transform;
}

/* ---------- Scroll progress ---------- */
.progress{
  position:fixed; top:0; left:0; right:0; height:2px; z-index:120;
  background:var(--line-soft);
}
.progress i{
  display:block; height:100%; width:0%;
  background:linear-gradient(90deg,var(--brass-deep),var(--brass),var(--brass-hi));
  box-shadow:0 0 14px rgba(201,161,90,.5);
}

/* ---------- Nav ---------- */
.nav{
  position:fixed; top:0; left:0; right:0; z-index:100;
  display:flex; align-items:center; justify-content:space-between;
  gap:24px; padding:22px var(--gut);
  transition:background .5s var(--ease), padding .5s var(--ease), border-color .5s var(--ease), backdrop-filter .5s;
  border-bottom:1px solid transparent;
}
.nav.solid{
  background:rgba(11,12,10,.82);
  backdrop-filter:blur(18px) saturate(1.2);
  -webkit-backdrop-filter:blur(18px) saturate(1.2);
  border-bottom-color:var(--line-soft);
  padding-block:14px;
}
.brand{ display:flex; align-items:baseline; gap:11px; flex:0 0 auto; }
.brand b{
  font-family:var(--serif); font-size:1.42rem; font-weight:400;
  letter-spacing:.22em; text-transform:uppercase;
}
.brand small{
  font-size:.55rem; letter-spacing:.36em; text-transform:uppercase;
  color:var(--brass); font-weight:400;
}
.nav-links{ display:flex; gap:clamp(14px,1.8vw,30px); }
.nav-links a{
  position:relative; font-size:.68rem; letter-spacing:.2em;
  text-transform:uppercase; color:var(--paper-dim);
  padding:6px 0; transition:color .4s var(--ease);
}
.nav-links a::after{
  content:""; position:absolute; left:0; bottom:0; height:1px; width:0;
  background:var(--brass); transition:width .45s var(--ease);
}
.nav-links a:hover{ color:var(--paper); }
.nav-links a:hover::after{ width:100%; }

.btn{
  display:inline-flex; align-items:center; gap:11px;
  padding:13px 26px; border:1px solid var(--line);
  font-size:.66rem; letter-spacing:.22em; text-transform:uppercase;
  position:relative; overflow:hidden; isolation:isolate;
  transition:color .45s var(--ease), border-color .45s var(--ease);
}
.btn::before{
  content:""; position:absolute; inset:0; z-index:-1;
  background:linear-gradient(120deg,var(--brass-deep),var(--brass));
  transform:translateY(101%); transition:transform .5s var(--ease);
}
.btn:hover{ color:var(--ink); border-color:var(--brass); }
.btn:hover::before{ transform:translateY(0); }
.btn.solid{ background:linear-gradient(120deg,var(--brass-deep),var(--brass)); color:var(--ink); border-color:transparent; }
.btn.solid::before{ background:var(--paper); }
.btn i{ font-style:normal; transition:transform .45s var(--ease); }
.btn:hover i{ transform:translateX(4px); }

.burger{ display:none; width:26px; height:14px; position:relative; }
.burger span{ position:absolute; left:0; right:0; height:1px; background:var(--paper); transition:.4s var(--ease); }
.burger span:nth-child(1){ top:0; }
.burger span:nth-child(2){ bottom:0; }
body.menu-open .burger span:nth-child(1){ top:6px; transform:rotate(45deg); }
body.menu-open .burger span:nth-child(2){ bottom:7px; transform:rotate(-45deg); }

/* ---------- Layout helpers ---------- */
.wrap{ max-width:var(--maxw); margin-inline:auto; padding-inline:var(--gut); }
section{ position:relative; }
/* Anchor jumps must clear the fixed header. */
section[id], main[id]{ scroll-margin-top:clamp(78px,11vh,96px); }
.pad{ padding-block:clamp(84px,11vw,190px); }

.eyebrow{
  display:flex; align-items:center; gap:14px;
  font-size:.63rem; letter-spacing:.34em; text-transform:uppercase;
  color:var(--brass); margin-bottom:26px; font-weight:400;
}
.eyebrow::before{ content:""; width:clamp(26px,4vw,54px); height:1px; background:var(--brass); opacity:.6; }
.eyebrow .num{ color:var(--paper-faint); letter-spacing:.24em; }

.h-xl{ font-size:clamp(2.6rem,7.2vw,6.2rem); }
.h-lg{ font-size:clamp(2.2rem,5.2vw,4.3rem); }
.h-md{ font-size:clamp(1.6rem,2.6vw,2.5rem); }
.lede{
  font-size:clamp(1.02rem,1.15vw,1.22rem); line-height:1.85;
  color:var(--paper-dim); max-width:62ch;
}
.italic{ font-family:var(--serif); font-style:italic; font-size:1.22em; color:var(--brass-hi); }
.rule{ height:1px; background:var(--line); border:0; margin:0; }

/* ---------- Reveal (JS opt-in; visible by default) ---------- */
.js-rv .rv{ opacity:0; transform:translateY(30px); }
.js-rv .rv.in{ opacity:1; transform:none; transition:opacity 1.1s var(--ease), transform 1.1s var(--ease); }
.js-rv .rv-l{ opacity:0; transform:translateX(-34px); }
.js-rv .rv-l.in{ opacity:1; transform:none; transition:opacity 1.1s var(--ease), transform 1.1s var(--ease); }
.js-rv .rv-s{ opacity:0; transform:scale(1.07); }
.js-rv .rv-s.in{ opacity:1; transform:none; transition:opacity 1.3s var(--ease), transform 1.6s var(--ease); }

/* ============================================================
   HERO
   ============================================================ */
.hero{ min-height:max(620px,100svh); position:relative; overflow:hidden; display:flex; }
.hero-media{ position:absolute; inset:-8% 0 -8% 0; z-index:0; will-change:transform; }
.hero-media img{ width:100%; height:100%; object-fit:cover; object-position:center 30%; }
.hero-scrim{
  position:absolute; inset:0; z-index:1;
  background:
    linear-gradient(to bottom, rgba(11,12,10,.74) 0%, rgba(11,12,10,.2) 26%, rgba(11,12,10,.58) 62%, rgba(11,12,10,.88) 86%, var(--ink) 100%),
    linear-gradient(to right, rgba(11,12,10,.6) 0%, rgba(11,12,10,.12) 52%, transparent 100%),
    radial-gradient(125% 85% at 50% 45%, transparent 26%, rgba(11,12,10,.62) 100%);
}
.hero-inner{
  position:relative; z-index:2; width:100%; max-width:var(--maxw);
  margin-inline:auto; padding:clamp(110px,14vh,170px) var(--gut) clamp(40px,7vh,70px);
  display:flex; flex-direction:column; justify-content:flex-end;
}
.hero-eyebrow{
  font-size:.66rem; letter-spacing:.42em; text-transform:uppercase;
  color:var(--brass-hi); margin-bottom:clamp(18px,3vh,30px);
}
.hero-title{ font-size:clamp(1.1rem,2vw,1.6rem); line-height:1.35; font-weight:400; max-width:48ch; margin:0 0 24px; }
.hero-slogan{
  font-family:var(--serif);
  font-size:clamp(2.8rem,8.6vw,8.4rem);
  line-height:.92; letter-spacing:-.028em; font-weight:300;
  text-shadow:0 6px 60px rgba(0,0,0,.45);
}
.hero-slogan .ln{ display:block; overflow:hidden; }
.hero-slogan .ln > span{ display:block; }
.js-rv .hero-slogan .ln > span{ transform:translateY(106%); }
.js-rv .hero-slogan .ln.in > span{ transform:translateY(0); transition:transform 1.25s var(--ease); }
.js-rv .hero-slogan .ln:nth-of-type(2).in > span{ transition-delay:.13s; }
.hero-slogan em{
  font-style:italic;
  background:linear-gradient(100deg,var(--brass-hi),var(--brass) 45%,var(--brass-deep));
  -webkit-background-clip:text; background-clip:text; color:transparent;
}
.hero-foot{
  display:flex; flex-wrap:wrap; align-items:flex-end; justify-content:space-between;
  gap:30px; margin-top:clamp(28px,5vh,52px);
  padding-top:26px; border-top:1px solid var(--line);
}
.hero-foot p{ margin:0; max-width:44ch; color:var(--paper-dim); font-size:.96rem; }
.hero-meta{ display:flex; gap:clamp(18px,3vw,44px); flex-wrap:wrap; }
.hero-meta div{ font-size:.66rem; letter-spacing:.22em; text-transform:uppercase; color:var(--paper-faint); }
.hero-meta b{ display:block; font-family:var(--serif); font-size:1.9rem; letter-spacing:0; color:var(--paper); text-transform:none; font-weight:400; margin-bottom:2px; }

.score{
  position:absolute; z-index:3; right:var(--gut); top:clamp(96px,15vh,150px);
  text-align:center; padding:20px 22px;
  border:1px solid var(--line); background:rgba(11,12,10,.42);
  backdrop-filter:blur(12px); -webkit-backdrop-filter:blur(12px);
}
.score b{ display:block; font-family:var(--serif); font-size:2.9rem; line-height:1; color:var(--brass-hi); }
.score span{ display:block; font-size:.56rem; letter-spacing:.26em; text-transform:uppercase; color:var(--paper-faint); margin-top:8px; }
.score .stars{ color:var(--brass); letter-spacing:.16em; font-size:.72rem; margin-top:7px; }

.scroll-cue{
  position:absolute; z-index:3; left:50%; bottom:22px; transform:translateX(-50%);
  display:flex; flex-direction:column; align-items:center; gap:10px;
  font-size:.55rem; letter-spacing:.3em; text-transform:uppercase; color:var(--paper-faint);
}
.scroll-cue i{ display:block; width:1px; height:52px; background:linear-gradient(var(--brass),transparent); animation:cue 2.4s var(--ease-io) infinite; }
@keyframes cue{ 0%{ transform:scaleY(0); transform-origin:top; } 45%{ transform:scaleY(1); transform-origin:top; } 55%{ transform:scaleY(1); transform-origin:bottom; } 100%{ transform:scaleY(0); transform-origin:bottom; } }

/* ---------- Marquee ---------- */
.marquee{ overflow:hidden; border-block:1px solid var(--line-soft); background:var(--ink-2); padding-block:16px; }
.marquee-track{ display:flex; gap:56px; width:max-content; animation:slide 42s linear infinite; }
.marquee span{ display:flex; align-items:center; gap:56px; font-size:.66rem; letter-spacing:.28em; text-transform:uppercase; color:var(--paper-faint); white-space:nowrap; }
.marquee span::after{ content:"✦"; color:var(--brass); letter-spacing:0; }
@keyframes slide{ to{ transform:translateX(-50%); } }

/* ============================================================
   INTRO
   ============================================================ */
.intro-grid{ display:grid; grid-template-columns:1.08fr .92fr; gap:clamp(36px,6vw,96px); align-items:start; }
.intro-copy .drop::first-letter{
  float:left; font-family:var(--serif); font-size:4.6rem; line-height:.78;
  padding:6px 14px 0 0; color:var(--brass);
}
.intro-side{ position:sticky; top:clamp(96px,14vh,140px); }
.intro-side img{ width:100%; aspect-ratio:3/4; object-fit:cover; }
.intro-side figcaption{ margin-top:14px; font-size:.62rem; letter-spacing:.22em; text-transform:uppercase; color:var(--paper-faint); }

.stats{
  display:grid; grid-template-columns:repeat(4,1fr);
  border:1px solid var(--line); margin-top:clamp(46px,7vw,86px);
}
.stats div{ padding:clamp(26px,3.4vw,44px) clamp(16px,2vw,30px); border-right:1px solid var(--line); }
.stats div:last-child{ border-right:0; }
.stats b{ display:block; font-family:var(--serif); font-size:clamp(2.4rem,4.4vw,3.7rem); line-height:1; color:var(--brass-hi); font-weight:300; }
.stats small{ display:block; margin-top:10px; font-size:.63rem; letter-spacing:.24em; text-transform:uppercase; color:var(--paper-faint); }

/* ---------- Feature list ---------- */
.flist{ list-style:none; margin:0; padding:0; display:grid; gap:0; }
.flist li{
  display:flex; align-items:flex-start; gap:16px;
  padding:17px 0; border-bottom:1px solid var(--line-soft);
  color:var(--paper-dim); font-size:.95rem; line-height:1.6;
}
.flist li:first-child{ border-top:1px solid var(--line-soft); }
.flist svg{ flex:0 0 18px; width:18px; height:18px; margin-top:4px; stroke:var(--brass); fill:none; stroke-width:1.3; }
.flist b{ color:var(--paper); font-weight:400; }

/* ============================================================
   SIGNATURE / CIUBĂR
   ============================================================ */
.sig{ position:relative; overflow:hidden; background:var(--ink-2); }
.sig-bg{ position:absolute; inset:-10% 0; z-index:0; opacity:.3; will-change:transform; }
.sig-bg img{ width:100%; height:100%; object-fit:cover; filter:saturate(.72); }
.sig::after{ content:""; position:absolute; inset:0; z-index:1; background:linear-gradient(to right, var(--ink) 2%, rgba(11,12,10,.72) 46%, rgba(11,12,10,.35) 100%); }
.sig .wrap{ position:relative; z-index:2; }
.sig-grid{ display:grid; grid-template-columns:1.05fr .95fr; gap:clamp(36px,5vw,80px); align-items:center; }
.sig-shots{ display:grid; grid-template-columns:1fr 1fr; gap:14px; }
.sig-shots img{ width:100%; height:100%; object-fit:cover; aspect-ratio:4/3; }
.sig-shots a:first-child{ grid-column:1/-1; }
.sig-shots a:first-child img{ aspect-ratio:16/9; }
.temp{
  display:inline-flex; align-items:flex-end; gap:14px; margin-bottom:22px;
  font-family:var(--serif); font-size:clamp(3rem,6vw,5rem); color:var(--brass-hi); line-height:1;
}
.temp small{ font-family:var(--sans); font-size:.62rem; line-height:1.5; letter-spacing:.26em; text-transform:uppercase; color:var(--paper-faint); padding-bottom:.7em; }

/* ============================================================
   SPACES (sticky)
   ============================================================ */
.spaces{ display:grid; grid-template-columns:1fr 1.12fr; gap:clamp(30px,5vw,80px); align-items:start; }
.spaces-nav{ position:sticky; top:clamp(96px,14vh,150px); }
.spaces-nav ol{ list-style:none; margin:26px 0 0; padding:0; counter-reset:sp; }
.spaces-nav li{ counter-increment:sp; border-top:1px solid var(--line-soft); }
.spaces-nav button{
  width:100%; display:flex; align-items:baseline; gap:16px; text-align:left;
  padding:18px 0; color:var(--paper-faint); transition:color .45s var(--ease), padding .45s var(--ease);
  font-family:var(--serif); font-size:clamp(1.35rem,2.2vw,2.05rem); line-height:1.15;
}
.spaces-nav button::before{
  content:"0" counter(sp); font-family:var(--sans); font-size:.6rem;
  letter-spacing:.2em; color:var(--brass); opacity:.5; transition:opacity .4s;
}
.spaces-nav li.on button{ color:var(--paper); padding-left:10px; }
.spaces-nav li.on button::before{ opacity:1; }
.spaces-panels{ position:relative; }
.panel{ display:none; }
.panel.on{ display:block; animation:fadeUp .8s var(--ease) both; }
@keyframes fadeUp{ from{ opacity:0; transform:translateY(22px); } to{ opacity:1; transform:none; } }
.panel-hero img{ width:100%; aspect-ratio:16/10; object-fit:cover; }
.panel-thumbs{ display:grid; grid-template-columns:repeat(3,1fr); gap:12px; margin-top:12px; }
.panel-thumbs img{ width:100%; aspect-ratio:1/1; object-fit:cover; transition:opacity .45s var(--ease); }
.panel-thumbs a:hover img{ opacity:.72; }
.panel p{ margin-top:24px; color:var(--paper-dim); max-width:58ch; }
.tags{ display:flex; flex-wrap:wrap; gap:8px; margin-top:20px; }
.tags span{
  font-size:.6rem; letter-spacing:.2em; text-transform:uppercase;
  padding:7px 14px; border:1px solid var(--line); color:var(--paper-faint);
}

/* ============================================================
   FULL-BLEED BAND
   ============================================================ */
.band{ position:relative; height:clamp(440px,86vh,860px); overflow:hidden; display:grid; place-items:center; }
.band-media{ position:absolute; inset:-14% 0; z-index:0; will-change:transform; }
.band-media img{ width:100%; height:100%; object-fit:cover; }
.band::after{ content:""; position:absolute; inset:0; z-index:1; background:linear-gradient(rgba(11,12,10,.55),rgba(11,12,10,.25) 40%,rgba(11,12,10,.75)); }
.band-copy{ position:relative; z-index:2; text-align:center; padding-inline:var(--gut); max-width:min(92vw,880px); }
.band-copy q{
  font-family:var(--serif); font-style:italic; font-size:clamp(1.7rem,3.7vw,3.3rem);
  line-height:1.24; quotes:"„" "”"; display:block;
  text-shadow:0 4px 40px rgba(0,0,0,.6);
}
.band-copy cite{
  display:block; margin-top:26px; font-style:normal;
  font-size:.62rem; letter-spacing:.3em; text-transform:uppercase; color:var(--brass);
}

/* ============================================================
   GALLERY
   ============================================================ */
.gal-head{ display:flex; flex-wrap:wrap; align-items:flex-end; justify-content:space-between; gap:24px; margin-bottom:clamp(34px,5vw,60px); }
.gal-filters{ display:flex; flex-wrap:wrap; gap:8px; }
.gal-filters button{
  font-size:.62rem; letter-spacing:.2em; text-transform:uppercase;
  padding:10px 18px; border:1px solid var(--line); color:var(--paper-faint);
  transition:.4s var(--ease);
}
.gal-filters button:hover{ color:var(--paper); border-color:var(--paper-faint); }
.gal-filters button.on{ background:var(--brass); border-color:var(--brass); color:var(--ink); }

.masonry{ columns:3; column-gap:16px; }
.masonry figure{ break-inside:avoid; margin:0 0 16px; position:relative; overflow:hidden; cursor:pointer; background:var(--ink-3); }
.masonry img{ width:100%; height:auto; transition:transform 1.1s var(--ease), filter .7s var(--ease); }
.masonry figure::after{
  content:""; position:absolute; inset:0;
  background:linear-gradient(to top, rgba(11,12,10,.78), transparent 52%);
  opacity:0; transition:opacity .55s var(--ease);
}
.masonry figcaption{
  position:absolute; left:20px; right:20px; bottom:16px; z-index:2;
  font-size:.62rem; letter-spacing:.22em; text-transform:uppercase;
  opacity:0; transform:translateY(10px); transition:.55s var(--ease);
}
.masonry figure:hover img{ transform:scale(1.06); }
.masonry figure:hover::after,
.masonry figure:hover figcaption{ opacity:1; transform:none; }
.masonry figure.hide{ display:none; }
.gal-count{ margin-top:26px; font-size:.63rem; letter-spacing:.24em; text-transform:uppercase; color:var(--paper-faint); }

/* ---------- Lightbox ---------- */
.lb{
  position:fixed; inset:0; z-index:300; display:none;
  background:rgba(8,9,8,.97); backdrop-filter:blur(10px); -webkit-backdrop-filter:blur(10px);
  place-items:center; padding:clamp(14px,4vw,54px);
}
.lb.on{ display:grid; }
.lb img{
  max-width:100%; max-height:82vh; width:auto; height:auto; object-fit:contain;
  animation:lbIn .5s var(--ease) both; box-shadow:0 40px 120px rgba(0,0,0,.7);
}
@keyframes lbIn{ from{ opacity:0; transform:scale(.96); } to{ opacity:1; transform:none; } }
.lb-cap{ position:absolute; left:0; right:0; bottom:clamp(16px,3.5vh,36px); text-align:center; font-size:.63rem; letter-spacing:.24em; text-transform:uppercase; color:var(--paper-faint); }
.lb-cap b{ color:var(--brass); font-weight:400; }
.lb-x,.lb-prev,.lb-next{
  position:absolute; width:54px; height:54px; display:grid; place-items:center;
  border:1px solid var(--line); color:var(--paper); transition:.4s var(--ease);
}
.lb-x:hover,.lb-prev:hover,.lb-next:hover{ background:var(--brass); border-color:var(--brass); color:var(--ink); }
.lb-x{ top:clamp(14px,3vw,34px); right:clamp(14px,3vw,34px); font-size:1.1rem; }
.lb-prev{ left:clamp(10px,2.4vw,30px); top:50%; margin-top:-27px; }
.lb-next{ right:clamp(10px,2.4vw,30px); top:50%; margin-top:-27px; }

/* ============================================================
   FACILITIES
   ============================================================ */
.top-fac{ display:grid; grid-template-columns:repeat(auto-fit,minmax(170px,1fr)); gap:1px; background:var(--line); border:1px solid var(--line); margin-bottom:clamp(44px,6vw,80px); }
.top-fac div{ background:var(--ink); padding:clamp(24px,3vw,38px) 22px; text-align:center; transition:background .5s var(--ease); }
.top-fac div:hover{ background:var(--ink-3); }
.top-fac svg{ width:26px; height:26px; stroke:var(--brass); fill:none; stroke-width:1.2; margin:0 auto 14px; display:block; }
.top-fac span{ font-size:.64rem; letter-spacing:.2em; text-transform:uppercase; color:var(--paper-dim); }

.fac-grid{ columns:3; column-gap:clamp(26px,3.4vw,54px); }
.fac-block{ break-inside:avoid; margin-bottom:clamp(28px,3.4vw,46px); }
.fac-block h4{
  display:flex; align-items:center; gap:11px;
  font-family:var(--sans); font-size:.66rem; letter-spacing:.26em; text-transform:uppercase;
  color:var(--brass); padding-bottom:12px; border-bottom:1px solid var(--line); margin-bottom:14px;
}
.fac-block svg{ width:17px; height:17px; stroke:var(--brass); fill:none; stroke-width:1.3; flex:0 0 17px; }
.fac-block ul{ list-style:none; margin:0; padding:0; }
.fac-block li{ font-size:.88rem; color:var(--paper-dim); padding:4px 0 4px 17px; position:relative; line-height:1.55; }
.fac-block li::before{ content:""; position:absolute; left:0; top:12px; width:5px; height:5px; border:1px solid var(--brass-deep); transform:rotate(45deg); }

/* ============================================================
   LOCATION
   ============================================================ */
.loc-grid{ display:grid; grid-template-columns:.82fr 1.18fr; gap:clamp(30px,4vw,64px); align-items:start; }
#map{ width:100%; height:clamp(400px,62vh,650px); background:var(--ink-3); border:1px solid var(--line); }
/* OSM tiles are light by default — invert them into the page's dark palette. */
.leaflet-tile-pane{ filter:invert(1) hue-rotate(185deg) brightness(.92) contrast(.86) saturate(.4); }
.leaflet-container{ background:#12150F !important; font-family:var(--sans) !important; }
.leaflet-control-attribution{ background:rgba(11,12,10,.75) !important; color:var(--paper-faint) !important; font-size:10px !important; }
.leaflet-control-attribution a{ color:var(--brass) !important; }
.leaflet-bar a{ background:var(--ink-2) !important; color:var(--paper) !important; border-color:var(--line) !important; }
.leaflet-bar a:hover{ background:var(--brass) !important; color:var(--ink) !important; }
.pin{ display:grid; place-items:center; }
.pin i{ width:16px; height:16px; border-radius:50%; background:var(--brass); box-shadow:0 0 0 6px rgba(201,161,90,.24), 0 0 26px rgba(201,161,90,.8); display:block; animation:pulse 2.6s var(--ease-io) infinite; }
@keyframes pulse{ 0%,100%{ box-shadow:0 0 0 6px rgba(201,161,90,.24), 0 0 26px rgba(201,161,90,.7); } 50%{ box-shadow:0 0 0 15px rgba(201,161,90,0), 0 0 34px rgba(201,161,90,.95); } }

.near h4{
  font-family:var(--sans); font-size:.63rem; letter-spacing:.26em; text-transform:uppercase;
  color:var(--brass); margin:30px 0 6px;
}
.near h4:first-of-type{ margin-top:26px; }
.near ul{ list-style:none; margin:0; padding:0; }
.near li{
  display:flex; align-items:baseline; justify-content:space-between; gap:14px;
  padding:11px 0; border-bottom:1px solid var(--line-soft);
  font-size:.9rem; color:var(--paper-dim);
}
.near li b{ color:var(--paper); font-weight:300; }
.near li span{ color:var(--brass); font-size:.78rem; letter-spacing:.06em; white-space:nowrap; font-variant-numeric:tabular-nums; }
.addr{ font-size:.9rem; color:var(--paper-dim); margin-bottom:22px; }

/* ============================================================
   REVIEWS
   ============================================================ */
.rev{ background:var(--ink-2); border-block:1px solid var(--line-soft); }
.rev-grid{ display:grid; grid-template-columns:.8fr 1.2fr; gap:clamp(34px,5vw,80px); align-items:center; }
.big-score{ font-family:var(--serif); font-size:clamp(5.5rem,13vw,11rem); line-height:1; color:var(--brass-hi); font-weight:300; padding-bottom:.06em; }
.big-score sup{ font-size:.26em; color:var(--paper-faint); top:-1.6em; letter-spacing:.1em; }
.bars{ margin-top:30px; }
.bars div{ margin-bottom:15px; }
.bars i{ display:flex; justify-content:space-between; font-style:normal; font-size:.64rem; letter-spacing:.2em; text-transform:uppercase; color:var(--paper-faint); margin-bottom:7px; }
.bars u{ display:block; height:2px; background:var(--line); text-decoration:none; }
.bars u b{ display:block; height:100%; width:0; background:linear-gradient(90deg,var(--brass-deep),var(--brass-hi)); transition:width 1.6s var(--ease); }
.quote{ font-family:var(--serif); font-size:clamp(1.4rem,2.5vw,2.2rem); line-height:1.4; font-style:italic; }
.quote footer{ margin-top:24px; font-family:var(--sans); font-style:normal; font-size:.62rem; letter-spacing:.26em; text-transform:uppercase; color:var(--brass); }

/* ============================================================
   INFO
   ============================================================ */
.info-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:var(--line); border:1px solid var(--line); }
.info-grid div{ background:var(--ink); padding:clamp(26px,3.2vw,42px); }
.info-grid h4{ font-family:var(--sans); font-size:.62rem; letter-spacing:.26em; text-transform:uppercase; color:var(--brass); margin-bottom:13px; }
.info-grid p{ margin:0; font-size:.9rem; color:var(--paper-dim); line-height:1.7; }
.info-grid b{ font-family:var(--serif); font-size:1.75rem; line-height:1.18; color:var(--paper); font-weight:400; display:block; margin-bottom:9px; }

/* ============================================================
   REZERVARE / CALENDAR
   ============================================================ */
.book{ background:var(--ink-2); border-block:1px solid var(--line-soft); }
.book-grid{
  display:grid; grid-template-columns:1.45fr .95fr; gap:clamp(26px,3.4vw,56px);
  margin-top:clamp(40px,5vw,66px); align-items:start;
}

.cal{ border:1px solid var(--line); background:var(--ink); padding:clamp(18px,2.2vw,30px); }
.cal-bar{ display:flex; align-items:center; justify-content:space-between; gap:16px; margin-bottom:22px; }
.cal-nav{
  width:40px; height:40px; border:1px solid var(--line); color:var(--paper-dim);
  display:grid; place-items:center; flex:0 0 40px; transition:.35s var(--ease);
}
.cal-nav:hover:not(:disabled){ background:var(--brass); border-color:var(--brass); color:var(--ink); }
.cal-nav:disabled{ opacity:.25; cursor:not-allowed; }
.cal-legend{ display:flex; flex-wrap:wrap; gap:clamp(10px,1.4vw,20px); justify-content:center; }
.cal-legend span{ display:inline-flex; align-items:center; gap:7px; font-size:.58rem; letter-spacing:.2em; text-transform:uppercase; color:var(--paper-faint); }
.cal-legend i{ width:9px; height:9px; display:block; }
.k-free{ border:1px solid var(--paper-faint); }
.k-busy{ background:rgba(243,239,230,.09); border:1px solid var(--line); position:relative; }
.k-busy::after{ content:""; position:absolute; inset:-1px; background:linear-gradient(to top right,transparent 44%,var(--brass-deep) 44%,var(--brass-deep) 56%,transparent 56%); }
.k-sel{ background:var(--brass); }

.cal-months{ display:grid; grid-template-columns:1fr 1fr; gap:clamp(20px,2.6vw,38px); }
.cal-m h4{
  font-family:var(--sans); font-size:.64rem; letter-spacing:.26em; text-transform:uppercase;
  color:var(--brass); text-align:center; padding-bottom:14px; margin-bottom:10px;
  border-bottom:1px solid var(--line);
}
.cal-dow, .cal-days{ display:grid; grid-template-columns:repeat(7,1fr); }
.cal-dow span{ text-align:center; font-size:.54rem; letter-spacing:.14em; text-transform:uppercase; color:var(--paper-faint); padding-bottom:8px; }
.cal-days button, .cal-days span{
  aspect-ratio:1/1; display:grid; place-items:center;
  font-size:.84rem; font-variant-numeric:tabular-nums; color:var(--paper-dim);
  border:0; background:none; position:relative; transition:background .25s var(--ease), color .25s var(--ease);
}
.cal-days button:hover:not(:disabled){ background:rgba(201,161,90,.16); color:var(--paper); }
.cal-days .pad-day{ visibility:hidden; }

.cal-days .is-past{ color:rgba(243,239,230,.16); cursor:default; }
.cal-days .is-busy{ color:rgba(243,239,230,.24); cursor:not-allowed; }
.cal-days .is-busy::after{
  content:""; position:absolute; left:22%; right:22%; top:50%; height:1px;
  background:var(--brass-deep); transform:rotate(-24deg);
}
.cal-days .is-today{ box-shadow:inset 0 0 0 1px var(--line); }
.cal-days .in-range{ background:rgba(201,161,90,.13); color:var(--paper); }
.cal-days .is-edge{ background:var(--brass); color:var(--ink); font-weight:500; }
.cal-days .is-edge:hover{ background:var(--brass); color:var(--ink); }
.cal-days .is-edge::after{ display:none; }

.cal-fallback{ grid-column:1/-1; margin:0; padding:26px 0; text-align:center; font-size:.82rem; color:var(--paper-faint); }
.cal-note{ margin:20px 0 0; font-size:.68rem; letter-spacing:.08em; color:var(--paper-faint); text-align:center; min-height:1.4em; }
.cal-note b{ color:var(--brass); font-weight:400; }

/* ---------- Request panel ---------- */
.book-panel{ border:1px solid var(--line); background:var(--ink); padding:clamp(24px,2.8vw,34px); position:sticky; top:clamp(96px,13vh,130px); }
.book-panel h3{ font-family:var(--sans); font-size:.62rem; letter-spacing:.26em; text-transform:uppercase; color:var(--brass); margin-bottom:20px; font-weight:400; }
.book-sum{ margin:0 0 24px; }
.book-sum > div{ display:flex; align-items:baseline; justify-content:space-between; gap:14px; padding:13px 0; border-bottom:1px solid var(--line-soft); }
.book-sum dt{ font-size:.6rem; letter-spacing:.2em; text-transform:uppercase; color:var(--paper-faint); }
.book-sum dd{ margin:0; font-family:var(--serif); font-size:1.18rem; color:var(--paper); }

.book-guests{ display:flex; align-items:center; justify-content:space-between; gap:14px; padding:6px 0 22px; }
.book-guests label{ font-size:.6rem; letter-spacing:.2em; text-transform:uppercase; color:var(--paper-faint); }
.stepper{ display:flex; align-items:center; border:1px solid var(--line); }
.stepper button{ width:36px; height:36px; color:var(--paper-dim); transition:.3s var(--ease); }
.stepper button:hover:not(:disabled){ background:var(--brass); color:var(--ink); }
.stepper button:disabled{ opacity:.25; cursor:not-allowed; }
.stepper output{ min-width:42px; text-align:center; font-family:var(--serif); font-size:1.2rem; color:var(--paper); }

.book-msg{ margin:0 0 16px; font-size:.76rem; line-height:1.6; color:var(--brass-hi); min-height:1.1em; }
.book-msg:empty{ margin:0; min-height:0; }

.book-go{ width:100%; justify-content:center; text-align:center; }
.book-go svg{ width:17px; height:17px; fill:currentColor; flex:0 0 17px; }
.book-go[aria-disabled="true"]{ opacity:.45; pointer-events:none; }

.book-fine{ margin:18px 0 0; font-size:.66rem; line-height:1.7; letter-spacing:.04em; color:var(--paper-faint); }
.book-fine a:hover{ color:var(--brass); }

@media (max-width:1100px){
  .book-grid{ grid-template-columns:1fr; }
  .book-panel{ position:static; }
}
@media (max-width:620px){
  .cal-months{ grid-template-columns:1fr; }
  .cal-legend{ order:3; flex-basis:100%; }
  .cal-bar{ flex-wrap:wrap; }
}

/* ============================================================
   CTA + FOOTER
   ============================================================ */
.cta{ position:relative; overflow:hidden; text-align:center; }
.cta-media{ position:absolute; inset:-12% 0; z-index:0; will-change:transform; }
.cta-media img{ width:100%; height:100%; object-fit:cover; }
.cta::after{ content:""; position:absolute; inset:0; z-index:1; background:linear-gradient(rgba(11,12,10,.82),rgba(11,12,10,.9)); }
.cta .wrap{ position:relative; z-index:2; }
.cta-actions{ display:flex; flex-wrap:wrap; gap:14px; justify-content:center; margin-top:38px; }

footer.ft{ border-top:1px solid var(--line); padding:clamp(48px,6vw,80px) var(--gut) 34px; }
.ft-grid{ max-width:var(--maxw); margin-inline:auto; display:grid; grid-template-columns:1.4fr 1fr 1fr; gap:clamp(28px,4vw,60px); }
.ft h5{ font-family:var(--sans); font-weight:400; font-size:.62rem; letter-spacing:.26em; text-transform:uppercase; color:var(--brass); margin:0 0 16px; }
.ft ul{ list-style:none; margin:0; padding:0; }
.ft li{ padding:5px 0; font-size:.88rem; color:var(--paper-dim); }
.ft li a:hover{ color:var(--brass); }
.ft-brand b{ font-family:var(--serif); font-size:2rem; letter-spacing:.2em; text-transform:uppercase; font-weight:400; display:block; margin-bottom:14px; }
.ft-bottom{
  max-width:var(--maxw); margin:clamp(40px,5vw,66px) auto 0; padding-top:24px; border-top:1px solid var(--line-soft);
  display:flex; flex-wrap:wrap; gap:14px; justify-content:space-between;
  font-size:.62rem; letter-spacing:.18em; text-transform:uppercase; color:var(--paper-faint);
}
.todo{ color:var(--brass-deep); }

/* ============================================================
   BARA CTA (dock)
   Apare dupa hero si se retrage cand sectiunea de rezervare sau
   footer-ul sunt pe ecran, ca sa nu dubleze acelasi buton.
   ============================================================ */
.dock{
  position:fixed; left:0; right:0; bottom:0; z-index:110;
  background:rgba(11,12,10,.9);
  backdrop-filter:blur(20px) saturate(1.2);
  -webkit-backdrop-filter:blur(20px) saturate(1.2);
  border-top:1px solid var(--line);
  transform:translateY(110%); visibility:hidden;
  transition:transform .55s var(--ease), visibility .55s var(--ease);
}
.dock.on{ transform:none; visibility:visible; }
.dock-in{
  max-width:var(--maxw); margin-inline:auto;
  padding:13px var(--gut);
  padding-bottom:calc(13px + env(safe-area-inset-bottom, 0px));
  display:flex; align-items:center; justify-content:space-between; gap:20px;
}
.dock-info b{
  display:block; font-family:var(--serif); font-size:1.08rem; font-weight:400;
  letter-spacing:.18em; text-transform:uppercase; line-height:1.2;
}
.dock-info span{ font-size:.6rem; letter-spacing:.18em; text-transform:uppercase; color:var(--paper-faint); }
.dock-actions{ display:flex; gap:10px; flex:0 0 auto; }
.dock .btn{ padding:12px 20px; }
.dock .btn svg{ width:16px; height:16px; fill:currentColor; flex:0 0 16px; }

@media (max-width:820px){
  .dock-info b{ font-size:.92rem; letter-spacing:.14em; }
  .dock-info span{ display:none; }
  .dock .btn{ padding:11px 15px; font-size:.6rem; letter-spacing:.16em; }
}
@media (max-width:540px){
  .dock-info{ display:none; }
  .dock-actions{ flex:1; }
  .dock .btn{ flex:1; justify-content:center; }
}
@media (prefers-reduced-motion:reduce){
  .dock{ transition:none; }
}

/* ============================================================
   RESPONSIVE
   ============================================================ */
@media (max-width:1100px){
  .masonry{ columns:2; }
  .fac-grid{ columns:2; }
  .intro-grid{ grid-template-columns:1fr; }
  .intro-side{ position:static; max-width:480px; }
  .sig-grid,.loc-grid,.rev-grid{ grid-template-columns:1fr; }
  .spaces{ grid-template-columns:1fr; }
  .spaces-nav{ position:static; }
  .ft-grid{ grid-template-columns:1fr 1fr; }
  .info-grid{ grid-template-columns:1fr 1fr; }
}
@media (max-width:820px){
  body.menu-open{ overflow:hidden; }
  /* A filtered ancestor contains fixed children: keep the menu viewport-sized. */
  body.menu-open .nav{
    backdrop-filter:none; -webkit-backdrop-filter:none; transition:none; z-index:200;
  }
  .nav-links{
    position:fixed; inset:0; z-index:-1;
    flex-direction:column; align-items:center; justify-content:flex-start; gap:8px;
    height:100vh; height:100dvh; padding:80px 24px 32px;
    overflow-y:auto; overscroll-behavior:contain; visibility:hidden;
    background:rgba(11,12,10,.97); backdrop-filter:blur(18px);
    opacity:0; pointer-events:none; transition:opacity .5s var(--ease);
  }
  .nav-links a{ font-size:1rem; letter-spacing:.24em; min-height:44px; flex-shrink:0; display:flex; align-items:center; }
  body.menu-open .nav-links{ opacity:1; visibility:visible; pointer-events:auto; z-index:1; }
  .burger{ display:block; z-index:2; }
  .burger::before{ content:""; position:absolute; inset:-15px -9px; }
  .nav .btn{ display:none; }
  .stats{ grid-template-columns:1fr 1fr; }
  .stats div:nth-child(2){ border-right:0; }
  .stats div:nth-child(-n+2){ border-bottom:1px solid var(--line); }
  .hero{ height:auto; min-height:100svh; flex-direction:column; padding-top:90px; }
  .score{ position:relative; inset:auto; align-self:flex-end; margin:0 var(--gut) 24px; padding:12px 15px; }
  .score b{ font-size:1.8rem; }
  .score span{ font-size:.5rem; letter-spacing:.2em; }
  .score .stars{ font-size:.62rem; margin-top:5px; }
  .scroll-cue{ display:none; }
  .hero-foot{ flex-direction:column; align-items:flex-start; gap:22px; }
  .hero-foot p{ max-width:none; }
  .hero-meta{ gap:26px; }
  .hero-inner{ flex:1; padding-top:0; padding-bottom:clamp(30px,5vh,52px); }
}
@media (max-width:620px){
  .masonry{ columns:1; }
  .fac-grid{ columns:1; }
  .panel-thumbs{ grid-template-columns:1fr 1fr; }
  .sig-shots{ grid-template-columns:1fr; }
  .sig-shots a:first-child img{ aspect-ratio:4/3; }
  .ft-grid{ grid-template-columns:1fr; }
  .intro-copy .drop::first-letter{ font-size:3.4rem; }
  .lb-prev,.lb-next{ width:44px; height:44px; }
  .info-grid{ grid-template-columns:1fr; }
}

/* ---------- Reduced motion ---------- */
@media (prefers-reduced-motion:reduce){
  html{ scroll-behavior:auto; }
  *,*::before,*::after{ animation-duration:.001ms !important; animation-iteration-count:1 !important; transition-duration:.001ms !important; }
  .marquee-track{ animation:none; }
}
