/* MEI Newsletter form — inherits the site's mei-* CSS variables (falls back gracefully). */
.mei-nl { max-width: 640px; }
.mei-nl__title { font-family: var(--mei-font-display, 'Montserrat', system-ui, sans-serif); font-size: 1.35rem; font-weight: 700; color: var(--mei-ink, #08254A); margin: 0 0 .4rem; }
.mei-nl__text { color: var(--mei-muted, #5B6B7A); margin: 0 0 1rem; }
.mei-nl__form { position: relative; }
.mei-nl__row { display: flex; gap: .6rem; flex-wrap: wrap; }
.mei-nl__field { flex: 1 1 180px; min-width: 0; }
.mei-nl__field input { width: 100%; min-height: 48px; border: 1px solid var(--mei-line, #D9E2EC); border-radius: 8px; padding: .6rem .85rem; font-size: 1rem; font-family: inherit; background: #fff; color: var(--mei-text, #182433); }
.mei-nl__field input:focus { outline: 2px solid var(--mei-blue-bright, #3A7DFF); outline-offset: 1px; border-color: var(--mei-blue, #155FC1); }
.mei-nl__submit { flex: 0 0 auto; white-space: nowrap; }
.mei-nl__submit.is-loading { opacity: .7; pointer-events: none; }
.mei-nl__consent { display: flex; gap: .5rem; align-items: flex-start; margin-top: .75rem; font-size: .9rem; line-height: 1.4; color: var(--mei-muted, #5B6B7A); }
.mei-nl__consent input { margin-top: .2rem; flex: none; }
.mei-nl__hp { position: absolute !important; left: -9999px; top: 0; width: 1px; height: 1px; overflow: hidden; }
.mei-nl__msg { margin: .75rem 0 0; font-weight: 600; min-height: 1.2em; }
.mei-nl__msg.is-success { color: var(--mei-success, #167A5B); }
.mei-nl__msg.is-error { color: var(--mei-error, #B42318); }
.mei-nl--stacked .mei-nl__row { flex-direction: column; }
.mei-nl--stacked .mei-nl__field { flex: 0 0 auto; width: 100%; }
.mei-nl--stacked .mei-nl__submit { width: 100%; }
/* on dark sections (e.g. footer) */
.mei-section--dark .mei-nl__title, .mei-footer .mei-nl__title { color: #fff; }
.mei-section--dark .mei-nl__text, .mei-section--dark .mei-nl__consent,
.mei-footer .mei-nl__text, .mei-footer .mei-nl__consent { color: #c9d6ea; }
.mei-sr-only { position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }

/* ---------- first-visit popup ---------- */
.mei-nlp-lock { overflow: hidden; }
.mei-nlp { position: fixed; inset: 0; z-index: 99999; display: grid; place-items: center; padding: 1.25rem;
  opacity: 0; visibility: hidden; transition: opacity .24s ease, visibility .24s ease; }
.mei-nlp[data-open] { opacity: 1; visibility: visible; }
.mei-nlp__backdrop { position: absolute; inset: 0; background: rgba(8, 20, 38, .62); backdrop-filter: blur(2px); }
.mei-nlp__card { position: relative; width: 100%; max-width: 460px; background: #fff; border-radius: 16px;
  padding: 2rem 1.9rem 1.9rem; box-shadow: 0 30px 80px rgba(8, 20, 38, .4);
  transform: translateY(10px) scale(.98); transition: transform .24s ease; }
.mei-nlp[data-open] .mei-nlp__card { transform: none; }
.mei-nlp__close { position: absolute; top: .5rem; right: .6rem; width: 40px; height: 40px; border: 0;
  background: transparent; color: var(--mei-muted, #5B6B7A); font-size: 1.7rem; line-height: 1; cursor: pointer;
  border-radius: 8px; }
.mei-nlp__close:hover { background: var(--mei-cloud, #EAF0F7); color: var(--mei-ink, #08254A); }
.mei-nlp__title { font-family: var(--mei-font-display, 'Montserrat', system-ui, sans-serif); font-size: 1.5rem;
  font-weight: 800; color: var(--mei-ink, #08254A); margin: 0 1.4rem .5rem 0; line-height: 1.15; }
.mei-nlp__text { color: var(--mei-muted, #5B6B7A); line-height: 1.55; margin: 0 0 1.1rem; }
.mei-nlp .mei-nl { max-width: none; }
@media (prefers-reduced-motion: reduce) { .mei-nlp, .mei-nlp__card { transition: none; } }
