:root{
  --bwnv-ease:cubic-bezier(.16,1,.3,1);
}

/* ---------- Navigation (Offcanvas) ---------- */
.bwnv-topbar{ position:fixed; top:0; left:0; right:0; z-index:3000; background:var(--dark); }
.bwnv-topbar-inner{ max-width:1400px; margin:0 auto; padding:22px 6vw; display:flex; align-items:center; justify-content:space-between; }
.bwnv-topbar img{ height:40px; position:relative; z-index:3001; }

.bwnv-burger-wrap{ display:flex; align-items:center; gap:14px; }
.bwnv-burger-label{ font-family:"MontserratAlternates",sans-serif; font-weight:500; font-size:13px; letter-spacing:.2em; text-transform:uppercase; color:var(--cream); }
.bwnv-burger{ position:relative; z-index:3001; width:32px; height:22px; background:none; border:none; padding:0; cursor:pointer; flex-shrink:0; }
.bwnv-burger span{ position:absolute; left:0; width:100%; height:2px; background:var(--cream); transition:transform .4s var(--bwnv-ease), opacity .3s var(--bwnv-ease), top .4s var(--bwnv-ease); }
.bwnv-burger span:nth-child(1){ top:0; }
.bwnv-burger span:nth-child(2){ top:10px; }
.bwnv-burger span:nth-child(3){ top:20px; }
.bwnv-burger.is-open span:nth-child(1){ top:10px; transform:rotate(45deg); }
.bwnv-burger.is-open span:nth-child(2){ opacity:0; }
.bwnv-burger.is-open span:nth-child(3){ top:10px; transform:rotate(-45deg); }

#bwnv-panel{ position:fixed; inset:0; z-index:2900; background:var(--dark); opacity:0; visibility:hidden; pointer-events:none; transition:opacity .4s var(--bwnv-ease), visibility 0s linear .4s; overflow-y:auto; will-change:opacity; }
#bwnv-panel.is-open{ opacity:1; visibility:visible; pointer-events:auto; transition:opacity .4s var(--bwnv-ease), visibility 0s linear 0s; }
.bwnv-panel-inner{ min-height:100%; max-width:1400px; margin:0 auto; padding:98px 6vw 38px; display:flex; flex-direction:column; justify-content:center; }
.bwnv-menu{ display:flex; flex-direction:column; gap:6px; opacity:0; transition:opacity .6s var(--bwnv-ease); will-change:opacity; }
.bwnv-menu.is-visible{ opacity:1; }
.bwnv-group{ margin-top:22px; }
.bwnv-group:first-child{ margin-top:0; }
.bwnv-chapter{ display:block; font-family:"MontserratAlternates",sans-serif; font-weight:500; font-size:10px; letter-spacing:.25em; text-transform:uppercase; color:var(--magenta); margin-bottom:8px; }
.bwnv-link{ display:block; font-family:"Ruda",sans-serif; font-weight:400; font-size:20px; letter-spacing:4px; text-transform:uppercase; line-height:1.3; margin-left:20px; color:var(--cream); opacity:1; transition:opacity .3s, color .3s, font-size .3s, transform .3s var(--bwnv-ease); }
.bwnv-link:hover{ opacity:1; color:var(--cream); font-size:22px; transform:translateX(10px); }
.bwnv-link.is-current{ opacity:1; color:var(--cream); font-size:22px; text-decoration:underline; text-decoration-color:var(--magenta); text-decoration-thickness:2px; text-underline-offset:6px; }
.bwnv-link.bwnv-indent2{ margin-left:40px; }
.bwnv-sub{ display:flex; flex-direction:column; gap:6px; }
.bwnv-contact-row{ display:none; margin-top:auto; margin-left:20px; padding-top:50px; gap:22px; align-items:center; opacity:0; transition:opacity .6s var(--bwnv-ease); }
.bwnv-contact-row.is-visible{ opacity:1; }
.bwnv-contact-row a{ display:flex; }
.bwnv-contact-row svg{ height:24px; width:24px; fill:var(--cream); opacity:.55; transition:opacity .3s, fill .3s, transform .3s var(--bwnv-ease); }
.bwnv-contact-row a:hover svg{ opacity:1; fill:var(--magenta); transform:translateX(10px) scale(1.09); }

@media (max-width:900px){ .bwnv-contact-row{ display:flex; } }
@media (min-width:601px) and (max-width:900px){
  .bwnv-panel-inner{ padding:125px 6vw 40px; justify-content:flex-start; }
  .bwnv-menu{ gap:9px; }
  .bwnv-group{ margin-top:25px; }
  .bwnv-chapter{ font-size:11px; margin-bottom:10px; }
  .bwnv-sub{ gap:9px; }
  .bwnv-contact-row{ margin-top:50px; padding-top:0; gap:30px; }
}
@media (max-width:600px){
  .bwnv-panel-inner{ padding:120px 6vw 20px; justify-content:flex-start; }
  .bwnv-menu{ gap:6px; }
  .bwnv-group{ margin-top:16px; }
  .bwnv-chapter{ font-size:10px; margin-bottom:6px; }
  .bwnv-link{ font-size:20px; letter-spacing:0; }
  .bwnv-link:hover{ font-size:22px; }
  .bwnv-link.is-current{ font-size:22px; }
  .bwnv-sub{ gap:6px; }
  .bwnv-contact-row{ margin-top:32px; padding-top:0; gap:40px; }
}

/* ---------- Footer ---------- */
.bwft-wrap{ max-width:1400px; margin:0 auto; padding:0 6vw; }
.bwft-footer{ background:var(--dark); color:var(--cream); clip-path:polygon(0 4vw,100% 0,100% 100%,0 100%); margin-top:-4vw; padding:140px 0 0; position:relative; z-index:2; }
.bwft-eyebrow{ display:block; font-family:"MontserratAlternates",sans-serif; font-weight:500; font-size:12px; letter-spacing:.25em; text-transform:uppercase; color:var(--magenta); margin-bottom:14px; }

.bwft-nl-hero{ display:flex; align-items:flex-end; justify-content:space-between; gap:60px; flex-wrap:wrap; padding-bottom:70px; margin-bottom:70px; border-bottom:1px solid rgba(243,237,228,.14); }
.bwft-nl-hero-text{ max-width:480px; }
.bwft-nl-hero-text h2{ font-size:clamp(40px,4.6vw,68px); margin-top:14px; }
.bwft-nl-hero-text p{ margin-top:18px; opacity:.75; font-size:16px; max-width:36ch; }
.bwft-nl-form-hero{ flex:1; min-width:320px; max-width:640px; }
.bwft-nl-form-hero .bwft-nl-row{ display:flex; gap:16px; margin-bottom:16px; }
.bwft-nl-form-hero input{ width:100%; background:none; border:none; border-bottom:2px solid rgba(243,237,228,.3); color:var(--cream); font-family:"Exo2",sans-serif; font-size:16px; padding:10px 2px; outline:none; cursor:none; transition:border-color .3s; }
.bwft-nl-form-hero input::placeholder{ color:rgba(243,237,228,.45); }
.bwft-nl-form-hero input:focus{ border-color:var(--magenta); }
.bwft-nl-email-row{ display:flex; gap:16px; align-items:stretch; }
.bwft-nl-email-row input{ flex:1; }
.bwft-nl-submit-hero{ flex-shrink:0; background:none; border:1px solid var(--cream); white-space:nowrap; color:var(--cream); font-family:"MontserratAlternates",sans-serif; font-weight:500; font-size:13px; letter-spacing:.1em; text-transform:uppercase; padding:0 30px; cursor:pointer; transition:background .3s, color .3s, border-color .3s; }
.bwft-nl-submit-hero:hover{ background:var(--magenta); border-color:var(--magenta); color:var(--cream); }
.bwft-nl-consent{ display:flex; align-items:flex-start; gap:12px; margin-top:20px; width:100%; }
.bwft-nl-consent input{ width:auto; margin-top:4px; cursor:pointer; accent-color:var(--magenta); flex-shrink:0; }
.bwft-nl-consent label{ flex:1; min-width:0; font-size:12.5px; opacity:.6; line-height:1.5; }
.bwft-nl-consent a{ text-decoration:underline; }
.bwft-nl-consent a:hover{ color:var(--magenta); }
#bwft-nl-message{ display:none; margin-top:16px; font-size:13px; }
#bwft-nl-message.is-visible{ display:block; }
#bwft-nl-message.is-success{ color:var(--magenta); }
#bwft-nl-message.is-error{ color:#ff6b6b; }

.bwft-cols{ display:grid; grid-template-columns:1.1fr 1fr; gap:60px; padding-bottom:70px; border-bottom:1px solid rgba(243,237,228,.14); }
.bwft-brand img{ height:46px; }
.bwft-brand p{ margin-top:22px; opacity:.7; max-width:32ch; font-size:15px; }
.bwft-addr{ margin-top:22px; font-size:15px; opacity:.7; }
.bwft-col h3{ font-size:22px; }
.bwft-btn{ display:inline-flex; align-items:center; gap:10px; margin-top:14px; background:var(--magenta); color:var(--cream); font-weight:700; padding:18px 36px; border-radius:2px; font-family:"MontserratAlternates",sans-serif; font-size:14px; text-transform:uppercase; letter-spacing:.08em; border:none; cursor:pointer; transition:transform .3s var(--bwnv-ease), background .3s; }
.bwft-btn:hover{ transform:skew(-6deg) scale(1.05); background:var(--cream); color:var(--dark); }
.bwft-contact-list{ margin-top:28px; display:flex; flex-direction:column; gap:14px; }
.bwft-contact-item{ display:flex; align-items:center; gap:12px; font-size:15px; opacity:.75; transition:opacity .3s, transform .3s var(--bwnv-ease); }
.bwft-contact-item:hover{ opacity:1; transform:translateX(6px); }
.bwft-contact-item svg{ height:23px; width:23px; fill:var(--cream); flex-shrink:0; }

.bwft-social-row{ display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:20px; padding:36px 0; border-bottom:1px solid rgba(243,237,228,.14); }
.bwft-social-icons{ display:flex; gap:22px; }
.bwft-social-icons svg{ height:25px; width:25px; fill:var(--cream); opacity:.7; transition:opacity .3s, fill .3s, transform .3s var(--bwnv-ease); }
.bwft-social-icons a:hover svg{ opacity:1; fill:var(--magenta); transform:translateY(-3px); }
.bwft-legal-links{ display:flex; gap:26px; flex-wrap:wrap; }
.bwft-legal-links a{ font-size:13px; opacity:.6; transition:opacity .3s; }
.bwft-legal-links a:hover{ opacity:1; }

.bwft-partners{ display:flex; align-items:center; justify-content:space-between; gap:50px; flex-wrap:wrap; padding:36px 0; border-bottom:1px solid rgba(243,237,228,.14); }
.bwft-partners img{ height:68px; width:auto; filter:brightness(0) invert(1); opacity:.75; transition:opacity .3s; }
.bwft-partners a:hover img{ opacity:1; }
.bwft-partner-logos{ height:78px; }
.bwft-copy{ padding:26px 0 34px; font-size:13px; opacity:.5; text-align:center; }

@media (max-width:1024px){ .bwft-nl-hero{ align-items:flex-start; } }
@media (max-width:600px){
  .bwft-footer{ padding-top:100px; }
  .bwft-nl-hero{ padding-bottom:50px; margin-bottom:50px; }
  .bwft-nl-form-hero{ max-width:none; width:100%; }
  .bwft-nl-email-row{ flex-direction:column; }
  .bwft-nl-submit-hero{ padding:14px 30px; }
  .bwft-cols{ grid-template-columns:1fr; gap:44px; }
  .bwft-social-row{ flex-direction:column; align-items:center; }
  .bwft-social-icons{ justify-content:center; width:100%; }
  .bwft-legal-links{ justify-content:center; text-align:center; width:100%; margin-top:24px; padding-top:24px; border-top:1px solid rgba(243,237,228,.14); }
  .bwft-partners{ flex-direction:column; justify-content:center; align-items:center; text-align:center; gap:34px; }
}
