/* Storefront */
.sswp-storefront {--sswp-border: #d8dde3; --sswp-text: #18202a; --sswp-muted: #5d6875; --sswp-surface: #ffffff; --sswp-primary: #087f5b; --sswp-secondary: #18202a; --sswp-overlay: rgba(16, 23, 31, 0.42); color: var(--sswp-text);}
.sswp-storefront a {transition: .3s;}
.sswp-toolbar {align-items: center; display: flex; gap: 16px; margin-bottom: 18px;}
.sswp-toolbar[hidden], .sswp-toolbar:has(.sswp-status:empty) {display: none;}
.sswp-status {color: var(--sswp-muted); min-height: 24px;}
.sswp-empty {color: var(--sswp-muted); font-size: 0.92rem;}
.sswp-products {transition: opacity var(--sswp-fade-speed, 150ms) ease;}
.sswp-storefront.is-transitioning .sswp-products {opacity: 0;}
.sswp-storefront-heading {font-size: 2rem;line-height: 1.15;margin: 0 0 18px;}
.sswp-storefront-heading[hidden] {display: none;}
.sswp-search {max-width: 520px;margin: 0 auto;position: relative;}
.sswp-standalone-search {display: block;}
.sswp-search[hidden], .sswp-search-results[hidden] {display: none;}
.sswp-search-box {align-items: center;background: var(--sswp-surface);border: 1px solid var(--sswp-border);border-radius: 100px;box-sizing: border-box;display: flex;gap: 10px;min-height: 44px;padding: 0 12px;}
.sswp-search-box span {align-items: center; color: var(--sswp-muted); display: inline-flex; flex: 0 0 auto;}
.sswp-search-box svg {fill: none; height: 18px; stroke: currentColor; stroke-linecap: round; stroke-linejoin: round; stroke-width: 2; width: 18px;}
.sswp-search-box input {background: transparent;border: 0;box-shadow: none;box-sizing: border-box;color: var(--sswp-text);flex: 1 1 auto;font: inherit;font-weight: 400;min-height: 42px;min-width: 0;outline: 0;padding: 0;width: 100%;}
.sswp-search-results {background: var(--sswp-surface); border: 1px solid var(--sswp-border); border-radius: 8px; box-shadow: 0 14px 34px rgba(0, 0, 0, 0.14); box-sizing: border-box; display: grid; gap: 0; left: 0; overflow: hidden; position: absolute; right: 0; top: calc(100% + 6px); z-index: 20;}
.sswp-search-result {align-items: center; color: inherit; display: grid; gap: 10px; grid-template-columns: 54px 1fr; padding: 10px; text-decoration: none!important;}
.sswp-search-result:hover, .sswp-search-result:focus, .sswp-search-result.is-active {background: rgba(0,0,0, 0.05);outline: 0;}
.sswp-search-result-image {aspect-ratio: 1 / 1; background: var(--sswp-border); border-radius: 6px; display: block; overflow: hidden;}
.sswp-search-result-image img {display: block; height: 100%; object-fit: contain; width: 100%;}
.sswp-search-result-body {display: grid; gap: 4px; min-width: 0;}
.sswp-search-result-name {font-weight: 700; overflow: hidden; text-overflow: ellipsis; white-space: nowrap;}
.sswp-search-result-price {color: var(--sswp-muted); font-size: 0.9rem;}
.sswp-search-all {background: var(--sswp-surface); border: 0; border-top: 1px solid var(--sswp-border); color: var(--sswp-secondary); cursor: pointer; font: inherit; font-weight: 700; padding: 11px 12px; text-align: left;}
.sswp-search-all:hover, .sswp-search-all:focus {background: rgba(0,0,0,0.05); outline: 0;}
.sswp-description-heading {font-size: 1.1rem; line-height: 1.2; margin: 0 0 10px;}
.sswp-description-heading[hidden], [data-sswp-breadcrumbs-wrap][hidden] {display: none;}

/* Categories */
.sswp-category-heading {font-size: 1.1rem; line-height: 1.2; margin: 0 0 10px;}
.sswp-category-heading[hidden] {display: none;}
.sswp-category-filters {display: flex;flex-wrap: wrap;gap: 8px;margin: 0 0 18px;font-size: 95%;}
.sswp-category-filters[hidden] {display: none;}
.sswp-products-heading {font-size: 1.1rem; line-height: 1.2; margin: 0 0 10px;}
.sswp-products-heading[hidden] {display: none;}
.sswp-results-summary {color: var(--sswp-muted);font-size: 92%;margin: -4px 0 14px;}
.sswp-results-summary[hidden] {display: none;}
.sswp-category-filters button,
.sswp-category-filters a {background: var(--sswp-surface); border: 1px solid var(--sswp-border); border-radius: 999px; color: var(--sswp-text); cursor: pointer; font: inherit; line-height: 1; padding: 8px 12px; text-decoration: none!important; width: auto;}
.sswp-category-filters a:hover {background: var(--sswp-primary); border-color: var(--sswp-primary); color: #fff;}
.sswp-category-filters button.is-active,
.sswp-category-filters a.is-active {background: var(--sswp-secondary); border-color: var(--sswp-secondary); color: #fff;}
.sswp-card-action.sswp-primary {background: var(--sswp-secondary); justify-self: baseline; padding: 5px 10px; min-height: 0; border: 0; font-size: 92%; border-radius: 100px;}
.sswp-card-action.sswp-primary:hover {background: var(--sswp-primary);}

/* Pagination */
.sswp-pagination-status {margin-right: 5px;}
.sswp-pagination {display: flex;align-items: center;gap: 15px;margin: 30px 0 0;}
.sswp-pagination > * {display: block; border: 0; background: none; width: auto; padding: 0; cursor: pointer; font-weight: 700;}
.sswp-pagination > span {font-weight: normal; color: #aaa;}
.sswp-pagination > :is([disabled], .is-active) {color: #aaa; cursor: inherit;}

/* Products */
.sswp-products {display: grid; gap: 18px; grid-template-columns: repeat(var(--sswp-cols, auto-fill), minmax(190px, 1fr));}
.sswp-product {background: var(--sswp-surface);border: 1px solid var(--sswp-border);border-radius: 8px;color: inherit;display: grid;gap: 10px;min-height: 280px;padding: 12px;position: relative;text-align: left;}
.sswp-product-link {color: inherit;display: grid;gap: 8px;text-decoration: none!important;}
.sswp-product-image {aspect-ratio: 1 / 1; background: var(--sswp-border); border-radius: 6px; display: block; overflow: hidden;}
.sswp-product-image img {display: block; height: 100%; object-fit: cover; width: 100%;}
.sswp-product-name {font-weight: 700;}
.sswp-product-price {color: var(--sswp-muted); font-size: 0.92rem;}
.sswp-badges {display: flex; flex-wrap: wrap; gap: 6px;}
.sswp-product .sswp-badges {left: 20px; max-width: calc(100% - 40px); position: absolute; top: 20px; z-index: 1;}
.sswp-badge {background: var(--sswp-badge-color, var(--sswp-secondary)); border-radius: 999px; color: #fff; font-size: 0.78rem; font-weight: 700; line-height: 1.2; padding: 5px 8px;}
.sswp-card-action {align-items: center;align-self: end;display: flex;justify-content: center;text-align: center;text-decoration: none!important;width: 100%;}

.sswp-product-detail {background: var(--sswp-surface);border: 1px solid var(--sswp-border);border-radius: 8px;display: grid;gap: 0;grid-column: 1 / -1;grid-template-columns: minmax(220px, 1fr) minmax(260px, 1fr);justify-self: center;overflow: hidden;width: 100%;}
.sswp-breadcrumbs {align-items: center;color: var(--sswp-muted);display: flex;flex-wrap: wrap;font-size: 0.92rem;gap: 8px;grid-column: 1 / -1;justify-self: center;width: 100%;margin: 0 0 30px;}
.sswp-breadcrumbs a {color: var(--sswp-secondary);font-weight: 700;text-decoration: none!important;}
.sswp-product-detail-media {aspect-ratio: 1 / 1;background: var(--sswp-border);border-radius: 6px 0 0 6px;overflow: hidden;position: relative;}
.sswp-product-detail-image {background: transparent;border: 0;cursor: zoom-in;display: block;height: 100%;margin: 0;padding: 0;text-align: inherit;width: 100%;}
.sswp-product-detail-image img {display: block; height: 100%; object-fit: contain; width: 100%;}
.sswp-product-thumbs {bottom: 10px;display: flex;flex-wrap: wrap;gap: 6px;justify-content: flex-end;max-width: calc(100% - 20px);position: absolute;right: 10px;z-index: 2;}
.sswp-product-thumbs button {background: #fff;border: 2px solid transparent;border-radius: 5px;box-shadow: 0 2px 8px rgba(0, 0, 0, 0.16);cursor: pointer;height: 60px;overflow: hidden;padding: 0;width: 60px;}
.sswp-product-thumbs button.is-active {border-color: var(--sswp-secondary);}
.sswp-product-thumbs img {display: block;height: 100%;object-fit: cover;width: 100%;}
.sswp-product-detail-body {display: flex; flex-direction: column; gap: 14px; padding: 32px; position: relative;}
.sswp-product-detail-body h1 {font-size: 2rem; line-height: 1.15; margin: 0;}
.sswp-product-detail-body label {display: grid; gap: 6px; font-weight: 700; margin-top: auto;}
.sswp-product-detail select {border: 1px solid var(--sswp-border); border-radius: 6px; font: inherit; padding: 9px 10px; width: 100%;}
.sswp-product-purchase {display: grid;gap: 10px;grid-template-columns: 84px 1fr;}
.sswp-product-purchase input {border: 1px solid var(--sswp-border);border-radius: 6px;font: inherit;padding: 9px 10px;width: 100%;}
.sswp-product-detail .sswp-primary {width: 100%;}
.sswp-back-link {color: var(--sswp-secondary); font-weight: 700;}

/* Modal */
.sswp-lightbox[hidden] {display: none;}
.sswp-modal-backdrop {background: var(--sswp-overlay); inset: 0; position: fixed; z-index: 99998;}
.sswp-modal {background: var(--sswp-surface); border-radius: 8px; box-shadow: 0 24px 70px rgba(0, 0, 0, 0.22); display: grid; grid-template-columns: minmax(220px, 1fr) minmax(260px, 1fr); left: 50%; max-height: calc(100vh - 40px); max-width: 820px; overflow: auto; position: fixed; top: 50%; transform: translate(-50%, -50%); width: calc(100vw - 32px); z-index: 99999;}
.sswp-modal-media {background: var(--sswp-border); min-height: 320px;}
.sswp-modal-media img {display: block; height: 100%; object-fit: contain; width: 100%;}
.sswp-image-viewer {background: var(--sswp-surface);border-radius: 8px;box-shadow: 0 24px 70px rgba(0, 0, 0, 0.22);box-sizing: border-box;left: 50%;max-height: calc(100vh - 40px);max-width: 1024px;padding: 18px;position: fixed;top: 50%;transform: translate(-50%, -50%);width: calc(100vw - 32px);z-index: 99999;}
.sswp-image-viewer img {display: block;max-height: calc(100vh - 76px);object-fit: contain;width: 100%;}
.sswp-modal-body {align-items: flex-start; display: flex; flex-direction: column; gap: 14px; padding: 32px;}
.sswp-modal-body h3 {font-size: 1.35rem; line-height: 1.2; margin: 0;}
.sswp-modal-body label {display: grid; gap: 6px; font-weight: 700; margin-top: auto; width: 100%;}
.sswp-modal-body select {border: 1px solid var(--sswp-border); border-radius: 6px; font: inherit; padding: 9px 10px; width: 100%;}
.sswp-modal-body .sswp-primary {width: 100%;}
.sswp-icon-button {position: absolute; right: 12px; top: 12px;}

/* Cart */
.sswp-cart-toggle {align-items: center; border-radius: 999px; bottom: 24px; box-shadow: 0 12px 32px rgba(0, 0, 0, 0.22); display: none; height: 56px; justify-content: center; padding: 0; position: fixed; right: 24px; width: 56px; z-index: 99997;}
.sswp-cart-toggle svg {display: block; fill: none; height: 28px; stroke: currentColor; stroke-linecap: round; stroke-linejoin: round; stroke-width: 2.4; width: 28px;}
.sswp-cart-toggle span {align-items: center; aspect-ratio: 1 / 1; background: var(--sswp-primary); border: 2px solid #fff; border-radius: 50%; box-sizing: border-box; display: flex; font-size: 0.78rem; font-weight: 700; height: 24px; justify-content: center; line-height: 1; padding: 0; position: absolute; right: -4px; top: -4px; width: 24px;}
.sswp-storefront.has-cart .sswp-cart-toggle {display: flex;}
.sswp-cart-drawer {background: var(--sswp-overlay); inset: 0; opacity: 0; pointer-events: none; position: fixed; transition: opacity 180ms ease; z-index: 99998;}
.sswp-cart-drawer.is-open {opacity: 1; pointer-events: auto;}
.sswp-drawer-panel {background: var(--sswp-surface);box-shadow: -20px 0 50px rgba(0, 0, 0, 0.2);box-sizing: border-box;display: flex;flex-direction: column;gap: 14px;height: 100%;margin-left: auto;max-width: 390px;overflow: auto;padding: 20px;position: relative;transform: translateX(100%);transition: transform var(--sswp-cart-slide-speed, 400ms);width: min(92vw, 390px);}
.sswp-cart-drawer.is-open .sswp-drawer-panel {transform: translateX(0);}
.sswp-drawer-head {align-items: center; display: flex; gap: 12px; justify-content: space-between; padding-right: 42px;}
.sswp-drawer-head h3 {font-size: 1.35rem; line-height: 1.2; margin: 0;}
.sswp-drawer-head button {box-sizing: border-box; position: absolute; right: 20px; top: 20px; width: auto;}
.sswp-cart-toggle {background: var(--sswp-secondary);border: 1px solid var(--sswp-secondary);color: #fff;border-radius: 100%;box-sizing: border-box;height: 60px;padding: 0;width: 60px;cursor: pointer;}

.sswp-cart-items {display: grid; gap: 14px;}
.sswp-cart-item {align-items: center; border-bottom: 1px solid var(--sswp-border); display: flex; gap: 12px; justify-content: space-between; padding-bottom: 14px;}
.sswp-cart-item:last-child {border-bottom: 0;}
.sswp-cart-item div {display: grid; flex-grow: 1; gap: 3px;}
.sswp-cart-item span {color: var(--sswp-muted); font-size: 0.92rem;}
.sswp-cart-item input {border: 1px solid var(--sswp-border); border-radius: 6px; font: inherit; max-width: 72px; padding: 9px 10px; width: 100%;}
.sswp-cart-note {color: var(--sswp-muted); font-size: 0.92rem;}

.sswp-cart-actions {display: grid; gap: 14px; margin-top: auto;}
.sswp-fulfillment {border-top: 1px solid var(--sswp-border); display: grid; gap: 10px; padding-top: 14px;}
.sswp-fulfillment h4 {font-size: 0.92rem; margin: 0;}
.sswp-segmented {border: 1px solid var(--sswp-border); border-radius: 6px; display: grid; grid-template-columns: 1fr 1fr; overflow: hidden;}
.sswp-segmented button {background: var(--sswp-surface); border: 0; border-right: 1px solid var(--sswp-border); color: var(--sswp-text); cursor: pointer; font: inherit; padding: 10px;}
.sswp-segmented button:last-child {border: 0;}
.sswp-segmented button.is-active {background: var(--sswp-secondary); color: #fff;}
.sswp-address-fields {display: grid; gap: 10px;}
.sswp-address-fields label {color: var(--sswp-muted); display: grid; font-size: 0.92rem; gap: 5px;}
.sswp-address-fields input {border: 1px solid var(--sswp-border); border-radius: 6px; box-sizing: border-box; font: inherit; min-height: 38px; padding: 8px 10px; width: 100%;}
.sswp-address-grid {display: grid; gap: 8px; grid-template-columns: 1fr 72px 92px;}
.sswp-pickup-options {display: grid; gap: 10px;}
.sswp-pickup-options label {align-items: start; border: 1px solid var(--sswp-border); border-radius: 6px; color: var(--sswp-muted); display: grid; font-size: 0.92rem; gap: 8px; grid-template-columns: auto 1fr; padding: 10px;}
.sswp-pickup-options small {color: var(--sswp-muted); display: block; font-size: 0.86rem; margin-top: 3px;}

.sswp-fees {border-top: 1px solid var(--sswp-border); display: grid; gap: 10px; padding-top: 14px;}
.sswp-fees h4 {font-size: 0.92rem; margin: 0;}
.sswp-fees div {align-items: center; display: flex; gap: 12px; justify-content: space-between;}
.sswp-fees span {color: var(--sswp-muted); font-size: 0.92rem;}
.sswp-cart-summary {display: grid; gap: 8px; padding-top: 14px;}
.sswp-cart-summary div {align-items: center; display: flex; gap: 12px; justify-content: space-between;}
.sswp-cart-summary span {color: var(--sswp-muted); font-size: 0.92rem;}
.sswp-cart-total {border-top: 1px solid var(--sswp-border); padding-top: 10px;}
.sswp-cart-total span {color: var(--sswp-text); font-weight: 700;}
.sswp-order-review {background: var(--sswp-surface); bottom: 0; box-sizing: border-box; display: flex; flex-direction: column; gap: 24px; justify-content: space-between; max-width: 390px; overflow: auto; padding: 20px; pointer-events: none; position: fixed; right: 0; top: 0; transform: translateY(100%); transition: transform var(--sswp-cart-slide-speed, 400ms), visibility 0s linear var(--sswp-cart-slide-speed, 400ms); visibility: hidden; width: min(92vw, 390px); z-index: 99999;}
.sswp-order-review.is-open {pointer-events: auto; transform: translateY(0); transition-delay: 0s; visibility: visible;}
.sswp-order-review h3 {font-size: 1.35rem; line-height: 1.2; margin: 0 0 12px;}
.sswp-order-review-note {color: var(--sswp-muted); font-size: 0.95rem;}
.sswp-order-review-note > :first-child {margin-top: 0;}
.sswp-order-review-note > :last-child {margin-bottom: 0;}
.sswp-order-review-bottom {display: grid; gap: 14px;}
.sswp-review-cart {border-top: 1px solid var(--sswp-border); display: grid; gap: 8px; padding-top: 14px;}
.sswp-review-cart h4 {font-size: 0.92rem; margin: 0;}
.sswp-review-items {display: grid; gap: 10px;}
.sswp-review-item {align-items: center; border-bottom: 1px solid var(--sswp-border); display: flex; gap: 12px; justify-content: space-between; padding-bottom: 10px;}
.sswp-review-item:last-child {border-bottom: 0;}
.sswp-review-item span, .sswp-review-fulfillment {color: var(--sswp-muted); font-size: 0.92rem;}
.sswp-review-fulfillment {border-top: 1px solid var(--sswp-border); display: grid; gap: 6px; padding-top: 14px;}
.sswp-review-fulfillment h4 {color: var(--sswp-text); font-size: 0.92rem; margin: 0;}
.sswp-review-fulfillment p {margin: 0;}
.sswp-review-actions {display: grid; gap: 10px;}
.sswp-review-actions .sswp-primary {width: 100%;}
.sswp-review-back {background: transparent;border: 0;color: var(--sswp-secondary);cursor: pointer;font: inherit;font-weight: 700;justify-self: center;padding: 0;}

/* Buttons */
.sswp-primary, .sswp-cart-item button, .sswp-icon-button, .sswp-drawer-head button {background: var(--sswp-secondary);border: 1px solid var(--sswp-secondary);border-radius: 6px;color: #fff;cursor: pointer;font: inherit;line-height: 1;padding: 10px 14px;width: auto;transition: .3s;}
.sswp-primary {background: var(--sswp-primary); border-color: var(--sswp-primary); justify-content: center; min-height: 42px;}
.sswp-primary:disabled {background: #a6adb6; border-color: #a6adb6; cursor: not-allowed;}

@media (max-width: 640px) {
	.sswp-products {grid-template-columns: 1fr;}
	.sswp-modal {grid-template-columns: 1fr;}
	.sswp-product-detail {grid-template-columns: 1fr;}
	.sswp-product-detail-media {border-radius: 6px 6px 0 0;}
	.sswp-modal-media {min-height: 220px;}
	.sswp-product-detail-body {padding: 22px;}
	.sswp-product-detail-body h1 {font-size: 1.55rem;}
	.sswp-product-purchase {grid-template-columns: 74px 1fr;}
	.sswp-modal-body {padding: 22px;}
	.sswp-address-grid {grid-template-columns: 1fr;}
}
