/**
 * Hesed Impact Ministries Theme - Responsive Styles
 *
 * @package Hesed_Impact
 * @version 1.0.0
 */

/* ============================================
   TABLET BREAKPOINT (768px)
   ============================================ */

@media (min-width: 768px) {
    /* Grid layouts */
    .grid-2 {
        grid-template-columns: repeat(2, 1fr);
    }

    .grid-3 {
        grid-template-columns: repeat(2, 1fr);
    }

    /* Featured cards */
    .featured__grid {
        grid-template-columns: repeat(3, 1fr);
    }

    /* About section */
    .about__grid {
        grid-template-columns: 1fr 1fr;
    }

    /* Archive grid */
    .archive-grid__inner {
        grid-template-columns: repeat(2, 1fr);
    }

    /* Blog preview */
    .blog-preview__grid {
        grid-template-columns: repeat(2, 1fr);
    }

    /* Footer grid */
    .footer__grid {
        grid-template-columns: repeat(2, 1fr);
    }

    /* Post navigation */
    .post-navigation__grid {
        grid-template-columns: 1fr 1fr;
    }
}

/* ============================================
   DESKTOP BREAKPOINT (1024px)
   ============================================ */

@media (min-width: 1024px) {
    /* Primary nav visible */
    .primary-nav {
        display: block;
    }

    .menu-toggle {
        display: none;
    }

    .mobile-nav {
        display: none;
    }

    /* Grid layouts */
    .grid-3 {
        grid-template-columns: repeat(3, 1fr);
    }

    .grid-4 {
        grid-template-columns: repeat(4, 1fr);
    }

    /* Blog preview */
    .blog-preview__grid {
        grid-template-columns: repeat(3, 1fr);
    }

    /* Archive grid */
    .archive-grid__inner {
        grid-template-columns: repeat(3, 1fr);
    }

    /* Footer grid - 4 columns */
    .footer__grid {
        grid-template-columns: 1.5fr 1fr 1fr 1fr;
    }

    /* Section padding adjustments */
    .section {
        padding: 5rem 0;
    }

    .section-lg {
        padding: 7rem 0;
    }

    /* Hero adjustments */
    .hero__headline {
        font-size: clamp(2.5rem, 5vw, 4rem);
    }

    .hero__subtitle {
        font-size: clamp(1rem, 2vw, 1.25rem);
    }

    /* About image minimum height */
    .about__image img {
        min-height: 450px;
    }

    /* Page header padding */
    .page-header {
        padding: calc(6rem + 80px) 0 4rem;
    }

    .single-header {
        padding: calc(6rem + 60px) 0 4rem;
    }

    .archive-header {
        padding: calc(6rem + 60px) 0 4rem;
    }
}

/* ============================================
   LARGE DESKTOP BREAKPOINT (1280px)
   ============================================ */

@media (min-width: 1280px) {
    .container {
        padding: 0 2rem;
    }

    /* Hero */
    .hero__content {
        max-width: 900px;
    }

    /* Featured section */
    .featured__grid {
        gap: 2rem;
    }

    /* Pillars */
    .pillars__grid {
        gap: 3rem;
    }

    /* About */
    .about__grid {
        gap: 4rem;
    }
}

/* ============================================
   MOBILE-SPECIFIC ADJUSTMENTS (max 767px)
   ============================================ */

@media (max-width: 767px) {
    /* Typography adjustments */
    h1 { font-size: 2rem; }
    h2 { font-size: 1.75rem; }
    h3 { font-size: 1.5rem; }

    /* Section padding */
    .section {
        padding: 3rem 0;
    }

    .section-lg {
        padding: 4rem 0;
    }

    /* Hero */
    .hero {
        min-height: 100svh;
    }

    .hero__content {
        padding: 0 1.5rem;
    }

    .hero__headline {
        font-size: 2rem;
    }

    .hero__subtitle {
        font-size: 1rem;
    }

    .hero__actions {
        flex-direction: column;
        align-items: center;
    }

    .hero__actions .btn {
        width: 100%;
        max-width: 280px;
    }

    .hero__scroll {
        display: none;
    }

    /* Welcome */
    .welcome {
        padding: 4rem 0;
    }

    .welcome__text {
        font-size: 1.125rem;
    }

    /* Featured cards */
    .featured__grid {
        grid-template-columns: 1fr;
        max-width: 500px;
        margin: 0 auto;
    }

    /* Pillars */
    .pillars {
        padding: 4rem 0;
    }

    .pillars__grid {
        gap: 2rem;
    }

    .pillar {
        padding: 2rem 1rem;
    }

    /* Scripture banner */
    .scripture-banner {
        padding: 4rem 0;
    }

    .scripture-banner__verse {
        font-size: 1.25rem;
    }

    /* About */
    .about {
        padding: 4rem 0;
    }

    .about__image::before {
        display: none;
    }

    .about__image img {
        min-height: 250px;
    }

    /* Events */
    .events {
        padding: 3rem 0;
    }

    /* Donate CTA */
    .donate-cta {
        padding: 4rem 0;
    }

    .donate-cta__title {
        font-size: 1.75rem;
    }

    /* Blog preview */
    .blog-preview__grid {
        grid-template-columns: 1fr;
        max-width: 500px;
        margin: 0 auto;
    }

    .blog-preview__header {
        flex-direction: column;
        align-items: flex-start;
        gap: 1rem;
    }

    /* Footer */
    .site-footer {
        padding-top: 3rem;
    }

    .footer__grid {
        gap: 2rem;
    }

    .footer__bottom {
        flex-direction: column;
        text-align: center;
        gap: 1rem;
    }

    /* Page header */
    .page-header {
        padding: calc(4rem + 80px) 0 3rem;
    }

    .page-header__title {
        font-size: 2rem;
    }

    /* Single header */
    .single-header {
        padding: calc(4rem + 60px) 0 3rem;
    }

    .single-header__title {
        font-size: 1.75rem;
    }

    /* Archive header */
    .archive-header {
        padding: calc(4rem + 60px) 0 3rem;
    }

    .archive-header__title {
        font-size: 2rem;
    }

    /* Archive grid */
    .archive-grid__inner {
        grid-template-columns: 1fr;
        max-width: 500px;
        margin: 0 auto;
    }

    /* Post navigation */
    .post-navigation__grid {
        grid-template-columns: 1fr;
        gap: 2rem;
    }

    .post-navigation__next {
        text-align: left;
        align-items: flex-start;
    }

    /* 404 page */
    .error-404__code {
        font-size: 6rem;
    }

    .error-404__title {
        font-size: 1.5rem;
    }

    /* Buttons */
    .btn {
        padding: 0.875rem 2rem;
        font-size: 0.8125rem;
    }

    /* Container */
    .container,
    .container-narrow,
    .container-wide {
        padding: 0 1.25rem;
    }
}

/* ============================================
   SMALL MOBILE (max 480px)
   ============================================ */

@media (max-width: 480px) {
    /* Hero */
    .hero__headline {
        font-size: 1.75rem;
    }

    /* Cards */
    .featured-card__image,
    .blog-card__image,
    .event-card__image {
        height: 180px;
    }

    /* Scripture */
    .scripture-banner__verse {
        font-size: 1.125rem;
    }

    /* Donate */
    .donate-cta__title {
        font-size: 1.5rem;
    }

    .donate-cta__text {
        font-size: 1rem;
    }
}

/* ============================================
   HIGH CONTRAST / REDUCED MOTION
   ============================================ */

@media (prefers-reduced-motion: reduce) {
    *,
    *::before,
    *::after {
        animation-duration: 0.01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: 0.01ms !important;
    }

    html {
        scroll-behavior: auto;
    }

    .reveal {
        opacity: 1;
        transform: none;
    }

    .hero__scroll {
        display: none;
    }
}

/* ============================================
   PRINT STYLES
   ============================================ */

@media print {
    .site-header,
    .site-footer,
    .hero__scroll,
    .menu-toggle,
    .mobile-nav,
    .btn {
        display: none !important;
    }

    .hero {
        min-height: auto;
        padding: 2rem 0;
        background-color: var(--color-primary) !important;
        -webkit-print-color-adjust: exact;
        print-color-adjust: exact;
    }

    body {
        font-size: 12pt;
        line-height: 1.5;
        color: #000;
    }

    a {
        text-decoration: underline;
        color: #000;
    }

    .section {
        padding: 1rem 0;
    }
}
