/*
 * fv2026 · Bright Friday (Friday 13 Nov 2026): the hanging bulb of js/fv-bright.js.
 * Loaded only by footer.tpl when fv-config.tpl sets $fv_bright. Own colours (no theme tokens), every class
 * prefixed fvb-, every piece position: fixed (nothing pushes the page: no layout shift).
 * Stacking: under the add-to-cart layer (98), the cart dropdown (100), the drawer (1000) and the cookie notice;
 * over the header and the dafnesearch layer (44), although the bulb hides while that layer or the drawer is open.
 * Handwritten font: Caveat (SIL Open Font License 1.1, fonts/caveat-OFL.txt), subset to Latin, weight 700.
 */
@font-face { font-family: "Fvb Caveat"; font-style: normal; font-weight: 400 700; font-display: swap; src: url("../fonts/caveat-fvb.woff2") format("woff2"); }

.fvb-root [hidden] { display: none !important; }
.fvb-root.fvb-off, html.ba-abierta .fvb-root { display: none !important; }

/* The bulb: hangs from the bottom of the header (JS moves it up to the top edge as the page scrolls) */
.fvb-hang { position: fixed; top: 0; right: max(8px, 5vw, calc((100vw - 1280px) / 2 + 8px)); z-index: 92;
  width: clamp(112px, 11vw, 150px); pointer-events: none; will-change: transform; }
.fvb-root .fvb-lamp { display: block; width: 100%; margin: 0; padding: 0; border: 0; border-radius: 8px; background: none;
  box-shadow: none; color: #2a2622; transform-origin: 37.5% 0; pointer-events: none; cursor: default; -webkit-tap-highlight-color: transparent; }
.fvb-root .fvb-lamp:focus { outline: none; }
/* Focus ring only after keyboard use: the bulb gets focus when the page starts in the dark */
.fvb-root.fvb-kbd .fvb-lamp:focus-visible { outline: 3px solid #ffcf5a; outline-offset: 2px; }
.fvb-lamp svg { display: block; width: 100%; max-width: none; height: auto; overflow: visible; }
.fvb-hit { pointer-events: auto; cursor: pointer; }
.fvb-cable { stroke: #2a2622; }
.fvb-glass-off { stroke: #9aa7a0; }
.fvb-glass-on, .fvb-halo, .fvb-fil-on { opacity: 0; transition: opacity .12s; }
.fvb-on .fvb-glass-on, .fvb-on .fvb-halo, .fvb-on .fvb-fil-on { opacity: 1; }
.fvb-on svg { filter: drop-shadow(0 0 26px rgba(255, 196, 70, .5)); }
.fvb-chain { transition: transform .16s ease-out; }
.fvb-pull .fvb-chain { transform: translateY(13px); }
/* In the dark: a lighter cable and a faint rim so the switched-off bulb stays easy to see */
.fvb-is-dark .fvb-cable { stroke: #a59d92; }
.fvb-is-dark .fvb-lamp:not(.fvb-on) svg { filter: drop-shadow(0 0 10px rgba(255, 255, 255, .22)); }
.fvb-tag-text { font-family: "Fvb Caveat", "Bradley Hand", "Segoe Print", "Comic Sans MS", cursive; fill: #3b2a17; text-anchor: middle; }

/* The dark: the shop shows faintly underneath; while dark the layer takes every tap (a tap lights the page) */
.fvb-night { position: fixed; inset: 0; z-index: 91; pointer-events: none; opacity: 0; background: rgba(6, 7, 11, .88); transition: opacity .4s ease-in; }
.fvb-night.fvb-dark { opacity: 1; pointer-events: auto; cursor: pointer; }
.fvb-night.fvb-busy { cursor: default; }
.fvb-night.fvb-spot { opacity: 1; background: radial-gradient(circle at var(--fvb-lx, 80%) var(--fvb-ly, 200px), rgba(255, 190, 80, .10) 0, rgba(6, 7, 11, .55) 240px, rgba(6, 7, 11, .95) 620px); }
.fvb-night.fvb-fade { transition: opacity 1.1s; }
.fvb-reveal, .fvb-darkmsg { position: fixed; z-index: 93; left: 50%; top: 0; transform: translate(-50%, calc(44vh - 50%)); width: min(560px, calc(100vw - 48px));
  margin: 0; text-align: center; color: #fff1cf; pointer-events: none; opacity: 0; transition: opacity .5s; }
.fvb-reveal.fvb-show, .fvb-darkmsg.fvb-show { opacity: 1; }
.fvb-darkmsg { transition: opacity .4s ease-in; }
.fvb-reveal b, .fvb-darkmsg b { display: block; font: 700 clamp(30px, 6.5vw, 56px)/1.04 "Dafne Lexend", "Trebuchet MS", system-ui, sans-serif; letter-spacing: -.02em; text-wrap: balance; color: #fff1cf; }
.fvb-reveal span, .fvb-darkmsg span { display: block; margin-top: 12px; font: 700 clamp(24px, 4.2vw, 32px)/1.2 "Fvb Caveat", "Bradley Hand", cursive; color: #ffcf5a; }

/* The coupon card: beside the bulb on wide screens (JS places it), a bottom sheet on phones. Black with cream text and
   a warm rim of bulb light, so it stands out on the light shop and on the dark seasonal themes (blackfriday).
   Every text is at least 4.5:1 against #0b0c10 (WCAG AA); the focus ring (#ffcf5a) is over 3:1. */
.fvb-card { position: fixed; z-index: 95; top: 0; right: 16px; width: 340px; max-width: calc(100vw - 32px); will-change: transform; }
.fvb-box { position: relative; display: flex; flex-direction: column; gap: 10px; max-height: calc(100vh - 32px); overflow-y: auto; overscroll-behavior: contain;
  padding: 18px; border: 1.5px solid #ffcf5a; border-radius: 14px; background: #0b0c10; color: #fff1cf; text-align: left; color-scheme: dark;
  font: 400 15px/1.45 "Dafne Inter", system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;
  box-shadow: 0 0 0 4px rgba(255, 196, 70, .28), 0 0 34px 6px rgba(255, 190, 80, .45), 0 18px 50px -12px rgba(0, 0, 0, .6);
  animation: fvb-drop .45s cubic-bezier(.2, 1.4, .4, 1); }
.fvb-box:focus { outline: none; }
@keyframes fvb-drop { from { opacity: 0; transform: translateY(-14px) scale(.96); } }
.fvb-root .fvb-box h2 { margin: 0; padding-right: 28px; font: 700 22px/1.12 "Dafne Lexend", "Trebuchet MS", system-ui, sans-serif; letter-spacing: -.01em; color: #fff1cf; }
.fvb-root .fvb-box p { margin: 0; font-size: 14px; color: #d9ccae; }
.fvb-root .fvb-box .fvb-lead { font-size: 15px; color: #fff1cf; }
.fvb-code { display: flex; gap: 8px; align-items: stretch; }
.fvb-code output { flex: 1; min-width: 0; display: flex; align-items: center; justify-content: center; padding: 8px 10px; border: 2px dashed #ffcf5a; border-radius: 8px;
  background: #1a1608; font: 700 20px/1.2 ui-monospace, Menlo, Consolas, monospace; letter-spacing: .1em; color: #ffcf5a; user-select: all; -webkit-user-select: all; }
.fvb-share { display: flex; flex-direction: column; gap: 8px; padding-top: 10px; border-top: 1px solid #3a3426; }
.fvb-share q { font: 700 19px/1.15 "Fvb Caveat", "Bradley Hand", cursive; color: #ffd98a; quotes: none; }
.fvb-share q::before, .fvb-share q::after { content: none; }
.fvb-row { display: flex; flex-wrap: wrap; gap: 8px; }
.fvb-root .fvb-btn { display: inline-flex; align-items: center; justify-content: center; min-height: 40px; margin: 0; padding: 8px 12px; border: 1px solid #ffcf5a; border-radius: 8px;
  background: #ffcf5a; color: #0b0c10; font: 600 14px/1.2 "Dafne Inter", system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif; text-decoration: none; cursor: pointer; white-space: nowrap; }
.fvb-root .fvb-btn:hover { background: #ffe08f; border-color: #ffe08f; color: #0b0c10; text-decoration: none; }
.fvb-root .fvb-btn.fvb-ghost { background: transparent; color: #fff1cf; border-color: #8f7c4e; }
.fvb-root .fvb-btn.fvb-ghost:hover { background: #221d10; color: #fff1cf; }
.fvb-root .fvb-btn:focus-visible, .fvb-root .fvb-x:focus-visible { outline: 2px solid #ffcf5a; outline-offset: 3px; }
.fvb-root .fvb-x { position: absolute; top: 8px; right: 8px; width: 36px; height: 36px; display: flex; align-items: center; justify-content: center; margin: 0; padding: 0;
  border: 0; border-radius: 8px; background: none; color: #e8dcc0; font: 400 24px/1 system-ui, sans-serif; cursor: pointer; }
.fvb-root .fvb-x:hover { background: #221d10; color: #fff1cf; }
.fvb-qr { display: none; align-items: center; gap: 12px; padding-top: 4px; }
.fvb-qr canvas { flex: 0 0 auto; width: 104px; height: 104px; image-rendering: pixelated; border-radius: 4px; }
.fvb-root .fvb-qr p { font-size: 13px; color: #d9ccae; }
@media (min-width: 720px) { .fvb-qr { display: flex; } }
.fvb-sr { position: absolute !important; width: 1px; height: 1px; margin: -1px; padding: 0; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }

@media (max-width: 719px) {
  .fvb-card { top: auto; right: 0 !important; bottom: 0; left: 0; width: auto; max-width: none; transform: none !important; }
  .fvb-box { max-height: 82vh; border-radius: 18px 18px 0 0; border-bottom: 0; padding-bottom: calc(18px + env(safe-area-inset-bottom, 0px)); }
}
@media (prefers-reduced-motion: reduce) {
  .fvb-box { animation: none; }
  .fvb-chain, .fvb-night, .fvb-reveal, .fvb-darkmsg, .fvb-glass-on, .fvb-halo, .fvb-fil-on { transition: none; }
}
@media print { .fvb-root { display: none !important; } }
