.bo-newsletter-wrap{
  --nl-navy: #031B39;
  --nl-navy-soft: #0B2A52;
  --nl-blue: #1083E6;
  --nl-blue-soft: #BFE0FB;
  --nl-glow: #1083E6;
  --nl-ease: cubic-bezier(.22,1,.36,1);
  --nl-ease-spring: cubic-bezier(.34,1.56,.64,1);

  --nl-section-bg: transparent;
  --nl-container-max: 1220px;
  --nl-radius: 20px;
  --nl-band-padding: 48px;

  --nl-heading-color: #ffffff;
  --nl-desc-color: rgba(255,255,255,.65);

  --nl-input-bg: rgba(255,255,255,.07);
  --nl-input-border: rgba(255,255,255,.18);
  --nl-input-text: #ffffff;
  --nl-input-border-focus: var(--nl-blue);

  --nl-btn-bg-end: #0C66B8;
  --nl-btn-color: #ffffff;

  --nl-fine-color: rgba(255,255,255,.45);
  --nl-fine-link-color: rgba(255,255,255,.7);

  --nl-overlay-color: rgba(3,27,57,.72);
  --nl-overlay-opacity: 1;

  font-family:'Roboto', sans-serif;
}

.bo-newsletter-wrap section{
  background: var(--nl-section-bg);
  padding: var(--nl-padding-top, 0px) 0 var(--nl-padding-bottom, 80px);
}
.bo-newsletter-wrap .nl-wrap{ max-width: var(--nl-container-max, 1220px); margin:0 auto; padding:0 40px; }

.bo-newsletter-wrap .eyebrow{
  font-family:'IBM Plex Mono', monospace;
  font-size:11px; letter-spacing:.14em; text-transform:uppercase;
  color: var(--nl-blue-soft); font-weight:500;
  display:flex; align-items:center; gap:10px;
  margin-bottom:14px;
}
.bo-newsletter-wrap .eyebrow::before{
  content:''; width:18px; height:1px; background: var(--nl-blue-soft); display:inline-block;
}

/* ---------- Band ---------- */
.bo-newsletter-wrap .newsletter-band{
  background:linear-gradient(135deg, var(--nl-navy), var(--nl-navy-soft));
  border-radius: var(--nl-radius); padding: var(--nl-band-padding) 56px;
  position:relative; overflow:hidden;
  display:grid; grid-template-columns:1.1fr 1fr; gap:40px; align-items:center;
  transition: transform .35s var(--nl-ease), box-shadow .35s var(--nl-ease), filter .35s var(--nl-ease);
}
.bo-newsletter-wrap .newsletter-band::before{
  content:''; position:absolute; top:-40%; right:-10%; width:420px; height:420px; border-radius:50%;
  background: radial-gradient(circle, color-mix(in srgb, var(--nl-glow) 22%, transparent), transparent 70%);
  transition: opacity .35s var(--nl-ease);
}
.bo-newsletter-wrap[data-nl-band-hover="lift"] .newsletter-band:hover{ transform: translateY(-4px); box-shadow: 0 24px 48px -20px rgba(3,27,57,.4); }
.bo-newsletter-wrap[data-nl-band-hover="glow"] .newsletter-band:hover::before{ opacity: 1.6; filter: brightness(1.2); }

/* ---------- Background image + overlay ---------- */
.bo-newsletter-wrap .newsletter-band.has-bg-image{ background-color: var(--nl-navy); background-repeat:no-repeat; }
.bo-newsletter-wrap .newsletter-band-overlay{
  position:absolute; inset:0; z-index:0;
  background: var(--nl-overlay-color);
  opacity: var(--nl-overlay-opacity);
}
.bo-newsletter-wrap .newsletter-copy,
.bo-newsletter-wrap .newsletter-form{ position:relative; z-index:1; }

/* ---------- Flip layout ---------- */
.bo-newsletter-wrap .newsletter-band.is-flipped{ direction: rtl; }
.bo-newsletter-wrap .newsletter-band.is-flipped > *{ direction: ltr; }

.bo-newsletter-wrap .newsletter-copy h1,
.bo-newsletter-wrap .newsletter-copy h2,
.bo-newsletter-wrap .newsletter-copy h3,
.bo-newsletter-wrap .newsletter-copy h4,
.bo-newsletter-wrap .newsletter-copy h5,
.bo-newsletter-wrap .newsletter-copy h6{
  font-family:'Roboto Slab', serif; font-weight:600; letter-spacing:-0.01em;
  color: var(--nl-heading-color); font-size:28px; margin-bottom:10px;
}
.bo-newsletter-wrap .newsletter-copy p{
  color: var(--nl-desc-color); font-size:14px; max-width:380px; line-height:1.6;
}

.bo-newsletter-wrap .newsletter-row{ display:flex; gap:10px; }
.bo-newsletter-wrap .newsletter-row input[type="email"]{
  flex:1; border:1px solid var(--nl-input-border); background: var(--nl-input-bg);
  border-radius:9px; padding:13px 16px; font-family:'Roboto'; font-size:13.5px; color: var(--nl-input-text);
  transition: border-color .3s var(--nl-ease), background .3s var(--nl-ease);
}
.bo-newsletter-wrap .newsletter-row input[type="email"]::placeholder{ color: color-mix(in srgb, var(--nl-input-text) 45%, transparent); }
.bo-newsletter-wrap .newsletter-row input[type="email"]:focus{
  outline:none; border-color: var(--nl-input-border-focus); background: color-mix(in srgb, var(--nl-input-bg) 160%, white 5%);
}
.bo-newsletter-wrap .newsletter-fine{ font-size:11.5px; color: var(--nl-fine-color); margin-top:10px; }
.bo-newsletter-wrap .newsletter-fine a{ color: var(--nl-fine-link-color); text-decoration:underline; }

/* ---------- Button ---------- */
.bo-newsletter-wrap .btn{
  font-family:'Roboto'; font-weight:600; font-size:13.5px;
  padding:11px 22px; border-radius:7px;
  display:inline-flex; align-items:center; gap:9px;
  transition: all .35s var(--nl-ease);
  border:1px solid transparent; white-space:nowrap;
  position:relative; overflow:hidden; cursor:pointer;
}
.bo-newsletter-wrap .btn::before{
  content:''; position:absolute; top:0; left:-100%; width:60%; height:100%;
  background:linear-gradient(120deg, transparent, rgba(255,255,255,.25), transparent);
  transition: left .6s var(--nl-ease);
}
.bo-newsletter-wrap[data-nl-btn-hover="lift-shadow"] .btn:hover::before,
.bo-newsletter-wrap[data-nl-btn-hover="shine-only"] .btn:hover::before{ left:130%; }
.bo-newsletter-wrap .btn-gold{
  background:linear-gradient(135deg, var(--nl-blue), var(--nl-btn-bg-end)); color: var(--nl-btn-color);
  box-shadow: 0 8px 20px -8px color-mix(in srgb, var(--nl-blue) 55%, transparent);
}
.bo-newsletter-wrap .btn-gold svg path{ stroke: var(--nl-btn-color); }
.bo-newsletter-wrap[data-nl-btn-hover="lift-shadow"] .btn-gold:hover{
  transform:translateY(-2px); box-shadow: 0 14px 26px -8px color-mix(in srgb, var(--nl-blue) 65%, transparent);
}
.bo-newsletter-wrap[data-nl-btn-hover="lift-only"] .btn-gold:hover{ transform:translateY(-2px); }
.bo-newsletter-wrap[data-nl-btn-hover="none"] .btn-gold:hover{ transform:none; box-shadow: 0 8px 20px -8px color-mix(in srgb, var(--nl-blue) 55%, transparent); }
.bo-newsletter-wrap[data-nl-btn-hover="none"] .btn::before{ display:none; }

/* ---------- Reveal ---------- */
.bo-newsletter-wrap .reveal-scale{
  opacity:0; transform:scale(.94);
  transition:opacity .8s var(--nl-ease), transform .9s var(--nl-ease-spring);
}
.bo-newsletter-wrap .reveal-scale.in{ opacity:1; transform:scale(1); }

@media (prefers-reduced-motion: reduce){
  .bo-newsletter-wrap .reveal-scale{ opacity:1; transform:none; transition:none; }
}

/* ---------- Editor-active safety net ----------
   Elementor adds this class to the preview iframe <body> so plugins can
   force-show scroll-reveal content while editing, independent of any
   JS timing race. */
body.elementor-editor-active .bo-newsletter-wrap .reveal-scale{
  opacity: 1 !important;
  transform: none !important;
}

/* ================= RESPONSIVE ================= */
@media (max-width:980px){
  .bo-newsletter-wrap .newsletter-band,
  .bo-newsletter-wrap .newsletter-band.is-flipped{ grid-template-columns:1fr; direction:ltr; }
}
@media (max-width:640px){
  .bo-newsletter-wrap .nl-wrap{ padding:0 20px; }
  .bo-newsletter-wrap .newsletter-band{
    grid-template-columns:1fr;
    padding: calc(var(--nl-band-padding, 48px) * 0.65) 24px;
    text-align:center;
  }
  .bo-newsletter-wrap .newsletter-copy p{ margin:0 auto; }
  .bo-newsletter-wrap .newsletter-row{ flex-direction:column; }
  .bo-newsletter-wrap .newsletter-row .btn{ justify-content:center; }
}