/* ============================================
   CARDMAP RESPONSIVE CSS - MEDIA QUERIES
   ============================================ */

/* ============================================
   TABLET: 768px+
   ============================================ */

@media (min-width: 768px) {
    /* Header */
    .header-inner {
        height: var(--header-height);
    }
    
    .menu-toggle {
        display: none;
    }
    
    .main-navigation {
        display: block;
    }
    
    .language-switcher {
        display: block;
    }
    
    .header-cta {
        display: inline-flex;
    }
    
    /* Hero */
    .hero-title {
        font-size: var(--font-size-3xl);
    }
    
    .hero-cta {
        flex-direction: row;
    }
    
    .categories-grid {
        grid-template-columns: repeat(3, 1fr);
    }
    
    /* Cards Grid */
    .cards-grid,
    .top-cards-grid,
    .landing-cards-grid {
        grid-template-columns: repeat(2, 1fr);
    }
    
    /* Banks */
    .banks-grid {
        grid-template-columns: repeat(4, 1fr);
    }
    
    /* Posts */
    .posts-grid,
    .guides-grid,
    .articles-grid {
        grid-template-columns: repeat(2, 1fr);
    }
    
    /* Trust Bar */
    .trust-items {
        grid-template-columns: repeat(4, 1fr);
    }
    
    /* Calculator */
    .steps-grid {
        grid-template-columns: repeat(3, 1fr);
    }
    
    /* Footer */
    .footer-grid {
        grid-template-columns: repeat(2, 1fr);
    }
    
    /* Landing */
    .landing-hero-content {
        grid-template-columns: 1fr 320px;
        align-items: center;
    }
    
    .landing-title {
        font-size: var(--font-size-3xl);
    }
    
    .landing-features {
        flex-direction: row;
        flex-wrap: wrap;
    }
    
    /* Single Card */
    .card-header-grid {
        grid-template-columns: 1fr 280px;
        align-items: center;
    }
    
    .card-info-main {
        order: 1;
    }
    
    .card-image-main {
        order: 2;
    }
    
    .details-grid {
        grid-template-columns: repeat(4, 1fr);
    }
    
    .pros-cons-grid {
        grid-template-columns: repeat(2, 1fr);
    }
    
    .cta-box-large {
        grid-template-columns: 1fr auto;
    }
    
    /* Final CTA */
    .final-cta-actions {
        flex-direction: row;
    }
    
    /* Error 404 */
    .suggestions-grid {
        grid-template-columns: repeat(3, 1fr);
    }
    
    .categories-grid {
        grid-template-columns: repeat(3, 1fr);
    }
    
    .error-actions {
        flex-direction: row;
    }
    
    /* Search */
    .no-results-actions {
        flex-direction: row;
    }
    
    /* Related */
    .related-grid {
        grid-template-columns: repeat(2, 1fr);
    }
    
    /* Next Steps */
    .next-steps-grid {
        grid-template-columns: repeat(3, 1fr);
    }
    
    /* Featured Content — stays stacked on tablet */
    
    /* CTA Actions */
    .cta-actions {
        flex-direction: row;
    }
}

/* ============================================
   DESKTOP: 1024px+
   ============================================ */

@media (min-width: 1024px) {
    /* Container */
    .container {
        padding-left: var(--space-6);
        padding-right: var(--space-6);
    }
    
    /* Hero */
    .hero-section {
        padding: var(--space-16) 0;
    }
    
    .hero-content {
        max-width: 600px;
        margin-left: auto;
        margin-right: auto;
    }
    
    /* Cards Grid */
    .cards-grid,
    .top-cards-grid,
    .landing-cards-grid {
        grid-template-columns: repeat(3, 1fr);
    }
    
    /* Posts */
    .posts-grid,
    .guides-grid,
    .articles-grid,
    .related-grid {
        grid-template-columns: repeat(3, 1fr);
    }
    
    /* Featured Content — side by side on desktop */
    .featured-grid {
        grid-template-columns: 3fr minmax(0, 2fr);
        align-items: center;
    }
    
    .featured-stats {
        max-width: 100%;
    }
    
    .stat-card {
        padding: var(--space-3);
    }
    
    .stat-number {
        font-size: 1.15rem;
    }
    
    .stat-label {
        font-size: 0.75rem;
    }
    
    /* Banks */
    .banks-grid {
        grid-template-columns: repeat(6, 1fr);
    }
    
    /* Footer */
    .footer-grid {
        grid-template-columns: 2fr 1fr 1fr 1fr;
    }
    
    /* Calculator */
    .calculator-grid {
        grid-template-columns: 360px 1fr;
    }
    
    /* Tools */
    .tools-grid {
        grid-template-columns: repeat(2, 1fr);
    }
    
    /* Article */
    .article-title {
        font-size: var(--font-size-3xl);
    }
    
    /* Archive */
    .archive-title {
        font-size: var(--font-size-3xl);
    }
    
    /* Landing */
    .landing-hero-content {
        grid-template-columns: 1fr 360px;
    }
    
    /* Card Box */
    .card-box-header {
        flex-direction: row;
        align-items: center;
    }
    
    /* Comparison Table */
    .cardmap-comparison-table-wrapper {
        padding: var(--space-6);
    }
}

/* ============================================
   LARGE DESKTOP: 1440px+
   ============================================ */

@media (min-width: 1440px) {
    /* Container */
    .container {
        padding-left: var(--space-8);
        padding-right: var(--space-8);
    }
    
    /* Hero */
    .hero-title {
        font-size: 3rem;
    }
    
    /* Stats can be bigger on wide screens */
    .stat-number {
        font-size: 1.25rem;
    }
    
    /* Landing */
    .landing-hero-content {
        grid-template-columns: 1fr 400px;
        gap: var(--space-12);
    }
    
    .landing-title {
        font-size: 3.5rem;
    }
}

/* ============================================
   MOBILE MENU (max-width: 767px)
   ============================================ */

@media (max-width: 767px) {
    /* Mobile Navigation */
    .main-navigation {
        position: fixed;
        top: var(--header-height-mobile);
        left: 0;
        right: 0;
        bottom: 0;
        background-color: var(--color-bg-white);
        padding: var(--space-4);
        transform: translateX(-100%);
        transition: transform var(--transition-base);
        overflow-y: auto;
    }
    
    .main-navigation.is-open {
        transform: translateX(0);
    }
    
    .nav-menu {
        flex-direction: column;
        gap: 0;
    }
    
    .nav-menu li {
        border-bottom: 1px solid var(--color-border);
    }
    
    .nav-menu a {
        display: block;
        padding: var(--space-4) 0;
        font-size: var(--font-size-md);
    }
    
    .nav-menu a::after {
        display: none;
    }
    
    /* Mobile Search */
    .search-form-wrapper {
        position: fixed;
        top: var(--header-height-mobile);
        left: 0;
        right: 0;
        bottom: 0;
        background-color: var(--color-bg-white);
        padding: var(--space-4);
    }
    
    .search-form {
        flex-direction: column;
    }
    
    /* Mobile Card Box */
    .card-box-details {
        grid-template-columns: 1fr;
    }
    
    .detail-item {
        flex-direction: row;
        justify-content: space-between;
        align-items: center;
    }
    
    /* Mobile Tables */
    .cardmap-comparison-table {
        font-size: var(--font-size-xs);
    }
    
    .cardmap-comparison-table th,
    .cardmap-comparison-table td {
        padding: var(--space-2);
    }
    
    .card-info img {
        width: 40px;
        height: 28px;
    }
    
    /* Mobile Results */
    .result-item {
        grid-template-columns: 1fr;
        gap: var(--space-3);
    }
    
    .result-action {
        justify-self: start;
    }
    
    /* Mobile Calculator */
    .summary-card {
        flex-direction: column;
        gap: var(--space-2);
        text-align: center;
    }
}

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

@media print {
    /* Hide unnecessary elements */
    .site-header,
    .site-footer,
    .footer-cta,
    .cardmap-trust-bar,
    .affiliate-disclosure,
    .cta-above-fold,
    .final-cta-section,
    .card-quick-cta,
    .card-cta-section,
    .disclosure-section,
    .no-print {
        display: none !important;
    }
    
    /* Reset colors */
    body {
        background: white !important;
        color: black !important;
    }
    
    /* Ensure content is visible */
    .site-main {
        padding: 0 !important;
    }
    
    /* Links */
    a {
        text-decoration: underline !important;
        color: black !important;
    }
    
    /* Page breaks */
    h1, h2, h3 {
        page-break-after: avoid;
    }
    
    .cardmap-card-box,
    .article-content {
        page-break-inside: avoid;
    }
}
