.shop-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 270px), 1fr)); gap: 18px; margin: 18px 0; align-items: start; }
.shop-product { display: flex; flex-direction: column; min-width: 0; padding: 18px; border: 1px solid var(--c-border); border-radius: var(--radius); background: #fff; overflow-wrap: anywhere; box-shadow: 0 4px 18px rgba(13, 27, 42, .035); }
.shop-product h2 { font-size: 1.08rem; line-height: 1.4; margin: 10px 0; }
.shop-image { width: 100%; height: 150px; object-fit: contain; }
.shop-gallery-main { display: block; width: 100%; padding: 12px; border: 0; border-radius: 10px; background: #f7f9fc; cursor: pointer; }
.shop-gallery-main:disabled { cursor: default; }
.shop-thumbnails { display: flex; gap: 6px; overflow-x: auto; padding: 8px 2px 4px; }
.shop-thumbnails button { flex: 0 0 40px; padding: 3px; border: 1px solid var(--c-border); border-radius: 6px; background: #fff; cursor: pointer; }
.shop-thumbnails button[aria-pressed="true"] { border-color: var(--c-primary); box-shadow: 0 0 0 1px var(--c-primary); }
.shop-thumbnails img { width: 32px; height: 32px; object-fit: contain; }
.shop-image-placeholder { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 8px; height: 174px; color: var(--c-muted); background: #f7f9fc; border-radius: 10px; font-size: .75rem; }
.shop-gallery-field { min-width: 0; margin: 12px 0; padding: 10px; border: 1px solid var(--c-border); border-radius: 6px; }
.shop-edit-gallery { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 150px), 1fr)); gap: 12px; }
.shop-gallery-item { min-width: 0; }
.shop-gallery-item img { width: 100%; height: 100px; object-fit: contain; }
.shop-description { white-space: pre-line; }
.shop-description-preview { display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 3; line-clamp: 3; overflow: hidden; max-height: 4.8em; margin: 0 0 8px; font-size: .86rem; color: var(--c-muted); }
.shop-details { font-size: .86rem; margin-bottom: 16px; }
.shop-details summary { cursor: pointer; color: var(--c-primary); font-weight: 600; }
.shop-details .shop-description { margin: 10px 0 0; }
.shop-stock { align-self: flex-start; display: inline-flex; align-items: center; gap: 6px; margin-top: 14px; padding: 3px 8px; border-radius: 5px; color: #126b50; background: #eaf7f1; font-size: .73rem; font-weight: 600; }
.shop-stock::before { content: ""; width: 6px; height: 6px; flex-shrink: 0; border-radius: 50%; background: currentColor; }
.shop-stock-unavailable { color: #6b5660; background: #f3edf0; }
.shop-stock-order { color: #865100; background: #fff5df; }
.shop-product-bottom { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 12px; margin-top: auto; padding-top: 14px; border-top: 1px solid #edf1f6; }
.shop-product-bottom .shop-price { margin: 0; font-size: 1.45rem; letter-spacing: -.03em; }
.shop-price span { display: block; color: var(--c-muted); font-size: .68rem; font-weight: 400; letter-spacing: 0; }
.shop-product-bottom .btn { border-radius: 9px; font-size: .85rem; padding: 10px 14px; }
.shop-price { font-size: 1.25rem; font-weight: 700; margin: 12px 0; }
.shop-cart { margin: 24px 0; scroll-margin-top: 100px; }
.shop-quantity { width: 64px; padding: 8px; font: inherit; border: 1px solid var(--c-border); border-radius: 8px; background: #fbfdff; }
.shop-admin-grid { display: grid; grid-template-columns: minmax(0, 1fr); gap: 16px; }
.shop-admin-products { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 300px), 1fr)); gap: 12px; }
.shop-admin-product { min-width: 0; padding: 14px; border: 1px solid var(--c-border); border-radius: 8px; background: #fff; overflow-wrap: anywhere; }
.shop-admin-product > div { display: flex; justify-content: space-between; align-items: start; flex-wrap: wrap; gap: 8px 16px; }
.shop-admin-product h3 { flex: 1 1 200px; min-width: 0; font-size: 1rem; margin: 0; }
.shop-admin-product strong { white-space: nowrap; color: var(--c-primary); }
.shop-admin-product p { margin: 10px 0; font-size: .85rem; color: var(--c-muted); }
.shop-filters, .shop-category-form { display: flex; flex-wrap: wrap; align-items: end; gap: 12px; margin: 18px 0; padding: 16px; background: #fff; border: 1px solid var(--c-border); border-radius: 10px; }
.shop-filters .field, .shop-category-form .field { flex: 1 1 220px; min-width: 0; margin: 0; }
.shop-filters > a { align-self: center; font-size: .85rem; }
.shop-filters .btn, .shop-category-form .btn { min-height: 40px; }
.shop-pagination { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 12px; margin: 20px 0; color: var(--c-muted); font-size: .85rem; }
.shop-category-item { padding: 14px 0; border-top: 1px solid var(--c-border); }
.shop-category-item .shop-category-form { padding: 0; margin: 10px 0; border: 0; background: transparent; }
.shop-category-delete { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; }
.shop-category-delete .consent { flex: 1 1 260px; min-width: 0; margin: 0; }
.shop-category-delete input { flex-shrink: 0; }
.shop-product-category { color: var(--c-muted); font-size: .75rem; margin-bottom: 10px; }
#catalog, #products, #categories { scroll-margin-top: 140px; }
.compact-page .shop-product-editor { max-width: none; min-width: 0; margin: 0; scroll-margin-top: 100px; }
.shop-order { margin: 16px 0; padding: 16px; border: 1px solid var(--c-border); border-radius: 8px; overflow-wrap: anywhere; }
.shop-order summary { cursor: pointer; font-weight: 600; }
.shop-order .contact-form { margin-top: 12px; }
@media (max-width: 700px) {
  .shop-admin-grid { grid-template-columns: minmax(0, 1fr); }
}
.shop-page .header-inner { height: auto; min-height: 68px; flex-wrap: wrap; gap: 12px 24px; padding-top: 12px; padding-bottom: 12px; }
.shop-page { display: flex; flex-direction: column; min-height: 100vh; background: #f5f8fc; }
.shop-page .account-nav { align-items: center; gap: 20px; font-size: .88rem; }
.shop-page .account-nav a { text-decoration: none; color: var(--c-muted); font-weight: 600; }
.shop-page .account-nav a:hover, .shop-page .account-nav a[aria-current="page"] { color: var(--c-primary); }
.shop-page .account-nav .shop-cart-link { display: inline-flex; align-items: center; gap: 8px; padding: 9px 12px; color: var(--c-primary); background: #eaf3fc; border: 1px solid #d5e7fa; border-radius: 10px; }
.shop-cart-count { display: inline-flex; align-items: center; justify-content: center; min-width: 22px; height: 22px; padding: 0 5px; border-radius: 6px; background: var(--c-primary); color: #fff; font-size: .75rem; }
.shop-main { flex: 1; padding-top: 28px; padding-bottom: 40px; }
.shop-intro { display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: 20px; padding: 26px; margin-bottom: 26px; border: 1px solid #dce8f4; border-radius: 16px; background: linear-gradient(115deg, #edf5fe, #f0faf7); }
.shop-intro .eyebrow { font-size: .7rem; margin: 0 0 8px; }
.shop-intro h1 { font-size: clamp(1.5rem, 3vw, 2.1rem); margin-bottom: 8px; }
.shop-intro p:last-child { max-width: 620px; margin: 0; color: var(--c-muted); font-size: .9rem; }
.shop-benefit { padding-left: 18px; border-left: 3px solid var(--c-accent); font-size: .8rem; }
.shop-benefit strong, .shop-benefit span { display: block; }
.shop-benefit span { color: var(--c-muted); }
.shop-catalog-heading { display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: 8px; }
.shop-catalog-heading h2, .shop-panel h2 { font-size: 1.1rem; margin: 0; }
.shop-catalog-heading > span { color: var(--c-muted); font-size: .8rem; }
.shop-catalog-note { margin: 20px 0 0; color: var(--c-muted); font-size: .8rem; }
.shop-panel { min-width: 0; padding: 22px; border: 1px solid var(--c-border); border-radius: var(--radius); background: #fff; }
.shop-panel h2 { margin-bottom: 18px; }
.shop-empty { padding: 24px 0; text-align: center; color: var(--c-muted); }
.shop-checkout-layout { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr); gap: 22px; align-items: start; }
.shop-cart-table th, .shop-cart-table td { padding: 12px 10px; }
.shop-cart-table th:first-child, .shop-cart-table td:first-child { white-space: normal; overflow-wrap: anywhere; }
.shop-cart-table td:first-child { font-weight: 600; font-size: .85rem; }
.shop-cart-table th:last-child, .shop-cart-table td:last-child { text-align: right; }
.shop-unit-price { display: block; margin-top: 4px; color: var(--c-muted); font-size: .75rem; font-weight: 400; }
.shop-total { display: flex; justify-content: space-between; align-items: center; gap: 12px; margin: 18px 0 8px; }
.shop-total strong { font-size: 1.5rem; color: var(--c-primary); }
.shop-help { color: var(--c-muted); font-size: .8rem; }
.shop-clear { margin: 12px 0 0 12px; padding: 6px 0; border: 0; background: transparent; color: var(--c-muted); text-decoration: underline; font: inherit; font-size: .8rem; cursor: pointer; }
.shop-checkout .contact-form { max-width: none; padding: 0; box-shadow: none; border-radius: 0; }
.shop-checkout .field { margin-bottom: 12px; }
.shop-checkout .field input, .shop-checkout .field select, .shop-checkout .field textarea { padding: 9px 12px; }
.shop-checkout .field textarea { min-height: 72px; }
.shop-checkout .contact-form > p, .shop-checkout .consent { font-size: .8rem; }
.shop-checkout .btn { width: 100%; border-radius: 10px; font-size: .87rem; }
.shop-page .site-footer { padding: 22px 0; margin-top: auto; font-size: .8rem; }
.shop-page .site-footer p { margin: 0; }
@media (max-width: 850px) {
  .shop-checkout-layout { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 500px) {
  .shop-page .header-inner { gap: 10px; }
  .shop-page .account-nav { width: 100%; justify-content: space-between; gap: 8px; font-size: .75rem; }
  .shop-page .account-nav .shop-cart-link { gap: 5px; padding: 7px 8px; }
  .shop-main { padding-top: 18px; }
  .shop-intro { padding: 20px; margin-bottom: 20px; }
  .shop-panel { padding: 16px; }
  .shop-cart-table th, .shop-cart-table td { padding: 10px 6px; }
  .shop-cart-table td:last-child { font-size: .8rem; }
  .shop-quantity { width: 54px; }
}
