@import url("https://fonts.googleapis.com/css2?family=Playfair+Display:wght@500;600;700&display=swap");

.nl-section,
.nl-popup {
   --nl-gold: #c9a44a;
   --nl-gold-hover: #d4b15c;
   --nl-ink: #1a1410;
   --nl-text: #f4eee4;
   --nl-muted: rgba(244, 238, 228, 0.82);
   --nl-serif: "Playfair Display", Georgia, "Times New Roman", serif;
   --nl-sans: "Open Sans", system-ui, -apple-system, sans-serif;
}

.nl-section {
   position: relative;
   isolation: isolate;
   overflow-x: clip;
   box-sizing: border-box;
   width: 100%;
   color: var(--nl-text);
   font-family: var(--nl-sans);
}

.nl-section__preview-label {
   margin: 0 auto;
   max-width: 72rem;
   padding: 0.65rem 1rem 0.85rem;
   font-size: 0.75rem;
   font-weight: 700;
   letter-spacing: 0.06em;
   text-transform: uppercase;
   color: #444;
}

.nl-section--fullbleed .nl-section__preview-label {
   color: #eee;
}

.nl-section--dark-band .nl-section__preview-label {
   color: rgba(244, 238, 228, 0.75);
}

.nl-section__band {
   position: relative;
   width: 100%;
}

.nl-section__frame {
   position: relative;
   isolation: isolate;
   overflow: hidden;
   min-height: min(560px, 88svh);
   container-type: inline-size;
}

.nl-section--fullbleed {
   background: #161523;
}

.nl-section--fullbleed .nl-section__frame {
   width: 100%;
   max-width: none;
   border-radius: 0;
}

.nl-section--fullbleed .nl-section__inner {
   max-width: 72rem;
   margin-left: auto;
   margin-right: auto;
}

.nl-section--dark-band {
   background: #161523;
   padding: 2.25rem 0 2.75rem;
}

.nl-section--dark-band .nl-section__band {
   box-sizing: border-box;
   width: calc(100% - 2rem);
   max-width: 72rem;
   margin-left: auto;
   margin-right: auto;
}

.nl-section--dark-band .nl-section__frame {
   border-radius: 0.85rem;
}

.nl-section--gray-card,
.nl-section--black-card {
   padding: 2.25rem 0 2.75rem;
}

.nl-section--gray-card {
   background: #fafafa;
}

.nl-section--black-card {
   background: #000;
}

.nl-section--gray-card .nl-section__band,
.nl-section--black-card .nl-section__band {
   box-sizing: border-box;
   width: calc(100% - 2rem);
   max-width: 72rem;
   margin-left: auto;
   margin-right: auto;
}

.nl-section--gray-card .nl-section__frame {
   border-radius: 0.85rem;
   box-shadow: 0 18px 40px rgba(22, 21, 35, 0.16);
}

.nl-section--black-card .nl-section__frame {
   border-radius: 0.85rem;
   box-shadow: 0 28px 56px rgba(0, 0, 0, 0.55);
}

.nl-media {
   position: absolute;
   inset: 0;
   z-index: 0;
}

.nl-media img {
   display: block;
   width: 100%;
   height: 100%;
   object-fit: cover;
   object-position: center 40%;
}

.nl-section__shade,
.nl-popup__shade {
   position: absolute;
   inset: 0;
   z-index: 1;
   pointer-events: none;
   background: linear-gradient(
      90deg,
      rgba(12, 8, 6, 0.88) 0%,
      rgba(12, 8, 6, 0.72) 38%,
      rgba(12, 8, 6, 0.28) 62%,
      rgba(12, 8, 6, 0.08) 100%
   );
}

.nl-section__inner,
.nl-popup__inner {
   position: relative;
   z-index: 2;
   display: flex;
   align-items: center;
   min-height: inherit;
   min-width: 0;
   width: 100%;
   max-width: 100%;
   box-sizing: border-box;
   padding: 2.5rem 1.25rem 3rem;
}

.nl-panel {
   box-sizing: border-box;
   width: 45%;
   max-width: 45%;
   padding: 1.75rem 1.5rem;
   border-radius: 0.45rem;
   background: rgba(8, 5, 4, 0.62);
   box-shadow: 0 0 2.5rem 1.25rem rgba(8, 5, 4, 0.35);
   overflow: visible;
}

.nl-form {
   position: relative;
   width: 100%;
   overflow: visible;
}

.nl-form__heading {
   margin: 0;
   width: max-content;
   max-width: calc(100cqw - 4.5rem);
   white-space: nowrap;
   font-family: var(--nl-serif);
   font-weight: 600;
   font-size: clamp(1.5rem, 4.2cqw, 2.45rem);
   line-height: 1.2;
   color: var(--nl-gold);
   letter-spacing: 0.01em;
}

.nl-form__divider {
   display: flex;
   align-items: center;
   justify-content: flex-start;
   gap: 0.4rem;
   margin: 0.85rem 0 1.05rem;
   width: 100%;
   max-width: 100%;
   height: 1rem;
}

.nl-form__divider-line {
   position: relative;
   align-self: stretch;
   height: 1rem;
   min-width: 0;
}

.nl-form__divider-line::before {
   content: "";
   position: absolute;
   top: 50%;
   height: 1px;
   transform: translateY(-50%);
   pointer-events: none;
}

.nl-form__divider-line::after {
   content: "";
   position: absolute;
   top: 50%;
   width: 11px;
   height: 7px;
   background: var(--nl-gold);
   clip-path: polygon(0 50%, 50% 0, 100% 50%, 50% 100%);
   transform: translateY(-50%);
   pointer-events: none;
}

.nl-form__divider-line:first-child {
   flex: 1 1 0;
}

.nl-form__divider-line:first-child::before {
   left: 0;
   right: 12px;
   background: linear-gradient(
      90deg,
      rgba(201, 164, 74, 0) 0%,
      rgba(201, 164, 74, 0.75) 18%,
      rgba(201, 164, 74, 0.85) 100%
   );
}

.nl-form__divider-line:first-child::after {
   right: 0;
}

.nl-form__divider-line:last-child {
   flex: 1 1 0;
}

.nl-form__divider-line:last-child::before {
   left: 12px;
   right: 0;
   background: linear-gradient(
      90deg,
      rgba(201, 164, 74, 0.85) 0%,
      rgba(201, 164, 74, 0.7) 72%,
      rgba(201, 164, 74, 0.25) 90%,
      rgba(201, 164, 74, 0) 100%
   );
}

.nl-form__divider-line:last-child::after {
   left: 0;
}

.nl-form__heart {
   color: var(--nl-gold);
   flex-shrink: 0;
   fill: none;
   stroke: currentColor;
   overflow: visible;
}

.nl-form__lead {
   margin: 0 0 1.35rem;
   color: var(--nl-muted);
   font-size: 0.95rem;
   line-height: 1.5;
}

.nl-success .nl-form__lead {
   margin-bottom: 0;
}

.nl-success__to {
   display: block;
   margin-top: 0.45em;
   white-space: nowrap;
}

.nl-success__email {
   color: var(--nl-text);
   font-weight: 700;
}

.nl-success__change {
   margin: 0.65em 0 0;
   font-size: 0.8125rem;
   line-height: 1.45;
   color: var(--nl-muted);
}

.nl-success__change-btn {
   margin: 0;
   padding: 0;
   border: 0;
   background: none;
   color: var(--nl-gold);
   font: inherit;
   font-weight: 700;
   text-decoration: underline;
   text-underline-offset: 0.15em;
   cursor: pointer;
}

.nl-success__change-btn:hover {
   color: var(--nl-gold-hover);
}

.nl-form__hp {
   position: absolute;
   left: -9999px;
   width: 1px;
   height: 1px;
   opacity: 0;
}

.nl-field {
   display: block;
   margin-bottom: 0.9rem;
}

.nl-field__label {
   display: block;
   margin-bottom: 0.35rem;
   font-size: 0.8rem;
   font-weight: 600;
   letter-spacing: 0.02em;
   color: var(--nl-text);
}

.nl-field__control {
   position: relative;
   display: block;
}

.nl-field__icon {
   position: absolute;
   left: 0.85rem;
   top: 50%;
   transform: translateY(-50%);
   color: #6b6258;
   pointer-events: none;
}

.nl-field__input {
   box-sizing: border-box;
   width: 100%;
   height: 2.85rem;
   padding: 0 0.9rem 0 2.5rem;
   border: 0;
   border-radius: 0.55rem;
   background: #fff;
   color: var(--nl-ink);
   font: inherit;
   font-size: 0.95rem;
   appearance: none;
}

.nl-field__input:focus {
   outline: 2px solid var(--nl-gold);
   outline-offset: 1px;
}

.nl-field__select {
   background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%236b6258' stroke-width='2'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");
   background-repeat: no-repeat;
   background-position: right 0.75rem center;
   padding-right: 2.2rem;
}

.nl-interests {
   border: 0;
   margin: 0.4rem 0 1rem;
   padding: 0;
}

.nl-check {
   display: flex;
   align-items: center;
   gap: 0.55rem;
   margin: 0.45rem 0;
   cursor: pointer;
   color: var(--nl-text);
   font-size: 0.95rem;
}

.nl-check input {
   position: absolute;
   opacity: 0;
   width: 1px;
   height: 1px;
}

.nl-check__box {
   width: 1.1rem;
   height: 1.1rem;
   border: 1.5px solid rgba(244, 238, 228, 0.7);
   border-radius: 0.2rem;
   background: transparent;
   flex-shrink: 0;
}

.nl-check input:focus-visible + .nl-check__box {
   outline: 2px solid var(--nl-gold);
   outline-offset: 2px;
}

.nl-check input:checked + .nl-check__box {
   background: var(--nl-gold);
   border-color: var(--nl-gold);
   background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='%231a1410' stroke-width='2.2'%3E%3Cpath d='m3.5 8.2 3 3 6-6'/%3E%3C/svg%3E");
   background-size: 12px;
   background-repeat: no-repeat;
   background-position: center;
}

.nl-check--consent {
   align-items: flex-start;
   margin: 0.15rem 0 1.1rem;
   font-size: 0.8rem;
   line-height: 1.45;
   color: var(--nl-muted);
}

.nl-check--consent .nl-check__box {
   margin-top: 0.15rem;
}

.nl-check--consent a {
   color: var(--nl-gold);
   text-decoration: underline;
}

.nl-required {
   color: #e53935;
   font-weight: 700;
   font-size: 0.95em;
   line-height: 1;
   margin-right: 0.12em;
}

.nl-check__icon {
   color: var(--nl-gold);
   flex-shrink: 0;
}

.nl-form__error {
   margin: 0 0 0.75rem;
   color: #ffb4a8;
   font-size: 0.875rem;
}

.nl-form__submit {
   display: block;
   width: 100%;
   height: 3rem;
   border: 0;
   border-radius: 0.2rem;
   background: var(--nl-gold);
   color: var(--nl-ink);
   font-family: var(--nl-sans);
   font-size: 0.95rem;
   font-weight: 800;
   letter-spacing: 0.08em;
   text-transform: uppercase;
   cursor: pointer;
}

.nl-form__submit:hover {
   background: var(--nl-gold-hover);
}

.nl-form__submit:disabled {
   opacity: 0.7;
   cursor: wait;
}

.nl-form__privacy {
   display: flex;
   align-items: flex-start;
   gap: 0.4rem;
   margin: 0.85rem 0 0;
   color: var(--nl-muted);
   font-size: 0.75rem;
   line-height: 1.45;
}

.nl-form__privacy svg {
   flex-shrink: 0;
   margin-top: 0.15rem;
}

.nl-form__privacy a {
   color: var(--nl-gold);
   text-decoration: underline;
}

.nl-success[hidden],
.nl-form__error[hidden] {
   display: none;
}

.nl-panel.is-success .nl-form {
   display: none;
}

.nl-popup {
   box-sizing: border-box;
   padding: 0;
   margin: auto;
   border: 0;
   background: transparent;
   max-width: min(52rem, calc(100vw - 1.5rem));
   width: 100%;
   max-height: calc(100svh - 1.5rem);
   overflow: hidden;
   color: var(--nl-text);
   font-family: var(--nl-sans);
}

.nl-popup::backdrop {
   background: rgba(8, 6, 5, 0.72);
}

.nl-popup__frame {
   position: relative;
   isolation: isolate;
   overflow: hidden;
   box-sizing: border-box;
   height: min(38rem, calc(100svh - 1.5rem));
   max-height: calc(100svh - 1.5rem);
   min-height: 0;
   border-radius: 0.35rem;
   background: #1a1410;
   container-type: size;
}

.nl-popup .nl-media,
.nl-popup .nl-popup__shade {
   border-radius: inherit;
}

.nl-popup__close {
   position: absolute;
   top: 0.65rem;
   right: 0.65rem;
   z-index: 3;
   display: flex;
   align-items: center;
   justify-content: center;
   width: 2.4rem;
   height: 2.4rem;
   border: 0;
   border-radius: 999px;
   background: rgba(12, 8, 6, 0.55);
   color: #fff;
   cursor: pointer;
}

.nl-popup__close:hover {
   background: rgba(12, 8, 6, 0.8);
}

.nl-popup__inner {
   min-height: 0;
   height: 100%;
   max-height: 100%;
   padding: clamp(0.7rem, 4.5cqh, 2.25rem) 1.25rem clamp(0.55rem, 3.5cqh, 2rem);
}

.nl-popup .nl-panel {
   padding: clamp(0.6rem, 3.6cqh, 1.75rem) 1.4rem;
}

.nl-popup .nl-form__heading {
   font-size: clamp(1.05rem, 4.6cqh, 2.2rem);
}

.nl-popup .nl-form__divider {
   margin: clamp(0.28rem, 1.8cqh, 0.85rem) 0 clamp(0.35rem, 2.1cqh, 1.05rem);
}

.nl-popup .nl-form__lead {
   margin: 0 0 clamp(0.4rem, 2.6cqh, 1.35rem);
   font-size: clamp(0.75rem, 2cqh, 0.875rem);
   line-height: 1.4;
}

.nl-popup .nl-field {
   margin-bottom: clamp(0.35rem, 1.8cqh, 0.9rem);
}

.nl-popup .nl-field__label {
   margin-bottom: clamp(0.12rem, 0.75cqh, 0.35rem);
   font-size: clamp(0.72rem, 1.7cqh, 0.8rem);
}

.nl-popup .nl-field__input {
   height: clamp(2.2rem, 6.1cqh, 2.85rem);
   font-size: clamp(0.8rem, 2cqh, 0.9rem);
}

.nl-popup .nl-interests {
   margin: clamp(0.05rem, 0.8cqh, 0.4rem) 0 clamp(0.3rem, 1.9cqh, 1rem);
}

.nl-popup .nl-check {
   margin: clamp(0.15rem, 0.95cqh, 0.45rem) 0;
   font-size: clamp(0.75rem, 2cqh, 0.875rem);
}

.nl-popup .nl-check--consent {
   margin: 0.05rem 0 clamp(0.35rem, 2.1cqh, 1.1rem);
   font-size: clamp(0.65rem, 1.6cqh, 0.75rem);
}

.nl-popup .nl-form__submit {
   height: clamp(2.25rem, 6.4cqh, 3rem);
   font-size: clamp(0.8rem, 2cqh, 0.875rem);
}

.nl-popup .nl-form__privacy {
   margin: clamp(0.3rem, 1.7cqh, 0.85rem) 0 0;
   font-size: clamp(0.68rem, 1.55cqh, 0.72rem);
}

@media (max-width: 767px) {
   .nl-section,
   .nl-popup {
      --nl-photo-h: clamp(11rem, 42vw, 15rem);
   }

   .nl-popup {
      max-height: calc(100svh - 0.75rem);
   }

   .nl-section__frame,
   .nl-popup__frame {
      display: flex;
      flex-direction: column;
      min-height: auto;
   }

   .nl-popup__frame {
      height: auto;
      max-height: calc(100svh - 0.75rem);
      overflow-x: clip;
      overflow-y: auto;
      container-type: inline-size;
   }

   .nl-media {
      position: relative;
      inset: auto;
      height: var(--nl-photo-h);
      flex-shrink: 0;
   }

   .nl-media img {
      object-position: center 38%;
   }

   .nl-section__shade,
   .nl-popup__shade {
      inset: auto;
      top: 0;
      left: 0;
      right: 0;
      height: var(--nl-photo-h);
      background: linear-gradient(
         180deg,
         rgba(12, 8, 6, 0.12) 0%,
         rgba(12, 8, 6, 0.08) 42%,
         rgba(12, 8, 6, 0.72) 100%
      );
   }

   .nl-section__inner,
   .nl-popup__inner {
      min-height: auto;
      padding: 1.15rem 1rem 1.6rem;
      background: #161523;
   }

   .nl-section--black-card .nl-section__inner {
      background: #000;
   }

   .nl-popup__inner {
      height: auto;
      max-height: none;
      background: #1a1410;
   }

   .nl-panel {
      width: 100%;
      max-width: none;
      padding: 0;
      background: transparent;
      box-shadow: none;
      border-radius: 0;
   }

   .nl-form__heading {
      font-size: clamp(1.35rem, 6.2vw, 1.85rem);
      max-width: calc(100cqw - 2.5rem);
   }
}
