.shop-navigation { border-top: 1px solid #eee; }
.shop-navigation[hidden] { display: none; }
.shop-navigation .wrap { display: flex; justify-content: flex-end; flex-wrap: wrap; gap: 8px 24px; align-items: center; min-height: 46px; padding-block: 8px; }
.shop-navigation a { display: inline-flex; gap: 8px; align-items: center; font-size: 14px; }
.shop-navigation svg { width: 18px; height: 18px; }
[data-cart-count] { min-width: 20px; text-align: center; font-variant-numeric: tabular-nums; }
[data-cart-total] { min-width: 80px; text-align: right; white-space: nowrap; font-weight: 600; font-variant-numeric: tabular-nums; padding-left: 12px; border-left: 1px solid #ddd; }
.shop-add { min-height: 40px; padding: 8px 14px; }
.shop-buy { width: 176px; max-width: 100%; }
.shop-buy .shop-add { width: 100%; height: 40px; padding: 8px; gap: 6px; font-size: 15px; white-space: nowrap; border-radius: 6px; }
.shop-buy .shop-add svg { width: 18px; height: 18px; flex-shrink: 0; }
.shop-buy .shop-add[hidden], .shop-card-quantity[hidden] { display: none; }
.shop-card-quantity { display: grid; grid-template-columns: 40px minmax(0, 1fr) 40px; height: 40px; border: 1px solid #79b957; border-radius: 6px; align-items: center; background: #edf5e9; }
.shop-card-quantity button { display: grid; place-items: center; height: 38px; width: 38px; border: 0; background: transparent; color: #366f23; cursor: pointer; border-radius: 4px; }
.shop-card-quantity button:hover { background: #dcebd3; }
.shop-card-quantity button:focus-visible { outline: 2px solid #366f23; }
.shop-card-quantity button:disabled { opacity: .5; cursor: wait; }
.shop-card-quantity svg { width: 18px; height: 18px; }
.shop-card-quantity span { text-align: center; font-size: 14px; font-weight: 600; white-space: nowrap; font-variant-numeric: tabular-nums; }
.shop-buy .shop-add-status { min-height: 20px; }
.shop-add-status:empty { visibility: hidden; }
.shop-cart-tools { display: flex; justify-content: flex-end; margin-bottom: 8px; }
.shop-cart-tools .button { font-size: 14px; border-radius: 6px; }
.shop-add-status { min-height: 38px; font-size: 13px; line-height: 1.4; margin: 8px 0 0; overflow-wrap: anywhere; }
.shop-variant { display: grid; gap: 8px; margin: 16px 0; }
.shop-page, .shop-checkout, .shop-account { padding-bottom: 60px; }
.shop-page h2, .shop-checkout h2 { font-size: 22px; }
.shop-item { display: grid; grid-template-columns: 80px minmax(0,1fr) 142px 120px 44px; gap: 20px; align-items: center; border-bottom: 1px solid #ddd; padding: 20px 0; }
.shop-item h2 { font-size: 17px; line-height: 1.4; margin: 0 0 6px; }
.shop-item p { font-size: 13px; color: #666; margin-bottom: 4px; }
.shop-item-name { min-width: 0; overflow-wrap: anywhere; }
.shop-item-name span { font-size: 14px; }
.shop-item-image { width: 80px; height: 90px; object-fit: contain; background: #f5f5f5; }
.shop-item-total { text-align: right; white-space: nowrap; }
.shop-quantity { display: grid; grid-template-columns: 38px 50px 38px; align-items: center; gap: 4px; }
.shop-quantity .icon-button { width: 38px; height: 38px; }
.shop-quantity input { width: 50px; height: 38px; text-align: center; border: 1px solid #ccc; border-radius: 4px; padding: 0 2px; appearance: textfield; }
.shop-quantity input::-webkit-inner-spin-button { appearance: none; }
.shop-item-qty { text-align: center; }
.shop-summary { display: flex; align-items: center; justify-content: space-between; gap: 20px; flex-wrap: wrap; padding: 24px 0; }
.shop-summary strong { font-size: 22px; }
.shop-summary span strong { margin-left: 16px; }
.shop-notice { color: #666; font-size: 14px; max-width: 600px; }
.shop-error { color: #a52c2c; overflow-wrap: anywhere; }
.shop-error:empty { display: none; }
.shop-checkout { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1fr); gap: 64px; align-items: start; }
.shop-form { display: grid; gap: 18px; min-width: 0; }
.shop-form label:not(.shop-consent) { display: grid; gap: 8px; }
.shop-form input:not([type="checkbox"]), .shop-form select, .shop-form textarea, .shop-variant select { width: 100%; min-width: 0; border: 1px solid #bbb; border-radius: 4px; padding: 12px; font: inherit; background: white; color: #333; }
.shop-form textarea { resize: vertical; }
.shop-consent { display: flex; align-items: flex-start; gap: 10px; font-size: 13px; line-height: 1.5; }
.shop-consent input { flex-shrink: 0; margin-top: 3px; width: 17px; height: 17px; }
.shop-consent a { text-decoration: underline; }
.shop-form .button { justify-self: start; max-width: 100%; }
.shop-checkout-summary { min-width: 0; border-left: 1px solid #ddd; padding-left: 32px; }
.shop-checkout-summary ul { list-style: none; padding: 0; margin: 0; }
.shop-checkout-summary li { display: flex; justify-content: space-between; gap: 18px; border-bottom: 1px solid #ddd; padding: 14px 0; font-size: 14px; }
.shop-checkout-summary li span { min-width: 0; overflow-wrap: anywhere; }
.shop-checkout-summary li strong { flex-shrink: 0; }
.shop-account-link { display: flex; margin-top: 18px; }
.shop-account { max-width: 480px; }
.shop-auth-tabs { display: flex; border-bottom: 1px solid #ddd; margin-bottom: 28px; }
.shop-auth-tabs button { flex: 1; padding: 12px; border: 0; border-bottom: 3px solid transparent; background: transparent; color: #444; }
.shop-auth-tabs button[aria-selected="true"] { border-bottom-color: #5d9e45; color: #366f23; }
.shop-profile { display: flex; justify-content: space-between; align-items: start; gap: 20px; padding-bottom: 24px; }
.shop-profile p { overflow-wrap: anywhere; }
.shop-secondary { background: #f2f2f2; color: #333; }
.shop-order-row { display: grid; grid-template-columns: 100px 180px minmax(0,1fr) 120px 24px; gap: 20px; align-items: center; padding: 20px 0; border-bottom: 1px solid #ddd; font-size: 14px; }
.shop-order-row:hover { background: #f7f7f7; }
.shop-order-row svg { width: 20px; }
.shop-history-pagination { display: flex; justify-content: center; gap: 20px; align-items: center; margin-top: 24px; }
.shop-order-meta, .shop-order-links { display: flex; gap: 24px; flex-wrap: wrap; margin-bottom: 24px; }
.shop-empty { text-align: center; }
.shop-empty h2 { margin-top: 24px; }
.shop-page button:disabled, .shop-form button:disabled, .shop-add:disabled { opacity: .5; cursor: default; }
.shop-page a[aria-disabled="true"] { opacity: .5; cursor: wait; }
@media(max-width: 800px) {
  .shop-checkout { grid-template-columns: minmax(0,1fr); gap: 32px; }
  .shop-checkout-summary { border-left: 0; border-top: 1px solid #ddd; padding: 24px 0 0; }
  .shop-item { grid-template-columns: 70px minmax(0,1fr) 44px; gap: 12px; }
  .shop-item-image { width: 70px; height: 80px; grid-row: span 2; }
  .shop-item-name { grid-column: 2; }
  .shop-quantity { grid-column: 2; grid-row: 2; }
  .shop-item-total { grid-column: 2; grid-row: 3; text-align: left; }
  .shop-item > button { grid-column: 3; grid-row: 1; }
  .shop-item-qty { grid-column: 2; text-align: left; }
  .shop-order-row { grid-template-columns: minmax(0,1fr) minmax(0,1fr) 20px; gap: 12px; }
  .shop-order-row svg { grid-column: 3; grid-row: 1 / span 2; }
}
@media(max-width: 380px) {
  .shop-navigation .wrap { gap: 8px 14px; }
  .shop-navigation a { font-size: 13px; gap: 5px; }
  .shop-profile { flex-wrap: wrap; }
  .shop-summary .button { width: 100%; }
}
