/* =========================================================
   Nuni — Newsletter widget
   Ports Hero v3.html .v3-newsletter. BEM scope: .nuni-newsletter
   ========================================================= */

/* Break out of the parent Elementor column to full viewport width
   so the section spans edge-to-edge regardless of section content-width.
   Overflow-x: clip on body is handled by the hero-stage.css rule that
   activates whenever a Nuni full-bleed widget is on the page. */
.elementor-widget-nuni-newsletter,
.elementor-widget-nuni-newsletter > .elementor-widget-container {
  width: 100%;
  max-width: none;
  overflow-x: clip;
}
.elementor-widget-nuni-newsletter > .elementor-widget-container { padding: 0; }
.elementor-widget-nuni-newsletter > .elementor-widget-container > .nuni-newsletter {
  width: auto;
  position: relative;
  left: auto;
  right: auto;
  margin-inline: calc(50% - 50vw);
  max-width: none;
}
.elementor-editor-active .elementor-widget-nuni-newsletter > .elementor-widget-container > .nuni-newsletter {
  width: auto;
  left: auto;
  margin-inline: calc(50% - 50vw);
  max-width: none;
}

/* Strip parent padding at any nesting depth so adjacent Nuni v3
   sections sit flush against each other (Bestsellers → Testimonials
   → Newsletter etc.) instead of being separated by Elementor's
   default section padding. */
.e-con:has(.elementor-widget-nuni-newsletter),
.e-con-inner:has(.elementor-widget-nuni-newsletter),
.elementor-section:has(.elementor-widget-nuni-newsletter),
.elementor-container:has(.elementor-widget-nuni-newsletter),
.elementor-row:has(.elementor-widget-nuni-newsletter),
.elementor-column:has(.elementor-widget-nuni-newsletter),
.elementor-widget-wrap:has(.elementor-widget-nuni-newsletter) {
  padding-top: 0 !important;
  padding-bottom: 0 !important;
  margin-top: 0 !important;
  margin-bottom: 0 !important;
  overflow: visible !important;
  max-width: none !important;
  min-height: 0 !important;
}
.elementor-widget.elementor-widget-nuni-newsletter {
  margin: 0 !important;
  padding: 0 !important;
}
.elementor-widget-nuni-newsletter,
.elementor-widget-nuni-newsletter + .elementor-widget,
.elementor-widget + .elementor-widget-nuni-newsletter {
  margin-block-start: 0 !important;
  margin-block-end: 0 !important;
}

.nuni-newsletter {
  --nuni-page:        var(--e-global-color-7, #FAF7F1);
  --nuni-card-bg:     #F4ECDD;
  --nuni-ink:         var(--e-global-color-text,    #2A1F14);
  --nuni-ink-2:       #4A3C2C;
  --nuni-muted:       var(--e-global-color-accent,  #6B5B47);
  --nuni-sand-deep:   var(--e-global-color-secondary, #8A765C);
  --nuni-line:        rgba(28, 20, 12, 0.12);
  --nuni-line-2:      rgba(28, 20, 12, 0.2);
  /* Eyebrow on #F4ECDD card bg — --nuni-sand-deep (#8A765C) fails AA
     at 11px (~3.5:1). The darker muted ink clears 5:1+. */
  --nuni-newsletter-accent: var(--nuni-muted);

  background: var(--nuni-card-bg);
  color: var(--nuni-ink);
  padding: clamp(72px, 8vw, 120px) 28px;
  text-align: center;
  box-sizing: border-box;
  overflow-x: clip;
}

.nuni-newsletter * {
  box-sizing: border-box;
}

.nuni-newsletter__inner {
  width: 100%;
  max-width: 580px;
  margin: 0 auto;
  display: flex;
  flex-direction: column;
  align-items: center;
}

.nuni-newsletter__eyebrow {
  font-family: 'Gilroy', 'Inter', system-ui, sans-serif;
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.26em;
  text-transform: uppercase;
  color: var(--nuni-newsletter-accent);
  margin: 0 0 16px;
  display: inline-flex;
  align-items: center;
  gap: 12px;
}
.nuni-newsletter__eyebrow::before,
.nuni-newsletter__eyebrow::after {
  content: "";
  width: 28px;
  height: 1px;
  background: var(--nuni-line-2);
}

.nuni-newsletter__title {
  font-family: 'Camello Rough', 'Cormorant Garamond', 'Times New Roman', serif;
  font-weight: 400;
  font-size: clamp(36px, 4vw, 58px);
  line-height: 1.05;
  letter-spacing: -0.005em;
  color: var(--nuni-ink);
  margin: 0 0 20px;
  text-wrap: pretty;
  overflow-wrap: anywhere;
}

.nuni-newsletter__lede {
  font-family: 'Gilroy', 'Inter', system-ui, sans-serif;
  font-size: 16px;
  line-height: 1.65;
  color: var(--nuni-ink-2);
  margin: 0 0 18px;
  max-width: 48ch;
  text-wrap: pretty;
}
.nuni-newsletter__lede:last-of-type { margin-bottom: 36px; }

.nuni-newsletter__heart {
  color: var(--nuni-newsletter-accent);
  font-size: 0.95em;
  margin-left: 2px;
  vertical-align: -0.05em;
}

.nuni-newsletter__form {
  display: flex;
  align-items: center;
  width: 100%;
  max-width: 460px;
  min-width: 0;
  background: var(--nuni-page);
  border: 1px solid var(--nuni-line);
  border-radius: 999px;
  padding: 5px 5px 5px 22px;
  transition: border-color .18s ease, box-shadow .18s ease;
  position: relative;
}
.nuni-newsletter__form:focus-within {
  border-color: var(--nuni-ink);
  box-shadow: 0 0 0 4px rgba(28, 20, 12, 0.06);
}
.nuni-newsletter__form input[type="email"],
.nuni-newsletter__form input[type="text"].nuni-newsletter__name {
  flex: 1;
  min-width: 0;
  max-width: 100%;
  border: 0;
  background: transparent;
  outline: none;
  font: inherit;
  font-family: 'Gilroy', 'Inter', system-ui, sans-serif;
  font-size: 14px;
  color: var(--nuni-ink);
  padding: 12px 12px 12px 0;
}
.nuni-newsletter__form input::placeholder { color: var(--nuni-muted); }
.nuni-newsletter__form button {
  border: 0;
  background: var(--nuni-ink);
  color: var(--nuni-card-bg);
  font-family: 'Gilroy', 'Inter', system-ui, sans-serif;
  font-size: 13px;
  font-weight: 500;
  letter-spacing: 0.04em;
  border-radius: 999px;
  padding: 12px 22px;
  cursor: pointer;
  transition: background .18s ease, transform .18s ease;
  white-space: nowrap;
  max-width: 100%;
}
.nuni-newsletter__form button:hover { background: var(--nuni-sand-deep); }
.nuni-newsletter__form button:active { transform: translateY(1px); }
.nuni-newsletter__form button:disabled { opacity: 0.7; cursor: progress; }
.nuni-newsletter__form button.is-done { background: #2F7D5B; }
.nuni-newsletter__form.has-error { border-color: #C8412C; }
.nuni-newsletter__form.has-error:focus-within { box-shadow: 0 0 0 4px rgba(200, 65, 44, 0.12); }

/* Honeypot — visually + accessibly hidden, but still present in DOM for bots to fill */
.nuni-newsletter__hp {
  position: absolute !important;
  left: -9999px !important;
  width: 1px;
  height: 1px;
  overflow: hidden;
}

.nuni-newsletter__msg {
  font-family: 'Gilroy', 'Inter', system-ui, sans-serif;
  font-size: 13px;
  line-height: 1.5;
  color: var(--nuni-ink-2);
  margin: 14px 0 0;
  min-height: 1.5em;
}
.nuni-newsletter__msg.is-error { color: #C8412C; }
.nuni-newsletter__msg.is-success { color: #2F7D5B; }

.nuni-newsletter__note {
  font-family: 'Gilroy', 'Inter', system-ui, sans-serif;
  font-size: 12px;
  line-height: 1.5;
  color: var(--nuni-muted);
  margin: 16px 0 0;
  max-width: 42ch;
}

@media (max-width: 540px) {
  .nuni-newsletter { padding: 64px 20px 80px; }
  .nuni-newsletter__form {
    flex-direction: column;
    gap: 10px;
    padding: 10px;
    border-radius: 28px;
  }
  .nuni-newsletter__form input[type="email"],
  .nuni-newsletter__form input[type="text"].nuni-newsletter__name {
    width: 100%;
    padding: 12px 18px;
    text-align: center;
  }
  .nuni-newsletter__form button { width: 100%; padding: 14px 22px; }
}
