/* Named presentation hooks extracted from the default templates. */
.sf-stock-warning { max-width: calc(100vw - 5rem); }
.sf-navbar-elevation { box-shadow: var(--sf-shadow-navigation); }
.sf-logo-placeholder { width: 40px; height: 40px; background: var(--sf-logo-background); border-radius: var(--sf-radius-control); display: flex; align-items: center; justify-content: center; color: white; font-weight: bold; font-size: 20px; }
.sf-brand-weight { font-weight: 600; }
.sf-navbar-search { width: 100%; max-width: 400px; margin: 0 auto; }
.sf-nav-icon { font-size: 1.25em; }
.sf-cart-icon { font-size: 1.3em; }
.sf-nav-counter { font-size: 0.65rem; }
.sf-inline-form { display: inline; }
.dropdown-item.sf-logout-action { cursor: pointer; background: none; border: none; text-align: left; padding: 0.5rem 1rem; }
.sf-flash-spacing { padding-top: 1rem; }
.sf-footer-push { margin-top: auto; }
.sf-card-image-crop { height:var(--sf-card-image-height);object-fit:cover; }
.sf-card-image-placeholder { height:var(--sf-card-image-height); }
.sf-brand-filter-logo { width:24px;height:24px;object-fit:contain;padding:2px; }
.sf-action { background: var(--accent); color: white; }
.sf-action-medium { background: var(--accent); color: white; font-weight: 500; }
.sf-action-strong { background: var(--accent); color: white; font-weight: 600; }
.sf-action-borderless { background: var(--accent, #2f7f5f); color: white; border: none; }
.sf-action-nowrap { background: var(--accent, #2f7f5f); color: white; border: none; white-space: nowrap; }
/* Keep the original action colors through Bootstrap interaction states. */
.btn:is(.sf-action, .sf-action-medium, .sf-action-strong, .sf-action-borderless, .sf-action-nowrap) {
  --bs-btn-color: #fff;
  --bs-btn-bg: var(--accent);
  --bs-btn-hover-color: #fff;
  --bs-btn-hover-bg: var(--accent);
  --bs-btn-active-color: #fff;
  --bs-btn-active-bg: var(--accent);
  --bs-btn-disabled-color: #fff;
  --bs-btn-disabled-bg: var(--accent);
}
.sf-summary-total { font-size: 1.1rem; font-weight: bold; color: var(--accent); }
.sf-cart-total { font-size: 1.2rem; font-weight: bold; color: var(--accent); }
.sf-checkout-total { font-size: 1.3rem; font-weight: bold; color: var(--accent); }
.sf-thumb-column { width: 72px; }
.sf-thumb { width: 56px; height: 56px; object-fit: cover; }
.sf-thumb-placeholder { width: 56px; height: 56px; }
.sf-quantity-row { gap: 0.5rem; }
.sf-quantity-input { width: 70px; padding: 0.375rem 0.75rem; border: 1px solid #ddd; border-radius: 4px; }
.sf-weight-medium { font-weight: 500; }
.sf-payment-choice { cursor:pointer; }
.sf-payment-logo { max-height:32px;max-width:80px;object-fit:contain;flex-shrink:0; }
.sf-checkout-sticky { top: 100px; }
.sf-image-cover { object-fit:cover; }
.sf-square-small { width:48px; height:48px; }
.sf-card-motion { transition:transform .2s, box-shadow .2s; }
.sf-category-placeholder-icon { font-size: 2rem; }
.sf-success-card { border: 2px solid var(--accent); }
.sf-success-icon { font-size: 4rem; color: var(--accent); }
.sf-order-number { font-family: monospace; color: var(--accent); }
.sf-guideline-sticky { top:5rem; }
.sf-availability-placeholder { width:72px;height:72px;flex:0 0 72px; }
.sf-cms-surface { background: var(--sf-cms-surface); }
.sf-multiline { white-space: pre-line; }
.sf-detail-heading { letter-spacing: 0.05em; }
.sf-accent-text { color: var(--accent); }
.sf-image-fill { width: 100%; height: 100%; object-fit: cover; }
.sf-detail-summary { font-size: 1.05rem; }
.sf-detail-price { font-size: var(--sf-price-detail); color: var(--accent, #2f7f5f); }
.sf-variant-choice { min-width: 70px; }
.sf-variant-description { white-space: pre-line; line-height: 1.65; }
.sf-detail-quantity { width: 80px; }
.sf-variant-image-column { width: 74px; }
.sf-return-quantity-column { width:130px; }
.sf-price-list-image-column { width:64px; }
.sf-price-list-thumb { width:48px;height:48px;object-fit:cover; }
.sf-payment-container { max-width: 960px; }
.sf-payment-confirm-container { max-width: 680px; }
.sf-payment-return-container { max-width: 720px; }
.sf-selector-container { max-width: 860px; }
.product-price-amount-compact { font-size: var(--sf-price-compact); }
.product-price-amount-normal { font-size: var(--sf-price-normal); }
.product-price-amount-large { font-size: var(--sf-price-large); }
/* These previously-inline borders/backgrounds also override dark defaults. */
html[data-site-theme="dark"] .dropdown-item.sf-logout-action { background: none; }
html[data-site-theme="dark"] .sf-quantity-input { border-color: #ddd; }
html[data-site-theme="dark"] .sf-success-card { border-color: var(--accent); }

#checkout-payment-region { scroll-margin-top: 110px; }
