/* Self-contained newsletter components; no Bricks or Brevo CSS dependencies. */
.vn-shell, .vn-shell * { box-sizing: border-box; }
.vn-shell {
  --vn-bg: #0e1b40;
  --vn-text: #fff;
  --vn-title: #fff;
  --vn-description: #fff;
  --vn-button-bg: #186cea;
  --vn-button-text: #fff;
  --vn-input-bg: #fff;
  --vn-input-text: #17213a;
  --vn-title-size: 32px;
  --vn-description-size: 18px;
  --vn-body-size: 15px;
  --vn-padding: 32px;
  position: relative;
  isolation: isolate;
  overflow: hidden;
  width: 100%;
  padding: var(--vn-padding);
  background: var(--vn-bg);
  color: var(--vn-text);
  font-size: var(--vn-body-size);
  font-family: inherit;
  line-height: 1.5;
}


.vn-shell .vn-copy, .vn-shell .vn-signup { position: relative; z-index: 1; min-width: 0; }
.vn-shell.vn-layout-split { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1fr); gap: clamp(20px, 4vw, 64px); align-items: center; }
.vn-shell.vn-layout-stack { display: flex; flex-direction: column; align-items: center; text-align: center; gap: 22px; }
.vn-shell.vn-layout-stack .vn-copy { width: 100%; max-width: 700px; }
.vn-shell.vn-layout-stack .vn-signup { width: 100%; max-width: 500px; }
.vn-shell .vn-heading { color: var(--vn-title); font-size: var(--vn-title-size); font-weight: 700; font-family: inherit; line-height: 1.25; margin: 0 0 16px; overflow-wrap: anywhere; }


.vn-shell .vn-description { color: var(--vn-description); font-size: var(--vn-description-size); line-height: 1.45; overflow-wrap: break-word; }
.vn-shell .vn-description p, .vn-shell .vn-privacy p { color: inherit; font-family: inherit; font-size: inherit; line-height: inherit; margin: 0 0 10px; }
.vn-shell .vn-description p:last-child, .vn-shell .vn-privacy p:last-child { margin-bottom: 0; }
.vn-shell .vn-description a, .vn-shell .vn-privacy a { color: inherit; text-decoration: underline; }
.vn-shell .vn-description strong, .vn-shell .vn-privacy strong { font-weight: 700; }
.vn-shell .vn-email-label { color: var(--vn-text); display: block; margin-bottom: 10px; font-weight: 700; font-size: var(--vn-body-size); }
.vn-shell .vn-email { display: block; width: 100%; min-height: 44px; background: var(--vn-input-bg); border: 1px solid rgba(50,60,75,.15); border-radius: 2px; color: var(--vn-input-text); padding: 10px 14px; font: inherit; font-size: var(--vn-body-size); box-shadow: none; }
.vn-shell .vn-email::placeholder { color: #888; opacity: 1; }
.vn-shell .vn-email:focus-visible, .vn-shell .vn-submit:focus-visible, .vn-close:focus-visible { outline: 3px solid #87baff; outline-offset: 3px; }
.vn-shell .vn-privacy { color: var(--vn-text); font-size: max(11px, calc(var(--vn-body-size) - 2px)); margin: 10px 0 18px; line-height: 1.45; }
.vn-shell.vn-layout-stack .vn-privacy { text-align: center; }
.vn-shell .vn-submit { border: 0; border-radius: 3px; background: var(--vn-button-bg); color: var(--vn-button-text); font: inherit; font-size: var(--vn-body-size); font-weight: 700; line-height: 1.25; cursor: pointer; min-height: 44px; padding: 12px 24px; transition: filter .15s ease; white-space: normal; }
.vn-shell .vn-submit:hover:not(:disabled) { filter: brightness(1.13); }
.vn-shell .vn-submit:disabled { opacity: .7; cursor: wait; }
.vn-shell.vn-layout-stack .vn-submit { display: block; margin: 0 auto; }
.vn-shell .vn-message { display: none; margin-top: 12px; padding: 12px 14px; line-height: 1.45; border: 1px solid transparent; text-align: left; overflow-wrap: break-word; }
.vn-shell .vn-message.is-error, .vn-shell .vn-message.vn-error { display: block; color: #68191d; background: #ffeded; border-color: #f88; }
.vn-shell .vn-message.is-success, .vn-shell .vn-message.vn-success { display: block; color: #085229; background: #e7faf0; border-color: #13ce66; }
.vn-shell .vn-honeypot { position: absolute !important; width: 1px; height: 1px; overflow: hidden; opacity: 0; left: -9999px; pointer-events: none; }
.vn-shell .vn-honeypot input { width: 1px; height: 1px; }
.vn-shell .vn-turnstile { min-height: 0; margin: 4px auto 10px; }
.vn-shell .vn-turnstile:empty { display: none; }
.vn-shell.vn-completed .vn-email, .vn-shell .vn-signup.vn-completed .vn-email, .vn-shell .vn-signup.vn-completed .vn-email-label, .vn-shell .vn-signup.vn-completed .vn-submit, .vn-shell .vn-signup.vn-completed .vn-privacy, .vn-shell .vn-signup.vn-completed .vn-turnstile { display: none !important; }
.vn-shell .vn-signup.vn-completed .vn-message { margin: 0; }
.vn-shell .vn-decor { pointer-events: none; position: absolute; inset: 0; overflow: hidden; z-index: 0; color: rgba(255,255,255,.14); }
.vn-shell .vn-ring { position: absolute; height: auto; width: clamp(160px, 29vw, 340px); }
.vn-shell .vn-ring-1 { top: -140px; right: -120px; }
.vn-shell .vn-ring-2 { bottom: 5%; right: 15%; width: clamp(90px, 12vw, 150px); }
.vn-shell .vn-ring-3 { left: -140px; bottom: -140px; }
.vn-shell .vn-ring-4 { left: 17%; top: -220px; width: clamp(200px, 25vw, 320px); }
.vn-dialog { border: 0; border-radius: 0; background: transparent; padding: 0; margin: auto; color: inherit; width: min(calc(100vw - 32px), var(--vn-modal-width, 520px)); max-width: calc(100vw - 24px); max-height: min(90vh, 90dvh); overflow: auto; box-shadow: 0 15px 75px rgba(0,0,0,.27); }
.vn-dialog::backdrop { background: rgba(0,0,0,.66); }
.vn-dialog:not([open]) { display: none; }
.vn-dialog .vn-shell { width: 100%; max-width: none; min-height: 0; }
.vn-dialog .vn-shell.vn-layout-split { grid-template-columns: 1fr; }
.vn-dialog .vn-heading, .vn-dialog .vn-description { text-align: center; }
.vn-dialog .vn-shell .vn-email-label { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }
.vn-dialog .vn-privacy { text-align: center; }
.vn-dialog .vn-signup { text-align: center; }
.vn-dialog .vn-submit { margin-left: auto; margin-right: auto; }
.vn-dialog .vn-close { position: absolute; z-index: 5; right: 9px; top: 8px; display: grid; place-items: center; border: 0; background: transparent; color: var(--vn-modal-close, #fff); width: 40px; height: 40px; font-size: 32px; font-weight: 300; line-height: 1; cursor: pointer; }
.vn-modal-open { overflow: hidden; }
@media (max-width: 767px) {
  .vn-shell.vn-layout-split { display: flex; flex-direction: column; gap: 20px; align-items: stretch; }
  .vn-shell { padding: min(28px, var(--vn-padding)); }
  .vn-shell .vn-heading { font-size: clamp(22px, 5.6vw, var(--vn-title-size)); }
  .vn-shell .vn-description { font-size: min(var(--vn-description-size), 18px); }
  .vn-dialog { width: min(calc(100vw - 20px), var(--vn-modal-width, 520px)); }
  .vn-dialog .vn-shell { padding: max(20px, min(26px, var(--vn-padding))); }
}
@media (prefers-reduced-motion: reduce) { .vn-shell .vn-submit { transition: none; } }

/* Cache-safe simultaneous A/B: never expose both variants or flash A before assignment. */
.vn-arm[hidden] { display: none !important; }
.vn-experiment[data-vn-ready="0"] { visibility: hidden; }
.vn-experiment[data-vn-ready="1"] { visibility: visible; }
.vn-dialog .vn-experiment { width: 100%; }

/* v1.1.4: on narrow screens, keep only two subtle, well-separated corner
   rings. Avoid the overlapping outlines of the four-ring desktop design. */
@media (max-width: 767px) {
  .vn-shell .vn-ring-2, .vn-shell .vn-ring-4 { display: none; }
  .vn-shell .vn-decor { color: rgba(255,255,255,.10); }
  .vn-shell .vn-ring-1 { width: 205px; top: -123px; right: -125px; }
  .vn-shell .vn-ring-3 { width: 205px; bottom: -125px; left: -125px; }
}
/* The 375px admin preview is a narrow element inside a desktop viewport.
   Apply the same ring layout there, independently of viewport media queries. */
.vn-admin .vn-preview-mobile .vn-shell .vn-ring-2,
.vn-admin .vn-preview-mobile .vn-shell .vn-ring-4 { display: none; }
.vn-admin .vn-preview-mobile .vn-shell .vn-decor { color: rgba(255,255,255,.10); }
.vn-admin .vn-preview-mobile .vn-shell .vn-ring-1 { width: 205px; top: -123px; right: -125px; }
.vn-admin .vn-preview-mobile .vn-shell .vn-ring-3 { width: 205px; bottom: -125px; left: -125px; }
