/*
 * Fereastra de consimțământ.
 *
 * Valorile implicite (culori, fonturi, raze) stau în @layer agc, cel mai slab loc posibil: orice --agc-* pus de temă,
 * în orice strat sau în afara lor, le înlocuiește. Alegerile din admin vin după foaia asta, tot ca variabile.
 *
 * Regulile stau în afara straturilor, legate de #agc (fereastra) și de clase dublate (piesele din pagină). O regulă
 * dintr-un strat pierde în fața oricărei reguli fără strat, oricât de specifică ar fi, deci în stratul nostru
 * fereastra se strica pe orice temă cu un reset obișnuit (button { background: none }) sau cu straturi proprii.
 * Tema o restilizează cu variabilele de mai jos sau cu reguli care încep cu #agc, în afara straturilor.
 */
@layer agc {
  :root {
    --agc-fundal: #fff;
    --agc-text: #1d1d1f;
    --agc-text-slab: #4b4b52;
    --agc-linie: #d6d6dc;
    --agc-buton: #1d1d1f;
    --agc-buton-text: #fff;
    --agc-comutator: #1d1d1f;
    --agc-focus: #0b57d0;
    --agc-voal: rgb(0 0 0 / .5);
    --agc-estompare: 4px;
    --agc-raza: 16px;
    --agc-raza-buton: 999px;
    --agc-font: inherit;
    --agc-font-titlu: inherit;
    --agc-latime: 36rem;
  }
}

#agc {
  box-sizing: border-box;
  position: fixed;
  inset: 0;
  width: min(var(--agc-latime), calc(100% - 2rem));
  height: fit-content;
  max-width: none;
  max-height: calc(100% - 2rem);
  margin: auto;
  padding: 0;
  border: 0;
  border-radius: var(--agc-raza);
  overflow: auto;
  overscroll-behavior: contain;
  background: var(--agc-fundal);
  color: var(--agc-text);
  font-family: var(--agc-font);
  font-size: 1rem;
  font-weight: 400;
  line-height: 1.5;
  letter-spacing: normal;
  text-align: left;
  text-transform: none;
  box-shadow: 0 1.5rem 4rem rgb(0 0 0 / .25);
}
#agc:not([open]) { display: none; }
#agc *, #agc *::before, #agc *::after { box-sizing: border-box; }

/* ::backdrop nu moștenește variabilele în toate browserele, deci are și valori de rezervă. */
#agc::backdrop {
  background: var(--agc-voal, rgb(0 0 0 / .5));
  -webkit-backdrop-filter: blur(var(--agc-estompare, 4px));
  backdrop-filter: blur(var(--agc-estompare, 4px));
}

#agc .agc__pas { padding: clamp(1.25rem, 4vw, 2rem); }
#agc [hidden] { display: none; }
/* Capul fiecărui pas: logo-ul site-ului lângă titlu (implicit) sau deasupra lui (.agc--logo-sus). Înălțimea logo-ului
   vine din admin (--agc-logo), lățimea se potrivește singură. */
#agc .agc__cap { display: flex; align-items: center; gap: .75rem 1rem; margin: 0 0 .75rem; }
#agc.agc--logo-sus .agc__cap { flex-direction: column; align-items: flex-start; }
#agc .agc__cap .agc__titlu { margin: 0; }
#agc .agc__logo {
  display: block;
  flex: none;
  width: auto;
  height: var(--agc-logo, 32px);
  max-width: 40%;
  margin: 0;
  object-fit: contain;
}
#agc.agc--logo-sus .agc__logo { max-width: 60%; }
#agc .agc__logo[hidden] { display: none; }
#agc .agc__titlu {
  margin: 0 0 .75rem;
  padding: 0;
  font-family: var(--agc-font-titlu);
  font-size: 1.375rem;
  font-weight: 700;
  line-height: 1.25;
  color: inherit;
}
/* Titlul primește focusul doar ca punct de plecare (cititorul de ecran îl anunță); nu e un control, deci fără chenar. */
#agc .agc__titlu:focus, #agc .agc__titlu:focus-visible { outline: none; }
#agc p { margin: 0 0 .75rem; color: inherit; font: inherit; }
#agc a { color: inherit; text-decoration: underline; text-underline-offset: 3px; }

#agc .agc__butoane {
  display: flex;
  flex-wrap: wrap;
  gap: .75rem;
  margin: 1.25rem 0 0;
}
/* Cele trei butoane au aceeași mărime, greutate și culoare: refuzul e la fel de vizibil ca acceptul. */
#agc .agc__btn,
.agc-blocat.agc-blocat .agc__btn {
  flex: 1 1 9rem;
  width: auto;
  min-height: 44px;
  margin: 0;
  padding: .7em 1.25em;
  border: 2px solid var(--agc-buton);
  border-radius: var(--agc-raza-buton);
  background: var(--agc-buton);
  color: var(--agc-buton-text);
  font: inherit;
  font-weight: 700;
  line-height: 1.2;
  letter-spacing: normal;
  text-align: center;
  text-decoration: none;
  text-transform: none;
  box-shadow: none;
  cursor: pointer;
}
#agc .agc__btn:hover,
.agc-blocat.agc-blocat .agc__btn:hover {
  border-color: var(--agc-buton);
  background: var(--agc-buton);
  color: var(--agc-buton-text);
  opacity: .88;
}
#agc .agc__btn:focus-visible,
#agc .agc__comutator:focus-visible,
#agc a:focus-visible,
#agc-redeschide:focus-visible,
.agc-blocat.agc-blocat .agc__btn:focus-visible,
.agc-blocat.agc-blocat a:focus-visible,
.agc-link.agc-link:focus-visible {
  outline: 3px solid var(--agc-focus);
  outline-offset: 3px;
}

#agc .agc__categorii { list-style: none; margin: 1rem 0 0; padding: 0; }
#agc .agc__cat { margin: 0; padding: 1rem 0; border: 0; border-top: 1px solid var(--agc-linie); background: none; }
#agc .agc__cat::before, #agc .agc__cat::marker { content: none; }
/* Titlul și comutatorul pe același rând, textul dedesubt: comutatorul se vede oricât de lung e textul. */
#agc .agc__cat-cap { display: flex; align-items: center; justify-content: space-between; gap: 1rem; }
#agc .agc__cat-titlu {
  margin: 0;
  padding: 0;
  font-family: inherit;
  font-size: 1.0625rem;
  font-weight: 700;
  line-height: 1.3;
  color: inherit;
}
#agc .agc__cat-text { margin-top: .5rem; color: var(--agc-text-slab); font-size: .9375rem; }
#agc .agc__cat-text p { margin: 0 0 .5rem; }
#agc .agc__servicii { font-weight: 600; }
#agc .agc__mereu { font-size: .875rem; font-weight: 600; color: var(--agc-text-slab); }

/* Comutatorul: ținta are 56 × 44 px; pista și butonul sunt desenate din pseudo-elemente. */
#agc .agc__comutator {
  -webkit-appearance: none;
  appearance: none;
  position: relative;
  display: block;
  flex: none;
  width: 3.5rem;
  min-width: 0;
  height: 44px;
  margin: 0;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: none;
  box-shadow: none;
  cursor: pointer;
}
#agc .agc__comutator::before {
  content: "";
  position: absolute;
  inset: 50% 0 auto;
  width: auto;
  height: 1.75rem;
  margin: 0;
  transform: translateY(-50%);
  border: 2px solid var(--agc-comutator);
  border-radius: 999px;
  background: var(--agc-fundal);
}
#agc .agc__comutator::after {
  content: "";
  position: absolute;
  top: 50%;
  left: .3125rem;
  right: auto;
  width: 1.125rem;
  height: 1.125rem;
  margin: 0;
  transform: translateY(-50%);
  border: 0;
  border-radius: 50%;
  background: var(--agc-comutator);
}
#agc .agc__comutator:checked { background: none; }
#agc .agc__comutator:checked::before { background: var(--agc-comutator); }
#agc .agc__comutator:checked::after { left: auto; right: .3125rem; background: var(--agc-fundal); }

#agc-redeschide {
  position: fixed;
  left: 1rem;
  right: auto;
  bottom: 1rem;
  z-index: 99990;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 44px;
  min-width: 0;
  height: 44px;
  margin: 0;
  padding: 0;
  border: 2px solid var(--agc-fundal);
  border-radius: 50%;
  background: var(--agc-buton);
  color: var(--agc-buton-text);
  box-shadow: 0 .25rem 1rem rgb(0 0 0 / .2);
  cursor: pointer;
}
#agc-redeschide:hover { background: var(--agc-buton); color: var(--agc-buton-text); }
#agc-redeschide[hidden] { display: none; }

/* Iframe-urile blocate până la acord (YouTube, Vimeo, Google Maps): mesajul stă în locul lor, cu aceeași formă. */
.agc-blocat.agc-blocat {
  position: relative;
  display: grid;
  place-items: center;
  aspect-ratio: 16 / 9;
  max-width: 100%;
  padding: 1.5rem;
  border-radius: var(--agc-raza);
  background: var(--agc-fundal);
  color: var(--agc-text);
  border: 1px solid var(--agc-linie);
  font-family: var(--agc-font);
  text-align: center;
}
.agc-blocat.agc-blocat--pornit { display: block; padding: 0; border: 0; background: none; }
.agc-blocat.agc-blocat--pornit iframe { width: 100%; height: 100%; border: 0; }
.agc-blocat.agc-blocat .agc-blocat__mesaj { max-width: 30rem; }
.agc-blocat.agc-blocat .agc-blocat__mesaj p { margin: 0 0 1rem; color: inherit; }
.agc-blocat.agc-blocat .agc__btn { flex: none; }
.agc-blocat.agc-blocat a { display: inline-block; margin-top: .75rem; color: inherit; }

/* [agc_setari]: arată ca un link, dar e buton (deschide fereastra, nu duce nicăieri). */
.agc-link.agc-link {
  display: inline;
  width: auto;
  min-height: 0;
  margin: 0;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: none;
  box-shadow: none;
  color: inherit;
  font: inherit;
  text-decoration: underline;
  text-underline-offset: 3px;
  text-transform: none;
  cursor: pointer;
}

/* [agc_cookies]: tabelul din politica de cookie-uri; pe ecrane înguste se derulează orizontal în cadrul lui. */
.agc-cookies.agc-cookies table { display: block; overflow-x: auto; width: 100%; border-collapse: collapse; margin: 0 0 1.5rem; }
.agc-cookies.agc-cookies th,
.agc-cookies.agc-cookies td { padding: .5rem .75rem; border: 0; border-bottom: 1px solid var(--agc-linie); text-align: left; vertical-align: top; }

.agc-ascuns.agc-ascuns {
  position: absolute;
  width: 1px;
  height: 1px;
  margin: -1px;
  padding: 0;
  overflow: hidden;
  clip: rect(0 0 0 0);
  white-space: nowrap;
  border: 0;
}

/* Animații doar pentru cine nu a cerut mișcare redusă. */
@media (prefers-reduced-motion: no-preference) {
  #agc[open] { animation: agc-apare .2s ease-out; }
  #agc .agc__comutator::after { transition: left .15s, right .15s; }
  @keyframes agc-apare { from { opacity: 0; transform: translateY(.5rem); } }
}

@media (forced-colors: active) {
  #agc { border: 2px solid CanvasText; }
  #agc .agc__comutator::before { border-color: ButtonText; }
  #agc .agc__comutator::after, #agc .agc__comutator:checked::before { background: ButtonText; }
}
