:root {
    --parent-touch-target: 44px;
    --parent-mobile-safe-bottom: calc(82px + env(safe-area-inset-bottom));
}

@media (max-width: 900px) {
    .product-add-button {
        min-height: 44px;
    }
}

@media (max-width: 720px) {
    html { font-size: 16px; }

    body.has-mobile-parent-nav {
        padding-bottom: var(--parent-mobile-safe-bottom);
    }

    :is(button, .btn, .nav-link, .history-link, .quick-link, summary) {
        min-height: var(--parent-touch-target);
    }

    .mobile-nav {
        min-height: var(--parent-mobile-safe-bottom);
        padding: 7px max(5px, env(safe-area-inset-right)) max(7px, env(safe-area-inset-bottom)) max(5px, env(safe-area-inset-left));
    }

    .mobile-nav-link,
    .mobile-nav-link span:not(.mobile-nav-count) {
        font-size: clamp(0.75rem, 3vw, 0.78rem) !important;
        line-height: 1.15;
    }

    .mobile-nav-link {
        min-height: 60px;
        gap: 4px;
        padding: 5px 1px;
    }

    .mobile-nav-link svg {
        width: 21px;
        height: 21px;
    }

    .visual-thumbs,
    .catalog-tabs,
    [data-ux-scroll-region] {
        scroll-behavior: smooth;
        scroll-padding-inline: 12px;
        overscroll-behavior-inline: contain;
        -webkit-overflow-scrolling: touch;
    }

    .visual-thumbs.is-scrollable-right,
    .catalog-tabs.is-scrollable-right,
    [data-ux-scroll-region].is-scrollable-right {
        box-shadow: inset -18px 0 16px -18px rgba(19, 48, 55, 0.62);
    }

    .visual-thumbs.is-scrollable-left,
    .catalog-tabs.is-scrollable-left,
    [data-ux-scroll-region].is-scrollable-left {
        box-shadow: inset 18px 0 16px -18px rgba(19, 48, 55, 0.62);
    }

    .school-thumb { scroll-snap-align: start; }

    .catalog-tabs button {
        min-height: 46px !important;
        padding-inline: 15px;
        font-size: 0.84rem;
    }

    .product-card-description,
    .product-card-description :is(summary, p),
    .product-kind,
    .render-mode-picker :is(legend, strong, span),
    .parent-support-thread :is(time, small),
    .history-card :is(time, small) {
        font-size: max(0.82rem, 13px) !important;
        line-height: 1.45;
    }

    .product-card-description summary {
        display: flex;
        align-items: center;
        cursor: pointer;
    }

    .pack-configurable-sheet span,
    .parent-support-status {
        font-size: max(0.75rem, 12px) !important;
    }

    .product-card-footer :is(button, .btn),
    .checkout-actions :is(button, .btn, a),
    .history-links a {
        min-height: 46px;
    }

    .assistant-dock {
        min-width: 48px;
        min-height: 48px;
    }

    body.has-mobile-parent-nav .assistant-shell {
        bottom: calc(var(--parent-mobile-safe-bottom) + 8px) !important;
        right: 12px !important;
        left: auto !important;
    }

    body.stage-builder.has-cart-items .assistant-shell,
    body.ux-cart-toast-visible .assistant-shell {
        bottom: calc(var(--parent-mobile-safe-bottom) + 70px) !important;
    }

    .cart-toast {
        right: 12px;
        bottom: calc(var(--parent-mobile-safe-bottom) + 10px);
        left: 12px;
        width: auto;
        max-width: none;
        font-size: 0.9rem;
    }

    .legal-footer-links a {
        min-height: 44px;
        display: inline-flex;
        align-items: center;
        padding-inline: 8px;
        font-size: 0.8rem;
    }
}

@media (max-width: 360px) {
    .mobile-nav-link svg {
        width: 20px;
        height: 20px;
    }
}

@media (prefers-reduced-motion: reduce) {
    .visual-thumbs,
    .catalog-tabs,
    [data-ux-scroll-region] { scroll-behavior: auto; }
}
