/* 07_responsive.css — Mobile breakpoints and micro-interactions
   (verbatim port of styles.py inject_mobile_responsive). */

/* ---- Tablet (<= 768px) ---- */
@media (max-width: 768px) {
    .hero-title { font-size: var(--fs-10xl) !important; letter-spacing: -0.68px !important; }
    .hero-subtitle { font-size: var(--fs-xl) !important; }
    .feature-card { padding: 16px !important; }
    .feature-grid { grid-template-columns: 1fr !important; }
    .trust-badge { padding: 0.75rem 1rem !important; }
    .trust-badge-grid { grid-template-columns: repeat(2, 1fr) !important; }
    .trust-number { font-size: var(--fs-6xl) !important; }
    .pricing-card { padding: 20px !important; min-height: auto !important; }
    .article-title { font-size: var(--fs-8xl) !important; }
    .article-container { padding: 24px 16px !important; }
    .nav-links { gap: 8px !important; }
    .nav-link-muted { display: none !important; }
    .section-heading { font-size: var(--fs-4xl) !important; }
    .cta-section { padding: 32px 16px !important; }
    .footer-grid { grid-template-columns: 1fr !important; gap: 24px !important; }
    .trust-section-grid { grid-template-columns: 1fr !important; }
    .step-block:not(:last-child)::after { display: none !important; }
}

/* ---- Phone (<= 480px) ---- */
@media (max-width: 480px) {
    .hero-title { font-size: var(--fs-7xl) !important; letter-spacing: -0.56px !important; }
    .hero-subtitle { font-size: var(--fs-lg) !important; }
    .trust-number { font-size: var(--fs-4xl) !important; }
    .trust-badge-grid { grid-template-columns: 1fr !important; }
    .section-heading { font-size: var(--fs-2xl) !important; }
    /* Conversion: full-width hero CTA with a 44px touch target. */
    .hero-cta-row { align-items: stretch !important; }
    .hero-cta-row .btn-primary {
        width: 100% !important;
        text-align: center !important;
        padding: 12px 24px !important;
    }
    .hero-cta-microcopy, .hero-secondary-link { text-align: center; }
    .hero-grid { padding: var(--space-5) var(--space-3) var(--space-5) !important; }
    /* Final CTA matches the hero on phones: full width, 44px target. */
    .final-cta-box { padding: 2rem 1rem !important; }
    .final-cta-box .btn-primary {
        display: block !important;
        width: 100% !important;
        text-align: center !important;
        padding: 12px 24px !important;
    }
}

/* ---- Fade-in animation ---- */
@keyframes fadeInUp {
    from { opacity: 0; transform: translateY(20px); }
    to   { opacity: 1; transform: translateY(0); }
}
.animate-fade-in { animation: fadeInUp 0.6s ease-out both; }
.animate-fade-in-delay-1 { animation-delay: 0.1s; }
.animate-fade-in-delay-2 { animation-delay: 0.2s; }
.animate-fade-in-delay-3 { animation-delay: 0.3s; }

/* ---- Card hover micro-interaction ---- */
.hover-lift { transition: transform 0.2s ease, box-shadow 0.2s ease; }
.hover-lift:hover {
    transform: translateY(-2px);
    box-shadow: var(--shadow-2) !important;
}

/* ---- Reduced motion: honor the OS accessibility setting ---- */
@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after {
        animation-duration: 0.01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: 0.01ms !important;
        scroll-behavior: auto !important;
    }
}
