.shop-tools { display:flex; flex-wrap:wrap; justify-content:space-between; align-items:center; gap:20px; margin-bottom:28px; }
.shop-account-link { display:inline-block; color:var(--primary-color); font-weight:700; text-decoration:underline; text-underline-offset:4px; }
.shop-search { display:flex; flex:1; max-width:440px; gap:8px; align-items:center; }
.shop-search input { width:100%; padding:12px 16px; border:1px solid #d2d7ce; border-radius:8px; background:white; }
.shop-status { padding:28px 0; color:#50594f; }
.shop-status button { margin-top:12px; }
.product-img img { display:block; width:100%; height:100%; object-fit:contain; background:#f6f6f2; }
.shop-search > span { flex-shrink:0; white-space:nowrap; }
.shop-filters { flex-wrap:wrap; gap:10px; }
.shop-filters .filter-btn { white-space:nowrap; padding:10px 16px; }
.product-card { display:flex; flex-direction:column; }
.product-card > a { flex:1; }
.product-card .product-title { font-size:1.2rem; line-height:1.5; margin:0 0 10px; text-align:left; }
.product-card .product-title::after { display:none; }
.product-card .product-price small { font-size:.75rem; font-weight:400; }
.gallery-main { display:block; width:100%; border:0; background:#f6f6f2; padding:0; cursor:zoom-in; }
.shop-detail-img .gallery-main img { height:480px; object-fit:contain; box-shadow:none; }
.gallery-thumbnails { display:flex; gap:10px; overflow-x:auto; padding:12px 0; }
.gallery-thumbnails button { width:72px; height:72px; flex-shrink:0; border:2px solid transparent; background:#f6f6f2; border-radius:4px; padding:3px; }
.gallery-thumbnails button[aria-pressed="true"] { border-color:var(--primary-color); }
.gallery-thumbnails img { width:100%; height:100%; object-fit:contain; }
.gallery-dialog { border:0; border-radius:12px; max-width:92vw; max-height:90vh; padding:20px; }
.gallery-dialog::backdrop { background:rgba(0,0,0,.7); }
.gallery-dialog img { display:block; max-width:84vw; max-height:75vh; object-fit:contain; }
.gallery-dialog button { display:block; margin:0 0 10px auto; }
.product-options label { display:block; margin:16px 0; font-weight:600; }
.product-options input,.product-options select,.delivery-options select { display:block; width:100%; padding:12px; border:1px solid #ccd0c8; border-radius:6px; margin-top:6px; background:white; }
.auth-modes { display:flex; gap:24px; margin:24px 0; }
.auth-modes label { display:flex; align-items:center; gap:8px; }
.auth-modes input { width:auto; }
.account-email-form { text-align:left; }
.account-email-form button[type="submit"] { width:100%; }
.account-link-button { border:0; background:none; color:var(--primary-color); text-decoration:underline; padding:12px 0; cursor:pointer; }
.account-consent { margin:18px 0; }
.account-consent input { width:auto; }
.verification-panel { padding:24px; background:#f5f5ec; border:1px solid #dddccb; border-radius:8px; }
.verification-panel button { margin:12px 12px 0 0; }
.shop-notice { padding:16px; background:#f5f5ec; border-radius:8px; margin:18px 0; line-height:1.7; }
.checkout-message { color:#a12727; padding:12px 0; }
.summary-fee { display:flex; justify-content:space-between; margin:14px 0; }
.checkout-terms { display:flex; gap:10px; align-items:flex-start; margin-top:20px; }
.checkout-terms input { width:auto; margin-top:5px; }
[hidden] { display:none !important; }
button:disabled { opacity:.55; cursor:not-allowed; }
:focus-visible { outline:3px solid #788f5b; outline-offset:3px; }
@media(max-width:600px) { .shop-detail-img .gallery-main img { height:330px; } .shop-tools { align-items:flex-start; } .shop-search { flex-basis:100%; } #form-profile > div:first-child { grid-template-columns:1fr !important; } .checkout-member-box { flex-wrap:wrap; } }
@media(max-width:600px) { .auth-container { padding:24px; } .auth-intro h1 { font-size:1.5rem; } }
@media(max-width:600px) { .shop-filters { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); } }

/* Keep cart rows compact, with the product image visible beside its details. */
.order-summary { padding:24px; }
.order-summary > h2 { font-size:1.25rem; line-height:1.5; text-align:left; display:block; left:auto; transform:none; margin:0 0 12px; padding:0; }
.order-summary > h2::before,.order-summary > h2::after { display:none; }
.order-summary .summary-item { display:grid; grid-template-columns:64px minmax(0,1fr) auto auto; gap:16px; align-items:center; padding:12px 0; margin:0; border-bottom:1px solid #dde1db; }
.summary-thumbnail { display:block; width:64px; height:64px; border-radius:6px; overflow:hidden; background:white; }
.summary-thumbnail img { display:block; width:100%; height:100%; object-fit:contain; }
.summary-product { min-width:0; }
.summary-product-name { display:block; color:var(--primary-color); font-size:.95rem; font-weight:700; line-height:1.5; overflow-wrap:anywhere; text-decoration:none; }
.summary-product-name:hover { text-decoration:underline; }
.summary-product-options { display:block; font-size:.8rem; color:#62685e; line-height:1.5; margin-top:2px; overflow-wrap:anywhere; }
.summary-controls { display:flex; align-items:center; gap:12px; }
.summary-quantity { display:flex; align-items:center; gap:4px; }
.summary-quantity button { display:inline-flex; align-items:center; justify-content:center; width:32px; height:32px; padding:0; border:1px solid #c8cfc3; border-radius:5px; background:white; color:var(--primary-color); cursor:pointer; font-size:1rem; }
.summary-quantity span { min-width:24px; text-align:center; font-size:.9rem; font-variant-numeric:tabular-nums; }
.summary-remove { display:inline-flex; align-items:center; gap:4px; min-height:32px; border:0; background:none; padding:4px; color:#b32626; font-size:.8rem; cursor:pointer; white-space:nowrap; }
.summary-price { color:var(--primary-color); font-size:1rem; font-weight:700; white-space:nowrap; text-align:right; font-variant-numeric:tabular-nums; }
.order-summary .summary-fee { margin:14px 0 0; font-size:.9rem; }
.order-summary .summary-total { margin-top:12px; padding-top:12px; border-top:1px solid #dde1db; gap:12px; font-size:1.1rem; }
@media(max-width:600px) {
    .order-summary { padding:18px 16px; }
    .order-summary .summary-item { grid-template-columns:56px minmax(0,1fr) auto; gap:6px 10px; padding:12px 0; }
    .summary-thumbnail { grid-row:1 / 3; align-self:start; width:56px; height:56px; }
    .summary-product { grid-column:2; grid-row:1; }
    .summary-price { grid-column:3; grid-row:1; align-self:start; font-size:.9rem; }
    .summary-controls { grid-column:2 / 4; grid-row:2; gap:14px; }
    .summary-product-name { font-size:.85rem; }
    .summary-product-options { font-size:.75rem; }
    .order-summary .summary-total { font-size:1rem; }
}
