/* ===================================================
   Frank Bio Links — Public Stylesheet
   Elementor-proof: all rules scoped under .fbl-page
   with !important on layout-critical properties
   =================================================== */

.fbl-page {
  --fbl-gold: #C8880A;
  --fbl-gold-light: #F0B429;
  --fbl-dark: #0D0C0A;
}

.fbl-page {
  min-height: 100vh !important;
  background: var(--fbl-dark) !important;
  display: flex !important;
  justify-content: center !important;
  align-items: flex-start !important;
  padding: 40px 16px 80px !important;
  font-family: 'DM Sans', 'Segoe UI', sans-serif !important;
  position: relative !important;
  overflow: hidden !important;
  box-sizing: border-box !important;
}

.fbl-page::before {
  content: '' !important;
  position: fixed !important;
  top: -200px !important;
  left: 50% !important;
  transform: translateX(-50%) !important;
  width: 600px !important;
  height: 600px !important;
  background: radial-gradient(circle, rgba(200,136,10,.18) 0%, transparent 70%) !important;
  pointer-events: none !important;
  z-index: 0 !important;
}

.fbl-page .fbl-container {
  width: 100% !important;
  max-width: 480px !important;
  position: relative !important;
  z-index: 1 !important;
  animation: fblFadeUp .7s ease both !important;
}

@keyframes fblFadeUp {
  from { opacity: 0; transform: translateY(28px); }
  to   { opacity: 1; transform: translateY(0); }
}

/* ── PROFILE ── */
.fbl-page .fbl-profile {
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  margin-bottom: 32px !important;
  animation: fblFadeUp .7s .1s ease both !important;
}

.fbl-page .fbl-avatar-wrap {
  margin-bottom: 14px !important;
  display: block !important;
}

.fbl-page .fbl-avatar-ring {
  display: block !important;
  width: 96px !important;
  height: 96px !important;
  border-radius: 50% !important;
  padding: 3px !important;
  background: linear-gradient(135deg, var(--fbl-gold) 0%, var(--fbl-gold-light) 50%, var(--fbl-gold) 100%) !important;
  background-size: 200% 200% !important;
  animation: fblShimmer 3s linear infinite !important;
  overflow: hidden !important;
  box-sizing: border-box !important;
  line-height: 0 !important;
}

@keyframes fblShimmer {
  0%   { background-position: 0% 50%; }
  50%  { background-position: 100% 50%; }
  100% { background-position: 0% 50%; }
}

.fbl-page .fbl-avatar-img {
  display: block !important;
  width: 90px !important;
  height: 90px !important;
  min-width: 90px !important;
  min-height: 90px !important;
  max-width: 90px !important;
  max-height: 90px !important;
  border-radius: 50% !important;
  object-fit: cover !important;
  overflow: hidden !important;
  margin: 0 !important;
  padding: 0 !important;
  box-sizing: border-box !important;
}

.fbl-page .fbl-avatar-placeholder {
  display: flex !important;
  width: 90px !important;
  height: 90px !important;
  min-width: 90px !important;
  min-height: 90px !important;
  border-radius: 50% !important;
  background: linear-gradient(135deg, #1a1814 0%, #2a2520 100%) !important;
  align-items: center !important;
  justify-content: center !important;
  font-size: 36px !important;
  color: var(--fbl-gold-light) !important;
  font-weight: 900 !important;
  margin: 0 !important;
  padding: 0 !important;
  overflow: hidden !important;
  box-sizing: border-box !important;
}

.fbl-page .fbl-name {
  font-family: 'Playfair Display', Georgia, serif !important;
  font-size: 26px !important;
  font-weight: 900 !important;
  color: #fff !important;
  letter-spacing: -.5px !important;
  margin-bottom: 4px !important;
  margin-top: 0 !important;
  line-height: 1.2 !important;
}

.fbl-page .fbl-handle {
  font-size: 13px !important;
  color: var(--fbl-gold-light) !important;
  font-weight: 500 !important;
  letter-spacing: .5px !important;
  margin-bottom: 10px !important;
  margin-top: 0 !important;
}

.fbl-page .fbl-bio {
  font-size: 13.5px !important;
  color: rgba(255,255,255,.58) !important;
  text-align: center !important;
  line-height: 1.65 !important;
  max-width: 320px !important;
  margin: 0 !important;
}

/* ── STATS ── */
.fbl-page .fbl-stats {
  display: flex !important;
  margin: 0 0 28px !important;
  background: rgba(255,255,255,.04) !important;
  border: 1px solid rgba(255,255,255,.07) !important;
  border-radius: 16px !important;
  overflow: hidden !important;
  animation: fblFadeUp .7s .15s ease both !important;
}

.fbl-page .fbl-stat {
  flex: 1 !important;
  padding: 14px 8px !important;
  text-align: center !important;
  border-right: 1px solid rgba(255,255,255,.07) !important;
  transition: background .2s !important;
}
.fbl-page .fbl-stat:last-child { border-right: none !important; }
.fbl-page .fbl-stat:hover { background: rgba(255,255,255,.04) !important; }

.fbl-page .fbl-stat-num {
  font-family: 'Playfair Display', Georgia, serif !important;
  font-size: 20px !important;
  font-weight: 700 !important;
  color: var(--fbl-gold-light) !important;
  line-height: 1 !important;
  margin-bottom: 3px !important;
  margin-top: 0 !important;
}

.fbl-page .fbl-stat-label {
  font-size: 10px !important;
  text-transform: uppercase !important;
  letter-spacing: 1px !important;
  color: rgba(255,255,255,.38) !important;
  font-weight: 600 !important;
  margin: 0 !important;
}

/* ── SECTION LABEL ── */
.fbl-page .fbl-section-label {
  font-size: 10px !important;
  text-transform: uppercase !important;
  letter-spacing: 2px !important;
  color: rgba(255,255,255,.3) !important;
  font-weight: 600 !important;
  margin-bottom: 10px !important;
  margin-top: 0 !important;
  padding-left: 4px !important;
  display: block !important;
}

/* ── LINKS ── */
.fbl-page .fbl-links-group {
  margin-bottom: 26px !important;
  animation: fblFadeUp .7s .2s ease both !important;
}

.fbl-page .fbl-link-card {
  display: flex !important;
  align-items: center !important;
  gap: 14px !important;
  padding: 16px 18px !important;
  background: rgba(255,255,255,.04) !important;
  border: 1px solid rgba(255,255,255,.07) !important;
  border-radius: 14px !important;
  text-decoration: none !important;
  margin-bottom: 10px !important;
  cursor: pointer !important;
  transition: all .25s cubic-bezier(.4,0,.2,1) !important;
  position: relative !important;
  overflow: hidden !important;
  box-sizing: border-box !important;
  width: 100% !important;
}

.fbl-page .fbl-link-card::before {
  content: '' !important;
  position: absolute !important;
  inset: 0 !important;
  background: linear-gradient(90deg, rgba(200,136,10,.08), transparent) !important;
  opacity: 0 !important;
  transition: opacity .25s !important;
}

.fbl-page .fbl-link-card:hover {
  border-color: rgba(200,136,10,.4) !important;
  transform: translateY(-2px) !important;
  box-shadow: 0 8px 32px rgba(0,0,0,.3), 0 0 0 1px rgba(200,136,10,.15) !important;
  text-decoration: none !important;
}

.fbl-page .fbl-link-card:hover::before { opacity: 1 !important; }
.fbl-page .fbl-link-card:active { transform: translateY(0) !important; }

.fbl-page .fbl-link-card.fbl-featured {
  background: linear-gradient(135deg, rgba(200,136,10,.15) 0%, rgba(240,180,41,.08) 100%) !important;
  border-color: rgba(200,136,10,.35) !important;
}

.fbl-page .fbl-link-card.fbl-featured:hover {
  border-color: var(--fbl-gold) !important;
  box-shadow: 0 8px 40px rgba(200,136,10,.2), 0 0 0 1px rgba(200,136,10,.3) !important;
}

.fbl-page .fbl-link-icon {
  width: 42px !important;
  height: 42px !important;
  min-width: 42px !important;
  border-radius: 11px !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  font-size: 20px !important;
  flex-shrink: 0 !important;
  background: rgba(255,255,255,.06) !important;
  transition: transform .25s !important;
  overflow: hidden !important;
}

.fbl-page .fbl-link-card:hover .fbl-link-icon { transform: scale(1.08) !important; }

.fbl-page .fbl-link-card.fbl-featured .fbl-link-icon {
  background: linear-gradient(135deg, rgba(200,136,10,.3), rgba(240,180,41,.15)) !important;
}

.fbl-page .fbl-link-info {
  flex: 1 !important;
  min-width: 0 !important;
  overflow: hidden !important;
}

.fbl-page .fbl-link-title {
  font-size: 14.5px !important;
  font-weight: 600 !important;
  color: #fff !important;
  line-height: 1.2 !important;
  margin-bottom: 2px !important;
  margin-top: 0 !important;
  white-space: nowrap !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
  display: block !important;
}

.fbl-page .fbl-link-card.fbl-featured .fbl-link-title { color: var(--fbl-gold-light) !important; }

.fbl-page .fbl-link-sub {
  font-size: 12px !important;
  color: rgba(255,255,255,.4) !important;
  white-space: nowrap !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
  display: block !important;
  margin: 0 !important;
}

.fbl-page .fbl-link-badge {
  font-size: 9px !important;
  font-weight: 700 !important;
  text-transform: uppercase !important;
  letter-spacing: 1px !important;
  padding: 3px 8px !important;
  border-radius: 20px !important;
  background: var(--fbl-gold) !important;
  color: #000 !important;
  flex-shrink: 0 !important;
  white-space: nowrap !important;
}

.fbl-page .fbl-link-arrow {
  color: rgba(255,255,255,.25) !important;
  font-size: 18px !important;
  flex-shrink: 0 !important;
  transition: all .25s !important;
  line-height: 1 !important;
}

.fbl-page .fbl-link-card:hover .fbl-link-arrow {
  color: var(--fbl-gold-light) !important;
  transform: translateX(3px) !important;
}

/* ── SOCIAL ── */
.fbl-page .fbl-social-group {
  margin-bottom: 30px !important;
  animation: fblFadeUp .7s .25s ease both !important;
}

.fbl-page .fbl-social-row {
  display: flex !important;
  gap: 10px !important;
  flex-wrap: wrap !important;
}

.fbl-page .fbl-social-pill {
  display: flex !important;
  align-items: center !important;
  gap: 8px !important;
  padding: 10px 16px !important;
  background: rgba(255,255,255,.04) !important;
  border: 1px solid rgba(255,255,255,.08) !important;
  border-radius: 100px !important;
  text-decoration: none !important;
  cursor: pointer !important;
  transition: all .22s !important;
  flex: 1 !important;
  min-width: 120px !important;
  justify-content: center !important;
  box-sizing: border-box !important;
}

.fbl-page .fbl-social-pill:hover {
  background: rgba(255,255,255,.08) !important;
  border-color: rgba(255,255,255,.15) !important;
  transform: translateY(-1px) !important;
  text-decoration: none !important;
}

.fbl-page .fbl-social-pill span:first-child { font-size: 16px !important; }

.fbl-page .fbl-social-pill span:last-child {
  font-size: 12.5px !important;
  font-weight: 500 !important;
  color: rgba(255,255,255,.7) !important;
}

/* ── FOOTER ── */
.fbl-page .fbl-footer {
  text-align: center !important;
  animation: fblFadeUp .7s .3s ease both !important;
}

.fbl-page .fbl-footer-line {
  display: flex !important;
  align-items: center !important;
  gap: 10px !important;
  justify-content: center !important;
  margin-bottom: 10px !important;
}

.fbl-page .fbl-footer-line::before,
.fbl-page .fbl-footer-line::after {
  content: '' !important;
  flex: 1 !important;
  height: 1px !important;
  background: rgba(255,255,255,.07) !important;
}

.fbl-page .fbl-footer-line span {
  font-size: 11px !important;
  color: rgba(255,255,255,.2) !important;
  font-weight: 500 !important;
  letter-spacing: .5px !important;
}

.fbl-page .fbl-footer-brand {
  font-size: 12px !important;
  color: rgba(255,255,255,.2) !important;
}

.fbl-page .fbl-footer-brand a {
  color: rgba(200,136,10,.6) !important;
  text-decoration: none !important;
  transition: color .2s !important;
}

.fbl-page .fbl-footer-brand a:hover { color: var(--fbl-gold-light) !important; }

/* ── MOBILE ── */
@media (max-width: 400px) {
  .fbl-page .fbl-social-pill { min-width: 100px !important; padding: 9px 12px !important; }
  .fbl-page .fbl-link-card   { padding: 14px 14px !important; }
}
