/* ============================================================
   ZAFRA — tema deschisă (mock-up)
   Se încarcă după style.css și schimbă doar culorile.
   Pagina devine crem cald; rămân închise doar zonele peste fotografii
   (hero, banda cu citat, CTA, lightbox) și două benzi verde-brad
   (ciubărul și subsolul).
   ============================================================ */

:root{
  --ink:          #F6F2EA;   /* fundal pagină */
  --ink-2:        #EFE9DE;   /* secțiuni alternante */
  --ink-3:        #E6DFD1;
  --surface:      #FBF9F4;   /* carduri */
  --line:         rgba(31,33,30,.14);
  --line-soft:    rgba(31,33,30,.08);

  --paper:        #1F211E;   /* text */
  --paper-dim:    rgba(31,33,30,.74);
  --paper-faint:  rgba(31,33,30,.52);

  --brass:        #9A7433;   /* alamă mai închisă, lizibilă pe crem */
  --brass-hi:     #86652B;
  --brass-deep:   #6E5324;
}

/* ---------- Insule închise: textul stă peste fotografii ---------- */
.hero, .band, .cta, .lb,
.nav:not(.solid){
  --ink:#0B0C0A; --ink-2:#101210; --ink-3:#161916;
  --line:rgba(232,224,208,.16); --line-soft:rgba(232,224,208,.08);
  --paper:#F3EFE6; --paper-dim:rgba(243,239,230,.78); --paper-faint:rgba(243,239,230,.55);
  --brass:#C9A15A; --brass-hi:#E6CE9A; --brass-deep:#8C6C33;
}
.hero, .band, .cta, .nav{ color:var(--paper); }

/* Cormorant scrie implicit cifrele „în stil vechi” (350 arată ca 35o) */
body{ font-variant-numeric:lining-nums; }

/* ---------- Benzi verde-brad ---------- */
.sig, footer.ft{
  --ink:#1F2B23; --ink-2:#1F2B23; --ink-3:#263329;
  --line:rgba(232,224,208,.16); --line-soft:rgba(232,224,208,.09);
  --paper:#F3EFE6; --paper-dim:rgba(243,239,230,.78); --paper-faint:rgba(243,239,230,.55);
  --brass:#D2AE6B; --brass-hi:#E6CE9A; --brass-deep:#A5824A;
  color:var(--paper);
}
.sig::after{ background:linear-gradient(to right, #1F2B23 4%, rgba(31,43,35,.82) 46%, rgba(31,43,35,.45) 100%); }
footer.ft{ background:var(--ink); border-top:0; }

/* ---------- Nav: transparent peste hero, crem după scroll ---------- */
.nav.solid{ background:rgba(246,242,234,.9); }
body.menu-open .nav{
  --ink:#F6F2EA; --paper:#1F211E; --paper-dim:rgba(31,33,30,.74);
}
@media (max-width:820px){
  .nav-links{ background:#F6F2EA; }
}

/* ---------- Butoane: text crem pe alamă ---------- */
.btn.solid{ color:#FBF9F4; }
.btn:hover{ color:#FBF9F4; }

/* ---------- Carduri albe pe fundal crem ---------- */
.cal, .book-panel{ background:var(--surface); box-shadow:0 30px 80px -40px rgba(31,33,30,.25); }
.top-fac div{ background:var(--surface); }
.top-fac div:hover{ background:var(--ink); }
.info-grid div{ background:var(--surface); }

/* ---------- Galerie: legenda rămâne albă peste poză ---------- */
.masonry figcaption{ color:#F3EFE6; }

/* ---------- Calendar ---------- */
.k-busy{ background:rgba(31,33,30,.07); }
.cal-days .is-past{ color:rgba(31,33,30,.2); }
.cal-days .is-busy{ color:rgba(31,33,30,.32); }
.cal-days .is-edge, .cal-days .is-edge:hover{ color:#FBF9F4; }

/* ---------- Harta: fără inversare de culori ---------- */
.leaflet-tile-pane{ filter:saturate(.5) sepia(.12) contrast(.96); }
.leaflet-container{ background:#E9E3D6 !important; }
.leaflet-control-attribution{ background:rgba(246,242,234,.85) !important; }

/* ---------- Bara fixă de jos ---------- */
.dock{ background:rgba(246,242,234,.94); }

/* ---------- Hero video: zoom lent cât timp nu există clip ---------- */
.hero-media video{ width:100%; height:100%; object-fit:cover; object-position:center 30%; }
.hero-media video:not([data-ready]){ animation:kenburns 24s ease-in-out infinite alternate; }
@keyframes kenburns{ from{ transform:scale(1); } to{ transform:scale(1.08) translate(-1%, -1%); } }

@media (prefers-reduced-motion:reduce){
  .hero-media video{ animation:none !important; }
}

/* ============================================================
   LIZIBILITATE: text mai mare și mai plin, contrast mai bun
   (publicul țintă e adesea peste 50 de ani)
   ============================================================ */
:root{ --paper-dim:rgba(31,33,30,.84); --paper-faint:rgba(31,33,30,.64); }
.hero, .band, .cta, .lb, .nav:not(.solid), .sig, footer.ft{
  --paper-dim:rgba(243,239,230,.88); --paper-faint:rgba(243,239,230,.7);
}

body{ font-size:clamp(17px, .35vw + 15.6px, 19.5px); font-weight:400; line-height:1.7; }
.lede{ font-size:clamp(1.12rem, 1.2vw, 1.3rem); }
.hero-foot p{ font-size:1.08rem; }

/* etichete mici, cu majuscule: minim ~13px */
.nav-links a, .btn, .eyebrow, .hero-eyebrow, .hero-meta div, .score span,
.marquee span, .stats small, .tags span, .band-copy cite, .gal-filters button,
.masonry figcaption, .gal-count, .lb-cap, .top-fac span, .fac-block h4, .near h4,
.bars i, .quote footer, .info-grid h4, .cal-legend span, .cal-m h4, .book-panel h3,
.book-sum dt, .book-guests label, .ft h5, .ft-bottom, .dock-info span, .temp small,
.intro-side figcaption, .scroll-cue{
  font-size:.8rem; letter-spacing:.16em;
}
.brand small{ font-size:.66rem; }
.cal-dow span{ font-size:.72rem; }

/* text de conținut: cel puțin mărimea de bază */
.flist li, .fac-block li, .near li, .addr, .info-grid p, .ft li, .panel p{ font-size:1rem; }
.cal-days button, .cal-days span{ font-size:1rem; }
.cal-note, .book-fine{ font-size:.86rem; }

/* ============================================================
   EXPERIENȚE: carduri cu poză, pe sezoane
   ============================================================ */
.exp-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:clamp(20px,2.4vw,36px); margin-top:clamp(40px,5vw,66px); }
.exp{ background:var(--surface); border:1px solid var(--line-soft); display:flex; flex-direction:column; }
.exp figure{ margin:0; position:relative; overflow:hidden; aspect-ratio:4/3; }
.exp img{ width:100%; height:100%; object-fit:cover; transition:transform 1.1s var(--ease); }
.exp:hover img{ transform:scale(1.05); }
.exp-tag{ position:absolute; left:16px; top:16px; padding:6px 12px; background:rgba(246,242,234,.92); color:var(--paper);
  font-size:.74rem; letter-spacing:.14em; text-transform:uppercase; }
.exp-body{ padding:clamp(20px,2vw,28px); display:flex; flex-direction:column; flex:1; }
.exp h3{ font-size:clamp(1.5rem,2vw,1.85rem); margin-bottom:12px; }
.exp p{ color:var(--paper-dim); font-size:1rem; margin-bottom:18px; }
.exp-dist{ margin-top:auto; font-size:.8rem; letter-spacing:.16em; text-transform:uppercase; color:var(--brass); }
.exp-credit{ display:block; margin-top:10px; font-size:.72rem; color:var(--paper-faint); }
.exp-credit a{ text-decoration:underline; }
@media (max-width:1100px){ .exp-grid{ grid-template-columns:1fr 1fr; } }
@media (max-width:620px){ .exp-grid{ grid-template-columns:1fr; } }

/* ============================================================
   ANOTIMPURI: serverul trimite doar conținutul anotimpului curent;
   <html data-sezon data-ora> rămâne pentru efectele vizuale de mai jos.
   ============================================================ */

.hero-media img{ width:100%; height:100%; object-fit:cover; object-position:center 40%;
  animation:kenburns 24s ease-in-out infinite alternate; }
@media (prefers-reduced-motion:reduce){ .hero-media img{ animation:none; } }

.sf-grid{ display:grid; grid-template-columns:1fr 1fr; gap:clamp(36px,5vw,90px); align-items:center; }
.sf-grid figure{ margin:0; }
.sf-grid img{ width:100%; aspect-ratio:4/3; object-fit:cover; }
@media (max-width:1100px){ .sf-grid{ grid-template-columns:1fr; } }

/* HERO: apare prin CSS din prima randare (nu așteaptă JS), cu aceleași mișcări ca restul paginii */
@keyframes heroIn{ from{ opacity:0; transform:translateY(30px); } to{ opacity:1; transform:none; } }
@keyframes heroLn{ from{ transform:translateY(106%); } to{ transform:none; } }
@media (prefers-reduced-motion:no-preference){
  .hero .rv{ animation:heroIn 1.1s var(--ease) both; }
  .hero .hero-eyebrow{ animation-delay:.2s; }
  .hero .hero-foot{ animation-delay:.45s; }
  .hero .score{ animation-delay:.9s; }
  .hero-slogan .ln > span{ animation:heroLn 1.25s var(--ease) both; }
  .hero-slogan .ln:nth-of-type(2) > span{ animation-delay:.13s; }
}

/* Secțiunile din afara ecranului nu se calculează și nu se desenează până nu se apropie
   vizitatorul de ele: pagina e lungă, iar pe telefon asta era cea mai mare parte din muncă. */
main > section:not(.hero), footer.ft{ content-visibility:auto; contain-intrinsic-size:auto 900px; }
/* la un link din pagină (#galerie) se calculează toată pagina o dată, ca saltul să ajungă exact */
.cv-off main > section, .cv-off footer.ft{ content-visibility:visible; }

/* comutatorul există doar în mock-up, pentru previzualizare */
.sezon-switch{ position:fixed; left:50%; transform:translateX(-50%); top:92px; z-index:130; display:flex; align-items:center; gap:4px;
  padding:6px; background:rgba(31,33,30,.88); backdrop-filter:blur(10px); border-radius:999px; }
.sezon-switch span{ color:#F3EFE6; font-size:.72rem; letter-spacing:.14em; text-transform:uppercase; padding:0 10px; }
.sezon-switch a{ color:#F3EFE6; font-size:.82rem; padding:8px 14px; border-radius:999px; }
.sezon-switch a.on{ background:#C9A15A; color:#1F211E; }
@media (max-width:620px){ .sezon-switch span{ display:none; } .sezon-switch a{ padding:8px 10px; font-size:.76rem; } }

.sezon-feat .flist li{ display:block; }

/* ============================================================
   LOCAȚIE: hartă pe toată secțiunea + panou plutitor cu repere
   ============================================================ */
.loc-full{ position:relative; isolation:isolate; height:clamp(640px,92vh,880px); }
.loc-full #map{ position:absolute; inset:0; height:100%; border:0; }
.loc-panel{
  position:absolute; z-index:500; left:var(--gut); top:50%; transform:translateY(-50%);
  width:min(440px, calc(100% - 2*var(--gut))); max-height:calc(100% - 64px); overflow:auto;
  background:rgba(251,249,244,.95); backdrop-filter:blur(12px); -webkit-backdrop-filter:blur(12px);
  padding:clamp(26px,2.6vw,38px); box-shadow:0 30px 80px -30px rgba(31,33,30,.45);
}
.loc-panel h2{ margin:4px 0 16px; }
.loc-panel .addr{ margin-bottom:20px; }
.loc-tabs{ display:flex; flex-wrap:wrap; gap:6px; margin:26px 0 8px; border-bottom:1px solid var(--line); }
.loc-tabs button{ padding:10px 12px; font-size:.8rem; letter-spacing:.14em; text-transform:uppercase; color:var(--paper-faint); border-bottom:2px solid transparent; margin-bottom:-1px; }
.loc-tabs button.on{ color:var(--paper); border-bottom-color:var(--brass); }
.loc-list{ list-style:none; margin:0; padding:0; }
.loc-list button{ width:100%; display:flex; justify-content:space-between; align-items:baseline; gap:14px; text-align:left;
  padding:12px 8px; border-bottom:1px solid var(--line-soft); transition:background .25s; }
.loc-list button:hover, .loc-list button.on{ background:rgba(154,116,51,.1); }
.loc-list b{ font-weight:400; color:var(--paper); }
.loc-list span{ color:var(--brass); font-size:.9rem; white-space:nowrap; }
.loc-note{ margin:14px 0 0; font-size:.8rem; color:var(--paper-faint); }
.pin-alt i{ background:#1F2B23; box-shadow:0 0 0 5px rgba(31,43,35,.2); animation:none; }
.leaflet-tooltip.pin-label{ font-family:var(--sans); font-size:.85rem; background:#FBF9F4; border:1px solid var(--line); box-shadow:none; }
@media (max-width:820px){
  .loc-full{ height:auto; display:flex; flex-direction:column; }   /* pe telefon: întâi harta, apoi lista */
  .loc-full #map{ position:relative; height:55vh; }
  .loc-panel{ position:static; transform:none; width:auto; max-height:none; box-shadow:none; }
}

/* ============================================================
   ÎNTREBĂRI FRECVENTE: <details> nativ, fără JavaScript
   ============================================================ */
.faq-grid{ display:grid; grid-template-columns:.8fr 1.2fr; gap:clamp(36px,5vw,90px); align-items:start; }
.faq-grid > div:first-child{ position:sticky; top:clamp(96px,14vh,140px); }
.faq-item{ border-bottom:1px solid var(--line); }
.faq-item:first-child{ border-top:1px solid var(--line); }
.faq-item summary{ list-style:none; cursor:pointer; display:flex; justify-content:space-between; align-items:center; gap:20px;
  padding:22px 4px; font-family:var(--serif); font-size:clamp(1.25rem,1.6vw,1.5rem); color:var(--paper); }
.faq-item summary::-webkit-details-marker{ display:none; }
.faq-item summary::after{ content:"+"; font-family:var(--sans); font-weight:300; font-size:1.6rem; line-height:1; color:var(--brass); transition:transform .35s var(--ease); }
.faq-item[open] summary::after{ transform:rotate(45deg); }
.faq-item summary:hover{ color:var(--brass); }
.faq-item p{ margin:0 0 24px; padding:0 4px; color:var(--paper-dim); max-width:60ch; }
@media (max-width:1100px){ .faq-grid{ grid-template-columns:1fr; } .faq-grid > div:first-child{ position:static; } }

/* banda cu cifrele zonei */
.zone-stats{ display:grid; grid-template-columns:repeat(4,1fr); border-block:1px solid var(--line); margin-top:clamp(34px,4vw,54px); }
.zone-stats div{ display:flex; align-items:center; gap:16px; padding:clamp(20px,2.4vw,30px) clamp(12px,1.6vw,24px); border-right:1px solid var(--line); }
.zone-stats div:last-child{ border-right:0; }
.zone-stats b{ font-family:var(--serif); font-weight:300; font-size:clamp(2.8rem,4.4vw,3.8rem); line-height:1; color:var(--brass-hi); }
.zone-stats span{ font-size:.92rem; line-height:1.4; color:var(--paper-dim); }
@media (max-width:820px){ .zone-stats{ grid-template-columns:1fr 1fr; } .zone-stats div:nth-child(2){ border-right:0; } .zone-stats div:nth-child(-n+2){ border-bottom:1px solid var(--line); } }

/* ciubăr: prima poză pe tot rândul, oricare ar fi anotimpul */
.sig-shots a.wide{ grid-column:1/-1; }
.sig-shots a.wide img{ aspect-ratio:16/9; }

/* hero: imaginea ancorată sus, ca să se vadă crestele Bucegilor */
.hero-media{ inset:0 0 -16% 0; }
.hero-media img, .hero-media video{ object-position:center top; transform-origin:center top; }
/* scrim mai ușor sus: munții rămân vizibili, meniul are încă destul contrast */
.hero-scrim{
  background:
    linear-gradient(to bottom, rgba(11,12,10,.5) 0%, rgba(11,12,10,.08) 22%, rgba(11,12,10,.5) 60%, rgba(11,12,10,.88) 86%, #0B0C0A 100%),
    linear-gradient(to right, rgba(11,12,10,.55) 0%, rgba(11,12,10,.1) 52%, transparent 100%);
}

/* ============================================================
   CLIPURI: hero vertical pe telefon + secțiunea Reels
   ============================================================ */
.hero-portrait{ display:none; }
@media (max-width:820px){
  .hero-portrait{ display:block; position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
  /* pe telefon, când există clip pentru anotimp, ascundem pozele și clipul orizontal */
  html:not([data-sezon=iarna]) .hero-media > :not(.hero-portrait){ display:none !important; }
}

.reels-sec{ overflow:hidden; }
.reels{ display:flex; gap:clamp(12px,1.6vw,20px); overflow-x:auto; scroll-snap-type:x mandatory;
  margin-top:clamp(34px,4vw,54px); padding-bottom:14px; scrollbar-width:thin; }
.reel{ position:relative; flex:0 0 clamp(210px,21vw,290px); aspect-ratio:9/16; margin:0; overflow:hidden;
  border-radius:16px; scroll-snap-align:start; cursor:pointer; background:#1F2B23; }
.reel video{ width:100%; height:100%; object-fit:cover; display:block; }
.reel figcaption{ position:absolute; left:0; right:0; bottom:0; padding:48px 18px 18px; color:#F3EFE6;
  font-family:var(--serif); font-size:1.35rem; line-height:1.2; background:linear-gradient(transparent, rgba(11,12,10,.75)); }

.sezon-switch .sep{ width:1px; height:20px; background:rgba(243,239,230,.3); margin:0 4px; }
@media (max-width:820px){ .sezon-switch{ top:auto; bottom:92px; } }

/* ============================================================
   ZI / SEARĂ: conținutul îl alege serverul; aici doar efectele de seară
   ============================================================ */

.hero-eve-card{ display:none; }
/* seara: aceeași poză de zi, întunecată și răcită, ca la ora albastră; se vede încă muntele */
.hero-media > picture > img, .hero-media > img, .hero-media > video{ transition:filter 1.2s ease; }
html[data-ora=seara] .hero-media > picture > img, html[data-ora=seara] .hero-media > img, html[data-ora=seara] .hero-media > video:not(.hero-portrait){
  filter:brightness(.5) saturate(.72) contrast(1.08) hue-rotate(-8deg); }
.hero-scrim::after{ content:""; position:absolute; inset:0; opacity:0; transition:opacity 1.2s ease;
  background:linear-gradient(to bottom, rgba(24,36,78,.55) 0%, rgba(24,36,78,.25) 35%, rgba(11,12,10,0) 70%); }
html[data-ora=seara] .hero-scrim::after{ opacity:1; }
@media (min-width:821px){
  html[data-ora=seara]:not([data-sezon=iarna]) .hero:has(.hero-eve-card){ min-height:max(760px,100svh); }
  html[data-ora=seara]:not([data-sezon=iarna]) .hero:has(.hero-eve-card) .hero-inner{
    padding-right:calc(var(--gut) + clamp(140px,18vw,240px) + 32px); padding-bottom:110px; }
  html[data-ora=seara]:not([data-sezon=iarna]) .hero-eve-card{
    display:block; position:absolute; z-index:2; right:var(--gut); top:calc(clamp(96px,15vh,150px) + 190px); width:clamp(140px,18vw,240px);
    aspect-ratio:9/16; margin:0; border-radius:18px; overflow:hidden; box-shadow:0 40px 90px -30px rgba(0,0,0,.8); border:1px solid rgba(243,239,230,.18); }
  .hero-eve-card video{ width:100%; height:100%; object-fit:cover; display:block; }
  .hero-eve-card figcaption{ position:absolute; left:0; right:0; bottom:0; padding:40px 16px 14px; color:#F3EFE6;
    font-family:var(--serif); font-style:italic; font-size:1.2rem; background:linear-gradient(transparent, rgba(11,12,10,.7)); }
}

/* clipul vertical din secțiunea Vila: format 9:16, fără să iasă din ecran */
.intro-video{ display:block; width:100%; aspect-ratio:9/16; max-height:calc(100vh - 180px); object-fit:cover; border-radius:14px; background:#1F2B23; }

/* prezentarea automată a reperelor: bară de progres sub reperul activ */
.loc-list button{ position:relative; }
.loc-list button.auto::after{ content:""; position:absolute; left:0; bottom:-1px; height:2px; width:100%;
  background:var(--brass); transform-origin:left; animation:locProgress 3.4s linear forwards; }
@keyframes locProgress{ from{ transform:scaleX(0); } to{ transform:scaleX(1); } }

/* Reels: săgeți mari în lateral, fără bară de derulare */
.reels-wrap{ position:relative; }
.reels{ scrollbar-width:none; scroll-behavior:smooth; }
.reels::-webkit-scrollbar{ display:none; }
.reels-nav{ position:absolute; z-index:3; top:50%; transform:translateY(-50%);
  width:60px; height:60px; border-radius:50%; display:grid; place-items:center;
  background:rgba(251,249,244,.95); color:var(--paper); font-size:1.5rem; line-height:1;
  box-shadow:0 12px 30px -10px rgba(31,33,30,.45); border:1px solid var(--line); transition:opacity .3s, background .3s, color .3s; }
.reels-nav:hover{ background:var(--brass); color:#FBF9F4; }
.reels-nav.prev{ left:-30px; }
.reels-nav.next{ right:-30px; }
.reels-nav[disabled]{ opacity:0; pointer-events:none; }
@media (max-width:820px){
  .reel{ flex-basis:100%; scroll-snap-stop:always; }
  .reel video{ object-fit:contain; }
  .reels-nav{ width:52px; height:52px; }
  .reels-nav.prev{ left:4px; }
  .reels-nav.next{ right:4px; }
}

/* ============================================================
   SPAȚIERE: originalul avea până la 190 px sus + 190 px jos pe fiecare
   secțiune (până la ~400–700 px de gol între zone). Acum ~100 px.
   ============================================================ */
.pad{ padding-block:clamp(48px,5.5vw,96px); }
.gal-head{ margin-bottom:clamp(24px,3vw,40px); }
.gal-count{ margin-top:18px; }
.reels{ margin-top:clamp(24px,3vw,36px); }
.exp-grid{ margin-top:clamp(28px,3.5vw,44px); }
.zone-stats{ margin-top:clamp(24px,3vw,36px); }
.top-fac{ margin-bottom:clamp(28px,4vw,48px); }
.stats{ margin-top:clamp(32px,4.5vw,56px); }
/* două secțiuni la rând pe același fundal crem: nu adunăm spațiul de două ori */
section.pad:not(.rev):not(.book):not(.sig):not([style*="background"])
  + section.pad:not(.rev):not(.book):not(.sig):not([style*="background"]){ padding-top:clamp(12px,1.6vw,28px); }
