html.gp-newsletter-open,
html.gp-newsletter-open body { overflow: hidden; }
.gp-newsletter[hidden] { display: none !important; }
.gp-newsletter, .gp-newsletter * { box-sizing: border-box; }
.gp-newsletter {
  position: fixed; inset: 0; z-index: 999999;
  display: grid; place-items: center; padding: 16px;
  opacity: 0; transition: opacity .2s ease;
}
.gp-newsletter.is-visible { opacity: 1; }
.gp-newsletter__backdrop {
  position: absolute; inset: 0;
  background: rgba(16,34,26,.68); backdrop-filter: blur(3px);
}
.gp-newsletter__dialog {
  position: relative; width: min(540px, 100%);
  max-height: calc(100vh - 32px); max-height: calc(100dvh - 32px);
  overflow: auto; border-radius: 18px;
  background: #e5f4d5; color: #03443e;
  box-shadow: 0 24px 80px rgba(0,0,0,.3);
  transform: translateY(12px) scale(.985); transition: transform .2s ease;
}
.gp-newsletter.is-visible .gp-newsletter__dialog { transform: none; }
.gp-newsletter__content { padding: 0; }
.gp-newsletter__image {
  display: block; width: 100%; height: auto; margin: 0;
  max-height: calc(100vh - 132px); max-height: calc(100dvh - 132px);
  object-fit: contain;
}
.gp-newsletter__close {
  position: absolute; z-index: 2; top: 10px; right: 10px;
  display: flex; align-items: center; justify-content: center;
  width: 42px; height: 42px; padding: 0; border: 0;
  border-radius: 50%; background: #fff; color: #03443e;
  font: 400 32px/1 Arial,sans-serif; cursor: pointer;
  box-shadow: 0 2px 12px rgba(0,0,0,.12);
}
.gp-newsletter__actions { padding: 18px 24px 22px; }
.gp-newsletter__signup {
  display: flex; align-items: center; justify-content: center;
  width: 100%; min-height: 50px; padding: 12px 24px;
  border-radius: 999px; background: #03443e; color: #fff !important;
  font: 700 19px/1.4 "Source Sans 3",sans-serif;
  text-decoration: none !important; text-align: center;
  transition: background .2s ease;
}
.gp-newsletter__signup:hover { background: #176255; }
.gp-newsletter__signup:focus-visible,
.gp-newsletter__close:focus-visible { outline: 3px solid #f7af24; outline-offset: -4px; }
@media (max-width: 520px) {
  .gp-newsletter { padding: 10px; }
  .gp-newsletter__dialog { border-radius: 14px; }
  .gp-newsletter__actions { padding: 16px 18px 18px; }
}
@media (prefers-reduced-motion: reduce) {
  .gp-newsletter, .gp-newsletter__dialog, .gp-newsletter__signup { transition: none; }
}
