/* VIRDEE FILMS — Footer & floating contact widget */
/* =============================================================
   Footer (distinct, dark)
   ============================================================= */
.footer{ background:var(--footer-bg); color:var(--footer-fg); padding-top:clamp(3.5rem,8vh,6.5rem); }
.footer__cta{ display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:2rem; padding-bottom:clamp(2.8rem,6vh,4.5rem); border-bottom:1px solid var(--footer-line); }
.footer__big{ font-family:var(--ff-display); font-weight:300; font-size:clamp(2.4rem,9vw,7rem); line-height:.95; letter-spacing:-.02em; color:var(--footer-fg); transition:opacity .3s; }
.footer__big .script{ color:var(--gold-3); } .footer__big:hover{ opacity:.85; }
.footer__grid{ display:grid; grid-template-columns:1fr; gap:2.4rem; padding-block:clamp(2.4rem,6vh,3.8rem); }
@media(min-width:760px){ .footer__grid{ grid-template-columns:1.6fr 1fr 1fr 1.2fr; } }
.footer__col h5{ font-family:var(--ff-sans); font-size:.62rem; letter-spacing:.26em; text-transform:uppercase; color:var(--gold-3); margin-bottom:1.2rem; }
.footer__col a{ display:block; color:var(--footer-2); padding:.3em 0; font-size:.92rem; transition:color .3s,transform .3s; }
.footer__col a:hover{ color:var(--gold-3); transform:translateX(4px); }
.footer__brand .brand__name{ font-size:clamp(1.5rem,3vw,2rem); color:var(--footer-fg); }
.footer__desc{ color:var(--footer-2); margin-top:.9rem; max-width:42ch; }
.footer__socials{ display:flex; gap:.9rem; margin-top:1.4rem; }
.footer__socials a{ width:42px; height:42px; border:1px solid var(--footer-line); border-radius:50%; display:grid; place-items:center; color:var(--footer-fg); transition:background .4s,color .4s,border-color .4s,transform .4s; }
.footer__socials a:hover{ background:var(--accent); color:#fff; border-color:var(--accent); transform:translateY(-3px); }
.footer__socials svg{ width:17px; height:17px; }
.footer__bar{ display:flex; flex-wrap:wrap; gap:1rem; justify-content:space-between; align-items:center; padding-block:1.8rem; border-top:1px solid var(--footer-line); font-size:.7rem; letter-spacing:.06em; color:var(--footer-2); }
.footer__bar a:hover{ color:var(--gold-3); }
.to-top{ display:inline-flex; align-items:center; gap:.6rem; font-size:.64rem; letter-spacing:.24em; text-transform:uppercase; color:var(--footer-2); }
.to-top:hover{ color:var(--gold-3); }
.to-top span{ display:grid; place-items:center; width:38px; height:38px; border:1px solid var(--footer-line); border-radius:50%; transition:background .4s,color .4s; }
.to-top:hover span{ background:var(--accent); color:#fff; }

/* =============================================================
   Floating contact widget (FAB)
   ============================================================= */
.fab{ position:fixed; right:clamp(1.1rem,4vw,1.9rem); bottom:clamp(1.1rem,4vw,1.9rem); z-index:860; width:58px; height:58px; }
.fab__toggle{ position:relative; display:block; width:58px; height:58px; border-radius:50%; background:var(--accent); color:#fff; box-shadow:0 12px 30px -8px rgba(0,0,0,.4); transition:transform .5s var(--ease-out),background .4s; overflow:hidden; padding:0; }
.fab__toggle:hover{ transform:scale(1.07); }
/* both icons fill the button and centre themselves, so they cross-fade in place */
.fab__toggle > span{ position:absolute; inset:0; display:grid; place-items:center; transition:opacity .3s var(--ease-out), transform .4s var(--ease-out); }
.fab__toggle svg{ width:24px; height:24px; display:block; }
.fab__toggle .ic-close{ opacity:0; transform:rotate(-90deg) scale(.5); }
.fab.open .fab__toggle .ic-chat{ opacity:0; transform:rotate(90deg) scale(.5); }
.fab.open .fab__toggle .ic-close{ opacity:1; transform:none; }
.fab__toggle::after{ content:""; position:absolute; inset:-1px; border-radius:50%; box-shadow:0 0 0 0 rgba(176,130,46,.5); animation:fabpulse 2.6s ease-out infinite; }
.fab.open .fab__toggle::after,.fab__toggle:hover::after{ animation:none; }
@keyframes fabpulse{ 0%{ box-shadow:0 0 0 0 rgba(176,130,46,.45); } 70%,100%{ box-shadow:0 0 0 16px rgba(176,130,46,0); } }
.fab__list{ position:absolute; bottom:calc(100% + .8rem); left:50%; transform:translateX(-50%); display:flex; flex-direction:column; gap:.7rem; align-items:center; }
.fab__item{ width:50px; height:50px; border-radius:50%; display:grid; place-items:center; color:#fff; box-shadow:0 10px 24px -10px rgba(0,0,0,.5); opacity:0; transform:translateY(14px) scale(.6); pointer-events:none; transition:opacity .4s var(--ease-out),transform .4s var(--ease-out),filter .3s; }
.fab__item svg{ width:22px; height:22px; }
.fab.open .fab__item{ opacity:1; transform:none; pointer-events:auto; }
.fab.open .fab__item:nth-child(1){ transition-delay:.04s; } .fab.open .fab__item:nth-child(2){ transition-delay:.09s; }
.fab.open .fab__item:nth-child(3){ transition-delay:.14s; } .fab.open .fab__item:nth-child(4){ transition-delay:.19s; } .fab.open .fab__item:nth-child(5){ transition-delay:.24s; }
.fab__item:hover{ filter:brightness(1.12); transform:scale(1.08); }
.fab__item.wa{ background:#25D366; } .fab__item.call{ background:#0B7285; } .fab__item.ig{ background:#E1306C; }
.fab__item.fb{ background:#1877F2; } .fab__item.em{ background:#B0822E; }
.fab__item::after{ content:attr(data-tip); position:absolute; right:64px; white-space:nowrap; background:var(--bg-inv); color:var(--bg); font-size:.6rem; letter-spacing:.14em; text-transform:uppercase; padding:.5em .8em; border-radius:4px; opacity:0; transform:translateX(6px); transition:opacity .3s,transform .3s; pointer-events:none; }
.fab__item:hover::after{ opacity:1; transform:none; }

/* Footer social bar */
.footer__socialbar{ display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:1.2rem; padding-block:1.8rem; border-top:1px solid var(--footer-line); }
/* Footer CTA — redesigned 'Begin your story' */
.footer__cta{ align-items:flex-end; gap:2.5rem; }
.footer__cta-text{ max-width:36ch; }
.footer__big{ display:inline-block; }
.footer__cta-sub{ color:var(--footer-2); margin-top:1.1rem; max-width:44ch; font-size:.95rem; line-height:1.6; }

/* Mobile — smaller, tighter footer */
@media(max-width:760px){
  .footer{ padding-top:clamp(2.2rem,6vh,3.2rem); }
  .footer__cta{ flex-direction:column; align-items:flex-start; gap:1.4rem; padding-bottom:1.9rem; }
  .footer__big{ font-size:clamp(2.3rem,12vw,3.4rem); }
  .footer__cta-sub{ font-size:.86rem; margin-top:.7rem; }
  .footer__grid{ grid-template-columns:1fr 1fr; gap:1.5rem 1.4rem; padding-block:1.8rem; }
  .footer__brand{ grid-column:1 / -1; }
  .footer__desc{ font-size:.88rem; }
  .footer__col h5{ margin-bottom:.8rem; }
  .footer__col a{ font-size:.86rem; padding:.24em 0; }
  .footer__socialbar{ padding-block:1.3rem; }
  .footer__bar{ padding-block:1.3rem; font-size:.66rem; }
}
/* Never let the floating widget sit on top of the open menu */
body.no-scroll .fab{ opacity:0; visibility:hidden; pointer-events:none; }
