/* =====================================================================
   SweBend - new footer (trial on staging)
   Lifted from the no-Avada homepage rebuild, sections/18-footer.{html,css}
   plus the tokens and primitives it depends on, all re-scoped under .swb-nf
   so nothing here can reach the rest of the Avada page.

   Source of truth: marketing/pages/homepage-rebuild/sections/18-footer.css
   Edit there first, then mirror. Do not diverge silently.
   ===================================================================== */

/* ---- Fonts. Own family names so they cannot shadow the Poppins and Bebas
        Neue that Avada already registers through fusion-gfonts. ---- */
@font-face{font-family:"SWB Bebas Neue";src:url("fonts/BebasNeue-Bold.woff2") format("woff2");font-weight:700;font-style:normal;font-display:swap}
@font-face{font-family:"SWB Poppins";src:url("fonts/Poppins-Light.woff2") format("woff2");font-weight:300;font-style:normal;font-display:swap}
@font-face{font-family:"SWB Poppins";src:url("fonts/Poppins-Medium.woff2") format("woff2");font-weight:500;font-style:normal;font-display:swap}

/* ---- Retire the Avada Layouts footer. The JS in the loader removes the node
        outright; this is the no-JavaScript fallback. ---- */
.fusion-tb-footer{display:none!important}

/* ---- Root ---- */
.swb-nf{
  --yellow:#F9EC4B;
  --white:#FFFFFF;
  --iron:#101820;
  --muted:#9AA3B2;
  --on-dark:#BCC5D0;
  --steel:#0F2E4C;
  --steel-deep:#0A2237;
  --steel-lift:#153A5E;
  --display:"SWB Bebas Neue","Bebas Neue","Arial Narrow",sans-serif;
  --text:"SWB Poppins","Poppins","Helvetica Neue",Arial,sans-serif;
  --margin:clamp(1.4rem,5vw,5.5rem);
  --maxw:1180px;
  --ease:cubic-bezier(.22,.61,.36,1);
  --brow-h:clamp(72px,20vw,248px);

  position:relative;
  background:var(--steel-deep);
  color:var(--on-dark);
  font-family:var(--text);
  font-weight:300;
  font-size:16px;
  line-height:1.65;
  letter-spacing:normal;
  text-align:left;
  padding:calc(var(--brow-h) * .44 + clamp(26px,3.4vw,40px)) var(--margin) clamp(28px,3.5vw,42px);
  overflow:hidden;
}

/* ---- Local reset. Scoped, so the rest of the page keeps whatever Avada gives it. ---- */
.swb-nf,.swb-nf *,.swb-nf *::before,.swb-nf *::after{box-sizing:border-box}
.swb-nf h2,.swb-nf h3,.swb-nf p,.swb-nf address{margin:0;padding:0}
.swb-nf h3{font-size:inherit}
.swb-nf ul{margin:0;padding:0;list-style:none}
.swb-nf li{margin:0;padding:0;list-style:none;background:none}
.swb-nf li::before,.swb-nf li::marker{content:none}
.swb-nf a{color:inherit;text-decoration:none;border:0;box-shadow:none;background:none}
.swb-nf a:hover,.swb-nf a:focus{text-decoration:none}
.swb-nf img,.swb-nf svg{max-width:100%;height:auto;display:block;border:0}
.swb-nf > .inner{width:100%;max-width:var(--maxw);margin:0 auto;position:relative;z-index:2}
.swb-nf :focus-visible{outline:3px solid var(--yellow);outline-offset:3px}
.swb-nf .visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
.swb-nf-defs{position:absolute;width:0;height:0;overflow:hidden}

/* ---- Curved threshold ----
   Two layers sharing one clip-path so the yellow hairline cannot drift off
   the fill. Traced from the live footer-mask.svg. */
.swb-nf .s-foot-brow{
  position:absolute;top:0;left:0;right:0;height:var(--brow-h);
  z-index:1;pointer-events:none;
}
.swb-nf .fb-band,
.swb-nf .fb-fill{position:absolute;inset:0;display:block;clip-path:url(#swb-nf-brow)}
.swb-nf .fb-band{
  background:var(--yellow);transform:translateY(-3px);z-index:0;
  opacity:.55;transition:opacity .3s var(--ease);
}
.swb-nf .fb-fill{
  background:linear-gradient(to bottom,var(--steel-lift) 0%,var(--steel) 46%,var(--steel-deep) 100%);
  z-index:1;
}

/* ---- Grid ---- */
.swb-nf .f-grid{display:grid;grid-template-columns:minmax(0,1fr);gap:clamp(2.4rem,5vw,3.4rem)}
.swb-nf .f-brand,
.swb-nf .f-nav{min-width:0}
.swb-nf .f-claim,
.swb-nf .f-place,
.swb-nf .f-mail{overflow-wrap:break-word}

/* ---- Brand block ---- */
.swb-nf .f-logo{width:clamp(164px,42vw,208px);height:auto}
.swb-nf .f-place{
  margin-top:1.5rem;font-size:.95rem;line-height:1.6;color:var(--on-dark);font-style:normal;
}
.swb-nf .f-tel{
  display:inline-block;min-height:44px;line-height:44px;
  color:inherit;text-decoration:none;font-variant-numeric:tabular-nums;
}
.swb-nf .f-tel:hover,.swb-nf .f-tel:focus-visible{text-decoration:underline}
.swb-nf .f-claim{
  font-family:var(--display);font-weight:700;text-transform:uppercase;
  font-size:clamp(1.42rem,4.2vw,1.95rem);line-height:1.02;letter-spacing:.015em;
  color:var(--white);margin-top:.5rem;max-width:16ch;
}
.swb-nf .f-mail{
  display:inline-flex;align-items:center;min-height:44px;margin-top:1.5rem;
  font-size:1.05rem;font-weight:500;color:var(--white);
  border-bottom:2px solid var(--yellow);
  transition:color .25s var(--ease),border-color .25s var(--ease);
}
.swb-nf .f-mail:hover{color:var(--yellow)}

/* ---- Link columns ---- */
.swb-nf .f-nav{display:grid;grid-template-columns:minmax(0,1fr);gap:1.4rem}
.swb-nf .f-col{min-width:0}
.swb-nf .f-list a,.swb-nf .f-col-h{overflow-wrap:break-word}
.swb-nf .f-col-h{
  display:flex;align-items:flex-end;
  font-family:var(--text);font-weight:500;font-size:.75rem;line-height:1.2;
  letter-spacing:.2em;text-transform:uppercase;color:var(--muted);
  padding-bottom:.9rem;min-height:44px;
  border-bottom:1px solid rgba(255,255,255,.11);
}
.swb-nf .f-col-h-link{padding-bottom:0;align-items:stretch}
.swb-nf .f-col-h-link a{
  display:flex;align-items:flex-end;width:100%;min-height:44px;padding-bottom:.9rem;
  transition:color .25s var(--ease);
}
.swb-nf .f-col-h-link a:hover{color:var(--white)}

.swb-nf .f-list{margin-top:.2rem}
.swb-nf .f-list li + li{border-top:1px solid rgba(255,255,255,.055)}
.swb-nf .f-list a{
  display:flex;align-items:center;min-height:44px;
  font-size:.85rem;line-height:1.35;color:var(--on-dark);
  transition:color .25s var(--ease);
}
.swb-nf .f-list a span{position:relative;display:inline-block}
.swb-nf .f-list a span::after{
  content:"";position:absolute;left:0;right:0;bottom:-3px;height:2px;
  background:var(--yellow);transform:scaleX(0);transform-origin:left;
  transition:transform .3s var(--ease);
}
.swb-nf .f-list a:hover{color:var(--white)}
.swb-nf .f-list a:hover span::after{transform:scaleX(1)}

/* ---- Legal ---- */
.swb-nf .f-legal{
  display:flex;flex-wrap:wrap;align-items:center;gap:.4rem 1.6rem;
  margin-top:clamp(1.6rem,4.5vw,3.4rem);padding-top:1.1rem;
  border-top:1px solid rgba(255,255,255,.11);
  font-size:.78rem;color:var(--muted);
}
.swb-nf .f-copy{flex:none}
.swb-nf .f-legal-links{display:flex;flex-wrap:wrap;gap:0 1.4rem;flex:1 1 auto}
.swb-nf .f-legal-links a{
  display:inline-flex;align-items:center;min-height:44px;color:var(--muted);
  transition:color .25s var(--ease);
}
.swb-nf .f-legal-links a span{position:relative;display:inline-block}
.swb-nf .f-legal-links a span::after{
  content:"";position:absolute;left:0;right:0;bottom:-3px;height:2px;
  background:var(--yellow);transform:scaleX(0);transform-origin:left;
  transition:transform .3s var(--ease);
}
.swb-nf .f-legal-links a:hover{color:var(--white)}
.swb-nf .f-legal-links a:hover span::after{transform:scaleX(1)}

.swb-nf .f-top{
  display:inline-flex;align-items:center;gap:.6rem;min-height:44px;padding:0 1.05rem;
  border:1px solid rgba(255,255,255,.22);border-radius:999px;
  font-size:.75rem;font-weight:500;letter-spacing:.14em;text-transform:uppercase;
  color:var(--white);cursor:pointer;
  transition:background .28s var(--ease),color .28s var(--ease),border-color .28s var(--ease);
}
.swb-nf .f-top svg{flex:none;transition:transform .3s var(--ease)}
.swb-nf .f-top:hover{background:var(--yellow);color:var(--iron);border-color:var(--yellow)}
.swb-nf .f-top:hover svg{transform:translateY(-3px)}

/* ---- Wider ---- */
@media (min-width:620px){
  .swb-nf .f-nav{grid-template-columns:repeat(3,minmax(0,1fr));gap:2.1rem 1.8rem}
  .swb-nf .f-col-h{min-height:3.75rem}
  .swb-nf .fb-band{opacity:1}
}
@media (min-width:900px){
  .swb-nf .f-grid{grid-template-columns:minmax(0,1fr) minmax(0,1.55fr);gap:3.2rem}
  .swb-nf .f-nav{gap:2.6rem}
  .swb-nf .f-list a{min-height:48px}
  .swb-nf .f-claim{max-width:none}
}
@media (min-width:1060px){
  .swb-nf .f-grid{gap:clamp(3.4rem,6vw,5.6rem)}
  .swb-nf .f-legal{gap:.4rem 2.4rem}
}
@media (max-width:520px){
  .swb-nf .f-legal{gap:.2rem 1.4rem}
  .swb-nf .f-legal-links{flex:1 1 100%}
  .swb-nf .f-top{margin-top:.4rem}
}
@media (prefers-reduced-motion:reduce){
  .swb-nf *{transition-duration:.001ms!important}
}
