/**
 * Newsletter CTA block — standalone styles.
 *
 * The rules used to live only in novo-guides.css, which is enqueued exclusively on
 * guide pages, while template-parts/newsletter-cta.php is also rendered by single.php.
 * Result: the form was raw unstyled HTML on every blog post (audit 2026-08-24).
 * This file is enqueued wherever the block renders and is loaded AFTER novo-guides.css,
 * so on guide pages these rules win by cascade.
 */
.newsletter-cta {
    margin: 3rem 0 0;
    padding: 1.75rem 2rem;
    background: linear-gradient(135deg, #f0f4f8 0%, #e8ecf1 100%);
    border-radius: 12px;
    border-left: 4px solid var(--color-accent-gold, #D4A843);
}
.newsletter-cta-inner {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 1rem 1.75rem;
}
.newsletter-cta-icon { color: var(--color-accent-gold, #D4A843); flex-shrink: 0; line-height: 0; }
.newsletter-cta-content { flex: 1 1 260px; min-width: 0; }
.newsletter-cta-content strong {
    display: block;
    font-size: 1.0625rem;
    line-height: 1.35;
    color: var(--color-primary-navy, #0B1E3F);
    margin-bottom: 0.35rem;
}
.newsletter-cta-content p { font-size: 0.875rem; line-height: 1.5; color: #475569; margin: 0; }

.newsletter-cta-form { display: flex; gap: 0.5rem; flex: 1 1 340px; min-width: 0; }
.newsletter-cta-form input[type="email"] {
    flex: 1 1 auto;
    min-width: 0;
    /* 16px — anything smaller makes iOS Safari zoom the page on focus */
    font-size: 16px;
    padding: 0.7rem 0.9rem;
    border: 1px solid #cbd5e1;
    border-radius: 8px;
    background: #fff;
    color: var(--color-primary-navy, #0B1E3F);
    outline: none;
    transition: border-color .15s ease, box-shadow .15s ease;
}
.newsletter-cta-form input[type="email"]::placeholder { color: #94a3b8; }
.newsletter-cta-form input[type="email"]:hover { border-color: #94a3b8; }
.newsletter-cta-form input[type="email"]:focus-visible,
.newsletter-cta-form input[type="email"]:focus {
    border-color: var(--color-accent-gold, #D4A843);
    box-shadow: 0 0 0 3px rgba(212, 168, 67, .28);
}
.newsletter-cta-form button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    flex-shrink: 0;
    /* 44px tall — minimum comfortable tap target */
    min-height: 44px;
    padding: 0.7rem 1.25rem;
    border: none;
    border-radius: 8px;
    background: var(--color-accent-gold, #D4A843);
    color: var(--color-primary-navy, #0B1E3F);
    font-family: inherit;
    font-weight: 700;
    font-size: 0.9375rem;
    line-height: 1;
    cursor: pointer;
    white-space: nowrap;
    transition: background .15s ease, transform .08s ease;
}
.newsletter-cta-form button:hover { background: #c9a03e; }
.newsletter-cta-form button:active { transform: translateY(1px); }
.newsletter-cta-form button:focus-visible {
    outline: 3px solid var(--color-primary-navy, #0B1E3F);
    outline-offset: 2px;
}
.newsletter-cta-form button[disabled] { opacity: .6; cursor: wait; transform: none; }

/* honeypot — off-screen, never shown, not reachable by keyboard or screen readers */
.newsletter-cta-hp {
    position: absolute !important;
    left: -9999px !important;
    width: 1px; height: 1px;
    overflow: hidden;
}

.newsletter-cta-note { flex: 1 0 100%; font-size: 0.75rem; line-height: 1.45; color: #64748b; margin: 0; }
.newsletter-cta-note a { color: #475569; text-underline-offset: 2px; }

.newsletter-cta-msg { flex: 1 0 100%; font-size: 0.875rem; font-weight: 600; padding: 0.25rem 0 0; margin: 0; }
.newsletter-cta-msg.success { color: #15803d; }
.newsletter-cta-msg.error   { color: #b91c1c; }

@media (max-width: 640px) {
    .newsletter-cta { padding: 1.25rem 1.1rem; border-radius: 10px; }
    .newsletter-cta-inner { gap: 0.85rem; }
    .newsletter-cta-icon { display: none; }
    .newsletter-cta-form { flex: 1 1 100%; flex-wrap: wrap; }
    .newsletter-cta-form input[type="email"] { flex: 1 1 100%; }
    .newsletter-cta-form button { flex: 1 1 100%; }
}
@media (prefers-reduced-motion: reduce) {
    .newsletter-cta-form input[type="email"],
    .newsletter-cta-form button { transition: none; }
}
