
/* 1.18.3: break out of theme content-width constraints on TPE-controlled shop routes.
 * This is deliberately scoped to the TPE main element/body class, so parent-theme
 * files are never edited and normal site pages remain untouched.
 */
body.tpe-shop-route main#primary.site-main.tpe-shop-page,
body.tpe-shop-route main#primary.site-main.tpe-elementor-shop-page,
body.tpe-shop-route #primary.tpe-shop-page,
body.tpe-shop-route #primary.tpe-elementor-shop-page{
    width:100%!important;
    max-width:none!important;
    min-width:0!important;
    margin-left:0!important;
    margin-right:0!important;
    padding-left:0!important;
    padding-right:0!important;
    float:none!important;
}
body.tpe-shop-route .tpe-shop-page > .tpe-shop-shell{
    width:calc(100% - 30px)!important;
    max-width:var(--tpe-shop-max)!important;
    margin-left:auto!important;
    margin-right:auto!important;
}
@media(max-width:767px){
    body.tpe-shop-route .tpe-shop-page > .tpe-shop-shell{
        width:calc(100% - 24px)!important;
    }
}

/* Truck Parts Elements — theme update compatibility shield.
 * Scope is deliberately limited to TPE shop wrappers. No parent-theme file is overridden.
 */
.tpe-shop-route .tpe-shop-page,
.tpe-shop-route .tpe-elementor-shop-page{
    width:100%;max-width:none;margin:0;padding-left:0;padding-right:0;box-sizing:border-box;
}
.tpe-shop-route .tpe-shop-page *,
.tpe-shop-route .tpe-shop-page *::before,
.tpe-shop-route .tpe-shop-page *::after,
.tpe-shop-route .tpe-elementor-shop-page *,
.tpe-shop-route .tpe-elementor-shop-page *::before,
.tpe-shop-route .tpe-elementor-shop-page *::after{box-sizing:border-box}
.tpe-shop-route :where(.tpe-shop-page,.tpe-elementor-shop-page) img{max-width:100%;height:auto;border:0;box-shadow:none}
.tpe-shop-route :where(.tpe-shop-page,.tpe-elementor-shop-page) a{text-underline-offset:2px}
.tpe-shop-route :where(.tpe-shop-page,.tpe-elementor-shop-page) button,
.tpe-shop-route :where(.tpe-shop-page,.tpe-elementor-shop-page) input,
.tpe-shop-route :where(.tpe-shop-page,.tpe-elementor-shop-page) select{
    font-family:inherit;text-transform:none;letter-spacing:normal;box-shadow:none;
}
.tpe-shop-route :where(.tpe-shop-page,.tpe-elementor-shop-page) .tpe-shop-card,
.tpe-shop-route :where(.tpe-shop-page,.tpe-elementor-shop-page) .tpe-shop-sidebar,
.tpe-shop-route :where(.tpe-shop-page,.tpe-elementor-shop-page) .tpe-shop-toolbar{
    float:none;clear:none;
}
.tpe-shop-route :where(.tpe-shop-page,.tpe-elementor-shop-page) .tpe-shop-grid{
    list-style:none;margin-left:0;margin-right:0;padding-left:0;padding-right:0;
}
.tpe-shop-route :where(.tpe-shop-page,.tpe-elementor-shop-page) .tpe-shop-card h2,
.tpe-shop-route :where(.tpe-shop-page,.tpe-elementor-shop-page) .tpe-shop-card p{
    text-transform:none;letter-spacing:normal;
}
.tpe-shop-route :where(.tpe-shop-page,.tpe-elementor-shop-page) .tpe-shop-add.button,
.tpe-shop-route :where(.tpe-shop-page,.tpe-elementor-shop-page) .tpe-apply-filters,
.tpe-shop-route :where(.tpe-shop-page,.tpe-elementor-shop-page) .tpe-shop-builder-filter-toggle{
    -webkit-appearance:none;appearance:none;text-shadow:none;
}
/* Prevent common theme WooCommerce archive styles from forcing list-item widths/margins onto TPE cards. */
.tpe-shop-route :where(.tpe-shop-page,.tpe-elementor-shop-page) .tpe-shop-grid > .tpe-shop-card{
    width:auto!important;margin:0!important;
}
