/* CI Shop — negozio pubblico e area cliente. Caricato solo dallo storefront. */

.sf-order-payment-instructions p { margin: 0; color: var(--sf-muted); line-height: var(--sf-line-height); white-space: pre-line; overflow-wrap: anywhere; }

.storefront-app {
  --panel: var(--sf-surface);
  --surface-soft: var(--sf-soft-surface);
  --border-soft: var(--sf-border);
  min-height: 100vh;
  background: var(--sf-page-bg);
  color: var(--sf-text);
  font-family: var(--sf-font-family, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif);
  font-size: var(--sf-font-base);
  line-height: var(--sf-line-height);
  font-weight: var(--sf-font-weight);
  -webkit-text-size-adjust: none;
  text-size-adjust: none;
}

.storefront-app button { font-family: var(--sf-button-font-family); font-size: var(--sf-font-button); font-weight: var(--sf-button-font-weight); }
.storefront-app select { -webkit-appearance: none; appearance: none; font-family: inherit; line-height: 1.2; background-image: linear-gradient(45deg, transparent 50%, currentColor 50%), linear-gradient(135deg, currentColor 50%, transparent 50%); background-position: calc(100% - 14px) 50%, calc(100% - 9px) 50%; background-size: 5px 5px, 5px 5px; background-repeat: no-repeat; padding-right: 32px; }
.sf-home-button, .sf-product-login-cta, .sf-login-price a, .sf-drawer-all, .sf-cart-empty a, .sf-checkout-button, .sf-account-sidebar-footer a, .sf-account-panel-head > a, .sf-order-thankyou a, .sf-auth-primary, .sf-auth-secondary, .sf-payment-file-picker { font-family: var(--sf-button-font-family); font-size: var(--sf-font-button); font-weight: var(--sf-button-font-weight); }
.storefront-app h1, .storefront-app h2, .storefront-app h3, .storefront-app h4, .storefront-app h5, .storefront-app h6 { font-family: var(--sf-heading-font-family); font-weight: var(--sf-heading-font-weight); }
.storefront-app h1 { font-size: var(--sf-h1); }
.storefront-app h2 { font-size: var(--sf-h2); }
.storefront-app h3 { font-size: var(--sf-h3); }
.sf-category-bar, .sf-header-custom-link { font-family: var(--sf-menu-font-family); }

.sf-home-button:hover, .sf-catalog-toolbar form button:hover, .sf-add-cart:hover:not(:disabled), .sf-search-page-head button:hover, .sf-cart-summary > button:hover, .sf-cart-empty a:hover, .sf-checkout-button:hover:not(:disabled), .sf-checkout-final-action:hover:not(:disabled), .sf-account-panel-head > a:hover, .sf-account-panel-head > button:hover, .sf-address-actions button:first-child:hover, .sf-bank-receipt > button:not(.sf-receipt-file):hover, .sf-order-thankyou a:first-child:hover { background: var(--sf-primary-hover); }

.sf-header { position: sticky; top: 0; z-index: 80; background: var(--sf-header-bg); color: var(--sf-header-text); border-bottom: 1px solid var(--sf-header-border); box-shadow: 0 3px 18px color-mix(in srgb, var(--sf-text) var(--sf-shadow-strength), transparent); backdrop-filter: blur(14px); }
.sf-header.sf-header-static { position: relative; }

.sf-preview-badge { position: fixed; right: 16px; bottom: 16px; z-index: 200; display: flex; align-items: center; gap: 10px; border-radius: var(--sf-button-radius); background: var(--sf-primary); color: var(--sf-primary-text); padding: 8px 9px 8px 14px; font-size: var(--sf-font-small); font-weight: 800; box-shadow: 0 10px 30px color-mix(in srgb, var(--sf-text) var(--sf-shadow-strength), transparent); }
.sf-preview-badge button { min-height: 30px; border: 1px solid color-mix(in srgb, var(--sf-primary-text) 35%, transparent); border-radius: var(--sf-button-radius); background: transparent; color: inherit; padding: 4px 9px; cursor: pointer; }
.sf-preview-badge button:hover { background: color-mix(in srgb, var(--sf-primary-text) 12%, transparent); }

.sf-topbar { min-height: var(--sf-topbar-height); display: flex; align-items: center; justify-content: center; flex-wrap: wrap; gap: 8px 16px; padding: 6px var(--sf-topbar-padding-x); overflow: hidden; background: var(--sf-topbar-bg); color: var(--sf-topbar-text); font-size: var(--sf-font-small); line-height: 1.35; text-align: center; }
.sf-topbar strong { font-weight: 800; }
.sf-topbar a { color: var(--sf-topbar-link); font-weight: 800; text-decoration: underline; text-underline-offset: 2px; }
.sf-topbar-marquee { width: 100%; min-width: 0; display: flex; overflow: hidden; white-space: nowrap; }
.sf-topbar-marquee > span { flex: 0 0 auto; min-width: 100%; padding-inline: 3rem; animation: sf-topbar-marquee var(--sf-topbar-marquee-duration) linear infinite; }
@keyframes sf-topbar-marquee { from { transform: translateX(0); } to { transform: translateX(-100%); } }
@media (prefers-reduced-motion: reduce) { .sf-topbar-marquee > span { animation: none; } .sf-topbar-marquee > span[aria-hidden="true"] { display: none; } }

.sf-header-main { width: 100%; min-height: var(--sf-header-height); padding: 0 var(--sf-header-padding-x); box-sizing: border-box; display: grid; align-items: center; }
.sf-header-layout.sf-mobile-header { display: none; }
.sf-header-item { width: 100%; min-width: 0; min-height: 1px; display: flex; align-items: center; box-sizing: border-box; color: var(--sf-block-text); background: var(--sf-block-bg); border-radius: var(--sf-block-radius); font-size: var(--sf-block-font-size); transition: background .15s ease, color .15s ease; }
.sf-header-item-search { min-width: 0; }
.sf-header-item-search > .sf-search { width: 100%; }
.sf-header-item-countdown > .storefront-shipping-widget { width: 100%; }
.sf-header-item-spacer { min-height: 1px; pointer-events: none; }
.sf-header-item:hover { --sf-block-bg: var(--sf-block-hover-bg); --sf-block-text: var(--sf-block-hover-text); }

.sf-logo { min-width: 0; display: inline-flex; align-items: center; }
.sf-logo img { display: block; max-width: 100%; max-height: var(--sf-block-max-height); object-fit: contain; }
.sf-logo strong { color: var(--sf-block-text); font-size: var(--sf-font-large); letter-spacing: -.03em; }

.sf-search { max-width: 100%; height: var(--sf-icon-button-size); display: flex; align-items: center; gap: 8px; border: 1px solid var(--sf-block-border); border-radius: var(--sf-block-radius); padding: 0 15px; background: var(--sf-block-bg); color: var(--sf-block-text); transition: background .15s ease, color .15s ease, border-color .15s ease, box-shadow .15s ease; }
.sf-search:hover { background: var(--sf-block-hover-bg); color: var(--sf-block-hover-text); }
.sf-search:focus-within {
  background: var(--sf-input-bg);
  color: var(--sf-text);
  border-color: color-mix(in srgb, var(--sf-block-border) 75%, var(--sf-primary) 25%);
  box-shadow: 0 0 0 2px color-mix(in srgb, var(--sf-primary) 10%, transparent);
}
.sf-search input { flex: 1; min-width: 0; border: 0; outline: 0; background: transparent; color: inherit; font: inherit; font-size: var(--sf-block-font-size); }

.sf-action-button { position: relative; width: var(--sf-icon-button-size); height: var(--sf-icon-button-size); display: grid; place-items: center; border: 0; background: var(--sf-block-bg); color: var(--sf-block-text); transition: background .15s ease, color .15s ease; }
.sf-action-button.sf-icon-style-soft { background: var(--sf-block-hover-bg); }
.sf-action-button.sf-icon-style-outline { border: 1px solid var(--sf-block-border); }
.sf-action-button.sf-icon-shape-circle { border-radius: 50%; }
.sf-action-button.sf-icon-shape-rounded { border-radius: var(--sf-field-radius); }
.sf-action-button.sf-icon-shape-square { border-radius: 0; }
.sf-action-button:hover { background: var(--sf-block-hover-bg); color: var(--sf-block-hover-text); }
.sf-header-custom-text { color: var(--sf-block-text); font-size: var(--sf-block-font-size); white-space: pre-line; }
.sf-header-custom-link { color: var(--sf-block-text); font-size: var(--sf-block-font-size); font-weight: 750; white-space: nowrap; }
.sf-header-custom-link:hover { color: var(--sf-block-hover-text); background: var(--sf-block-hover-bg); text-decoration: underline; text-underline-offset: 3px; }

.sf-cart-button > span:last-child { position: absolute; top: -2px; right: -2px; min-width: 19px; height: 19px; padding: 0 5px; display: grid; place-items: center; border-radius: var(--sf-button-radius); background: var(--sf-primary); color: var(--sf-primary-text); font-size: var(--sf-font-tiny); font-weight: 750; }

.sf-category-bar { min-height: 46px; display: flex; justify-content: center; align-items: stretch; gap: 10px; border-top: 1px solid var(--sf-header-border); padding: 0 24px; overflow-x: auto; scrollbar-width: none; background: var(--sf-nav-bg); color: var(--sf-nav-text); }
.sf-category-bar.sf-mobile-nav { display: none; }
.sf-category-bar::-webkit-scrollbar { display: none; }
.sf-category-bar button { min-width: 110px; border: 0; border-bottom: 2px solid transparent; background: transparent; color: var(--sf-nav-text); padding: 0 22px; font-family: var(--sf-menu-font-family); font-weight: var(--sf-menu-font-weight); font-size: var(--sf-font-menu); white-space: nowrap; }
.sf-category-bar button:hover { border-bottom-color: var(--sf-accent); background: var(--sf-nav-hover-bg); color: var(--sf-nav-hover-text); }

.sf-main { min-height: calc(100vh - 190px); }
.sf-page-wrap, .sf-home-section { width: min(var(--sf-content-width), calc(100% - (var(--sf-page-gutter-desktop) * 2))); margin-left: auto; margin-right: auto; box-sizing: border-box; }
.sf-home-section.sf-home-full-width { width: 100%; }

/* Home Builder: ogni blocco usa solo i token globali o i propri override. */
.sf-home-section { margin-top: 36px; color: var(--sf-home-section-text); background: var(--sf-home-section-bg); }
.sf-home-section:last-child { margin-bottom: 70px; }
.sf-home-section h1, .sf-home-section h2, .sf-home-section h3 { color: currentColor; }
.sf-home-hero { min-height: var(--sf-home-section-height); display: flex; align-items: center; overflow: hidden; border-radius: var(--sf-card-radius); padding: 58px 64px; background-position: center; background-size: cover; }
.sf-home-hero-copy { min-width: 0; width: min(760px, 100%); }
.sf-home-hero-copy > p { margin: 0 0 10px; color: var(--sf-home-section-muted); font-size: var(--sf-font-small); text-transform: uppercase; letter-spacing: .12em; font-weight: 750; }
.sf-home-hero-copy > h1 { max-width: 760px; margin: 0; line-height: 1.02; letter-spacing: -.045em; }
.sf-home-copy { margin-top: 18px; color: var(--sf-home-section-muted); font-size: var(--sf-h3); line-height: var(--sf-line-height); white-space: pre-line; }
.sf-home-button { display: inline-flex; align-items: center; justify-content: center; min-width: 190px; min-height: 48px; margin-top: 24px; border-radius: var(--sf-button-radius); background: var(--sf-primary); color: var(--sf-primary-text); padding: 0 24px; }
.sf-home-text { padding: 36px; border-radius: var(--sf-card-radius); }
.sf-home-text h2, .sf-home-list-section .sf-section-head h2 { margin: 0; letter-spacing: -.025em; }
.sf-home-image-section { height: var(--sf-home-section-height); overflow: hidden; border-radius: var(--sf-card-radius); }
.sf-home-image-section img { width: 100%; height: 100%; object-fit: var(--sf-home-image-fit); }
.sf-home-image-placeholder { width: 100%; height: 100%; display: grid; place-items: center; border: 1px dashed var(--sf-border); border-radius: inherit; background: var(--sf-soft-surface); color: var(--sf-muted); }
.sf-home-spacer { height: var(--sf-home-section-height); margin-top: 0; background: transparent; }
.sf-home-list-section { padding-top: 18px; }

.sf-section-head { min-height: 38px; display: flex; justify-content: space-between; align-items: baseline; gap: 20px; margin-bottom: 22px; }
.sf-section-head h2 { flex: 1; min-width: 0; margin: 0; letter-spacing: -.025em; }
.sf-section-head a { color: var(--sf-link); font-size: var(--sf-font-medium); }

.sf-root-categories { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 14px; }
.sf-root-category { min-height: 150px; border: 1px solid var(--sf-border); border-radius: var(--sf-card-radius); padding: 24px; display: flex; flex-direction: column; background: var(--sf-surface); transition: transform .16s ease, box-shadow .16s ease; }
.sf-root-category:hover { transform: translateY(-2px); box-shadow: 0 14px 30px color-mix(in srgb, var(--sf-text) var(--sf-shadow-strength), transparent); }
.sf-root-category strong { font-size: var(--sf-h2); letter-spacing: -.03em; }
.sf-root-category > span { color: var(--sf-muted); margin-top: 6px; font-size: var(--sf-font-small); }
.sf-root-category a, .sf-root-category span:last-child { margin-top: auto; padding-top: 22px; color: var(--sf-link); font-weight: 650; font-size: var(--sf-font-medium); }

.sf-product-grid { display: grid; grid-template-columns: repeat(var(--sf-collection-columns-desktop), minmax(0, 1fr)); gap: var(--sf-product-grid-gap); }

.sf-product-card { border: 1px solid var(--sf-border); border-radius: var(--sf-product-card-radius); background: var(--sf-product-card-bg); color: var(--sf-product-card-text); overflow: hidden; display: flex; flex-direction: column; min-width: 0; transition: box-shadow .16s ease, transform .16s ease, background .16s ease, color .16s ease; }

.sf-product-card:hover { transform: translateY(-2px); background: var(--sf-product-card-hover-bg); color: var(--sf-product-card-hover-text); box-shadow: 0 15px 38px color-mix(in srgb, var(--sf-text) var(--sf-shadow-strength), transparent); }

.sf-product-image { aspect-ratio: var(--sf-product-image-ratio); display: grid; place-items: center; background: var(--surface-soft); padding: 24px; }

.sf-product-image img { width: 100%; height: 100%; object-fit: contain; }

.sf-product-image span { color: var(--sf-muted); font-size: var(--sf-font-small); }

.sf-product-card-body { padding: var(--sf-product-card-padding); display: flex; flex: 1; flex-direction: column; gap: 8px; }

.sf-product-card-body > small { color: var(--sf-muted); font-size: var(--sf-font-tiny); text-transform: uppercase; letter-spacing: .06em; }

.sf-product-title { min-height: 44px; font-size: var(--sf-font-menu); font-weight: 650; line-height: var(--sf-line-height); }

.sf-product-title:hover { text-decoration: underline; }

.sf-card-price-row { margin-top: auto; padding-top: 10px; display: flex; align-items: flex-end; justify-content: space-between; gap: 10px; }

.sf-card-price-row > div strong, .sf-card-price-row > div span { display: block; }

.sf-card-price-row > div strong { font-size: var(--sf-font-large); }

.sf-card-price-row > div span { margin-top: 2px; color: var(--sf-muted); font-size: var(--sf-font-tiny); }

.sf-product-card-body > button { width: 100%; min-height: 39px; margin-top: auto; border: 0; border-radius: var(--sf-button-radius); background: var(--sf-primary); color: var(--sf-primary-text); }

.sf-product-card-body > button:hover { background: var(--sf-primary-hover); }

.sf-product-card-body > button:disabled { background: var(--sf-soft-surface); color: var(--sf-muted); cursor: not-allowed; }

.sf-product-login-cta { width: 100%; min-height: 39px; margin-top: auto; display: flex; align-items: center; justify-content: center; border: 1px solid var(--sf-primary); border-radius: var(--sf-button-radius); background: var(--panel); color: var(--sf-primary); }

.sf-product-login-cta:hover { background: var(--sf-primary-hover); color: var(--sf-primary-text); }

.sf-product-login-cta-detail { margin-top: 23px; min-height: var(--sf-product-control-height); }

.sf-login-price { display: grid; gap: 8px; border: 1px solid var(--sf-info-border); border-radius: var(--sf-card-radius); background: var(--sf-info-bg); padding: 15px; }

.sf-login-price-card { min-height: 74px; margin-top: auto; align-content: center; text-align: center; }

.sf-login-price-detail { margin-top: 26px; padding: 20px; }

.sf-login-price strong { color: var(--sf-info-text); font-size: var(--sf-font-menu); line-height: 1.4; }

.sf-login-price a { display: inline-flex; align-items: center; justify-content: center; min-height: 38px; margin-top: 2px; border-radius: var(--sf-button-radius); background: var(--sf-primary); color: var(--sf-primary-text); padding: 0 16px; }

.sf-login-price a:hover { background: var(--sf-primary-hover); }

.sf-footer { margin-top: 80px; border-top: 1px solid var(--sf-border); padding: 35px max(24px, calc((100vw - var(--sf-content-width)) / 2)); color: var(--sf-muted); font-size: var(--sf-font-small); background: var(--sf-soft-surface); }

.sf-footer strong { color: var(--sf-text); font-size: var(--sf-font-base); }

.sf-drawer-layer { position: fixed; inset: 0; z-index: 120; background: color-mix(in srgb, var(--sf-surface) 55%, transparent); backdrop-filter: blur(2px); }

.sf-drawer { position: absolute; inset: 0 auto 0 0; width: min(470px, 92vw); background: var(--panel); box-shadow: 18px 0 50px color-mix(in srgb, var(--sf-text) var(--sf-shadow-strength), transparent); display: flex; flex-direction: column; animation: sf-slide .18s ease-out; }

@keyframes sf-slide { from { transform: translateX(-100%); } to { transform: translateX(0); } }

.sf-drawer-head { height: 76px; display: grid; grid-template-columns: 44px 1fr 44px; align-items: center; border-bottom: 1px solid var(--sf-border); padding: 0 18px; }

.sf-drawer-head strong { text-align: center; font-size: var(--sf-font-large); }

.sf-drawer-head button { width: 38px; height: 38px; border: 0; border-radius: 50%; background: transparent; font-size: var(--sf-icon-size); }

.sf-drawer-head button:hover { background: var(--sf-header-hover-bg); }

.sf-drawer-body { overflow-y: auto; padding: 22px 24px 40px; }

.sf-drawer-all { display: flex; align-items: center; min-height: 46px; border-radius: var(--sf-button-radius); background: var(--sf-primary); color: var(--sf-primary-text); padding: 0 16px; margin-bottom: 16px; }

.sf-drawer-list { display: flex; flex-direction: column; }

.sf-drawer-list button { min-height: 52px; display: flex; justify-content: space-between; align-items: center; gap: 15px; border: 0; border-bottom: 1px solid var(--sf-border); background: transparent; text-align: left; padding: 0 5px; font-size: var(--sf-font-base); }

.sf-drawer-list button:hover { padding-left: 12px; background: var(--surface-soft); }

.sf-breadcrumb { min-height: 30px; display: flex; flex-wrap: wrap; gap: 8px; align-items: center; margin: 30px 0 25px; color: var(--sf-muted); font-size: var(--sf-font-small); }

.sf-breadcrumb > span { display: inline-flex; gap: 8px; align-items: center; }

.sf-breadcrumb a { color: var(--sf-link); }
.sf-breadcrumb a:hover { color: var(--sf-link-hover); text-decoration: underline; }

.sf-collection-title { display: flex; justify-content: space-between; align-items: flex-end; gap: 25px; padding-bottom: 25px; border-bottom: 1px solid var(--sf-border); }

.sf-collection-title h1, .sf-search-page-head h1 { margin: 0; letter-spacing: -.04em; }

.sf-collection-title > span { color: var(--sf-muted); font-size: var(--sf-font-small); padding-bottom: 5px; }

.sf-subcollections { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; padding: 25px 0; }

.sf-subcollections a { min-height: 82px; border: 1px solid var(--sf-border); border-radius: var(--sf-card-radius); padding: 15px; display: flex; flex-direction: column; justify-content: center; }

.sf-subcollections a:hover { border-color: var(--sf-border); }

.sf-subcollections strong { font-size: var(--sf-font-menu); }

.sf-subcollections span { color: var(--sf-muted); font-size: var(--sf-font-tiny); margin-top: 5px; }

.sf-catalog-toolbar { margin: 25px 0; display: flex; justify-content: space-between; align-items: center; gap: 20px; }

.sf-catalog-toolbar form { width: min(540px, 65%); display: flex; border: 1px solid var(--sf-input-border); border-radius: var(--sf-button-radius); overflow: hidden; }

.sf-catalog-toolbar input { flex: 1; min-width: 0; border: 0; outline: 0; padding: 11px 16px; }

.sf-catalog-toolbar form button { border: 0; background: var(--sf-primary); color: var(--sf-primary-text); padding: 0 20px; }

.sf-catalog-toolbar select { min-height: 42px; min-width: 180px; border: 1px solid var(--sf-input-border); border-radius: var(--sf-field-radius); background: var(--panel); padding: 10px 32px 10px 12px; }

.sf-pagination { display: flex; justify-content: center; align-items: center; gap: 18px; margin-top: 40px; }

.sf-pagination button { border: 1px solid var(--sf-border); border-radius: var(--sf-button-radius); background: var(--panel); padding: 9px 16px; }

.sf-pagination button:disabled { opacity: .4; }

.sf-pagination span { color: var(--sf-muted); font-size: var(--sf-font-small); }

.sf-loading, .sf-error, .sf-empty { width: min(1000px, calc(100% - 48px)); margin: 60px auto; min-height: 180px; display: grid; place-items: center; text-align: center; color: var(--sf-muted); }

.sf-loading.compact, .sf-error.compact { min-height: 45px; margin: 15px auto; }

.sf-error { color: var(--sf-danger-text); }

.sf-product-detail { display: grid; grid-template-columns: minmax(0, var(--sf-product-detail-media-width)) minmax(0, 1fr); gap: var(--sf-product-detail-gap); align-items: start; padding: 25px 0 40px; color: var(--sf-product-detail-text); }
.storefront-app[data-product-show-breadcrumb="false"] .sf-product-breadcrumb { display: none; }
.sf-product-breadcrumb { color: var(--sf-product-breadcrumb-color); font-size: var(--sf-product-breadcrumb-size); }
.sf-product-breadcrumb a { color: inherit; }
.sf-product-breadcrumb a:hover { color: var(--sf-product-breadcrumb-hover); text-decoration: underline; }

.sf-detail-image { position: static; width: 100%; min-width: 0; max-width: 100%; min-height: var(--sf-product-detail-image-min-height); aspect-ratio: 1 / 1; overflow: hidden; box-sizing: border-box; background: var(--sf-product-detail-image-bg); border: 1px solid var(--sf-product-detail-border); border-radius: var(--sf-product-detail-radius); display: grid; place-items: center; padding: var(--sf-product-detail-image-padding); }

.sf-detail-image img { width: 100%; height: 100%; min-width: 0; object-fit: contain; }

.sf-detail-image span { color: var(--sf-muted); }

.sf-detail-info { min-width: 0; padding-top: var(--sf-product-detail-info-padding-top); }

.sf-detail-kicker { margin: 0 0 11px; color: var(--sf-product-detail-muted); text-transform: uppercase; letter-spacing: .1em; font-size: var(--sf-product-label-size); font-weight: 700; }

.storefront-app .sf-detail-info h1 { margin: 0 0 8px; font-size: clamp(var(--sf-product-detail-title-min-size), 3.3vw, var(--sf-product-detail-title-size)); line-height: 1.1; letter-spacing: -.035em; }

.sf-detail-info > small { color: var(--sf-product-detail-sku); font-size: var(--sf-product-sku-size); }

.sf-detail-price { margin-top: 28px; padding: 23px 0; border-top: 1px solid var(--sf-product-detail-border); border-bottom: 1px solid var(--sf-product-detail-border); justify-content: center; text-align: center; }

.sf-detail-price strong, .sf-detail-price span { display: block; }

.storefront-app .sf-detail-price strong { color: var(--sf-product-detail-price); font-size: var(--sf-product-detail-price-size); }

.sf-detail-price span { color: var(--sf-product-detail-price-subtle); font-size: var(--sf-product-detail-price-subtle-size); margin-top: 3px; }

.sf-detail-stock { display: grid; gap: 4px; margin-top: 20px; color: var(--sf-product-stock-unavailable); font-size: var(--sf-product-stock-size); font-weight: 650; }
.sf-detail-stock.available { color: var(--sf-product-stock-available); }

.sf-add-row { display: grid; grid-template-columns: var(--sf-product-quantity-width) 1fr; gap: 12px; margin-top: 23px; }

.sf-add-row label > span { display: block; margin-bottom: 6px; font-size: var(--sf-font-tiny); font-weight: 650; }

.sf-add-row label > div, .sf-cart-quantity { height: var(--sf-product-control-height); display: grid; border: 1px solid var(--sf-product-control-border); border-radius: var(--sf-product-control-radius); overflow: hidden; background: var(--sf-product-control-bg); }

.sf-cart-quantity { grid-template-columns: 38px 1fr 38px; }
.sf-cart-quantity button { border: 0; background: var(--sf-soft-surface); }

.sf-add-row label input, .sf-cart-quantity input { width: 100%; height: 100%; border: 0; outline: 0; padding: 0 12px; text-align: center; background: transparent; color: var(--sf-product-control-text); appearance: textfield; }

.sf-add-cart { align-self: end; height: var(--sf-product-control-height); border: 0; border-radius: var(--sf-product-button-radius); background: var(--sf-product-button-bg); color: var(--sf-product-button-text); font-weight: 700; }

.sf-add-cart:disabled { background: var(--sf-product-button-disabled); cursor: not-allowed; }

.sf-detail-note { margin-top: 16px; border-radius: var(--sf-product-note-radius); background: var(--sf-product-note-bg); color: var(--sf-product-note-text); padding: 12px 14px; font-size: var(--sf-product-note-size); line-height: 1.45; }

.sf-description { margin-top: 36px; }

.storefront-app .sf-description h2 { font-size: var(--sf-product-detail-description-title-size); padding-bottom: 12px; border-bottom: 1px solid var(--sf-product-description-border); }

.sf-description p { color: var(--sf-product-description-text); font-size: var(--sf-product-description-text-size); line-height: 1.7; white-space: pre-line; }

.sf-search-page-head { padding: 50px 0 35px; }

.sf-search-page-head form { max-width: 720px; display: flex; margin-top: 26px; border: 1px solid var(--sf-input-border); border-radius: var(--sf-button-radius); overflow: hidden; }

.sf-search-page-head input { flex: 1; min-width: 0; border: 0; outline: 0; padding: 14px 20px; font-size: var(--sf-font-base); }

.sf-search-page-head button { border: 0; border-radius: var(--sf-button-radius); background: var(--sf-primary); color: var(--sf-primary-text); padding: 0 27px; }

/* Operational surfaces: one canonical density system for cart, checkout and account. */
.sf-cart-page,.sf-checkout-page { padding-top:var(--sf-op-page-top); padding-bottom:var(--sf-op-page-bottom); }
.sf-cart-page .sf-collection-title h1,.sf-checkout-page .sf-collection-title h1,.sf-account-panel-head h1,.sf-account-panel .sf-auth-header h1,.sf-order-detail-head h1 { margin:0; font-size:var(--sf-op-page-title); line-height:1.05; letter-spacing:-.025em; }
.sf-cart-page .sf-collection-title,.sf-checkout-page .sf-collection-title { padding:0 0 var(--sf-op-section-padding-y); }

.sf-cart-layout { display:grid; grid-template-columns:minmax(0,1fr) var(--sf-op-summary-width); gap:var(--sf-op-content-gap); margin-top:var(--sf-op-content-gap); align-items:start; }
.sf-cart-items { display:grid; gap:var(--sf-op-section-gap); min-width:0; }
.sf-cart-group { border-top:1px solid var(--sf-border); }
.sf-cart-group + .sf-cart-group { margin-top:var(--sf-op-section-gap); }
.sf-cart-group > h2 { margin:0; padding:var(--sf-op-section-padding-y) 0 calc(var(--sf-op-section-padding-y) / 2); font-size:var(--sf-font-base); }
.sf-cart-group-ready > h2 { color:var(--sf-success-text); }
.sf-cart-group-supplier > h2 { color:var(--sf-warning-text); }
.sf-cart-group-pending > h2 { color:var(--sf-muted); }
.sf-cart-items article { min-height:calc(var(--sf-op-cart-image-size) + var(--sf-op-section-padding-y)); display:grid; grid-template-columns:var(--sf-op-cart-image-size) minmax(220px,1fr) 118px 96px 58px; gap:var(--sf-op-row-gap); align-items:center; border-bottom:1px solid var(--sf-border); padding:calc(var(--sf-op-section-padding-y) / 2) 0; }
.sf-cart-image { width:var(--sf-op-cart-image-size); height:var(--sf-op-cart-image-size); display:grid; place-items:center; background:var(--sf-soft-surface); }
.sf-cart-image img { width:100%; height:100%; object-fit:contain; }
.sf-cart-copy { display:flex; flex-direction:column; gap:calc(var(--sf-op-row-gap) / 3); min-width:0; }
.sf-cart-copy > a { overflow-wrap:anywhere; font-size:var(--sf-font-medium); font-weight:650; line-height:1.3; }
.sf-cart-copy small { color:var(--sf-muted); font-size:var(--sf-font-tiny); }
.sf-cart-copy strong { margin-top:calc(var(--sf-op-row-gap) / 2); }
.sf-cart-stock { display:block; margin-top:calc(var(--sf-op-row-gap) / 3); color:var(--sf-success-text); font-size:var(--sf-font-tiny); font-weight:700; }
.sf-cart-stock.unavailable,.sf-cart-error,.sf-checkout-error { color:var(--sf-danger-text); }
.sf-cart-items .sf-cart-quantity { height:var(--sf-op-field-height); grid-template-columns:calc(var(--sf-op-field-height) * .82) 1fr calc(var(--sf-op-field-height) * .82); }
.sf-cart-line-total { text-align:right; }
.sf-cart-remove,.sf-clear-cart { border:0; background:transparent; color:var(--sf-danger-text); font-size:var(--sf-font-small); cursor:pointer; }
.sf-clear-cart { margin-top:var(--sf-op-section-padding-y); padding:0; }

.sf-cart-summary,.sf-checkout-card,.sf-account-panel,.sf-account-sidebar,.sf-order-aside section,.sf-address-form { border:1px solid var(--sf-border); border-radius:var(--sf-card-radius); background:var(--sf-surface); box-shadow:0 10px 32px color-mix(in srgb,var(--sf-text) var(--sf-shadow-strength),transparent); }
.sf-cart-summary,.sf-account-panel,.sf-checkout-card { padding:var(--sf-op-panel-padding); }
.sf-cart-summary { position:sticky; top:calc(var(--sf-op-page-top) + var(--sf-header-height)); align-self:start; }
.sf-cart-summary h2 { margin:0 0 var(--sf-op-section-padding-y); font-size:var(--sf-h2); }
.sf-cart-summary > div { display:flex; justify-content:space-between; gap:var(--sf-op-row-gap); padding:calc(var(--sf-op-section-padding-y) * .72) 0; border-bottom:1px solid var(--sf-border); font-size:var(--sf-font-small); }
.sf-cart-summary > div span:last-child { text-align:right; color:var(--sf-muted); }
.sf-cart-summary > .sf-cart-timing { display:block; border-bottom:0; color:var(--sf-muted); text-align:left; line-height:var(--sf-line-height); }
.sf-cart-summary > .sf-cart-timing span { color:inherit; text-align:left; }
.sf-cart-summary > button { width:100%; min-height:var(--sf-op-field-height); margin-top:var(--sf-op-section-padding-y); border:0; border-radius:var(--sf-button-radius); background:var(--sf-primary); color:var(--sf-primary-text); }
.sf-cart-summary p { color:var(--sf-muted); font-size:var(--sf-font-tiny); line-height:var(--sf-line-height); }
.sf-cart-empty { display:flex; flex-direction:column; gap:var(--sf-op-section-gap); }
.sf-cart-empty a { border-radius:var(--sf-button-radius); background:var(--sf-primary); color:var(--sf-primary-text); padding:calc(var(--sf-op-field-height) * .25) var(--sf-op-panel-padding); }

.sf-checkout-button { display:flex; align-items:center; justify-content:center; width:100%; min-height:var(--sf-op-field-height); margin-top:var(--sf-op-section-padding-y); border-radius:var(--sf-button-radius); background:var(--sf-primary); color:var(--sf-primary-text); }
.sf-checkout-error { margin-bottom:var(--sf-op-section-padding-y); padding:calc(var(--sf-op-section-padding-y) * .75) var(--sf-op-panel-padding); border:1px solid var(--sf-danger-border); border-radius:var(--sf-field-radius); background:var(--sf-danger-bg); }
.sf-checkout-success { margin:var(--sf-op-section-padding-y) 0; padding:calc(var(--sf-op-section-padding-y) * .75) var(--sf-op-panel-padding); border-radius:var(--sf-field-radius); background:var(--sf-success-bg); color:var(--sf-success-text); }
/* Checkout: progressive steps; the final payment step restores the right-hand order summary. */
.sf-checkout-layout { width:100%; min-width:0; }
.sf-checkout-stepper { display:grid; gap:var(--sf-op-section-gap); }
.sf-checkout-step-card { display:grid; gap:0; min-width:0; overflow:hidden; }
.sf-checkout-step-card:not(.active):not(.completed) { opacity:.62; }
.sf-checkout-step-head { display:grid; grid-template-columns:auto minmax(0,1fr) auto; align-items:center; gap:var(--sf-op-row-gap); }
.sf-checkout-step-head h2 { margin:0; font-size:var(--sf-h3); }
.sf-checkout-step-number { display:grid; place-items:center; width:var(--sf-op-field-height); height:var(--sf-op-field-height); border-radius:var(--sf-field-radius); background:var(--sf-soft-surface); color:var(--sf-text); font-size:var(--sf-font-small); font-weight:800; }
.sf-checkout-step-card.active .sf-checkout-step-number,.sf-checkout-step-card.completed .sf-checkout-step-number { background:var(--sf-primary); color:var(--sf-primary-text); }
.sf-checkout-step-body { display:grid; gap:var(--sf-op-section-gap); margin-top:var(--sf-op-section-padding-y); padding-top:var(--sf-op-section-padding-y); border-top:1px solid var(--sf-border); }
.sf-checkout-step-summary { margin-top:calc(var(--sf-op-section-padding-y) * .6); padding-top:calc(var(--sf-op-section-padding-y) * .6); border-top:1px solid var(--sf-border); }
.sf-checkout-step-summary-line { display:flex; align-items:baseline; justify-content:space-between; gap:var(--sf-op-row-gap); min-width:0; }
.sf-checkout-step-summary-line strong { min-width:0; font-size:var(--sf-font-small); overflow-wrap:anywhere; }
.sf-checkout-step-summary-line span { min-width:0; color:var(--sf-muted); font-size:var(--sf-font-small); text-align:right; overflow-wrap:anywhere; }
.sf-checkout-step-actions { display:flex; align-items:center; justify-content:flex-end; gap:var(--sf-op-row-gap); padding-top:var(--sf-op-section-padding-y); border-top:1px solid var(--sf-border); }
.sf-checkout-step-actions > button { min-height:var(--sf-op-field-height); }
.sf-checkout-card-note { color:var(--sf-muted); font-size:var(--sf-font-small); }
.sf-checkout-section-title-row p { margin:0; color:var(--sf-muted); font-size:var(--sf-font-small); line-height:var(--sf-line-height); }
.sf-checkout-section-title-row { display:flex; align-items:flex-start; justify-content:space-between; gap:var(--sf-op-row-gap); }

.sf-checkout-billing-summary { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:0 var(--sf-op-content-gap); }
.sf-checkout-billing-summary > div { min-width:0; display:grid; grid-template-columns:minmax(calc(var(--sf-op-summary-width) * .32),auto) minmax(0,1fr); column-gap:var(--sf-op-row-gap); row-gap:calc(var(--sf-op-row-gap) / 3); align-items:baseline; padding:calc(var(--sf-op-section-padding-y) * .62) 0; border-top:1px solid var(--sf-border); }
.sf-checkout-billing-summary > div:nth-child(-n+2) { border-top:0; }
.sf-checkout-billing-summary > .sf-checkout-billing-address-row { grid-column:1 / -1; border-top:1px solid var(--sf-border); }
.sf-checkout-billing-summary span { grid-row:1 / span 2; color:var(--sf-muted); font-size:var(--sf-font-tiny); font-weight:700; text-transform:uppercase; letter-spacing:.04em; }
.sf-checkout-billing-summary strong { min-width:0; overflow-wrap:anywhere; font-size:var(--sf-font-small); }
.sf-checkout-billing-summary small { grid-column:2; color:var(--sf-muted); font-size:var(--sf-font-tiny); overflow-wrap:anywhere; }

.sf-checkout-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:var(--sf-op-row-gap); }
.sf-checkout-card > label,.sf-checkout-grid label,.sf-address-form label,.sf-checkout-editor-modal label { display:grid; gap:calc(var(--sf-op-row-gap) / 2); color:var(--sf-text); font-size:var(--sf-font-small); font-weight:700; }
.sf-checkout-card input:not([type="checkbox"]):not([type="radio"]):not([type="file"]),.sf-checkout-card select,.sf-checkout-card textarea,.sf-checkout-grid input:not([type="checkbox"]):not([type="radio"]):not([type="file"]),.sf-checkout-grid select,.sf-address-form input:not([type="checkbox"]):not([type="radio"]):not([type="file"]),.sf-checkout-editor-modal input:not([type="checkbox"]):not([type="radio"]):not([type="file"]),.sf-checkout-editor-modal select,.sf-checkout-editor-modal textarea,.sf-auth-field input:not([type="checkbox"]):not([type="radio"]):not([type="file"]),.sf-auth-field select,.sf-auth-field textarea,.sf-return-field input:not([type="checkbox"]):not([type="radio"]):not([type="file"]),.sf-return-field select,.sf-privacy-grid article input:not([type="checkbox"]):not([type="radio"]):not([type="file"]),.sf-privacy-grid article textarea { width:100%; min-width:0; min-height:var(--sf-op-field-height); box-sizing:border-box; padding:0 var(--sf-op-field-padding-x); border:1px solid var(--sf-input-border); border-radius:var(--sf-field-radius); background:var(--sf-input-bg); color:var(--sf-text); font:inherit; }
.sf-checkout-card textarea,.sf-checkout-editor-modal textarea,.sf-auth-field textarea,.sf-privacy-grid article textarea { min-height:calc(var(--sf-op-field-height) * 1.65); padding-top:calc(var(--sf-op-field-height) * .2); padding-bottom:calc(var(--sf-op-field-height) * .2); resize:vertical; }
.sf-address-fields-block { display:grid; gap:var(--sf-op-section-gap); }
.sf-address-fields-block h3 { margin:0; font-size:var(--sf-font-base); }
.sf-checkout-check { display:flex; align-items:center; gap:var(--sf-op-row-gap); }
.sf-checkout-check input { width:calc(var(--sf-op-field-height) * .42); min-height:auto; height:calc(var(--sf-op-field-height) * .42); }
.sf-checkout-save-account { padding:var(--sf-op-section-padding-y) 0; border-top:1px solid var(--sf-border); border-bottom:1px solid var(--sf-border); }

.sf-checkout-delivery-summary,.sf-checkout-empty-address { display:grid; gap:calc(var(--sf-op-row-gap) / 3); padding:calc(var(--sf-op-section-padding-y) * .7) var(--sf-op-field-padding-x); border:1px solid var(--sf-border); border-radius:var(--sf-field-radius); background:var(--sf-soft-surface); }
.sf-checkout-delivery-summary strong,.sf-checkout-empty-address strong { font-size:var(--sf-font-medium); }
.sf-checkout-delivery-summary span,.sf-checkout-empty-address span { color:var(--sf-muted); font-size:var(--sf-font-small); line-height:var(--sf-line-height); }

.sf-delivery-mode-inline { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:var(--sf-op-row-gap); }
.sf-delivery-mode-inline > label { display:grid; grid-template-columns:auto minmax(0,1fr); gap:var(--sf-op-row-gap); padding:calc(var(--sf-op-section-padding-y) * .7) var(--sf-op-field-padding-x); border:1px solid var(--sf-border); border-radius:var(--sf-field-radius); cursor:pointer; }
.sf-delivery-mode-inline > label:has(input:checked) { border-color:var(--sf-input-focus); box-shadow:inset 0 0 0 1px var(--sf-input-focus); }
.sf-delivery-mode-inline input,.sf-shipping-option > input,.sf-payment-tile > input { width:calc(var(--sf-op-field-height) * .42); min-height:auto; height:calc(var(--sf-op-field-height) * .42); margin-top:calc(var(--sf-op-row-gap) / 4); }
.sf-delivery-mode-inline strong,.sf-delivery-mode-inline small { display:block; }
.sf-delivery-mode-inline small { margin-top:calc(var(--sf-op-row-gap) / 4); color:var(--sf-muted); font-weight:500; }
.sf-checkout-shipping-mode-summary { display:flex; align-items:center; justify-content:space-between; gap:var(--sf-op-row-gap); padding:calc(var(--sf-op-section-padding-y) * .55) var(--sf-op-field-padding-x); border:1px solid var(--sf-border); border-radius:var(--sf-field-radius); background:var(--sf-soft-surface); font-size:var(--sf-font-small); font-weight:700; }
.sf-split-shipping-groups { display:grid; gap:var(--sf-op-section-gap); }
.sf-shipping-group-card { overflow:hidden; border:1px solid var(--sf-border); border-radius:var(--sf-field-radius); background:var(--sf-surface); }
.sf-shipping-group-head { padding:calc(var(--sf-op-section-padding-y) * .6) var(--sf-op-field-padding-x); border-bottom:1px solid var(--sf-border); background:var(--sf-soft-surface); }
.sf-shipping-group-head strong { font-size:var(--sf-font-small); }
.sf-shipping-option-list { display:grid; }
.sf-shipping-option { display:grid; grid-template-columns:auto minmax(0,1fr) auto; gap:var(--sf-op-row-gap); align-items:start; padding:calc(var(--sf-op-section-padding-y) * .62) var(--sf-op-field-padding-x); border-top:1px solid var(--sf-border); cursor:pointer; }
.sf-shipping-option:first-child { border-top:0; }
.sf-shipping-option.selected { background:var(--sf-soft-surface); box-shadow:inset calc(var(--sf-op-row-gap) / 3) 0 0 var(--sf-input-focus); }
.sf-shipping-option-copy { display:grid; gap:calc(var(--sf-op-row-gap) / 3); min-width:0; }
.sf-shipping-option-copy strong { font-size:var(--sf-font-medium); }
.sf-shipping-option-copy small { color:var(--sf-muted); font-size:var(--sf-font-small); line-height:1.35; }
.sf-shipping-option-price { padding-top:calc(var(--sf-op-row-gap) / 4); font-size:var(--sf-font-medium); white-space:nowrap; }

.sf-checkout-credit-row { display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:center; gap:var(--sf-op-row-gap); }
.sf-checkout-credit-label { display:flex; align-items:baseline; gap:var(--sf-op-row-gap); min-width:0; color:var(--sf-muted); font-size:var(--sf-font-small); }
.sf-checkout-credit-label strong { color:var(--sf-text); font-size:var(--sf-font-medium); white-space:nowrap; }
.sf-checkout-credit-controls { display:grid; grid-template-columns:minmax(calc(var(--sf-op-field-height) * 3),calc(var(--sf-op-summary-width) * .42)) auto auto auto; gap:var(--sf-op-row-gap); align-items:center; }
.sf-checkout-credit-controls .button { min-height:var(--sf-op-field-height); }
.sf-checkout-note-field { display:grid; gap:calc(var(--sf-op-row-gap) / 2); }
.sf-checkout-note-field > span { display:flex; justify-content:space-between; gap:var(--sf-op-row-gap); }
.sf-checkout-note-field small { color:var(--sf-muted); font-weight:500; }
.sf-checkout-notes-compact { min-height:calc(var(--sf-op-field-height) * 1.45); }
.sf-text-button { border:0; background:transparent; color:var(--sf-link); padding:0; font:inherit; font-weight:700; text-decoration:underline; text-underline-offset:2px; cursor:pointer; }

.sf-checkout-final-grid { display:grid; grid-template-columns:minmax(0,1fr) var(--sf-op-summary-width); gap:var(--sf-op-content-gap); align-items:start; }
.sf-checkout-payment-panel { display:grid; gap:var(--sf-op-section-gap); min-width:0; }
.sf-checkout-final-section-head { display:grid; gap:calc(var(--sf-op-row-gap) / 3); }
.sf-checkout-final-section-head h3,.sf-checkout-order-summary-head h3 { margin:0; font-size:var(--sf-font-base); }
.sf-checkout-final-section-head p { margin:0; color:var(--sf-muted); font-size:var(--sf-font-small); }
.sf-payment-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:var(--sf-op-row-gap); }
.sf-payment-tile { display:grid; grid-template-columns:auto 72px minmax(0,1fr); gap:var(--sf-op-row-gap); align-items:center; min-width:0; padding:calc(var(--sf-op-section-padding-y) * .72) var(--sf-op-field-padding-x); border:1px solid var(--sf-border); border-radius:var(--sf-field-radius); background:var(--sf-surface); cursor:pointer; }
.sf-payment-tile.selected { border-color:var(--sf-input-focus); background:var(--sf-soft-surface); box-shadow:inset calc(var(--sf-op-row-gap) / 3) 0 0 var(--sf-input-focus); }
.sf-payment-copy { min-width:0; }
.sf-payment-tile strong,.sf-payment-tile small { display:block; min-width:0; overflow-wrap:anywhere; }
.sf-payment-tile strong { font-size:var(--sf-font-small); }
.sf-payment-tile small { margin-top:calc(var(--sf-op-row-gap) / 3); color:var(--sf-muted); font-size:var(--sf-font-tiny); font-weight:500; line-height:1.3; }
.sf-payment-mark { width:72px; height:38px; display:flex; align-items:center; justify-content:center; border:1px solid color-mix(in srgb,var(--sf-border) 80%,transparent); border-radius:var(--sf-field-radius); background:var(--sf-surface); color:var(--sf-text); overflow:hidden; }
.sf-payment-mark-logo img { display:block; width:auto; height:auto; max-width:58px; max-height:24px; object-fit:contain; }
.sf-payment-mark-klarna img { max-width:56px; max-height:22px; }
.sf-payment-mark-revolut_pay img { max-width:52px; max-height:23px; }
.sf-payment-mark-amazon_pay img { max-width:54px; max-height:24px; }
.sf-payment-mark-paypal img { max-width:58px; max-height:22px; }
.sf-payment-mark-generic svg { width:28px; height:28px; fill:none; stroke:currentColor; stroke-width:1.65; stroke-linecap:round; stroke-linejoin:round; }

.sf-checkout-order-summary { position:sticky; top:var(--sf-op-page-top); display:grid; gap:var(--sf-op-section-gap); padding:var(--sf-op-panel-padding); border:1px solid var(--sf-border); border-radius:var(--sf-card-radius); background:var(--sf-surface); box-shadow:0 10px 32px color-mix(in srgb,var(--sf-text) var(--sf-shadow-strength),transparent); }
.sf-checkout-order-summary-head { padding-bottom:var(--sf-op-section-padding-y); border-bottom:1px solid var(--sf-border); }
.sf-checkout-order-meta { display:grid; }
.sf-checkout-order-meta > div { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:calc(var(--sf-op-row-gap) / 3) var(--sf-op-row-gap); padding:calc(var(--sf-op-section-padding-y) * .55) 0; border-top:1px solid var(--sf-border); }
.sf-checkout-order-meta > div:first-child { border-top:0; }
.sf-checkout-order-meta span { grid-column:1 / -1; color:var(--sf-muted); font-size:var(--sf-font-tiny); font-weight:700; text-transform:uppercase; letter-spacing:.04em; }
.sf-checkout-order-meta strong { min-width:0; font-size:var(--sf-font-small); overflow-wrap:anywhere; }
.sf-checkout-summary-amounts { display:grid; gap:calc(var(--sf-op-row-gap) * .75); padding-top:var(--sf-op-section-padding-y); border-top:1px solid var(--sf-border); }
.sf-checkout-summary-amounts > div { display:flex; justify-content:space-between; gap:var(--sf-op-row-gap); font-size:var(--sf-font-small); }
.sf-checkout-summary-amounts span small { color:var(--sf-muted); font-size:var(--sf-font-tiny); }
.sf-checkout-summary-amounts .total { margin-top:calc(var(--sf-op-row-gap) / 2); padding-top:var(--sf-op-section-padding-y); border-top:1px solid var(--sf-border); font-size:var(--sf-h3); }
.sf-checkout-terms { align-items:flex-start; padding-top:var(--sf-op-section-padding-y); border-top:1px solid var(--sf-border); }
.sf-checkout-step-card .sf-checkout-check { color:var(--sf-text); font-size:var(--sf-font-small); font-weight:700; line-height:var(--sf-line-height); }
.sf-checkout-step-card .sf-checkout-check a { color:var(--sf-link); text-decoration:underline; }
.sf-checkout-final-action { width:100%; min-height:var(--sf-op-field-height); border:0; border-radius:var(--sf-button-radius); background:var(--sf-primary); color:var(--sf-primary-text); }
.sf-checkout-final-action:disabled { opacity:.5; }

.sf-modal-backdrop { position:fixed; inset:0; z-index:2000; display:grid; place-items:center; padding:var(--sf-op-panel-padding); background:color-mix(in srgb,var(--sf-text) 38%,transparent); }
.sf-shipment-modal { width:min(var(--sf-op-modal-width),100%); max-height:80vh; overflow:auto; border:1px solid var(--sf-border); border-radius:var(--sf-card-radius); background:var(--sf-surface); box-shadow:0 20px 70px color-mix(in srgb,var(--sf-text) 20%,transparent); }
.sf-shipment-modal-head { position:sticky; top:0; z-index:1; display:flex; justify-content:space-between; gap:var(--sf-op-row-gap); padding:var(--sf-op-panel-padding); border-bottom:1px solid var(--sf-border); background:var(--sf-surface); }
.sf-shipment-modal-head h2 { margin:0; font-size:var(--sf-h2); }
.sf-shipment-modal-head > button { width:var(--sf-op-field-height); height:var(--sf-op-field-height); border:1px solid var(--sf-border); border-radius:var(--sf-field-radius); background:var(--sf-surface); font-size:var(--sf-h3); cursor:pointer; }
.sf-shipment-modal-body { display:grid; gap:var(--sf-op-section-gap); padding:var(--sf-op-panel-padding); }
.sf-shipment-modal-group { display:grid; gap:0; }
.sf-shipment-modal-group h3 { margin:0; padding:calc(var(--sf-op-section-padding-y) * .6) 0; font-size:var(--sf-font-base); }
.sf-shipment-modal-line { display:grid; grid-template-columns:var(--sf-op-modal-image-size) minmax(0,1fr) auto; align-items:center; gap:var(--sf-op-row-gap); min-height:calc(var(--sf-op-modal-image-size) + var(--sf-op-row-gap)); padding:calc(var(--sf-op-row-gap) / 2) 0; border-top:1px solid var(--sf-border); }
.sf-shipment-modal-image { width:var(--sf-op-modal-image-size); height:var(--sf-op-modal-image-size); display:grid; place-items:center; overflow:hidden; background:var(--sf-soft-surface); }
.sf-shipment-modal-image img { width:100%; height:100%; object-fit:contain; }
.sf-shipment-modal-line > strong { min-width:0; overflow-wrap:anywhere; font-size:var(--sf-font-small); line-height:1.25; }
.sf-shipment-modal-line > small { color:var(--sf-muted); font-size:var(--sf-font-small); white-space:nowrap; }

.sf-checkout-editor-modal { width:min(var(--sf-op-modal-width),100%); max-height:calc(100vh - (var(--sf-op-panel-padding) * 2)); overflow:auto; border:1px solid var(--sf-border); border-radius:var(--sf-card-radius); background:var(--sf-surface); box-shadow:0 20px 70px color-mix(in srgb,var(--sf-text) 20%,transparent); }
.sf-checkout-editor-body { display:grid; gap:var(--sf-op-section-gap); padding:var(--sf-op-panel-padding); }
.sf-checkout-modal-actions { display:flex; justify-content:flex-end; gap:var(--sf-op-row-gap); padding-top:var(--sf-op-section-padding-y); border-top:1px solid var(--sf-border); }
.sf-checkout-address-list { display:grid; gap:var(--sf-op-row-gap); }
.sf-checkout-address-list article { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:var(--sf-op-row-gap); align-items:center; border:1px solid var(--sf-border); border-radius:var(--sf-field-radius); padding:calc(var(--sf-op-section-padding-y) * .65) var(--sf-op-field-padding-x); }
.sf-checkout-address-list article.selected { border-color:var(--sf-input-focus); box-shadow:inset calc(var(--sf-op-row-gap) / 3) 0 0 var(--sf-input-focus); }
.sf-checkout-address-select { min-width:0; display:grid; gap:calc(var(--sf-op-row-gap) / 3); border:0; background:transparent; color:var(--sf-text); text-align:left; cursor:pointer; }
.sf-checkout-address-select > span { color:var(--sf-muted); font-size:var(--sf-font-small); line-height:1.35; }
.sf-checkout-address-select > span:first-child { display:flex; align-items:center; gap:var(--sf-op-row-gap); color:var(--sf-text); }
.sf-checkout-address-select small { color:var(--sf-muted); font-size:var(--sf-font-tiny); font-weight:700; text-transform:uppercase; letter-spacing:.04em; }

.sf-account-page { width:min(var(--sf-content-width),calc(100% - (var(--sf-op-page-gutter) * 2))); margin:var(--sf-op-page-top) auto var(--sf-op-page-bottom); padding:0; display:grid; grid-template-columns:var(--sf-op-account-sidebar-width) minmax(0,1fr); gap:var(--sf-op-content-gap); align-items:start; }
.sf-account-sidebar { position:sticky; top:calc(var(--sf-op-page-top) + var(--sf-header-height)); overflow:hidden; }
.sf-account-sidebar-head { display:grid; gap:calc(var(--sf-op-row-gap) / 3); padding:var(--sf-op-panel-padding); border-bottom:1px solid var(--sf-border); background:var(--sf-soft-surface); }
.sf-account-sidebar-head span { color:var(--sf-muted); font-size:var(--sf-font-tiny); font-weight:800; letter-spacing:.08em; text-transform:uppercase; }
.sf-account-sidebar-head strong { overflow:hidden; color:var(--sf-text); font-size:var(--sf-font-large); text-overflow:ellipsis; white-space:nowrap; }
.sf-account-sidebar-head small { overflow:hidden; color:var(--sf-muted); font-size:var(--sf-font-small); text-overflow:ellipsis; white-space:nowrap; }
.sf-account-sidebar-nav { display:grid; padding:calc(var(--sf-op-panel-padding) / 2); }
.sf-account-sidebar-nav a { display:flex; align-items:center; justify-content:space-between; min-height:var(--sf-op-field-height); padding:0 var(--sf-op-field-padding-x); border-radius:var(--sf-field-radius); color:var(--sf-link); font-size:var(--sf-font-small); font-weight:720; }
.sf-account-sidebar-nav a:hover { background:var(--sf-soft-surface); color:var(--sf-link-hover); }
.sf-account-sidebar-nav a.active { background:var(--sf-primary); color:var(--sf-primary-text); }
.sf-account-sidebar-footer { display:grid; gap:calc(var(--sf-op-row-gap) / 2); padding:calc(var(--sf-op-panel-padding) * .7); border-top:1px solid var(--sf-border); }
.sf-account-sidebar-footer a,.sf-account-sidebar-footer button { min-height:var(--sf-op-field-height); display:flex; align-items:center; justify-content:center; border:1px solid var(--sf-border); border-radius:var(--sf-button-radius); background:var(--sf-surface); color:var(--sf-link); }
.sf-account-sidebar-footer button { color:var(--sf-danger-text); cursor:pointer; }
.sf-account-sidebar-footer a:hover,.sf-account-sidebar-footer button:hover { background:var(--sf-soft-surface); }
.sf-account-panel { min-width:0; }
.sf-account-panel-head,.sf-order-detail-head { display:flex; justify-content:space-between; gap:var(--sf-op-row-gap); align-items:flex-start; margin-bottom:var(--sf-op-section-padding-y); }
.sf-account-panel-head p,.sf-order-detail-head p { margin:0 0 calc(var(--sf-op-row-gap) / 2); color:var(--sf-muted); font-size:var(--sf-font-small); text-transform:uppercase; letter-spacing:.08em; }
.sf-account-panel-head > a,.sf-account-panel-head > button,.sf-account-head-actions > a { min-height:var(--sf-op-field-height); display:inline-flex; align-items:center; justify-content:center; padding:0 var(--sf-op-panel-padding); border:0; border-radius:var(--sf-button-radius); background:var(--sf-primary); color:var(--sf-primary-text); font-family:var(--sf-button-font-family); font-size:var(--sf-font-button); font-weight:var(--sf-button-font-weight); }
.sf-account-head-actions { display:flex; gap:var(--sf-op-row-gap); flex-wrap:wrap; justify-content:flex-end; }
.sf-account-help { margin:0 0 var(--sf-op-section-padding-y); color:var(--sf-muted); font-size:var(--sf-font-small); line-height:var(--sf-line-height); }
.sf-account-inline-help { display:block; color:var(--sf-muted); font-size:var(--sf-font-tiny); line-height:var(--sf-line-height); }
.sf-billing-fields { display:grid; gap:var(--sf-op-section-gap); }

.sf-orders-list { display:grid; gap:var(--sf-op-row-gap); }
.sf-orders-list > a { display:grid; grid-template-columns:minmax(190px,1fr) minmax(170px,.8fr) minmax(140px,.5fr); gap:var(--sf-op-row-gap); align-items:center; padding:calc(var(--sf-op-section-padding-y) * .7) var(--sf-op-field-padding-x); border:1px solid var(--sf-border); border-radius:var(--sf-field-radius); color:var(--sf-text); }
.sf-orders-list > a:hover { border-color:var(--sf-input-focus); }
.sf-orders-list > a > div { display:grid; gap:calc(var(--sf-op-row-gap) / 2); }
.sf-orders-list > a > div:last-child { text-align:right; }
.sf-orders-list span,.sf-orders-list small { color:var(--sf-muted); font-size:var(--sf-font-small); }
.sf-order-status { display:inline-flex; width:max-content; align-items:center; padding:calc(var(--sf-op-row-gap) / 2) var(--sf-op-field-padding-x); border-radius:var(--sf-button-radius); background:var(--sf-soft-surface); color:var(--sf-muted); font-size:var(--sf-font-small); font-weight:800; }
.sf-order-detail-grid { display:grid; grid-template-columns:minmax(0,1fr) var(--sf-op-summary-width); gap:var(--sf-op-content-gap); }
.sf-order-aside section { padding:var(--sf-op-panel-padding); margin-bottom:var(--sf-op-section-gap); }
.sf-order-aside section h3 { margin:0 0 var(--sf-op-section-gap); }
.sf-order-aside section > div { display:flex; justify-content:space-between; gap:var(--sf-op-row-gap); margin:calc(var(--sf-op-row-gap) / 2) 0; font-size:var(--sf-font-small); }
.sf-order-aside section > div.total { padding-top:var(--sf-op-section-gap); border-top:1px solid var(--sf-border); font-size:var(--sf-font-base); }
.sf-address-form { margin-bottom:var(--sf-op-section-gap); padding:var(--sf-op-panel-padding); }
.sf-address-actions { display:flex; gap:var(--sf-op-row-gap); flex-wrap:wrap; }
.sf-address-actions button { min-height:var(--sf-op-field-height); padding:0 var(--sf-op-panel-padding); border:0; border-radius:var(--sf-button-radius); background:var(--sf-primary); color:var(--sf-primary-text); }
.sf-address-actions button[type="button"] { background:var(--sf-surface); color:var(--sf-link); border:1px solid var(--sf-border); }
.sf-address-list { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:var(--sf-op-row-gap); }
.sf-address-list article { padding:calc(var(--sf-op-section-padding-y) * .7) var(--sf-op-field-padding-x); border:1px solid var(--sf-border); border-radius:var(--sf-field-radius); }
.sf-address-list article > div:first-child { display:flex; justify-content:space-between; gap:var(--sf-op-row-gap); }
.sf-address-list article > div:first-child span { padding:calc(var(--sf-op-row-gap) / 2) var(--sf-op-field-padding-x); border-radius:var(--sf-button-radius); background:var(--sf-soft-surface); color:var(--sf-muted); font-size:var(--sf-font-tiny); font-weight:800; }
.sf-address-list article > div:last-child { display:flex; gap:var(--sf-op-row-gap); }
.sf-address-list button { min-height:calc(var(--sf-op-field-height) * .8); padding:0 var(--sf-op-field-padding-x); border:1px solid var(--sf-border); border-radius:var(--sf-button-radius); background:var(--sf-surface); }
.sf-address-list button.danger { color:var(--sf-danger-text); }
.sf-bank-receipt { display:grid; gap:var(--sf-op-row-gap); }
.sf-bank-receipt > button { min-height:var(--sf-op-field-height); padding:0 var(--sf-op-field-padding-x); border:1px solid var(--sf-success-border); border-radius:var(--sf-button-radius); background:var(--sf-surface); }
.sf-bank-receipt > button:not(.sf-receipt-file) { background:var(--sf-primary); color:var(--sf-primary-text); }
.sf-receipt-file { display:flex; justify-content:space-between; gap:var(--sf-op-row-gap); width:100%; text-align:left; color:var(--sf-success-text); }

.sf-privacy-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:var(--sf-op-row-gap); margin-top:var(--sf-op-section-padding-y); }
.sf-privacy-grid article { border:1px solid var(--sf-border); border-radius:var(--sf-field-radius); padding:var(--sf-op-panel-padding); background:var(--sf-surface); }
.sf-privacy-grid article h2 { margin:0 0 var(--sf-op-section-gap); }
.sf-privacy-grid article p { color:var(--sf-muted); line-height:var(--sf-line-height); }
.sf-privacy-grid article form { display:grid; gap:var(--sf-op-row-gap); }
.sf-privacy-grid article label { display:grid; gap:calc(var(--sf-op-row-gap) / 2); font-size:var(--sf-font-small); font-weight:700; }
.sf-privacy-grid .danger-zone { border-color:var(--sf-danger-border); background:var(--sf-danger-bg); }
.sf-privacy-grid button.danger { background:var(--sf-danger-text); color:var(--sf-primary-text); border-color:var(--sf-danger-text); }
.sf-privacy-history { margin-top:var(--sf-op-content-gap); }
.sf-privacy-history article { display:flex; justify-content:space-between; align-items:center; gap:var(--sf-op-row-gap); border-top:1px solid var(--sf-border); padding:var(--sf-op-section-padding-y) 0; }
.sf-privacy-history article > div { display:grid; gap:calc(var(--sf-op-row-gap) / 2); }
.sf-privacy-history article span { font-size:var(--sf-font-small); color:var(--sf-muted); }

.sf-auth-card.sf-account-panel { padding:var(--sf-op-panel-padding); }
.sf-account-panel .sf-auth-header { margin-bottom:var(--sf-op-section-padding-y); }
.sf-account-panel .sf-auth-header h1 { margin:0; }
.sf-account-panel .sf-auth-header p { margin:calc(var(--sf-op-row-gap) / 2) 0 0; color:var(--sf-muted); }
.sf-account-panel .sf-auth-form { display:grid; gap:var(--sf-op-section-gap); }
.sf-account-panel .sf-auth-section { display:grid; gap:var(--sf-op-section-gap); padding-top:var(--sf-op-section-padding-y); border-top:1px solid var(--sf-border); }
.sf-account-panel .sf-auth-section h2 { margin:0; font-size:var(--sf-h2); }
.sf-account-panel .sf-auth-section p { margin:0; color:var(--sf-muted); font-size:var(--sf-font-small); }
.sf-account-panel .sf-auth-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:var(--sf-op-row-gap); }
.sf-account-panel .sf-auth-grid-three { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:var(--sf-op-row-gap); }
.sf-account-panel .sf-auth-full { grid-column:1 / -1; }
.sf-account-panel .sf-auth-field { display:grid; gap:calc(var(--sf-op-row-gap) / 2); }
.sf-account-panel .sf-auth-field span { color:var(--sf-text); font-size:var(--sf-font-small); font-weight:700; }
.sf-account-panel .sf-auth-status-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:var(--sf-op-row-gap); margin-bottom:var(--sf-op-section-padding-y); }
.sf-account-panel .sf-auth-status-box { border:1px solid var(--sf-border); border-radius:var(--sf-field-radius); padding:calc(var(--sf-op-section-padding-y) * .7) var(--sf-op-field-padding-x); background:var(--sf-soft-surface); }
.sf-account-panel .sf-auth-status-box span,.sf-account-panel .sf-auth-status-box strong { display:block; }
.sf-account-panel .sf-auth-status-box span { color:var(--sf-muted); font-size:var(--sf-font-tiny); text-transform:uppercase; letter-spacing:.04em; }
.sf-account-panel .sf-auth-status-box strong { margin-top:calc(var(--sf-op-row-gap) / 3); font-size:var(--sf-font-medium); }
.sf-account-panel .sf-auth-section-heading { display:flex; justify-content:space-between; align-items:flex-start; gap:var(--sf-op-row-gap); }
.sf-account-panel .sf-auth-section-heading > div { display:grid; gap:calc(var(--sf-op-row-gap) / 2); }
.sf-account-panel .sf-auth-section-heading h2,.sf-account-panel .sf-auth-section-heading p { margin:0; }
.sf-account-panel .sf-auth-actions { display:flex; align-items:center; gap:var(--sf-op-row-gap); flex-wrap:wrap; }
.sf-account-panel .sf-auth-primary,.sf-account-panel .sf-auth-secondary { min-height:var(--sf-op-field-height); display:inline-flex; align-items:center; justify-content:center; padding:0 var(--sf-op-panel-padding); border-radius:var(--sf-button-radius); }
.sf-account-panel .sf-auth-primary { border:1px solid var(--sf-primary); background:var(--sf-primary); color:var(--sf-primary-text); }
.sf-account-panel .sf-auth-secondary { border:1px solid var(--sf-border); background:var(--sf-surface); color:var(--sf-text); }
.sf-account-panel .sf-auth-notice,.sf-account-panel .sf-auth-error,.sf-account-panel .sf-auth-success { margin:0; border-radius:var(--sf-field-radius); padding:calc(var(--sf-op-section-padding-y) * .7) var(--sf-op-field-padding-x); font-size:var(--sf-font-small); line-height:var(--sf-line-height); }
.sf-account-panel .sf-auth-notice { border:1px solid var(--sf-warning-border); background:var(--sf-warning-bg); color:var(--sf-warning-text); }
.sf-account-panel .sf-auth-error { border:1px solid var(--sf-danger-border); background:var(--sf-danger-bg); color:var(--sf-danger-text); }
.sf-account-panel .sf-auth-success { border:1px solid var(--sf-success-border); background:var(--sf-success-bg); color:var(--sf-success-text); }

.sf-return-page { padding:var(--sf-op-panel-padding); }
.sf-return-page .sf-account-panel-head { align-items:center; margin-bottom:var(--sf-op-section-padding-y); }
.sf-return-help { margin:0 0 var(--sf-op-section-gap); }
.sf-return-search-row { max-width:calc(var(--sf-op-summary-width) * 1.55); }
.sf-return-field { display:grid; gap:calc(var(--sf-op-row-gap) / 2); min-width:0; color:var(--sf-text); font-size:var(--sf-font-small); font-weight:700; }
.sf-return-suggestions { display:grid; gap:calc(var(--sf-op-row-gap) / 2); max-width:calc(var(--sf-op-summary-width) * 2.2); margin-top:var(--sf-op-row-gap); }
.sf-return-suggestion { width:100%; display:flex; align-items:center; justify-content:space-between; gap:var(--sf-op-row-gap); padding:calc(var(--sf-op-section-padding-y) * .65) var(--sf-op-field-padding-x); border:1px solid var(--sf-border); border-radius:var(--sf-field-radius); background:var(--sf-surface); color:var(--sf-text); text-align:left; cursor:pointer; }
.sf-return-suggestion:hover { border-color:var(--sf-input-focus); background:var(--sf-soft-surface); }
.sf-return-suggestion > div { display:grid; gap:calc(var(--sf-op-row-gap) / 3); min-width:0; }
.sf-return-suggestion span,.sf-return-suggestion small,.sf-return-empty-search { color:var(--sf-muted); font-size:var(--sf-font-small); }
.sf-return-empty-search { display:block; margin-top:var(--sf-op-row-gap); }
.sf-return-lines { margin-top:var(--sf-op-section-padding-y); border:1px solid var(--sf-border); border-radius:var(--sf-card-radius); overflow:hidden; background:var(--sf-surface); }
.sf-return-line-head,.sf-return-line { display:grid; grid-template-columns:minmax(260px,1.5fr) 78px minmax(150px,.7fr) minmax(160px,.8fr) auto; gap:var(--sf-op-row-gap); align-items:center; }
.sf-return-line-head { min-height:var(--sf-op-field-height); padding:0 var(--sf-op-field-padding-x); background:var(--sf-soft-surface); color:var(--sf-muted); font-size:var(--sf-font-tiny); font-weight:700; }
.sf-return-line { padding:calc(var(--sf-op-section-padding-y) * .65) var(--sf-op-field-padding-x); border-top:1px solid var(--sf-border); }
.sf-return-line-product { display:grid; gap:calc(var(--sf-op-row-gap) / 3); min-width:0; }
.sf-return-line-product small,.sf-return-line-product span { color:var(--sf-muted); font-size:var(--sf-font-tiny); }
.sf-return-line-product strong { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-size:var(--sf-font-medium); }
.sf-return-line .sf-return-field > span { display:none; }
.sf-return-qty input { text-align:center; }
.sf-return-remove { min-height:var(--sf-op-field-height); padding:0 var(--sf-op-field-padding-x); border:1px solid var(--sf-border); border-radius:var(--sf-button-radius); background:var(--sf-surface); color:var(--sf-danger-text); cursor:pointer; white-space:nowrap; }
.sf-return-submit-compact { display:grid; grid-template-columns:minmax(220px,1fr) auto; gap:var(--sf-op-row-gap); align-items:end; margin-top:var(--sf-op-section-padding-y); }
.sf-return-general-note { min-width:0; }
.sf-return-submit-compact .sf-checkout-button { width:auto; min-width:calc(var(--sf-op-summary-width) * .52); min-height:var(--sf-op-field-height); margin:0; padding:0 var(--sf-op-panel-padding); }
.sf-return-submit-compact > small { grid-column:1 / -1; color:var(--sf-muted); font-size:var(--sf-font-small); }
.sf-return-list { display:grid; gap:var(--sf-op-row-gap); }
.sf-return-list article { display:grid; grid-template-columns:minmax(190px,1fr) minmax(180px,.8fr) auto; gap:var(--sf-op-row-gap); align-items:center; padding:calc(var(--sf-op-section-padding-y) * .65) var(--sf-op-field-padding-x); border:1px solid var(--sf-border); border-radius:var(--sf-field-radius); }
.sf-return-list article > div { display:grid; gap:calc(var(--sf-op-row-gap) / 3); }
.sf-return-list article span,.sf-return-list article small { color:var(--sf-muted); font-size:var(--sf-font-small); }

/* Canonical responsive rules outside cart/checkout/account, preserved from the storefront baseline. */
@media (max-width:1120px) {
  .sf-product-detail { gap: var(--sf-product-detail-tablet-gap); }
  .sf-detail-image { min-height: var(--sf-product-detail-tablet-image-min-height); }
  .sf-root-categories, .sf-subcollections { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .sf-product-grid { grid-template-columns: repeat(var(--sf-collection-columns-tablet), minmax(0, 1fr)); }
}

@media (max-width:820px) {
  .sf-home-hero { grid-template-columns: 1fr; gap: 24px; padding: 36px 28px; }
  .storefront-app h1 { font-size: var(--sf-h1-mobile); }
  .storefront-app h2 { font-size: var(--sf-h2-mobile); }
  .sf-root-category strong, .sf-detail-price strong { font-size: var(--sf-h2-mobile); }
  .sf-header-layout.sf-desktop-header { display: none; }
  .sf-header-layout.sf-mobile-header { display: grid; }
  .sf-category-bar.sf-desktop-nav { display: none; }
  .sf-category-bar.sf-mobile-nav { display: flex; justify-content: flex-start; min-height: 44px; padding: 0 12px; }
  .sf-category-bar button { min-width: 90px; padding: 0 15px; }
  .sf-page-wrap, .sf-home-section { width: min(calc(100% - (var(--sf-page-gutter-mobile) * 2)), var(--sf-content-width)); }
  .sf-root-categories, .sf-subcollections { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .sf-product-grid { grid-template-columns: repeat(var(--sf-collection-columns-mobile), minmax(0, 1fr)); }
  .sf-product-detail { grid-template-columns: 1fr; gap: var(--sf-product-detail-mobile-gap); }
  .sf-detail-image { min-height: 0; padding: var(--sf-product-detail-mobile-image-padding); }
  .sf-detail-info { padding-top: var(--sf-product-detail-mobile-info-padding-top); }
  .sf-catalog-toolbar { align-items: stretch; flex-direction: column; }
  .sf-catalog-toolbar form { width: 100%; }
  .sf-catalog-toolbar select { align-self: flex-end; }
  .sf-footer { margin-top: 50px; }
}

@media (max-width:540px) {
  .sf-add-row { grid-template-columns: 1fr; }
  .sf-home-hero { padding: 28px 22px; }
  .sf-logo strong { font-size: var(--sf-h3); }
  .sf-root-categories, .sf-subcollections { grid-template-columns: 1fr; }
  .sf-product-image { padding: 18px; }
  .sf-drawer-body { padding: 18px 18px 36px; }
  .sf-add-cart { width: 100%; }
}

@media (max-width:1120px) {
  .sf-cart-items article { grid-template-columns:var(--sf-op-cart-image-size) minmax(180px,1fr) 110px 84px; }
  .sf-cart-remove { grid-column:2; justify-self:start; }
}
@media (max-width:1100px) {
  .sf-order-detail-grid { grid-template-columns:1fr; }
}
@media (max-width:820px) {
  .sf-cart-layout { grid-template-columns:1fr; }
  .sf-cart-summary { position:static; }
}
@media (max-width:760px) {
  .sf-cart-page .sf-collection-title h1,.sf-checkout-page .sf-collection-title h1,.sf-account-panel-head h1,.sf-account-panel .sf-auth-header h1,.sf-order-detail-head h1 { font-size:var(--sf-op-page-title-mobile); }
  .sf-checkout-grid,.sf-address-list,.sf-checkout-billing-summary { grid-template-columns:1fr; }
  .sf-checkout-billing-summary > .sf-checkout-billing-address-row { grid-column:auto; }
  .sf-checkout-step-summary-line { align-items:flex-start; flex-direction:column; }
  .sf-checkout-step-summary-line span { text-align:left; }
  .sf-checkout-final-grid { grid-template-columns:1fr; }
  .sf-checkout-order-summary { position:static; }
  .sf-account-page { width:min(calc(100% - (var(--sf-op-page-gutter) * 2)),var(--sf-content-width)); grid-template-columns:1fr; }
  .sf-account-sidebar { position:static; }
  .sf-account-sidebar-nav { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .sf-orders-list > a { grid-template-columns:1fr; }
  .sf-account-head-actions { justify-content:flex-start; }
  .sf-orders-list > a > div:last-child { text-align:left; }
  .sf-account-panel-head,.sf-order-detail-head,.sf-account-panel .sf-auth-section-heading { flex-direction:column; align-items:stretch; }
  .sf-account-panel .sf-auth-grid,.sf-account-panel .sf-auth-grid-three,.sf-account-panel .sf-auth-status-grid,.sf-privacy-grid { grid-template-columns:1fr; }
  .sf-return-line-head { display:none; }
  .sf-return-line,.sf-return-list article { grid-template-columns:1fr; }
}
@media (max-width:540px) {
  .sf-delivery-mode-inline,.sf-payment-grid { grid-template-columns:1fr; }
  .sf-payment-tile { grid-template-columns:auto 64px minmax(0,1fr); }
  .sf-payment-mark { width:64px; }
  .sf-shipping-option { grid-template-columns:auto minmax(0,1fr); }
  .sf-shipping-option-price { grid-column:2; padding-top:0; }
  .sf-checkout-address-list article { grid-template-columns:1fr; }
  .sf-checkout-modal-actions { justify-content:stretch; }
  .sf-checkout-modal-actions > * { flex:1; }
  .sf-checkout-credit-row { grid-template-columns:1fr; }
  .sf-checkout-credit-controls { grid-template-columns:minmax(0,1fr) auto; }
  .sf-checkout-credit-controls .sf-text-button { justify-self:start; }
  .sf-checkout-step-actions { align-items:stretch; flex-direction:column-reverse; }
  .sf-checkout-step-actions > button { width:100%; }
  .sf-checkout-section-title-row { flex-direction:column; }
  .sf-cart-items article { grid-template-columns:var(--sf-op-cart-image-size) 1fr; }
  .sf-cart-quantity,.sf-cart-line-total,.sf-cart-remove { grid-column:2; }
  .sf-cart-line-total { text-align:left; }
}


.sf-order-confirmation-page { max-width:var(--sf-content-width); }

.sf-order-thankyou { margin-bottom:var(--sf-op-content-gap); border:1px solid var(--sf-success-border); border-radius:var(--sf-card-radius); background:var(--sf-success-bg); padding:var(--sf-op-panel-padding); text-align:center; }

.sf-order-thankyou > span { color:var(--sf-success-text); font-size: var(--sf-font-small); font-weight:800; text-transform:uppercase; letter-spacing:.08em; }

.sf-order-thankyou h1 { margin:calc(var(--sf-op-row-gap) * .75) 0 var(--sf-op-row-gap); font-size:var(--sf-op-page-title); }

.sf-order-thankyou p { margin:0; color:var(--sf-text); }

.sf-order-thankyou > div { display:flex; justify-content:center; gap:var(--sf-op-row-gap); margin-top:var(--sf-op-content-gap); flex-wrap:wrap; }

.sf-order-thankyou a { min-height:var(--sf-op-field-height); display:inline-flex; align-items:center; padding:0 var(--sf-op-field-padding-x); border:1px solid var(--sf-border); border-radius:var(--sf-button-radius); background:var(--sf-surface); color:var(--sf-link); text-decoration:none; }

.sf-order-thankyou a:first-child { border-color:var(--sf-primary); background:var(--sf-primary); color:var(--sf-primary-text); }

.sf-order-customer-shipments { display:grid; align-content:start; align-self:start; gap:var(--sf-op-section-gap); }

.sf-order-shipment-card { overflow:hidden; border:1px solid var(--sf-border); border-radius: var(--sf-card-radius); background:var(--panel); }

.sf-order-shipment-heading { display:flex; justify-content:space-between; gap:var(--sf-op-row-gap); align-items:flex-start; padding:var(--sf-op-section-padding-y) var(--sf-op-panel-padding); border-bottom:1px solid var(--sf-border); background:var(--sf-soft-surface); }

.sf-order-shipment-heading span { display:block; color:var(--sf-muted); font-size: var(--sf-font-tiny); font-weight:800; text-transform:uppercase; letter-spacing:.07em; }

.sf-order-shipment-heading h2 { margin:calc(var(--sf-op-row-gap) / 2) 0 0; }

.sf-order-shipment-heading > div:last-child { display:grid; justify-items:end; gap:calc(var(--sf-op-row-gap) / 3); }

.sf-order-shipment-heading > div:last-child strong { font-size: var(--sf-font-small); }

.sf-order-shipment-state.state-fulfilled { color:var(--sf-success-text); }
.sf-order-shipment-state.state-cancelled { color:var(--sf-danger-text); }
.sf-order-shipment-state.state-planned { color:var(--sf-warning-text); }
.sf-order-shipment-state.state-unassigned { color:var(--sf-warning-text); }

.sf-order-shipment-heading > div:last-child small { color:var(--sf-muted); font-size: var(--sf-font-tiny); }

.sf-order-line-head,.sf-order-customer-line { display:grid; grid-template-columns:minmax(0,1fr) minmax(calc(var(--sf-op-field-height) * 2),auto) minmax(calc(var(--sf-op-field-height) * 3),auto); gap:var(--sf-op-row-gap); align-items:center; }

.sf-order-line-head { min-height:var(--sf-op-field-height); padding:0 var(--sf-op-panel-padding); background:var(--sf-soft-surface); color:var(--sf-muted); font-size:var(--sf-font-tiny); font-weight:800; text-transform:uppercase; letter-spacing:.05em; }

.sf-order-line-head span:not(:first-child) { text-align:right; }

.sf-order-customer-line { padding:calc(var(--sf-op-section-padding-y) * .7) var(--sf-op-panel-padding); border-top:1px solid var(--sf-border); font-size:var(--sf-font-small); }

.sf-order-customer-line > span,.sf-order-customer-line > strong { text-align:right; white-space:nowrap; }

.sf-order-customer-product { display:grid; grid-template-columns:var(--sf-op-modal-image-size) minmax(0,1fr); gap:var(--sf-op-row-gap); align-items:center; }

.sf-order-customer-product img,.sf-order-image-placeholder { width:var(--sf-op-modal-image-size); height:var(--sf-op-modal-image-size); border-radius:var(--sf-field-radius); background:var(--sf-soft-surface); object-fit:contain; }

.sf-order-customer-product strong { line-height:1.35; }

.sf-order-tracking { display:flex; justify-content:flex-start; gap:var(--sf-op-row-gap); padding:var(--sf-op-section-padding-y) var(--sf-op-panel-padding); border-top:1px solid var(--sf-info-border); background:var(--sf-info-bg); color:var(--sf-info-text); font-size:var(--sf-font-small); }

.sf-order-history-list { display:grid; }

.sf-order-history-entry { display:grid; grid-template-columns:calc(var(--sf-op-field-height) * .8) minmax(0,1fr) auto; gap:var(--sf-op-row-gap); align-items:center; padding:calc(var(--sf-op-section-padding-y) * .7) var(--sf-op-panel-padding); border-top:1px solid var(--sf-border); }

.sf-order-history-mark { display:grid; place-items:center; width:calc(var(--sf-op-field-height) * .7); height:calc(var(--sf-op-field-height) * .7); border-radius:50%; background:var(--sf-soft-surface); color:var(--sf-muted); font-size:var(--sf-font-base); font-weight:850; }

.sf-order-history-entry.history-add .sf-order-history-mark { background:var(--sf-success-bg); color:var(--sf-success-text); }
.sf-order-history-entry.history-change .sf-order-history-mark { background:var(--sf-soft-surface); color:var(--sf-muted); }
.sf-order-history-entry.history-remove .sf-order-history-mark,
.sf-order-history-entry.history-cancel .sf-order-history-mark { background:var(--sf-danger-bg); color:var(--sf-danger-text); }

.sf-order-history-copy { min-width:0; display:grid; gap:calc(var(--sf-op-row-gap) / 3); }
.sf-order-history-copy strong { font-size: var(--sf-font-small); line-height:1.35; }
.sf-order-history-copy small { color:var(--sf-muted); font-size: var(--sf-font-small); line-height:1.35; }
.sf-order-history-copy time { color:var(--sf-muted); font-size: var(--sf-font-tiny); }
.sf-order-history-amount { text-align:right; white-space:nowrap; font-size: var(--sf-font-small); }
.sf-order-history-entry.history-add .sf-order-history-amount { color:var(--sf-success-text); }
.sf-order-history-entry.history-remove .sf-order-history-amount { color:var(--sf-danger-text); }

.sf-order-payment-status .payment-settled-balance { margin-top:var(--sf-op-section-gap); padding-top:var(--sf-op-section-gap); border-top:1px solid var(--sf-border); }

.sf-order-payment-status > .payment-state { display:inline-flex; width:max-content; margin-bottom:calc(var(--sf-op-row-gap) / 3); border-radius:var(--sf-button-radius); padding:calc(var(--sf-op-row-gap) / 2) var(--sf-op-field-padding-x); font-size:var(--sf-font-tiny); font-weight:800; }

.sf-order-payment-status > .payment-paid { background:var(--sf-success-bg); color:var(--sf-success-text); }

.sf-order-payment-status > .payment-pending { background:var(--sf-danger-bg); color:var(--sf-danger-text); }

.sf-order-payment-status > .payment-partially_paid { background:var(--sf-warning-bg); color:var(--sf-warning-text); }

.sf-order-payment-status > .payment-refunded { background:var(--sf-soft-surface); color:var(--sf-muted); }

.sf-order-payment-status > .payment-cancelled { background:var(--sf-danger-bg); color:var(--sf-danger-text); }

.sf-order-payment-status .payment-due { margin-top:var(--sf-op-section-gap); padding-top:var(--sf-op-section-gap); border-top:1px solid var(--sf-border); color:var(--sf-danger-text); }

@media (max-width:760px) {
.sf-order-shipment-heading,.sf-order-tracking { flex-direction:column; }
.sf-order-shipment-heading > div:last-child { justify-items:start; }
.sf-order-line-head { display:none; }
.sf-order-customer-line { grid-template-columns:1fr auto; gap:8px; }
.sf-order-customer-product { grid-column:1 / -1; }
.sf-order-customer-line > span,.sf-order-customer-line > strong { text-align:left; }
.sf-order-history-entry { grid-template-columns:28px minmax(0,1fr); }
.sf-order-history-amount { grid-column:2; text-align:left; }
}

/* Runtime cart toast: preserve visibility when an older published Appearance CSS is active. */
.sf-cart-toast {
  position: fixed;
  /*
   * Never derive the viewport offset from Appearance tokens: an old
   * published stylesheet can contain a stale --sf-header-height and would
   * otherwise move the confirmation outside the viewport.
   */
  top: 24px;
  right: 24px;
  bottom: auto;
  z-index: 2000;
  width: min(430px, calc(100vw - 32px));
  display: grid;
  grid-template-columns: auto 1fr auto;
  align-items: center;
  gap: 12px;
  padding: 15px 16px;
  border: 1px solid color-mix(in srgb, var(--primary) 36%, var(--border-soft));
  border-radius: var(--sf-card-radius);
  background: var(--surface-soft);
  color: var(--text);
  box-shadow: 0 18px 48px color-mix(in srgb, var(--text) var(--sf-shadow-strength), transparent);
}

.sf-cart-toast.success {
  border-color: color-mix(in srgb, var(--primary) 58%, var(--border-soft));
  background: var(--success-bg);
  color: var(--primary);
}

.sf-cart-toast.error {
  border-color: color-mix(in srgb, var(--danger) 48%, var(--border-soft));
  background: var(--danger-bg);
  color: var(--danger);
}

.sf-cart-toast > button {
  border: 0;
  background: transparent;
  color: inherit;
  font-size: var(--sf-icon-size);
  cursor: pointer;
}

.sf-cart-toast > div { display: grid; gap: 3px; min-width: 0; }

.sf-cart-toast > div span {
  color: currentColor;
  opacity: 0.82;
  font-size: var(--sf-font-medium);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.sf-cart-toast > a {
  white-space: nowrap;
  font-weight: 750;
  color: inherit;
  text-decoration: underline;
  text-underline-offset: 3px;
}

.sf-cart-timing {
  display: grid;
  gap: 3px;
  padding: 9px 0 2px;
  border-radius: 0;
  background: transparent;
  border: 0;
}

.sf-cart-timing strong { color: var(--sf-info-text); }

.sf-cart-timing span { color: var(--sf-muted); font-size: var(--sf-font-small); line-height: var(--sf-line-height); text-align:left; }

.sf-payment-file-picker {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: var(--sf-op-field-height);
  padding: 0 var(--sf-op-field-padding-x);
  border-radius: var(--sf-button-radius);
  background: var(--sf-info-bg);
  border: 1px solid var(--sf-info-border);
  color: var(--sf-info-text);
  cursor: pointer;
}

.sf-payment-file-picker input { position: absolute; width: 1px; height: 1px; opacity: 0; pointer-events: none; }

.sf-payment-selected-file {
  margin-top: var(--sf-op-section-gap);
  padding: var(--sf-op-section-padding-y) var(--sf-op-field-padding-x);
  border: 1px solid var(--sf-border);
  border-radius: var(--sf-field-radius);
  background: var(--panel);
  overflow-wrap: anywhere;
}

.sf-payment-upload-button { width:100%; min-height:var(--sf-op-field-height); margin-top:var(--sf-op-section-gap); }

.sf-payment-uploaded-list { display:grid; gap:var(--sf-op-row-gap); margin-top:var(--sf-op-section-padding-y); }

.sf-receipt-file span { color: var(--sf-success-text); font-weight: 700; }

@media (max-width: 720px) {
.sf-cart-toast {
  top: 16px;
  right: 16px;
  bottom: auto;
  grid-template-columns: auto 1fr;
}
.sf-cart-toast > a { grid-column: 2; }
}
/* End runtime cart toast */

.sf-credit-box { padding:calc(var(--sf-op-section-padding-y) * .65) 0; border-top:1px solid var(--sf-border); border-radius:0; background:transparent; }

.sf-svg-icon { width: var(--sf-icon-size); height: var(--sf-icon-size); display: block; }

.sf-cart-button .sf-svg-icon { width: calc(var(--sf-icon-size) + 4px); height: calc(var(--sf-icon-size) + 4px); }

.sf-card-price-row.centered-price { justify-content: center; text-align: center; }

.sf-card-price-row.centered-price strong { font-size: var(--sf-font-large); }

.sf-cart-products-total { margin-top: 8px; padding-top: 12px; border-top: 1px solid var(--sf-border); font-size: var(--sf-font-base); }

.sf-cart-products-total strong { font-size: var(--sf-font-large); }

@media (max-width:520px) {
.sf-account-sidebar-nav { grid-template-columns:1fr; }
.sf-account-panel { padding:var(--sf-op-panel-padding); }
}

/* Authentication forms use the same field density tokens; account pages use the canonical operational block above. */
.sf-auth-shell { width:min(980px,calc(100% - 32px)); margin:var(--sf-op-page-top) auto var(--sf-op-page-bottom); }
.sf-auth-narrow { max-width:540px; }
.sf-auth-card { border:1px solid var(--sf-border); border-radius:var(--sf-card-radius); background:var(--sf-surface); box-shadow:0 14px 38px color-mix(in srgb,var(--sf-text) var(--sf-shadow-strength),transparent); padding:var(--sf-op-panel-padding); }
.sf-auth-header { margin-bottom:var(--sf-op-section-padding-y); }
.sf-auth-header h1 { margin:0 0 calc(var(--sf-op-row-gap) / 2); letter-spacing:-.03em; }
.sf-auth-header p { margin:0; color:var(--sf-muted); line-height:var(--sf-line-height); }
.sf-auth-form { display:grid; gap:var(--sf-op-section-gap); }
.sf-auth-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:var(--sf-op-row-gap); }
.sf-auth-grid-three { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:var(--sf-op-row-gap); }
.sf-auth-full { grid-column:1 / -1; }
.sf-auth-field { display:grid; gap:calc(var(--sf-op-row-gap) / 2); }
.sf-auth-field span { color:var(--sf-text); font-size:var(--sf-font-small); font-weight:700; }
.sf-auth-field textarea { resize:vertical; }
.sf-auth-field input:focus,.sf-auth-field select:focus,.sf-auth-field textarea:focus { outline:2px solid color-mix(in srgb,var(--sf-input-focus) 18%,transparent); border-color:var(--sf-input-focus); }
.sf-auth-section { display:grid; gap:var(--sf-op-section-gap); padding-top:var(--sf-op-section-padding-y); border-top:1px solid var(--sf-border); }
.sf-auth-section h2 { margin:0; }
.sf-auth-section p { margin:0; color:var(--sf-muted); font-size:var(--sf-font-small); }
.sf-auth-account-type { display:grid; grid-template-columns:1fr 1fr; gap:var(--sf-op-row-gap); }
.sf-auth-account-type label { display:flex; align-items:center; gap:var(--sf-op-row-gap); border:1px solid var(--sf-border); border-radius:var(--sf-field-radius); padding:calc(var(--sf-op-section-padding-y) * .75) var(--sf-op-field-padding-x); cursor:pointer; }
.sf-auth-account-type label:has(input:checked) { border-color:var(--sf-input-focus); background:var(--sf-info-bg); }
.sf-auth-account-type input { accent-color:var(--sf-primary); }
.sf-auth-actions { display:flex; align-items:center; gap:var(--sf-op-row-gap); flex-wrap:wrap; }
.sf-auth-primary,.sf-auth-secondary { display:inline-flex; align-items:center; justify-content:center; min-height:var(--sf-op-field-height); border-radius:var(--sf-button-radius); padding:0 var(--sf-op-panel-padding); cursor:pointer; }
.sf-auth-primary { border:1px solid var(--sf-primary); background:var(--sf-primary); color:var(--sf-primary-text); }
.sf-auth-primary:hover { background:var(--sf-primary-hover); }
.sf-auth-secondary { border:1px solid var(--sf-border); background:var(--sf-surface); color:var(--sf-text); }
.sf-auth-primary:disabled,.sf-auth-secondary:disabled { opacity:.55; cursor:wait; }
.sf-auth-links { display:flex; justify-content:space-between; gap:var(--sf-op-row-gap); margin-top:var(--sf-op-section-padding-y); font-size:var(--sf-font-small); }
.sf-auth-links a { color:var(--sf-link); font-weight:700; }
.sf-auth-links a:hover { color:var(--sf-link-hover); }
.sf-auth-notice,.sf-auth-error,.sf-auth-success { margin-bottom:var(--sf-op-section-padding-y); border-radius:var(--sf-field-radius); padding:calc(var(--sf-op-section-padding-y) * .75) var(--sf-op-field-padding-x); font-size:var(--sf-font-medium); line-height:var(--sf-line-height); }
.sf-auth-notice { border:1px solid var(--sf-warning-border); background:var(--sf-warning-bg); color:var(--sf-warning-text); }
.sf-auth-error { border:1px solid var(--sf-danger-border); background:var(--sf-danger-bg); color:var(--sf-danger-text); }
.sf-auth-success { border:1px solid var(--sf-success-border); background:var(--sf-success-bg); color:var(--sf-success-text); }
.sf-auth-password-rules { margin:0; padding-left:var(--sf-op-panel-padding); color:var(--sf-muted); font-size:var(--sf-font-small); line-height:var(--sf-line-height); }
.sf-auth-status-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:var(--sf-op-row-gap); margin-bottom:var(--sf-op-section-padding-y); }
.sf-auth-status-box { border:1px solid var(--sf-border); border-radius:var(--sf-field-radius); padding:calc(var(--sf-op-section-padding-y) * .7) var(--sf-op-field-padding-x); background:var(--sf-soft-surface); }
.sf-auth-status-box span,.sf-auth-status-box strong { display:block; }
.sf-auth-status-box span { color:var(--sf-muted); font-size:var(--sf-font-tiny); text-transform:uppercase; letter-spacing:.04em; }
.sf-auth-status-box strong { margin-top:calc(var(--sf-op-row-gap) / 3); font-size:var(--sf-font-medium); }
.sf-auth-captcha-section { display:grid; gap:var(--sf-op-section-gap); padding-top:var(--sf-op-section-padding-y); border-top:1px solid var(--sf-border); }
.sf-auth-captcha-section h2 { margin:0; }
.sf-auth-honeypot { position:absolute; left:-10000px; width:1px; height:1px; overflow:hidden; }
.sf-auth-section-heading { display:flex; justify-content:space-between; align-items:flex-start; gap:var(--sf-op-row-gap); }
.sf-auth-section-heading > div { display:grid; gap:calc(var(--sf-op-row-gap) / 2); }
.sf-auth-section-heading h2,.sf-auth-section-heading p { margin:0; }
.sf-auth-required-note { margin:0; color:var(--sf-muted); font-size:var(--sf-font-small); }
@media (max-width:760px) { .sf-auth-shell { width:min(100% - 20px,980px); } .sf-auth-grid,.sf-auth-grid-three,.sf-auth-status-grid,.sf-auth-account-type { grid-template-columns:1fr; } .sf-auth-links,.sf-auth-section-heading { flex-direction:column; } }

/* v0.17.102 - customer order fulfillment tones */
.sf-order-status.status-partially_fulfilled { background:var(--sf-warning-bg); color:var(--sf-warning-text); }
.sf-order-status.status-fulfilled { background:var(--sf-success-bg); color:var(--sf-success-text); }
.sf-order-status.status-cancelled { background:var(--sf-danger-bg); color:var(--sf-danger-text); }

.sf-section-head span { color: var(--sf-muted); font-size: var(--sf-font-medium); }

/* Storefront Step A 0.17.132 — shipping widget: two-line status and collision-safe Header layout. */
.storefront-shipping-widget { max-width: 100%; min-width: 0; display: inline-grid; grid-template-columns: auto minmax(0, 1fr); align-items: center; gap: 8px; min-height: var(--sf-icon-button-size); padding: 5px 10px; border: 1px solid var(--sf-block-border, var(--sf-header-border)); border-radius: var(--sf-block-radius, var(--sf-field-radius)); background: var(--sf-block-bg, var(--sf-soft-surface)); color: var(--sf-block-text, var(--sf-header-text)); }
.storefront-shipping-widget-icon { width: calc(var(--sf-icon-size) + 10px); height: calc(var(--sf-icon-size) + 10px); display: grid; place-items: center; flex: 0 0 auto; border-radius: var(--sf-block-radius, var(--sf-field-radius)); background: var(--sf-header-bg); color: currentColor; }
.storefront-shipping-widget-icon .sf-svg-icon { width: var(--sf-icon-size); height: var(--sf-icon-size); }
.storefront-shipping-widget-copy { min-width: 0; display: block; overflow: hidden; text-overflow: ellipsis; white-space: pre-line; font-size: var(--sf-block-font-size, var(--sf-font-menu)); font-weight: 800; line-height: 1.2; color: currentColor; }
.storefront-shipping-widget.compact { min-height: 28px; padding: 2px 8px; border-color: color-mix(in srgb, currentColor 28%, transparent); background: color-mix(in srgb, currentColor 8%, transparent); color: inherit; }
.storefront-shipping-widget.compact .storefront-shipping-widget-copy { font-size: var(--sf-font-small); white-space: pre-line; }
.storefront-shipping-widget.compact .storefront-shipping-widget-icon { width: 24px; height: 24px; background: color-mix(in srgb, currentColor 10%, transparent); color: inherit; }
.storefront-shipping-widget.compact .storefront-shipping-widget-icon .sf-svg-icon { width: 16px; height: 16px; }

/* Storefront content/footer CMS — v0.17.136 */
.sf-footer-expanded { min-height: 0; display: block; padding-top: 38px; padding-bottom: 20px; }
.sf-footer-main { width: 100%; display: grid; grid-template-columns: minmax(190px, .8fr) minmax(0, 2.7fr); gap: 64px; align-items: start; }
.sf-footer-brand { display: grid; gap: 12px; align-content: start; }
.sf-footer-brand > strong { font-size: var(--sf-h3); }
.sf-footer-brand > p { margin: 0; max-width: 38ch; color: var(--sf-muted); line-height: 1.5; }
.sf-footer-logo { display: inline-flex; width: fit-content; }
.sf-footer-logo img { display: block; height: auto; max-height: 42px; object-fit: contain; object-position: left center; }
.sf-footer-columns { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 34px; }
.sf-footer-column { min-width: 0; }
.sf-footer-column h3 { margin: 0 0 12px; color: var(--sf-text); }
.sf-footer-column nav { display: grid; gap: 8px; }
.sf-footer-column a { color: var(--sf-muted); text-decoration: none; line-height: 1.35; }
.sf-footer-column a:hover { color: var(--sf-link); text-decoration: underline; }
.sf-footer-company-strip { width: 100%; margin-top: 30px; padding-top: 17px; border-top: 1px solid var(--sf-border); display: flex; flex-wrap: wrap; align-items: center; gap: 7px 16px; color: var(--sf-muted); }
.sf-footer-company-strip strong { color: var(--sf-text); font-size: var(--sf-font-small); }
.sf-footer-company-strip a { color: inherit; text-decoration: none; }
.sf-footer-company-strip a:hover { color: var(--sf-link); text-decoration: underline; }
.sf-footer-company-group { display: contents; }
.sf-footer-company-strip.align-left, .sf-footer-bottom.align-left { justify-content: flex-start; text-align: left; }
.sf-footer-company-strip.align-center, .sf-footer-bottom.align-center { justify-content: center; text-align: center; }
.sf-footer-company-strip.align-right, .sf-footer-bottom.align-right { justify-content: flex-end; text-align: right; }
.sf-footer-bottom { width: 100%; margin-top: 12px; display: flex; color: var(--sf-muted); }

.sf-content-page { width: min(calc(100% - (var(--sf-page-gutter-desktop) * 2)), var(--sf-content-width)); margin: 0 auto; padding: var(--sf-content-page-top) 0 var(--sf-content-page-bottom); }
.sf-content-page-head { display: grid; gap: 8px; max-width: 900px; margin-bottom: 34px; }
.sf-content-page-head h1 { margin: 0; color: var(--sf-text); line-height: 1.04; }
.sf-content-page-head > span { color: var(--sf-muted); font-size: var(--sf-font-small); }
.sf-content-sections { display: grid; gap: 32px; max-width: 980px; }
.sf-content-sections > section { padding-bottom: 28px; border-bottom: 1px solid var(--sf-border); }
.sf-content-sections > section:last-child { border-bottom: 0; }
.sf-content-sections h2 { margin: 0 0 14px; color: var(--sf-text); line-height: 1.2; }
.sf-content-sections p { margin: 0 0 14px; color: var(--sf-text); line-height: var(--sf-line-height); }
.sf-content-sections ul { margin: 0 0 14px; padding-left: 22px; color: var(--sf-text); line-height: var(--sf-line-height); }
.sf-content-sections a { color: var(--sf-link); text-underline-offset: 2px; }
.sf-content-details { display: grid; gap: 22px; margin-top: 6px; }
.sf-content-detail-list { display: grid; gap: 8px; margin: 0; }
.sf-content-detail-list > div { display: grid; grid-template-columns: minmax(130px, 190px) minmax(0, 1fr); gap: 10px 18px; align-items: baseline; }
.sf-content-detail-list dt { color: var(--sf-muted); font-size: var(--sf-font-small); font-weight: 700; }
.sf-content-detail-list dd { margin: 0; color: var(--sf-text); overflow-wrap: anywhere; }
.sf-content-hours { display: grid; gap: 10px; }
.sf-content-hours h3 { margin: 0; color: var(--sf-text); font-size: var(--sf-font-base); }

@media (max-width: 980px) {
  .sf-footer-main { grid-template-columns: 1fr; gap: 36px; }
  .sf-footer-columns { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 640px) {
  .sf-footer-expanded { padding-top: 30px; }
  .sf-footer-company-strip { flex-direction: column; gap: 5px; }
  .sf-footer-company-strip.align-left { align-items: flex-start; }
  .sf-footer-company-strip.align-center { align-items: center; }
  .sf-footer-company-strip.align-right { align-items: flex-end; }
  .sf-footer-columns { grid-template-columns: 1fr 1fr; gap: 28px 18px; }
  .sf-content-page { width: min(calc(100% - (var(--sf-page-gutter-mobile) * 2)), var(--sf-content-width)); padding-top: var(--sf-content-page-mobile-top); }
  .sf-content-detail-list > div { grid-template-columns: 1fr; gap: 2px; }
}

/* Appearance 0.17.143 additions */
.sf-custom-icon { display:block; width:1em; height:1em; object-fit:contain; }
.sf-action-button .sf-custom-icon { width:var(--sf-header-icon-size); height:var(--sf-header-icon-size); }
.storefront-shipping-widget-icon .sf-custom-icon { width:100%; height:100%; object-fit:contain; }
.sf-product-stock-copy { display:block; color:var(--sf-muted); font-size:var(--sf-font-small); line-height:1.35; }
.sf-product-card .sf-product-stock-copy { margin-top:4px; text-align:center; }
.sf-product-stock-wrap { display:grid; gap:3px; }
.sf-product-stock-mini { display:block; font-size:var(--sf-font-small); line-height:1.3; }
.sf-detail-stock small { display:block; font-size:var(--sf-font-small); font-weight:500; line-height:1.35; }
.sf-product-block-stack { display:block; }
.sf-product-quantity-control { display:grid; gap:6px; width:min(var(--sf-product-quantity-width),100%); margin-top:23px; font-size:var(--sf-font-tiny); font-weight:650; }
.sf-product-quantity-control > div { height:var(--sf-product-control-height); display:grid; border:1px solid var(--sf-product-control-border); border-radius:var(--sf-product-control-radius); overflow:hidden; background:var(--sf-product-control-bg); }
.sf-product-quantity-control input { width:100%; height:100%; border:0; outline:0; padding:0 12px; text-align:center; background:transparent; color:var(--sf-product-control-text); appearance:textfield; }
.sf-product-buy-block { display:grid; gap:8px; margin-top:12px; }

/* Cross-browser form normalization: configured Storefront sizes remain authoritative. */
.storefront-app input,.storefront-app select,.storefront-app textarea,.storefront-app button { box-sizing:border-box; }
.storefront-app input[type="number"] { appearance:textfield; }
.storefront-app input[type="number"]::-webkit-outer-spin-button,.storefront-app input[type="number"]::-webkit-inner-spin-button { margin:0; appearance:none; }

/* Accessibilità tastiera: focus sempre visibile senza modificare l'interazione mouse. */
.storefront-app :is(a[href], button, input, select, textarea, [tabindex]):focus-visible {
  outline: var(--sf-focus-outline-width, 2px) solid var(--sf-input-focus, var(--primary));
  outline-offset: 2px;
}

/* v0.17.340: no heavy black input outline in storefront search.
   Preserve a subtle keyboard-visible cue on the search container instead. */
.storefront-app .sf-search input:focus-visible,
.storefront-app .sf-search-page-head input:focus-visible,
.storefront-app .sf-catalog-toolbar input:focus-visible {
  outline: none;
  box-shadow: none;
}
.sf-search-page-head:focus-within,
.sf-catalog-toolbar:focus-within {
  box-shadow: 0 0 0 2px color-mix(in srgb, var(--sf-primary) 10%, transparent);
}

/* 0.18.0 R3 product gallery; respects current Appearance colors. */
.sf-detail-media { min-width: 0; }
.product-gallery-navigation { display:flex; align-items:center; gap:8px; margin-top:12px; width:100%; min-width:0; }
.product-gallery-scroll { display:flex; flex:1; gap:8px; min-width:0; overflow-x:auto; overscroll-behavior-inline:contain; scroll-snap-type:x proximity; scrollbar-width:thin; padding:5px 3px; }
.product-gallery-arrow { flex:0 0 30px; height:52px; border:1px solid var(--sf-product-detail-border); background:var(--sf-product-detail-image-bg); color:var(--sf-text); border-radius:var(--sf-product-detail-radius); font-size:var(--sf-font-large); line-height:1; cursor:pointer; }
.product-gallery-thumb { flex:0 0 68px; width:68px; height:68px; padding:4px; border:1px solid var(--sf-product-detail-border); background:var(--sf-product-detail-image-bg); border-radius:var(--sf-product-detail-radius); cursor:pointer; scroll-snap-align:center; }
.product-gallery-thumb[aria-pressed="true"] { outline:2px solid var(--sf-primary); outline-offset:1px; }
.product-gallery-thumb img { width:100%; height:100%; object-fit:contain; }
.product-gallery-navigation :is(button:focus-visible) { outline:2px solid var(--sf-primary); outline-offset:2px; }
