/* ═══════════════════════════════════════════════════════════════
   Section 10 - Newsletter / Stay Connected (居中, 背景图)
   高度适中, 自适应与动效
   ═══════════════════════════════════════════════════════════════ */

.section-newsletter {
  position: relative;
  width: 100%;
  min-height: 62vh;
  box-sizing: border-box;
  background: #f0d99a url('../images/bg10-1.png') center center / cover no-repeat;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: clamp(48px, 7vw, 96px) 20px;
}

.nl-inner {
  position: relative;
  z-index: 1;
  width: 100%;
  max-width: 820px;
  margin: 0 auto;
  text-align: center;
}

/* 顶部小爪子 */
.nl-paw {
  width: 34px;
  height: 32px;
  object-fit: contain;
  margin: 0 auto;
  display: block;
  /* 染成深蓝 #192A44 */
  filter: brightness(0) saturate(100%) invert(13%) sepia(28%) saturate(1600%) hue-rotate(184deg) brightness(94%) contrast(95%);
}

.nl-tag {
  margin: 18px 0 0;
  color: #192a44;
  font-family: 'Roboto', sans-serif;
  font-size: 14px;
  line-height: 22px;
  letter-spacing: 4px;
}

.nl-title {
  margin: 16px 0 0;
  color: #192a44;
  font-family: 'Merriweather', serif;
  font-weight: 700;
  font-size: clamp(30px, 4vw, 46px);
  line-height: 1.26;
}

.nl-intro {
  margin: 18px auto 0;
  max-width: 680px;
  color: #192a44;
  font-family: 'Roboto', sans-serif;
  font-size: 16px;
  line-height: 32px;
}

/* ───────── 订阅表单 ───────── */
.nl-form {
  margin: clamp(28px, 4vw, 44px) auto 0;
  max-width: 780px;
  width: 100%;
  display: flex;
  background: #fff;
  border-radius: 8px;
  overflow: hidden;
  box-shadow: 0 14px 36px rgba(25, 42, 68, 0.16);
}

.nl-input {
  flex: 1;
  min-width: 0;
  height: 72px;
  border: none;
  outline: none;
  background: transparent;
  padding: 0 26px;
  color: #192a44;
  font-family: 'Roboto', sans-serif;
  font-size: 16px;
}
.nl-input::placeholder { color: #9aa0a8; }

.nl-submit {
  width: 198px;
  flex-shrink: 0;
  height: 72px;
  border: none;
  cursor: pointer;
  background: #192a44;
  color: #fff;
  font-family: 'Roboto', sans-serif;
  font-size: 15px;
  letter-spacing: 2px;
  border-radius: 0 8px 8px 0;
  transition: background-color 0.3s ease;
}
.nl-submit:hover { background: #bc994b; }

.nl-fineprint {
  margin: 18px 0 0;
  color: #999999;
  font-family: 'Roboto', sans-serif;
  font-size: 12px;
  line-height: 20px;
}

/* ═══════════════════════════════════════════════════════════════
   入场动效
   ═══════════════════════════════════════════════════════════════ */
.js .section-newsletter [data-reveal] {
  opacity: 0;
  transform: translateY(34px);
  transition: opacity 0.7s cubic-bezier(0.22, 1, 0.36, 1),
              transform 0.6s cubic-bezier(0.22, 1, 0.36, 1);
}
.section-newsletter [data-reveal].is-visible {
  opacity: 1;
  transform: translateY(0);
}
.section-newsletter .nl-paw   { transition-delay: 0.02s; }
.section-newsletter .nl-tag   { transition-delay: 0.08s; }
.section-newsletter .nl-title { transition-delay: 0.16s; }
.section-newsletter .nl-intro { transition-delay: 0.24s; }
.section-newsletter .nl-form  { transition-delay: 0.32s; }
.section-newsletter .nl-fineprint { transition-delay: 0.40s; }

@media (prefers-reduced-motion: reduce) {
  .section-newsletter [data-reveal] {
    opacity: 1 !important;
    transform: none !important;
    transition: none !important;
  }
}

/* ═══════════════════════════════════════════════════════════════
   响应式
   ═══════════════════════════════════════════════════════════════ */
@media (max-width: 768px) {
  .section-newsletter {
    min-height: 50vh;
    padding: 60px 20px;
  }

  .nl-paw {
    width: 28px;
    height: 26px;
  }

  .nl-tag {
    font-size: 12px;
    letter-spacing: 3px;
    margin-top: 12px;
  }

  .nl-title {
    font-size: 28px;
    margin-top: 12px;
  }

  .nl-intro {
    font-size: 14px;
    line-height: 24px;
    margin-top: 16px;
  }

  .nl-form {
    flex-direction: column;
    border-radius: 8px;
    margin-top: 32px;
    background: transparent;
  }

  .nl-input {
    height: 60px;
    text-align: left;
    padding: 0 20px;
    font-size: 15px;
    background: #ffffff;
    border: 2px solid #192a44;
    border-radius: 8px 8px 0 0;
    margin-bottom: 2px;
  }

  .nl-input:focus {
    border-color: #bc994b;
    outline: none;
  }

  .nl-submit {
    width: 100%;
    height: 56px;
    border-radius: 0 0 8px 8px;
    font-size: 14px;
    letter-spacing: 1.5px;
  }

  .nl-fineprint {
    font-size: 11px;
    margin-top: 16px;
  }
}

@media (max-width: 480px) {
  .nl-title {
    font-size: 24px;
  }

  .nl-intro {
    font-size: 13px;
    line-height: 22px;
  }

  .nl-input {
    height: 52px;
    font-size: 14px;
  }

  .nl-submit {
    height: 52px;
  }
}
