/* Keep presentation local to Vale Tales; Brevo owns the form's submission flow. */
#newsletter {
  padding: clamp(48px, 6vw, 88px) 0;
  background: linear-gradient(180deg, var(--bg), #0c1914);
}
#newsletter .newsletter-shell {
  width: min(1120px, calc(100% - 96px));
  margin: auto;
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1.2fr);
  align-items: start;
  gap: clamp(32px, 5vw, 72px);
}
#newsletter .newsletter-introduction { padding-top: 24px; }
#newsletter h2 { margin: 0 0 16px; color: var(--gold); font: 400 clamp(2.4rem, 4vw, 3.5rem)/1.15 var(--font-display); }
#newsletter .newsletter-subtitle { margin: 0 0 24px; color: var(--gold-bright); font: italic 1.25rem/1.5 var(--font-display); }
#newsletter .newsletter-description { margin: 0; max-width: 44ch; color: var(--muted); font: 1rem/1.8 var(--font-ui); }
#newsletter .sib-form {
  min-width: 0;
  padding: clamp(20px, 3vw, 32px);
  border: 1px solid var(--line);
  border-radius: 8px;
  background: var(--forest);
  color: var(--text);
  font: 1rem/1.6 var(--font-ui);
  text-align: left;
}
#newsletter #sib-container { margin: 0; padding: 0; background: transparent; border: 0; max-width: none; text-align: left; }
#newsletter .sib-form-block { padding: 0; }
#newsletter #sib-form { display: grid; gap: 24px; }
#newsletter .form__entry { padding: 0; }
#newsletter .entry__label { display: block; margin: 0 0 10px; color: var(--text); font: 600 0.875rem/1.5 var(--font-ui); }
#newsletter .entry__label[data-required]::after { color: var(--gold); }
#newsletter .entry__field { margin: 0; border: 1px solid rgba(215, 183, 117, 0.55); border-radius: 3px; background: var(--bg); }
#newsletter .input {
  width: 100%;
  min-height: 52px;
  height: auto;
  box-sizing: border-box;
  padding: 12px 14px;
  color: var(--text);
  font: 1rem/1.5 var(--font-ui);
}
#newsletter .input::placeholder { color: var(--muted); opacity: 1; }
#newsletter .input:focus-visible { outline: 3px solid var(--gold-bright); outline-offset: 3px; }
#newsletter .entry__specification { margin: 10px 0 0; color: var(--muted); font: 0.75rem/1.6 var(--font-ui); }
#newsletter .entry__choice { padding: 0; text-indent: 0; margin: 0; font-family: var(--font-ui); }
#newsletter #sib-form .newsletter-consent { display: flex; align-items: flex-start; gap: 12px; min-height: 44px; cursor: pointer; font: 0.875rem/1.7 var(--font-ui); }
#newsletter .input_replaced { position: static; z-index: auto; opacity: 1; flex: 0 0 22px; width: 22px; height: 22px; margin: 3px 0 0; accent-color: var(--gold); cursor: pointer; }
#newsletter .input_replaced:focus-visible { outline: 3px solid var(--gold-bright); outline-offset: 4px; }
#newsletter .newsletter-consent .checkbox { display: none; }
#newsletter .newsletter-submit-row { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 20px; }
#newsletter .sib-captcha { min-width: 0; }
/* Google's compact widget already fits phones; avoid Brevo's small-screen scaling. */
#newsletter .g-recaptcha.sib-visible-recaptcha { transform: none; }
#newsletter .newsletter-submit { flex: 1 1 180px; }
#newsletter .sib-form-block__button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  min-height: 52px;
  width: 100%;
  padding: 12px 20px;
  border: 1px solid #dfc58f;
  border-radius: 3px;
  background: var(--gold);
  color: #161c15;
  font: 600 0.875rem/1.5 var(--font-ui);
  transition: background-color 160ms ease;
}
#newsletter .sib-form-block__button:hover:not(:disabled) { background: var(--gold-bright); }
#newsletter .sib-form-block__button:focus-visible { outline: 3px solid var(--gold-bright); outline-offset: 5px; }
#newsletter .sib-form-block__button:disabled { cursor: wait; opacity: 0.65; }
#newsletter .progress-indicator__icon { width: 20px; height: 20px; fill: currentColor; }
#newsletter .sib-form-message-panel { border-radius: 3px; color: var(--text); background: #14291e; border-color: var(--line); text-align: left; font: 0.875rem/1.7 var(--font-ui); }
#newsletter #error-message { background: #291c19; border-color: #bd8477; color: #f8d4c9; }
#newsletter #success-message { background: #14291e; border-color: #7fa685; color: #d7ead6; }
#newsletter #success-message .sib-form-message-panel__text { display: block; padding: 8px; }
#newsletter #newsletter-success-title { margin: 0 0 16px; color: var(--gold-bright); font: 400 clamp(1.75rem, 3vw, 2.25rem)/1.2 var(--font-display); }
#newsletter #newsletter-success-title:focus { outline: 2px solid var(--gold); outline-offset: 5px; }
#newsletter #success-message p { margin: 0 0 16px; font: 0.95rem/1.75 var(--font-ui); }
#newsletter #success-message p:last-of-type { margin-bottom: 0; }
#newsletter #newsletter-success-journey { color: var(--gold-bright); }
/* Preserve the provider-only fallback if the local enhancement cannot run. */
#newsletter #sib-form-container:has(#success-message.sib-form-message-panel--active):not(:has(#error-message.sib-form-message-panel--active)) #sib-container,
#newsletter #sib-form-container:has(#error-message.sib-form-message-panel--active) #success-message { display: none; }
#newsletter .sib-notification__icon { width: 20px; height: 20px; }
#newsletter .entry__error { color: #f8d4c9; font: 0.875rem/1.6 var(--font-ui); }
#newsletter .sib-entry_errored:before { background: #bd8477; }
#newsletter .sib-form-container a { color: var(--gold-bright); }
@media (max-width: 960px) {
  #newsletter .newsletter-shell { width: min(640px, calc(100% - 64px)); grid-template-columns: 1fr; gap: 28px; }
  #newsletter .newsletter-introduction { padding: 0; }
  #newsletter .newsletter-description { max-width: none; }
}
@media (max-width: 767px) {
  #newsletter .newsletter-shell { width: calc(100% - 40px); }
  #newsletter .newsletter-description { font-size: 0.95rem; }
  #newsletter .newsletter-submit { flex-basis: 100%; }
}
@media (prefers-reduced-motion: reduce) {
  #newsletter .sib-form-block__button { transition: none; }
  #newsletter .progress-indicator__icon { animation: none; }
}
