/* =====================================================================
   BF Legale – Footer widget
   Mobile-first. Every colour / size is a CSS variable set by the
   Elementor controls (Stile tab). Prefix: .bff
   ===================================================================== */
.bff{
  --bff-bg:#1F2024;
  --bff-text:#BABCC2;
  --bff-head:#F3F1ED;
  --bff-accent:#EE8A96;
  --bff-line:#36383E;
  --bff-maxw:1440px;
  --bff-pad:clamp(20px,5vw,72px);
  --bff-top:clamp(80px,10vw,150px);
  --bff-cta-title:#F3F1ED;
  --bff-btn-bg:#F3F1ED;
  --bff-btn-text:#1F2024;
  --bff-btn-hover-bg:#900616;
  --bff-btn-hover-text:#FFFFFF;
  --bff-logo:#FFFFFF;
  --bff-logo-h:56px;
  --bff-logo-ratio:5;
  --bff-bottom:#9A9CA3;
  --bff-wm:rgba(255,255,255,.07);
  --bff-wm-size:clamp(16rem,58vw,50rem);
  --bff-font:"Archivo","Helvetica Neue",Arial,sans-serif;
  --bff-mono:"Bodoni Moda","Bodoni 72",Didot,Georgia,serif;
  --bff-ease:cubic-bezier(.2,.7,.1,1);
  position:relative;
  overflow:hidden;
  margin:0;
  padding:var(--bff-top) 0 0;
  background:var(--bff-bg);
  color:var(--bff-text);
  font-family:var(--bff-font);
  font-size:.975rem;
  line-height:1.65;
  -webkit-font-smoothing:antialiased;
}
@media (min-width:768px){.bff{--bff-logo-h:72px}}
@media (min-width:1025px){.bff{--bff-logo-h:84px}}
.bff *,.bff *::before,.bff *::after{box-sizing:border-box}
.bff a{color:var(--bff-head);text-decoration:none;transition:color .3s var(--bff-ease)}
.bff a:hover{color:var(--bff-accent)}
.bff a:focus-visible,.bff button:focus-visible{outline:2px solid var(--bff-accent);outline-offset:3px}
.bff p{margin:0}
.bff address{font-style:normal}
.bff__sr{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}

/* watermark monogram */
.bff__wm{position:absolute;right:-.06em;bottom:-.2em;z-index:0;pointer-events:none;user-select:none;font-family:var(--bff-mono);font-weight:700;font-size:var(--bff-wm-size);line-height:.8;letter-spacing:-.03em;color:transparent;-webkit-text-stroke:1.5px var(--bff-wm);white-space:nowrap}
.bff__wm span{display:block;transform:translate3d(0,var(--bff-wm-y,0px),0);will-change:transform}

.bff__wrap{position:relative;z-index:1;width:100%;max-width:var(--bff-maxw);margin:0 auto;padding:0 var(--bff-pad)}

/* ---------- CTA band ---------- */
.bff__cta{display:grid;gap:28px;padding-bottom:clamp(56px,8vw,110px);border-bottom:1px solid var(--bff-line)}
.bff__label{display:flex;align-items:center;gap:14px;margin:0 0 22px;font-size:.8125rem;font-weight:600;letter-spacing:.16em;line-height:1.4;text-transform:uppercase;color:var(--bff-text)}
.bff__label::before{content:"";flex:none;width:34px;height:2px;background:var(--bff-accent)}
.bff__cta-title{margin:0;font-family:var(--bff-font);font-size:clamp(2.5rem,1.2rem + 5.2vw,6.6rem);font-weight:600;line-height:.95;letter-spacing:-.035em;font-stretch:84%;color:var(--bff-cta-title)}
.bff__cta-text{max-width:42ch;margin-bottom:26px!important;font-size:1.0625rem;line-height:1.6}
.bff__btn{position:relative;display:inline-flex;align-items:center;gap:14px;min-height:56px;padding:0 26px;background:var(--bff-btn-bg);color:var(--bff-btn-text)!important;font-size:.875rem;font-weight:600;letter-spacing:.12em;text-transform:uppercase;overflow:hidden;isolation:isolate;transition:color .4s var(--bff-ease)}
.bff__btn::before{content:"";position:absolute;inset:0;z-index:-1;background:var(--bff-btn-hover-bg);transform:scaleX(0);transform-origin:right;transition:transform .55s var(--bff-ease)}
.bff__btn:hover,.bff__btn:focus-visible{color:var(--bff-btn-hover-text)!important}
.bff__btn:hover::before,.bff__btn:focus-visible::before{transform:scaleX(1);transform-origin:left}
.bff__arr{display:inline-block;transition:transform .45s var(--bff-ease)}
.bff__btn:hover .bff__arr,.bff__maplink:hover .bff__arr{transform:translateX(5px)}
.bff__quick{display:grid;gap:0;margin-top:12px;border-top:1px solid var(--bff-line)}
.bff__qlink{display:flex;flex-direction:column;gap:4px;padding:20px 0;border-bottom:1px solid var(--bff-line)}
.bff__qk{font-size:.75rem;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--bff-accent)}
.bff__qv{font-size:clamp(1.45rem,1rem + 2.1vw,2.9rem);font-weight:600;line-height:1.1;letter-spacing:-.02em;font-stretch:88%;color:var(--bff-head);word-break:break-word;background:linear-gradient(var(--bff-accent),var(--bff-accent)) 0 100%/0 2px no-repeat;padding-bottom:4px;transition:background-size .55s var(--bff-ease),color .3s}
.bff__qlink:hover .bff__qv,.bff__qlink:focus-visible .bff__qv{background-size:100% 2px;color:var(--bff-head)}

/* ---------- brand + offices ---------- */
.bff__main{display:grid;gap:44px;padding:clamp(56px,7vw,96px) 0;border-bottom:1px solid var(--bff-line)}
.bff--nocta .bff__main{padding-top:0}
.bff__logo{display:inline-flex;color:var(--bff-logo)!important;line-height:0}
.bff__logo:hover{color:var(--bff-logo)!important;opacity:.85}
.bff__logo__mask{display:block;height:var(--bff-logo-h);width:calc(var(--bff-logo-h) * var(--bff-logo-ratio));max-width:100%;background-color:currentColor;-webkit-mask-image:var(--bf-logo-src);mask-image:var(--bf-logo-src);-webkit-mask-size:contain;mask-size:contain;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-position:left center;mask-position:left center}
.bff__logo__img{display:block;height:var(--bff-logo-h);width:auto;max-width:100%}
.bff__brand-text{max-width:44ch;margin-top:26px!important;font-size:1.0625rem}
.bff__offices{display:grid;gap:0}
.bff__office{position:relative;padding:22px 0 26px;border-top:1px solid var(--bff-line)}
.bff__num{display:block;margin-bottom:10px;font-size:.8rem;font-weight:700;letter-spacing:.12em;color:var(--bff-accent)}
.bff__city{margin:0 0 10px!important;font-size:clamp(1.7rem,1.2rem + 1.8vw,2.7rem);font-weight:600;line-height:1;letter-spacing:-.03em;font-stretch:84%;color:var(--bff-head)}
.bff__office address{margin-bottom:14px;line-height:1.55}
.bff__maplink{display:inline-flex;align-items:center;gap:10px;min-height:40px;font-size:.8125rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase}

/* ---------- link columns ---------- */
.bff__cols{display:grid;grid-template-columns:1fr 1fr;gap:40px 28px;padding:clamp(48px,6vw,80px) 0}
.bff__h{margin:0 0 18px;font-family:var(--bff-font);font-size:.78rem;font-weight:700;letter-spacing:.16em;line-height:1.4;text-transform:uppercase;color:var(--bff-head)}
.bff__list{margin:0;padding:0;list-style:none}
.bff__list li{margin:0 0 9px}
.bff__list a{display:inline-block;line-height:1.45;background:linear-gradient(currentColor,currentColor) 0 100%/0 1px no-repeat;transition:background-size .45s var(--bff-ease),color .3s}
.bff__list a:hover{background-size:100% 1px}
.bff__list--contacts li{margin-bottom:14px}
.bff__k{display:block;font-size:.72rem;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--bff-text);opacity:.8}
.bff__list--contacts a{word-break:break-word}
.bff__list--contacts .bff__multi a{display:table}
.bff__ph{display:block}
.bff__ph+.bff__ph{margin-top:8px}
.bff__sub{display:block;font-size:.8125rem;line-height:1.4;opacity:.75}
.bff__col--contacts{grid-column:1/-1}
@media (min-width:640px){.bff__col--contacts{grid-column:auto}}

/* ---------- bottom bar ---------- */
.bff__bottom{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:16px 28px;padding:24px 0 30px;border-top:1px solid var(--bff-line);font-size:.875rem;line-height:1.6;color:var(--bff-bottom)}
.bff__dot{margin:0 4px}
.bff__legal{display:flex;flex-wrap:wrap;align-items:center;gap:8px 22px}
.bff__legal a{color:var(--bff-head)}
.bff__credit{display:inline-flex;align-items:center;gap:7px;color:var(--bff-bottom)}
.bff__credit-icon{display:block;flex-shrink:0;width:16px;height:16px;object-fit:contain}
.bff__top{display:inline-flex;align-items:center;gap:12px;min-height:44px;padding:0;background:none;border:0;color:var(--bff-head);font-family:inherit;font-size:.78rem;font-weight:700;letter-spacing:.16em;text-transform:uppercase;cursor:pointer}
.bff__top i{position:relative;display:grid;place-items:center;width:44px;height:44px;border:1.5px solid var(--bff-line);transition:border-color .35s,background-color .35s}
.bff__top i::before{content:"";width:9px;height:9px;border-left:1.5px solid currentColor;border-top:1.5px solid currentColor;transform:translateY(2px) rotate(45deg);transition:transform .45s var(--bff-ease)}
.bff__top:hover i{border-color:var(--bff-accent);background:var(--bff-accent);color:var(--bff-bg)}
.bff__top:hover i::before{transform:translateY(-1px) rotate(45deg)}

/* ---------- tablet / desktop ---------- */
@media (min-width:900px){
  .bff__cta{grid-template-columns:repeat(12,1fr);column-gap:24px;align-items:end}
  .bff__cta-main{grid-column:1/9}
  .bff__cta-side{grid-column:9/13;padding-bottom:8px}
  .bff__quick{grid-column:1/-1;grid-auto-flow:column;grid-auto-columns:1fr;column-gap:24px;margin-top:30px}
  .bff__qlink{border-bottom:0}
  .bff__qlink+.bff__qlink{padding-left:28px;border-left:1px solid var(--bff-line)}
  .bff__main{grid-template-columns:repeat(12,1fr);column-gap:24px}
  .bff__brand{grid-column:1/6}
  .bff__offices{grid-column:7/13;grid-template-columns:1fr 1fr;column-gap:24px}
  .bff__office{border-top:0;border-left:1px solid var(--bff-line);padding:0 0 0 26px}
  .bff__cols{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));column-gap:40px}
  .bff__col--contacts{grid-column:auto}
}

/* ---------- entrance (JS adds .bff--js only when motion is allowed) ---------- */
.bff--reveal.bff--js [data-bff-reveal]{opacity:0;transform:translate3d(0,34px,0);transition:opacity 1s var(--bff-ease),transform 1.1s var(--bff-ease)}
.bff--reveal.bff--js [data-bff-reveal].is-in{opacity:1;transform:none}

@media (prefers-reduced-motion:reduce){
  .bff *,.bff *::before,.bff *::after{transition-duration:.01ms!important}
}
