/* Shop only. Existing brand, 4px controls, native WooCommerce loop. Layer: modal 4. */
body.bubblemon-shop { background: #1c1c25; }
.bubblemon-shop .site-main { background: #1c1c25; }
.bubblemon-shop .bm-shop {
 --shop-bg:#1c1c25; --shop-text:#f5f5f7; --shop-muted:#b9b9c6; --shop-line:#454550;
 --shop-panel:#262630; --shop-image:#f5f5f7; --shop-accent:#c9ff32; --shop-on-accent:#161d20;
 width:min(1280px, calc(100% - 80px)); margin:auto; padding:24px 0 72px;
 color:var(--shop-text); font-family:var(--bm-body); color-scheme:dark;
}
.bubblemon-shop:has(.bm-shop[data-shop-theme="light"]),
.bubblemon-shop:has(.bm-shop[data-shop-theme="light"]) .site-main { background:#f5f5f7; }
.bubblemon-shop .bm-shop[data-shop-theme="light"] {
 --shop-bg:#f5f5f7; --shop-text:#1c1c25; --shop-muted:#555560; --shop-line:#cccdd4;
 --shop-panel:#e9e9ed; --shop-image:#f5f5f7; color-scheme:light;
}
.bm-shop [hidden] { display:none !important; }
.bm-shop-heading { margin:0 0 8px; }
.bm-shop-heading h1 { margin:0; font:800 36px/1.15 var(--bm-body); letter-spacing:-.035em; color:var(--shop-text); }
.bm-shop-heading p { margin:6px 0 0; color:var(--shop-muted); font-size:14px; line-height:1.6; }
.bm-shop-controls { display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:center; gap:12px; border-bottom:1px solid var(--shop-line); }
.bm-shop-series { display:flex; min-width:0; gap:26px; overflow-x:auto; scrollbar-width:thin; }
.bm-shop-series a { flex-shrink:0; display:flex; align-items:center; min-height:48px; padding:4px 3px; border-bottom:3px solid transparent; color:var(--shop-text); font-size:15px; font-weight:650; text-decoration:none; white-space:nowrap; }
.bm-shop-series a[aria-current] { color:var(--shop-accent); border-color:var(--shop-accent); }
.bm-shop[data-shop-theme="light"] .bm-shop-series a[aria-current] { color:var(--shop-text); }
.bm-shop-ordering { display:flex; align-items:center; gap:18px; }
.bm-shop .woocommerce-result-count { float:none; margin:0; color:var(--shop-muted); font-size:13px; line-height:1.6; }
.bm-shop .woocommerce-ordering { float:none; margin:0; }
.bm-shop .woocommerce-ordering select,
.bm-shop-filter-form select { display:block; width:100%; min-height:44px; padding:9px 12px; border:1px solid var(--shop-line); border-radius:4px; color:var(--shop-text); background:var(--shop-bg); font:500 14px/1.4 var(--bm-body); }
.bm-shop .woocommerce-ordering select { max-width:180px; }
.bm-shop-theme { min-height:44px; padding:8px 0; border:0; color:var(--shop-muted); background:transparent; font:500 12px/1.4 var(--bm-body); text-decoration:underline; text-underline-offset:4px; cursor:pointer; white-space:nowrap; }
.bm-shop-types { display:flex; gap:20px; align-items:center; flex-wrap:wrap; margin:4px 0 8px; }
.bm-shop-types a { display:flex; align-items:center; min-height:44px; padding:8px 3px; color:var(--shop-muted); font-size:14px; text-decoration:none; }
.bm-shop-types a[aria-current] { color:var(--shop-text); font-weight:750; text-decoration:underline; text-decoration-color:var(--shop-accent); text-underline-offset:8px; text-decoration-thickness:2px; }
.bm-shop-mobile-tools { display:none; }
.bm-shop-selection { display:flex; align-items:center; gap:18px; flex-wrap:wrap; margin:16px 0; font-size:13px; color:var(--shop-muted); }
.bm-shop-selection a, .bm-shop-clear { color:var(--shop-text); text-underline-offset:4px; }
.bm-shop-feedback { margin:0; font-size:14px; line-height:1.6; }
.bm-shop-feedback:not(:empty) { padding:12px 14px; margin:12px 0 18px; border:1px solid var(--shop-line); border-radius:4px; background:var(--shop-panel); }
.bm-shop-controls + .bm-shop-feedback { margin-top:20px; }
.bubblemon-shop .bm-shop ul.products { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:24px; padding:0; margin:8px 0 0; }
.bubblemon-shop .bm-shop ul.products::before,.bubblemon-shop .bm-shop ul.products::after { display:none; }
.bubblemon-shop .bm-shop ul.products li.product { display:flex; flex-direction:column; float:none; width:100% !important; min-width:0; margin:0 !important; padding:0; border:0; border-radius:0; background:transparent; box-shadow:none; }
.bubblemon-shop .bm-shop ul.products li.product > .woocommerce-LoopProduct-link { display:flex; flex:1; flex-direction:column; min-width:0; color:var(--shop-text); text-decoration:none; }
.bubblemon-shop .bm-shop ul.products li.product img { display:block; width:100%; height:auto; aspect-ratio:1.16; margin:0 0 10px; padding:0; border:1px solid #ddddE4; border-radius:4px; background:var(--shop-image); object-fit:contain; }
.bm-shop-card__series { display:block; min-height:22px; margin:0 0 3px; color:var(--shop-muted); font-size:13px; line-height:1.6; }
.bubblemon-shop .bm-shop ul.products li.product .woocommerce-loop-product__title { min-height:1.5em; margin:0 0 6px; padding:0; color:var(--shop-text); font:800 18px/1.5 var(--bm-body); letter-spacing:-.015em; word-break:normal; overflow-wrap:anywhere; }
.bubblemon-shop .bm-shop ul.products li.product .price { display:block; margin:auto 0 10px; color:var(--shop-text); font:750 18px/1.4 var(--bm-body); }
.bm-shop .price del { color:var(--shop-muted); opacity:1; font-size:14px; }
.bm-shop .price ins { background:transparent; text-decoration:none; }
.bubblemon-shop .bm-shop ul.products li.product .button {
 display:flex; justify-content:center; align-items:center; width:100%; min-height:44px; padding:10px 8px; margin:0;
 border:1px solid var(--shop-accent); border-radius:4px; color:var(--shop-on-accent); background:var(--shop-accent);
 font:750 14px/1.4 var(--bm-body); text-align:center; text-decoration:none; white-space:nowrap; box-shadow:none;
 transition:transform 160ms ease,opacity 160ms ease;
}
.bm-shop .button:hover { opacity:.9; }
.bm-shop .button:active { transform:translateY(1px); }
.bm-shop .button.loading { opacity:.65; }
.bubblemon-shop .bm-shop ul.products li.product .button.loading::after,
.bubblemon-shop .bm-shop ul.products li.product .button.added::after { display:none; }
.bm-shop .button[aria-disabled="true"] { border-color:var(--shop-line) !important; color:var(--shop-muted) !important; background:var(--shop-panel) !important; cursor:default; }
.bm-shop .added_to_cart { display:flex; align-items:center; justify-content:center; min-height:44px; padding:6px; color:var(--shop-text); font-size:13px; text-underline-offset:4px; }
.bm-shop .star-rating { margin:0 0 8px; color:var(--shop-accent); }
.bm-shop[data-shop-theme="light"] .star-rating { color:#496600; }
.bm-shop .onsale { background:var(--shop-accent); color:var(--shop-on-accent); border-radius:4px; }
.bm-shop .woocommerce-pagination { margin-top:40px; }
.bm-shop .woocommerce-pagination ul { display:inline-flex; gap:8px; margin:0; border:0; }
.bm-shop .woocommerce-pagination ul li { border:0; }
.bm-shop .woocommerce-pagination ul li a,.bm-shop .woocommerce-pagination ul li span { display:flex; align-items:center; justify-content:center; min-width:44px; min-height:44px; padding:10px; border:1px solid var(--shop-line); border-radius:4px; color:var(--shop-text); background:transparent; font:600 14px/1.4 var(--bm-body); }
.bm-shop .woocommerce-pagination ul li span.current,.bm-shop .woocommerce-pagination ul li a:hover { color:var(--shop-on-accent); border-color:var(--shop-accent); background:var(--shop-accent); }
.bm-shop .woocommerce-message,.bm-shop .woocommerce-error,.bm-shop .woocommerce-info { color:var(--shop-text); background:var(--shop-panel); border-top-color:var(--shop-accent); }
.bm-shop .woocommerce-message a,.bm-shop .woocommerce-error a,.bm-shop .woocommerce-info a { color:var(--shop-text); }
.bm-shop-empty { padding:64px 16px; text-align:center; }
.bm-shop-empty h2 { margin:0 0 12px; font-size:24px; }
.bm-shop-empty p { color:var(--shop-muted); }
.bm-shop-empty a { display:inline-flex; align-items:center; min-height:44px; margin-top:14px; padding:10px 18px; color:var(--shop-on-accent); background:var(--shop-accent); border-radius:4px; font-weight:700; text-decoration:none; }
.bm-shop-dialog { position:fixed; z-index:4; inset:0 0 0 auto; width:min(420px,100%); max-width:100%; height:100dvh; max-height:100dvh; margin:0; padding:24px; border:0; color:var(--shop-text); background:var(--shop-bg); overflow-y:auto; }
.bm-shop-dialog::backdrop { background:rgb(11 11 15 / .7); }
.bubblemon-shop:has(.bm-shop-dialog[open]) { overflow:hidden; }
.bm-shop-dialog-heading { display:flex; align-items:center; justify-content:space-between; gap:16px; margin-bottom:28px; }
.bm-shop-dialog-heading h2 { margin:0; font-size:24px; }
.bm-shop-close-filter { min-height:44px; padding:10px 12px; border:1px solid var(--shop-line); border-radius:4px; color:var(--shop-text); background:transparent; font:600 14px/1.4 var(--bm-body); cursor:pointer; }
.bm-shop-filter-form { display:grid; gap:12px; }
.bm-shop-filter-form label { color:var(--shop-text); font-size:14px; font-weight:650; }
.bm-shop-filter-form select { margin-bottom:12px; }
.bm-shop-filter-form select:disabled { color:var(--shop-muted); background:var(--shop-panel); }
.bm-shop-filter-apply { min-height:44px; padding:12px; border:0; border-radius:4px; color:var(--shop-on-accent); background:var(--shop-accent); font:750 14px/1.4 var(--bm-body); cursor:pointer; }
.bm-shop-clear { display:flex; align-items:center; justify-content:center; min-height:44px; font-size:14px; }
.bm-shop :is(a,button,select,summary):focus-visible { outline:3px solid var(--shop-accent); outline-offset:3px; }
.bm-shop[data-shop-theme="light"] :is(a,button,select,summary):focus-visible { outline-color:#496600; }
@media (768px <= width < 1024px) {
 .bubblemon-shop .bm-shop { width:calc(100% - 48px); }
 .bubblemon-shop .bm-shop ul.products { grid-template-columns:repeat(3,minmax(0,1fr)); gap:20px; }
 .bm-shop-controls { grid-template-columns:1fr; gap:0; padding-bottom:12px; }
 .bm-shop-ordering { justify-content:space-between; }
}
@media (width < 768px) {
 .bubblemon-shop .bm-shop { width:calc(100% - 32px); padding:24px 0 48px; }
 .bm-shop-heading { margin-bottom:10px; }
 .bm-shop-heading h1 { font-size:28px; }
 .bm-shop-heading p { margin-top:6px; font-size:14px; }
 .bm-shop-controls { grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px 12px; border:0; margin-bottom:16px; }
 .bm-shop-series { grid-column:1/-1; grid-row:1; gap:20px; border-bottom:1px solid var(--shop-line); }
 .bm-shop-series a { min-height:48px; font-size:14px; }
 .bm-shop-types { display:none; }
 .bm-shop-ordering { display:contents; }
 .bm-shop .woocommerce-result-count { grid-column:1/-1; grid-row:2; padding-right:78px; align-self:center; font-size:12px; }
 .bm-shop-theme { grid-column:2; grid-row:2; justify-self:end; min-height:36px; }
 .bm-shop .woocommerce-ordering { grid-column:2; grid-row:3; align-self:start; }
 .bm-shop .woocommerce-ordering select { max-width:none; padding-inline:8px; font-size:12px; }
 .bm-shop-mobile-tools { display:block; grid-column:1; grid-row:3; }
 .bm-shop-open-filter,.bm-shop-filter-fallback summary { display:flex; align-items:center; justify-content:center; width:100%; min-height:44px; padding:8px; border:1px solid var(--shop-line); border-radius:4px; color:var(--shop-text); background:transparent; font:600 13px/1.4 var(--bm-body); cursor:pointer; }
 .bm-shop-filter-fallback[open] .bm-shop-filter-form { width:calc(100vw - 32px); margin-top:16px; padding:16px; border:1px solid var(--shop-line); background:var(--shop-panel); }
 .bubblemon-shop .bm-shop ul.products { grid-template-columns:repeat(2,minmax(0,1fr)); gap:22px 12px; margin-top:16px; }
 .bubblemon-shop .bm-shop ul.products li.product img { aspect-ratio:1; margin-bottom:9px; }
 .bm-shop-card__series { min-height:38px; font-size:12px; }
 .bubblemon-shop .bm-shop ul.products li.product .woocommerce-loop-product__title { min-height:3em; font-size:14px; margin-bottom:6px; }
 .bubblemon-shop .bm-shop ul.products li.product .price { font-size:16px; margin-bottom:10px; }
 .bubblemon-shop .bm-shop ul.products li.product .button { font-size:12px; padding:10px 4px; }
 .bm-shop-selection { margin:8px 0 16px; gap:8px 16px; font-size:12px; }
 .bm-shop-empty { padding:40px 0; }
 .bm-shop-empty h2 { font-size:20px; }
}
@media (prefers-reduced-motion:reduce) { .bm-shop .button { transition:none; transform:none; } }
