/* Simple, accessible opt-in modal styles */
.optin-modal.hidden { display: none !important; }
.optin-modal { position: fixed; inset: 0; z-index: 9999; display: flex; align-items: center; justify-content: center; }
.optin-overlay { position: absolute; inset: 0; background: rgba(0,0,0,0.5); }
.optin-panel { position: relative; background: #fff; color: #111; max-width: 520px; width: calc(100% - 48px); padding: 20px 20px 24px 20px; border-radius: 8px; box-shadow: 0 10px 30px rgba(0,0,0,0.3); z-index: 1; }
.optin-close { position: absolute; top: 8px; right: 8px; background: transparent; border: none; font-size: 22px; line-height: 1; cursor: pointer; color: #666; }
.optin-close:focus { outline: 3px solid #a8d0ff; }
.optin-panel h2 { margin: 0 0 8px 0; font-size: 1.125rem; }
.optin-panel p { margin: 0 0 12px 0; }
.optin-actions { margin-top: 12px; }
.optin-primary {
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
  box-sizing: border-box;
  box-shadow: 0px 3px 6px 0px rgba(0,0,0,0.12) !important;
  display: inline-block;
  padding: .25em 1em;
  border-radius: .3em;
  margin-right: 1em;
  margin-bottom: 1em;
  font-size: 1em;
  background-color: #a5d6fe; /* brand color requested */
  border: 2px solid #1f5e96;
  background-clip: padding-box;
  text-decoration: none;
  color: #000000; /* black text for accessibility */
  cursor: pointer;
  transition: background-color 150ms ease, transform 80ms ease, color 120ms ease;
}
.optin-primary:disabled { opacity: 0.7; cursor: default; }
.optin-primary:hover { background-color: #8ecfff; }
.optin-primary:active { background-color: #70bfff; transform: translateY(1px); }
.optin-primary:focus-visible {
  outline: 3px solid #1f5e96;
  outline-offset: 0; /* overlap outline with border to avoid white gap */
  border-color: transparent;
}
.optin-secondary {
  -webkit-appearance: none;
  appearance: none;
  box-sizing: border-box;
  display: inline-block;
  padding: .25em 1em;
  border-radius: .3em;
  margin-right: 0;
  margin-bottom: 1em;
  font-size: 1em;
  background-color: #ffffff;
  border: 2px solid #9b9b9b;
  color: #444444;
  cursor: pointer;
  transition: background-color 150ms ease, transform 80ms ease, color 120ms ease;
}
.optin-secondary:hover { background-color: #f2f2f2; }
.optin-secondary:active { background-color: #e8e8e8; transform: translateY(1px); }
.optin-secondary:focus-visible { outline: 3px solid #9b9b9b; outline-offset: 0; border-color: transparent; }
.optin-thanks { margin-top: 12px; }
.spinner { display: inline-block; width: 14px; height: 14px; border: 2px solid #1f5e96; border-top-color: transparent; border-radius: 50%; margin-left: 8px; vertical-align: middle; animation: spin 0.8s linear infinite; }

/* spinner variant for primary button (black on light background) */
.optin-primary .spinner { border: 2px solid #000; border-top-color: transparent; }
@keyframes spin { to { transform: rotate(360deg); } }

/* Small-screen tweaks */
@media (max-width: 480px) {
  .optin-panel { padding: 16px; width: calc(100% - 32px); }
}
