.newsletter { padding: 80px 0; background: var(--paper); }
.newsletter-card { position: relative; display: grid; grid-template-columns: minmax(0,1fr) minmax(430px,.75fr); gap: 80px; align-items: end; overflow: hidden; padding: 76px; border-radius: 36px; background: radial-gradient(circle at 95% 110%,rgba(var(--cyan-rgb),.34),transparent 38%),var(--navy); }
.newsletter-card h2 {
  margin: 0; max-width: 690px; font-size: clamp(48px,5vw,76px); font-weight: 800; letter-spacing: -.05em; line-height: .98;
}
.newsletter-card > div > p:last-child { margin: 24px 0 0; color: rgba(255,255,255,.58); }
.newsletter-form { position: relative; display: flex; padding: 7px; border: 1px solid rgba(255,255,255,.18); border-radius: 14px; background: rgba(255,255,255,.06); }
.newsletter-form input { width: 100%; min-width: 0; border: 0; outline: 0; padding: 0 18px; background: transparent; color: var(--white); font-size: 15px; }
.newsletter-form input::placeholder { color: rgba(255,255,255,.42); }
.newsletter-form button { display: inline-flex; min-height: 54px; flex: 0 0 auto; align-items: center; gap: 10px; border: 0; border-radius: 10px; padding: 0 20px; background: var(--cyan); color: var(--navy); cursor: pointer; font-size: 14px; font-weight: 900; }

/* Formulář, hláška o výsledku a poznámka o souhlasu drží pohromadě. */
.newsletter-signup { display: grid; gap: 12px; }

.newsletter-status {
  margin: 0; color: rgba(255,255,255,.7); font-size: 14px; line-height: 1.55;
}
/* Prázdná hláška nesmí formuláři podrážet zarovnání na spodní hranu karty. */
.newsletter-status:empty { display: none; }
.newsletter-status.is-ok { color: var(--cyan); }
.newsletter-status.is-error { color: #ff9d94; }

.newsletter-note { margin: 0; color: rgba(255,255,255,.42); font-size: 12px; line-height: 1.6; }

.newsletter-form button[disabled] { opacity: .6; cursor: progress; }

@media (max-width: 960px) {
  .newsletter-card { grid-template-columns: 1fr; gap: 48px; padding: 60px; }
}

@media (max-width: 640px) {
  .newsletter { padding: 24px 0; }
  .newsletter-card h2 { font-size: 46px; }
  .newsletter-card { gap: 36px; padding: 42px 24px; border-radius: 26px; }
  .newsletter-form { align-items: stretch; flex-direction: column; gap: 8px; padding: 8px; }
  .newsletter-form input { min-height: 52px; }
  .newsletter-form button { justify-content: center; }
}
