.wp-block-adamsons-newsletter-hero,
.newsletter-hero {
  --newsletter-hero-overlay: 0.28;
  --newsletter-hero-focus-x: 50%;
  --newsletter-hero-focus-y: 50%;
  position: relative;
  width: 100%;
  min-height: clamp(440px, 37vw, 570px);
  margin-block: 0;
  overflow: hidden;
  isolation: isolate;
  color: var(--beige);
  background: var(--green-2);
}

.newsletter-hero__background,
.newsletter-hero__overlay {
  position: absolute;
  inset: 0;
}

.newsletter-hero__background {
  z-index: -3;
}

.newsletter-hero__background-image {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: cover;
  object-position: var(--newsletter-hero-focus-x) var(--newsletter-hero-focus-y);
}

.newsletter-hero__overlay {
  z-index: -2;
  background:
    linear-gradient(90deg, rgba(1, 13, 8, 0.58) 0%, rgba(1, 13, 8, 0.38) 38%, rgba(1, 13, 8, 0.04) 76%),
    rgb(0 0 0 / var(--newsletter-hero-overlay));
  pointer-events: none;
}

.newsletter-hero__brand {
  position: absolute;
  z-index: 1;
  top: clamp(24px, 2.7vw, 40px);
  left: 0;
  width: min(320px, 64vw);
  max-height: 130px;
}

.newsletter-hero__logo-image {
  width: auto;
  max-width: 100%;
  max-height: 120px;
  display: block;
  object-fit: contain;
  object-position: left center;
}

.newsletter-hero__inner {
  min-height: inherit;
  padding-top: clamp(175px, 14vw, 215px);
  padding-bottom: clamp(52px, 7vw, 82px);
  display: flex;
  align-items: flex-start;
}

.newsletter-hero__content {
  width: min(650px, 100%);
}

.newsletter-hero__heading {
  margin: 0;
  color: var(--beige);
  font-family: var(--font-heading);
  font-size: clamp(28px, 2.5vw, 38px);
  font-weight: 500;
  line-height: 1.45;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  text-wrap: balance;
}

.newsletter-hero__open {
  min-height: 48px;
  margin-top: 24px;
  padding: 10px 30px;
  border: 1px solid var(--gold);
  border-radius: 0;
  color: var(--beige);
  background: var(--gold);
  cursor: pointer;
  font-family: var(--font-heading);
  font-size: 16px;
  font-weight: 500;
  line-height: 1.2;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.newsletter-hero__open:hover,
.newsletter-hero__open:focus {
  color: var(--beige);
  background: var(--green);
  border-color: var(--green);
}

body.has-newsletter-hero-modal-open {
  overflow: hidden;
}

.newsletter-hero__modal[hidden] {
  display: none !important;
}

.newsletter-hero__modal {
  position: fixed;
  inset: 0;
  z-index: 100000;
  overflow-x: hidden;
  overflow-y: auto;
  min-height: 100%;
  overscroll-behavior: contain;
  background-color: rgba(0, 0, 0, 0.6);
}

.newsletter-hero__modal-inner {
  position: relative;
  color: var(--green);
  padding: 42px;
  margin: 20vh 12vw;
  background: var(--beige);
}

.newsletter-hero__close {
  position: absolute;
  top: clamp(24px, 3vw, 40px);
  right: clamp(24px, 3vw, 44px);
  width: 46px;
  height: 46px;
  padding: 0;
  border: 0;
  color: var(--green);
  background: transparent;
  cursor: pointer;
}

.newsletter-hero__close::before,
.newsletter-hero__close::after {
  content: '';
  position: absolute;
  top: 50%;
  left: 3px;
  width: 40px;
  height: 2px;
  background: currentColor;
}

.newsletter-hero__close::before {
  transform: rotate(45deg);
}

.newsletter-hero__close::after {
  transform: rotate(-45deg);
}

.newsletter-hero__close:hover,
.newsletter-hero__close:focus {
  color: var(--gold);
}

.newsletter-hero__modal-logo {
  width: min(360px, calc(100% - 90px));
  min-height: 1px;
  margin-left: -42px;
}

.newsletter-hero__modal-logo .newsletter-hero__logo-image {
  max-height: 120px;
}

.newsletter-hero__modal-content {
  width: min(1180px, 100%);
  margin: clamp(42px, 6vh, 72px) auto 0;
  text-align: center;
}

.newsletter-hero__modal-heading {
  max-width: 900px;
  margin: 0 auto;
  color: var(--green);
  font-family: var(--font-heading);
  font-size: clamp(40px, 5vw, 60px);
  font-weight: 500;
  line-height: 1.15;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  text-wrap: balance;
}

.newsletter-hero__modal-intro {
  max-width: 900px;
  margin: 24px auto 0;
  color: var(--green);
  font-size: clamp(17px, 1.3vw, 20px);
  line-height: 1.45;
}

.newsletter-hero__form {
  width: 100%;
  margin: 36px auto 0;
  text-align: left;
}

.newsletter-hero__form .gform_wrapper {
  width: 100%;
  margin: 0;
}

.newsletter-hero__form .gform_fields {
  gap: 18px;
}

.newsletter-hero__form .gfield_label,
.newsletter-hero__form .gform-field-label,
.newsletter-hero__form legend {
  color: var(--green);
  font-family: var(--font-heading);
  font-size: 16px;
  font-weight: 500;
  letter-spacing: 0.04em;
}

.newsletter-hero__form input:not([type='checkbox']):not([type='radio']):not([type='submit']),
.newsletter-hero__form select,
.newsletter-hero__form textarea {
  width: 100%;
  min-height: 52px;
  padding: 12px 16px;
  border: 1px solid var(--gold);
  border-radius: 0;
  color: var(--green);
  background: var(--beige);
  box-shadow: none;
  font-family: var(--font-body);
  font-size: 16px;
}

.newsletter-hero__form textarea {
  min-height: 120px;
  resize: vertical;
}

.newsletter-hero__form input:focus,
.newsletter-hero__form select:focus,
.newsletter-hero__form textarea:focus {
  outline: 3px solid rgba(165, 137, 85, 0.35);
  outline-offset: 2px;
}

.newsletter-hero__form .gform_footer,
.newsletter-hero__form .gform_page_footer {
  margin-top: 24px;
  display: flex;
  justify-content: center;
}

.newsletter-hero__form input[type='submit'],
.newsletter-hero__form button[type='submit'],
.newsletter-hero__form .gform_button {
  min-width: min(360px, 100%);
  min-height: 52px;
  padding: 12px 28px;
  border: 1px solid var(--green);
  border-radius: 0;
  color: var(--beige);
  background: var(--green);
  cursor: pointer;
  font-family: var(--font-heading);
  font-size: 16px;
  font-weight: 500;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.newsletter-hero__form input[type='submit']:hover,
.newsletter-hero__form input[type='submit']:focus,
.newsletter-hero__form button[type='submit']:hover,
.newsletter-hero__form button[type='submit']:focus {
  color: var(--beige);
  background: var(--green-2);
}

.newsletter-hero__form .gform_validation_errors,
.newsletter-hero__form .gfield_validation_message,
.newsletter-hero__form .validation_message {
  color: #8a1f11;
}

.newsletter-hero__form-message,
.newsletter-hero__notice {
  margin: 0;
  padding: 30px;
  border: 1px dashed var(--green);
  color: var(--green);
  background: var(--beige);
  text-align: center;
}

.newsletter-hero-editor__background,
.newsletter-hero-editor__logo {
  width: 100%;
  max-height: 150px;
  margin-bottom: 12px;
  display: block;
  object-fit: contain;
  object-position: left center;
}

.block-editor-block-list__layout .newsletter-hero.alignfull {
  width: 100%;
  max-width: 100%;
  margin-left: 0;
  transform: none;
}

.block-editor-block-list__layout .newsletter-hero__modal {
  display: none !important;
}

@media (max-width: 700px) {
  .newsletter-hero {
    min-height: 500px;
  }

  .newsletter-hero__brand {
    top: 24px;
    width: min(280px, 78vw);
  }

  .newsletter-hero__inner {
    padding-top: 180px;
    padding-bottom: 44px;
    align-items: flex-start;
  }

  .newsletter-hero__heading {
    font-size: 28px;
    line-height: 1.35;
  }

  .newsletter-hero__open {
    max-width: 100%;
    margin-top: 24px;
    white-space: normal;
  }

  .newsletter-hero__modal-inner {
    padding: 28px 20px 50px;
  }

  .newsletter-hero__close {
    top: 20px;
    right: 18px;
  }

  .newsletter-hero__modal-logo {
    width: calc(100% - 70px);
  }

  .newsletter-hero__modal-logo .newsletter-hero__logo-image {
    max-height: 100px;
  }

  .newsletter-hero__modal-content {
    margin-top: 52px;
  }

  .newsletter-hero__modal-heading {
    font-size: 34px;
  }

  .newsletter-hero__modal-intro {
    margin-top: 22px;
    font-size: 17px;
  }

  .newsletter-hero__form {
    margin-top: 30px;
  }
}

@media (prefers-reduced-motion: reduce) {

  .newsletter-hero__open,
  .newsletter-hero__close {
    transition: none;
  }
}