/* Scenele campaniilor și decorul bannerului — refăcut 28.09.2026 (seara).
   Imaginile: static/campanii/img/*.svg (desenate de noi). Obiectele 3D stau pe
   #camp3d (scena3d.js). Nimic nu prinde clicuri. Vezi efecte.js. */
.camp-strat { position: fixed; inset: 0; pointer-events: none; z-index: 150; overflow: hidden; }
#camp3d { position: fixed; inset: 0; width: 100%; height: 100%; pointer-events: none; z-index: 150; }
/* 19.10.2026: decorul trece pe sub meniu și pe sub banda campaniei (z 150 < 200), iar particulele și obiectele 3D
   nu mai cad peste coloana din mijloc (titlu, formular, carduri de prețuri): acolo masca le stinge. Sus, în dreptul
   meniului, rămân pe toată lățimea. Pe telefon coloana e tot ecranul, deci le lăsăm doar în partea de sus.
   La fel decorul (.camp-strat): iepurașii, sticla, pungile trec „pe după” conținut. Anul mare de la Anul Nou
   stă pe un strat liber (.camp-strat-liber), ca intrarea lui din mijlocul ecranului să se vadă. */
/* 26.10.2026: masca de pe coloana din mijloc scoasă — pe paginile Halden hero-ul e un card mare și închis, iar decorul
   (schelet, lilieci, fantome) dispărea exact acolo (userul: „se văd doar puțin pe margini”). Totul rămâne fără clicuri.
   Pe telefon formularul ocupă ecranul, deci acolo decorul rămâne doar sus. */
@media (max-width: 900px) {
  #campCanvas, #camp3d, .camp-strat:not(.camp-strat-liber) {
    -webkit-mask-image: linear-gradient(180deg, #000 0, #000 110px, transparent 240px);
            mask-image: linear-gradient(180deg, #000 0, #000 110px, transparent 240px);
  }
}
.camp-strat img { position: absolute; display: block; user-select: none; }

/* Butonul de sunet din banner */
.camp-sunet { flex-shrink: 0; background: rgba(255,255,255,.06); border: 0; border-radius: 9px; color: rgba(244,244,246,.8); font: inherit;
  height: 34px; padding: 0 11px; cursor: pointer; display: inline-flex; align-items: center; gap: 6px; box-shadow: inset 0 0 0 1px rgba(255,255,255,.09);
  transition: background .15s, color .15s; }
.camp-sunet span { font-size: 12px; font-weight: 600; }
.camp-sunet:hover { background: rgba(255,255,255,.12); color: #fff; }
.camp-sunet.pornit { background: color-mix(in srgb, var(--ca) 22%, transparent); color: #fff; }

/* Luna (Crăciun, Halloween) */
.camp-luna { top: 196px; right: 5vw; width: min(12vw, 140px); opacity: .9; filter: drop-shadow(0 0 40px rgba(255,244,200,.45)); animation: campLuna 8s ease-in-out infinite alternate; }
@keyframes campLuna { to { transform: translateY(8px); } }
/* Fantomele de Halloween (26.10.2026, în locul lunii roșii): plutesc pe margini, translucide */
.camp-fantoma { top: 190px; right: 5vw; width: min(8vw, 96px); opacity: .82; filter: drop-shadow(0 0 22px rgba(200,220,255,.35));
  animation: campFantoma 6s ease-in-out infinite alternate; }
@keyframes campFantoma { 0% { translate: 0 0; rotate: -4deg; } 100% { translate: 0 -18px; rotate: 4deg; } }
/* fantomele care se ridică de jos, unduind, și se sting sus */
.camp-fantoma-zbor { bottom: -140px; width: calc(84px * var(--m, 1)); opacity: 0; scale: var(--sx, 1) 1;
  filter: drop-shadow(0 0 18px rgba(200,220,255,.35)); animation: campFantomaZbor 16s ease-in-out forwards; }
@keyframes campFantomaZbor {
  0% { opacity: 0; transform: translate(0, 0) rotate(-6deg); }
  12% { opacity: .7; }
  30% { transform: translate(3vw, -28vh) rotate(5deg); }
  55% { transform: translate(-2vw, -55vh) rotate(-5deg); }
  80% { opacity: .55; transform: translate(2.5vw, -82vh) rotate(4deg); }
  100% { opacity: 0; transform: translate(0, -105vh) rotate(-3deg); } }
/* dovlecii fioroși, așezați jos pe margini; lumina dinăuntru pâlpâie */
.camp-dovleac { bottom: 40px; width: min(7vw, 104px); animation: campPalpaie 3.2s steps(1) infinite;
  filter: drop-shadow(0 0 16px rgba(255,140,30,.55)); }
.camp-dovleac.mic { width: min(4.2vw, 62px); }
@media (max-width: 1700px) { .camp-dovleac.mic { display: none; } }   /* pe ecranele obișnuite marginile sunt înguste */
.camp-dovleac-st { left: 1.5vw; } .camp-dovleac-st.mic { left: calc(1.5vw + min(6.4vw, 94px)); }
.camp-dovleac-dr { right: 1.5vw; transform: scaleX(-1); } .camp-dovleac-dr.mic { right: calc(1.5vw + min(6.4vw, 94px)); }
@keyframes campPalpaie { 0%, 100% { filter: drop-shadow(0 0 16px rgba(255,140,30,.55)) brightness(1); }
  17% { filter: drop-shadow(0 0 10px rgba(255,140,30,.35)) brightness(.9); } 22% { filter: drop-shadow(0 0 20px rgba(255,150,40,.7)) brightness(1.06); }
  61% { filter: drop-shadow(0 0 13px rgba(255,140,30,.45)) brightness(.95); } 66% { filter: drop-shadow(0 0 18px rgba(255,140,30,.6)) brightness(1); } }

/* ── Crăciun ── */
/* Decorul bannerului (09.10, cerut de user în locul „zăpezii” din cercuri tăiate):
   ghirlandă de beculețe pe margine, două globuri atârnate, fulgi cu șase brațe în fundal.
   Elementele le pune efecte.js (`decorCraciun`), și la nivelul 0 (banner-ul din aplicație). */
.camp-banner.camp-tema-craciun { overflow: visible; padding-top: 28px; }
.camp-decor { position: absolute; inset: 0; pointer-events: none; border-radius: inherit; }
.camp-fulgi { position: absolute; inset: 0; overflow: hidden; border-radius: inherit; }
.camp-fulgi img { position: absolute; opacity: .2; animation: campFulgRot 24s linear infinite; }
@keyframes campFulgRot { to { transform: rotate(360deg); } }
.camp-ghirlanda { position: absolute; left: 12px; right: 12px; top: -4px; height: 24px; display: flex; overflow: hidden; }
.camp-ghirlanda i { position: relative; flex: 0 0 34px; height: 24px; --c: #ff4d4d;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 34 10'%3E%3Cpath d='M0 1Q17 11 34 1' fill='none' stroke='%23163a22' stroke-width='1.6'/%3E%3C/svg%3E") 0 0 / 34px 10px no-repeat; }
.camp-ghirlanda i::before { content: ''; position: absolute; left: 50%; top: 5px; width: 5px; height: 4px; margin-left: -2.5px;
  border-radius: 1px; background: #2a3b2e; }
.camp-ghirlanda b { position: absolute; left: 50%; top: 8px; width: 7px; height: 11px; margin-left: -3.5px;
  border-radius: 50% 50% 50% 50% / 40% 40% 60% 60%; background: var(--c); box-shadow: 0 0 9px 2px var(--c);
  animation: campBec 1.6s ease-in-out infinite; }
.camp-ghirlanda i.c1 { --c: #ffd84d; } .camp-ghirlanda i.c2 { --c: #4dff88; }
.camp-ghirlanda i.c3 { --c: #4dc3ff; } .camp-ghirlanda i.c4 { --c: #ff7de9; }
.camp-glob { position: absolute; top: 2px; translate: -50% 0; z-index: 1; display: flex; flex-direction: column; align-items: center;
  transform-origin: 50% 0; animation: campGlob 3.2s ease-in-out infinite alternate; }
.camp-glob::before { content: ''; width: 1px; height: 5px; background: rgba(255,255,255,.7); }
.camp-glob img { position: static; width: 17px; filter: drop-shadow(0 2px 3px rgba(0,0,0,.35)); }
@keyframes campGlob { from { transform: rotate(-7deg); } to { transform: rotate(7deg); } }
.camp-banner.camp-tema-craciun > :not(.camp-decor) { position: relative; }
@media (prefers-reduced-motion: reduce) {
  .camp-fantoma, .camp-dovleac { animation: none; }
  .camp-fantoma-zbor { display: none; }
  .camp-fulgi img, .camp-glob, .camp-ghirlanda b, .camp-nor { animation: none; }
}
.camp-beculete { position: absolute; top: 0; left: 0; right: 0; height: 46px; display: flex; justify-content: flex-start; gap: 37px; padding-left: 18px; overflow: hidden; }
.camp-beculete::before { content: ''; position: absolute; left: 0; right: 0; top: 6px; height: 14px;
  border-bottom: 2px solid rgba(40,40,40,.8); border-radius: 0 0 50% 50% / 0 0 100% 100%; }
.camp-beculete i { position: relative; top: 14px; width: 9px; height: 14px; border-radius: 50% 50% 50% 50% / 40% 40% 60% 60%;
  --c: #ff4d4d; background: var(--c); box-shadow: 0 0 12px 3px var(--c); animation: campBec 1.6s ease-in-out infinite; }
.camp-beculete i.c1 { --c: #ffd84d; } .camp-beculete i.c2 { --c: #4dff88; }
.camp-beculete i.c3 { --c: #4dc3ff; } .camp-beculete i.c4 { --c: #ff7de9; }
@keyframes campBec { 50% { opacity: .35; box-shadow: 0 0 2px 0 var(--c); } }
.camp-sanie { top: 186px; left: 0; width: min(16vw, 210px); filter: drop-shadow(0 0 1px rgba(255,255,255,.4));
  animation: campSanie 12s cubic-bezier(.35,.1,.4,1) forwards; }
/* 19.10.2026: sania și luna stau pe stratul liber, chiar sub meniu și deasupra titlului (înainte sania trecea prin titlu) */
@keyframes campSanie { 0% { transform: translate(-110%, 40px) rotate(-6deg); } 55% { transform: translate(52vw, 4px) rotate(-4deg); }
  100% { transform: translate(115vw, -10px) rotate(-6deg); } }

/* Norii care trec prin fața lunii și dâra saniei (stratul liber, 19.10.2026) */
.camp-nor { position: absolute; top: 206px; right: -320px; width: 300px; height: 64px; border-radius: 50%; pointer-events: none;
  background: radial-gradient(closest-side, rgba(var(--nc), .42), rgba(var(--nc), .14) 60%, transparent);
  filter: blur(7px); animation: campNor 75s linear infinite; }
.camp-nor-2 { top: 244px; width: 220px; height: 34px; animation-duration: 105s; animation-delay: -48s; opacity: .8; }
/* trec doar prin dreptul lunii și se destramă înainte de titlu */
@keyframes campNor { 0% { transform: translateX(0); opacity: 0; } 12%, 78% { opacity: 1; } 100% { transform: translateX(-34vw); opacity: 0; } }
.camp-dara { position: absolute; inset: 0; width: 100%; height: 100%; }
@media (max-width: 900px) { .camp-nor, .camp-dara { display: none; } }

/* ── Halloween ── */
.camp-ceata { position: absolute; left: -20%; right: -20%; bottom: -8vh; height: 40vh; opacity: .28;
  background: radial-gradient(ellipse at 30% 70%, rgba(200,190,230,.35), transparent 60%), radial-gradient(ellipse at 75% 80%, rgba(170,150,210,.3), transparent 55%);
  filter: blur(18px); animation: campCeata 22s ease-in-out infinite alternate; }
.camp-ceata-2 { animation-duration: 31s; animation-direction: alternate-reverse; opacity: .2; bottom: -12vh; }
@keyframes campCeata { to { transform: translateX(12%); } }
.camp-fulger { position: absolute; inset: 0; background: #e8e4ff; opacity: 0; mix-blend-mode: screen; }
.camp-fulger.lumina { animation: campFulger 1.1s ease-out; }
@keyframes campFulger { 0% { opacity: 0; } 4% { opacity: .5; } 8% { opacity: .05; } 12% { opacity: .38; } 30%, 100% { opacity: 0; } }
.camp-panza { top: 0; width: min(24vw, 240px); opacity: .9; filter: brightness(.18) drop-shadow(0 0 1px rgba(255,255,255,.7)); }   /* fire închise + contur deschis: se văd și pe alb, și pe hero-ul închis (26.10) */
.camp-panza-st { left: 0; }
.camp-panza-dr { right: 0; transform: scaleX(-1); }
.camp-paianjen { position: absolute; top: 0; left: 86%; width: 44px; display: flex; flex-direction: column; align-items: center;
  animation: campFir 9s ease-in-out infinite, campLeaganFir 2.4s ease-in-out infinite alternate; transform-origin: 50% 0; }
/* Se leagănă tot, fir + păianjen, din capătul de sus al firului (27.10.2026: doar imaginea se mișca, firul stătea drept).
   `rotate` separat de `transform`, ca să nu se calce cu coborârea din campFir. */
.camp-paianjen::before { content: ''; width: 1px; height: 26vh; background: linear-gradient(rgba(40,40,48,.15), rgba(40,40,48,.7)); box-shadow: 0 0 0 .5px rgba(255,255,255,.35); }
.camp-paianjen img { position: static; width: 44px; margin-top: -6px; }
@keyframes campFir { 0%, 100% { transform: translateY(-20vh); } 40%, 65% { transform: translateY(0); } }
@keyframes campLeaganFir { from { rotate: -5deg; } to { rotate: 5deg; } }
@keyframes campLeagan { from { transform: rotate(-5deg); } to { transform: rotate(5deg); } }
.camp-schelet { position: absolute; top: 0; width: min(13vw, 120px); display: flex; flex-direction: column; align-items: center;
  animation: campSchelet 9s cubic-bezier(.3,1.4,.5,1) forwards; }
.camp-schelet::before { content: ''; width: 2px; height: 16vh; background: linear-gradient(#6b5a3e, #a58d62); }
.camp-schelet img { position: static; width: 100%; animation: campLeagan 1.9s ease-in-out infinite alternate; transform-origin: 50% 0; }
@keyframes campSchelet { 0% { transform: translateY(-110%); } 14% { transform: translateY(0); } 80% { transform: translateY(0); } 100% { transform: translateY(-120%); } }
.camp-vrajitoare { top: 196px; left: 0; width: min(22vw, 260px); animation: campVraj 11s linear forwards; }   /* sub meniu (19.10) */
@keyframes campVraj { 0% { transform: translate(115vw, 60px) rotate(-3deg); } 50% { transform: translate(55vw, 0) rotate(2deg); } 100% { transform: translate(-40vw, 40px) rotate(-2deg); } }
.camp-liliac { top: var(--y, 20vh); left: 0; width: calc(64px * var(--m, 1)); animation: campLiliac 7s linear forwards;
  filter: drop-shadow(0 4px 6px rgba(0,0,0,.4)); }
@keyframes campLiliac { 0% { transform: translate(-10vw, 0); } 25% { transform: translate(22vw, -4vh); } 50% { transform: translate(50vw, 3vh); }
  75% { transform: translate(78vw, -5vh); } 100% { transform: translate(112vw, 0); } }

/* ── Paște ── */
.camp-cos { left: 1.5vw; bottom: 1vh; width: min(20vw, 180px); filter: drop-shadow(0 8px 14px rgba(0,0,0,.35)); animation: campCos 3s ease-in-out infinite alternate; }
@keyframes campCos { to { transform: rotate(-2deg) translateY(-2px); } }
.camp-iepure { position: absolute; bottom: 1.5vh; left: 0; width: min(16vw, 150px); animation: campIepure 12s linear forwards; }
.camp-iepure img { position: static; width: 100%; animation: campSalt .7s cubic-bezier(.3,0,.6,1) infinite; transform-origin: 50% 100%; }
.camp-iepure.invers { animation-name: campIepureInvers; }
.camp-iepure.invers img { animation-name: campSaltInvers; }
@keyframes campIepure { from { transform: translateX(-20vw); } to { transform: translateX(110vw); } }
@keyframes campIepureInvers { from { transform: translateX(110vw); } to { transform: translateX(-20vw); } }
/* Saltul (19.10.2026): se ghemuiește, se întinde la desprindere, plutește, se înclină la coborâre și se turtește la
   aterizare; umbra de pe jos se micșorează și se estompează cât e în aer. */
@keyframes campSalt {
  0%, 100% { transform: translateY(0) scale(1.07, .86); }
  14% { transform: translateY(-8px) scale(.94, 1.1) rotate(-9deg); }
  46% { transform: translateY(-44px) scale(1, 1) rotate(-3deg); }
  78% { transform: translateY(-10px) scale(.97, 1.05) rotate(7deg); }
  90% { transform: translateY(0) scale(1.1, .84) rotate(0); } }
@keyframes campSaltInvers {
  0%, 100% { transform: scaleX(-1) translateY(0) scale(1.07, .86); }
  14% { transform: scaleX(-1) translateY(-8px) scale(.94, 1.1) rotate(-9deg); }
  46% { transform: scaleX(-1) translateY(-44px) scale(1, 1) rotate(-3deg); }
  78% { transform: scaleX(-1) translateY(-10px) scale(.97, 1.05) rotate(7deg); }
  90% { transform: scaleX(-1) translateY(0) scale(1.1, .84) rotate(0); } }
.camp-iepure img { position: relative; z-index: 1; }
.camp-umbra { position: absolute; left: 14%; right: 14%; bottom: 2px; height: 10px; border-radius: 50%; background: radial-gradient(closest-side, rgba(0,0,0,.45), transparent);
  animation: campUmbra .7s cubic-bezier(.3,0,.6,1) infinite; }
@keyframes campUmbra { 0%, 100% { transform: scale(1.05); opacity: .9; } 46% { transform: scale(.55); opacity: .35; } 90% { transform: scale(1.1); opacity: 1; } }

/* ── Anul Nou ── */
.camp-an { position: absolute; left: 50%; top: 42%; transform: translate(-50%, -50%) scale(1); transition: all 1.4s cubic-bezier(.7,0,.2,1);
  font: 900 min(26vw, 280px)/1 'Inter', 'DM Sans', system-ui, sans-serif; letter-spacing: -.04em; opacity: 0;
  animation: campAnIntra 1.4s cubic-bezier(.2,.8,.2,1) .3s forwards; }
.camp-an span { background: linear-gradient(100deg, #8a5d00 0%, #ffe7a0 20%, #e9b949 35%, #fff6d6 50%, #c9922a 65%, #ffe7a0 80%, #8a5d00 100%);
  background-size: 250% 100%; -webkit-background-clip: text; background-clip: text; color: transparent;
  filter: drop-shadow(0 10px 30px rgba(233,185,73,.45)); animation: campAnLuciu 3.5s linear infinite; }
/* `animation: none`: altfel animația de intrare (forwards) ține transform-ul mare și anul nu se mai retrage (19.10) */
.camp-an.mic { top: calc(170px + 3vh); left: auto; right: 3vw; transform: translate(0, 0) scale(.24); transform-origin: 100% 0; opacity: .9 !important; animation: none; }
@keyframes campAnIntra { from { opacity: 0; transform: translate(-50%, -40%) scale(.6); filter: blur(10px); } to { opacity: 1; transform: translate(-50%, -50%) scale(1); filter: none; } }
@keyframes campAnLuciu { to { background-position: -250% 0; } }
.camp-sticla { position: absolute; left: 2vw; bottom: -2vh; width: min(7vw, 70px); transform: rotate(-18deg); transform-origin: 50% 100%; }
.camp-sticla img { position: static; width: 100%; filter: drop-shadow(0 10px 18px rgba(0,0,0,.5)); }
.camp-dop { position: absolute; left: 36%; top: 0; width: 28%; height: 6%; background: linear-gradient(90deg, #8a6512, #ffe7a0, #8a6512); border-radius: 4px; opacity: 0; }
.camp-sticla.pop { animation: campScutura .5s ease; }
.camp-sticla.pop .camp-dop { animation: campDop 1.4s cubic-bezier(.2,.8,.4,1) forwards; }
@keyframes campScutura { 30% { transform: rotate(-24deg); } 60% { transform: rotate(-14deg); } }
@keyframes campDop { 0% { opacity: 1; transform: translate(0, 0) rotate(0); } 100% { opacity: 0; transform: translate(40vw, -60vh) rotate(720deg); } }
.camp-pahare { right: 2vw; bottom: -1vh; width: min(18vw, 180px); filter: drop-shadow(0 10px 20px rgba(0,0,0,.45)); }

/* Pe Prețuri cardurile ocupă aproape toată lățimea: obiectele din colțurile de jos (sticla, paharele, pungile,
   coșul) apar doar pe ecranele foarte late, unde au loc lângă carduri (19.10.2026). */
@media (max-width: 1700px) {
  .camp-pe-preturi .camp-sticla, .camp-pe-preturi .camp-pahare, .camp-pe-preturi .camp-punga, .camp-pe-preturi .camp-cos { display: none; }
}

@media (max-width: 900px) { .camp-strat-liber .camp-luna, .camp-strat-liber .camp-sanie, .camp-strat-liber .camp-fantoma { display: none; } }
@media (max-width: 600px) {
  .camp-dovleac.mic, .camp-fantoma-zbor { display: none; } .camp-dovleac { width: 56px; }
  .camp-sunet span { display: none; }
  .camp-panza { width: 120px; }
  .camp-an.mic { top: 130px; }
  .camp-sticla { width: 44px; } .camp-pahare { width: 110px; } .camp-punga { width: 56px; }
}
@media (prefers-reduced-motion: reduce) {
  .camp-strat, #camp3d { display: none; }
}

/* Halloween: dovleci întregi și ceață interactivă la baza paginii. */
.hw-scena { position: absolute; inset: 0; height: 0; z-index: 150; pointer-events: none; }
.hw-scena * { pointer-events: none; }
.hw-sol { position: fixed; bottom: 0; left: 0; right: 0; height: 200px; overflow: hidden; }
.hw-dovleci { position: absolute; width: clamp(160px, 20vw, 285px); bottom: 10px; filter: drop-shadow(0 8px 9px #0008); }
.hw-dovleci-st { left: 10px; }
.hw-dovleci-dr { right: 10px; width: clamp(140px, 17vw, 240px); transform: scaleX(-1); bottom: 10px; }
@media (max-width: 699px) {
  .hw-sol { height: 130px; }
  .hw-dovleci { width: min(43vw, 160px); bottom: 7px; }
  .hw-dovleci-st { left: 5px; }
  .hw-dovleci-dr { width: min(38vw, 140px); right: 5px; bottom: 7px; }
}
@media (prefers-reduced-motion: reduce) {
  .hw-scena * { animation: none !important; transition: none !important; }
}

.hw-ceata-vie { position: absolute; bottom: -20px; left: 0; width: 100%; height: 180px; mask-image: linear-gradient(transparent, #000 30%, #000 85%, transparent); }
.hw-dovleci { height: auto; aspect-ratio: 2 / 1; }
@media (max-width: 699px) { .hw-ceata-vie { height: 110px; bottom: -8px; opacity: .65; } }

/* Black Friday — grafit, argintiu și un singur reflex în banda ofertei. */
.camp-banner.camp-tema-blackfriday {
  --ca: #e3e7ed; --cf: #101216; --ct: #14171b;
  --bf-reflex: 70%;
  background: radial-gradient(ellipse 460px 200px at var(--bf-reflex) 0%, #b5c5dc12, transparent 75%), #101216;
  border-bottom: 1px solid #aeb9c73d;
  color: #f3f5f8;
  isolation: isolate;
}
.camp-tema-blackfriday::after {
  content: ''; position: absolute; left: 0; right: 0; bottom: 0; height: 1px;
  background: linear-gradient(90deg, transparent 0%, #b7c9e34d 40%, #f0f4ff 50%, #b7c9e34d 60%, transparent 100%);
  background-size: 300% 100%; background-position: 100% 0;
  pointer-events: none; opacity: .65;
}
.camp-tema-blackfriday.camp-bf-animat::after { animation: campBfReflex 12s ease-in-out infinite; }
@keyframes campBfReflex { 0%, 65% { background-position: 100% 0; opacity: .2; } 83% { opacity: .85; } 100% { background-position: -100% 0; opacity: .2; } }
.camp-tema-blackfriday .camp-in { padding-top: 19px; padding-bottom: 19px; gap: 26px; }
.camp-tema-blackfriday .camp-ico { display: none; }
.camp-tema-blackfriday .camp-text { min-width: 0; }
.camp-tema-blackfriday .camp-eticheta-tema { display: none; }
.camp-tema-blackfriday .camp-titlu { font-size: clamp(17px, 1.45vw, 21px); font-weight: 750; line-height: 1.22; letter-spacing: -.025em; }
.camp-tema-blackfriday .camp-sub { color: #b2bac6; font-size: 12.5px; margin-top: 6px; }
.camp-tema-blackfriday .camp-procent { font-size: 46px; font-weight: 800; letter-spacing: -.065em; color: #f2f5fa; text-shadow: none; }
.camp-tema-blackfriday .camp-procent small { font-size: 10px; letter-spacing: 0; text-transform: none; font-weight: 500; color: #aeb8c5; margin-bottom: 5px; }
.camp-tema-blackfriday .camp-ceas { gap: 7px; }
.camp-tema-blackfriday .camp-ceas > span { min-width: 30px; padding: 0; border-radius: 0; background: none; box-shadow: none; }
.camp-tema-blackfriday .camp-ceas b { font-size: 18px; font-weight: 550; color: #dde3ed; }
.camp-tema-blackfriday .camp-ceas i { font-size: 9px; letter-spacing: 0; text-transform: none; margin-top: 5px; color: #96a0af; }
.camp-tema-blackfriday .camp-ceas-et { color: #b6bfcc; letter-spacing: 0; text-transform: none; }
.camp-tema-blackfriday .camp-btn { padding: 12px 19px; border-radius: 8px; background: #e3e7ed; color: #14171b; font-size: 13px; box-shadow: 0 1px 0 #fff9 inset; }
.camp-tema-blackfriday .camp-btn:hover { background: #fff; box-shadow: 0 3px 16px #bec9dc25; }
.camp-tema-blackfriday .camp-x { width: 40px; height: 40px; border-radius: 8px; color: #aeb8c5; }
.camp-banner.camp-tema-blackfriday.camp-inline { background: #101216; border: 1px solid #aeb9c733; border-radius: 12px; }
.camp-tema-blackfriday.camp-inline .camp-in { padding: 17px 20px; }
.camp-tema-blackfriday.camp-inline .camp-procent { font-size: 38px; }
.camp-tema-blackfriday .camp-sunet { background: #ffffff06; box-shadow: none; }
.camp-blackfriday-public .camp-bf-card { border-color: #aeb9c73d; }
.camp-blackfriday-public .pricing-card.featured { border-color: #c9d1dd99; box-shadow: 0 0 0 1px #c9d1dd12, 0 20px 50px #0003; }
.camp-blackfriday-public[data-tema-pub='inchisa'] .pricing-card .price-amount { color: #f0f3f8; }
.camp-blackfriday-public .camp-eticheta { border-radius: 5px; background: #e3e7ed; color: #14171b; }
@media (max-width: 1000px) {
  .camp-tema-blackfriday .camp-in { gap: 18px; }
  .camp-tema-blackfriday .camp-sub { display: none; }
  .camp-tema-blackfriday .camp-procent { font-size: 38px; }
}
@media (max-width: 760px) {
  .camp-tema-blackfriday .camp-in, .camp-tema-blackfriday.camp-inline .camp-in {
    position: relative; display: grid; grid-template-columns: minmax(0, 1fr) auto;
    padding: 16px 18px; gap: 14px 16px; align-items: center;
  }
  .camp-tema-blackfriday .camp-text { grid-column: 1 / -1; grid-row: 1; padding-right: 28px; }
  .camp-tema-blackfriday .camp-titlu { font-size: 16px; line-height: 1.35; letter-spacing: -.02em; text-align: left; overflow-wrap: break-word; }
  .camp-tema-blackfriday .camp-x { position: absolute; right: 6px; top: 6px; width: 40px; height: 40px; margin: 0; }
  .camp-tema-blackfriday .camp-procent { grid-column: 2; grid-row: 2; margin: 0; justify-self: end; align-self: center; text-align: center; }
  .camp-tema-blackfriday .camp-ceas {
    grid-column: 1; grid-row: 2; display: grid; grid-template-columns: repeat(4, 24px);
    gap: 5px 7px; padding: 0; border: 0; justify-content: start; align-self: center;
  }
  .camp-tema-blackfriday .camp-ceas > span { min-width: 0; width: 24px; padding: 0; text-align: center; }
  .camp-tema-blackfriday .camp-ceas b { font-size: 15px; line-height: 1.2; }
  .camp-tema-blackfriday .camp-ceas i { font-size: 9px; margin-top: 4px; }
  .camp-tema-blackfriday .camp-ceas-et { grid-column: 1 / -1; max-width: none; margin: 0 0 2px; text-align: left; font-size: 10px; }
  .camp-tema-blackfriday .camp-btn { grid-column: 1 / -1; grid-row: 3; justify-self: stretch; padding: 12px 16px; min-height: 42px; box-sizing: border-box; text-align: center; }
  .camp-tema-blackfriday .camp-sunet { grid-column: 1 / -1; grid-row: 4; justify-self: start; }
  .camp-tema-blackfriday:not(:has(.camp-ceas)) .camp-btn { grid-column: 1; grid-row: 2; justify-self: start; }
  .camp-tema-blackfriday:not(:has(.camp-procent)) .camp-ceas { grid-column: 1 / -1; }
}
@media (prefers-reduced-motion: reduce) {
  .camp-tema-blackfriday.camp-bf-animat::after { animation: none; }
}

/* Black Friday: etichetă suspendată, textură și mișcare vizibile. */
.camp-tema-blackfriday .bf-sale-stamp {
  position: relative; padding: 10px 18px 10px 25px; min-width: 80px;
  background: linear-gradient(125deg, #e8c98e 0%, #fae9bf 32%, #d2a95e 68%, #efd39c 100%);
  color: #211b11; font-size: 38px; text-shadow: 0 1px 0 #ffffff45;
  clip-path: polygon(13px 0, 100% 0, 100% 100%, 13px 100%, 0 50%);
  isolation: isolate; overflow: hidden; box-sizing: border-box;
}
.camp-tema-blackfriday .bf-sale-stamp::before { content: ''; position: absolute; left: 9px; top: calc(50% - 3px); width: 6px; height: 6px; border-radius: 50%; background: #101216; box-shadow: 1px 1px 1px #ffffff7a; }
.bf-stamp-number { position: relative; z-index: 1; display: block; }
.camp-tema-blackfriday .bf-sale-stamp small { color: #564526; font-weight: 600; }
.bf-sale-stamp::after, .bf-tag-body::after {
  content: ''; position: absolute; inset: -50% -100%; pointer-events: none;
  background: linear-gradient(110deg, transparent 39%, #ffffff12 43%, #ffffffbb 48%, #ffffff21 53%, transparent 57%);
  transform: translateX(-55%); mix-blend-mode: screen;
}
.camp-bf-animat .bf-sale-stamp::after, .bf-tag-intrare .bf-tag-body::after { animation: bfFoil 6.5s ease-in-out infinite; }
@keyframes bfFoil { 0%, 25% { transform: translateX(-55%); } 63%, 100% { transform: translateX(55%); } }
.bf-tag-scene { position: absolute; top: 0; left: 0; width: 100%; height: 0; z-index: 160; pointer-events: none; }
.bf-tag-scene[hidden] { display: none; }
.bf-tag-anchor { position: absolute; width: 142px; height: 196px; }
.bf-tag-rig { position: absolute; inset: 0; transform-origin: 50% 0; transform: rotate(-6deg); filter: drop-shadow(8px 13px 8px #0005); }
.bf-tag-cord { position: absolute; left: calc(50% - 1px); top: 0; width: 2px; height: 48px; background: linear-gradient(90deg,#74664a,#dfd1b4,#786d56); z-index: 2; }
.bf-tag-cord::before { content: ''; position: absolute; width: 8px; height: 5px; left: -3px; top: -2px; border-radius: 50%; background: #d3b57a; box-shadow: 0 2px 3px #0008; }
.bf-tag-body {
  --bf-foil-x: 40%; position: absolute; top: 30px; width: 142px; height: 162px;
  display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 9px;
  color: #2a2112; overflow: hidden;
  clip-path: polygon(20% 0,80% 0,100% 19%,100% 100%,0 100%,0 19%);
  background: radial-gradient(ellipse at var(--bf-foil-x) 10%,#fff3d3a8,transparent 65%), repeating-linear-gradient(0deg,#ffffff0c 0px,#ffffff0c 1px,transparent 1px,transparent 3px),linear-gradient(125deg,#b38943,#f1d9a5 27%,#e2bd78 62%,#a77b38);
  box-shadow: inset 0 0 0 1px #fff3d76b, inset 0 -5px 9px #6d45162b;
}
.bf-tag-body::before { content: ''; position: absolute; top: 12px; left: calc(50% - 4px); width: 8px; height: 8px; border-radius: 50%; background: #15191c; box-shadow: 0 1px 0 #fff6; }
.bf-tag-name { margin-top: 20px; max-width: 100px; font: 800 16px/.95 'DM Sans',sans-serif; text-align: center; text-transform: uppercase; letter-spacing: .01em; }
.bf-tag-value { font: 850 43px/1 'DM Sans',sans-serif; letter-spacing: -.065em; text-shadow: 0 1px 0 #ffffff5c; }
.bf-tag-value small { display: block; font-size: 10px; line-height: 1.2; letter-spacing: 0; text-align: center; font-weight: 500; }
.bf-tag-brand { font: 600 9px/1 'DM Sans',sans-serif; letter-spacing: .01em; padding-top: 3px; border-top: 1px solid #6d50234a; }
.bf-tag-intrare { animation: bfTagDrop .95s cubic-bezier(.2,.7,.25,1) both; }
@keyframes bfTagDrop { from { opacity: 0; translate: 0 -40px; } to { opacity: 1; translate: 0 0; } }
@media (max-width: 760px) {
  .bf-tag-scene { display: none; }
  .camp-tema-blackfriday .bf-sale-stamp { padding: 10px 14px 10px 22px; font-size: 32px; min-width: 108px; }
}
@media (prefers-reduced-motion: reduce) {
  .bf-tag-intrare, .camp-bf-animat .bf-sale-stamp::after, .bf-tag-intrare .bf-tag-body::after { animation: none; }
}

@media (min-width: 761px) {
  .camp-blackfriday-public .pricing-header.bf-tag-header > * { max-width: calc(100% - 170px); }
  .camp-blackfriday-public .pricing-header.bf-tag-header > p { max-width: min(64ch, calc(100% - 170px)); }
}

/* Ceas cu clapete: jumătatea de sus cade, apoi se așază jumătatea de jos. */
#campBanner:is(.camp-tema-blackfriday, .camp-tema-halloween) .camp-ceas { gap: 9px; }
#campBanner:is(.camp-tema-blackfriday, .camp-tema-halloween) .camp-ceas > span { position: relative; width: 54px; min-width: 54px; }
#campBanner:is(.camp-tema-blackfriday, .camp-tema-halloween) .camp-ceas b.bf-flip-source { position: absolute; width: 1px; height: 1px; padding: 0; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
.bf-flip { --bf-clock-h: 62px; position: relative; display: block; width: 100%; height: var(--bf-clock-h); perspective: 480px; border-radius: 6px; box-shadow: 0 3px 7px #0007, 0 0 0 1px #ffffff12; font: 700 34px/var(--bf-clock-h) 'DM Sans',sans-serif; font-variant-numeric: tabular-nums; color: #f3eee1; }
.bf-flip-fata { position: absolute; left: 0; right: 0; height: 50%; display: block; overflow: hidden; background: linear-gradient(#606977,#454d59); backface-visibility: hidden; transform-style: preserve-3d; }
.bf-flip-fata > span { display: block; height: var(--bf-clock-h); width: 100%; line-height: var(--bf-clock-h); text-align: center; }
.bf-flip-sus, .bf-flip-cade-sus { top: 0; border-radius: 6px 6px 0 0; border-bottom: 1px solid #080a0d; box-sizing: border-box; }
.bf-flip-jos, .bf-flip-cade-jos { bottom: 0; border-radius: 0 0 6px 6px; background: linear-gradient(#343c47,#454e5b); }
.bf-flip-jos > span, .bf-flip-cade-jos > span { margin-top: calc(var(--bf-clock-h) / -2); }
.bf-flip-cade-sus { transform-origin: center bottom; z-index: 3; }
.bf-flip-cade-jos { transform-origin: center top; transform: rotateX(90deg); z-index: 4; }
.bf-flip-schimba .bf-flip-cade-sus { animation: bfClapetaSus .38s cubic-bezier(.38,0,.85,.5) forwards; }
.bf-flip-schimba .bf-flip-cade-jos { animation: bfClapetaJos .42s .38s cubic-bezier(.12,.6,.3,1) forwards; }
@keyframes bfClapetaSus {
  0% { transform: rotateX(0); filter: brightness(1.15); box-shadow: 0 2px 2px #0005; }
  45% { box-shadow: 0 9px 10px #000c; filter: brightness(1.3); }
  100% { transform: rotateX(-90deg); filter: brightness(.65); box-shadow: 0 17px 18px #000e; }
}
@keyframes bfClapetaJos {
  0% { transform: rotateX(90deg); filter: brightness(1.3); box-shadow: 0 18px 20px #000e; }
  55% { box-shadow: 0 10px 12px #000d; filter: brightness(1.12); }
  82% { transform: rotateX(-9deg); box-shadow: 0 4px 5px #0009; }
  100% { transform: rotateX(0); filter: brightness(1); box-shadow: 0 1px 1px #0004; }
}
.bf-flip::after {
  content: ''; position: absolute; left: 2px; right: 2px; top: 50%; height: 20px;
  background: linear-gradient(#000b, transparent); pointer-events: none; opacity: 0; z-index: 2;
}
.bf-flip-schimba::after { animation: bfClapetaUmbra .8s ease-in-out; }
@keyframes bfClapetaUmbra { 0%,100% { opacity: 0; height: 3px; } 35%,55% { opacity: .95; height: 25px; } 85% { opacity: .35; height: 8px; } }
#campBanner:is(.camp-tema-blackfriday, .camp-tema-halloween) .camp-ceas i { margin-top: 7px; font-size: 10px; }
@media (min-width: 761px) and (max-width: 1000px) {
  #campBanner:is(.camp-tema-blackfriday, .camp-tema-halloween) .camp-ceas { gap: 6px; }
  #campBanner:is(.camp-tema-blackfriday, .camp-tema-halloween) .camp-ceas > span { width: 42px; min-width: 42px; }
  .bf-flip { --bf-clock-h: 54px; font-size: 28px; }
}
@media (max-width: 760px) {
  .camp-tema-blackfriday .camp-in, .camp-tema-blackfriday.camp-inline .camp-in { gap: 16px 12px; }
  .camp-tema-blackfriday .camp-text { grid-column: 1; padding-right: 0; }
  .camp-tema-blackfriday .bf-title-event { display: block; font-size: 18px; font-weight: 800; line-height: 1.15; }
  .camp-tema-blackfriday .bf-title-brand { display: block; font-size: 11px; font-weight: 500; color: #b9c2cf; margin-top: 5px; white-space: nowrap; }
  .camp-tema-blackfriday .camp-procent { grid-column: 2; grid-row: 1; margin-right: 22px; }
  .camp-tema-blackfriday .bf-sale-stamp { font-size: 29px; min-width: 101px; padding: 10px 12px 10px 21px; }
  #campBanner:is(.camp-tema-blackfriday, .camp-tema-halloween) .camp-ceas, .camp-tema-blackfriday:not(:has(.camp-btn)) .camp-ceas {
    grid-column: 1 / -1; grid-row: 2; grid-template-columns: repeat(4,minmax(0,1fr)); width: 100%; gap: 8px;
  }
  #campBanner:is(.camp-tema-blackfriday, .camp-tema-halloween) .camp-ceas > span { width: 100%; min-width: 0; }
  .bf-flip { --bf-clock-h: 62px; font-size: 34px; }
  #campBanner:is(.camp-tema-blackfriday, .camp-tema-halloween) .camp-ceas i { font-size: 10px; margin-top: 6px; }
  .camp-tema-blackfriday .camp-btn { grid-column: 1 / -1; grid-row: 3; }
  .camp-tema-blackfriday:not(:has(.camp-ceas)) .camp-btn { grid-column: 1 / -1; grid-row: 2; justify-self: stretch; }
}
@media (prefers-reduced-motion: reduce) {
  .bf-flip-schimba .bf-flip-cade-sus, .bf-flip-schimba .bf-flip-cade-jos { animation: none; }
}

/* La Halloween păstrăm tema portocalie, cu același ceas mare și contrastant. */
#campBanner.camp-tema-halloween .camp-ceas > span { background: none; box-shadow: none; border-radius: 0; padding: 0; }
#campBanner.camp-tema-halloween .bf-flip { color: #fff1dc; }
@media (max-width: 760px) {
  #campBanner.camp-tema-halloween .camp-in { position: relative; display: grid; grid-template-columns: minmax(0,1fr) auto; padding: 16px 18px; gap: 16px 12px; }
  #campBanner.camp-tema-halloween .camp-ico { display: none; }
  #campBanner.camp-tema-halloween .camp-text { grid-column: 1; grid-row: 1; min-width: 0; }
  #campBanner.camp-tema-halloween .camp-titlu { font-size: 14px; line-height: 1.35; overflow-wrap: break-word; text-align: left; }
  #campBanner.camp-tema-halloween .camp-procent { grid-column: 2; grid-row: 1; margin: 0 24px 0 0; font-size: 34px; }
  #campBanner.camp-tema-halloween .camp-x { position: absolute; right: 5px; top: 6px; margin: 0; width: 40px; height: 40px; }
  #campBanner.camp-tema-halloween .camp-ceas { grid-column: 1 / -1; grid-row: 2; display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 8px; width: 100%; }
  #campBanner.camp-tema-halloween .camp-ceas > span { width: 100%; min-width: 0; }
  #campBanner.camp-tema-halloween .camp-ceas-et { grid-column: 1 / -1; max-width: none; margin: 0; text-align: left; }
  #campBanner.camp-tema-halloween .camp-btn { grid-column: 1 / -1; grid-row: 3; margin: 0; text-align: center; padding: 12px 16px; }
  #campBanner.camp-tema-halloween .camp-sunet { grid-column: 1 / -1; grid-row: 4; justify-self: start; }
}
