.msh-shop-categories { color: inherit; font-size: 1rem; letter-spacing: 0; }
.msh-shop-categories ul { list-style: none; margin: 0; padding: 0; }
.msh-shop-categories > ul { display: grid; grid-template-columns: minmax(0, 1fr); gap: .25rem; align-items: start; }
.msh-shop-categories li { min-width: 0; margin: 0; padding: 0; }
.msh-shop-categories a, .msh-shop-categories summary { box-sizing: border-box; min-height: 44px; padding: .625rem .5rem; line-height: 1.4; overflow-wrap: anywhere; border-radius: 4px; }
.msh-shop-categories a { display: block; color: inherit; text-decoration: underline; text-underline-offset: .18em; }
.msh-shop-categories summary { display: list-item; cursor: pointer; font-weight: 600; list-style-position: inside; }
.msh-shop-categories summary::marker { color: #075f9e; }
.msh-shop-categories details[open] > summary { color: #075f9e; background: #edf3f6; }
.msh-shop-categories details > ul { margin-inline-start: .5rem; padding-inline-start: .5rem; border-inline-start: 1px solid currentColor; }
.msh-shop-categories a:hover, .msh-shop-categories summary:hover { background: #edf2f0; color: #17251e; }
.msh-shop-categories a:focus-visible, .msh-shop-categories summary:focus-visible { outline: 2px solid currentColor; outline-offset: 2px; }
.msh-shop-categories a[aria-current="page"] { font-weight: 700; text-decoration-thickness: 2px; }
.msh-shop-categories .msh-category-count { white-space: nowrap; font-variant-numeric: tabular-nums; }
body nav.msh-shop-categories ul { padding-left: 0; }
body nav.msh-shop-categories li { margin: 0 !important; }
body nav.msh-shop-categories li a::before { display: none !important; content: none !important; }
body nav.msh-shop-categories li a { text-decoration: none; padding: .625rem .75rem; border-bottom: 1px solid #dde5e9; }
body nav.msh-shop-categories li a[aria-current="page"] { color: #075f9e; border-bottom-color: #075f9e; }
body nav.msh-shop-categories .msh-category-parent > a { font-size: .875rem; color: #075f9e; border-bottom: 0; }
body nav.msh-shop-categories li.msh-has-children { position: relative; }
body nav.msh-shop-categories li.msh-has-children > a { padding-inline-end: 2.75rem; }
body nav.msh-shop-categories li.msh-has-children > details > summary {
    position: absolute;
    inset-inline-end: 0;
    top: 0;
    display: flex;
    width: 42px;
    height: 44px;
    min-height: 44px;
    align-items: center;
    justify-content: center;
    padding: 0;
    overflow: hidden;
    border-bottom: 1px solid #dde5e9;
    border-radius: 0;
    font-size: 0;
    list-style: none;
}
body nav.msh-shop-categories li.msh-has-children > details > summary::marker { content: ''; }
body nav.msh-shop-categories li.msh-has-children > details > summary::-webkit-details-marker { display: none; }
body nav.msh-shop-categories li.msh-has-children > details > summary::after { content: '\25B8'; font-size: 1.125rem; }
body nav.msh-shop-categories li.msh-has-children > details[open] > summary::after { content: '\25BE'; }
body .mits-store-toolbar .mits-catalog-links { display: none !important; }
.msh-category-panel { margin: 0; border: 0; }
.msh-category-panel > summary { display: none; }
body.woocommerce .list_products .msh-filter-panel {
    clear: both;
    margin: 0 0 1rem;
    border-top: 1px solid #dce6eb;
    border-bottom: 1px solid #dce6eb;
    background: #f4f7f8;
}
body .msh-filter-panel > summary,
body .msh-category-panel > summary {
    box-sizing: border-box;
    min-height: 44px;
    padding: .75rem;
    cursor: pointer;
    font-size: 1rem;
    font-weight: 600;
    line-height: 1.3;
    color: #17394a;
    list-style-position: inside;
}
.msh-filter-count { font-weight: 400; font-size: .875rem; }
body.woocommerce .list_products form.msh-shop-filters {
    display: grid !important;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    float: none !important;
    box-sizing: border-box;
    width: 100% !important;
    max-width: none !important;
    clear: both;
    align-items: end;
    gap: .625rem;
    margin: 0;
    padding: .75rem;
    border: 0;
    background: #f4f7f8;
}
.woocommerce .msh-shop-filters label {
    display: grid;
    min-width: 0;
    gap: .25rem;
    margin: 0;
    color: #29424e;
    font-size: .8125rem;
    font-weight: 600;
    line-height: 1.25;
}
.woocommerce .msh-filter-actions { display: flex; gap: .5rem; grid-column: 1 / -1; }
.woocommerce .msh-shop-filters input,
.woocommerce .msh-shop-filters select {
    box-sizing: border-box;
    width: 100%;
    min-width: 0;
    height: 42px;
    margin: 0;
    padding: .4rem .6rem;
    border: 1px solid #bbccd5;
    border-radius: 4px;
    background: #fff;
    color: #17394a;
    font: inherit;
    font-size: .9375rem;
}
.woocommerce .msh-shop-filters .button {
    box-sizing: border-box;
    display: inline-flex;
    min-height: 42px;
    align-items: center;
    justify-content: center;
    margin: 0;
    padding: .55rem .9rem;
    border-radius: 4px;
    font-size: .875rem;
    line-height: 1.2;
    white-space: nowrap;
}
.woocommerce .msh-shop-filters a.button { background: transparent; color: #075f9e; border: 1px solid #b7cbd7; }
.woocommerce .msh-shop-filters :is(input, select, button, a):focus-visible { outline: 2px solid #075f9e; outline-offset: 2px; }
/* Keep the catalog readable beside the category sidebar; hero layouts stay unchanged. */
@media (min-width: 768px) and (max-width: 1023px) {
    body .mits-curated-grid .woocommerce.msh-shop-landing > ul.products,
    body.woocommerce.sidebar_left .list_products ul.products {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    }
}
@media (max-width: 767px) {
    body .msh-category-panel > summary { display: list-item; }
    body .widget_text:has(.msh-category-panel) > .widget_title,
    body .mits-store-categories:has(.msh-category-panel) > h3 { display: none !important; }
    body .msh-category-panel { border-block: 1px solid #dce6eb; }
    body .msh-category-panel[open] > nav { max-height: 55vh; overflow-y: auto; }
    body .sidebar:has(.msh-category-panel),
    body .sidebar .widget_text:has(.msh-category-panel) { margin-top: 0 !important; padding-top: 0 !important; padding-bottom: 0 !important; }
    .msh-shop-categories details > ul { margin-inline-start: 0; padding-inline-start: .25rem; }
    body.woocommerce .list_products form.msh-shop-filters { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .625rem; padding: .75rem; }
    .woocommerce .msh-shop-filters > .msh-filter-stock { grid-column: 1 / -1; }
    .woocommerce .msh-filter-actions { flex-wrap: wrap; }
    .woocommerce .msh-shop-filters .button { flex: 1 1 auto; }
}

/* Category price controls. Native number inputs and submit remain available. */
.msh-price-range{grid-column:1/-1;min-width:0;border:1px solid #d8dfe6;padding:12px;border-radius:4px;display:flex;flex-wrap:wrap;gap:12px}
.msh-price-range legend{font-weight:600;padding:0 4px}.msh-price-range label{flex:1 1 180px;min-width:0}
.msh-price-range input[type=range]{display:block;width:100%;min-height:44px;accent-color:#0865a5}
.msh-price-range output{flex-basis:100%;font-variant-numeric:tabular-nums}
.msh-price-range input:focus-visible{outline:2px solid #0865a5;outline-offset:3px}
/* Server-scoped unfiltered main shop only; category/search/filter layouts stay native.
   Higher specificity + !important coexist with legacy WPLayout80008's three-column raw rule;
   migrate that old layout through its normal editor separately, without widening this override. */
body.woocommerce.msh-shop-curated-archive .list_products>ul.products.columns-2{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:24px}
body.woocommerce.msh-shop-curated-archive .list_products>ul.products.columns-2::before,body.woocommerce.msh-shop-curated-archive .list_products>ul.products.columns-2::after{display:none!important}
body.woocommerce.msh-shop-curated-archive .list_products>ul.products.columns-2 li.product{width:auto!important;margin:0!important;min-width:0;overflow-wrap:anywhere}
@media(max-width:479px){body.woocommerce.msh-shop-curated-archive .list_products>ul.products.columns-2{grid-template-columns:minmax(0,1fr)!important}}
.msh-price-range[hidden]{display:none}

/* Server adds msh-shop-featured-page only on the unfiltered
   main shop's first page. Grid/pagination belong to the separate query patch.
   Native full product-name text remains in the existing link and product page. */
body.woocommerce.msh-shop-featured-page .list_products>ul.products>li.product .woocommerce-loop-product__title{line-height:1.45!important;min-height:4.35em!important;max-height:4.35em!important}
body.woocommerce.msh-shop-featured-page .list_products>ul.products>li.product .woocommerce-loop-product__title>a{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3;overflow:hidden;max-height:4.35em}
body.woocommerce.msh-shop-featured-page .list_products>ul.products>li.product .woocommerce-loop-product__title>a:focus-visible{outline:2px solid #075f9e;outline-offset:2px}