/* ============================================
   HeliosDB - Responsive Design
   Breakpoints: 1199 / 959 / 809 / 599 / 479 / 380
   ============================================ */

/* Tablet Landscape (< 1200px) */
@media (max-width: 1199px) {
    :root {
        --section-padding: 80px;
    }

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

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

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

    .footer-grid {
        grid-template-columns: repeat(3, 1fr);
        gap: 32px;
    }
}

/* Tablet Portrait (< 960px) */
@media (max-width: 959px) {
    .tiers-grid {
        grid-template-columns: 1fr;
        max-width: 500px;
        margin: 0 auto;
    }

    .pricing-grid {
        grid-template-columns: 1fr;
        max-width: 440px;
        margin: 0 auto;
    }

    .dev-grid {
        grid-template-columns: 1fr;
    }

    .dev-info-panel {
        display: grid;
        grid-template-columns: repeat(2, 1fr);
    }

    .investor-content {
        grid-template-columns: 1fr;
    }
}

/* Mobile Landscape / Small Tablet (< 810px) */
@media (max-width: 809px) {
    :root {
        --section-padding: 64px;
    }

    /* Nav drawer */
    .nav-links {
        display: none;
        position: fixed;
        top: 64px;
        left: 0;
        right: 0;
        bottom: 0;
        background: rgba(0, 0, 0, 0.97);
        backdrop-filter: blur(20px);
        flex-direction: column;
        align-items: stretch;
        justify-content: flex-start;
        gap: 8px;
        padding: 32px 24px 120px;
        overflow-y: auto;
        -webkit-overflow-scrolling: touch;
        z-index: 999;
    }

    .nav-links.open {
        display: flex;
    }

    .nav-link {
        font-size: 1.0625rem;
        text-align: left;
        padding: 12px 4px;
        border-bottom: 1px solid rgba(255, 255, 255, 0.06);
    }

    .nav-hamburger {
        display: flex;
    }

    /* Original nav-actions row (right of navbar) is hidden on mobile;
       a clone is injected into the drawer by main.js as .nav-actions-mobile */
    .navbar .nav-actions {
        display: none;
    }

    .nav-actions-mobile {
        display: flex !important;
        flex-direction: column;
        gap: 10px;
        margin-top: 24px;
        padding-top: 24px;
        border-top: 1px solid rgba(158, 140, 252, 0.18);
    }

    .nav-actions-mobile .nav-btn {
        width: 100%;
        justify-content: center;
        min-height: 48px;
        font-size: 0.9375rem;
        padding: 12px 16px;
    }

    .nav-actions-mobile .community-label {
        display: inline !important;
    }

    /* Hero */
    .hero {
        padding: 100px 20px 40px;
        min-height: auto;
    }

    .hero-ctas {
        flex-direction: column;
        gap: 12px;
    }

    .hero-ctas .btn {
        width: 100%;
        justify-content: center;
    }

    .hero-code {
        max-width: 100%;
    }

    .code-block {
        font-size: 0.75rem;
    }

    .hero-stats {
        flex-wrap: wrap;
        gap: 20px;
        justify-content: center;
    }

    .stat-divider {
        display: none;
    }

    .stat {
        flex: 1 1 calc(50% - 10px);
        min-width: 140px;
    }

    /* Section subtitle */
    .section-subtitle {
        font-size: 1rem;
    }

    /* Features */
    .features-grid {
        grid-template-columns: 1fr;
    }

    /* Comparison table — scroll affordance */
    .comparison-strip {
        overflow-x: auto;
        padding: 40px 0;
        position: relative;
        -webkit-overflow-scrolling: touch;
        background-image:
            linear-gradient(to right, var(--bg-base), var(--bg-base)),
            linear-gradient(to right, var(--bg-base), var(--bg-base)),
            linear-gradient(to right, rgba(0, 0, 0, 0.6), transparent),
            linear-gradient(to left, rgba(0, 0, 0, 0.6), transparent);
        background-position: left center, right center, left center, right center;
        background-repeat: no-repeat;
        background-size: 24px 100%, 24px 100%, 16px 100%, 16px 100%;
        background-attachment: local, local, scroll, scroll;
    }

    .comparison-table {
        min-width: 600px;
        font-size: 0.8125rem;
    }

    /* Use cases */
    .uc-filters {
        justify-content: flex-start;
        overflow-x: auto;
        flex-wrap: nowrap;
        padding-bottom: 8px;
        -webkit-overflow-scrolling: touch;
    }

    .uc-filter {
        white-space: nowrap;
        flex-shrink: 0;
        min-height: 40px;
    }

    .uc-grid {
        grid-template-columns: repeat(2, 1fr);
        gap: 12px;
    }

    /* Dev section */
    .dev-info-panel {
        grid-template-columns: 1fr;
    }

    .dev-tabs {
        overflow-x: auto;
    }

    /* Investors */
    .investor-metrics {
        grid-template-columns: repeat(2, 1fr);
    }

    .metric-value {
        font-size: 2rem;
    }

    /* CTA */
    .cta-buttons {
        flex-direction: column;
        gap: 12px;
    }

    .cta-buttons .btn {
        width: 100%;
        justify-content: center;
    }

    /* Footer */
    .footer-grid {
        grid-template-columns: repeat(2, 1fr);
        gap: 32px;
    }

    /* Inline grid collapse — broaden to all common patterns inside content sections.
       Use .no-collapse class to opt-out (e.g., when a 2-up layout should survive). */
    .feature-detail [style*="grid-template-columns"]:not(.no-collapse),
    .page-content [style*="grid-template-columns"]:not(.no-collapse),
    section [style*="grid-template-columns: repeat(auto-fit"]:not(.no-collapse),
    section [style*="grid-template-columns: repeat(auto-fill"]:not(.no-collapse),
    section [style*="grid-template-columns: 1fr 1fr"]:not(.no-collapse),
    section [style*="grid-template-columns: 1fr 2fr"]:not(.no-collapse),
    section [style*="grid-template-columns: 2fr 1fr"]:not(.no-collapse),
    section [style*="grid-template-columns: repeat(2"]:not(.no-collapse),
    section [style*="grid-template-columns: repeat(3"]:not(.no-collapse),
    section [style*="grid-template-columns: repeat(4"]:not(.no-collapse) {
        grid-template-columns: 1fr !important;
    }

    /* Code blocks / pre — protect from overflow */
    pre,
    .feature-code-block pre,
    .feature-code-block {
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
        max-width: 100%;
    }

    pre {
        font-size: 0.75rem !important;
    }

    /* Inline padding relax for content cards */
    .feature-detail [style*="padding: 48px"]:not(.no-pad-relax),
    .feature-detail [style*="padding: 40px"]:not(.no-pad-relax) {
        padding: 24px !important;
    }

    /* Mobile: edge-fade scroll affordance for any table-scroll wrapper */
    .table-scroll {
        background:
            linear-gradient(to right, var(--bg-base), var(--bg-base)) left center / 16px 100% no-repeat,
            linear-gradient(to left, var(--bg-base), var(--bg-base)) right center / 16px 100% no-repeat,
            linear-gradient(to right, rgba(0,0,0,0.6), transparent) left center / 12px 100% no-repeat,
            linear-gradient(to left, rgba(0,0,0,0.6), transparent) right center / 12px 100% no-repeat;
        background-attachment: local, local, scroll, scroll;
    }

    .table-scroll > table {
        font-size: 0.8125rem;
    }

    .product-stats-bar {
        flex-wrap: wrap;
        gap: 16px;
    }

    .hero-slide { padding: 24px 20px; }
    .hero-slide-stats { grid-template-columns: repeat(2, 1fr); }
    .hero-slide-tagline { display: none; }
}

/* Large phone / phablet (< 600px) */
@media (max-width: 599px) {
    :root {
        --section-padding: 56px;
    }

    .container {
        padding: 0 18px;
    }

    .hero-subtitle br {
        display: none;
    }

    .section-title br {
        display: none;
    }

    .hero-stats {
        gap: 14px;
    }

    .stat-value {
        font-size: 1.5rem;
    }

    .uc-grid {
        grid-template-columns: 1fr;
    }

    .uc-card {
        padding: 16px;
    }

    .investor-metrics {
        grid-template-columns: 1fr;
    }

    .metric-card {
        padding: 24px 16px;
    }

    .feature-card {
        padding: 24px;
    }

    .footer-grid {
        grid-template-columns: 1fr;
        gap: 24px;
    }

    /* Pricing / tier cards inner padding + stats reflow */
    .tier-header,
    .tier-features,
    .tier-target {
        padding-left: 20px;
        padding-right: 20px;
    }

    .tier-stats {
        padding: 18px 20px;
        gap: 8px;
    }

    .tier-stat-value {
        font-size: 0.95rem;
        line-height: 1.2;
    }

    .tier-stat-label {
        font-size: 0.625rem;
    }

    .tier-name {
        font-size: 1.25rem;
    }

    .tier-card > .tier-desc {
        padding: 12px 20px 0;
        font-size: 0.875rem;
    }

    .tier-features li {
        font-size: 0.8125rem;
    }

    .tier-popular {
        top: 12px;
        right: 12px;
        font-size: 0.625rem;
        padding: 3px 8px;
    }

    .pricing-card {
        padding: 28px 20px;
    }

    /* Carousel mobile pass */
    .hero-slider-dot {
        width: 22px !important;
        height: 6px !important;
        border-radius: 3px !important;
        min-width: 22px;
    }

    .hero-slide-stats {
        grid-template-columns: repeat(2, 1fr) !important;
        gap: 10px !important;
    }

    .hero-slide-stat-val {
        font-size: 1rem !important;
    }

    .hero-slide-stat-lbl {
        font-size: 0.5625rem !important;
    }

    .hero-slide-desc {
        font-size: 0.875rem !important;
    }

    .hero-slider-nav {
        gap: 8px;
        padding: 10px 0 12px;
    }

    /* Body readability */
    body {
        line-height: 1.65;
    }

    p {
        line-height: 1.7;
    }
}

/* Mobile Portrait (< 480px) */
@media (max-width: 479px) {
    :root {
        --section-padding: 48px;
    }

    .container {
        padding: 0 16px;
    }

    .stat-value {
        font-size: 1.375rem;
    }

    pre {
        font-size: 0.6875rem !important;
    }
}

/* Small phone — iPhone SE class (< 380px) */
@media (max-width: 379px) {
    :root {
        --section-padding: 40px;
    }

    .container {
        padding: 0 14px;
    }

    .hero {
        padding: 90px 14px 32px;
    }

    .nav-logo .logo-text {
        font-size: 0.95rem;
    }

    .stat {
        flex: 1 1 100%;
    }

    .feature-card {
        padding: 20px;
    }

    .uc-card {
        padding: 14px;
    }

    .hero-slide { padding: 18px 14px; }

    /* Tier stats — fall back to 1×3 stacked on tiny screens to avoid crush */
    .tier-stats {
        grid-template-columns: 1fr 1fr 1fr;
        gap: 6px;
        padding: 16px;
    }

    .tier-stat-value {
        font-size: 0.8125rem;
    }

    .tier-stat-label {
        font-size: 0.5625rem;
    }
}

/* Touch-target floor on coarse-pointer devices */
@media (hover: none) and (pointer: coarse) {
    .btn,
    .nav-btn,
    .uc-filter,
    .nav-link,
    .nav-dropdown-item,
    .nav-submenu-item,
    .pricing-card .btn,
    .footer-links a {
        min-height: 44px;
        display: inline-flex;
        align-items: center;
    }

    .footer-links a {
        padding: 6px 0;
    }
}
