/* DukanCenter System B customer storefront — System A visual reference. */

*{
    box-sizing:border-box}

html{
    scroll-behavior:smooth;
    scroll-padding-top:88px}

body{
    margin:0;
    background:#f5f7fa;
    color:#172333;
    font:15px/1.5 system-ui,-apple-system,'Segoe UI',sans-serif}

button,input,select{
    font:inherit}

a{
    color:inherit;
    text-decoration:none}

button{
    cursor:pointer}

button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{
    outline:3px solid #ffbb4d;
    outline-offset:2px}

.sf-container{
    width:min(1160px,calc(100% - 36px));
    margin:auto}

.sf-top{
    position:sticky;
    top:0;
    z-index:40;
    background:#fff;
    border-bottom:1px solid #e6eaf0;
    box-shadow:0 4px 20px #15253c09}

.sf-top-inner{
    min-height:70px;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:20px}

.sf-brand{
    display:flex;
    align-items:center;
    gap:12px;
    font-size:1.23rem;
    font-weight:850;
    color:var(--business-primary)}

.sf-mark{
    width:39px;
    height:39px;
    display:grid;
    place-items:center;
    border-radius:12px;
    background:var(--business-primary);
    color:#fff;
    font-weight:850}

.sf-nav{
    display:flex;
    align-items:center;
    gap:8px}

.sf-nav a{
    padding:10px 13px;
    border-radius:9px;
    font-weight:650;
    font-size:.9rem}

.sf-nav a:hover{
    background:#f2f6f9}

.sf-nav .sf-cart{
    background:var(--business-primary);
    color:white}

.sf-hero{
    position:relative;
    isolation:isolate;
    overflow:hidden;
    background:linear-gradient(110deg,#fff 0%,#f0f7f3 50%,#e5f0eb 100%);
    border-bottom:1px solid #e4e9e8}

.sf-hero::after{
    content:'';
    position:absolute;
    z-index:-1;
    width:460px;
    height:460px;
    border-radius:50%;
    right:-130px;
    top:-190px;
    background:color-mix(in srgb,var(--business-primary) 11%,transparent)}

.sf-hero-inner{
    min-height:320px;
    display:flex;
    align-items:center;
    padding:48px 0}

.sf-hero-copy{
    max-width:650px;
    position:relative;
    z-index:1}

.sf-eyebrow{
    display:inline-flex;
    background:var(--business-primary);
    color:#fff;
    border-radius:30px;
    padding:6px 14px;
    font-size:.77rem;
    font-weight:750;
    margin-bottom:17px}

.sf-hero h1{
    font-size:clamp(2.15rem,4.5vw,3.65rem);
    line-height:1.1;
    letter-spacing:-.045em;
    margin:0 0 16px;
    color:var(--business-primary)}

.sf-hero p{
    max-width:580px;
    color:#425468;
    font-size:1.05rem;
    margin:0 0 24px}

.sf-actions{
    display:flex;
    gap:10px;
    flex-wrap:wrap}

.sf-btn{
    border:1px solid transparent;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-height:42px;
    padding:10px 18px;
    border-radius:10px;
    background:var(--business-primary);
    color:#fff;
    font-weight:750}

.sf-btn-secondary{
    background:#fff;
    border-color:#dbe4e9;
    color:var(--business-primary)}

.sf-hero-image{
    position:absolute;
    inset:0 0 0 51%;
    width:49%;
    height:100%;
    object-fit:cover;
    z-index:-1;
    mask-image:linear-gradient(to right,transparent,#000 24%)}

.sf-hero:has(.sf-hero-image) .sf-hero-copy{
    max-width:57%}

.sf-booking{
    margin-top:16px;
    display:flex;
    align-items:center;
    justify-content:center;
    gap:12px;
    flex-wrap:wrap;
    background:#fff;
    border:1px solid #dce7e0;
    border-radius:12px;
    padding:12px 16px;
    box-shadow:0 4px 14px #15253c08}

.sf-booking strong{
    color:var(--business-primary)}

.sf-booking span{
    color:#64748b;
    font-size:.88rem}

.sf-booking .sf-btn{
    min-height:36px;
    padding:7px 14px}

.sf-section{
    padding-top:29px}

.sf-section-head{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:12px;
    margin-bottom:15px}

.sf-section h2{
    font-size:1.35rem;
    line-height:1.2;
    margin:0;
    letter-spacing:-.025em}

.sf-section-head small{
    color:#64748b}

.sf-categories{
    display:flex;
    gap:10px;
    overflow-x:auto;
    padding:3px 2px 11px;
    scrollbar-width:thin}

.sf-category{
    flex:0 0 106px;
    min-height:98px;
    border:1px solid #e1e7ef;
    border-radius:13px;
    background:#fff;
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    gap:9px;
    padding:12px 8px;
    text-align:center;
    font-size:.78rem;
    font-weight:750;
    line-height:1.25;
    color:#405267}

.sf-category:hover,.sf-category[aria-current=page]{
    border-color:var(--business-primary);
    color:var(--business-primary);
    background:#f9fcfa}

.sf-category-icon{
    width:39px;
    height:39px;
    display:grid;
    place-items:center;
    border-radius:11px;
    background:#eef3f7;
    color:var(--business-primary);
    font-size:1.2rem;
    font-weight:800}

.sf-featured{
    background:#edf2f7;
    border:1px solid #dce5ef;
    border-radius:14px;
    padding:15px}

.sf-products{
    display:grid;
    grid-template-columns:repeat(5,minmax(0,1fr));
    gap:14px}

.sf-products[data-view=two]{
    grid-template-columns:repeat(2,minmax(0,1fr))}

.sf-products[data-view=three]{
    grid-template-columns:repeat(3,minmax(0,1fr))}

.sf-products[data-view=list]{
    grid-template-columns:1fr}

.sf-product{
    min-width:0;
    background:#fff;
    border:1px solid #e1e7ed;
    border-radius:13px;
    overflow:hidden;
    display:flex;
    flex-direction:column;
    box-shadow:0 2px 9px #17233308}

.sf-product .product-image{
    width:100%;
    aspect-ratio:4/3;
    background:#f6f8f9;
    display:flex;
    align-items:center;
    justify-content:center;
    overflow:hidden}

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

.sf-product .product-image-placeholder{
    display:grid;
    place-items:center;
    text-align:center;
    padding:14px;
    color:var(--business-primary);
    font-weight:750;
    background:linear-gradient(135deg,#eef5f1,#f6f8fc);
    width:100%;
    height:100%;
    overflow-wrap:anywhere}

.sf-product-body{
    display:flex;
    flex-direction:column;
    flex:1;
    padding:12px}

.sf-product h3{
    font-size:.9rem;
    line-height:1.35;
    min-height:2.4em;
    margin:0 0 7px;
    font-weight:750}

.sf-code{
    font-size:.74rem;
    color:#768397;
    margin-bottom:7px}

.sf-price{
    font-size:1.05rem;
    font-weight:850;
    color:var(--business-primary);
    margin-top:auto}

.sf-old{
    color:#94a0ac;
    font-size:.75rem;
    font-weight:500;
    margin-left:4px}

.sf-product form{
    margin-top:11px}

.sf-product button{
    width:100%;
    border:0;
    border-radius:8px;
    min-height:39px;
    background:var(--business-primary);
    color:#fff;
    font-weight:750}

.sf-product button:hover,.sf-btn:hover{
    filter:brightness(.93)}

.sf-products[data-view=list] .sf-product{
    flex-direction:row;
    align-items:center}

.sf-products[data-view=list] .product-image{
    display:none}

.sf-products[data-view=list] .sf-product-body{
    display:grid;
    grid-template-columns:minmax(0,1fr) auto 110px;
    gap:12px;
    align-items:center}

.sf-products[data-view=list] h3{
    min-height:0;
    margin:0}

.sf-products[data-view=list] form{
    margin:0}

.sf-toolbar{
    display:flex;
    align-items:center;
    gap:12px;
    flex-wrap:wrap;
    margin-bottom:15px}

.sf-search{
    display:flex;
    align-items:center;
    flex:1;
    min-width:220px;
    background:#fff;
    border:1px solid #dbe2e9;
    border-radius:11px;
    overflow:hidden}

.sf-search input{
    width:100%;
    min-width:0;
    border:0;
    padding:12px 14px;
    background:transparent;
    outline:0}

.sf-search button{
    border:0;
    background:var(--business-primary);
    color:#fff;
    padding:12px 18px;
    font-weight:700}

.sf-layout{
    display:flex;
    gap:5px;
    background:#fff;
    border:1px solid #dbe2e9;
    padding:4px;
    border-radius:11px}

.sf-layout button{
    border:0;
    background:transparent;
    color:#526277;
    padding:8px 10px;
    border-radius:7px;
    font-weight:700}

.sf-layout button[aria-pressed=true]{
    background:var(--business-primary);
    color:#fff}

.sf-empty{
    padding:30px;
    border:1px dashed #cbd5e1;
    border-radius:13px;
    background:#fff;
    color:#64748b}

.sf-pagination{
    margin:22px 0 110px;
    overflow-x:auto}

.sf-bottom{
    display:none}

.sf-footer{
    border-top:1px solid #e0e7ee;
    background:#fff;
    padding:22px 0;
    color:#64748b;
    margin-top:36px}

.sf-footer-inner{
    display:flex;
    justify-content:space-between;
    gap:15px;
    flex-wrap:wrap}

.sf-footer a{
    color:var(--business-primary)}

@media(max-width:900px){.sf-products{
    grid-template-columns:repeat(3,minmax(0,1fr))}

.sf-hero-inner{
    min-height:275px}

.sf-hero:has(.sf-hero-image) .sf-hero-copy{
    max-width:65%}}

@media(max-width:640px){.sf-container{
    width:min(100% - 24px,1160px)}

.sf-top-inner{
    min-height:59px}

.sf-top .sf-nav{
    display:none}

.sf-brand{
    font-size:1.07rem}

.sf-mark{
    width:34px;
    height:34px}

.sf-hero-inner{
    padding:35px 0;
    min-height:260px}

.sf-hero h1{
    font-size:clamp(1.85rem,8vw,2.65rem)}

.sf-hero p{
    font-size:.92rem}

.sf-hero-image{
    opacity:.16;
    inset:0;
    width:100%;
    mask-image:none}

.sf-hero:has(.sf-hero-image) .sf-hero-copy{
    max-width:100%}

.sf-booking{
    justify-content:flex-start}

.sf-section{
    padding-top:22px}

.sf-products{
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:10px}

.sf-products[data-view=three]{
    grid-template-columns:repeat(3,minmax(0,1fr))}

.sf-product-body{
    padding:10px}

.sf-product h3{
    font-size:.83rem}

.sf-product button{
    min-height:40px}

.sf-layout button{
    font-size:.75rem;
    padding:8px}

.sf-products[data-view=list] .sf-product-body{
    grid-template-columns:minmax(0,1fr) auto;
    gap:8px}

.sf-products[data-view=list] form{
    grid-column:1/-1}

.sf-bottom{
    position:fixed;
    z-index:60;
    bottom:0;
    left:0;
    right:0;
    display:grid;
    grid-template-columns:repeat(5,1fr);
    background:#fff;
    border-top:1px solid #dbe3ea;
    box-shadow:0 -5px 20px #14233912;
    padding:6px 3px calc(7px + env(safe-area-inset-bottom))}

.sf-bottom a{
    display:grid;
    justify-items:center;
    gap:2px;
    font-size:.68rem;
    color:#526277;
    font-weight:700;
    padding:5px 0}

.sf-bottom a[aria-current=page]{
    color:var(--business-primary)}

.sf-bottom svg{
    width:21px;
    height:21px;
    stroke:currentColor;
    fill:none;
    stroke-width:1.8;
    stroke-linecap:round;
    stroke-linejoin:round}

.sf-footer{
    padding-bottom:90px}}

@media(prefers-reduced-motion:reduce){html{
    scroll-behavior:auto}}

/* Show product-image fallback even when the original image fails to load. */
.sf-product .product-image-fallback { width:100%; height:100%; }
.sf-pwa { display:flex; align-items:center; gap:10px; flex-wrap:wrap; }
.sf-pwa .dc-pwa-install { margin:0; }
.sf-pwa .dc-pwa-install-button { min-height:38px; }
.sf-hero:not(:has(.sf-hero-image)) { background:linear-gradient(110deg,var(--business-surface,#fff),#eaf3ef); }

/* Phase 1: shared customer footer, product image containment and touch targets */
.sf-shared-bottom a { min-height: 54px; }
.sf-product .product-image { aspect-ratio:4 / 3; overflow:hidden; background:#f8fafc; }
.sf-product .product-image img { width:100%;height:100%;object-fit:contain;display:block; }
.sf-product .product-image-fallback { width:100%;height:100%; }
.sf-product button { min-height:38px; }
@media (max-width:680px) { .sf-shared-bottom { padding-bottom: max(6px,env(safe-area-inset-bottom,0px)); } }

/* Tenant branding and public contact details */
.sf-brand-logo{width:42px;height:42px;object-fit:contain;border-radius:9px}
.sf-unit{font-size:.75rem;font-weight:600;color:#64748b;margin-left:3px}
.sf-footer-details{display:flex;flex-direction:column;gap:7px}
.sf-footer-details strong{color:var(--business-primary)}
.sf-bottom:has(a:nth-child(3):last-child){grid-template-columns:repeat(3,1fr)}
@media(max-width:640px){.sf-products[data-view=three]{gap:6px}.sf-products[data-view=three] .sf-product-body{padding:7px}.sf-products[data-view=three] .sf-product h3{font-size:.75rem}}

/* Live product search and optional speech input */
.sf-search .sf-voice-search { background:#fff; color:var(--business-primary); border:0; padding:8px 11px; font-size:1.15rem; }
.sf-search .sf-voice-search[hidden] { display:none; }
.sf-search .sf-voice-search[aria-pressed=true] { background:#fff0f0; color:#b91c1c; }
.sf-search-status { color:#64748b; margin:0 0 10px; font-size:.85rem; }
.sf-search-status[hidden] { display:none; }

/* Featured star and promotional discount markers. */
.sf-product-media { position:relative; min-width:0; }
.sf-product-media > .product-image { width:100%; }
.sf-featured-star { position:absolute; top:9px; left:9px; z-index:2; display:grid; place-items:center; width:30px; height:30px; border-radius:50%; background:#f59e0b; color:#fff; font-size:19px; box-shadow:0 2px 8px #0002; }
.sf-discount-badge { position:absolute; top:9px; right:9px; z-index:2; max-width:calc(100% - 50px); padding:5px 8px; border-radius:6px; background:#dc2626; color:#fff; font-size:.75rem; font-weight:800; line-height:1.2; text-align:center; }
.sf-products[data-view=list] .sf-product-media { display:none; }

/* Sticky cart + drawer: additive, scoped; do not remove shared customer/dashboard styles. */
.sf-sticky-cart[hidden],.sf-cart-drawer[hidden],.sf-cart-backdrop[hidden]{display:none!important}
.sf-sticky-cart{position:fixed;bottom:70px;left:50%;transform:translateX(-50%);width:min(540px,calc(100% - 24px));z-index:1200;filter:drop-shadow(0 8px 20px #0002)}
.sf-sticky-cart button{width:100%;border:0;border-radius:13px;padding:14px 18px;display:flex;justify-content:space-between;gap:12px;align-items:center;background:var(--business-primary,#0f766e);color:#fff;font:inherit;font-weight:700;cursor:pointer}
.sf-cart-backdrop{position:fixed;inset:0;background:#0008;z-index:1290}
.sf-cart-drawer{position:fixed;right:0;top:0;bottom:0;width:min(440px,100%);background:var(--business-surface,#fff);color:var(--business-text,#0f172a);z-index:1300;overflow:auto;box-shadow:-8px 0 35px #0003;padding:18px}
.sf-cart-open{overflow:hidden}.sf-cart-drawer-head{display:flex;justify-content:space-between;align-items:center;font-size:1.2rem;border-bottom:1px solid #ddd;padding-bottom:12px}.sf-cart-drawer-head button{border:0;background:transparent;font-size:1.4rem;cursor:pointer}
.sf-drawer-item{padding:14px 0;border-bottom:1px solid #ddd}.sf-drawer-item-name,.sf-drawer-totals{display:flex;justify-content:space-between;gap:12px}.sf-drawer-item-actions{display:flex;justify-content:space-between;gap:8px;flex-wrap:wrap;margin-top:10px}.sf-drawer-item-actions form{display:flex;align-items:center;gap:7px}.sf-drawer-item-actions input{width:64px;min-height:36px;padding:5px}.sf-drawer-item-actions button{border:1px solid #ccc;border-radius:7px;padding:7px;background:#f8fafc;cursor:pointer}.sf-drawer-totals{margin:18px 0;font-size:1.1rem;font-weight:700}.sf-drawer-checkout{display:block;text-align:center;padding:13px;background:var(--business-primary,#0f766e);color:#fff!important;border-radius:9px;text-decoration:none;font-weight:700}
@media(min-width:768px){.sf-sticky-cart{bottom:18px}}

/* System A compact featured-strip parity — cumulative; do not remove shared rules. */
.sf-featured-strip{display:flex;gap:12px;overflow-x:auto;overscroll-behavior-inline:contain;scroll-snap-type:x proximity;padding:8px 2px 14px}
.sf-featured-card{position:relative;display:flex;flex-direction:column;flex:0 0 174px;min-width:0;overflow:hidden;border:1px solid var(--sf-border,#e2e8f0);border-radius:12px;background:#fff;scroll-snap-align:start}
.sf-featured-media{position:relative;aspect-ratio:4/3;overflow:hidden}
.sf-featured-media img,.sf-featured-media .product-image{width:100%;height:100%;object-fit:cover}
.sf-featured-overlay-star{position:absolute;top:8px;left:8px;z-index:2;color:#fff;background:#e5a400;border-radius:50%;width:27px;height:27px;display:grid;place-items:center;font-size:18px;box-shadow:0 2px 5px #0003}
.sf-featured-overlay-discount{position:absolute;top:40px;left:8px;z-index:2;background:#dc2626;color:#fff;font-size:11px;font-weight:800;padding:4px 7px;border-radius:5px}
.sf-featured-service{position:absolute;bottom:7px;left:7px;background:#fff;color:#334155;font-size:10px;font-weight:700;padding:3px 6px;border-radius:4px}
.sf-featured-info{padding:9px 10px 12px;flex:1;min-width:0;padding-right:42px}
.sf-featured-info h3{font-size:13px;line-height:1.35;font-weight:650;margin:0 0 8px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.sf-featured-price{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 6px;font-size:13px}
.sf-featured-price strong{color:var(--business-primary,#0f766e)}
.sf-featured-price s,.sf-featured-price small{font-size:11px;color:#64748b}
.sf-featured-cart{position:absolute;right:8px;bottom:10px}
.sf-featured-cart button{width:30px;height:30px;display:grid;place-items:center;background:var(--business-primary,#0f766e);color:#fff;border:0;border-radius:7px;cursor:pointer;padding:0}
.sf-featured-cart button:disabled{opacity:.5;cursor:wait}
@media(max-width:600px){.sf-featured-card{flex-basis:152px}.sf-featured-strip{gap:9px}}

/* System A parity: separate horizontal service strip, cumulative addition 2026-10-17. */
.sf-service-strip{display:flex;gap:12px;overflow-x:auto;scroll-snap-type:x proximity;padding:4px 2px 12px;overscroll-behavior-x:contain;-webkit-overflow-scrolling:touch}
.sf-service-strip>.sf-product-card,.sf-service-strip>.sf-card,.sf-service-strip>article{flex:0 0 clamp(148px,23vw,205px);min-width:0;scroll-snap-align:start}
@media(max-width:640px){.sf-service-strip{gap:9px}.sf-service-strip>.sf-product-card,.sf-service-strip>.sf-card,.sf-service-strip>article{flex-basis:155px}}

/* Cart icon control: preserve established product-card sizing and use business theme. */
.sf-product form .sf-card-cart-icon{display:inline-grid;place-items:center;width:36px;height:36px;min-width:36px;padding:0;border:0;border-radius:8px;background:var(--business-primary,#0f766e);color:#fff;cursor:pointer}.sf-product form .sf-card-cart-icon svg{display:block}.sf-product form .sf-card-cart-icon:disabled{opacity:.55}

/* System A parity: regular cards use Add / minus-quantity-plus; featured cards retain cart icon. */
.sf-product .sf-card-add{width:100%;min-height:36px;border:0;border-radius:7px;background:var(--business-primary,#0f766e);color:#fff;font-weight:700;cursor:pointer}
.sf-product .sf-card-quantity{display:flex;align-items:center;justify-content:space-between;gap:5px;background:var(--business-primary,#0f766e);border-radius:7px;color:#fff;font-weight:700}
.sf-product .sf-card-quantity[hidden]{display:none}
.sf-product .sf-card-quantity button{min-width:35px;min-height:36px;border:0;background:transparent;color:#fff;font-size:19px;cursor:pointer}
.sf-product .sf-card-add[hidden]{display:none}
.sf-drawer-place{display:grid;gap:12px;margin-top:14px}.sf-drawer-fulfilment{display:flex;gap:14px;flex-wrap:wrap;border:1px solid #e2e8f0;border-radius:8px;padding:10px}.sf-drawer-fulfilment legend{font-weight:700}.sf-drawer-delivery{display:grid;gap:8px}.sf-drawer-delivery[hidden]{display:none}.sf-drawer-delivery select{width:100%;min-height:42px}.sf-drawer-new-address{display:grid;gap:8px;margin-top:12px}.sf-drawer-new-address[hidden]{display:none}.sf-drawer-new-address label{display:grid;gap:4px}.sf-drawer-new-address input,.sf-drawer-new-address textarea{width:100%;border:1px solid #cbd5e1;border-radius:7px;padding:9px}.sf-drawer-checkout{display:block;text-align:center;width:100%;border:0;cursor:pointer}

/* System A style: storefront-integrated sticky cart drawer. Append-only. */
.sf-cart-drawer{display:flex;flex-direction:column;padding:0;overflow:hidden}
.sf-cart-drawer-head{flex:0 0 auto;padding:16px 18px;margin:0;border-bottom:1px solid #e2e8f0}
#sf-cart-drawer-content{display:flex;flex-direction:column;flex:1;min-height:0;overflow-y:auto}
.sf-drawer-item-list{padding:16px;flex:1}
.sf-drawer-line{display:grid;grid-template-columns:58px minmax(0,1fr) auto;gap:10px;align-items:center;padding:12px 0;border-bottom:1px solid #f1f5f9}
.sf-drawer-thumb{width:58px;height:64px;display:grid;place-items:center;border-radius:9px;background:#f8fafc;font-size:22px}
.sf-drawer-line-main{display:grid;gap:6px;min-width:0}.sf-drawer-line-main strong{font-size:13px;color:var(--business-primary,#0f766e)}.sf-drawer-line-main small{color:#94a3b8}
.sf-drawer-line-actions{display:grid;justify-items:end;gap:5px}.sf-drawer-line-actions b{font-size:12px;color:var(--business-primary,#0f766e)}
.sf-drawer-line-remove button{background:transparent;border:0;color:#94a3b8;font-size:20px;cursor:pointer;padding:0 4px}
.sf-drawer-qty{display:flex;align-items:center;justify-content:space-between;border:1px solid #cbd5e1;border-radius:8px;min-width:80px;height:29px}
.sf-drawer-qty button{border:0!important;background:transparent!important;color:var(--business-primary,#0f766e)!important;width:26px!important;height:27px!important;padding:0!important;font-size:17px;cursor:pointer}
.sf-drawer-qty span{font-size:12px;font-weight:700}
.sf-drawer-footer{margin-top:auto;padding:12px 14px 16px;border-top:1px solid #e2e8f0;background:#fff}
.sf-drawer-totals{margin:0 0 12px;padding:12px;border:1px solid #e2e8f0;border-radius:9px;background:#f8fafc;font-size:13px}
.sf-drawer-totals strong{color:var(--business-primary,#0f766e)}
.sf-drawer-place{gap:8px;margin:0}.sf-drawer-fulfilment{border:0;padding:0;gap:14px}.sf-drawer-fulfilment legend{font-size:13px;color:var(--business-primary,#0f766e);margin-bottom:7px}
.sf-drawer-fulfilment label{font-size:12px;display:flex;gap:5px;align-items:center}
.sf-drawer-bottom-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:8px}
.sf-drawer-continue{background:#fff;border:1px solid #cbd5e1;border-radius:8px;padding:11px 7px;cursor:pointer;font-size:12px}
.sf-drawer-bottom-actions .sf-drawer-checkout{margin:0;padding:11px 7px;font-size:12px}
.sf-drawer-error{color:#b91c1c;font-size:12px}

/* 2026-10-17: Featured quantity controls and cart-drawer parity. Additive shared CSS. */
.sf-featured-card .sf-featured-quantity[hidden],.sf-featured-card .sf-card-add[hidden]{display:none!important}
.sf-featured-card .sf-featured-quantity{position:absolute;right:7px;bottom:7px;display:flex!important;align-items:center;justify-content:space-between;gap:2px;width:84px;height:30px;border:1px solid var(--business-primary,#0f766e);border-radius:7px;background:#fff;z-index:3}
.sf-featured-card .sf-featured-quantity[hidden]{display:none!important}
.sf-featured-card .sf-featured-quantity button{width:26px!important;height:28px!important;padding:0!important;border:0!important;background:transparent!important;color:var(--business-primary,#0f766e)!important;font-weight:800;cursor:pointer}
.sf-featured-card .sf-featured-quantity span{font-size:12px;font-weight:700}
.sf-cart-drawer .sf-drawer-line{display:grid!important;grid-template-columns:58px minmax(0,1fr) auto!important;gap:10px!important;align-items:center!important;padding:12px 0!important}
.sf-cart-drawer .sf-drawer-line-actions{display:grid!important;justify-items:end!important;gap:5px!important}
.sf-cart-drawer .sf-drawer-qty{display:flex!important;flex-direction:row!important;align-items:center!important;justify-content:space-between!important;width:80px!important;height:29px!important;gap:0!important}
.sf-cart-drawer .sf-drawer-qty button{display:inline-flex!important;align-items:center;justify-content:center;width:26px!important;min-width:26px!important;height:27px!important;min-height:27px!important;padding:0!important;margin:0!important;background:transparent!important;color:var(--business-primary,#0f766e)!important;border:0!important;box-shadow:none!important}
.sf-cart-drawer .sf-drawer-qty span{display:inline-block!important;min-width:15px;text-align:center}
.sf-cart-drawer .sf-drawer-line-remove button{width:auto!important;min-width:0!important;background:transparent!important;color:#94a3b8!important;border:0!important}
.sf-cart-drawer .sf-drawer-footer{margin-top:auto!important;background:#fff!important;border-top:1px solid #e2e8f0!important;padding:12px 14px 16px!important}
.sf-cart-drawer .sf-drawer-bottom-actions{display:grid!important;grid-template-columns:1fr 1fr!important;gap:8px!important}
.sf-cart-drawer .sf-drawer-bottom-actions button{width:100%!important;margin:0!important}

/* 2026-10-17: Shared storefront sticky-bar dismissal and in-drawer delivery. Additive. */
.sf-sticky-cart{display:flex!important;align-items:center!important;gap:5px!important}
.sf-sticky-cart[hidden]{display:none!important}
.sf-sticky-cart #sf-sticky-open{flex:1;min-width:0}
.sf-sticky-cart .sf-sticky-dismiss{flex:none;width:30px!important;height:30px!important;min-width:30px!important;padding:0!important;border:0!important;border-radius:8px;background:rgba(255,255,255,.18)!important;color:#fff!important;font-size:23px;line-height:1;cursor:pointer}
.sf-cart-drawer .sf-delivery-label{display:block;margin:10px 0 6px;color:var(--business-primary,#0f766e);font-size:13px}
.sf-cart-drawer .sf-delivery-guest{border:1px solid #dbe4ee;background:#f8fafc;border-radius:8px;padding:12px;margin:8px 0}
.sf-cart-drawer .sf-delivery-guest p,.sf-cart-drawer .sf-delivery-muted{font-size:12px;color:#64748b;margin:4px 0 9px}
.sf-cart-drawer .sf-drawer-add-address{width:auto!important;padding:8px 10px!important;background:#fff!important;border:1px solid #dbe4ee!important;border-radius:7px!important;color:var(--business-primary,#0f766e)!important}
.sf-cart-drawer .sf-drawer-delivery[hidden],.sf-cart-drawer .sf-drawer-new-address[hidden]{display:none!important}
.sf-cart-drawer .sf-drawer-bottom-actions a.sf-drawer-checkout{display:flex;align-items:center;justify-content:center;text-align:center;text-decoration:none}

/* 2026-10-17 recovery: preserve complete drawer/checkout stylesheet. */
.sf-cart-drawer .sf-drawer-line{display:grid!important;grid-template-columns:58px minmax(0,1fr) auto!important;gap:10px;align-items:center}
.sf-cart-drawer .sf-drawer-line-actions{display:grid!important;justify-items:end;gap:5px}
.sf-cart-drawer .sf-drawer-qty{display:inline-flex!important;flex-flow:row nowrap!important;align-items:center;justify-content:space-between;width:84px!important;min-width:84px;height:30px;gap:0}
.sf-cart-drawer .sf-drawer-qty button{width:27px!important;min-width:27px!important;height:28px!important;min-height:28px!important;padding:0!important;margin:0!important}
.sf-cart-drawer .sf-drawer-bottom-actions{display:grid!important;grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important;gap:8px}
.sf-cart-drawer .sf-drawer-bottom-actions > *{min-width:0;width:100%;box-sizing:border-box}
.sf-cart-drawer .sf-drawer-footer{background:#fff;padding:14px;border-top:1px solid #e2e8f0}
.sf-cart-drawer .sf-drawer-delivery:not([hidden]){display:grid!important;gap:8px}
.sf-cart-drawer .sf-drawer-delivery[hidden],.sf-cart-drawer .sf-drawer-new-address[hidden]{display:none!important}
.sf-cart-drawer .sf-drawer-delivery select,.sf-cart-drawer .sf-drawer-new-address input,.sf-cart-drawer .sf-drawer-new-address textarea{width:100%;box-sizing:border-box}
.sf-cart-drawer .sf-drawer-fulfilment{display:flex;flex-wrap:wrap;gap:12px;align-items:center}
.sf-cart-drawer .sf-drawer-fulfilment label{display:inline-flex;align-items:center;gap:5px}
.sf-sticky-cart{display:flex!important;flex-flow:row nowrap!important;gap:6px;align-items:stretch}
.sf-sticky-cart[hidden]{display:none!important}
.sf-sticky-cart #sf-sticky-open{flex:1 1 auto!important;width:auto!important;min-width:0!important}
.sf-sticky-cart #sf-sticky-dismiss{display:flex!important;align-items:center;justify-content:center;flex:0 0 38px!important;width:38px!important;min-width:38px!important;padding:0!important;color:#fff!important;font-size:23px!important;visibility:visible!important;opacity:1!important}
/* List layout: use a two-column body; price and actions explicitly share the second row. */
.sf-products[data-view="list"] .sf-product-body{display:grid!important;grid-template-columns:minmax(0,1fr) auto!important;grid-template-rows:auto auto!important;gap:6px 10px!important;align-items:center!important}
.sf-products[data-view="list"] .sf-product-body > h3{grid-column:1 / -1!important;grid-row:1!important;margin:0!important}
.sf-products[data-view="list"] .sf-product-body > .sf-price{grid-column:1!important;grid-row:2!important;margin:0!important}
.sf-products[data-view="list"] .sf-product-body > form{grid-column:2!important;grid-row:2!important;display:flex!important;flex-flow:row nowrap!important;align-items:center!important;justify-content:flex-end!important;width:auto!important;min-width:0!important;margin:0!important}
.sf-products[data-view="list"] .sf-product-body > form > button[type="submit"]{width:40px!important;min-width:40px!important;max-width:40px!important;height:38px!important;min-height:38px!important;padding:0!important;font-size:0!important;display:inline-flex!important;align-items:center;justify-content:center;overflow:hidden}
.sf-products[data-view="list"] .sf-product-body > form > button[type="submit"]:not(:has(svg))::before{content:'🛒';font-size:18px}
.sf-products[data-view="list"] .sf-product-body > form > button[type="submit"] svg{display:block;width:19px;height:19px}
.sf-product .sf-card-quantity,.sf-featured-card .sf-card-quantity{flex-flow:row nowrap!important;align-items:center!important;white-space:nowrap!important;width:max-content!important;max-width:100%;gap:3px}
.sf-product .sf-card-quantity:not([hidden]),.sf-featured-card .sf-card-quantity:not([hidden]){display:inline-flex!important}
.sf-product .sf-card-quantity[hidden],.sf-featured-card .sf-card-quantity[hidden],.sf-product .sf-card-add[hidden]{display:none!important}
.sf-product .sf-card-quantity button,.sf-featured-card .sf-card-quantity button{flex:0 0 30px!important;width:30px!important;min-width:30px!important;height:32px!important;min-height:32px!important;padding:0!important}
.sf-product .sf-card-quantity [data-sf-quantity]{min-width:17px;text-align:center;flex:0 0 auto}
@media(max-width:700px){.sf-products[data-view="list"] .sf-product-body{width:100%;min-width:0}.sf-products[data-view="list"] .sf-product{width:100%}}

/* 2026-10-17 targeted correction: retain existing cart and services styles. */
/* Grid cards: quantity control fills exactly the Add to Cart button footprint. */
.sf-products:not([data-view="list"]) .sf-product-body > form,
.sf-products:not([data-view="list"]) .sf-product-body > .sf-card-quantity,
.sf-service-strip .sf-product-body > form,
.sf-service-strip .sf-product-body > .sf-card-quantity{width:100%!important;min-width:0!important;box-sizing:border-box}
.sf-products:not([data-view="list"]) .sf-product .sf-card-quantity:not([hidden]),
.sf-service-strip .sf-product .sf-card-quantity:not([hidden]){display:flex!important;width:100%!important;max-width:none!important;min-width:0!important;box-sizing:border-box;justify-content:space-between!important}
.sf-products:not([data-view="list"]) .sf-product .sf-card-add:not([hidden]),
.sf-service-strip .sf-product .sf-card-add:not([hidden]){display:block!important;width:100%!important;box-sizing:border-box}
/* List cards: show one action at a time, never overlay cart icon and quantity. */
.sf-products[data-view="list"] .sf-product .sf-card-add[hidden],
.sf-products[data-view="list"] .sf-product .sf-card-quantity[hidden]{display:none!important}
.sf-products[data-view="list"] .sf-product .sf-card-quantity:not([hidden]){display:inline-flex!important;flex-flow:row nowrap!important;min-width:92px!important;width:100px!important;max-width:none!important;justify-content:space-between!important}
.sf-products[data-view="list"] .sf-product-body > form:has(.sf-card-quantity:not([hidden])) > .sf-card-add,
.sf-products[data-view="list"] .sf-product-body > form:has(.sf-card-quantity:not([hidden])) > .sf-card-cart-icon,
.sf-products[data-view="list"] .sf-product-body > form:has(.sf-card-quantity:not([hidden])) > button[type="submit"],
.sf-products[data-view="list"] .sf-product-body:has(> .sf-card-quantity:not([hidden])) > form{display:none!important}
.sf-products[data-view="list"] .sf-product-body > .sf-card-quantity:not([hidden]){grid-column:2!important;grid-row:2!important}
/* Cart glyphs are white against the business primary background. */
.sf-products[data-view="list"] .sf-card-add:not([hidden])::before{content:'🛒';font-size:18px;filter:grayscale(1) brightness(0) invert(1)}
.sf-products[data-view="list"] .sf-card-add:not([hidden]){font-size:0!important;color:#fff!important}
.sf-products[data-view="list"] .sf-card-add:not([hidden]) svg,
.sf-products[data-view="list"] .sf-card-cart-icon svg{color:#fff!important;stroke:#fff!important;fill:none!important;filter:none!important}
.sf-products[data-view="list"] .sf-product-body > form > button[type="submit"]:has(svg)::before{content:none!important}
/* Legacy storefront footer, if rendered: match the unified white mobile navigation. */
@media(max-width:700px){
  .sf-bottom.sf-shared-bottom{background:#fff!important;border-top:1px solid #e5e7eb!important;box-shadow:0 -2px 12px rgba(15,23,42,.07)!important}
  .sf-bottom.sf-shared-bottom a{color:var(--business-primary,#0f766e)!important;opacity:1}
  .sf-bottom.sf-shared-bottom a[aria-current="page"]{color:var(--business-primary,#0f766e)!important;opacity:1!important;background:color-mix(in srgb,var(--business-primary,#0f766e) 10%,white)!important;border-radius:9px}
  .sf-bottom.sf-shared-bottom a svg{stroke:currentColor!important}
}

/* 2026-10-19: Mobile cart drawer layout. Keep desktop unchanged. */
@media(max-width:700px){
  .sf-cart-drawer{inset:0 0 0 auto!important;width:100%!important;max-width:100vw!important;height:100dvh!important;max-height:100dvh!important;z-index:1300!important;display:flex!important;flex-direction:column!important;overflow:hidden!important;padding:0!important;border-radius:0!important;box-sizing:border-box!important}
  .sf-cart-drawer[hidden]{display:none!important}
  .sf-cart-drawer-head{flex:0 0 auto!important;min-height:56px!important;padding:12px 16px!important;background:var(--business-surface,#fff)!important}
  #sf-cart-drawer-content{display:flex!important;flex:1 1 auto!important;min-height:0!important;flex-direction:column!important;overflow-y:auto!important;overscroll-behavior:contain!important;-webkit-overflow-scrolling:touch}
  .sf-drawer-item-list{flex:1 0 auto!important;min-height:0!important;padding:12px!important}
  .sf-drawer-line{grid-template-columns:48px minmax(0,1fr) auto!important;gap:7px!important}
  .sf-drawer-thumb{width:48px!important;height:54px!important}
  .sf-drawer-footer{position:relative!important;flex:0 0 auto!important;padding:12px 12px calc(14px + env(safe-area-inset-bottom))!important;background:var(--business-surface,#fff)!important}
  .sf-drawer-bottom-actions{grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important}
  body.sf-cart-open .dc-customer-mobile-nav{visibility:hidden!important;pointer-events:none!important}
  .sf-sticky-cart{bottom:calc(88px + env(safe-area-inset-bottom))!important}
}

/* 2026-10-19: one contained sticky cart bar; close control never floats outside. */
.sf-sticky-cart{display:flex!important;align-items:stretch!important;gap:0!important;overflow:hidden!important;box-sizing:border-box!important;background:var(--business-primary,#0f766e)!important;border-radius:13px!important;padding:4px!important;filter:drop-shadow(0 8px 20px #0003)}
.sf-sticky-cart[hidden]{display:none!important}
.sf-sticky-cart #sf-sticky-open{display:flex!important;flex:1 1 0!important;min-width:0!important;width:auto!important;min-height:46px!important;padding:9px 10px!important;border:0!important;border-radius:9px!important;background:transparent!important;color:var(--business-primary-contrast,#fff)!important;gap:6px!important;flex-wrap:wrap!important;justify-content:space-between!important}
.sf-sticky-cart #sf-sticky-dismiss{display:flex!important;flex:0 0 42px!important;width:42px!important;min-width:42px!important;min-height:46px!important;align-items:center!important;justify-content:center!important;align-self:stretch!important;padding:0!important;margin:0!important;border:0!important;border-left:1px solid currentColor!important;border-radius:0 9px 9px 0!important;background:transparent!important;color:var(--business-primary-contrast,#fff)!important;font-size:27px!important;font-weight:700!important;line-height:1!important;visibility:visible!important;opacity:1!important;position:static!important;transform:none!important}
.sf-sticky-cart #sf-sticky-dismiss:focus-visible{outline:2px solid currentColor!important;outline-offset:-3px!important}


/* 2026-10-19: image-free cart rows, tenant secondary-color separation.
   Final scoped overrides intentionally supersede legacy three-column drawer rules. */
.sf-cart-drawer .sf-drawer-item-list{display:grid;align-content:start;gap:10px}
.sf-cart-drawer .sf-drawer-line{
  display:grid!important;grid-template-columns:minmax(0,1fr) auto!important;
  gap:10px!important;align-items:center!important;min-width:0;
  padding:12px!important;margin:0!important;
  border:1px solid color-mix(in srgb,var(--business-secondary,#14b8a6) 42%,white)!important;
  border-radius:10px!important;
  background:color-mix(in srgb,var(--business-secondary,#14b8a6) 9%,white)!important;
}
.sf-cart-drawer .sf-drawer-line-main{min-width:0;overflow-wrap:anywhere}
.sf-cart-drawer .sf-drawer-line-actions{min-width:84px}
@media(max-width:700px){
  .sf-cart-drawer .sf-drawer-line{grid-template-columns:minmax(0,1fr) auto!important;gap:8px!important;padding:10px!important}
}

/* 2026-10-19: compact image-free cart items; preserve AJAX step controls. */
.sf-cart-drawer .sf-drawer-item-list{gap:7px!important;padding:10px 12px!important}
.sf-cart-drawer .sf-drawer-line{grid-template-columns:minmax(0,1fr) auto!important;gap:10px!important;padding:9px 10px!important;min-height:0!important}
.sf-cart-drawer .sf-drawer-line-main{display:flex!important;flex-direction:column!important;gap:2px!important;align-items:flex-start!important}
.sf-cart-drawer .sf-drawer-line-main strong{font-size:12px!important;line-height:1.35!important}
.sf-cart-drawer .sf-drawer-line-main small{font-size:12px!important;line-height:1.25!important;color:var(--business-text,#0f172a)!important;opacity:.75}
.sf-cart-drawer .sf-drawer-line-actions{display:flex!important;align-items:center!important;justify-content:flex-end!important;min-width:84px!important;gap:0!important}
.sf-cart-drawer .sf-drawer-qty{display:inline-flex!important;flex-flow:row nowrap!important;align-items:center!important;justify-content:space-between!important;width:84px!important;min-width:84px!important;height:30px!important}
.sf-cart-drawer .sf-drawer-qty button{display:inline-flex!important;align-items:center!important;justify-content:center!important;flex:0 0 27px!important;width:27px!important;min-width:27px!important;height:28px!important;min-height:28px!important;padding:0!important;pointer-events:auto!important}
@media(max-width:700px){.sf-cart-drawer .sf-drawer-line{grid-template-columns:minmax(0,1fr) auto!important;padding:8px 9px!important}}
