/* Contemporan Homes — strat de finisaj.
   Se aplică PESTE designul portat: nu schimbă structura, paleta sau tipografia,
   ci adaugă adâncime tactilă, fizică de apăsare și ritm de intrare. */

:root{
  --ease-soft:cubic-bezier(.16,1,.3,1);      /* decelerare lungă, „grea" */
  --ease-press:cubic-bezier(.32,.72,0,1);    /* răspuns la atingere */
  --ring:0 0 0 3px rgba(175,62,36,.32);
}

/* ---------- Granulație de film: fixă, deci nu repictează la derulare ---------- */
body::after{
  content:"";position:fixed;inset:0;z-index:5;pointer-events:none;opacity:.035;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.82' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='140' height='140' filter='url(%23n)'/%3E%3C/svg%3E");
  mix-blend-mode:multiply;
}
@media (prefers-reduced-motion:reduce){ body::after{opacity:.02} }

/* ---------- Carduri: carcasă + miez, cu raze concentrice ----------
   Cardul nu mai stă plat pe fundal: e un miez alb așezat într-o tavă,
   cu un fir de lumină pe muchia de sus. */
#units > article[data-unit],
.ch-marq-track > a{
  position:relative;
  box-shadow:
    0 1px 0 rgba(255,255,255,.9) inset,          /* muchie luminată */
    0 1px 2px rgba(23,19,15,.04),
    0 12px 28px -14px rgba(23,19,15,.16);        /* umbră difuză, nu dură */
  transition:transform .7s var(--ease-soft), box-shadow .7s var(--ease-soft);
}
#units > article[data-unit]::before,
.ch-marq-track > a::before{
  content:"";position:absolute;inset:-6px;border-radius:30px;z-index:-1;
  background:rgba(23,19,15,.035);
  box-shadow:0 0 0 1px rgba(23,19,15,.05) inset;   /* fir de păr, nu bordură gri */
  opacity:0;transition:opacity .7s var(--ease-soft);
}
#units > article[data-unit]:hover,
.ch-marq-track > a:hover{
  transform:translateY(-3px);
  box-shadow:
    0 1px 0 rgba(255,255,255,.9) inset,
    0 2px 4px rgba(23,19,15,.05),
    0 26px 50px -20px rgba(23,19,15,.24);
}
#units > article[data-unit]:hover::before,
.ch-marq-track > a:hover::before{opacity:1}

/* ---------- Butoane: fizică de apăsare + pastila interioară a săgeții ---------- */
.ch-cta{
  position:relative;isolation:isolate;
  transition:transform .5s var(--ease-press), background .45s var(--ease-press),
             box-shadow .5s var(--ease-press);
}
.ch-cta:active{transform:scale(.978)}
.ch-cta__ico{
  display:inline-flex;align-items:center;justify-content:center;
  width:30px;height:30px;border-radius:999px;flex:0 0 auto;
  background:#AF3E24;color:#fff;                      /* pastila de accent */
  transition:transform .55s var(--ease-soft), background .45s var(--ease-press);
}
.ch-cta:hover .ch-cta__ico{
  transform:translate3d(3px,-1px,0) scale(1.06);
  background:#96341E;                                  /* o treaptă mai adânc */
}
/* pe fundal deja cărămiziu, accentul ar dispărea -> pastilă albă translucidă */
.ch-cta--onAccent .ch-cta__ico{background:rgba(255,255,255,.18);color:#fff}
.ch-cta--onAccent:hover .ch-cta__ico{background:rgba(255,255,255,.28)}

/* ---------- Zone de atins pentru punctele sliderului (bara are 4px) ---------- */
[data-dot]{position:relative}
[data-dot]::before{content:"";position:absolute;left:-6px;right:-6px;top:-20px;bottom:-20px}

/* ---------- Focus vizibil, în tonul mărcii ---------- */
:focus-visible{outline:none;box-shadow:var(--ring);border-radius:999px}
#units > article a:focus-visible,
.modal a:focus-visible{border-radius:14px}

/* ---------- Meniul mobil: linkurile intră în cascadă ---------- */
#modal-meniu[open] nav a{
  opacity:0;transform:translateY(14px);
  animation:ch-stag .62s var(--ease-soft) forwards;
}
@keyframes ch-stag{to{opacity:1;transform:none}}
#modal-meniu[open] nav a:nth-child(1){animation-delay:.04s}
#modal-meniu[open] nav a:nth-child(2){animation-delay:.08s}
#modal-meniu[open] nav a:nth-child(3){animation-delay:.12s}
#modal-meniu[open] nav a:nth-child(4){animation-delay:.16s}
#modal-meniu[open] nav a:nth-child(5){animation-delay:.20s}
#modal-meniu[open] nav a:nth-child(6){animation-delay:.24s}
#modal-meniu[open] nav a:nth-child(n+7){animation-delay:.28s}
@media (prefers-reduced-motion:reduce){
  #modal-meniu[open] nav a{animation:none;opacity:1;transform:none}
}

/* ---------- Cardul de apartament: clickabil pe toată suprafața ----------
   Nu putem imbrica linkuri, așa că linkul principal își extinde zona de click
   peste tot cardul, iar butonul planului rămâne deasupra. */
#units > article[data-unit]{position:relative;cursor:pointer}
/* linkul care acoperă cardul e în markup; aici doar starea vizuală */
#units > article[data-unit]:hover .ch-cta{background:#17130F;color:#fff}
#units > article[data-unit] .ch-cta{
  transition:background .45s var(--ease-press), color .45s var(--ease-press),
             transform .5s var(--ease-press);
}
/* ridicarea la hover e definită mai sus (translateY -3px); o accentuăm ușor
   acum că întregul card e o țintă de click */
#units > article[data-unit]:hover{transform:translateY(-4px)}
#units > article[data-unit]:active{transform:translateY(-1px)}
#units > article[data-unit]:focus-within{box-shadow:var(--ring)}
@media (prefers-reduced-motion:reduce){
  #units > article[data-unit]:hover{transform:none}
}

/* ---------- CTA-ul final de pe home: cardul de apel + cardurile de contact ----------
   Fundalul secțiunii e cel de la bannerul din /modalitati-de-plata (bază închisă
   + două radiale calde). Săgeata se rotește la hover pe TOATĂ secțiunea, nu doar pe card. */
.ch-callCard{
  all:unset; box-sizing:border-box; cursor:pointer; display:flex; flex-direction:column;
  justify-content:space-between; gap:clamp(38px,6vw,64px);
  background:var(--c-accent); color:#fff; border-radius:var(--r-lg);
  padding:clamp(22px,2.4vw,30px); min-height:clamp(210px,22vw,268px);
  transition:transform .5s var(--ease-press), background .45s var(--ease-press),
             box-shadow .5s var(--ease-press);
}
.ch-callCard:hover{background:var(--c-accent-hover);transform:translateY(-3px);
  box-shadow:0 30px 60px -34px rgba(0,0,0,.55)}
.ch-callCard:active{transform:translateY(-1px) scale(.99)}
.ch-callCard__top,.ch-callCard__bot{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-sm)}
.ch-callCard__bot{align-items:flex-end}
.ch-callCard__lbl{font-size:clamp(15px,1.1vw,17px);color:rgba(255,255,255,.92)}
.ch-callCard__ttl{font-family:'Familjen Grotesk',sans-serif;font-weight:600;
  font-size:clamp(22px,2.3vw,30px);letter-spacing:-.03em;line-height:1.12}
.ch-callCard__ico{
  flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;
  width:clamp(40px,3.4vw,50px);height:clamp(40px,3.4vw,50px);
  border-radius:999px;border:1.5px solid rgba(255,255,255,.85);
  font-size:clamp(17px,1.5vw,21px);line-height:1;
  transition:transform .55s var(--ease-soft), background .45s var(--ease-press);
}
/* rotația cerută: pornește de la hover pe secțiune */
.ch-callCard:hover .ch-callCard__ico{transform:rotate(45deg);background:rgba(255,255,255,.16)}

/* cele trei poze de agenți, suprapuse ca în direcție */
.ch-agentDots{display:flex;flex:0 0 auto}
.ch-agentDots img{
  width:clamp(46px,4vw,58px);height:clamp(46px,4vw,58px);
  border-radius:50%;object-fit:cover;display:block;
  border:2px solid var(--c-accent);
  transition:border-color .45s var(--ease-press), transform .5s var(--ease-soft);
}
.ch-agentDots img + img{margin-left:clamp(-18px,-1.4vw,-14px)}
.ch-callCard:hover .ch-agentDots img{border-color:var(--c-accent-hover)}
.ch-callCard:hover .ch-agentDots img:first-child{transform:translateX(-4px)}
.ch-callCard:hover .ch-agentDots img:last-child{transform:translateX(4px)}

.ch-infoCard{
  display:block;background:var(--c-on-dark-fill);border:1px solid var(--c-on-dark-line);
  border-radius:var(--r-lg);padding:clamp(18px,2vw,24px);color:#fff;
  transition:background .45s var(--ease-press), border-color .45s var(--ease-press);
}
a.ch-infoCard:hover{background:rgba(255,255,255,.13);border-color:rgba(255,255,255,.3)}
.ch-infoCard__lbl{display:block;font-size:13.5px;color:var(--c-on-dark-mute);margin-bottom:8px}
.ch-infoCard__val{display:block;font-weight:400;font-size:clamp(15.5px,1.25vw,18px);
  line-height:1.45;color:#fff;overflow-wrap:anywhere}

@media (prefers-reduced-motion:reduce){
  .ch-callCard:hover,.ch-callCard:active{transform:none}
  .ch-callCard:hover .ch-callCard__ico{transform:none}
  .ch-callCard:hover .ch-agentDots img{transform:none}
}

/* ---------- Hover real pe butoane ----------
   Markup-ul portat folosea un atribut `style-hover="…"`, care nu e HTML și nu e citit
   de niciun script: practic butoanele n-aveau hover deloc. Stilurile sunt inline,
   deci singura cale de a le depăși dintr-o foaie de stil e !important. */

/* primar cărămiziu */
a[style*="background:#AF3E24"]:hover,
button[style*="background:#AF3E24"]:hover{ background:var(--c-accent-hover) !important; color:#fff !important; }

/* secundar deschis (pe fundal crem) */
a[style*="background:#F4F2ED"]:hover,
button[style*="background:#F4F2ED"]:hover,
.ch-cta--light:hover{ background:#E7E1D6 !important; }

/* secundar transparent, pe fundal închis */
a[style*="background:rgba(255,255,255,.14)"]:hover,
button[style*="background:rgba(255,255,255,.14)"]:hover,
a[style*="background:rgba(255,255,255,.12)"]:hover,
button[style*="background:rgba(255,255,255,.12)"]:hover{
  background:rgba(255,255,255,.26) !important; border-color:rgba(255,255,255,.42) !important;
}

/* butoane întunecate (ex. „Vezi toate apartamentele") */
a[style*="background:#17130F"]:hover,
button[style*="background:#17130F"]:hover{ background:#2A231C !important; }

/* săgețile de carusel, pe alb translucid */
button[style*="background:rgba(255,255,255,.92)"]:hover{ background:#fff !important; }

/* toate primesc aceeași fizică de apăsare ca .ch-cta */
a[style*="background:#AF3E24"],button[style*="background:#AF3E24"],
a[style*="background:#F4F2ED"],button[style*="background:#F4F2ED"],
a[style*="background:#17130F"],button[style*="background:#17130F"],
a[style*="background:rgba(255,255,255,.14)"],button[style*="background:rgba(255,255,255,.14)"]{
  transition:background .45s var(--ease-press), color .45s var(--ease-press),
             border-color .45s var(--ease-press), transform .5s var(--ease-press);
}

/* chip-urile de filtrare: feedback la hover pe cele neselectate */
[data-chip][aria-pressed="false"]:hover{ background:#DCD4C6 !important; }

@media (prefers-reduced-motion:reduce){
  a[style*="background:#AF3E24"],button[style*="background:#AF3E24"]{transition:none}
}

/* ---------- Popup-uri: centrare + intrare ----------
   `base.css` are `* { margin: 0 }`, care calcă peste `margin:auto` din foaia de stil a
   browserului pentru <dialog>. Cu `inset:0` și `margin:0`, dialogul se lipea în colțul
   din stânga-sus. Homepage-ul nu încarcă base.css, de-aia acolo părea în regulă. */
.modal, dialog.modal { margin: auto; }

@keyframes ch-pop-in {
  from { opacity: 0; transform: translateY(22px) scale(.985); }
  to   { opacity: 1; transform: none; }
}
@keyframes ch-backdrop-in { from { opacity: 0 } to { opacity: 1 } }

dialog.modal[open]            { animation: ch-pop-in .42s var(--ease-soft) both; }
dialog.modal[open]::backdrop  { animation: ch-backdrop-in .42s ease both; }
/* lightbox-ul planurilor e un <div>, nu un <dialog>, dar primește aceeași intrare */
#ch-lb[style*="flex"]         { animation: ch-pop-in .42s var(--ease-soft) both; }

@media (prefers-reduced-motion: reduce) {
  dialog.modal[open], dialog.modal[open]::backdrop, #ch-lb[style*="flex"] { animation: none; }
}

/* ---------- Banda de carduri: efectul de hover nu mai e tăiat ----------
   `.ch-marq` are nevoie de overflow:hidden pentru bandă, dar asta reteza ridicarea
   de 3px și umbra difuză de la hover. Facem loc pe verticală înăuntrul zonei tăiate
   și scoatem exact atât din margin, ca poziția în pagină să rămână neschimbată.
   (Masca e un gradient orizontal, deci nu e afectată.) */
.ch-marq{ padding-block:44px; margin-block:-44px; }

/* ---------- Formulare: spațiere dublată ----------
   `.form` are deja `gap:13px`, dar fiecare `.field` mai adăuga inline
   `margin-top:var(--sp-sm)` (16px) — 29px între câmpuri în loc de 13.
   Toate cele 60 de apariții sunt înăuntrul unui `.form`, deci o regulă le acoperă;
   `!important` e necesar fiindcă stilurile sunt inline. */
.form .field{ margin-top:0 !important; }

/* Paragrafele de eroare ocupau spațiu și când erau goale, împingând butonul în jos. */
.form [role="alert"]:empty{ display:none; }

/* Butonul de trimitere: 24px peste gap-ul de 13 era prea mult; îl aducem la 8. */
.form > button[type="submit"], .form button.ch-cta[type="submit"]{ margin-top:8px !important; }

/* ---------- Planul ansamblului cu puncte pe blocuri (/disponibilitati-apartamente-iasi/) ---- */
.ch-plan{ position:relative; border-radius:var(--r-lg); overflow:hidden; background:#EFEBE3; }
.ch-plan > img{ display:block; width:100%; height:auto; }

.ch-plan__pin{ position:absolute; transform:translate(-50%,-50%); z-index:2; }
/* punctul activ trece peste vecini, altfel etichetele lor cad peste tooltip */
.ch-plan__pin:hover, .ch-plan__pin:focus-within, .ch-plan__pin.is-open{ z-index:20; }

.ch-plan__lbl{
  all:unset; box-sizing:border-box; cursor:pointer;
  display:grid; place-items:center; min-width:38px; height:26px; padding:0 9px;
  border-radius:999px; font-size:12.5px; font-weight:600; letter-spacing:.01em;
  font-family:inherit; color:#fff; background:#8C8377; border:1.5px solid rgba(255,255,255,.9);
  box-shadow:0 4px 14px rgba(23,19,15,.32); position:relative; z-index:1;
  transition:transform .45s var(--ease-press), background .45s var(--ease-press);
}
.ch-plan__pin.is-available .ch-plan__lbl{ background:#2C5730; }
.ch-plan__pin.is-reserved  .ch-plan__lbl{ background:#8A6A16; }
/* „Indisponibil momentan": neutru, cu contur punctat. Roșul se citea ca „vândut",
   deși blocul doar nu e încă scos la vânzare; griul plin rămâne pentru stoc epuizat. */
.ch-plan__pin.is-soon      .ch-plan__lbl{ background:rgba(255,255,255,.94); color:#17130F; border:1.5px dashed #17130F; box-shadow:0 4px 14px rgba(23,19,15,.2); }
.ch-plan__pin:hover .ch-plan__lbl, .ch-plan__lbl:focus-visible{ transform:scale(1.14); }

.ch-plan__pin.is-available .ch-plan__lbl::before{
  content:""; position:absolute; inset:-2px; border-radius:999px; background:#2C5730;
  opacity:.45; z-index:-1; animation:ch-plan-puls 2.6s ease-out infinite;
}
@keyframes ch-plan-puls{ 0%{transform:scale(1);opacity:.45} 70%{transform:scale(2.3);opacity:0} 100%{opacity:0} }

.ch-plan__tip{
  position:absolute; bottom:calc(100% + 12px); left:50%; transform:translate(-50%,6px);
  width:max-content; max-width:250px; display:grid; gap:5px; text-align:left;
  background:#fff; color:#17130F; border-radius:16px; padding:14px 16px;
  box-shadow:0 18px 44px -18px rgba(23,19,15,.45);
  opacity:0; visibility:hidden; pointer-events:none; z-index:2;
  transition:opacity .3s var(--ease-soft), transform .3s var(--ease-soft), visibility .3s;
}
/* punte invizibilă peste golul de 12px: fără ea, mouse-ul care pleacă spre link
   iese de pe punct și tooltipul se închide înainte să ajungă la el */
.ch-plan__tip::after{ content:""; position:absolute; left:0; right:0; top:100%; height:14px; }
.ch-plan__pin[data-tip-jos] .ch-plan__tip::after{ top:auto; bottom:100%; }

.ch-plan__pin:hover .ch-plan__tip,
.ch-plan__pin:focus-within .ch-plan__tip,
.ch-plan__pin.is-open .ch-plan__tip{
  opacity:1; visibility:visible; pointer-events:auto; transform:translate(-50%,0);
}
.ch-plan__tip b{ font-family:'Familjen Grotesk',sans-serif; font-size:16px; font-weight:600; letter-spacing:-.02em; }
.ch-plan__badge{ justify-self:start; font-size:12.5px; font-weight:500; padding:4px 10px; border-radius:999px; background:#F4F2ED; color:#6E675F; }
.ch-plan__pin.is-available .ch-plan__badge{ background:#E4EFE4; color:#2C5730; }
.ch-plan__pin.is-reserved  .ch-plan__badge{ background:#FBF0D9; color:#8A6A16; }
.ch-plan__desc{ font-size:13px; line-height:1.45; color:#6E675F; }
.ch-plan__cta{ font-size:13px; font-weight:500; color:#AF3E24; display:inline-flex; gap:5px; align-items:center; width:fit-content; }
.ch-plan__cta:hover{ text-decoration:underline; text-underline-offset:3px; }

.ch-plan__pin[data-tip-jos] .ch-plan__tip{ bottom:auto; top:calc(100% + 12px); transform:translate(-50%,-6px); }
.ch-plan__pin[data-tip-jos]:hover .ch-plan__tip,
.ch-plan__pin[data-tip-jos]:focus-within .ch-plan__tip,
.ch-plan__pin[data-tip-jos].is-open .ch-plan__tip{ transform:translate(-50%,0); }

@media (max-width:700px){
  .ch-plan__lbl{ min-width:32px; height:22px; font-size:11px; padding:0 7px; }
  .ch-plan__tip{ max-width:200px; padding:11px 13px; }
}
@media (prefers-reduced-motion:reduce){
  .ch-plan__pin.is-available .ch-plan__lbl::before{ animation:none; }
  .ch-plan__pin:hover .ch-plan__lbl{ transform:none; }
}

/* ---------- Padding dublat între secțiuni consecutive ----------
   Fiecare secțiune își pune singură spațiu sus și jos. Când două secțiuni cu
   ACELAȘI fundal se succed, golul se dublează (82+82 = 164px). Secțiunile colorate
   își declară fundalul inline, deci `:not([style*="background"])` izolează exact
   perechile transparente — acolo unde dublarea se vede ca gol, nu ca separare. */
/* Se colapsează DOAR când secțiunea de dinainte chiar are padding jos complet
   (`padding-block:var(--sp-section)` cu o singură valoare, fie urmat de ";", fie la finalul
   atributului). Varianta anterioară tăia și acolo unde fundul era deja 0, lipind secțiunile. */
/* O secțiune își poate picta fundalul și fără `background` inline: prin `<img aria-hidden>`
   întins pe toată suprafața. Aceea e o suprafață proprie, nu un gol — deci NU i se taie
   padding-ul de sus (altfel textul se lipea de marginea fotografiei). */
section[style*="padding-block:var(--sp-section);"]:not([style*="background"]) + section:not([style*="background"]):not(:has(> img[aria-hidden="true"])),
section[style$="padding-block:var(--sp-section)"]:not([style*="background"]) + section:not([style*="background"]):not(:has(> img[aria-hidden="true"])){ padding-top:0 !important; }

/* ---------- /etape: randările pe etape ----------
   Toate cele 7 randări stau suprapuse în același cadru; se schimbă doar opacitatea,
   ca trecerea între etape să nu miște layoutul și să nu reîncarce imaginea. */
.ch-etape{ display:grid; gap:var(--sp-sm); }
.ch-etape__vizual{
  position:relative; aspect-ratio:1/1; border-radius:var(--r-lg); overflow:hidden;
  background:#fff; max-width:760px; margin-inline:auto; width:100%;
}
.ch-etape__img{
  position:absolute; inset:0; width:100%; height:100%; object-fit:contain;
  opacity:0; transition:opacity .45s var(--ease-soft);
}
.ch-etape__img.is-activ{ opacity:1; }

.ch-etape__tabs{ display:flex; flex-wrap:wrap; gap:var(--sp-2xs); justify-content:center; }
.ch-etape__tab{
  all:unset; box-sizing:border-box; cursor:pointer; font-family:inherit;
  padding:10px 18px; border-radius:999px; font-size:14px; font-weight:500;
  background:#E7E1D6; color:#17130F; white-space:nowrap;
  transition:background .45s var(--ease-press), color .45s var(--ease-press);
}
.ch-etape__tab:hover{ background:#DCD4C6; }
.ch-etape__tab.is-activ{ background:#17130F; color:#fff; }
.ch-etape__tab:focus-visible{ box-shadow:var(--ring); }
@media (prefers-reduced-motion:reduce){ .ch-etape__img{ transition:none; } }

/* ---------- Slidere: fără chenarul implicit al browserului ----------
   Erau `input[type=range]` nestilizate, deci cu pista scobită și bordură de sistem. */
input[type="range"]{
  -webkit-appearance:none; appearance:none; width:100%; height:22px;
  background:transparent; border:0; margin:0; cursor:pointer;
}
input[type="range"]::-webkit-slider-runnable-track{
  height:4px; border-radius:999px; border:0;
  background:linear-gradient(#DCD4C6,#DCD4C6);
}
input[type="range"]::-moz-range-track{ height:4px; border-radius:999px; border:0; background:#DCD4C6; }
input[type="range"]::-moz-range-progress{ height:4px; border-radius:999px; background:var(--c-accent); }
input[type="range"]::-webkit-slider-thumb{
  -webkit-appearance:none; appearance:none; width:18px; height:18px; margin-top:-7px;
  border-radius:50%; background:var(--c-accent); border:2px solid #fff;
  box-shadow:0 2px 8px rgba(23,19,15,.28);
  transition:transform .3s var(--ease-press);
}
input[type="range"]::-moz-range-thumb{
  width:18px; height:18px; border-radius:50%; background:var(--c-accent);
  border:2px solid #fff; box-shadow:0 2px 8px rgba(23,19,15,.28);
}
input[type="range"]:hover::-webkit-slider-thumb{ transform:scale(1.12); }
input[type="range"]:focus-visible::-webkit-slider-thumb{ box-shadow:var(--ring); }
/* pe fundal închis pista trebuie să se vadă */
[style*="background:#17130F"] input[type="range"]::-webkit-slider-runnable-track,
[style*="background:#171310"] input[type="range"]::-webkit-slider-runnable-track{
  background:linear-gradient(rgba(255,255,255,.22),rgba(255,255,255,.22));
}

/* ---------- Temă închisă pe pagină (folosită de /invest, ca pe site-ul vechi) ----------
   Vechiul avea `body{background:#2C0A00}`. Stilurile paginii sunt inline, deci
   răsturnarea paletei are nevoie de !important; ținem totul într-un singur bloc. */
body[data-tema="dark"]{ background:#2C0A00 !important; color:rgba(255,255,255,.86); }
body[data-tema="dark"] h1,
body[data-tema="dark"] h2,
body[data-tema="dark"] h3,
body[data-tema="dark"] h4,
body[data-tema="dark"] b,
body[data-tema="dark"] strong{ color:#fff !important; }
body[data-tema="dark"] p,
body[data-tema="dark"] li,
body[data-tema="dark"] span:not(.ch-cta__ico){ color:rgba(255,255,255,.78); }

/* suprafețele deschise devin translucide pe fundalul închis */
body[data-tema="dark"] [style*="background:#fff"],
body[data-tema="dark"] [style*="background:#F4F2ED"],
body[data-tema="dark"] [style*="background:#EFEBE3"],
body[data-tema="dark"] [style*="background:#E7E1D6"]{
  background:rgba(255,255,255,.07) !important;
  border:1px solid rgba(255,255,255,.14);
  color:rgba(255,255,255,.86) !important;
}
/* secțiunile care erau deja închise se topesc în fundal */
body[data-tema="dark"] section[style*="background:#17130F"],
body[data-tema="dark"] section[style*="background:#171310"]{ background:transparent !important; }
/* eticheta de secțiune și textul secundar */
body[data-tema="dark"] [style*="color:#6E675F"]{ color:rgba(255,255,255,.6) !important; }
body[data-tema="dark"] [style*="color:#17130F"]{ color:#fff !important; }
/* butonul secundar deschis nu se mai vede pe închis */
body[data-tema="dark"] .ch-cta--light{ background:rgba(255,255,255,.12) !important; color:#fff !important; }
body[data-tema="dark"] .ch-cta--light:hover{ background:rgba(255,255,255,.2) !important; }

/* ---------- .ch-cta ca element complet ----------
   Clasa adăuga doar tranziții; forma butonului venea din stiluri inline, prezente pe 42
   de butoane și lipsă pe 55 (pe /diaspora, /invest, /oferte etc. rămâneau text gol lângă
   o pastilă). Definim aici forma completă; unde există stil inline, acela câștigă oricum. */
.ch-cta{
  display:inline-flex; align-items:center; justify-content:space-between; gap:var(--sp-xs);
  padding:8px 8px 8px 26px; border-radius:999px; border:0; cursor:pointer;
  font-family:inherit; font-size:15px; font-weight:500; line-height:1.6;
  background:var(--c-accent); color:#fff; text-decoration:none; width:fit-content;
}
.ch-cta--light{ background:#F4F2ED; color:#17130F; }
.ch-cta--onAccent{ background:transparent; }
/* pastila săgeții: puțin mai mică și mai depărtată de text */
.ch-cta__ico{ width:34px; height:34px; font-size:15px; }
.ch-cta--light .ch-cta__ico{ background:var(--c-accent); color:#fff; }

/* ---------- Carusel de câte 3 carduri (pașii de pe /diaspora) ---------- */
.ch-pasi{ position:relative; }
.ch-pasi__track{
  display:grid; grid-auto-flow:column; grid-auto-columns:calc((100% - 2 * var(--sp-sm)) / 3);
  gap:var(--sp-sm); overflow-x:auto; scroll-snap-type:x mandatory;
  scrollbar-width:none; -ms-overflow-style:none; padding-bottom:4px;
}
.ch-pasi__track::-webkit-scrollbar{ display:none; }
.ch-pasi__track > *{ scroll-snap-align:start; }
.ch-pasi__nav{ display:flex; gap:var(--sp-2xs); justify-content:flex-end; margin-top:var(--sp-sm); }
.ch-pasi__btn{
  all:unset; box-sizing:border-box; cursor:pointer; width:42px; height:42px; border-radius:50%;
  display:grid; place-items:center; font-size:17px; background:#fff; color:#17130F;
  box-shadow:0 2px 12px rgba(23,19,15,.14);
  transition:background .45s var(--ease-press), opacity .3s ease;
}
.ch-pasi__btn:hover{ background:#F4F2ED; }
.ch-pasi__btn[disabled]{ opacity:.35; cursor:default; }
@media (max-width:900px){ .ch-pasi__track{ grid-auto-columns:calc((100% - var(--sp-sm)) / 2); } }
@media (max-width:600px){ .ch-pasi__track{ grid-auto-columns:88%; } }

/* ---------- Pill-ul „Ofertele lunii" din navigație ----------
   Peste hero, headerul e transparent pe fotografie: conturul cărămiziu abia se vedea.
   Cât timp nu s-a derulat (`#ch-hdr` fără `data-stuck`) pill-ul e deschis; după derulare
   trece pe cărămiziu. Pe paginile interioare headerul e deschis din start, deci
   `body[data-hdr="solid"]` îl ține cărămiziu de la început. */
#ch-navlinks a[href="/oferte/"]{
  border-color:rgba(255,255,255,.55) !important; color:#fff !important;
  transition:background .45s var(--ease-press), color .45s var(--ease-press), border-color .45s var(--ease-press);
}
#ch-hdr[data-stuck] #ch-navlinks a[href="/oferte/"],
body[data-hdr="solid"] #ch-navlinks a[href="/oferte/"]{
  border-color:#AF3E24 !important; color:#AF3E24 !important;
}
#ch-navlinks a[href="/oferte/"]:hover,
#ch-hdr[data-stuck] #ch-navlinks a[href="/oferte/"]:hover,
body[data-hdr="solid"] #ch-navlinks a[href="/oferte/"]:hover{
  background:#AF3E24 !important; color:#fff !important; border-color:#AF3E24 !important;
}

/* ---------- Mobil: header și bara fixă ----------
   Pe 375px butonul din header ieșea 119px în afara ecranului, iar în bara fixă al doilea
   buton era strivit la 94px pentru un text de 127px. Meniul burger conține deja ambele
   acțiuni, deci pe ecrane mici butonul din header dispare, iar butoanele din bară împart
   lățimea egal, cu text mai mic. */
@media (max-width:640px){
  #ch-hdr a[href$="#contact"],
  #ch-hdr button[data-open-modal="vizionare"]{ display:none !important; }
  #ch-hdr > div{ gap:var(--sp-xs) !important; }
}
@media (max-width:600px){
  #ch-bar > div{ gap:6px !important; padding-inline:0 !important; }
  #ch-bar a, #ch-bar button{
    flex:1 1 0 !important; min-width:0 !important;
    padding:12px 8px !important; font-size:13.5px !important;
    white-space:normal !important; text-align:center; line-height:1.25;
  }
}

/* pe mobil titlurile lungi nu mai sunt limitate la o coloană îngustă */
@media (max-width:700px){
  #contact h2, #contact p{ max-width:none !important; }
}

/* ---------- Acordeoane: indicatorul +/− ----------
   Markup-ul portat marca indicatorul cu `style-after="content:'+'…"`, atribut care nu
   există în HTML și pe care nu-l citește nimic — deci acordeoanele n-aveau niciun semn.
   Îl redăm din CSS și îl rotim la deschidere. */
details > summary{ list-style:none; }
details > summary::-webkit-details-marker{ display:none; }
details > summary::after{
  content:"+"; position:absolute; right:24px; top:50%; transform:translateY(-50%);
  font-size:26px; font-weight:400; color:#AF3E24; line-height:1;
  transition:transform .4s var(--ease-soft);
}
details[open] > summary::after{ transform:translateY(-50%) rotate(45deg); }

/* ---------- Meniul de pe mobil ----------
   Varianta portată era o listă plată cu linii despărțitoare între TOATE elementele și cu
   nivelul secundar doar indentat — de aici senzația de meniu vechi. Aici: fără linii,
   nivelul principal mai apăsat, nivelul secundar strâns în dropdown-uri, butonul „Ofertele
   lunii" identic cu pilula din header (înaintea celui de programare) și consultanții direct
   în josul panoului, nu ascunși după încă un buton. */
.ch-mnav{ display:grid; margin-top:6px; }
.ch-mnav > a,
.ch-mnav summary{
  display:block; padding:13px 2px; font-size:19px; font-weight:500; color:#17130F;
  letter-spacing:-.015em; border:0;
}
.ch-mnav summary{ position:relative; cursor:pointer; list-style:none; padding-right:34px; }
.ch-mnav summary::-webkit-details-marker{ display:none; }
.ch-mnav summary::after{
  content:""; position:absolute; right:6px; top:50%; width:9px; height:9px;
  border-right:2px solid #AF3E24; border-bottom:2px solid #AF3E24; border-radius:1px;
  transform:translateY(-70%) rotate(45deg); transition:transform .3s var(--ease-soft);
}
.ch-mnav details[open] > summary::after{ transform:translateY(-25%) rotate(-135deg); }
.ch-mnav__sub{ display:grid; padding:2px 0 10px 2px; }
.ch-mnav__sub a{ display:block; padding:9px 2px; font-size:15.5px; color:#6E675F; border:0; }
.ch-mnav__sub a:hover, .ch-mnav > a:hover, .ch-mnav summary:hover{ color:#AF3E24; }

.ch-mnav__cta{ display:grid; gap:10px; margin-top:20px; }
.ch-mnav__oferte{
  display:inline-flex; align-items:center; justify-content:center; gap:8px;
  padding:14px 20px; border-radius:999px; border:1px solid #AF3E24; background:transparent;
  color:#AF3E24; font-size:15px; font-weight:500;
  transition:background .45s var(--ease-soft), color .45s var(--ease-soft);
}
.ch-mnav__oferte:hover{ background:#AF3E24; color:#fff; }
.ch-mnav__prog{
  all:unset; box-sizing:border-box; cursor:pointer; display:flex; align-items:center;
  justify-content:center; padding:15px 20px; border-radius:999px; background:#AF3E24;
  color:#fff; font-size:15px; font-weight:500;
  transition:background .45s var(--ease-soft);
}
.ch-mnav__prog:hover{ background:#96331d; }
.ch-mnav__agenti{ margin-top:26px; }
.ch-mnav__agenti > p{
  font-size:12px; font-weight:500; letter-spacing:.18em; text-transform:uppercase;
  color:#6E675F; margin-bottom:12px;
}

/* ---------- Butonul de închidere al modalelor ----------
   `.modal__close` e absolut, dar vine ÎNAINTEA conținutului în markup și n-avea z-index —
   deci în meniul de pe mobil primul link („Apartamente"), fiind pe toată lățimea, se desena
   peste el și prindea click-ul: apăsai pe X și navigai la /apartamentele-noastre/.
   Îl ridicăm deasupra și, separat, coborâm meniul sub el ca zonele să nu se mai intersecteze. */
.modal__close{ z-index:5; }
.ch-mnav{ margin-top:30px; }

/* ---------- Plan 3D care plutește (/invest) ----------
   PNG-ul e transparent (paletă + tRNS, iar variantele .webp generate păstrează alfa), deci
   planul stă direct pe fundalul secțiunii, fără ramă. Rama anterioară avea `overflow:hidden`,
   ceea ce ar fi tăiat mișcarea — de aceea a fost scoasă, nu doar golită de fundal. */
.ch-float{
  animation:ch-plutire 4.4s ease-in-out infinite; will-change:transform;
  /* Umbra urmărește silueta PNG-ului transparent, nu o cutie dreptunghiulară — de aceea
     `drop-shadow` și nu `box-shadow`. Se mișcă odată cu planul, deci pare că plutește. */
  filter:drop-shadow(0 26px 26px rgba(23,19,15,.30)) drop-shadow(0 6px 8px rgba(23,19,15,.16));
}
@keyframes ch-plutire{
  0%, 100% { transform:translateY(0); }
  50%      { transform:translateY(-14px); }
}
@media (prefers-reduced-motion:reduce){
  .ch-float{ animation:none; }
}



/* ------------------------------------------------------------------
   Banda de miniaturi a caruselelor.

   Miniaturile stăteau toate pe ecran, într-o grilă care se rupea pe mai multe rânduri
   (galeria foto ajungea la 35 de pătrățele). Acum sunt o bandă orizontală din care se
   văd patru odată; săgețile de paginare le pune main.js, ca markup-ul din PHP să rămână
   o simplă listă de butoane.

   `display` are !important pentru că fiecare pagină își scrie grila în atributul style
   inline, iar acela ar bate o regulă obișnuită de aici. Restul proprietăților nu există
   inline, deci se aplică normal. `padding` plus `margin` negativ lasă loc conturului
   miniaturii active (outline la offset 2px), care altfel s-ar tăia la marginea benzii.
   ------------------------------------------------------------------ */
[data-mini-track]{
  display:flex!important;
  position:relative;
  overflow-x:auto;
  overflow-y:hidden;
  padding:4px;
  margin:-4px;
  scrollbar-width:none;
  -ms-overflow-style:none;
}
[data-mini-track]::-webkit-scrollbar{ display:none; }
/* `flex` are !important din același motiv ca `display` de mai sus, dar agravat: butoanele
   miniaturilor încep cu `all:unset` în atributul style, care șterge inline orice `flex`
   venit dintr-un fișier CSS. Fără !important miniaturile s-ar înghesui toate pe o linie. */
[data-mini-track] > [data-goto]{ flex:0 0 calc((100% - 24px) / 4)!important; min-width:0; }

/* Învelișul și săgețile, create din JS doar când banda chiar depășește ecranul. */
.ch-mini{ position:relative; }
.ch-mini__nav{
  all:unset;
  cursor:pointer;
  position:absolute;
  top:50%;
  transform:translateY(-50%);
  width:30px;
  height:30px;
  border-radius:50%;
  background:rgba(255,255,255,.94);
  color:#17130F;
  display:flex;
  align-items:center;
  justify-content:center;
  font-size:15px;
  box-shadow:0 2px 10px rgba(23,19,15,.18);
  transition:opacity .25s;
  z-index:2;
}
.ch-mini__nav--prev{ left:-6px; }
.ch-mini__nav--next{ right:-6px; }
.ch-mini__nav[disabled]{ opacity:.35; cursor:default; }


/* ======================= Runda 15 sept. 2026 ======================= */

/* ---------- Butoane secundare deschise: o treaptă mai închise ----------
   #F4F2ED era exact culoarea secțiunilor crem, deci pe /disponibilitati, /stadiul-lucrarilor
   și în cardurile de pe crem butonul părea transparent. Stilurile sunt inline, deci doar
   !important le bate; pe temă închisă regula `body[data-tema="dark"]` e mai specifică și câștigă. */
.ch-cta--light{ background:#EAE5DC !important; }
.ch-cta--light:hover{ background:#DED6C9 !important; }

/* ---------- Plan: legenda și rândul de sub plan ----------
   Un singur card alb, o coloană pe stare (despărțite de linii), cu numărul de blocuri în dreapta;
   sub el, nota de actualizare în stânga și butoanele în dreapta, pe același rând. */
.ch-planLeg{
  list-style:none; margin:var(--sp-sm) 0 0; padding:0; background:#fff; border-radius:20px;
  display:grid; grid-template-columns:repeat(var(--n,3),minmax(0,1fr));
}
.ch-planLeg li{
  display:grid; grid-template-columns:12px 1fr auto; column-gap:12px; align-items:start;
  padding:18px 22px;
}
.ch-planLeg li + li{ border-left:1px solid #EDE8DF; }
.ch-planLeg i{ width:12px; height:12px; margin-top:5px; border-radius:50%; background:#8C8377; box-sizing:border-box; }
.ch-planLeg .is-available i{ background:#2C5730; }
.ch-planLeg .is-reserved  i{ background:#8A6A16; }
.ch-planLeg .is-soon      i{ background:#fff; border:1.5px dashed #17130F; }
.ch-planLeg__t{ display:grid; gap:3px; min-width:0; }
.ch-planLeg__t b{ font-size:15px; font-weight:500; color:#17130F; line-height:1.35; }
.ch-planLeg__t span{ font-size:13.5px; line-height:1.4; color:#6E675F; }
.ch-planLeg em{ font-style:normal; font-size:12.5px; color:#6E675F; white-space:nowrap; line-height:1.35; padding-top:1px; }
.ch-planLeg em b{ font-family:'Familjen Grotesk',sans-serif; font-size:17px; font-weight:600; letter-spacing:-.02em; color:#17130F; }

.ch-planFoot{
  display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between;
  gap:var(--sp-sm) var(--sp-md); margin-top:var(--sp-md);
}
.ch-planFoot__note{ margin:0; font-size:13.5px; line-height:1.5; color:#6E675F; max-width:64ch; }
.ch-planFoot__note::before{
  content:""; display:inline-block; width:7px; height:7px; margin:0 9px 1px 0; border-radius:50%;
  background:#2C5730; vertical-align:middle;
}
.ch-planFoot__cta{ display:flex; flex-wrap:wrap; gap:var(--sp-xs); }

@media (max-width:760px){
  .ch-planLeg{ grid-template-columns:1fr; }
  .ch-planLeg li{ padding:14px 18px; }
  .ch-planLeg li + li{ border-left:0; border-top:1px solid #EDE8DF; }
  .ch-planFoot{ flex-direction:column; align-items:flex-start; }
}

/* pe desktop tooltipul e pe plan, deci panoul și indiciul nu sunt necesare */
.ch-planHint, .ch-planInfo{ display:none; }
.ch-plan__pin.is-open .ch-plan__lbl{ transform:scale(1.14); box-shadow:0 0 0 3px #AF3E24, 0 4px 14px rgba(23,19,15,.32); }

/* ---------- Plan pe telefon ----------
   La 350px lățime cele 27 de etichete se suprapuneau (22 de perechi), iar tooltipul blocurilor
   din partea de sus ieșea tăiat de marginea planului. Sub 700px planul are 640px lățime (zero
   suprapuneri) și se derulează orizontal; detaliile blocului atins apar într-un panou sub plan. */
@media (max-width:700px){
  .ch-planHint{ display:block; margin:0 0 10px; font-size:13px; color:#6E675F; }
  .ch-planScroll{
    overflow-x:auto; overscroll-behavior-x:contain; -webkit-overflow-scrolling:touch;
    margin-inline:calc(var(--sp-gutter) * -1); padding-inline:var(--sp-gutter);
    scrollbar-width:none;
  }
  .ch-planScroll::-webkit-scrollbar{ display:none; }
  .ch-plan{ width:640px; max-width:none; }
  .ch-plan__tip{ display:none !important; }
  .ch-planInfo{
    display:grid; gap:6px; margin-top:var(--sp-xs); padding:14px 16px; min-height:54px;
    background:#fff; border-radius:16px; font-size:14px; color:#6E675F;
  }
  .ch-planInfo b{ font-family:'Familjen Grotesk',sans-serif; font-size:17px; font-weight:600; letter-spacing:-.02em; color:#17130F; }
  .ch-planInfo .ch-plan__badge{ justify-self:start; }
  .ch-planInfo.is-available .ch-plan__badge{ background:#E4EFE4; color:#2C5730; }
  .ch-planInfo.is-reserved  .ch-plan__badge{ background:#FBF0D9; color:#8A6A16; }
  .ch-planInfo__gol{ align-self:center; }
}

/* ---------- Bara fixă: cele două butoane la aceeași înălțime ----------
   „Vorbește cu un consultant" se rupea pe două rânduri (60px) lângă „Programează o vizionare"
   (41px), iar primul avea și bordură de 1px pe care al doilea n-o avea. Containerul le întinde
   acum la aceeași înălțime, cu același padding și aceeași bordură. */
#ch-bar > div{ align-items:stretch !important; }
#ch-bar > div > button{
  box-sizing:border-box; min-height:50px; font-family:inherit; line-height:1.2; cursor:pointer;
  border:1px solid rgba(255,255,255,.26) !important;
}
#ch-bar > div > button[data-open-modal="vizionare"]{ border-color:#AF3E24 !important; }
@media (max-width:600px){
  #ch-bar > div > button{
    padding:13px 6px !important; font-size:13px !important; letter-spacing:-.005em;
    white-space:nowrap !important;
  }
}
/* sub 370px textul nu mai încape pe un rând; se rupe, dar ambele rămân egale */
@media (max-width:369px){
  #ch-bar > div > button{ white-space:normal !important; }
}

/* ---------- Programul biroului de vânzări ---------- */
.ch-program{ display:grid; gap:6px; margin:0; }
.ch-program > div{ display:flex; justify-content:space-between; align-items:baseline; gap:16px; }
.ch-program dt{ font-weight:500; color:#17130F; }
.ch-program dd{ margin:0; color:#6E675F; font-variant-numeric:tabular-nums; white-space:nowrap; }
.ch-infoCard .ch-program{ font-size:clamp(15.5px,1.25vw,18px); }
.ch-infoCard .ch-program dt{ color:#fff; font-weight:400; }
.ch-infoCard .ch-program dd{ color:rgba(255,255,255,.76); }

/* ---------- Bara fixă pe desktop: prețul centrat vertical ----------
   Butoanele se întind la aceeași înălțime (align-items:stretch), iar textul „de la … + TVA"
   se întindea și el și rămânea lipit sus. */
#ch-bar #ch-bar-text{ align-self:center; }

/* ---------- Home, „câteva minute pe jos": cinci carduri ----------
   Cu auto-fit la 260px ieșeau 4 pe rând și „În complex" rămânea singur pe al doilea.
   Desktop: toate cinci pe un rând. Tabletă: câte două, iar ultimul ocupă tot rândul.
   Telefon: unul sub altul. */
.ch-locGrid{ grid-template-columns:repeat(5,minmax(0,1fr)); }
.ch-locGrid > * > b{ font-size:clamp(24px,2.1vw,32px) !important; }
@media (max-width:1099px){
  .ch-locGrid{ grid-template-columns:repeat(2,minmax(0,1fr)); }
  .ch-locGrid > :last-child{ grid-column:1 / -1; min-height:0 !important; }
}
@media (max-width:599px){
  .ch-locGrid{ grid-template-columns:1fr; }
  .ch-locGrid > *{ min-height:0 !important; }
}

/* ---------- Butonul secundar pe fundal bej: alb ----------
   #EAE5DC se pierde pe secțiunile bej (#E7E1D6 etc.), ex. „Vezi tot jurnalul șantierului" de pe
   home. Acolo butonul devine alb. A doua regulă readuce culoarea normală când între secțiunea
   bej și buton există un card alb (ordinea regulilor contează: are aceeași specificitate). */
[style*="background:#E7E1D6"] .ch-cta--light,
[style*="background:#EFEBE3"] .ch-cta--light,
[style*="background:#EDE8DF"] .ch-cta--light,
[style*="background:#E4DDD0"] .ch-cta--light{ background:#fff !important; }
[style*="background:#E7E1D6"] .ch-cta--light:hover,
[style*="background:#EFEBE3"] .ch-cta--light:hover,
[style*="background:#EDE8DF"] .ch-cta--light:hover,
[style*="background:#E4DDD0"] .ch-cta--light:hover{ background:#F4F2ED !important; }
[style*="background:#fff"] .ch-cta--light{ background:#EAE5DC !important; }
[style*="background:#fff"] .ch-cta--light:hover{ background:#DED6C9 !important; }

/* ---------- Rețele sociale (footer pe închis, /contact/ pe deschis) ---------- */
.ch-social{ display:flex; flex-wrap:wrap; gap:10px; margin-top:20px; }
.ch-social a{
  width:40px; height:40px; padding:0 !important; border-radius:50%; display:grid; place-items:center;
  color:#fff; background:rgba(255,255,255,.06); border:1px solid rgba(255,255,255,.18);
  transition:background .45s var(--ease-press), border-color .45s var(--ease-press), transform .5s var(--ease-press);
}
.ch-social a:hover{ background:var(--c-accent); border-color:var(--c-accent); transform:translateY(-2px); }
.ch-social--light{ margin-top:0; }
.ch-social--light a{ color:#17130F; background:#fff; border-color:#E2DCD2; }
.ch-social--light a:hover{ color:#fff; }

/* ---------- /oferte: argumentele din hero ca pastile de sticlă ---------- */
.ch-pillGlass{
  display:inline-flex; align-items:center; gap:8px; padding:7px 15px 7px 12px; border-radius:999px;
  font-size:13.5px; line-height:1.25; color:#fff; white-space:nowrap;
  background:rgba(255,255,255,.1); border:1px solid rgba(255,255,255,.22);
  -webkit-backdrop-filter:blur(14px) saturate(140%); backdrop-filter:blur(14px) saturate(140%);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.16), 0 8px 24px -14px rgba(0,0,0,.45);
}
.ch-pillGlass > span[aria-hidden]{ width:6px !important; height:6px !important; flex:0 0 auto; }
@media (max-width:420px){ .ch-pillGlass{ white-space:normal; } }
/* varianta mică, pentru bannerul de ofertă de pe home: aceleași pastile, mai discrete */
.ch-pillGlass--sm{
  padding:5px 12px 5px 10px; gap:7px; font-size:12.5px; color:rgba(255,255,255,.9);
  background:rgba(255,255,255,.07); border-color:rgba(255,255,255,.15);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.1);
}
.ch-pillGlass--sm > span[aria-hidden]{ width:5px !important; height:5px !important; }

/* ---------- /invest: paleta paginii vechi din WordPress ----------
   Maro foarte închis (#2C0A00) + textura grunge peste, la 10% opacitate, exact ca pe
   contemporanhomes.ro/invest. Textura e un PNG cu transparență, recodat la jumătate de
   rezoluție (956 KB -> 275 KB). Conținutul stă peste textură, care nu prinde clicuri. */
body:has(.ch-inv){ background:#2C0A00; }
.ch-inv{ position:relative; background:#2C0A00; color:#fff; isolation:isolate; }
/* Textura stă pe fiecare secțiune, nu o dată pe toată pagina: pe original fiecare container
   Elementor are overlay-ul lui (top center / cover, 10%). Un singur strat repetat lăsa
   secțiuni întregi fără textură, cu maroul plat. */
/* Textura e UN singur strat continuu pe toată pagina, lățimea ecranului, repetat pe verticală.
   Aplicată pe fiecare secțiune separat, se oprea în linie dreaptă la marginea fiecăreia
   (se vedea ca o tăietură în efect). Secțiunile sunt transparente, deci stratul curge sub toate. */
.ch-inv::before{
  content:""; position:absolute; inset:0; z-index:-1; pointer-events:none;
  background:url("/assets/img/textura-invest.png") top center / 100% auto repeat-y;
  opacity:.1;
}
.ch-inv h1, .ch-inv h2, .ch-inv h3, .ch-inv h4, .ch-inv b, .ch-inv strong{ color:#fff; }
.ch-inv .ch-cta--light{ background:#fff !important; color:#17130F !important; }
.ch-inv .ch-cta--light:hover{ background:#EDE7DE !important; }
/* pe fundal închis, cardurile de sticlă capătă o margine vizibilă la hover */
.ch-inv [style*="rgba(35,12,4,.34)"]{ transition:border-color .45s var(--ease-press), background .45s var(--ease-press); }
.ch-inv [style*="rgba(35,12,4,.34)"]:hover{ border-color:rgba(255,255,255,.22) !important; }

/* antetul e crem implicit; pe /invest devine maro translucid, ca pe pagina veche */
/* Pe paginile închise (azi /invest, mâine orice pagină cu data-tema="dark"), antetul rămâne
   maro și logo-ul alb și după ce se lipește sus - altfel `--hdr-logo:none` îl făcea negru pe negru. */
body[data-tema="dark"] #ch-hdr, body:has(.ch-inv) #ch-hdr{
  --hdr-ink:rgba(255,255,255,.86); --hdr-strong:#fff; --hdr-logo:brightness(0) invert(1);
  --hdr-chip:rgba(255,255,255,.14);
  background:transparent; box-shadow:none;
}
/* ...și capătă fundal abia la derulare, exact ca pe prima pagină */
body[data-tema="dark"] #ch-hdr[data-stuck], body:has(.ch-inv) #ch-hdr[data-stuck]{
  background:rgba(44,10,0,.82); backdrop-filter:blur(18px);
  box-shadow:0 1px 0 rgba(255,255,255,.08);
}
/* formularul rămâne alb (ca pe pagina veche); textul din el nu se albește */
.ch-inv form.form{ color:#17130F; }
.ch-inv form.form label, .ch-inv form.form p{ color:#6E675F; }
.ch-inv form.form h3, .ch-inv form.form b, .ch-inv form.form strong{ color:#17130F; }
/* săgețile caruselului stau pe pastilă albă */
.ch-inv button[style*="rgba(255,255,255,.92)"]{ color:#17130F !important; }

/* ---------- /invest: hero-ul paginii vechi ----------
   Secțiune pe toată înălțimea (90vh, ca originalul), gradient + textură, conținut centrat,
   iar cele două blocuri fotografiate ancorate jos-stânga / jos-dreapta intră în cadru la
   încărcare (fadeInLeft / fadeInRight din Elementor). */
.ch-invHero{
  position:relative; overflow:hidden; isolation:isolate;
  min-height:min(90vh,820px); display:grid; place-items:start center; align-content:start;
  padding:calc(84px + var(--sp-lg)) var(--sp-gutter) var(--sp-section);
  margin-bottom:var(--sp-md);
  background:linear-gradient(160deg,#85625D 0%,#582A1F 78%);
}
.ch-invHero::after{
  content:""; position:absolute; inset:0; z-index:-1; pointer-events:none;
  background:url("/assets/img/textura-invest.png") top center / cover no-repeat; opacity:.1;
}
.ch-invHero__in{ position:relative; z-index:2; max-width:1280px; text-align:center; display:grid; gap:var(--sp-sm); justify-items:center; }
.ch-invHero__in h1{ margin-inline:auto; }
.ch-invHero__bloc{
  /* ca în original: două blocuri de ~48% lățime, alăturate, ușor ieșite pe sus */
  position:absolute; top:-48px; bottom:auto; width:48.5%; max-width:none; height:auto; z-index:1;
  opacity:0; animation:ch-inv-intra 1.2s cubic-bezier(.16,1,.3,1) .1s forwards;
}
.ch-invHero__bloc--st{ left:0; --de:-60px; }
.ch-invHero__bloc--dr{ right:0; --de:60px; }
@keyframes ch-inv-intra{ from{opacity:0; transform:translateX(var(--de))} to{opacity:.85; transform:none} }
/* fără umbră în spate: textul stă deasupra blocurilor, în golul dintre ele */
.ch-invHero__stats{ position:relative; z-index:2; width:min(1100px,100%); margin-top:var(--sp-md); }
.ch-invHero__stats b{ line-height:.9; }
@media (max-width:900px){
  .ch-invHero{ min-height:auto; padding-block:calc(84px + var(--sp-lg)) var(--sp-lg); }
  .ch-invHero__bloc{ width:58%; top:auto; bottom:0; }
}
@media (prefers-reduced-motion:reduce){
  .ch-invHero__bloc{ animation:none; opacity:.85; }
}

/* ---------- Ancore: secțiunea nu mai intră sub antetul fix ----------
   Pentru intrarea directă pe un link cu #, unde derularea o face browserul, nu main.js. */
[id]{ scroll-margin-top:100px; }
[id][tabindex="-1"]:focus{ outline:none; }

/* ---------- /invest: contoarele din hero - un rând, compacte, cu blur ---------- */
.ch-invHero__stats{ width:min(760px,100%); }
.ch-invHero__stats > div{ grid-template-columns:repeat(3,minmax(0,1fr)) !important; gap:10px !important; }
.ch-invHero__stats > div > div{
  padding:16px 12px !important; gap:6px !important; border-radius:14px !important; align-items:center;
  background:rgba(35,12,4,.34) !important; border:1px solid rgba(255,255,255,.14) !important;
  -webkit-backdrop-filter:blur(14px) saturate(130%); backdrop-filter:blur(14px) saturate(130%);
}
.ch-invHero__stats b{ font-size:clamp(26px,2.6vw,36px) !important; }
.ch-invHero__stats span{ font-size:10.5px !important; letter-spacing:.12em !important; text-align:center; line-height:1.35; }
@media (max-width:600px){
  .ch-invHero__stats > div{ gap:6px !important; }
  .ch-invHero__stats > div > div{ padding:12px 6px !important; }
  .ch-invHero__stats b{ font-size:22px !important; }
  .ch-invHero__stats span{ font-size:10px !important; letter-spacing:.05em !important; }
}

/* ---------- /invest: „Explorează rapid" + scurtăturile, centrate ---------- */
.ch-invNav{ padding-top:var(--sp-lg); text-align:center; }
.ch-invNav__lbl{ font-size:12px; font-weight:500; letter-spacing:.18em; text-transform:uppercase; color:rgba(255,255,255,.58); margin:0 0 14px; }

/* ---------- Italic în titluri: cuvântul înclinat nu se mai lipește de următorul ----------
   Litera italică iese în afara casetei ei spre dreapta și „mănâncă" spațiul de după
   („investiției în"). Un spațiu mic în coada italicului compensează, pe tot site-ul. */
:is(h1,h2,h3,h4) em{ padding-right:.09em; }

/* ---------- /invest: beneficiile - blocuri fără fundal, cu cifra mare ---------- */
.ch-invBen{ display:grid; gap:12px; align-content:start; padding-top:20px; border-top:1px solid rgba(255,255,255,.16); }
.ch-invBen__nr{
  font-family:'Familjen Grotesk',sans-serif; font-weight:500; line-height:.85;
  font-size:clamp(44px,4.6vw,64px); letter-spacing:-.05em; color:rgba(255,255,255,.92);
}
.ch-invBen h3{ max-width:26ch; }

/* ---------- /invest: tipurile de investiție - card clickabil spre formular ---------- */
.ch-invTip__img{ display:block; overflow:hidden; }
.ch-invTip__img img{ transition:transform 1.1s cubic-bezier(.16,1,.3,1); }
.ch-invTip:hover .ch-invTip__img img, .ch-invTip:focus-visible .ch-invTip__img img{ transform:scale(1.07); }
.ch-invTip__ico{
  flex:0 0 auto; display:grid; place-items:center; width:32px; height:32px; border-radius:50%;
  font-size:14px; color:#fff; background:rgba(255,255,255,.08); border:1px solid rgba(255,255,255,.16);
  transition:transform .5s var(--ease-soft), background .45s var(--ease-press);
}
.ch-invTip:hover .ch-invTip__ico{ transform:translate(2px,-2px); background:var(--c-accent); border-color:var(--c-accent); }
.ch-invTip:focus-visible{ outline:2px solid #E9A08D; outline-offset:3px; }
@media (prefers-reduced-motion:reduce){ .ch-invTip:hover .ch-invTip__img img{ transform:none; } }

/* ---------- /invest pe telefon ---------- */
@media (max-width:600px){
  /* scurtăturile ocupau 151px pe trei rânduri; mai mici, încap pe două */
  .ch-invNav{ padding-top:var(--sp-md); }
  .ch-invNav nav{ gap:6px !important; }
  .ch-invNav nav a{ padding:7px 13px !important; font-size:13px !important; }
}
/* Săgețile de la miniaturi au 30px - sub pragul confortabil pentru deget. Păstrăm aspectul,
   dar mărim zona de atingere cu un pseudo-element invizibil. Pe tot site-ul. */
.ch-mini__nav::after{ content:""; position:absolute; inset:-8px; }

/* ---------- Formulare pe telefon: fără zoom automat la atingere ----------
   Câmpurile aveau 15px (--fs-base). Safari pe iPhone mărește automat pagina când focusezi un
   câmp sub 16px, iar vizitatorul trebuie apoi să micșoreze singur. Pe ecrane tactile trecem
   la 16px, pe toate formularele site-ului. */
@media (pointer:coarse), (max-width:900px){
  .field input, .field select, .field textarea, .form input:not([type="checkbox"]):not([type="radio"]), .form select, .form textarea{ font-size:16px !important; }
}

/* ---------- /invest: facilitățile ca carusel pe telefon ----------
   Șase carduri cu poză, unul sub altul, ocupau ~2.600px. Pe telefon devin un rând derulabil
   lateral: cardul următor se vede pe margine (semnalul că se poate glisa), iar fiecare se
   oprește aliniat la stânga. */
@media (max-width:700px){
  .ch-invFac{
    display:flex !important; gap:12px !important; overflow-x:auto; overscroll-behavior-x:contain;
    scroll-snap-type:x mandatory; scroll-padding-inline:var(--sp-gutter);
    margin-inline:calc(var(--sp-gutter) * -1); padding:0 var(--sp-gutter) 6px;
    scrollbar-width:none; -webkit-overflow-scrolling:touch;
  }
  .ch-invFac::-webkit-scrollbar{ display:none; }
  .ch-invFac > *{ flex:0 0 82%; scroll-snap-align:start; }
}

/* ---------- Banner de cookie-uri ----------
   Colț stânga-jos pe desktop, bandă jos pe telefon - deasupra barei fixe de acțiuni.
   „Accept" și „Refuz" au aceeași greutate vizuală: refuzul trebuie să fie la fel de ușor
   ca acceptul, altfel consimțământul nu e valabil. */
.ch-cookie{
  position:fixed; z-index:120; left:var(--sp-gutter); bottom:calc(84px + var(--sp-sm));
  width:min(420px, calc(100vw - var(--sp-gutter) * 2));
  opacity:0; transform:translateY(14px); transition:opacity .35s var(--ease-soft), transform .35s var(--ease-soft);
}
.ch-cookie.is-open{ opacity:1; transform:none; }
.ch-cookie__box{
  background:#fff; color:#17130F; border-radius:20px; padding:22px;
  box-shadow:0 26px 60px -22px rgba(23,19,15,.45); display:grid; gap:16px;
}
.ch-cookie__ttl{ font-family:'Familjen Grotesk',sans-serif; font-size:18px; font-weight:600; letter-spacing:-.02em; }
.ch-cookie__txt p{ font-size:13.5px; line-height:1.55; color:#6E675F; }
.ch-cookie__txt p + p{ margin-top:6px; }
.ch-cookie__txt a{ color:#AF3E24; text-decoration:underline; text-underline-offset:2px; }
.ch-cookie__optiuni{ display:grid; gap:10px; border-top:1px solid #EDE8DF; padding-top:14px; }
.ch-cookie__opt{ display:flex; gap:10px; align-items:flex-start; font-size:13px; line-height:1.5; color:#6E675F; cursor:pointer; }
.ch-cookie__opt input{ width:auto; margin-top:3px; accent-color:#AF3E24; }
.ch-cookie__opt b{ color:#17130F; font-weight:500; }
.ch-cookie__act{ display:flex; flex-wrap:wrap; gap:8px; }
.ch-cookie__b{
  all:unset; box-sizing:border-box; cursor:pointer; text-align:center; flex:1 1 auto; min-width:120px;
  padding:12px 18px; border-radius:999px; font-size:14px; font-weight:500; line-height:1.2;
  background:#EAE5DC; color:#17130F; transition:background .35s var(--ease-press);
}
.ch-cookie__b:hover{ background:#DED6C9; }
.ch-cookie__b--primar{ background:#AF3E24; color:#fff; }
.ch-cookie__b--primar:hover{ background:var(--c-accent-hover); }
.ch-cookie__b--text{ flex:0 0 auto; min-width:0; background:transparent; text-decoration:underline; text-underline-offset:3px; color:#6E675F; }
.ch-cookie__b--text:hover{ background:transparent; color:#17130F; }
.ch-cookie__b:focus-visible{ outline:2px solid #17130F; outline-offset:2px; }
@media (max-width:600px){
  .ch-cookie{ left:10px; right:10px; width:auto; bottom:calc(74px + 10px); }
  .ch-cookie__box{ padding:18px; border-radius:16px; }
  .ch-cookie__b{ flex:1 1 100%; }
  .ch-cookie__b--text{ flex:1 1 100%; }
}
