/* Borbila Business Premium Loader v1.1.0 (Fixed Alignment) */
.bbl-loader{
  position:fixed; inset:0; z-index:999999;
  background: radial-gradient(900px 520px at 50% 40%, rgba(255,255,255,.05), rgba(0,0,0,0) 60%),
              linear-gradient(180deg, color-mix(in srgb, var(--bbl-bg) 90%, #000), #000);
  display:flex; align-items:center; justify-content:center;
  overflow:hidden;
  --bbl-accent:#ff2b2b;
  --bbl-bg:#0b0f19;
  --bbl-text:#ffffff;
  --bbl-glow:70;
  transition: opacity .25s ease, visibility .25s ease;
  opacity:1; visibility:visible;
}
.bbl-loader.is-hiding{ opacity:0; visibility:hidden; pointer-events:none; }

.bbl-bg{
  position:absolute; inset:-40px;
  background:
    radial-gradient(circle at 20% 20%, color-mix(in srgb, var(--bbl-accent) 18%, transparent), transparent 40%),
    radial-gradient(circle at 80% 70%, rgba(255,255,255,.06), transparent 45%);
  filter: blur(0.2px);
  opacity:.9;
  animation: bbl-drift 12s ease-in-out infinite alternate;
}
@keyframes bbl-drift{ from{transform:translate3d(0,0,0) scale(1);} to{transform:translate3d(14px,-10px,0) scale(1.03);} }

/* ========= CORE WRAP ========= */
.bbl-center{
  position:relative;
  width: 320px;
  height: 320px;
  text-align:center;
  z-index:2;

  /* Keep everything centered */
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
}

/* ========= STACK FIX (IMPORTANT) =========
   ringwrap + orbit + logo = same center anchor
*/
.bbl-ringwrap,
.bbl-orbit,
.bbl-logo{
  position:absolute !important;
  top: 50% !important;
  left: 50% !important;
  transform: translate(-50%,-50%) !important;
}

/* ========= LOGO ========= */
.bbl-logo{
  width: 132px;
  height: 132px;
  border-radius: 50%;
  overflow:hidden;

  display:flex;
  align-items:center;
  justify-content:center;

  background: rgba(255,255,255,.05);
  border: 1px solid rgba(255,255,255,.10);
  box-shadow: inset 0 0 24px rgba(0,0,0,.45);
}
.bbl-logo img{
  width:100%;
  height:100%;
  object-fit: cover;
  object-position: center center;
  display:block;

  max-width:none;
  max-height:none;
}
.bbl-fallback{
  font-weight:900; font-size:56px;
  color: var(--bbl-accent);
  font-family: system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;
}

/* Glow effect */
.bbl-loader.is-glow .bbl-logo{
  --g: calc((var(--bbl-glow) / 100) * 60px);
  box-shadow:
    0 0 var(--g) color-mix(in srgb, var(--bbl-accent) 55%, transparent),
    0 0 calc(var(--g) * 1.5) color-mix(in srgb, var(--bbl-accent) 25%, transparent),
    inset 0 0 24px rgba(0,0,0,.45);
  animation: bbl-pulse 1.8s ease-in-out infinite;
}
@keyframes bbl-pulse{
  0%,100%{ transform: translate(-50%,-50%) scale(1); }
  50%{ transform: translate(-50%,-50%) scale(1.03); }
}

/* ========= RING ========= */
.bbl-ringwrap{ width: 210px; height: 210px; }
.bbl-ring{ width:100%; height:100%; transform: rotate(-90deg); }
.bbl-ring__track{
  fill:none; stroke: rgba(255,255,255,.10);
  stroke-width: 10;
}
.bbl-ring__bar{
  fill:none;
  stroke: var(--bbl-accent);
  stroke-width: 10;
  stroke-linecap: round;
  stroke-dasharray: 302;
  stroke-dashoffset: 302;
  filter: drop-shadow(0 0 14px color-mix(in srgb, var(--bbl-accent) 60%, transparent));
  transition: stroke-dashoffset .18s linear;
}
.bbl-loader.is-neon .bbl-ring__bar{
  filter: drop-shadow(0 0 18px color-mix(in srgb, var(--bbl-accent) 90%, transparent))
          drop-shadow(0 0 40px color-mix(in srgb, var(--bbl-accent) 35%, transparent));
}

/* ========= TEXT (Percent + caption) ========= */
.bbl-percent{
  margin-top: 190px; /* push below center stack */
  font-size: 26px;
  font-weight: 900;
  letter-spacing: .5px;
  color: var(--bbl-accent);
  position: relative;
  z-index: 5;
}
.bbl-percent__sym{ font-size: 16px; font-weight: 800; margin-left: 2px; opacity:.95; }

.bbl-text{
  margin-top: 6px;
  font-size: 16px;
  font-weight: 650;
  color: var(--bbl-text);
  opacity: .95;
  white-space: nowrap;
  width: 100%;
  overflow: hidden;
  text-overflow: ellipsis;
  padding: 0 10px;
  position: relative;
  z-index: 5;
}

/* ========= ORBIT ========= */
.bbl-orbit{
  width: 260px; height: 260px;
  border-radius: 50%;
  border: 2px dashed rgba(255,255,255,.10);
  opacity:.85;
  animation: bbl-rotate 6s linear infinite;
}
@keyframes bbl-rotate{ to{ transform: translate(-50%,-50%) rotate(360deg);} }

/* ========= STYLE VARIANTS ========= */
/* ring default */
.bbl-loader.style-ring .bbl-orbit{ display:none; }
.bbl-loader.style-ring .bbl-pulse{ display:none; }
.bbl-loader.style-ring .bbl-minimaldot{ display:none; }

/* orbit dashed */
.bbl-loader.style-orbit .bbl-orbit{
  display:block;
  border-color: color-mix(in srgb, var(--bbl-accent) 55%, rgba(255,255,255,.10));
  filter: drop-shadow(0 0 18px color-mix(in srgb, var(--bbl-accent) 30%, transparent));
}
.bbl-loader.style-orbit .bbl-pulse{ display:none; }
.bbl-loader.style-orbit .bbl-minimaldot{ display:none; }

/* double glow */
.bbl-loader.style-double .bbl-orbit{
  display:block;
  border-style: solid;
  border-width: 1px;
  border-color: rgba(255,255,255,.10);
  box-shadow: 0 0 0 10px rgba(255,255,255,.03),
              0 0 40px color-mix(in srgb, var(--bbl-accent) 20%, transparent);
  animation: bbl-breathe 2.2s ease-in-out infinite;
}
@keyframes bbl-breathe{
  0%,100%{ transform: translate(-50%,-50%) scale(1); }
  50%{ transform: translate(-50%,-50%) scale(1.04); }
}
.bbl-loader.style-double .bbl-pulse{ display:none; }
.bbl-loader.style-double .bbl-minimaldot{ display:none; }

/* pulse bars (if plugin has .bbl-pulse elements) */
.bbl-pulse{ display:none; position:absolute; bottom: 26px; left:50%; transform: translateX(-50%); gap:7px; z-index:6; }
.bbl-pulse i{
  width: 8px; height: 24px; border-radius: 10px;
  background: color-mix(in srgb, var(--bbl-accent) 85%, #fff);
  animation: bbl-bar 1.1s ease-in-out infinite;
  opacity:.9;
}
.bbl-pulse i:nth-child(2){ animation-delay:.10s;}
.bbl-pulse i:nth-child(3){ animation-delay:.20s;}
.bbl-pulse i:nth-child(4){ animation-delay:.30s;}
.bbl-pulse i:nth-child(5){ animation-delay:.40s;}
@keyframes bbl-bar{ 0%,100%{ transform: scaleY(.55);} 50%{ transform: scaleY(1.25);} }

.bbl-loader.style-pulse .bbl-ringwrap{ display:none; }
.bbl-loader.style-pulse .bbl-orbit{ display:none; }
.bbl-loader.style-pulse .bbl-pulse{ display:flex; }
.bbl-loader.style-pulse .bbl-minimaldot{ display:none; }
.bbl-loader.style-pulse .bbl-percent{ color: var(--bbl-text); opacity:.9; font-size:18px; margin-top: 170px; }

/* minimal dot */
.bbl-minimaldot{ display:none; position:absolute; width: 12px; height: 12px; border-radius:50%; background: var(--bbl-accent); bottom: 38px; left:50%; transform: translateX(-50%); animation: bbl-dot 1s ease-in-out infinite; z-index:6; }
@keyframes bbl-dot{ 0%,100%{ opacity:.35; transform: translateX(-50%) scale(.85);} 50%{ opacity:1; transform: translateX(-50%) scale(1.25);} }

.bbl-loader.style-minimal .bbl-ringwrap{ display:none; }
.bbl-loader.style-minimal .bbl-orbit{ display:none; }
.bbl-loader.style-minimal .bbl-pulse{ display:none; }
.bbl-loader.style-minimal .bbl-minimaldot{ display:block; }
.bbl-loader.style-minimal .bbl-percent{ display:none; }
.bbl-loader.style-minimal .bbl-text{ margin-top: 190px; }

/* ========= RESPONSIVE ========= */
@media (max-width: 520px){
  .bbl-center{ width: 270px; height: 270px; }
  .bbl-ringwrap{ width: 190px; height: 190px; }
  .bbl-logo{ width: 120px; height: 120px; }
  .bbl-percent{ font-size: 24px; margin-top: 170px; }
  .bbl-text{ font-size: 15px; }
  .bbl-orbit{ width: 235px; height: 235px; }
}


/* ==========================================================
   FIX PATCH: Center Align + Remove Square Bg + Perfect Round
   (Paste at the END of your current front.css)
========================================================== */

/* 1) Make center a true stacking container */
.bbl-center{
  position: relative !important;
  display: grid !important;
  place-items: center !important;
}

/* 2) Keep logo + ring perfectly centered */
.bbl-ringwrap,
.bbl-orbit,
.bbl-logo{
  top: 50% !important;
  left: 50% !important;
  transform: translate(-50%,-50%) !important;
}

/* 3) If your red square is coming from percent/text wrapper bg */
.bbl-percent,
.bbl-text{
  background: transparent !important;
  box-shadow: none !important;
  border-radius: 999px !important;
}

/* 4) Put % text + loading text under the circle without pushing center */
.bbl-percent{
  position: absolute !important;
  top: calc(50% + 120px) !important;
  left: 50% !important;
  transform: translateX(-50%) !important;

  margin-top: 0 !important;   /* kill margin shift */
  padding: 0 !important;
  line-height: 1.2 !important;
}

.bbl-text{
  position: absolute !important;
  top: calc(50% + 160px) !important;
  left: 50% !important;
  transform: translateX(-50%) !important;

  margin-top: 0 !important;   /* kill margin shift */
  padding: 0 10px !important;
  width: 320px !important;
}

/* 5) Your red square likely is .bbl-center overlay - force round & no bg */
.bbl-center::before,
.bbl-center::after{
  content: none !important;
}

/* 6) If any element behind percent is showing as a square, force it round */
.bbl-center,
.bbl-ringwrap,
.bbl-orbit{
  border-radius: 999px !important;
}

/* 7) Prevent logo from visually appearing above ring */
.bbl-logo{
  z-index: 3 !important;
}
.bbl-ringwrap,
.bbl-orbit{
  z-index: 2 !important;
}

/* Mobile tune */
@media (max-width: 520px){
  .bbl-percent{ top: calc(50% + 110px) !important; }
  .bbl-text{
    top: calc(50% + 145px) !important;
    width: 270px !important;
  }
}

