/* Simple Newsletter System – Frontend styles (dark backgrounds friendly) */

.sns-wrap {
  margin: 0;
  padding: 0;
  color: #f5f7ff;
  background: transparent; /* IMPORTANT: no white wrapper */
}

.sns-form {
  display: block;
}

.sns-row {
  display: flex;
  gap: 10px;
  align-items: stretch;
  flex-wrap: wrap;
}

.sns-field {
  flex: 1 1 280px;
  min-width: 220px;
}

.sns-input {
  width: 100%;
  padding: 12px 14px;
  border-radius: 10px;
  border: 1px solid rgba(245, 247, 255, 0.22);
  background: rgba(0,0,0,0.18);
  color: #f5f7ff;
  outline: none;
}

.sns-input::placeholder {
  color: rgba(245, 247, 255, 0.72);
}

.sns-button {
  flex: 0 0 auto;
  padding: 12px 18px;
  border-radius: 10px;
  border: 1px solid rgba(245, 247, 255, 0.28);
  background: rgba(255,255,255,0.08);
  color: #f5f7ff;
  font-weight: 600;
  cursor: pointer;
  white-space: nowrap;
}

.sns-button:hover,
.sns-button:focus-visible {
  background: rgba(255,255,255,0.14);
}

.sns-consent {
  margin-top: 12px;
}

.sns-checkbox-label {
  display: inline-flex;
  gap: 10px;
  align-items: flex-start;
  font-size: 14px;
  line-height: 1.35;
  color: rgba(245, 247, 255, 0.92);
}

.sns-checkbox {
  margin-top: 2px;
}

.sns-message {
  margin: 0 0 12px;
  padding: 10px 12px;
  border-radius: 10px;
  border: 1px solid rgba(245, 247, 255, 0.22);
  background: rgba(0,0,0,0.18);
}

.sns-message--success {
  border-color: rgba(90, 220, 140, 0.5);
}

.sns-message--error {
  border-color: rgba(255, 120, 120, 0.55);
}

/* Screen reader only label */
.sns-sr-only {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  padding: 0 !important;
  margin: -1px !important;
  overflow: hidden !important;
  clip: rect(0,0,0,0) !important;
  white-space: nowrap !important;
  border: 0 !important;
}

/* Focus visible (keyboard) */
.sns-input:focus-visible,
.sns-button:focus-visible,
.sns-checkbox:focus-visible {
  outline: 3px solid rgba(245, 247, 255, 0.8);
  outline-offset: 2px;
}

/* Mobile: stack */
@media (max-width: 520px) {
  .sns-row {
    flex-direction: column;
  }
  .sns-button {
    width: 100%;
  }
}

/* Reduced motion */
@media (prefers-reduced-motion: reduce) {
  .sns-button,
  .sns-input {
    transition: none !important;
  }
}
