/* ===========================================================================
   Amur Residence - GROWTH UI (consent banner + lead modal)
   Self-contained styling, consecvent cu "Warm Arboretum".
   Foloseste tokenii temei din style.css (var(--ivory-pure), var(--charcoal),
   var(--green-700), var(--line) ...). Suporta dark mode html[data-theme=dark].
   Mobile-first. z-index peste tot (banner 1000, modal 1200).
   Fallback-uri pe tokeni in caz ca growth.css se incarca singur.
   =========================================================================== */

/* ===== CONSENT BANNER (jos, discret) ===== */
.gconsent{
  position:fixed; left:0; right:0;
  bottom:0;
  z-index:1000;
  padding:12px;
  padding-bottom:calc(12px + env(safe-area-inset-bottom));
  display:flex; justify-content:center;
  pointer-events:none;
  animation:gconsent-in .32s cubic-bezier(.22,.61,.36,1) both;
}
.gconsent.is-out{ animation:gconsent-out .3s ease forwards; }
@keyframes gconsent-in{ from{opacity:0; transform:translateY(16px);} to{opacity:1; transform:translateY(0);} }
@keyframes gconsent-out{ from{opacity:1; transform:translateY(0);} to{opacity:0; transform:translateY(16px);} }

.gconsent__card{
  pointer-events:auto;
  width:100%; max-width:560px;
  background:var(--ivory-pure,#FCFAF5);
  color:var(--ink-700,#4A433D);
  border:1px solid var(--line,#E3DACF);
  border-radius:var(--r-lg,22px);
  box-shadow:var(--shadow-lg,0 12px 40px rgba(20,17,15,.16));
  padding:18px;
}
.gconsent__title{
  font-family:var(--font-display,'Fraunces',Georgia,serif);
  font-size:1.02rem; font-weight:600; line-height:1.2;
  color:var(--charcoal,#14110F);
  margin-bottom:6px;
}
.gconsent__text{ font-size:.86rem; line-height:1.5; color:var(--ink-700,#4A433D); }
.gconsent__more{
  display:inline-block; margin-top:8px;
  font-size:.8rem; font-weight:600;
  color:var(--green-700,#4A7E37);
  text-decoration:underline; text-underline-offset:2px;
}
.gconsent__more:hover{ opacity:.85; }

.gconsent__acts{
  display:flex; flex-wrap:wrap; gap:8px;
  margin-top:14px;
}
.gconsent__btn{
  display:inline-flex; align-items:center; justify-content:center;
  min-height:44px; padding:0 16px;
  border-radius:var(--r-pill,999px);
  font-weight:600; font-size:.9rem;
  transition:transform .12s ease, background .2s ease, border-color .2s ease, color .2s ease;
}
.gconsent__btn:active{ transform:scale(.97); }
.gconsent__btn--solid{ background:var(--green-700,#4A7E37); color:#fff; flex:1 1 auto; }
.gconsent__btn--solid:hover{ background:var(--green-900,#2F4F26); }
.gconsent__btn--ghost{
  background:transparent; color:var(--green-700,#4A7E37);
  border:1.5px solid var(--green-700,#4A7E37); flex:1 1 auto;
}
.gconsent__btn--ghost:hover{ background:var(--green-50,#ECF3E6); }
.gconsent__btn--text{
  background:transparent; color:var(--ink-500,#7A716A);
  padding:0 10px; min-height:40px;
}
.gconsent__btn--text:hover{ color:var(--charcoal,#14110F); }

/* mic panou setari */
.gconsent__panel{
  margin-top:14px; padding-top:14px;
  border-top:1px solid var(--line,#E3DACF);
}
.gconsent__row{
  display:flex; align-items:center; gap:12px;
  padding:9px 0;
  cursor:pointer;
}
.gconsent__row-l{
  flex:1 1 auto;
  font-size:.88rem; font-weight:500;
  color:var(--charcoal,#14110F);
}
/* toggle stilizat: input ascuns, .gconsent__track ca switch */
.gconsent__toggle{
  position:absolute; opacity:0; width:1px; height:1px;
  margin:-1px; overflow:hidden; clip:rect(0 0 0 0);
}
.gconsent__track{
  position:relative; flex:0 0 auto;
  width:42px; height:24px; border-radius:999px;
  background:var(--line-strong,#CFC4B6);
  transition:background .2s ease;
}
.gconsent__track::after{
  content:""; position:absolute; top:2px; left:2px;
  width:20px; height:20px; border-radius:50%;
  background:#fff; box-shadow:0 1px 3px rgba(20,17,15,.3);
  transition:transform .2s ease;
}
.gconsent__toggle:checked + .gconsent__track{ background:var(--green-700,#4A7E37); }
.gconsent__toggle:checked + .gconsent__track::after{ transform:translateX(18px); }
.gconsent__toggle:disabled + .gconsent__track{ opacity:.55; }
.gconsent__toggle:focus-visible + .gconsent__track{
  outline:2.5px solid var(--green-900,#2F4F26); outline-offset:2px;
}
.gconsent__panel-foot{ margin-top:10px; }
.gconsent__panel-foot .gconsent__btn{ width:100%; }

/* ===== LEAD MODAL (centrat, scrim, card elegant) ===== */
.lead{
  position:fixed; inset:0; z-index:1200;
  visibility:hidden;
  display:flex; align-items:center; justify-content:center;
  padding:16px;
  padding-bottom:calc(16px + env(safe-area-inset-bottom));
}
.lead[aria-hidden="false"]{ visibility:visible; }

.lead__scrim{
  position:absolute; inset:0;
  background:rgba(20,17,15,.55);
  backdrop-filter:blur(3px);
  opacity:0; transition:opacity .28s ease;
}
.lead[aria-hidden="false"] .lead__scrim{ opacity:1; }

.lead__card{
  position:relative;
  width:100%; max-width:440px;
  max-height:calc(100dvh - 32px);
  overflow:auto;
  background:var(--ivory-pure,#FCFAF5);
  color:var(--ink-700,#4A433D);
  border:1px solid var(--line,#E3DACF);
  border-radius:var(--r-lg,22px);
  box-shadow:var(--shadow-lg,0 12px 40px rgba(20,17,15,.16));
  padding:26px 22px 22px;
  transform:translateY(18px) scale(.98);
  opacity:0;
  transition:transform .3s cubic-bezier(.22,.61,.36,1), opacity .3s ease;
}
.lead[aria-hidden="false"] .lead__card{ transform:translateY(0) scale(1); opacity:1; }

.lead__x{
  position:absolute; top:12px; right:12px;
  width:40px; height:40px; border-radius:50%;
  display:flex; align-items:center; justify-content:center;
  color:var(--ink-500,#7A716A);
  background:transparent;
  transition:background .2s ease, color .2s ease;
}
.lead__x:hover{ background:var(--line,#E3DACF); color:var(--charcoal,#14110F); }

.lead__badge{
  display:inline-block;
  font-size:.72rem; font-weight:700; letter-spacing:.12em; text-transform:uppercase;
  color:var(--rose-700,#A76A62);
  background:var(--rose-50,#F4E6E2);
  padding:.4em .8em; border-radius:999px;
  margin-bottom:12px;
}
.lead__title{
  font-family:var(--font-display,'Fraunces',Georgia,serif);
  font-size:1.5rem; font-weight:500; line-height:1.15; letter-spacing:-.01em;
  color:var(--charcoal,#14110F);
  margin-bottom:8px;
  padding-right:28px;
}
.lead__text{ font-size:.92rem; line-height:1.55; color:var(--ink-700,#4A433D); margin-bottom:18px; }

.lead__form{ display:flex; flex-direction:column; gap:12px; }
.lead__field{ display:flex; flex-direction:column; gap:5px; }
.lead__label{
  font-size:.78rem; font-weight:600; letter-spacing:.02em;
  color:var(--ink-500,#7A716A);
}
.lead__input{
  width:100%; min-height:48px;
  padding:0 14px;
  font:inherit; font-size:1rem;
  color:var(--charcoal,#14110F);
  background:var(--ivory,#F6F1E9);
  border:1.5px solid var(--line-strong,#CFC4B6);
  border-radius:var(--r-md,16px);
  transition:border-color .2s ease, box-shadow .2s ease, background .2s ease;
}
.lead__input::placeholder{ color:var(--ink-500,#7A716A); }
.lead__input:focus{
  outline:none;
  border-color:var(--green-700,#4A7E37);
  box-shadow:0 0 0 3px var(--green-50,#ECF3E6);
  background:var(--ivory-pure,#FCFAF5);
}

.lead__check{
  display:flex; align-items:flex-start; gap:10px;
  font-size:.84rem; line-height:1.45; color:var(--ink-700,#4A433D);
  cursor:pointer;
  margin-top:2px;
}
.lead__check input{
  flex:0 0 auto;
  width:20px; height:20px; margin-top:1px;
  accent-color:var(--green-700,#4A7E37);
  cursor:pointer;
}

.lead__msg{
  font-size:.86rem; line-height:1.45; font-weight:500;
  padding:10px 12px; border-radius:var(--r-sm,10px);
  margin:2px 0;
}
.lead__msg.is-ok{ color:var(--green-900,#2F4F26); background:var(--green-50,#ECF3E6); }
.lead__msg.is-err{ color:var(--rose-700,#A76A62); background:var(--rose-50,#F4E6E2); }

.lead__actions{
  display:flex; gap:10px; margin-top:6px;
}
.lead__btn{
  display:inline-flex; align-items:center; justify-content:center;
  min-height:48px; padding:0 18px;
  border-radius:var(--r-pill,999px);
  font-weight:600; font-size:.95rem;
  transition:transform .12s ease, background .2s ease, border-color .2s ease, color .2s ease;
}
.lead__btn:active{ transform:scale(.97); }
.lead__btn--solid{ background:var(--green-700,#4A7E37); color:#fff; flex:1 1 auto; }
.lead__btn--solid:hover{ background:var(--green-900,#2F4F26); }
.lead__btn--solid:disabled{ opacity:.6; cursor:default; transform:none; }
.lead__btn--ghost{
  background:transparent; color:var(--ink-700,#4A433D);
  border:1.5px solid var(--line-strong,#CFC4B6);
}
.lead__btn--ghost:hover{ border-color:var(--charcoal,#14110F); color:var(--charcoal,#14110F); }

/* ===== DARK MODE - tokenii se rescriu singuri; cateva ajustari de contrast ===== */
html[data-theme="dark"] .gconsent__track::after{ background:#E8E2D6; }
html[data-theme="dark"] .gconsent__btn--solid{ color:#15120E; }
html[data-theme="dark"] .lead__btn--solid{ color:#15120E; }
html[data-theme="dark"] .lead__input{ background:var(--ivory,#15120E); }
html[data-theme="dark"] .lead__x:hover{ color:var(--charcoal,#F1EBE1); }

/* ===== RESPONSIVE: pe ecrane mari, bannerul ramane jos-dreapta discret ===== */
@media (min-width:680px){
  .gconsent{ justify-content:flex-end; padding:18px; }
  .gconsent__card{ max-width:440px; }
}

/* ===== reduce motion ===== */
@media (prefers-reduced-motion:reduce){
  .gconsent, .gconsent.is-out,
  .lead__scrim, .lead__card{ animation:none; transition:none; }
}
