/* =============================================
   Fancy Footer Builder — Public Frontend
   Mobile-First, Fully Responsive
   ============================================= */
@import url('https://fonts.googleapis.com/css2?family=Syne:wght@600;700;800&family=DM+Sans:ital,wght@0,300;0,400;0,500;0,600;1,400&display=swap');

/* ── ROOT VARS (overridden per-instance via inline style) ── */
.ffb-footer{
  --ffb-bg:#0f0f1a;
  --ffb-txt:#e0e0e0;
  --ffb-accent:#7c6df0;
}

/* ── RESET INSIDE FOOTER ── */
.ffb-footer *,.ffb-footer *::before,.ffb-footer *::after{box-sizing:border-box;}
.ffb-footer ul{list-style:none;margin:0;padding:0;}
.ffb-footer a{text-decoration:none;}
.ffb-footer img{max-width:100%;height:auto;display:block;}

/* ── FOOTER BASE ── */
.ffb-footer{
  background:var(--ffb-bg);
  color:var(--ffb-txt);
  font-family:'DM Sans',sans-serif;
  position:relative;
  overflow:hidden;
  width:100%;
}

/* Atmospheric glow */
.ffb-footer::before{
  content:'';position:absolute;inset:0;pointer-events:none;
  background:
    radial-gradient(ellipse 70% 60% at 15% 110%,rgba(124,109,240,.14) 0%,transparent 60%),
    radial-gradient(ellipse 50% 40% at 85% 90%,rgba(176,109,245,.1) 0%,transparent 60%);
}

/* ── TOP BORDER ── */
.ffb-top-border{height:3px;position:relative;overflow:hidden;}
.ffb-border-gradient .ffb-top-border{
  background:linear-gradient(90deg,var(--ffb-accent),#b06df5,var(--ffb-accent));
  background-size:200% 100%;
  animation:ffb-border-slide 4s linear infinite;
}
.ffb-border-line .ffb-top-border{background:var(--ffb-accent);}
.ffb-border-glow .ffb-top-border{background:var(--ffb-accent);box-shadow:0 0 20px var(--ffb-accent),0 0 40px var(--ffb-accent);}
.ffb-border-wave .ffb-top-border{background:linear-gradient(90deg,var(--ffb-accent),#b06df5,var(--ffb-accent));background-size:200%;animation:ffb-border-slide 2s linear infinite;height:4px;}
.ffb-border-none .ffb-top-border{display:none;}
@keyframes ffb-border-slide{0%{background-position:0% 50%}100%{background-position:200% 50%}}

/* ── CONTAINER ── */
.ffb-container{
  max-width:1280px;
  margin:0 auto;
  padding:0 clamp(16px,4vw,48px);
  position:relative;z-index:1;
}

/* ── GRID — Mobile First ── */
.ffb-grid{
  display:grid;
  grid-template-columns:1fr;
  gap:clamp(24px,4vw,48px);
  padding:clamp(32px,5vw,64px) 0 clamp(28px,4vw,52px);
}

/* Tablet: 2 col for 3+ */
@media(min-width:640px){
  .ffb-cols-3,.ffb-cols-4{grid-template-columns:repeat(2,1fr);}
  .ffb-cols-5,.ffb-cols-6{grid-template-columns:repeat(2,1fr);}
}
/* Desktop */
@media(min-width:1024px){
  .ffb-cols-2{grid-template-columns:repeat(2,1fr);}
  .ffb-cols-3{grid-template-columns:repeat(3,1fr);}
  .ffb-cols-4{grid-template-columns:repeat(4,1fr);}
  .ffb-cols-5{grid-template-columns:repeat(5,1fr);}
  .ffb-cols-6{grid-template-columns:repeat(6,1fr);}
}

/* ── WIDGET SPACING ── */
.ffb-col{display:flex;flex-direction:column;gap:20px;}
.ffb-widget{}

/* ── HEADING ── */
.ffb-heading{margin:0 0 12px;line-height:1.2;}
h2.ffb-heading{font-size:clamp(1.2rem,3vw,1.6rem);}
h3.ffb-heading{font-size:clamp(1rem,2.5vw,1.2rem);font-family:'Syne',sans-serif;}
h4.ffb-heading{font-size:clamp(.95rem,2vw,1.05rem);font-family:'Syne',sans-serif;}
.ffb-heading-accent{color:var(--ffb-accent);}
.ffb-heading-default{color:var(--ffb-txt);}
.ffb-heading-gradient{
  background:linear-gradient(135deg,var(--ffb-accent),#b06df5);
  -webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;
}

/* ── TEXT ── */
.ffb-text-content{font-size:clamp(.875rem,2vw,.925rem);line-height:1.7;color:rgba(224,224,224,.82);}
.ffb-text-content a{color:var(--ffb-accent);}
.ffb-text-content a:hover{text-decoration:underline;}

/* ── LOGO ── */
.ffb-logo-link{display:inline-block;}
.ffb-logo-img{max-width:100%;height:auto;transition:opacity .2s;}
.ffb-logo-img:hover{opacity:.85;}
.ffb-logo-text{font-family:'Syne',sans-serif;font-weight:800;font-size:clamp(1.2rem,3vw,1.5rem);background:linear-gradient(135deg,var(--ffb-accent),#b06df5);-webkit-background-clip:text;-webkit-text-fill-color:transparent;}

/* ── NAV ── */
.ffb-nav{}
.ffb-nav-list{display:flex;flex-direction:column;gap:8px;}
.ffb-nav-horizontal .ffb-nav-list{flex-direction:row;flex-wrap:wrap;gap:8px 20px;}
.ffb-nav-list li a{color:rgba(224,224,224,.75);font-size:.9rem;transition:color .2s,padding-left .2s;display:inline-block;}
.ffb-nav-vertical .ffb-nav-list li a:hover{color:var(--ffb-accent);padding-left:5px;}
.ffb-nav-horizontal .ffb-nav-list li a:hover{color:var(--ffb-accent);}

/* ── SOCIAL ── */
.ffb-social{display:flex;flex-wrap:wrap;gap:10px;}
.ffb-social-link{display:flex;align-items:center;justify-content:center;width:42px;height:42px;color:rgba(224,224,224,.7);transition:all .2s;text-decoration:none;-webkit-tap-highlight-color:transparent;}
.ffb-social-link svg{width:18px;height:18px;}
.ffb-social-circle .ffb-social-link{border-radius:50%;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.1);}
.ffb-social-square  .ffb-social-link{border-radius:9px;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.1);}
.ffb-social-plain   .ffb-social-link{width:auto;height:auto;padding:4px;}
.ffb-social-link:hover{color:#fff;background:var(--ffb-accent);border-color:var(--ffb-accent);transform:translateY(-3px);box-shadow:0 6px 20px rgba(124,109,240,.4);}
@media(hover:none){.ffb-social-link:hover{transform:none;}}

/* ── CONTACT ── */
.ffb-contact-list{display:flex;flex-direction:column;gap:12px;}
.ffb-contact-item{display:flex;gap:10px;align-items:flex-start;font-size:.9rem;color:rgba(224,224,224,.8);}
.ffb-ci-icon{font-size:16px;flex-shrink:0;margin-top:1px;}
.ffb-contact-item a{color:inherit;transition:color .2s;}
.ffb-contact-item a:hover{color:var(--ffb-accent);}

/* ── NEWSLETTER ── */
.ffb-newsletter-title{font-family:'Syne',sans-serif;font-weight:700;font-size:clamp(.95rem,2vw,1rem);margin:0 0 6px;color:var(--ffb-txt);}
.ffb-newsletter-desc{font-size:.875rem;color:rgba(224,224,224,.65);margin:0 0 14px;line-height:1.5;}
.ffb-newsletter-form{display:flex;gap:0;max-width:400px;}
.ffb-newsletter-input{
  flex:1;min-width:0;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.12);
  border-right:none;border-radius:10px 0 0 10px;color:var(--ffb-txt);
  padding:11px 14px;font-size:.875rem;outline:none;font-family:inherit;transition:border-color .2s;
}
.ffb-newsletter-input::placeholder{color:rgba(224,224,224,.4);}
.ffb-newsletter-input:focus{border-color:var(--ffb-accent);}
.ffb-newsletter-btn{
  background:var(--ffb-accent);color:#fff;border:none;
  border-radius:0 10px 10px 0;padding:11px 18px;font-size:.875rem;
  font-weight:600;cursor:pointer;font-family:inherit;white-space:nowrap;transition:background .2s;
  -webkit-tap-highlight-color:transparent;
}
.ffb-newsletter-btn:hover{background:#6058d8;}
/* Mobile: stack */
@media(max-width:480px){
  .ffb-newsletter-form{flex-direction:column;gap:8px;}
  .ffb-newsletter-input{border-right:1px solid rgba(255,255,255,.12);border-radius:10px;}
  .ffb-newsletter-btn{border-radius:10px;}
}

/* ── DIVIDER ── */
.ffb-divider{width:100%;}
.ffb-divider-line{border:none;border-top:1px solid rgba(255,255,255,.1);}
.ffb-divider-gradient{height:2px;background:linear-gradient(90deg,transparent,var(--ffb-accent),transparent);border:none;}
.ffb-divider-dots::before{content:'· · · · · · · · · ·';color:rgba(255,255,255,.2);letter-spacing:6px;font-size:20px;display:block;text-align:center;}
.ffb-divider-zigzag{height:8px;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='8'%3E%3Cpath d='M0 8L10 0L20 8' fill='none' stroke='rgba(124,109,240,0.3)' stroke-width='1.5'/%3E%3C/svg%3E") repeat-x;}

/* ── RECENT POSTS ── */
.ffb-widget-title{font-family:'Syne',sans-serif;font-weight:700;font-size:.95rem;margin:0 0 12px;color:var(--ffb-txt);}
.ffb-recent-posts{display:flex;flex-direction:column;gap:10px;}
.ffb-rp-item a{color:rgba(224,224,224,.8);font-size:.875rem;display:block;transition:color .2s;line-height:1.4;}
.ffb-rp-item a:hover{color:var(--ffb-accent);}
.ffb-rp-date{display:block;font-size:.75rem;color:rgba(224,224,224,.4);margin-top:3px;}

/* ── BOTTOM BAR ── */
.ffb-bottom-bar{border-top:1px solid rgba(255,255,255,.06);background:rgba(0,0,0,.22);position:relative;z-index:1;}
.ffb-bottom-inner{
  display:flex;align-items:center;justify-content:space-between;
  padding:clamp(12px,2vw,18px) 0;gap:12px;flex-wrap:wrap;
}
.ffb-bottom-text{font-size:clamp(.75rem,1.5vw,.8rem);color:rgba(224,224,224,.45);}
@media(max-width:480px){
  .ffb-bottom-inner{justify-content:center;text-align:center;}
}

/* ── BACK TO TOP ── */
.ffb-back-top{
  display:flex;align-items:center;justify-content:center;
  width:40px;height:40px;border-radius:10px;
  background:rgba(124,109,240,.15);border:1px solid rgba(124,109,240,.3);
  color:var(--ffb-accent);cursor:pointer;font-size:18px;
  transition:all .2s;flex-shrink:0;
  -webkit-tap-highlight-color:transparent;touch-action:manipulation;
}
.ffb-back-top:hover,.ffb-back-top:active{background:var(--ffb-accent);color:#fff;transform:translateY(-3px);box-shadow:0 6px 20px rgba(124,109,240,.4);}
@media(hover:none){.ffb-back-top:hover{transform:none;}}
