/* Shared responsive tokens and utilities for KiwisCAD */
:root {
    --btn-padding-lg: 16px 32px;
    --btn-padding-md: 12px 22px;
    --btn-padding-sm: 10px 16px;
    --btn-font-lg: 16px;
    --btn-font-md: 14px;
    --btn-font-sm: 13px;
    --nav-height: 72px;
    --page-gutter: 5%;
}

html,
body {
    overflow-x: hidden;
    max-width: 100%;
}

@media (max-width: 1024px) {
    :root {
        --btn-padding-lg: 13px 22px;
        --btn-padding-md: 10px 18px;
        --btn-padding-sm: 8px 14px;
        --btn-font-lg: 14px;
        --btn-font-md: 13px;
        --nav-height: 64px;
        --page-gutter: 4.5%;
    }

    body.has-site-nav {
        padding-top: 108px;
    }
}

/* ===== Tablet / iPad (768px – 1024px) ===== */
@media (min-width: 768px) and (max-width: 1024px) {
    html {
        scroll-padding-top: 96px;
    }

    /* Medium button sizing — between desktop and phone */
    .btn,
    a.btn,
    button.btn,
    .btn-primary,
    .btn-outline,
    .btn-secondary,
    .btn-pricing,
    .btn-pricing-outline,
    .btn-pricing-filled,
    .legal-cta-btn,
    .ach-cta-btn {
        padding: 11px 20px !important;
        font-size: 14px !important;
        gap: 8px !important;
    }

    .btn-submit,
    .btn-login,
    .btn-register {
        padding: 12px 18px !important;
        font-size: 14px !important;
    }

    .hero-btns,
    .hero-actions {
        flex-direction: row;
        flex-wrap: wrap;
        justify-content: center;
        align-items: center;
        gap: 12px;
        width: auto;
        max-width: 100%;
    }

    .hero-btns .btn,
    .hero-btns a.btn,
    .hero-btns .btn-primary,
    .hero-btns .btn-outline,
    .hero-actions .btn,
    .hero-actions .btn-primary,
    .hero-actions .btn-outline,
    .page-hero .hero-actions .btn {
        width: auto !important;
        max-width: none !important;
        flex: 0 1 auto !important;
        padding: 11px 22px !important;
        font-size: 14px !important;
        line-height: 1.3 !important;
        border-radius: 11px !important;
    }

    .cta-btns {
        flex-direction: row;
        flex-wrap: wrap;
        justify-content: center;
        gap: 12px;
    }

    .cta-btns .btn,
    .cta-btns a.btn {
        width: auto !important;
    }

    .features-hero,
    .about-hero,
    .page-hero {
        padding-top: 100px !important;
        padding-left: 5% !important;
        padding-right: 5% !important;
    }

    .section-title {
        font-size: clamp(30px, 4.2vw, 38px) !important;
        line-height: 1.2 !important;
    }

    .section-sub {
        font-size: 15px !important;
        margin-bottom: 40px !important;
        max-width: 90% !important;
    }

    .cta-card {
        padding: 48px 36px !important;
    }

    /* Pricing — 2 columns on tablet */
    .pricing-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
        gap: 20px !important;
        margin-top: 40px !important;
    }

    .pricing-card {
        padding: 32px 28px !important;
    }

    .pricing-card.popular {
        transform: none !important;
        grid-column: span 1;
    }

    /* Stats row */
    .stats {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
        gap: 28px 0 !important;
    }

    .stat-item {
        border-right: none !important;
        padding: 12px 16px !important;
    }

    .stat-val {
        font-size: 36px !important;
    }

    /* Community / gallery grids */
    .circuit-grid,
    .skeleton-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
        gap: 20px !important;
    }

    .circuit-grid .circuit-card .card-preview {
        height: 180px;
    }

    /* Component / filter pills */
    .comp-filters,
    .faq-categories,
    .filter-buttons {
        flex-wrap: wrap !important;
        justify-content: center !important;
        overflow-x: visible !important;
        margin-left: 0 !important;
        margin-right: 0 !important;
        padding-left: 0 !important;
        padding-right: 0 !important;
    }

    .comp-filter,
    .filter-btn,
    .faq-cat-btn,
    .step-tab-btn,
    .ach-tab-btn {
        padding: 8px 14px !important;
        font-size: 13px !important;
    }

    .component-bento:not(.is-filtered),
    .component-bento.is-filtered {
        grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
        max-width: 100% !important;
    }

    /* Contact — keep side-by-side on tablet landscape */
    .contact-grid {
        gap: 36px !important;
    }

    .contact-form {
        padding: 32px 28px !important;
    }

    /* Achievements */
    .ach-cards-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    }

    .achievements-container {
        padding: 108px 5% 56px !important;
    }

    /* Footer */
    .footer-grid {
        grid-template-columns: 2fr 1fr 1fr !important;
        gap: 28px !important;
    }

    /* Dialogs */
    .custom-dialog {
        width: min(85vw, 480px);
        padding: 24px;
    }

    /* Gallery cards */
    .card,
    .project-card,
    .featured-card {
        min-width: 200px !important;
        max-width: 240px !important;
    }

    .dropdown-trigger {
        height: 42px !important;
        padding: 0 18px !important;
        font-size: 13px !important;
    }
}

@media (max-width: 768px) {
    :root {
        --btn-padding-lg: 10px 18px;
        --btn-padding-md: 9px 14px;
        --btn-padding-sm: 7px 12px;
        --btn-font-lg: 13px;
        --btn-font-md: 12px;
        --btn-font-sm: 12px;
        --nav-height: 60px;
        --page-gutter: 4%;
    }

    body.has-site-nav {
        padding-top: 96px;
    }
}

@media (max-width: 480px) {
    :root {
        --btn-padding-lg: 9px 14px;
        --btn-padding-md: 8px 12px;
        --btn-padding-sm: 7px 10px;
        --btn-font-lg: 12px;
        --btn-font-md: 11px;
        --btn-font-sm: 11px;
        --page-gutter: 4%;
    }
}

/* ===== Marketing / CTA buttons (wins over page inline .btn rules) ===== */
@media (max-width: 768px) {
    .btn,
    a.btn,
    button.btn,
    .btn-primary,
    .btn-outline,
    .btn-secondary,
    .btn-pricing,
    .btn-pricing-outline,
    .btn-pricing-filled,
    .legal-cta-btn,
    .ach-cta-btn {
        padding: var(--btn-padding-lg) !important;
        font-size: var(--btn-font-lg) !important;
        gap: 8px !important;
        min-height: 0 !important;
    }

    .btn i,
    .btn-primary i,
    .btn-outline i {
        width: 16px !important;
        height: 16px !important;
    }

    .btn-submit,
    .btn-login,
    .btn-register {
        padding: 11px 16px !important;
        font-size: 13px !important;
        min-height: 0 !important;
    }

    .hero-btns {
        flex-wrap: wrap;
        gap: 8px;
        justify-content: center;
        align-items: center;
        width: auto;
        max-width: 100%;
    }

    .hero-btns .btn,
    .hero-actions .btn,
    .page-hero .hero-actions .btn {
        width: auto !important;
        flex: 0 1 auto;
        max-width: 100%;
        padding: 7px 14px !important;
        font-size: 13px !important;
        line-height: 1.25 !important;
        border-radius: 10px !important;
        box-shadow: 0 4px 14px rgba(39, 201, 109, 0.22) !important;
    }

    .hero-btns .btn-outline,
    .hero-actions .btn-outline {
        border-width: 1px !important;
        padding: 7px 16px !important;
    }

    .cta-btns {
        gap: 10px;
    }

    .cta-card .btn,
    .cta-btns .btn,
    .share-banner .btn,
    .share-banner-inner .btn {
        padding: var(--btn-padding-md) !important;
        font-size: var(--btn-font-lg) !important;
    }

    /* Filter / category / tab pills */
    .comp-filter,
    .filter-btn,
    .faq-cat-btn,
    .step-tab-btn,
    .ach-tab-btn,
    .legal-toc-link {
        padding: 7px 12px !important;
        font-size: 12px !important;
        min-height: 0 !important;
    }

    .step-tab-btn i,
    .ach-tab-btn i {
        width: 14px !important;
        height: 14px !important;
    }

    /* Gallery / workspace page buttons */
    .btn-start,
    .btn-reset,
    .btn-view-all,
    .nav-cta,
    .carousel-btn,
    .tso-nav-btn {
        padding: 8px 14px !important;
        font-size: 12px !important;
        min-height: 0 !important;
    }

    .carousel-btn {
        width: 34px !important;
        height: 34px !important;
        padding: 0 !important;
    }

    /* Admin / editor action buttons */
    .btn-action,
    .btn-action-primary,
    .btn-action-secondary,
    .btn-modal,
    .btn-modal-cancel,
    .btn-modal-danger,
    .tab-btn,
    .btn-publish,
    .btn-draft,
    .btn-preview,
    .btn-preview-arrow {
        padding: 8px 14px !important;
        font-size: 12px !important;
        min-height: 0 !important;
    }

    .btn-icon,
    .tb-btn {
        width: 32px !important;
        height: 32px !important;
        min-width: 32px !important;
        padding: 0 !important;
    }

    /* Community / dropdown controls */
    .dropdown-trigger {
        height: 38px !important;
        padding: 0 14px !important;
        font-size: 12px !important;
    }

    .dropdown-item {
        padding: 8px 12px !important;
        font-size: 13px !important;
    }

    /* Post engagement */
    .engage-btn,
    .engage-stat {
        padding: 10px 14px !important;
        font-size: 12px !important;
        min-height: 0 !important;
    }

    .engage-btn i,
    .engage-stat i {
        width: 14px !important;
        height: 14px !important;
    }

    /* Dialog buttons */
    .custom-dialog-btn {
        padding: 8px 14px !important;
        font-size: 13px !important;
    }

    .features-hero,
    .about-hero,
    .page-hero {
        padding-top: 110px !important;
        padding-left: 4% !important;
        padding-right: 4% !important;
    }

    .cta-card {
        padding: 40px 24px !important;
    }
}

@media (max-width: 480px) {
    .hero-actions,
    .cta-btns,
    .share-banner-inner .hero-actions {
        flex-direction: column;
        width: 100%;
        align-items: stretch;
    }

    .cta-btns .btn,
    .cta-btns a.btn,
    .share-banner .btn-primary,
    .share-banner .btn-outline {
        width: 100%;
        justify-content: center;
    }

    /* Hero: compact inline pills — not full-width bars */
    .hero-btns {
        flex-direction: row;
        flex-wrap: wrap;
        justify-content: center;
        align-items: center;
        width: auto;
        max-width: 100%;
        gap: 8px;
    }

    .hero-btns .btn,
    .hero-actions .btn {
        width: auto !important;
        flex: 0 1 auto;
        max-width: calc(50% - 6px);
        justify-content: center;
    }

    .hero-btns .btn-outline,
    .hero-actions .btn-outline,
    .share-banner .btn-outline {
        border-width: 1px !important;
    }

    .btn,
    a.btn,
    button.btn,
    .btn-primary,
    .btn-outline,
    .btn-pricing,
    .btn-pricing-outline,
    .btn-pricing-filled {
        padding: var(--btn-padding-lg) !important;
        font-size: var(--btn-font-lg) !important;
    }

    .btn-submit {
        padding: 10px 14px !important;
        font-size: 12px !important;
    }

    .comp-filter,
    .filter-btn,
    .faq-cat-btn,
    .step-tab-btn,
    .ach-tab-btn {
        padding: 6px 10px !important;
        font-size: 11px !important;
    }

    .btn-start,
    .btn-reset,
    .btn-view-all {
        padding: 7px 12px !important;
        font-size: 11px !important;
    }

    /* Hero CTAs last — must beat generic .btn / .btn-primary rules above */
    .hero-btns .btn,
    .hero-btns a.btn,
    .hero-btns .btn-primary,
    .hero-btns .btn-outline,
    .hero-actions .btn,
    .hero-actions .btn-primary,
    .hero-actions .btn-outline {
        padding: 6px 12px !important;
        font-size: 12px !important;
        line-height: 1.2 !important;
        border-radius: 8px !important;
        min-height: 0 !important;
        width: auto !important;
        flex: 0 1 auto !important;
        max-width: calc(50% - 6px) !important;
        box-shadow: 0 3px 10px rgba(39, 201, 109, 0.18) !important;
    }

    .hero-btns .btn-outline,
    .hero-actions .btn-outline {
        border-width: 1px !important;
        box-shadow: none !important;
    }

    .hero-btns .btn i,
    .hero-actions .btn i {
        width: 14px !important;
        height: 14px !important;
    }
}

/* Mobile drawer auth — compact pill, not full-width bar */
@media (max-width: 1024px) {
    .mobile-nav-auth {
        align-items: center !important;
        padding: 10px 14px !important;
        padding-bottom: calc(12px + env(safe-area-inset-bottom, 0px)) !important;
    }

    .mobile-nav-signin,
    .mobile-nav-admin,
    .mobile-nav-logout {
        width: auto !important;
        max-width: 100% !important;
        align-self: center !important;
        flex: 0 0 auto !important;
        min-height: 0 !important;
        padding: 8px 18px !important;
        font-size: 13px !important;
    }

    .mobile-nav-admin,
    .mobile-nav-logout {
        padding: 7px 14px !important;
        font-size: 12px !important;
    }
}
