/* Base rules for every HubSpot newsletter form, regardless of wrapper.
   Position-specific styling layers on top in newsletter.css (banner) and
   style.scss (widget, footer). */
.sw-hs-form .hs-form-field > label {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}
.sw-hs-form .hs_email_signup_source {
  display: none !important;
}

.security-newsletter-container {
  background-color: #004568;
  box-shadow: 0 -5px 5px -3px rgba(0, 0, 0, 0.06),
              0 -8px 10px 1px rgba(0, 0, 0, 0.042),
              0 -3px 14px 2px rgba(0, 0, 0, 0.036);
  position: fixed;
  bottom: 0;
  padding: 0.9em 4em;
  width: 100%;
  z-index: 9999;
  opacity: 0;
  transform: translateY(20px);
  pointer-events: none;
}
.security-newsletter-container.visible {
  pointer-events: auto;
}
.security-newsletter-signup {
  display: flex;
  gap: 0em;
  align-items: center;
}
.security-newsletter-signup h2 {
  color: #fff;
  font-size: 1.3em;
  max-width: 498px;
  width: 100%;
}
.security-newsletter-content {
    max-width: 522px;
    width: 100%;
}
.security-newsletter-text {
  color: #fff;
  font-size: 1em;
  line-height: 1.3;
  margin-top: 10px;
  margin-right: 20px;
  max-width: 500px;
}
.security-newsletter-signup .sw-hs-form {
  flex: 1;
  min-width: 0;
}
.security-newsletter-signup form {
  width: 100%;
  margin: 0;
}

/* HubSpot form: row 1 = email + submit, row 2 = legal text.
   Explicit `order` keeps submit visually right after the input even though
   .legal-consent-container appears between them in source order. */
.security-newsletter-signup .hs-form {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  width: 100%;
  margin: 0;
  gap: 0 20px;
}
.security-newsletter-signup .hs_email {
  order: 1;
  flex: 0 1 360px;   /* email field is 360px wide, can shrink on narrow screens */
  min-width: 0;
  margin: 0;
}
.security-newsletter-signup .hs_email .input {
  margin: 0;
}
.security-newsletter-signup .hs_email_signup_source {
  display: none !important;
}
.security-newsletter-signup .hs_submit {
  order: 2;
  flex: 0 0 auto;
  margin: 0;
}
.security-newsletter-signup .hs_submit .actions {
  margin: 0;
  padding: 0;
}
.security-newsletter-signup .legal-consent-container {
  order: 3;
  flex: 1 1 100%;    /* full row of its own */
  margin: 6px 0 0;
}

/* hide field labels (and the required asterisk) but keep them for a11y */
.security-newsletter-signup .hs-form-field > label {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

.security-newsletter-signup .hs-input {
  padding: 1em 1em;
  font-size: 1em;
  border: 1px solid #004568;
  font-family: 'Titillium Web', sans-serif;
  font-weight: 500;
  width: 100%;
  box-sizing: border-box;
}

.security-newsletter-signup .hs-button {
  -webkit-appearance: none;
  background-color: #1188c3;
  color: #fff;
  font-family: 'Titillium Web', sans-serif;
  padding: 0.7em 2em;
  font-size: 1.2em;
  font-weight: bold;
  box-shadow: none;
  border: 0;
  cursor: pointer;
}
.security-newsletter-signup .hs-button:hover {
  background-color: #000;
}

.security-newsletter-signup .hs-richtext,
.security-newsletter-signup .hs-richtext p {
  color: #fff;
  font-size: 0.85em;
  line-height: 1.3;
  margin: 0;
  opacity: 0.85;
}

.security-newsletter-signup .hs-error-msgs {
  list-style: none;
  margin: 4px 0 0;
  padding: 0;
}
.security-newsletter-signup .hs-error-msg,
.security-newsletter-signup .hs-error-msgs label {
  color: #ffd6d6;
  font-size: 0.85em;
}

.security-newsletter-signup .submitted-message,
.security-newsletter-signup .submitted-message p {
  color: #fff;
}

.security-newsletter-close {
  color: #fff;
  position: absolute;
  right: 3em;
  font-size: 1.5em;
  transition: all 0.3s ease-in;
}
.security-newsletter-close:hover {
  cursor: pointer;
  color: #fff;
  transform: scale(1.1);
}
.fade-up {
  opacity: 0;
  transform: translateY(20px);
  transition: opacity 0.8s ease-in-out, transform 0.8s ease-in-out;
}

.fade-up.visible {
  opacity: 1;
  transform: translateY(0);
}
.zoxrel .zox-fly-top {
  bottom: 28px;
}
@media screen and (max-width: 1300px) {
  .security-newsletter-close {
    right: 0.95em;
    top: 0.25em;
  }
  .security-newsletter-signup {
    gap: 0.5em;
    flex-direction: column;
    justify-content: center;
    align-items: flex-start;
  }
}
@media screen and (max-width: 1024px) {
  .security-newsletter-container {
    padding: 1.2em 2em;
  }
  .security-newsletter-signup {
    gap: 1em;
  }
  .security-newsletter-signup h2 {
    font-size: 1.1em;
    max-width: 180px;
  }
  .security-newsletter-signup .hs_email {
    flex-basis: 280px;
  }
}
@media screen and (max-width: 758px) {
  .security-newsletter-container {
    padding: 0.5em 15px;
  }
 
  .security-newsletter-signup h2 {
    width: auto;
  }
  .security-newsletter-signup .hs_email {
    flex-basis: auto;
    width: 100%;
  }
  .security-newsletter-signup .hs-button {
    padding: 0.7em 0.75em;
    font-size: 0.9em;
  }
  .security-newsletter-signup .hs-input {
    padding: 0.505em 0.5em;
  }
  .security-newsletter-close {
    top: 9px;
    font-size: 1.1em;
    right: 24px;
  }
  .zoxrel .zox-fly-top {
    bottom: 6px;
  }
}
