/* Subscribe Overlay Styles */
.subscribe-overlay { position: fixed; inset: 0; display: none; z-index: 1000; }
.subscribe-overlay.active { display: block; }
.subscribe-backdrop { position: absolute; inset: 0; background: rgba(0,0,0,0.55); backdrop-filter: blur(2px); }
.subscribe-modal { position: relative; max-width: 520px; margin: 10vh auto; background: #fff; border-radius: 10px; padding: 1.5rem; box-shadow: 0 10px 30px rgba(0,0,0,0.25); border: 2px solid #2D6F31; }
.subscribe-close { position: absolute; top: 8px; right: 12px; font-size: 1.5rem; line-height: 1; border: 0; background: transparent; cursor: pointer; color: #363D46; }
.subscribe-content h2 { margin: 0 0 0.5rem; color: #2D6F31; }
.subscribe-content p { margin: 0 0 1rem; color: #363D46; }
.subscribe-form { display: flex; flex-direction: column; gap: 0.75rem; }
.subscribe-form input[type="email"] { padding: 0.6rem 0.75rem; border: 1px solid #ccc; border-radius: 6px; font-size: 1rem; }
.subscribe-actions { display: flex; gap: 0.75rem; align-items: center; }
#subscribeEmailBtn { background: #2D6F31; color: #fff; border: none; padding: 0.6rem 1rem; border-radius: 6px; cursor: pointer; font-weight: 700; }
.rss-link { color: #23648D; text-decoration: none; font-weight: 600; }
.rss-link:hover { text-decoration: underline; }
.subscribe-note { color: #666; }
.subscribe-status { min-height: 1.2em; font-size: 0.9rem; }
.subscribe-status.ok { color: #2D6F31; }
.subscribe-status.err { color: #b00020; }
.visually-hidden { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); border: 0; }

@media (max-width: 640px) { .subscribe-modal { margin: 12vh 1rem; } }
