/*!
 * LBF Sunday Funday Parade — v2 HEADER ONLY
 * assets/css/sunday-funday-hero-v2.css
 *
 * Loads AFTER the base parade stylesheet and overrides only the hero.
 * Sections 2 through 10 are untouched.
 *
 * Every rule is scoped under body.lbf-sfp-v2, a class only
 * page-sunday-funday-parade-v2.php adds, so v1 is unaffected and still
 * selectable from the Template dropdown.
 *
 * ── LIGHT PANEL, AND WHAT THAT COST ───────────────────────────────
 * This shipped on a deep purple panel in 32.91.0 and is now light. That is not
 * a recolour: two of the three original effects were additive light — a
 * mix-blend-mode:screen blast on the trumpet and a screen ripple on the flag —
 * and screen over a light surface does nothing at all. Both are deleted rather
 * than dimmed, because a dimmed version of an invisible effect is still
 * invisible.
 *
 * What replaces them works by MOTION and by DARKENING, which is what a light
 * panel can actually show:
 *
 *   march bounce   the badge steps in 2/4, with a contact shadow
 *   sparkle pops   eight stars at the measured cluster positions
 *   confetti       eighteen ribbons falling past, kept from the dark build
 *
 * ── HEIGHT ────────────────────────────────────────────────────────
 * Panel padding 2.1rem, badge 320px, headline capped at 2rem on one line.
 * That lands about 22% above the compact preview and a little under the
 * original dark header, which was the brief.
 */

body.lbf-sfp-v2{
  --sfp-gold:#d99a1f;
  --sfp-goldl:#f0c14b;
  --sfp-royal:#2a4fd6;
  --sfp-violet:#6b3fc4;
  /* the panel, lightest to deepest */
  --sfp-p1:#ffffff; --sfp-p2:#fbf9ff; --sfp-p3:#f5f1ff;
  --sfp-ink:#1d1633;
  --sfp-body:#463a63;
  --sfp-mute:#6b5f88;
  --sfp-line:#e2dcf0;
}

/* ════════════════════════════════════════════════════════════
   §1  PANEL
   ════════════════════════════════════════════════════════════ */

body.lbf-sfp-v2 .sfp2-hero{
  position:relative; overflow:hidden;
  border-radius:1.5rem;
  padding:clamp(1.4rem,2.4vw,2.1rem) clamp(1.2rem,2.2vw,1.9rem);
  background:linear-gradient(168deg,var(--sfp-p1),var(--sfp-p2) 55%,var(--sfp-p3));
  border:1px solid var(--sfp-line);
  box-shadow:0 16px 42px rgba(60,35,120,.10);
}
/* The base hero paints bunting and two orbs. Both were built for the old
   photo-led layout and fight the badge. */
body.lbf-sfp-v2 .sfp2-hero .pd-bunting,
body.lbf-sfp-v2 .sfp2-hero .pd-hero-orb,
body.lbf-sfp-v2 .sfp2-hero .pd-hero-bgwrap{ display:none; }
body.lbf-sfp-v2 .sfp2-hero::before{ content:none; }

/* No vignette on a light panel — darkening the corners of white just looks
   like a dirty screen. */
body.lbf-sfp-v2 .sfp2-vig{ display:none; }

/* ════════════════════════════════════════════════════════════
   §2  CONFETTI
   The ambient layer. Ribbons fall the full height of the panel, each with its
   own duration, delay, drift and spin, so no two are in step and the loop
   never reads as a loop. Pure CSS: eighteen spans is cheaper than a canvas
   and cannot drift out of sync with anything.
   ════════════════════════════════════════════════════════════ */

body.lbf-sfp-v2 .sfp2-fall{
  position:absolute; inset:0; z-index:2; pointer-events:none; overflow:hidden;
}
body.lbf-sfp-v2 .sfp2-fall .c{
  position:absolute; top:-8%; height:11px; border-radius:2px; opacity:0;
  animation:sfp2-fall var(--dur,10s) linear var(--delay,0s) infinite;
}
/* Deeper than the dark-panel version and carrying a small shadow. The old
   colours were tuned to glow against purple; on white the pale ends of each
   gradient vanished entirely. */
body.lbf-sfp-v2 .sfp2-fall .c{ box-shadow:0 1px 2px rgba(60,35,120,.18); }
/* Darkened again: the first light-panel pass left the top of this gradient
   at 1.84:1 on white, which is not a colour, it is a rumour. */
body.lbf-sfp-v2 .sfp2-fall .c--g{ background:linear-gradient(180deg,#c9942a,#96690a); }
body.lbf-sfp-v2 .sfp2-fall .c--b{ background:linear-gradient(180deg,#4f79f0,#1f3bb0); }
body.lbf-sfp-v2 .sfp2-fall .c--p{ background:linear-gradient(180deg,#9a6ae0,#5a2aa8); }
/* rotate3d gives the twist of a real ribbon rather than a spinning rectangle. */
@keyframes sfp2-fall{
  0%   { opacity:0;   transform:translate(0,0) rotate3d(1,1,.2,0deg); }
  6%   { opacity:.95; }
  86%  { opacity:.85; }
  100% { opacity:0;   transform:translate(var(--drift,0px),118vh) rotate3d(1,1,.2,var(--spin,600deg)); }
}

/* ════════════════════════════════════════════════════════════
   §3  BADGE + ITS TWO LIGHTS
   ════════════════════════════════════════════════════════════ */

body.lbf-sfp-v2 .sfp2-grid{
  position:relative; z-index:4;
  display:grid; grid-template-columns:minmax(0,.86fr) minmax(0,1.14fr);
  gap:clamp(1rem,2.4vw,2rem); align-items:center;
}
body.lbf-sfp-v2 .sfp2-left{ position:relative; display:flex; justify-content:center; align-items:center; }

/* Ratio-locked to the artwork. Without this the two percentages below resolve
   against the column, which is wider than the image at most widths, and both
   effects land off the badge. No z-index — position:relative alone does not
   create a stacking context, and one here would isolate the blast's screen
   blend from the panel, which is what stopped the derby lamps reading. */
body.lbf-sfp-v2 .sfp2-art{
  position:relative; width:100%; max-width:320px; aspect-ratio:700/799;
}
body.lbf-sfp-v2 .sfp2-mark{
  position:relative; z-index:2; width:100%; height:100%; object-fit:contain; display:block;
  filter:drop-shadow(0 10px 18px rgba(60,35,120,.18));
}

/* ── MARCH BOUNCE ────────────────────────────────────────────
   A parade marches in 2/4. The badge rises on the beat and drops between,
   and the shadow tightens and darkens as it lands. The shadow is doing the
   work: without one a bobbing logo reads as floating rather than stepping. */
body.lbf-sfp-v2 .sfp2-art{ animation:sfp2-bob 1.15s cubic-bezier(.4,0,.55,1) infinite; }
@keyframes sfp2-bob{ 0%,100%{ transform:translateY(0); } 45%{ transform:translateY(-11px); } }
body.lbf-sfp-v2 .sfp2-shadow{
  position:absolute; z-index:0; left:50%; bottom:-3%;
  width:56%; height:16px; border-radius:50%; transform:translateX(-50%); pointer-events:none;
  background:radial-gradient(ellipse at center, rgba(60,35,120,.34), transparent 72%);
  filter:blur(2px);
  animation:sfp2-shadow 1.15s cubic-bezier(.4,0,.55,1) infinite;
}
@keyframes sfp2-shadow{
  0%,100%{ opacity:.9;  transform:translateX(-50%) scale(1); }
  45%    { opacity:.42; transform:translateX(-50%) scale(.74); }
}

/* ── SPARKLE POPS ─────────────────────────────────────────────
   Eight four-point stars at the measured sparkle clusters in the artwork,
   staggered so they twinkle rather than blink together. Drawn as a clipped
   star rather than a dot, because a dot at this size reads as dust. */
body.lbf-sfp-v2 .sfp2-sp{
  position:absolute; z-index:3; width:calc(16px * var(--s,1)); aspect-ratio:1;
  pointer-events:none; opacity:0;
  transform:translate(-50%,-50%) scale(0) rotate(0deg);
  animation:sfp2-sp 5s cubic-bezier(.2,1.5,.4,1) infinite;
  animation-delay:var(--d,0s);
}
body.lbf-sfp-v2 .sfp2-sp::before,
body.lbf-sfp-v2 .sfp2-sp::after{
  content:""; position:absolute; inset:0; background:var(--sfp-goldl); border-radius:2px;
}
body.lbf-sfp-v2 .sfp2-sp::before{
  clip-path:polygon(50% 0,58% 42%,100% 50%,58% 58%,50% 100%,42% 58%,0 50%,42% 42%);
}
body.lbf-sfp-v2 .sfp2-sp::after{ transform:rotate(45deg) scale(.6); opacity:.75; }
@keyframes sfp2-sp{
  0%,72%{ opacity:0;  transform:translate(-50%,-50%) scale(0)  rotate(0deg); }
  80%   { opacity:1;  transform:translate(-50%,-50%) scale(1)  rotate(45deg); }
  92%   { opacity:.5; transform:translate(-50%,-50%) scale(.8) rotate(70deg); }
  100%  { opacity:0;  transform:translate(-50%,-50%) scale(0)  rotate(90deg); }
}

/* ════════════════════════════════════════════════════════════
   §4  COPY
   ════════════════════════════════════════════════════════════ */

body.lbf-sfp-v2 .sfp2-copy{ position:relative; z-index:4; min-width:0; max-width:660px; }
body.lbf-sfp-v2 .sfp2-sr{
  position:absolute; width:1px; height:1px; padding:0; margin:-1px;
  overflow:hidden; clip:rect(0 0 0 0); clip-path:inset(50%); white-space:nowrap; border:0;
}

/* The sponsor block takes the PARAGRAPH'S OWN BOX so the rule under it cannot
   overhang the text — the ch measure only resolves the same if the font does
   too, hence the two declarations here. Change one, change .sfp2-p. */
body.lbf-sfp-v2 .sfp2-presents{
  width:min(100%,54ch);
  font-family:'Plus Jakarta Sans',system-ui,sans-serif;
  font-size:clamp(.82rem,.98vw,.92rem);
  margin:0 0 1rem;
  display:flex; flex-direction:column; align-items:center; text-align:center;
}
/* Cream plate. The sponsor mark's median pixel is pure black: 1.22:1 on this
   panel, 19.65:1 on cream. Same answer Buckeye, Richland and Ohio Social
   Sports all needed. */
body.lbf-sfp-v2 .sfp2-spon{
  display:block; line-height:0; width:fit-content;
  background:#fff; border:1px solid var(--sfp-line); border-radius:12px;
  padding:.42rem .78rem; margin:0 auto .5rem;
  box-shadow:0 4px 14px rgba(60,35,120,.08);
  transition:transform .18s ease, box-shadow .18s ease;
}
body.lbf-sfp-v2 .sfp2-spon img{ display:block; width:auto; height:clamp(44px,4.6vw,62px); }
/* ── SPONSOR PLATE ON HOVER ───────────────────────────────────
   The mark is a kid and two dogs on an arc. Nothing in it can be animated
   individually without cutting the artwork apart, so the PLATE reacts instead:
   it lifts, and a soft sheen crosses the card once.

   The sheen is clipped by the plate's own overflow and travels on a ::after
   that is only painted while hovered, so it costs nothing at rest. It runs
   ONCE per hover rather than looping — a repeating shine on a link reads as a
   button demanding to be pressed. */
body.lbf-sfp-v2 .sfp2-spon{ position:relative; overflow:hidden; }
body.lbf-sfp-v2 a.sfp2-spon:hover,
body.lbf-sfp-v2 a.sfp2-spon:focus-visible{
  transform:translateY(-3px);
  box-shadow:0 12px 26px rgba(60,35,120,.2);
  border-color:#c9b6ef;
}
body.lbf-sfp-v2 a.sfp2-spon:focus-visible{ outline:3px solid var(--sfp-gold); outline-offset:4px; }
body.lbf-sfp-v2 a.sfp2-spon::after{
  content:""; position:absolute; top:0; bottom:0; left:0; width:42%;
  transform:translateX(-180%); pointer-events:none; opacity:0;
  background:linear-gradient(100deg,transparent 0 34%,rgba(201,148,42,.16) 44%,
    rgba(217,154,31,.34) 50%, rgba(201,148,42,.16) 56%, transparent 66%);
}
body.lbf-sfp-v2 a.sfp2-spon:hover::after,
body.lbf-sfp-v2 a.sfp2-spon:focus-visible::after{
  opacity:1; animation:sfp2-shine .72s cubic-bezier(.4,0,.3,1) 1;
}
@keyframes sfp2-shine{ from{ transform:translateX(-180%); } to{ transform:translateX(260%); } }
/* The mark itself leans in a hair. Enough to feel alive, not enough to look
   like it is being squashed. */
body.lbf-sfp-v2 .sfp2-spon img{ transition:transform .3s cubic-bezier(.16,1,.3,1); }
body.lbf-sfp-v2 a.sfp2-spon:hover img,
body.lbf-sfp-v2 a.sfp2-spon:focus-visible img{ transform:scale(1.035); }

body.lbf-sfp-v2 .sfp2-cred{
  display:flex; align-items:baseline; justify-content:center; flex-wrap:wrap; gap:.4rem;
  margin:0 0 .55rem; font-family:'Outfit',system-ui,sans-serif; line-height:1.25;
}
body.lbf-sfp-v2 .sfp2-cred .c1{
  font-size:.64rem; font-weight:700; letter-spacing:.16em; text-transform:uppercase; color:var(--sfp-mute);
}
body.lbf-sfp-v2 .sfp2-cred .c2{ font-size:.88rem; font-weight:800; color:var(--sfp-ink); }
/* ── THE DIVIDER IS A TICKER ──────────────────────────────────
   It still has to read as a horizontal rule when nothing moves — that is the
   job the divider does — but it now carries the parade details while doing it.

   THE SEAM IS THE WHOLE TRICK. Two identical strips run end to end and the
   animation translates by exactly -50%, which puts the loop point on a frame
   identical to the start. Any other distance and the tape visibly jumps once
   per cycle. Edit the copy in one span and you must edit the other.

   The text carries information, so it clears AA at 5.79:1 on the track rather
   than merely being visible. */
body.lbf-sfp-v2 .sfp2-rulewrap{ position:relative; width:100%; height:16px; }
body.lbf-sfp-v2 .sfp2-tick{
  position:absolute; inset:0; overflow:hidden; border-radius:3px;
  background:rgba(107,63,196,.07);
  border-top:1px solid rgba(107,63,196,.24);
  border-bottom:1px solid rgba(107,63,196,.24);
  /* fade the ends so words are never chopped mid-letter on a hard edge */
  -webkit-mask-image:linear-gradient(90deg,transparent 0,#000 6%,#000 94%,transparent 100%);
          mask-image:linear-gradient(90deg,transparent 0,#000 6%,#000 94%,transparent 100%);
  -webkit-mask-size:100% 100%;   mask-size:100% 100%;
  -webkit-mask-repeat:no-repeat; mask-repeat:no-repeat;
}
body.lbf-sfp-v2 .sfp2-tape{
  position:absolute; top:0; left:0; height:100%;
  display:flex; align-items:center; white-space:nowrap;
  animation:sfp2-tape 22s linear infinite; will-change:transform;
}
body.lbf-sfp-v2 .sfp2-tape > span{
  flex:0 0 auto; padding:0 1rem;
  font-family:'Outfit',system-ui,sans-serif; font-size:.55rem; font-weight:800;
  letter-spacing:.2em; text-transform:uppercase; color:var(--sfp-violet);
}
body.lbf-sfp-v2 .sfp2-tape > span::after{
  content:"\25C6"; margin-left:1rem; color:var(--sfp-gold); font-size:.48rem;
}
@keyframes sfp2-tape{ from{ transform:translateX(0); } to{ transform:translateX(-50%); } }

/* Glints on the tape, the same four-point star the badge uses. They sit on the
   WRAPPER, not inside the tape: put them in the tape and every glint would
   appear twice, once per copy of the strip. Out here they read as light
   catching the surface as it passes. */
body.lbf-sfp-v2 .sfp2-glint{
  position:absolute; z-index:2; top:50%; width:11px; aspect-ratio:1;
  pointer-events:none; opacity:0;
  transform:translate(-50%,-50%) scale(0) rotate(0deg);
  animation:sfp2-glint 4.4s cubic-bezier(.2,1.5,.4,1) infinite;
  animation-delay:var(--d,0s);
}
body.lbf-sfp-v2 .sfp2-glint::before,
body.lbf-sfp-v2 .sfp2-glint::after{
  content:""; position:absolute; inset:0; background:var(--sfp-goldl); border-radius:1px;
}
body.lbf-sfp-v2 .sfp2-glint::before{
  clip-path:polygon(50% 0,58% 42%,100% 50%,58% 58%,50% 100%,42% 58%,0 50%,42% 42%);
}
body.lbf-sfp-v2 .sfp2-glint::after{ transform:rotate(45deg) scale(.55); opacity:.7; }
@keyframes sfp2-glint{
  0%,78%{ opacity:0;  transform:translate(-50%,-50%) scale(0)   rotate(0deg); }
  85%   { opacity:1;  transform:translate(-50%,-50%) scale(1)   rotate(45deg); }
  93%   { opacity:.5; transform:translate(-50%,-50%) scale(.75) rotate(65deg); }
  100%  { opacity:0;  transform:translate(-50%,-50%) scale(0)   rotate(90deg); }
}

body.lbf-sfp-v2 .sfp2-kick{
  font-family:'Outfit',system-ui,sans-serif; font-size:.66rem; font-weight:800;
  letter-spacing:.22em; text-transform:uppercase; color:var(--sfp-mute); margin:0 0 .45rem;
}
body.lbf-sfp-v2 .sfp2-h{
  font-family:'Outfit',system-ui,sans-serif;
  font-size:clamp(.95rem,2.3vw,2rem); font-weight:900; letter-spacing:-.032em; white-space:nowrap;
  line-height:1.05; color:var(--sfp-ink); margin:0 0 .6rem;
}
body.lbf-sfp-v2 .sfp2-p{
  margin:0 0 1rem; max-width:54ch;
  font-family:'Plus Jakarta Sans',system-ui,sans-serif;
  font-size:clamp(.84rem,1vw,.94rem); font-weight:400; line-height:1.6; letter-spacing:0;
  color:var(--sfp-body);
}

body.lbf-sfp-v2 .sfp2-pills{ display:flex; flex-wrap:wrap; gap:.42rem; margin:0 0 1rem; }
body.lbf-sfp-v2 .sfp2-pill{
  display:inline-flex; align-items:center; font-family:'Outfit',system-ui,sans-serif;
  font-size:.72rem; font-weight:700; padding:.32rem .78rem; border-radius:99px;
  color:#4a2e86; background:#efe7ff; border:1px solid #d9c9f7;
}
body.lbf-sfp-v2 .sfp2-btns{ display:flex; gap:.6rem; flex-wrap:wrap; margin:0 0 1rem; }
body.lbf-sfp-v2 .sfp2-btn{
  display:inline-flex; align-items:center; gap:.4rem;
  font-family:'Outfit',system-ui,sans-serif; font-weight:800; font-size:.82rem;
  padding:.62rem 1.35rem; border-radius:99px; text-decoration:none;
  transition:transform .18s ease, box-shadow .18s ease;
}
body.lbf-sfp-v2 .sfp2-btn--p{ background:var(--sfp-gold); color:#231708; }
body.lbf-sfp-v2 .sfp2-btn--s{ background:#fff; color:var(--sfp-ink); border:1.5px solid #cfc4e8; }
body.lbf-sfp-v2 .sfp2-btn:hover{ transform:translateY(-2px); box-shadow:0 10px 22px rgba(60,35,120,.2); }
body.lbf-sfp-v2 .sfp2-btn:focus-visible{ outline:3px solid var(--sfp-gold); outline-offset:3px; }

body.lbf-sfp-v2 .sfp2-foot{
  display:flex; align-items:center; gap:.9rem; flex-wrap:wrap;
  padding-top:.78rem; border-top:1px solid var(--sfp-line);
}
body.lbf-sfp-v2 .sfp2-fi{ display:flex; flex-direction:column; gap:.1rem; }
body.lbf-sfp-v2 .sfp2-fl{
  font-family:'Outfit',system-ui,sans-serif; font-size:.56rem; font-weight:800;
  letter-spacing:.16em; text-transform:uppercase; color:var(--sfp-mute);
}
body.lbf-sfp-v2 .sfp2-fv{
  font-family:'Outfit',system-ui,sans-serif; font-size:.85rem; font-weight:800; color:var(--sfp-ink);
}
body.lbf-sfp-v2 .sfp2-fsep{ width:1px; height:22px; background:var(--sfp-line); }

/* ════════════════════════════════════════════════════════════
   §5  RESPONSIVE
   ════════════════════════════════════════════════════════════ */

@media (max-width:900px){
  body.lbf-sfp-v2 .sfp2-grid{ grid-template-columns:1fr; justify-items:center; text-align:center; }
  body.lbf-sfp-v2 .sfp2-copy{ display:flex; flex-direction:column; align-items:center; }
  body.lbf-sfp-v2 .sfp2-cred,
  body.lbf-sfp-v2 .sfp2-pills,
  body.lbf-sfp-v2 .sfp2-btns,
  body.lbf-sfp-v2 .sfp2-foot{ justify-content:center; }
  body.lbf-sfp-v2 .sfp2-p{ text-align:center; }
  body.lbf-sfp-v2 .sfp2-h{ white-space:normal; font-size:clamp(1.15rem,4.4vw,1.6rem); }
  body.lbf-sfp-v2 .sfp2-art{ max-width:260px; }
}
@media (max-width:600px){
  body.lbf-sfp-v2 .sfp2-art{ max-width:230px; }
  body.lbf-sfp-v2 .sfp2-btns{ flex-direction:column; align-items:stretch; width:100%; }
  body.lbf-sfp-v2 .sfp2-btn{ justify-content:center; }
  /* Eighteen falling ribbons is a lot of compositing on a phone. */
  /* Thirty falling ribbons is a lot of compositing on a phone; keep the first
     fourteen, which still reads as a shower at that width. */
  body.lbf-sfp-v2 .sfp2-fall .c:nth-child(n+15){ display:none; }
}

/* ════════════════════════════════════════════════════════════
   §6  REDUCED MOTION
   Everything animated here is decoration and carries no information, so all
   of it stops. The blast settles lit at a low level rather than vanishing, so
   the trumpet still reads as sounding.
   ════════════════════════════════════════════════════════════ */

@media (prefers-reduced-motion:reduce){
  body.lbf-sfp-v2 .sfp2-fall{ display:none; }
  /* The badge settles level with its shadow at rest, so the scene still reads
     without anything stepping. */
  body.lbf-sfp-v2 .sfp2-art{ animation:none; transform:none; }
  body.lbf-sfp-v2 .sfp2-shadow{ animation:none; opacity:.75; transform:translateX(-50%) scale(1); }
  /* Sparkles are removed rather than parked mid-pop, which would leave eight
     half-scaled stars frozen on the badge. */
  body.lbf-sfp-v2 .sfp2-sp{ display:none; }
  /* The tape stops but stays legible — it carries the date and the street, so
     hiding it would remove information rather than motion. The glints go,
     since they are decoration only. */
  body.lbf-sfp-v2 .sfp2-tape{ animation:none; }
  body.lbf-sfp-v2 .sfp2-glint{ display:none; }
  body.lbf-sfp-v2 a.sfp2-spon:hover,
  body.lbf-sfp-v2 .sfp2-btn:hover{ transform:none; }
  body.lbf-sfp-v2 a.sfp2-spon:hover img{ transform:none; }
  body.lbf-sfp-v2 a.sfp2-spon:hover::after,
  body.lbf-sfp-v2 a.sfp2-spon:focus-visible::after{ animation:none; opacity:0; }
}

/* ════════════════════════════════════════════════════════════
   §7  PRINT
   ════════════════════════════════════════════════════════════ */

@media print{
  body.lbf-sfp-v2 .sfp2-fall,
  body.lbf-sfp-v2 .sfp2-sp,
  body.lbf-sfp-v2 .sfp2-shadow,
  body.lbf-sfp-v2 .sfp2-vig{ display:none; }
  body.lbf-sfp-v2 .sfp2-hero{ background:#fff; border:1px solid #ccc; box-shadow:none; }
  body.lbf-sfp-v2 .sfp2-art{ animation:none; transform:none; }
  body.lbf-sfp-v2 .sfp2-art{ max-width:200px; }
  body.lbf-sfp-v2 .sfp2-mark{ filter:none; }
  body.lbf-sfp-v2 .sfp2-spon{ background:none; box-shadow:none; padding:0; }
  body.lbf-sfp-v2 .sfp2-h,
  body.lbf-sfp-v2 .sfp2-cred .c2,
  body.lbf-sfp-v2 .sfp2-fv{ color:#000; }
  body.lbf-sfp-v2 .sfp2-kick,
  body.lbf-sfp-v2 .sfp2-p,
  body.lbf-sfp-v2 .sfp2-cred .c1,
  body.lbf-sfp-v2 .sfp2-fl{ color:#333; }
  body.lbf-sfp-v2 .sfp2-pill{ color:#000; background:none; border-color:#999; }
  body.lbf-sfp-v2 .sfp2-tick{ background:none; border-color:#bbb; }
  body.lbf-sfp-v2 .sfp2-tape{ animation:none; }
  body.lbf-sfp-v2 .sfp2-tape > span{ color:#333; }
  body.lbf-sfp-v2 .sfp2-glint{ display:none; }
}
