/* =========================================================
   MAIN — stiluri desktop-first, în ordinea secțiunilor
   Ordinea din <head>: reset → variables → main → responsive
   ========================================================= */

/* 1. BAZĂ ------------------------------------------------ */
html {
  scroll-padding-block-start: var(--gutter);
  background: var(--c-cream);        /* spațiul din stânga/dreapta peste 1440px */
}
body {
  /* pagina nu depășește lățimea artboard-ului (1440px); pe ecrane mai late
     stă centrată, cu crem în lateral */
  max-inline-size: var(--w-design);
  margin-inline: auto;
  background: var(--c-cream);
  color: var(--c-brick);
  font-family: var(--f-letter);
  overflow-x: clip;                  /* siguranță: nimic nu produce scroll orizontal */
}

/* link „Sari la conținut": ascuns până primește focus din tastatură */
.skip-link {
  position: absolute;
  inset-block-start: 0;
  inset-inline-start: var(--gutter);
  z-index: 100;
  padding: 0.75em 1.25em;
  background: var(--c-brown-dark);
  color: var(--c-cream);
  font-family: var(--f-ui);
  font-size: var(--t-small);
  letter-spacing: var(--ls-wide);
  text-transform: uppercase;
  transform: translateY(-120%);
  transition: transform 200ms ease;
}
.skip-link:focus-visible { transform: translateY(0); outline-color: var(--c-cream); }

/* text doar pentru cititoarele de ecran */
.sr-only {
  position: absolute;
  inline-size: 1px;
  block-size: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip-path: inset(50%);
  white-space: nowrap;
  border: 0;
}

/* 2. COMPONENTE REFOLOSITE (buton, bandă, zid) */

/* 2.1 .btn — o singură componentă, dimensionată de text + padding (nu de lățime/înălțime)
   <a class="btn btn--donate" href="…stripe…">Donează</a>      ← link, duce la Stripe
   <button class="btn btn--copy" id="copy-iban">Copiază IBAN</button>   ← acțiune în pagină
   Centrarea o face părintele (flex column centrat / text-align: center), nu butonul. */
.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-family: var(--f-display);
  line-height: 1.2;
  text-transform: uppercase;
  letter-spacing: var(--ls-wide);
  text-indent: var(--ls-wide);       /* recentrează: tracking-ul adaugă spațiu și după ultima literă */
  white-space: nowrap;
  border-radius: var(--btn-radius);
  background: var(--c-brick);
  color: var(--c-white);
  text-decoration: none;
  transition: background-color 0.2s, transform 0.2s;
}
.btn:hover { background: color-mix(in srgb, var(--c-brick) 92%, #000); transform: scale(1.02); }
.btn:active { transform: scale(0.99); }
.btn:focus-visible { outline: 3px solid var(--c-brown-dark); outline-offset: 3px; }

.btn--donate {
  font-size: var(--t-btn);
  padding: 0.74em 1.80em;            /* proporțiile din PDF (454 × 134 la 50px); scara vine din --t-btn */
  min-block-size: var(--tap-donate); /* zonă de atins pe telefon */
}
.btn--copy {
  font-size: var(--t-copy);
  padding: 0.90em 1.69em;            /* 168 × 50 la 16.6px */
  min-block-size: var(--tap-min);    /* zonă de atins pe touch */
  min-inline-size: var(--tap-min);
}
.btn--copy[data-state="error"] { background: var(--c-brown-dark); }

/* 2.2 .ticker — banda „DONEAZĂ O CĂRĂMIDĂ", în buclă continuă (§1, §3, §5, §7)
   <div class="ticker" aria-hidden="true"><div class="ticker__track"> 8 × <img> + aceleași 8 </div></div>
   Dala (banda-doneaza.webp, 1980×207 = 660×69 la 1440) se repetă perfect; animația
   mută exact -50% = grupul A, deci la reluare grupul B e exact unde era A.
   Pentru §5: banda-doneaza-inversat.webp (text crem). Fără JS, fără font. */
.ticker {
  block-size: var(--band-h);         /* 69px la 1440, 30px pe telefon */
  inline-size: 100%;                 /* și ca flex item (§5, §7) */
  overflow: hidden;
}
.ticker__track {
  display: flex;
  inline-size: max-content;
  block-size: 100%;
  animation: ticker-scroll var(--ticker-speed) linear infinite;
}
.ticker__track img {
  block-size: 100%;
  inline-size: auto;
  flex: none;
  display: block;
}
@keyframes ticker-scroll {
  from { transform: translateX(0); }
  to   { transform: translateX(-50%); }   /* exact grupul A */
}
@media (prefers-reduced-motion: reduce) {
  .ticker__track { animation: none; }
}

/* 2.3 .brick-wall — zidul ctitorilor: o imagine cu fundal transparent
   (zid-caramizi.webp / zid-caramizi-mobil.webp), identică în §3 (crem) și §5 (închis).
   Proporția nume/cărămidă e fixată în imagine. */
.brick-wall {
  display: block;
  inline-size: 100%;                 /* și ca flex item (§5): altfel se strânge la fit-content
                                        și 92.4% s-ar calcula dintr-o lățime mai mică */
}
.brick-wall img {
  display: block;
  inline-size: var(--wall-w);        /* 92.4% = 1331 din 1440 */
  max-inline-size: var(--wall-max-w);
  block-size: auto;
  margin-inline: auto;
}

/* 3. §1 ANTET (o singură imagine) --------------------- */
/* Imaginea are fundal transparent — cremul vine din body. Textul iese în afara
   ecranului pe ambele margini la orice lățime (fără max-width), ca în design. */
.site-header {
  position: relative;
  background: none;
}
.header-art { display: block; }
.header-art img {
  display: block;
  inline-size: 100%;
  max-inline-size: none;
  block-size: auto;
}

/* 4. §2 HERO --------------------------------------------- */
.hero {
  position: relative;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  align-items: center;
  padding-block: var(--hero-pad-top) var(--hero-pad-bot);
  /* fără padding lateral: „O CĂRĂMIDĂ" la --t-display ocupă ~97% din lățime */
  background: var(--c-cream);
  text-align: center;
}

.hero__seal {
  display: block;
  inline-size: var(--seal-w);
  aspect-ratio: 643 / 640;           /* viewBox logo-seal.svg */
  background: var(--c-brick);
  -webkit-mask: url("../assets/svg/logo-seal.svg") center / contain no-repeat;
          mask: url("../assets/svg/logo-seal.svg") center / contain no-repeat;
}

/* titlu + stemă: stema e ::before pe cutia titlului, deci îl urmează la orice
   lățime și nu poate urca peste sigiliu (între ele e marja titlului) */
.hero__title {
  position: relative;
  isolation: isolate;
  inline-size: 100%;                 /* fără max-width — titlul e foarte lat */
  margin-block-start: var(--hero-gap-h1);   /* 115px față de sigiliu, la 1440 */
  font-family: var(--f-display);
  font-size: var(--t-display);
  font-weight: normal;
  line-height: var(--lh-display);
  text-align: center;
  text-transform: uppercase;
  color: var(--c-brown-head);
}
.hero__title > span {
  display: block;
  position: relative;
  z-index: 1;                        /* textul stă peste stemă */
}
.hero__title .is-accent { color: var(--c-brick); }
.hero__title::before {
  content: "";
  position: absolute;
  inset: var(--eagle-inset-y) 0;     /* stema = 97.2% din înălțimea titlului, ca în design */
  z-index: 0;
  pointer-events: none;
  background-color: var(--c-eagle-light);
  -webkit-mask: url("../assets/svg/eagle.svg") center / contain no-repeat;
          mask: url("../assets/svg/eagle.svg") center / contain no-repeat;
}

/* paragraful hero: font în vw + lățime în em → aceleași 5 rânduri la orice
   lățime; un <span> pe rând, nowrap. Sub 360px: plasă de siguranță în responsive.css */
.hero__lead {
  font-family: var(--f-display);
  font-size: var(--t-lead);
  line-height: var(--lh-text);
  color: var(--c-brick);
  text-align: center;
  max-inline-size: min(var(--w-lead), var(--text-max-vw));   /* em, dar niciodată mai lat ca ecranul */
  margin-inline: auto;
  margin-block-start: var(--hero-gap-lead);   /* 66px sub titlu, la 1440 */
}
.hero__lead > span { display: block; text-wrap: balance; }   /* un rând fiecare; se rup doar când cutia e plafonată (zoom 200%) */

.hero .btn { margin-block-start: var(--hero-gap-btn); }

/* 5. §3 ZID DE CĂRĂMIZI + GRAVURĂ ------------------------ */
.wall {
  position: relative;
  overflow: hidden;
  padding-block-start: var(--wall-pad-top);
  background: var(--c-cream);
}

.wall__engraving {
  block-size: var(--engraving-h);
  inline-size: auto;
  max-inline-size: calc(100% - 2 * var(--engraving-inset));   /* rămâne mereu în cadru */
  margin-inline: auto var(--engraving-inset);
  margin-block-end: var(--wall-gap);
}

/* zid → bandă: spațiul vine DOAR din margin-top pe .ticker (fără padding pe zid) */
.wall--light .ticker { margin-block-start: var(--band-gap-light); }

/* 6. §4 ICOANA SF. NEAGOE -------------------------------- */
/* O singură imagine cu texte cu tot (sectiune-icoana / -mobil), fundal transparent:
   cremul vine din body. Marginea de jos a imaginii = marginea de sus a §5, fără spațiu. */
.icon-section {
  background: none;
  padding-block: var(--icon-pad-top) 0;   /* puțin spațiu sus; jos ZERO — icoana atinge §5 */
}
.icon-art { display: block; }
.icon-art img {
  display: block;
  inline-size: 100%;
  max-inline-size: var(--w-design);
  block-size: auto;
  margin-inline: auto;
}

/* 7. §5 RUGĂCIUNE (fundal închis) ------------------------ */
/* fără z-index pe secțiune: icoana din §4 (z-index 2) trebuie să rămână deasupra */
.prayer {
  position: relative;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  align-items: center;
  padding-block: var(--prayer-pad-top) var(--prayer-pad-bot);
  background: var(--c-brown-dark);
  color: var(--c-brick);
  text-align: center;
}

.prayer__floret {
  position: relative;
  z-index: 1;                        /* deasupra filigranului, care urcă până aici */
  display: block;
  inline-size: var(--floret-w);
  aspect-ratio: 1;                   /* viewBox floret.svg 176 × 176 */
  background: var(--c-brick);
  -webkit-mask: url("../assets/svg/floret.svg") center / contain no-repeat;
          mask: url("../assets/svg/floret.svg") center / contain no-repeat;
}

/* rugăciunea: același tipar ca paragraful hero (8 rânduri fixe, un <span>/rând);
   stema e ::before pe blocul de text (inset 0, contain) */
.prayer__text {
  position: relative;
  isolation: isolate;
  font-family: var(--f-display);
  font-size: var(--t-lead);
  line-height: var(--lh-text);
  text-align: center;
  max-inline-size: min(var(--w-prayer), var(--text-max-vw));
  margin-inline: auto;
  margin-block-start: var(--prayer-gap-text);
}
.prayer__text > span { display: block; text-wrap: balance; }
.prayer__text::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;                       /* sub text, peste fundal (isolation pe părinte) */
  pointer-events: none;
  background-color: var(--c-eagle-dark);
  -webkit-mask: url("../assets/svg/eagle.svg") center / contain no-repeat;
          mask: url("../assets/svg/eagle.svg") center / contain no-repeat;
}

.prayer__divider {
  display: block;
  inline-size: var(--divider-w);
  aspect-ratio: 1965 / 79;           /* viewBox ornament-divider.svg */
  margin-block: var(--prayer-gap-divider) var(--prayer-gap-wall);
  background: var(--c-brick);
  -webkit-mask: url("../assets/svg/ornament-divider.svg") center / contain no-repeat;
          mask: url("../assets/svg/ornament-divider.svg") center / contain no-repeat;
}

.prayer .ticker { margin-block-start: var(--band-gap-dark); }   /* zid → bandă, vezi --band-gap-dark */
.prayer .btn { margin-block-start: var(--prayer-gap-btn); }

/* 8. §6 IBAN --------------------------------------------- */
.iban {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--iban-gap);
  padding-block: var(--iban-pad-top) var(--iban-pad-bot);
  padding-inline: var(--gutter);
  background: var(--c-cream);
  color: var(--c-brick);
  text-align: center;
}
.iban__floret {
  display: block;
  inline-size: var(--floret-w-lg);
  aspect-ratio: 1;
  background: var(--c-brick);
  -webkit-mask: url("../assets/svg/floret.svg") center / contain no-repeat;
          mask: url("../assets/svg/floret.svg") center / contain no-repeat;
}
.iban__title {
  font-family: var(--f-letter);
  font-size: var(--t-iban);
  font-weight: normal;
  line-height: 1.3;
  letter-spacing: var(--ls-iban);
  text-transform: uppercase;
}
.iban__holder {
  margin-block: var(--iban-holder-gap-top) var(--iban-holder-gap-bot);   /* 8px sus / 32px jos */
  font-family: var(--f-display);
  font-size: var(--t-caps);
  letter-spacing: var(--ls-caps);
  text-indent: var(--ls-caps);
  text-transform: uppercase;
  text-align: center;
}

/* lista de conturi: o singură coloană, un rând per cont, separate printr-o linie subțire
   (clasele se numesc încă „card" — markup-ul e generat de copy-iban.js / tools/gen-iban-cards.mjs) */
.iban__grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 0;
  inline-size: 100%;
  max-inline-size: var(--iban-grid-w);
  margin-inline: auto;
}
.iban-card {
  padding-block: var(--iban-item-pad);
  border-block-end: 1px solid color-mix(in srgb, var(--c-brick) 22%, transparent);
  text-align: left;
  display: flex;
  flex-direction: column;
  gap: var(--iban-card-row-gap);
}
.iban-card:last-child { border-block-end: 0; }
.iban-card__head { display: flex; align-items: baseline; gap: 0.75em; flex-wrap: wrap; }
.iban-card__currency {
  font-family: var(--f-display);
  font-size: var(--t-iban-currency);
  letter-spacing: var(--ls-wide);
  text-transform: uppercase;
  color: var(--c-brick);
}
.iban-card__bank { font-family: var(--f-ui); font-size: var(--t-iban-bank); color: var(--c-brick); opacity: 0.8; }
.iban-card__row { display: flex; align-items: center; justify-content: space-between; gap: 0.75em; }
.iban-card__value {
  font-family: var(--f-display);          /* NU monospaced de sistem */
  font-size: var(--t-iban-value);
  font-variant-numeric: tabular-nums;
  letter-spacing: var(--ls-iban-value);
  line-height: 1.35;
  color: var(--c-brick);
  white-space: nowrap;                    /* mereu pe un rând; font-size-ul scade pe telefon (--t-iban-value) */
  min-inline-size: 0;
}
.iban-card__value--small { font-size: var(--t-iban-swift); opacity: 0.8; }
.iban-card__compact { display: none; }   /* IBAN fără spații — doar pe ecrane foarte înguste (responsive.css) */
.iban-card .btn--copy {
  flex: none;
  min-inline-size: var(--btn-copy-min);   /* lățime fixă: nu sare la „COPIAT ✓" */
  min-block-size: var(--btn-copy-h);      /* mai jos decât butonul din PDF, ca lista să respire */
  padding: var(--btn-copy-pad);
  gap: 0.5em;
}
.btn__icon { display: none; inline-size: 1.25em; block-size: 1.25em; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
html:not(.js) .iban-card .btn--copy { display: none; }   /* fără JavaScript: valorile rămân, butoanele (inutile) dispar */
.btn--copy[data-state="ok"] { background: var(--c-brown-head); }

.iban__note {
  max-inline-size: var(--iban-grid-w);
  font-family: var(--f-ui);
  font-size: var(--t-small);
  line-height: 1.5;
  color: var(--c-brick);
  opacity: 0.8;
}

/* 9. §7 SCRISOARE DE MULȚUMIRE --------------------------- */
.letter {
  position: relative;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  align-items: center;
  padding-block-start: var(--letter-pad-top);
  background: var(--c-cream);
  color: var(--c-brick);
  text-align: center;
}
.letter__title {
  font-family: var(--f-script);
  font-size: var(--t-script);
  font-weight: normal;
  line-height: 1.1;
  padding-inline: var(--gutter);
}
.letter__caps {
  margin-block-start: var(--letter-gap);
  padding-inline: var(--gutter);
  font-family: var(--f-ui);
  font-size: var(--t-caps);
  line-height: 1.5;
  letter-spacing: var(--ls-caps);
  text-transform: uppercase;
}
.letter__caps > span { display: block; }
.letter__floret {
  display: block;
  inline-size: var(--floret-w-sm);
  aspect-ratio: 1;
  margin-block-start: var(--letter-gap);
  background: var(--c-brick);
  -webkit-mask: url("../assets/svg/floret.svg") center / contain no-repeat;
          mask: url("../assets/svg/floret.svg") center / contain no-repeat;
}

/* corpul scrisorii: stema e ::before pe blocul de text (inset 0, contain) */
.letter__text {
  position: relative;
  isolation: isolate;
  max-inline-size: var(--w-letter);
  margin-block: var(--letter-gap) var(--letter-gap-lg);
  margin-inline: auto;
  padding-inline: var(--gutter);
  font-family: var(--f-letter);
  font-size: var(--t-letter);
  line-height: var(--lh-text);
  text-align: left;
}
.letter__text::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  pointer-events: none;
  background-color: var(--c-eagle-letter);
  -webkit-mask: url("../assets/svg/eagle.svg") center / contain no-repeat;
          mask: url("../assets/svg/eagle.svg") center / contain no-repeat;
}
.letter__text p { text-indent: var(--p-indent); }
.letter__text p + p { margin-block-start: var(--p-gap); }

.letter__signoff {
  text-indent: 0;
  margin-block-start: var(--p-gap);
}
.letter__signoff > span { display: block; }
.letter__signature {
  inline-size: var(--signature-w);
  max-inline-size: 100%;
  aspect-ratio: 497 / 120;           /* viewBox signature.svg (doar „Protos Cosma", de mână) */
  margin-block-start: var(--signature-overlap);   /* urcă ușor peste numele tipărit */
  background: var(--c-signature);
  -webkit-mask: url("../assets/svg/signature.svg") left center / contain no-repeat;
          mask: url("../assets/svg/signature.svg") left center / contain no-repeat;
}

.letter .btn { margin-block-start: var(--letter-gap-lg); }
.journal__label {                    /* „JURNAL DE ȘANTIER" — titlu de secțiune, singur pe rând */
  margin-block: var(--letter-gap-lg) var(--letter-gap);
  font-family: var(--f-ui);
  font-size: var(--t-section-label);
  font-weight: 400;
  letter-spacing: var(--ls-caps);
  text-indent: var(--ls-caps);
  text-transform: uppercase;
  color: var(--c-brown-head);        /* 23.5px: contrast */
  text-wrap: balance;                /* un rând la 390px; la zoom text 200% se rupe, nu iese */
}

/* 10. §8 JURNAL DE ȘANTIER ------------------------------- */
.journal {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: var(--journal-gap);
  padding-block-start: var(--journal-pad-top);
  background: var(--c-cream);
}
.journal__item {
  position: relative;
  overflow: hidden;
  margin: 0;
  aspect-ratio: 1;
}
.journal__item img {
  inline-size: 100%;
  block-size: 100%;
  object-fit: cover;
}
.journal__item--page { aspect-ratio: 4 / 5; }
.journal__item--wide {
  grid-column: 1 / -1;
  aspect-ratio: 16 / 7;
}
.journal__item--wide img { object-position: center 60%; }

/* nimic nu se suprapune peste fotografii: sigiliul (01, 02), rama și filigranul (03, 04)
   sunt deja imprimate în imagini */

/* apariție la scroll: starea implicită e VIZIBILĂ; .js-reveal e pusă din JS */
.js-reveal {
  opacity: 0;
  transform: translateY(var(--reveal-shift));
  transition:
    opacity   var(--reveal-dur) ease-out var(--reveal-delay, 0ms),
    transform var(--reveal-dur) ease-out var(--reveal-delay, 0ms);
}
.js-reveal.is-visible {
  opacity: 1;
  transform: none;
}
@media (prefers-reduced-motion: reduce) {
  .js-reveal { opacity: 1; transform: none; transition: none; }
}

/* 11. §9 FOOTER ------------------------------------------ */
/* O singură imagine decorativă (footer-complet / footer-mobil), cu fundal
   TRANSPARENT: fără background pe footer — cremul vine din body, iar în fâșia
   de sus fotografia aeriană din §8 rămâne vizibilă în jurul monumentului. */
.site-footer {
  position: relative;
  z-index: 1;                        /* imaginea se pune PESTE fotografia aeriană */
  color: var(--c-brick);
}
.footer-art {
  display: block;
  /* monumentul urcă 67px peste fotografia de deasupra (67/1440 = 4.65%).
     Procent din lățimea containerului = 4.65vw sub 1440px și rămâne corect
     și peste, unde pagina e plafonată la 1440. */
  margin-block-start: var(--footer-art-overlap);
}
.footer-art img {
  display: block;
  inline-size: 100%;                 /* brâul atinge ambele margini; fără max-width */
  max-inline-size: none;
  block-size: auto;
}

.footer-info {
  padding-block: var(--footer-info-pad);
  padding-inline: var(--gutter);
  font-family: var(--f-letter);
  font-size: var(--t-contact);
  line-height: 1.7;
  text-align: center;
  color: var(--c-brick);
}
.footer-info__name { text-transform: uppercase; letter-spacing: var(--ls-wide); }
.footer-info__legal { font-family: var(--f-ui); font-size: var(--t-small); letter-spacing: 0.04em; }
/* toate link-urile din subsol (telefoane, e-mail, legale): underline la hover, focus vizibil, ≥44px */
.footer-info a {
  display: inline-block;
  min-block-size: var(--tap-min);
  line-height: var(--tap-min);
  text-decoration: none;
}
.footer-info a:hover { text-decoration: underline; text-underline-offset: 0.2em; }
.footer-info a:focus-visible { outline: 3px solid var(--c-brick); outline-offset: 3px; }

/* 11b. PLAYER RADIO LIVE ----------------------------------
   Bară joasă, fixată jos cât timp .player-slot (din subsol) nu e vizibil; când slotul intră
   în ecran, JS scoate .is-floating și bara rămâne pe locul ei din subsol. Fără tranziții
   pe position — ar produce un salt. */
.player-slot { min-block-size: var(--player-h); }   /* rezervă locul, altfel sare */
.radio-player {
  display: flex;
  align-items: center;
  gap: var(--player-gap);
  block-size: var(--player-h);
  padding-inline: var(--gutter);
  background: var(--c-brown-dark);
  color: var(--c-cream);
  font-family: var(--f-letter);
}
.radio-player.is-floating {
  position: fixed;
  inset-inline: 0;
  inset-block-end: 0;
  z-index: var(--player-z);
  block-size: calc(var(--player-h) + env(safe-area-inset-bottom, 0px));
  padding-block-end: env(safe-area-inset-bottom, 0px);
  box-shadow: var(--player-shadow);
}
.radio-player__seal {
  flex: none;
  inline-size: var(--player-seal);
  aspect-ratio: 643 / 640;
  background: var(--c-brick);
  -webkit-mask: url("../assets/svg/logo-seal.svg") center / contain no-repeat;
          mask: url("../assets/svg/logo-seal.svg") center / contain no-repeat;
}
.radio-player__play {
  flex: none;
  inline-size: var(--player-play);
  block-size: var(--player-play);
  border-radius: 50%;
  background: var(--c-brick);
  color: var(--c-cream);
  display: grid;
  place-items: center;
}
.radio-player__play:focus-visible { outline: 3px solid var(--c-cream); outline-offset: 2px; }
.radio-player__icon { inline-size: 45%; block-size: 45%; fill: currentColor; }
.radio-player__icon--play  { margin-inline-start: 6%; }   /* triunghiul pare descentrat altfel */
.radio-player__icon--pause { display: none; }
.radio-player.is-playing .radio-player__icon--play  { display: none; }
.radio-player.is-playing .radio-player__icon--pause { display: block; }

.radio-player__info { display: flex; flex-direction: column; gap: 0.2em; min-inline-size: 0; }
.radio-player__label {
  font-family: var(--f-letter);
  font-size: var(--t-player-label);
  line-height: 1.2;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.radio-player__status {
  font-family: var(--f-ui);
  font-size: var(--t-player-status);
  letter-spacing: var(--ls-iban);    /* .12em */
  text-transform: uppercase;
  color: var(--c-cream);
  opacity: 0.6;
  white-space: nowrap;
}
.radio-player.is-playing .radio-player__status { color: var(--c-brick); opacity: 1; }

/* egalizator: 5 bare de 3px, animate doar în timpul redării */
.radio-player__eq { display: flex; align-items: flex-end; gap: 4px; block-size: 14px; margin-inline-start: auto; }
.radio-player__eq span { inline-size: 3px; block-size: 4px; border-radius: 2px; background: var(--c-brick); opacity: 0.5; }
.radio-player.is-playing .radio-player__eq span { opacity: 1; animation: eq-bounce 1s ease-in-out infinite; }
.radio-player__eq span:nth-child(2) { animation-delay: 0.15s; }
.radio-player__eq span:nth-child(3) { animation-delay: 0.30s; }
.radio-player__eq span:nth-child(4) { animation-delay: 0.10s; }
.radio-player__eq span:nth-child(5) { animation-delay: 0.25s; }
@keyframes eq-bounce { 0%, 100% { block-size: 4px; } 50% { block-size: 14px; } }
@media (prefers-reduced-motion: reduce) {
  .radio-player.is-playing .radio-player__eq span { animation: none; block-size: 10px; }
}

/* volum: pistă 2px --c-brick la 25%, cursor 11px --c-brick */
.radio-player__volume { display: flex; align-items: center; gap: 0.6em; inline-size: var(--player-volume-w); flex: none; }
.radio-player__mute { flex: none; display: grid; place-items: center; inline-size: 1.75rem; block-size: 1.75rem; color: var(--c-cream); }
.radio-player__mute:focus-visible { outline: 3px solid var(--c-cream); outline-offset: 2px; }
.radio-player__mute svg { inline-size: 18px; block-size: 18px; fill: none; stroke: currentColor; stroke-width: 1.6; stroke-linecap: round; stroke-linejoin: round; }
.radio-player__speaker { fill: currentColor; stroke: none; }
.radio-player__arc--mute { display: none; }
.radio-player__mute.is-muted .radio-player__arc--1,
.radio-player__mute.is-muted .radio-player__arc--2 { display: none; }
.radio-player__mute.is-muted .radio-player__arc--mute { display: block; }
.radio-player__mute.is-quiet .radio-player__arc--2 { display: none; }   /* volum ≤ 55%: un singur arc */
.radio-player__range {
  -webkit-appearance: none;
  appearance: none;
  flex: 1;
  min-inline-size: 0;                /* <input type=range> are 129px intrinseci și nu s-ar strânge în container */
  inline-size: 100%;
  block-size: 2px;
  border-radius: 2px;
  background: color-mix(in srgb, var(--c-brick) 25%, transparent);
  outline: none;
}
.radio-player__range::-webkit-slider-thumb {
  -webkit-appearance: none;
  inline-size: 11px; block-size: 11px; border-radius: 50%;
  background: var(--c-brick); cursor: pointer;
}
.radio-player__range::-moz-range-thumb {
  inline-size: 11px; block-size: 11px; border: 0; border-radius: 50%;
  background: var(--c-brick); cursor: pointer;
}
.radio-player__range:focus-visible { outline: 3px solid var(--c-cream); outline-offset: 4px; }

/* 12. BANNER COOKIE-URI ---------------------------------- */
.cookie-banner {
  position: fixed;
  inset-inline: var(--gutter);
  inset-block-end: calc(var(--player-h) + var(--gutter));   /* deasupra player-ului fix */
  z-index: 50;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 1em;
  max-inline-size: 42rem;
  margin-inline: auto;
  padding: 1.25em 1.5em;
  border-radius: 1em;
  background: var(--c-brown-dark);
  color: var(--c-cream);
  font-family: var(--f-ui);
  font-size: var(--t-small);
  line-height: 1.5;
  box-shadow: 0 1em 2em rgba(0, 0, 0, 0.25);
}
.cookie-banner[hidden] { display: none; }   /* display:flex ar bate [hidden] din UA stylesheet */
.cookie-banner__text { flex: 1 1 18rem; margin: 0; }
.cookie-banner__text a { text-decoration: underline; text-underline-offset: 0.2em; }
.cookie-banner__btn {
  flex: none;
  min-block-size: var(--tap-min);    /* zonă de atins ≥ 44px */
  padding: 0.7em 1.4em;
  border-radius: var(--btn-radius);
  background: var(--c-brick);
  color: var(--c-white);
  font-family: var(--f-display);
  letter-spacing: var(--ls-wide);
  text-indent: var(--ls-wide);
  text-transform: uppercase;
  white-space: nowrap;
}
.cookie-banner__btn:focus-visible { outline-color: var(--c-cream); }
