/* Newsletter (Figma: Notícias 388:2000 / Newsletter, 388:2366 — cartão
   1280×458, gradiente 128,68° vermelho→laranja, forma decorativa a 10%
   cortada pelo cartão, conteúdo centralizado a 81px das bordas). */

.newsletter { padding: 56px 0; }
@media (min-width: 1024px) {
  /* Os 119px de cima vêm da listagem; 120px até o rodapé. */
  .newsletter { padding: 0 0 120px; }
}

.newsletter-card {
  position: relative;
  overflow: hidden;
  box-sizing: border-box;
  background-image: linear-gradient(128.676deg, #BD2019 2.4171%, #EC4208 58.946%);
  border: 1px solid rgba(236, 66, 8, 0.2);
  border-radius: 20px;
  padding: 40px 24px;
  text-align: center;
}
@media (min-width: 768px) {
  .newsletter-card { border-radius: 30px; padding: 64px 40px; }
}
@media (min-width: 1024px) {
  .newsletter-card { padding: 80px 40px; }
}

/* Forma decorativa (Figma 388:2300): 576×750 a -84px / -146px do cartão
   (em % pra acompanhar a largura); o próprio SVG já traz os 10% de
   opacidade. */
.newsletter-shape {
  position: absolute;
  left: -6.5625%;
  top: -31.88%;
  width: 45.03%;
  height: auto;
  max-width: none;
  pointer-events: none;
}
@media (max-width: 1023px) {
  .newsletter-shape { left: -60px; top: 50%; width: 280px; transform: translateY(-50%); }
}

.newsletter-content { position: relative; z-index: 1; max-width: 835px; margin: 0 auto; }

/* Pílula "NEWSLETTER" (148×43): aro de 0,5px branco, círculo branco de
   26px com o ícone e texto 12px com 1,2px de espaçamento. */
.newsletter-badge {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  padding: 8px 8.5px 8px 8px;
  border: 0.5px solid var(--color-white);
  border-radius: 100px;
  margin-bottom: 24px;
}
.newsletter-badge-icon {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 26px;
  height: 26px;
  border-radius: 50%;
  background: var(--color-white);
}
.newsletter-badge-icon img { display: block; width: 14px; height: 14px; filter: none; }
.newsletter-badge span:last-child {
  font-size: 12px;
  font-weight: 300;
  line-height: 1.3;
  letter-spacing: 1.2px;
  text-transform: uppercase;
  color: var(--color-white);
}

.newsletter h2 { margin: 0 0 24px; color: var(--color-white); text-wrap: wrap; }
.newsletter-lead { max-width: 477px; margin: 0 auto 44px; font-size: 16px; line-height: 1.5; color: var(--color-white); }

.newsletter-form {
  display: flex;
  flex-direction: column;
  gap: 12px;
}
@media (min-width: 640px) {
  .newsletter-form { flex-direction: row; gap: 18px; }
}
/* Mobile (coluna): campo e botão com a mesma altura (56px) e largura
   total — o "flex: 1" do campo, que serve pra largura na linha do
   desktop, na coluna fazia a altura dele encolher e o botão (80px) ficar
   enorme. */
@media (max-width: 639px) {
  .newsletter-form .newsletter-input { flex: none; width: 100%; height: 56px; padding: 0 24px; }
  .newsletter-form .newsletter-submit { width: 100%; height: 56px; padding: 0 24px; }
}

.newsletter-input {
  box-sizing: border-box;
  flex: 1;
  min-width: 0;
  height: 80px;
  border: none;
  border-radius: 50px;
  padding: 0 27px;
  font-family: var(--font-base);
  font-size: 16px;
  font-weight: 300;
  color: var(--color-navy);
  background: var(--color-white);
}
.newsletter-input::placeholder { color: var(--color-gray-03); opacity: 1; }
.newsletter-input:focus { outline: 2px solid var(--color-white); outline-offset: 3px; }

.newsletter-submit {
  box-sizing: border-box;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  flex-shrink: 0;
  height: 80px;
  border: 1px solid #F97F51;
  background: #F15A22;
  color: var(--color-white);
  font-family: var(--font-base);
  font-size: 18px;
  font-weight: 500;
  line-height: 1.3;
  border-radius: 50px;
  padding: 18px 24px;
  white-space: nowrap;
  cursor: pointer;
  transition: filter var(--transition-base);
}
@media (min-width: 640px) {
  .newsletter-submit { width: 243.4px; }
}
.newsletter-submit:hover { filter: brightness(1.08); }
.newsletter-submit img { width: 24px; height: 24px; transition: transform var(--transition-base); }
.newsletter-submit:hover img { transform: translateX(4px); }

.newsletter-feedback { color: var(--color-white); font-size: 16px; font-weight: 500; }
.newsletter-feedback--error { color: #FFD9CC; margin-top: 8px; }

/* Entrada animada ao rolar. */
.newsletter-card {
  opacity: 0;
  transform: translateY(24px);
  transition: opacity 0.7s ease, transform 0.7s cubic-bezier(0.22, 1, 0.36, 1);
}
.newsletter-card.is-visible { opacity: 1; transform: none; }
html:not(.js) .newsletter-card { opacity: 1; transform: none; }
@media (prefers-reduced-motion: reduce) {
  .newsletter-card { opacity: 1; transform: none; transition: none; }
}
