/* Guest product modifiers (task 06) — storefront card / modal */

.sf-mod {
    --sf-mod-accent: #e90c4e;
    --sf-mod-base: #212330;
    --sf-mod-muted: #65697a;
    --sf-mod-line: #eceef3;
    --sf-mod-soft: #f7f7fb;
    margin: 12px 0 4px;
    font-family: Montserrat, sans-serif;
    min-width: 0;
}

.sf-mod__stack {
    display: flex;
    flex-direction: column;
    gap: 14px;
}

.sf-mod__group {
    min-width: 0;
}

.sf-mod__group + .sf-mod__group {
    padding-top: 12px;
}

.sf-mod__group.has-error {
    border: 1px solid #e14a55;
    border-radius: 8px;
    padding: 10px 10px 8px;
    background: #fff8f8;
}

.sf-mod__group-head {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    gap: 10px;
    margin-bottom: 8px;
}

.sf-mod__group-head b {
    font-size: 14px;
    font-weight: 700;
    color: var(--sf-mod-base);
    min-width: 0;
    overflow-wrap: anywhere;
}

.sf-mod__group-head span {
    flex: 0 0 auto;
    font-size: 11px;
    font-weight: 600;
    color: var(--sf-mod-accent);
    white-space: nowrap;
}

.sf-mod__req {
    margin-left: 2px;
    color: var(--sf-mod-accent);
}

.sf-mod__list {
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.sf-mod__option {
    display: flex;
    align-items: center;
    gap: 10px;
    min-height: 40px;
    padding: 8px 10px;
    border: 1px solid var(--sf-mod-line);
    border-radius: 6px;
    background: var(--sf-mod-soft);
    cursor: pointer;
    box-sizing: border-box;
    min-width: 0;
}

.sf-mod__option.is-selected {
    border-color: rgba(233, 12, 78, 0.4);
    background: rgba(233, 12, 78, 0.06);
}

.sf-mod__option.is-muted {
    opacity: 0.45;
    cursor: default;
    pointer-events: none;
}

.sf-mod__option-control {
    flex: 0 0 16px;
    width: 16px;
    height: 16px;
    border: 1.5px solid #999da9;
    box-sizing: border-box;
    background: #fff;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 10px;
    font-weight: 700;
    color: #fff;
}

.sf-mod__option.is-radio .sf-mod__option-control {
    border-radius: 50%;
}

.sf-mod__option.is-check .sf-mod__option-control {
    border-radius: 3px;
}

.sf-mod__option.is-selected.is-radio .sf-mod__option-control {
    border: 4px solid var(--sf-mod-accent);
}

.sf-mod__option.is-selected.is-check .sf-mod__option-control {
    background: var(--sf-mod-accent);
    border-color: var(--sf-mod-accent);
}

.sf-mod__option-thumb {
    flex: 0 0 36px;
    width: 36px;
    height: 36px;
    overflow: hidden;
    border-radius: 5px;
    background: transparent;
}

.sf-mod__option-thumb img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.sf-mod__option-text {
    flex: 1 1 auto;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 2px;
}

.sf-mod__option-text b {
    font-size: 13px;
    font-weight: 600;
    color: var(--sf-mod-base);
    overflow-wrap: anywhere;
}

.sf-mod__option-text small {
    font-size: 11px;
    color: var(--sf-mod-muted);
}

.sf-mod__option-price {
    flex: 0 0 auto;
    font-style: normal;
    font-size: 12px;
    font-weight: 700;
    color: var(--sf-mod-base);
    white-space: nowrap;
}

.sf-mod__qty {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    flex: 0 0 auto;
}

.sf-mod__qty-btn {
    width: 28px;
    height: 28px;
    border: 1px solid #d8dbe3;
    border-radius: 6px;
    background: #fff;
    color: var(--sf-mod-base);
    font-size: 16px;
    line-height: 1;
    cursor: pointer;
    padding: 0;
}

.sf-mod__qty-btn:disabled {
    opacity: 0.4;
    cursor: default;
}

.sf-mod__qty-val {
    min-width: 18px;
    text-align: center;
    font-size: 13px;
    font-weight: 700;
}

.sf-mod__error {
    margin: 8px 2px 0;
    font-size: 12px;
    line-height: 1.35;
    color: #d83c49;
}

.sf-mod__unavailable .sf-mod__group-head span {
    color: #d83c49;
}

.good__add-to-cart.sf-mod-add_disabled {
    opacity: 0.72;
}

/* Desktop modal: modifiers in the right column, above footer */
.good-full.has-sf-modifiers .sf-mod {
    margin: 8px 0 12px;
}

/* Mobile modal: sticky footer stays; modifiers scroll with content */
.good-mobile.has-sf-modifiers {
    display: flex;
    flex-direction: column;
}

.good-mobile.has-sf-modifiers .sf-mod {
    margin: 8px 12px 16px;
}

.good-mobile.has-sf-modifiers .good-mobile__footer {
    position: sticky;
    bottom: 0;
    z-index: 3;
    background: inherit;
    padding-bottom: max(12px, env(safe-area-inset-bottom, 0px));
    box-shadow: 0 -8px 24px rgba(33, 35, 48, 0.06);
}

@media (max-width: 767px) {
    .sf-mod__option {
        padding: 10px;
    }

    .sf-mod__option-text b {
        font-size: 14px;
    }
}
/* Inherit the active theme's palette, including its dark surfaces. */
.sf-mod {
    --sf-mod-accent: var(--linkColor, #e90c4e);
    --sf-mod-base: var(--baseColor, #212330);
    --sf-mod-muted: var(--mediumColor, #65697a);
    --sf-mod-line: var(--lightColor, #eceef3);
    --sf-mod-soft: var(--whiteOverlay, #f7f7fb);
    color: var(--sf-mod-base);
    font-family: inherit;
}
.sf-mod__option-control, .sf-mod__qty-btn { background: var(--whiteColor, #fff); }
.sf-mod__option.is-selected { border-color: var(--sf-mod-accent); background: var(--transparentSixth, rgba(233,12,78,.08)); }
.sf-mod__group.has-error { background: var(--sf-mod-soft); }
.sf-mod__group-head { flex-wrap: wrap; gap: 3px 10px; }
.sf-mod__group-head span { white-space: normal; }
.sf-mod__option { min-height: 48px; }
.sf-mod__qty-btn { width: 32px; height: 36px; border-color: var(--sf-mod-line); }
.sf-mod__qty-val { color: var(--sf-mod-base); }
.sf-mod__option:focus-visible, .sf-mod__qty-btn:focus-visible { outline: 2px solid var(--sf-mod-accent); outline-offset: 3px; }
.sf-mod__hint { font-size: 11px; color: var(--sf-mod-muted); margin: 0 0 6px; }
.sf-mod__added { margin: 10px 0; font-size: 12px; color: var(--baseColor); }
.sf-cart-modifier { color: var(--mediumColor, #65697a); font-size: 12px; line-height: 1.5; overflow-wrap: anywhere; margin-top: 4px; }
.good-full.has-sf-modifiers .good-full__description { max-height: none; }
.good-full.has-sf-modifiers .col-5 { min-width: 0; }
.good-full.has-sf-modifiers .good-full__footer,
.good-mobile.has-sf-modifiers .good-mobile__footer { background: var(--whiteColor, #fff); }
html.newblack .sf-mod { --sf-mod-soft: #252525; --sf-mod-line: #414141; --sf-mod-muted: #b6b6b6; }
html.theme-black .sf-mod { --sf-mod-soft: #30303b; --sf-mod-line: #464652; --sf-mod-muted: #b6b6c1; }
html.newblack .sf-mod__option.is-selected, html.theme-black .sf-mod__option.is-selected { background: rgba(233,12,78,.15); }
/* Fancybox centers HTML slides with an inline-block strut. A card taller than
   the phone then paints past the screen, but the slide's scroll height stays
   equal to the viewport, so the lower modifiers and the order button never scroll into view. */
@media (max-width: 767px) {
    .lightbox .fancybox-slide--html { display: block; overflow-x: hidden; overflow-y: auto; -webkit-overflow-scrolling: touch; text-align: left; }
    .lightbox .fancybox-slide--html::before { display: none; }
    .lightbox .fancybox-slide--html .fancybox-content { display: block; vertical-align: top; width: 100%; max-width: 100%; }
}
@media (max-width: 767px) {
    .sf-mod__option { display: grid; grid-template-columns: 18px minmax(0,1fr) auto; gap: 8px; }
    .sf-mod__option-text { grid-column: 2; grid-row: 1; }
    .sf-mod__option-control { grid-column: 1; grid-row: 1; }
    .sf-mod__option-price { grid-column: 3; grid-row: 1; font-size: 11px; }
    .sf-mod__qty { grid-column: 2 / 4; justify-self: end; }
    .sf-mod__option-thumb { grid-column: 1; grid-row: 2; width: 28px; height: 28px; }
    .sf-mod__qty-btn { width: 40px; height: 40px; }
    .good-full.has-sf-modifiers .good-full__footer { position: sticky; bottom: 0; z-index: 3; padding: 12px 0 max(12px, env(safe-area-inset-bottom)); }
    .good-mobile.has-sf-modifiers .sf-mod { margin: 12px 0 16px; }
}
/* The second photo themes reuse their mobile card for modifier selection on desktop. */
@media (min-width: 768px) {
    #good:has(.good-mobile.has-sf-modifiers) { width: 680px; max-width: calc(100vw - 48px); height: auto; min-height: 0; border-radius: 16px; }
    .good-mobile.has-sf-modifiers .good-mobile__image { height: auto; }
    .good-mobile.has-sf-modifiers .good-mobile__image img { width: 100%; max-height: 280px; object-fit: contain; }
}

/* Photo tiles follow the new theme; palette still belongs to the active theme. */
.sf-mod__list { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); column-gap: 8px; row-gap: 8px; }
.sf-mod__list .sf-mod__option { position: relative; display: grid; grid-template-rows: subgrid; grid-row: span 4; align-items: start; justify-items: center; text-align: center; row-gap: 8px; padding: 8px; border-radius: 12px; }
.sf-mod__list .sf-mod__option-control { position: absolute; right: 13px; top: 13px; z-index: 1; box-shadow: 0 1px 4px #0002; }
.sf-mod__list .sf-mod__option-thumb { display: block; position: relative; flex: none; width: 100%; height: auto; aspect-ratio: 1; border-radius: 8px; overflow: hidden; background: transparent; }
.sf-mod__option-thumb img { object-fit: contain; }
.sf-mod__option-thumb[data-tile] img { position: absolute; width: 300%; height: 200%; max-width: none; object-fit: fill; }
.sf-mod__option-thumb[data-tile="0"] img { left: 0; top: 0; }
.sf-mod__option-thumb[data-tile="1"] img { left: -100%; top: 0; }
.sf-mod__option-thumb[data-tile="2"] img { left: -200%; top: 0; }
.sf-mod__option-thumb[data-tile="3"] img { left: 0; top: -100%; }
.sf-mod__option-thumb[data-tile="4"] img { left: -100%; top: -100%; }
.sf-mod__option-thumb[data-tile="5"] img { left: -200%; top: -100%; }
.sf-mod__list .sf-mod__option-text { flex: 0 0 auto; width: 100%; gap: 4px; }
.sf-mod__list .sf-mod__option-text b { font-size: 12px; line-height: 1.35; }
.sf-mod__list .sf-mod__option-price { order: 3; white-space: normal; font-size: 12px; }
.sf-mod__list .sf-mod__option.has-qty .sf-mod__option-control { display: none; }
.sf-mod__list .sf-mod__option.has-qty:not(.is-selected) .sf-mod__qty { display: none; }
.sf-mod__list .sf-mod__qty { order: 4; justify-self: center; width: 88px; height: 34px; display: grid; grid-template-columns: 30px minmax(0, 1fr) 30px; align-items: center; gap: 0; box-sizing: border-box; overflow: hidden; border: 1px solid var(--sf-mod-line, #e9eaf0); border-radius: 5px; background: var(--whiteColor, #fff); }
.sf-mod__list .sf-mod__qty-btn { width: 100%; height: 100%; min-width: 0; flex: none; margin: 0; padding: 0; border: 0; border-radius: 0; background: var(--whiteOverlay, #f7f7fb); color: var(--mediumColor, #65697a); font-size: 16px; line-height: 1; }
.sf-mod__list .sf-mod__qty-btn:first-child { grid-column: 1; }
.sf-mod__list .sf-mod__qty-btn:last-child { grid-column: 3; }
.sf-mod__list .sf-mod__qty-val { grid-column: 2; min-width: 0; font-size: 14px; font-weight: 700; line-height: 1; }
.sf-mod__list .sf-mod__option:not(:has(.sf-mod__option-thumb)) { padding-top: 36px; }
.sf-mod__list .sf-mod__option.is-selected { box-shadow: inset 0 0 0 1px var(--sf-mod-accent); }
@media (max-width: 767px) {
    .sf-mod__list { display: flex; flex-direction: row; flex-wrap: nowrap; align-items: stretch; gap: 6px; min-width: 0; width: auto; max-width: none; margin-inline: calc(-1 * var(--sf-mod-edge, 16px)); padding: 2px var(--sf-mod-edge, 16px) 4px; box-sizing: border-box; scroll-padding-inline: var(--sf-mod-edge, 16px); overflow-x: auto; overflow-y: hidden; scroll-snap-type: x mandatory; overscroll-behavior-x: contain; touch-action: pan-x pan-y; -webkit-overflow-scrolling: touch; scrollbar-width: none; }
    .good-mobile .sf-mod { --sf-mod-edge: 20px; }
    .sf-mod__group.has-error .sf-mod__list { margin-inline: 0; padding-inline: 0; scroll-padding-inline: 0; }
    .sf-mod__list::-webkit-scrollbar { display: none; }
    .sf-mod__list .sf-mod__option { display: flex; flex-direction: column; align-items: center; grid-template-rows: none; grid-row: auto; flex: 0 0 calc((100% - 12px) / 3); width: calc((100% - 12px) / 3); min-width: 0; box-sizing: border-box; min-height: 96px; padding: 10px 8px 8px; border-radius: 14px; scroll-snap-align: start; }
    .sf-mod__list .sf-mod__option:has(.sf-mod__option-thumb) { padding: 5px 5px 8px; }
    .sf-mod__list .sf-mod__option-thumb { border-radius: 11px; }
    .sf-mod__list .sf-mod__qty { width: 88px; height: 34px; }
    .sf-mod__list .sf-mod__qty-btn { width: 100%; height: 100%; }
    .sf-mod__list .sf-mod__option-text b { font-size: 12px; }
}

/* Empty descriptions must not reserve a full text block or stretch to neighbours. */
.good.good-card.sf-no-description { height: auto; min-height: 0; align-self: start; }
.good.good-card.sf-no-description .good__title { height: auto; min-height: 0; }
.good.good-card.sf-no-description .good__excerpt, .good.good-card.sf-no-description .good__text { display: none; }

/* Use the storefront checkbox silhouette, tinted with the theme accent. */
.sf-mod__option.is-selected.is-check .sf-mod__option-control { background: var(--whiteColor, #fff); }
.sf-mod__option.is-selected.is-check .sf-mod__option-control::after {
    content: ''; width: 12px; height: 10px; background: var(--sf-mod-accent);
    -webkit-mask: url('/images/ico__checkbox_new.svg') center / contain no-repeat;
    mask: url('/images/ico__checkbox_new.svg') center / contain no-repeat;
}

.sf-cart-modifiers__name { display:flex; align-items:center; gap:10px; min-width:0; }
.sf-cart-modifiers__name > span:last-child { min-width:0; }
.sf-cart-modifiers__thumb { display:block; position:relative; flex:0 0 40px; width:40px; height:40px; overflow:hidden; border-radius:7px; background:transparent; }
.sf-cart-modifiers__thumb img { display:block; width:100%; height:100%; object-fit:cover; }
.sf-cart-modifiers__thumb[data-tile] img { position:absolute; width:300%; height:200%; max-width:none; left:0; top:0; }
.sf-cart-modifiers__thumb[data-tile="1"] img, .sf-cart-modifiers__thumb[data-tile="4"] img { left:-100%; }
.sf-cart-modifiers__thumb[data-tile="2"] img, .sf-cart-modifiers__thumb[data-tile="5"] img { left:-200%; }
.sf-cart-modifiers__thumb[data-tile="3"] img, .sf-cart-modifiers__thumb[data-tile="4"] img, .sf-cart-modifiers__thumb[data-tile="5"] img { top:-100%; }
.sf-cart-modifiers__row { padding:5px 0; }
@media(max-width:480px) {
 .sf-cart-modifiers__thumb { flex-basis:32px; width:32px; height:32px; }
 .sf-cart-modifiers__name { gap:8px; }
}

/* Phone product sheet: scrollable photo/details and a persistent purchase footer. */
@media(max-width:767px) {
 .lightbox .fancybox-slide--html:has(.sf-mobile-sheet) { padding:0 !important; overflow:hidden; }
 #good:has(.sf-mobile-sheet) { margin:0 !important; padding:0 !important; width:100%; max-width:100%; height:100vh; height:100dvh; max-height:none; border-radius:0; overflow:hidden; }
 #good:has(.sf-mobile-sheet) #full-info { height:100%; }
 .good-full.sf-mobile-sheet { height:100%; display:flex; flex-direction:column; padding:0; min-height:0; }
 .sf-mobile-sheet .good-card__header { flex:0 0 auto; margin:0; padding:14px 16px; min-height:60px; gap:12px; border-bottom:1px solid var(--lightColor,#e9eaf0); }
 .sf-mobile-sheet .good-full__title { font-size:18px; line-height:1.3; }
 .sf-mobile-sheet > .row { display:block; flex:1 1 auto; min-height:0; overflow:auto; overscroll-behavior:contain; -webkit-overflow-scrolling:touch; margin:0; padding:16px; }
 .sf-mobile-sheet > .row > .col-7, .sf-mobile-sheet > .row > .col-5 { width:100%; max-width:none; padding:0; margin:0; }
 .sf-mobile-sheet .good-full__gallery { margin:0 0 16px; }
 .sf-mobile-sheet .good__thumbnail { height:auto; aspect-ratio:16/9; }
 .sf-mobile-sheet .good__thumbnail::before { display:none; }
 .sf-mobile-sheet .good__thumbnail img { width:100%; height:100%; object-fit:contain; }
 .sf-mobile-sheet .good-full__description { margin:0 0 10px; max-height:none; }
 .sf-mobile-sheet .sf-product-variants { margin-top:0; }
 .sf-mobile-sheet .good-full__options { margin-bottom:16px; }
 .good-full.sf-mobile-sheet > .good-full__footer { position:static; flex:0 0 auto; margin:0; padding:12px 16px max(12px,env(safe-area-inset-bottom)); border-top:1px solid var(--lightColor,#e9eaf0); background:var(--whiteColor,#fff); }
 .sf-mobile-sheet .good__add-to-cart { width:100%; min-height:46px; }
 .sf-mobile-sheet .good__add-to-cart-text { display:inline !important; }
 .sf-mobile-sheet .good-full__footer .good__cost:empty { display:none; }
}

@media(max-width:767px) { .sf-mobile-sheet .good__add-to-cart { gap:4px; } .sf-mobile-sheet .good__add-to-cart-text, .sf-mobile-sheet .good__add-to-cart-cost { white-space:nowrap; } }

.good-full__option-value.good__unit { border: 0; border-radius: 0; background: transparent; box-shadow: none; padding: 0; min-height: 0; }


/* Signature cart structure and spacing; colors and typeface come from each theme. */
#cart .cart__item { display:grid; grid-template-columns:88px minmax(0,1fr); gap:12px; align-items:start; margin:0; padding:16px 0; min-height:0; height:auto; border:0; }
#cart .cart__item + .cart__item { border-top:1px solid var(--lightColor,#e9eaf0); }
#cart .cart__item-thumbnail { position:relative; top:auto; left:auto; width:88px; height:72px; margin:0; border-radius:12px; }
#cart .cart__item-thumbnail::before { display:none; }
#cart .sf-cart-body { display:flex; flex-direction:column; gap:4px; min-width:0; }
#cart .sf-cart-top { display:flex; align-items:center; gap:12px; min-height:72px; min-width:0; }
#cart .cart__item-info { flex:1 1 auto; min-width:0; width:auto; margin:0; padding:0; }
#cart .cart__item-title { margin:0 0 4px; padding:0; line-height:1.3; overflow-wrap:anywhere; }
#cart .cart__item-unit { margin:0; padding:0; line-height:1.35; }
#cart .sf-cart-actions { display:grid; grid-template-columns:88px 7.2em 40px; gap:10px; align-items:center; flex:0 0 auto; }
#cart .cart__item-quantity { position:static; width:88px; margin:0; }
#cart .cart__item-quantity .good__quantity { width:88px; height:34px; }
#cart .cart__item-quantity .good__quantity-input { height:34px; font-size:14px; }
#cart .cart__item-quantity .good__quantity-change { width:30px; height:34px; }
#cart .cart__item-price { position:static; width:auto; padding:0; margin:0; text-align:right; white-space:nowrap; font-size:17px; }
#cart .cart__item-remove { position:static; width:40px; margin:0; }
#cart .cart__item-remove-link { width:40px; height:40px; margin:0; padding:0; }
#cart .sf-cart-modifiers { display:flex; flex-direction:column; gap:14px; margin:12px 0 0; min-width:0; }
#cart .sf-cart-modifiers__group { display:flex; flex-direction:column; gap:2px; border:0; margin:0; padding:0; }
#cart .sf-cart-modifiers__label { color:var(--mediumColor,#65697a); font-size:12px; line-height:1.3; margin:0 0 6px; }
#cart .sf-cart-modifiers__row { display:grid; grid-template-columns:minmax(0,1fr) 88px 7.2em 40px; gap:10px; align-items:center; min-height:40px; padding:5px 0; }
#cart .sf-cart-modifiers__name { font-size:14px; line-height:1.3; overflow-wrap:anywhere; }
#cart .sf-cart-modifiers__price { grid-column:3; text-align:right; font-size:14px; white-space:nowrap; }
#cart .sf-cart-modifiers__qty { grid-column:2; justify-self:end; width:88px; height:34px; }
#cart .sf-cart-modifiers__qty .good__quantity-input { height:34px; font-size:14px; }
#cart .sf-cart-modifiers__qty button:disabled { opacity:.35; cursor:default; }
@media(max-width:767px) {
 #cart .cart__item { grid-template-columns:72px minmax(0,1fr); }
 #cart .cart__item-thumbnail { width:72px; height:60px; border-radius:10px; }
 #cart .sf-cart-body { gap:6px; }
 #cart .sf-cart-top { display:grid; grid-template-columns:minmax(0,1fr) auto; column-gap:8px; row-gap:2px; min-height:60px; align-content:center; }
 #cart .cart__item-info { grid-column:1 / -1; grid-row:1; padding-right:40px; }
 #cart .sf-cart-actions { display:contents; }
 #cart .cart__item-remove { grid-column:2; grid-row:1; align-self:start; justify-self:end; margin-top:calc((1.3em - 40px) / 2); }
 #cart .cart__item-price { grid-column:1; grid-row:2; text-align:left; font-size:16px; margin-top:-4px; }
 #cart .cart__item-quantity { grid-column:2; grid-row:2; justify-self:end; margin-top:-4px; }
 #cart .sf-cart-modifiers { margin:12px 0 0 -84px; width:calc(100% + 84px); gap:14px; }
 #cart .sf-cart-modifiers__row { grid-template-columns:minmax(0,1fr) 88px 64px; gap:8px; min-height:40px; }
 #cart .sf-cart-modifiers__name, #cart .sf-cart-modifiers__price { font-size:13px; }
 #cart .sf-cart-modifiers__thumb { width:32px; height:32px; flex-basis:32px; }
 #cart .sf-cart-modifiers__name { gap:8px; }
}

/* Compact Signature counters with the existing theme's border and button colors. */
#cart .good__quantity { display:grid; grid-template-columns:30px minmax(0,1fr) 30px; align-items:center; border:1px solid var(--lightColor,#e9eaf0); border-radius:5px; box-sizing:border-box; }
#cart .good__quantity .good__quantity-change { position:static; width:100%; height:100%; min-width:0; margin:0; transform:none; }
#cart .good__quantity .good__quantity-change:first-child { grid-column:1; grid-row:1; }
#cart .good__quantity .good__quantity-change:nth-child(2) { grid-column:3; grid-row:1; }
#cart .good__quantity .good__quantity-input { grid-column:2; grid-row:1; min-width:0; width:100%; height:100%; padding:0; border:0; border-radius:0; box-sizing:border-box; }
@media(max-width:767px) {
 #cart .sf-cart-modifiers__qty { width:88px; height:34px; grid-template-columns:30px minmax(0,1fr) 30px; overflow:hidden; }
 #cart .sf-cart-modifiers__qty .good__quantity-input,
 #cart .sf-cart-modifiers__qty .good__quantity-change { height:100%; }
 #cart .sf-cart-modifiers__qty .good__quantity-input { font-size:14px; }
}

#cart .sf-cart-modifiers__row:not(:has(.sf-cart-modifiers__qty)) .sf-cart-modifiers__name { grid-column:1 / 3; }


#cart .sf-cart-modifiers__qty .ico__minus { display:block; width:9px; height:1.6px; flex:none; font-size:0; background:currentColor; }
#cart .sf-cart-modifiers__qty .ico__minus::before { content:none; }

/* Full product card for photo themes #2, using the theme's own palette. */
.newblack #good:has(.good-full), .newwhite #good:has(.good-full) { width:1030px; max-width:calc(100vw - 32px); height:auto; max-height:calc(100dvh - 32px); overflow:auto; background:var(--whiteColor); }
.newblack #good .good-full, .newwhite #good .good-full { padding:24px 40px 32px; }
.newblack #good .good-full__description, .newwhite #good .good-full__description { max-height:none; }
.newblack #good .good__thumbnail img, .newwhite #good .good__thumbnail img { object-fit:contain; }
#cart .good__quantity { border-color:transparent; box-shadow:none; }
@media(max-width:767px) {
 .newblack #good:has(.good-full), .newwhite #good:has(.good-full) { width:100%; max-width:100%; height:100dvh; max-height:none; padding:0; overflow:hidden; }
 .newblack #good .good-full, .newwhite #good .good-full { padding:0; }
}

.newblack #good:has(.good-full), .newwhite #good:has(.good-full) { min-height:0; }
.newblack #good .good-full, .newwhite #good .good-full { background:var(--whiteColor); }
#good:has(.good-full) > .fancybox-close-small { display:none; }
.newblack #good .good-full__footer .good__tocart, .newwhite #good .good-full__footer .good__tocart { display:block; width:100%; margin:0; }
.newblack #good .good-full__footer .good__tocart-btn-wrap:not(._added), .newwhite #good .good-full__footer .good__tocart-btn-wrap:not(._added) { display:block; width:100%; }

.newblack #good .good-full__footer .good__add-to-cart, .newwhite #good .good-full__footer .good__add-to-cart { display:flex; align-items:center; justify-content:center; gap:4px; width:100%; min-height:46px; padding:0 16px; font-weight:700; font-size:14px; color:var(--baseColorLighter); background:var(--whiteColor); border:1px solid var(--linkColor,#E90C4E); border-radius:5px; box-shadow:3px 3px 5px rgba(13,39,80,.16), -1px -1px 5px #fff; }
.newblack #good .good__add-to-cart-cost, .newwhite #good .good__add-to-cart-cost { display:inline; }

.newwhite #good:has(.good-full) { --whiteColor:#fff; --lightColor:#e9eaf0; --baseColorLighter:#0F2034; }

.newblack #good:has(.good-full), .newwhite #good:has(.good-full) { padding:0; }
@media(min-width:768px) { .newblack #good .good-full__footer, .newwhite #good .good-full__footer { position:sticky; bottom:0; padding:12px 0; background:var(--whiteColor); z-index:2; } }

/* A product already in the cart: one action row, never a stretched counter. */
:is(.newblack,.newwhite) #good .good-full__footer .good__quantity-wrap:not(._added) { display:flex; align-items:center; gap:12px; width:100%; padding:0; }
:is(.newblack,.newwhite) #good .good-full__footer .good__to-cart-link { flex:1 1 auto; min-width:0; min-height:46px; box-sizing:border-box; display:flex; align-items:center; justify-content:center; padding:10px 12px; border:1px solid var(--linkColor,#e90c4e); border-radius:6px; color:var(--baseColor); font-size:13px; font-weight:700; line-height:1.3; text-align:center; text-decoration:none; }
:is(.newblack,.newwhite) #good .good-full__footer .good__quantity-wrap > .good__quantity { flex:0 0 116px; width:116px; height:46px; display:grid; grid-template-columns:36px minmax(0,1fr) 36px; align-items:center; gap:4px; }
:is(.newblack,.newwhite) #good .good-full__footer .good__quantity-change { position:static; width:36px; height:36px; margin:0; transform:none; }
:is(.newblack,.newwhite) #good .good-full__footer .good__quantity-change:first-child { grid-column:1; grid-row:1; }
:is(.newblack,.newwhite) #good .good-full__footer .good__quantity-change:nth-child(2) { grid-column:3; grid-row:1; }
:is(.newblack,.newwhite) #good .good-full__footer .good__quantity-input { grid-column:2; grid-row:1; width:100%; min-width:0; height:46px; padding:0; border:0; background:transparent; box-shadow:none; font-size:14px; }
:is(.newblack,.newwhite) #good .good-full__footer .ico__minus { width:9px; height:1.6px; font-size:0; }

/* Modifier options sit directly on the product card, including when selected. */
#good .sf-mod__list .sf-mod__option { background:transparent; border-color:transparent; box-shadow:none; }
#good .sf-mod__list .sf-mod__option:focus-visible { outline:2px solid var(--sf-mod-accent); outline-offset:2px; }

/* Signature selection badge, using the current storefront accent. */
#good .sf-mod__list .sf-mod__option-control { display:none; }
#good .sf-mod__list .sf-mod__option.is-selected .sf-mod__option-control { display:flex; align-items:center; justify-content:center; width:18px; height:18px; border:0; border-radius:50%; background:var(--sf-mod-accent); }
#good .sf-mod__list .sf-mod__option.is-selected .sf-mod__option-control::after { content:''; width:11px; height:11px; border:0; border-radius:0; background:#fff; -webkit-mask:url('/images/ico__checkbox_new.svg') center / contain no-repeat; mask:url('/images/ico__checkbox_new.svg') center / contain no-repeat; }

/* Multiple choices use a square checkbox. */
#good .sf-mod__list .sf-mod__option.is-selected.is-check .sf-mod__option-control { border-radius:4px; }

/* Selected options share the pink storefront outline in every theme. */
#good .sf-mod__list .sf-mod__option.is-selected { border-color:#e90c4e; }
#good .sf-mod__list .sf-mod__option.is-selected .sf-mod__option-control { background:#e90c4e; }

/* Final order composition follows the Signature theme. */
#fix-result .checkout-success__product {
  display: flex;
  align-items: flex-start;
  gap: 14px;
  padding: 15px 0;
  border-bottom: 1px solid rgba(118, 126, 145, 0.28);
  color: var(--baseColor, #05283f);
  font-size: 12px;
  font-weight: 500;
  line-height: 18px;
}

#fix-result .checkout-success__product-thumb {
  flex: 0 0 70px;
  width: 70px;
  height: 52px;
  overflow: hidden;
  border-radius: 5px;
  background: var(--whiteColor, #f4f7f9);
}

#fix-result .checkout-success__product-thumb img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

#fix-result .checkout-success__product-body {
  flex: 1 1 auto;
  min-width: 0;
  min-height: 52px;
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
  gap: 2px;
}

#fix-result .checkout-success__product-main {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 10px;
}

#fix-result .checkout-success__product-title {
  flex: 1 1 auto;
  min-width: 0;
  margin: 0;
  color: var(--baseColor, #05283f);
  font-size: 12px;
  font-weight: 700;
  line-height: 15px;
}

#fix-result .checkout-success__product-unit {
  flex: 0 0 auto;
  margin: 0;
  color: var(--mediumColor, #767e91);
  font-size: 12px;
  font-weight: 500;
  line-height: 15px;
  white-space: nowrap;
}

#fix-result .checkout-success__mods {
  display: flex;
  flex-direction: column;
  gap: 8px;
  margin: 6px 0 2px;
  min-width: 0;
}

#fix-result .checkout-success__mod-group {
  display: flex;
  flex-direction: column;
  gap: 2px;
  min-width: 0;
}

#fix-result .checkout-success__mod-label {
  margin: 0;
  color: var(--mediumColor, #8a9aa8);
  font-size: 11px;
  font-weight: 500;
  line-height: 1.3;
}

#fix-result .checkout-success__mod {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 10px;
  color: var(--baseColor, #5a7180);
  font-size: 12px;
  font-weight: 500;
  line-height: 1.35;
}

#fix-result .checkout-success__mod em {
  flex: 0 0 auto;
  font-style: normal;
  font-variant-numeric: tabular-nums;
  color: var(--mediumColor, #767e91);
}

#fix-result .checkout-success__product-meta {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 10px;
}

#fix-result .checkout-success__product-count {
  flex: 0 0 auto;
  margin: 0;
  color: var(--baseColor, #05283f);
  font-size: 12px;
  font-weight: 500;
  line-height: 18px;
}

#fix-result .checkout-success__product-price {
  flex: 0 0 auto;
  margin: 0;
  margin-left: auto;
  color: var(--baseColor, #05283f);
  font-size: 12px;
  font-weight: 700;
  line-height: 18px;
  letter-spacing: -0.01em;
  text-align: right;
}


#fix-result .checkout-success__mod span { min-width:0; overflow-wrap:anywhere; }
#fix-result .checkout-success__product-title { overflow-wrap:anywhere; }

/* Match the cart backdrop without dimming the product card itself. */
.lightbox:has(#good) .fancybox-bg { background:var(--transparentTwelfth, rgba(15,32,52,.4)); backdrop-filter:blur(3px); }
.lightbox.fancybox-is-open:has(#good) .fancybox-bg { opacity:1; }
.newwhite .lightbox:has(#good) .fancybox-bg { background:rgba(15,32,52,.4); }

/* Signature portion selector with each storefront's palette. */
#good .sf-product-variants { display:block; width:100%; margin:18px 0; position:relative; }
#good .sf-product-variants__label { font-weight:700; font-size:14px; margin-bottom:10px; }
#good .sf-product-variants .good__variations-header, #good .sf-product-variants .good__variations-overlay { display:none; }
#good .sf-product-variants .good__variations-optwrapper { position:static; display:block; width:100%; height:auto; opacity:1; visibility:visible; transform:none; background:transparent; box-shadow:none; border:0; padding:0; }
#good .sf-product-variants .good__variations-options { display:flex; gap:4px; padding:4px; margin:0; max-height:none; overflow:visible; border:1px solid var(--lightColor,#eceef3); border-radius:28px; background:var(--whiteOverlay,#f7f7fb); }
#good .sf-product-variants .good__variations-item { flex:1 1 0; min-width:0; margin:0; padding:0; }
#good .sf-product-variants label { display:flex; align-items:center; justify-content:center; min-height:42px; padding:8px 6px; border:1px solid transparent; border-radius:24px; color:var(--baseColor); background:transparent; }
#good .sf-product-variants label:has(input:checked) { border-color:var(--linkColor,#e90c4e); background:var(--whiteColor,#fff); box-shadow:0 2px 8px #0001; }
#good .sf-product-variants label:has(input:focus-visible) { outline:2px solid var(--linkColor,#e90c4e); outline-offset:2px; }
#good .sf-product-variants input { position:absolute; opacity:0; width:1px; height:1px; margin:0; }
#good .sf-product-variants .good__variations-unit { padding:0; margin:0; font-size:14px; font-weight:700; color:inherit; }
#good .sf-product-variants .good__variations-price { display:none; }
.sf-modifier-badge { background-image:url('/images/ico__modifiers.svg'); background-size:contain; border-radius:50%; }

#good .sf-product-variants .good__variations-unit { width:100%; text-align:center; }
#good .good-full:has(.sf-product-variants) .good-full__option:has(.good__unit) { display:none; }

#good .good-full:has(.sf-product-variants) .good-full__options { display:none; }
#good .good-full:has(.sf-product-variants) .good-full__options:has(.good-full__option-value:not(.good__unit)) { display:block; }

#good .sf-product-variants { padding:0; inset:auto; z-index:auto; background:transparent; box-shadow:none; backdrop-filter:none; -webkit-backdrop-filter:none; }

/* Long portion lists collapse into a dropdown instead of squeezing tiles. */
#good .sf-product-variants--select .good__variations-optwrapper { display:none; }
#good .sf-product-variants__select { box-sizing:border-box; display:block; width:100%; min-height:46px; margin:0; padding:10px 42px 10px 16px; border:1px solid var(--lightColor,#e1e3ea); border-radius:5px; background:var(--whiteColor,#fff) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1.5 6 6.5 11 1.5' fill='none' stroke='%23999da9' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") no-repeat right 16px center/12px 8px; color:var(--baseColor,#212330); font:inherit; font-size:14px; font-weight:600; line-height:1.3; text-overflow:ellipsis; -webkit-appearance:none; appearance:none; cursor:pointer; }
#good .sf-product-variants__select:focus-visible { outline:2px solid var(--linkColor,#e90c4e); outline-offset:2px; }
#good .sf-product-variants__select option { color:#212330; background:#fff; }
:is(.newblack,.newwhite) #good .sf-product-variants__select { border:0; border-radius:333px; background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1.5 6 6.5 11 1.5' fill='none' stroke='%23999da9' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") no-repeat right 18px center/12px 8px, var(--sf-control-bg); color:var(--sf-control-color); box-shadow:var(--sf-control-shadow); }

/* Desktop Signature sizing: one stable panel, independently scrolling details. */
.sf-product-details { display:contents; }
@media(min-width:768px) {
 html .lightbox #good:has(.good-full) { width:1080px; max-width:calc(100vw - 32px); height:min(92dvh,600px); max-height:min(92dvh,600px); min-height:0; padding:0; overflow:hidden; }
 html .lightbox #good .good-full { box-sizing:border-box; height:100%; min-height:0; padding:24px 32px; display:flex; flex-direction:column; }
 html .lightbox #good .good-full > .good-card__header { flex:0 0 auto; margin:0 0 20px; padding:0 0 18px; }
 html .lightbox #good .good-full > .row { display:grid; grid-template-columns:minmax(0,1.2fr) minmax(320px,460px); gap:24px; flex:1 1 auto; min-height:0; margin:0; overflow:visible; }
 html .lightbox #good .good-full > .row > .col-7, html .lightbox #good .good-full > .row > .col-5 { width:auto; max-width:none; min-height:0; min-width:0; margin:0; padding:0; }
 html .lightbox #good .good-full > .row > .col-5 { display:flex; flex-direction:column; }
 html .lightbox #good .sf-product-details { display:block; flex:1 1 auto; min-height:0; overflow:auto; overscroll-behavior:contain; padding-right:8px; scrollbar-width:thin; }
 html .lightbox #good .good-full__footer { position:static; flex:0 0 auto; margin:0; padding:12px 0 0; background:var(--sf-sheet-surface,var(--whiteColor,#fff)); }
 html .lightbox #good .good-full__gallery, html .lightbox #good .good__thumbnails, html .lightbox #good .good__thumbnail, html .lightbox #good .good__thumbnail-link { height:100%; min-height:0; }
 html .lightbox #good .good__thumbnail-link img { width:100%; height:100%; object-fit:contain; }
}

@media(max-width:767px) {
 .lightbox:has(.sf-mobile-sheet), .lightbox:has(.sf-mobile-sheet) .fancybox-inner, .lightbox:has(.sf-mobile-sheet) .fancybox-slide { overscroll-behavior:none; }
 .sf-mobile-sheet > .row { overflow-x:hidden; overflow-y:auto; overscroll-behavior:none; }
}

/* Dish types and modifiers share one overlay on the visible photo. */
.sf-badge-anchor { position:relative; }
.sf-badge-anchor .good__kinds.sf-photo-badges { position:absolute; display:flex; flex-wrap:wrap; align-items:center; gap:5px; right:auto; padding:0; margin:0; z-index:3; pointer-events:none; }
.sf-photo-badges > * { position:relative; flex:0 0 30px; width:30px; height:30px; margin:0; }

/* Match the 5px storefront buttons, keeping single/multiple choice marks distinct. */
#good .sf-product-variants .good__variations-options,
#good .sf-product-variants label,
#good .sf-mod__list .sf-mod__option,
#good .sf-mod__list .sf-mod__option-thumb,
#good .sf-mod__list .sf-mod__qty-btn { border-radius:5px; }
#good .sf-mod__list .sf-mod__qty-btn { box-sizing:border-box; flex:0 0 30px; width:30px; height:30px; min-width:0; min-height:0; padding:0; display:flex; align-items:center; justify-content:center; }
#cart .good__quantity .good__quantity-change { box-sizing:border-box; width:30px; height:30px; align-self:center; justify-self:center; }
@media(max-width:767px) { #good .sf-mod__list .sf-mod__qty-btn { flex-basis:28px; width:28px; height:28px; } }

/* Identical cart counters and unclipped theme shadows. */
#cart .good__quantity { overflow:visible; }
#cart .good__quantity .good__quantity-change { min-width:0; min-height:0; padding:0; font-size:12px; line-height:1; }
#cart .good__quantity .good__quantity-change .ico__minus { display:block; flex:none; width:9px; height:1.6px; font-size:0; background:currentColor; }
#cart .good__quantity .good__quantity-change .ico__minus::before { content:none; }
#cart .good__quantity .good__quantity-change .ico__plus { font-size:12px; line-height:1; }

/* Light photo theme #2 does not define the legacy greyColor token. */
.newwhite #good .good-full__option { color:var(--greyColor,#999da9); border-bottom:1px dotted var(--greyColor,#999da9); }

/* Photo themes #2: native raised actions, rather than generic outline buttons. */
.newblack #good { --sf-action-shadow:0 0 12px rgba(255,0,77,.55),0 15px 44px rgba(219,38,92,.25),inset 4px 4px 4px rgba(0,0,0,.55); --sf-control-bg:linear-gradient(139deg,#212121,#080808); --sf-control-shadow:0 0 8px rgba(255,0,77,.4),inset 3px 3px 4px #000; --sf-control-color:#fff; }
.newwhite #good { --sf-action-shadow:3px 3px 5px rgba(128,16,49,.44),-1px -1px 5px #ffaec6; --sf-control-bg:#e9eaec; --sf-control-shadow:3px 3px 5px rgba(13,39,80,.16),-1px -1px 5px #fff; --sf-control-color:#0f2034; }
:is(.newblack,.newwhite) #good .good-full__footer :is(.good__add-to-cart,.good__to-cart-link) { color:#fff; background:#e90c4e; border:1px solid rgba(255,255,255,.2); border-radius:5px; box-shadow:var(--sf-action-shadow); transition:background .2s,box-shadow .2s,opacity .2s; }
:is(.newblack,.newwhite) #good .good-full__footer .good__add-to-cart:disabled { opacity:.45; cursor:not-allowed; box-shadow:none; }
:is(.newblack,.newwhite) #good .sf-mod__list .sf-mod__qty-btn,
:is(.newblack,.newwhite) #good .sf-product-variants label { background:var(--sf-control-bg); color:var(--sf-control-color); box-shadow:var(--sf-control-shadow); }
:is(.newblack,.newwhite) #good .sf-product-variants label:has(input:checked) { background:#e90c4e; color:#fff; box-shadow:var(--sf-action-shadow); }
:is(.newblack,.newwhite) #good .sf-mod__list .sf-mod__qty-btn:disabled { opacity:.35; box-shadow:none; }
:is(.newblack,.newwhite) #good .sf-product-variants .good__variations-options { background:transparent; border:0; gap:8px; padding:4px; }
@media(hover:hover) {
 .newwhite #good .good-full__footer :is(.good__add-to-cart:not(:disabled),.good__to-cart-link):hover { background:#767e91; box-shadow:3px 3px 5px rgba(13,39,80,.16),-1px -1px 5px #fff; }
 .newblack #good .good-full__footer :is(.good__add-to-cart:not(:disabled),.good__to-cart-link):hover { background:#ff145b; }
 :is(.newblack,.newwhite) #good .sf-mod__list .sf-mod__qty-btn:not(:disabled):hover { background:#e90c4e; color:#fff; box-shadow:var(--sf-action-shadow); }
}
:is(.newblack,.newwhite) #good .good-full__footer :is(.good__add-to-cart,.good__to-cart-link):focus-visible { outline:2px solid var(--baseColor); outline-offset:3px; }

/* Theme #2 counters follow native good__quantity-change, including circular shape. */
:is(.newblack,.newwhite) #good .sf-mod__list .sf-mod__qty-btn { border-radius:333px; color:#fff; }
.newblack #good .sf-mod__list .sf-mod__qty-btn { background:radial-gradient(67% 67% at 40% 33%,rgba(34,34,34,.33) 0%,rgba(0,0,0,.1815) 100%),linear-gradient(139.25deg,rgba(33,33,33,.33) 26.64%,rgba(0,0,0,0) 129.83%); border:1px solid rgba(255,255,255,.2); box-shadow:0 0 12px rgba(255,0,77,.55),inset 4px 4px 4px #000; }
.newwhite #good .sf-mod__list .sf-mod__qty-btn { background:#e90c4e; border:0; box-shadow:3px 3px 5px rgba(13,39,80,.16),-1px -1px 5px #fff; }
:is(.newblack,.newwhite) #good .sf-mod__list .sf-mod__qty-btn:disabled { box-shadow:none; }
@media(hover:hover) {
 .newblack #good .sf-mod__list .sf-mod__qty-btn:not(:disabled):hover { background:#e90c4e; box-shadow:0 0 12px rgba(255,0,77,.55),inset 4px 4px 4px rgba(0,0,0,.55); }
 .newwhite #good .sf-mod__list .sf-mod__qty-btn:not(:disabled):hover { background:#ccd1da; color:#767e91; box-shadow:inset 3px 3px 5px rgba(13,39,80,.16); }
}

/* Light photo #2: restore the native continuous recessed quantity capsule. */
.newwhite #cart .cart__item-quantity { width:116px; }
.newwhite #cart .good__quantity { box-sizing:border-box; width:116px; height:40px; padding:4px; grid-template-columns:32px minmax(0,1fr) 32px; border:0; border-radius:333px; background:#e9eaec; box-shadow:inset 3px 3px 5px rgba(13,39,80,.16),inset -1px -1px 5px #fff; overflow:visible; }
.newwhite #cart .good__quantity .good__quantity-change { width:32px; height:32px; border-radius:333px; }
.newwhite #cart .good__quantity .good__quantity-input { width:100%; height:32px; padding:0; background:transparent; box-shadow:none; border:0; border-radius:0; }
.newwhite #cart .sf-cart-actions { grid-template-columns:116px 7.2em 40px; }
.newwhite #cart .sf-cart-modifiers__row { grid-template-columns:minmax(0,1fr) 116px 7.2em 40px; }
@media(max-width:767px) { .newwhite #cart .sf-cart-modifiers__row { grid-template-columns:minmax(0,1fr) 116px 64px; } }

/* Match the native dish-type badges in light photo theme #2. */
.newwhite .sf-modifier-badge { width:35px; height:35px; background-image:url("/images/ico__modifiers-v3.svg"); }
.newwhite .sf-photo-badges > * { flex-basis:35px; width:35px; height:35px; }

/* Product modifier counters use the light theme's native recessed capsule too. */
.newwhite #good .sf-mod__list .sf-mod__qty { width:116px; max-width:100%; height:40px; padding:4px; border:0; border-radius:333px; background:#e9eaec; box-shadow:inset 3px 3px 5px rgba(13,39,80,.16),inset -1px -1px 5px #fff; grid-template-columns:32px minmax(0,1fr) 32px; overflow:visible; }
.newwhite #good .sf-mod__list .sf-mod__qty-btn { width:32px; height:32px; border-radius:333px; background:#ccd1da; color:#767e91; box-shadow:inset 3px 3px 5px rgba(13,39,80,.16); font-size:16px; }
.newwhite #good .sf-mod__list .sf-mod__qty-val { background:transparent; box-shadow:none; font-weight:500; color:#0f2034; }
.newwhite #good .good-full__footer .good__add-to-cart:disabled { opacity:.55; box-shadow:var(--sf-action-shadow); }
@media(max-width:767px) { .newwhite #good .sf-mod__list .sf-mod__qty { height:36px; grid-template-columns:28px minmax(0,1fr) 28px; } .newwhite #good .sf-mod__list .sf-mod__qty-btn { width:28px; height:28px; } }

/* Shared portion tray and the same counter glyphs as the cart. */
#good .sf-mod__qty-btn .ico__minus { display:block; flex:none; width:9px; height:1.6px; font-size:0; background:currentColor; }
#good .sf-mod__qty-btn .ico__minus::before { content:none; }
#good .sf-mod__qty-btn .ico__plus { font-size:12px; line-height:1; }
.newwhite #good .sf-mod__list .sf-mod__qty { height:40px; grid-template-columns:32px minmax(0,1fr) 32px; }
.newwhite #good .sf-mod__list .sf-mod__qty-btn { width:32px; height:32px; font-size:12px; line-height:1; }
:is(.newwhite,.newblack) #good .sf-product-variants .good__variations-options { border-radius:333px; gap:0; padding:4px; background:var(--sf-control-bg); box-shadow:var(--sf-control-shadow); }
.newwhite #good .sf-product-variants .good__variations-options { box-shadow:inset 3px 3px 5px rgba(13,39,80,.16),inset -1px -1px 5px #fff; }
:is(.newwhite,.newblack) #good .sf-product-variants label { border-radius:333px; background:transparent; box-shadow:none; }
:is(.newwhite,.newblack) #good .sf-product-variants label:has(input:checked) { border-radius:333px; background:#e90c4e; box-shadow:var(--sf-action-shadow); }

/* Theme #2: rounded primary actions and a portion tray matching the product surface. */
.newwhite #good .sf-product-variants .good__variations-options { background:#fff; box-shadow:inset 3px 3px 5px rgba(13,39,80,.16),inset -1px -1px 5px #fff; }
:is(.newwhite,.newblack) #good .good-full__footer :is(.good__add-to-cart,.good__to-cart-link),
:is(.newwhite,.newblack) #cart :is(.btn,.form__submit,.form__button) { border-radius:333px; }

/* Use the cart palette throughout photo-theme product sheets. */
.newwhite { --sf-sheet-surface:#e8e9eb; --sf-sheet-text:#0f2034; --sf-primary-text:#fff; }
.newblack { --sf-sheet-surface:#000; --sf-sheet-text:#fff; --sf-primary-text:#f0f3f4; }
:is(.newwhite,.newblack) #good :is(.good-full,.good-card__header,.good-full__footer) { background:var(--sf-sheet-surface); color:var(--sf-sheet-text); }
.newwhite #good .sf-product-variants .good__variations-options { background:#e9eaec; }
.newblack #good .sf-mod__list .sf-mod__qty { background:transparent; border-color:transparent; box-shadow:none; overflow:visible; }
:is(.newwhite,.newblack) #good .good-full__footer :is(.good__add-to-cart,.good__to-cart-link),
:is(.newwhite,.newblack) #good .sf-product-variants label:has(input:checked) { color:var(--sf-primary-text); }
.newwhite #good .good-full__footer :is(.good__add-to-cart,.good__to-cart-link) { border:0; }
@media(hover:hover) { .newblack #good .good-full__footer :is(.good__add-to-cart:not(:disabled),.good__to-cart-link):hover { background:#e90c4e; box-shadow:none; } }

/* Restore the original green in-cart action, distinct from adding an item. */
:is(.newwhite,.newblack) #good .good-full__footer .good__to-cart-link,
:is(.newwhite,.newblack) #good .good-full__footer .good__to-cart-link:hover { background:linear-gradient(62.88deg,rgba(181,217,39,.22) 14.77%,rgba(194,214,75,0) 97.57%),#80983d; color:#fff; border:0; box-shadow:none; border-radius:333px; }

/* On desktop, keep purchasing controls immediately after short product details. */
@media(min-width:768px) { html:is(.newwhite,.newblack) .lightbox #good .sf-product-details { flex:1 1 0; } }
/* On a phone the purchase bar stays on the bottom edge; details scroll above it. */
@media(max-width:767px) { :is(.newwhite,.newblack) .sf-mobile-sheet > .row { flex:1 1 auto; min-height:0; } }

/* Let button shadows paint outside layout wrappers; scrolling remains in details. */
#good .good-full__footer, #good .good-full__footer .good__quantity-wrap, #good .good-full__footer .good__quantity { overflow:visible; }
@media(min-width:768px) { html .lightbox #good .sf-product-details { padding:12px 16px 16px; margin:-12px -8px 0 -16px; } }
@media(max-width:767px) { .good-full.sf-mobile-sheet > .good-full__footer { padding-bottom:max(28px,env(safe-area-inset-bottom)); } }

/* Long merchant titles must not squeeze the close button or widen the sheet. */
.lightbox #good .good-card__header { height:auto; min-height:60px; min-width:0; }
.lightbox #good .good-full__title { min-width:0; overflow-wrap:anywhere; }
.lightbox #good .good-full__close { flex:0 0 44px; width:44px; min-width:44px; height:44px; }
.lightbox #good .good-full__description { overflow-wrap:anywhere; }

/* Remove a modifier without removing its parent dish. */
#cart .sf-cart-modifiers__remove {grid-column:4;display:grid;place-items:center;width:28px;height:34px;padding:0;border:0;background:transparent;cursor:pointer;}
#cart .sf-cart-modifiers__remove:disabled {visibility:hidden;pointer-events:none;}
@media(max-width:767px){
 #cart .sf-cart-modifiers__row, .newwhite #cart .sf-cart-modifiers__row {grid-template-columns:minmax(0,1fr) 88px 55px 24px;gap:5px;}
}
@media(max-width:767px){#cart .sf-cart-modifiers__remove {width:24px;}}

@media(max-width:380px){
 #cart .sf-cart-modifiers__row:has(.sf-cart-modifiers__qty) .sf-cart-modifiers__name {grid-column:1 / 4;grid-row:1;}
 #cart .sf-cart-modifiers__row:has(.sf-cart-modifiers__qty) .sf-cart-modifiers__qty {grid-column:1 / 3;grid-row:2;justify-self:start;}
 #cart .sf-cart-modifiers__row:has(.sf-cart-modifiers__qty) .sf-cart-modifiers__price {grid-column:3;grid-row:2;}
 #cart .sf-cart-modifiers__row:has(.sf-cart-modifiers__qty) .sf-cart-modifiers__remove {grid-column:4;grid-row:1;}
}
@media(min-width:381px) and (max-width:767px){.newwhite #cart .sf-cart-modifiers__row {grid-template-columns:minmax(0,1fr) 116px 55px 24px;}}
/* Long portion lists use the existing theme controls, never the OS select. */
#good .sf-product-variants--dropdown .good__variations-header {display:block;width:100%;box-sizing:border-box;text-align:left;font:inherit;font-size:14px;font-weight:600;line-height:1.4;padding:13px 40px 13px 16px;color:var(--baseColor);background:var(--whiteOverlay);border:1px solid var(--lightColor);border-radius:5px;box-shadow:none;}
#good .sf-product-variants--dropdown .good__variations-header:focus {outline:none;}
#good .sf-product-variants--dropdown .good__variations-header:focus-visible {box-shadow:0 0 0 2px var(--mediumColor);}
#good .sf-product-variants--dropdown .good__variations-optwrapper {display:none;position:absolute;inset:100% 0 auto;z-index:20;width:100%;margin-top:6px;border:1px solid var(--lightColor);border-radius:5px;background:var(--whiteColor);box-shadow:0 8px 24px var(--transparentFifth);}
#good .sf-product-variants--dropdown .good__variations-optwrapper.active {display:block;}
#good .sf-product-variants .good__variations-optwrapper::before {display:none;}
#good .sf-product-variants--dropdown .good__variations-options {display:block;max-height:min(280px,40dvh);overflow-y:auto;overscroll-behavior:contain;padding:6px;margin:0;border:0;border-radius:5px;background:var(--whiteColor);box-shadow:none;}
#good .sf-product-variants--dropdown .good__variations-item {margin:0;}
#good .sf-product-variants--dropdown label {justify-content:space-between;gap:12px;padding:10px 12px;min-height:42px;border:0;border-radius:4px;box-shadow:none;}
#good .sf-product-variants--dropdown label:has(input:checked),#good .sf-product-variants--dropdown label:hover {background:var(--whiteOverlay);color:var(--linkColor);box-shadow:none;}
#good .sf-product-variants--dropdown .good__variations-unit {width:auto;text-align:left;white-space:normal;font-weight:500;}
#good .sf-product-variants--dropdown .good__variations-price {display:block;flex:none;font-size:14px;}
:is(.newwhite,.newblack) #good .sf-product-variants--dropdown .good__variations-header {border:0;border-radius:24px;background:var(--sf-control-bg);color:var(--sf-control-color);box-shadow:var(--sf-control-shadow);}
:is(.newwhite,.newblack) #good .sf-product-variants--dropdown .good__variations-optwrapper,:is(.newwhite,.newblack) #good .sf-product-variants--dropdown .good__variations-options {background:var(--sf-sheet-surface);color:var(--sf-sheet-text);border-radius:16px;}
#good .sf-product-variants--dropdown .good__variations-optwrapper[popover] {position:fixed;inset:auto;margin:0;padding:0;overflow:hidden;box-sizing:border-box;}
#good .sf-product-variants--dropdown .good__variations-optwrapper:popover-open {display:block;}
#good .sf-product-variants--dropdown .good__variations-optwrapper[popover]::backdrop {background:transparent;}
/* Keep badges aligned to the gallery, independently of contain-sized photos. */
#good .good-full__gallery .good__kinds {left:12px!important;right:12px!important;width:auto!important;justify-content:flex-start;}
:is(.good-card,.good-line) .good__variations-header {min-width:0;max-width:100%;padding-right:26px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;box-sizing:border-box;}
:is(.good-card,.good-line) .good__variations {min-width:0;}
@media(max-width:767px) {
 body:has(.good__variations-optwrapper.active) .mobile-nav,
 body:has(.good__variations-optwrapper:popover-open) .mobile-nav {display:none!important;}
 #good .sf-product-variants--dropdown .good__variations-optwrapper[popover] {
  inset:auto 0 0!important;width:100%!important;max-width:100%;max-height:75dvh;border:0;border-radius:16px 16px 0 0;padding:12px 8px max(12px,env(safe-area-inset-bottom));
 }
 #good .sf-product-variants--dropdown .good__variations-options {max-height:calc(75dvh - 40px)!important;border-radius:0;}
 #good .sf-product-variants--dropdown .good__variations-optwrapper[popover]::backdrop {background:rgba(0,0,0,.35);backdrop-filter:blur(3px);}
 #good .sf-product-variants--dropdown label {min-height:44px;}
}
@media(max-width:767px) { .sub-nav:not(:has(a,button)) {display:none;} }

@media(max-width:767px) {
 :is(.good-card,.good-line) .good__variations-options {padding-top:18px;padding-bottom:max(18px,env(safe-area-inset-bottom));}
 :is(.good-card,.good-line) .good__variations-item label {font-size:14px;line-height:1.4;}
 :is(.good-card,.good-line) .good__variations-item label .good__variations-unit {font-size:14px;font-weight:500;}
 :is(.good-card,.good-line) .good__variations-item label .good__variations-price {font-size:14px;}
}
@media(max-width:767px) {
 :is(.good-card,.good-line) .good__variations-item {margin:0;padding:0;}
 :is(.good-card,.good-line) .good__variations-item label {min-height:44px;padding:10px 0;box-sizing:border-box;}
 :is(#good .sf-product-variants--dropdown,.good-card,.good-line) .good__variations-item label .good__variations-unit {font-family:Montserrat,sans-serif;font-size:14px;font-weight:500;line-height:19.6px;letter-spacing:normal;}
 :is(#good .sf-product-variants--dropdown,.good-card,.good-line) .good__variations-item label .good__variations-price,
 :is(#good .sf-product-variants--dropdown,.good-card,.good-line) .good__variations-item label .good__variations-price span {font-family:Montserrat,sans-serif;font-size:14px;font-weight:700;line-height:19.6px;letter-spacing:normal;}
}
/* Match the mobile portion sheet opened from a tile and from the product dialog. */
@media(max-width:767px) {
 :is(.good-card,.good-line) .good__variations-optwrapper,
 :is(.good-card,.good-line) .good__variations-options {border-radius:16px 16px 0 0;}
 #good .sf-product-variants--dropdown .good__variations-optwrapper[popover] {border-radius:16px 16px 0 0;}
}
/* Paint the dimmed backdrop behind the rounded corners, not only above the sheet. */
@media(max-width:767px) {
 :is(.good-card,.good-line) .good__variations-optwrapper {background:transparent!important;isolation:isolate;}
 :is(.good-card,.good-line) .good__variations-optwrapper.active .good__variations-overlay {bottom:0;height:100dvh;z-index:-1;}
 :is(.good-card,.good-line) .good__variations-options {position:relative;background:var(--whiteColor);border-radius:16px 16px 0 0;}
 .theme-black :is(.good-card,.good-line) .good__variations-options {background:#65697A;}
}
/* Reuse each legacy theme's product removal icon and muted treatment. */
body:not(.signature-shell) #cart .sf-cart-modifiers__remove svg {display:none;}
.signature-shell .sf-cart-modifiers__legacy-trash {display:none;}
/* Discount amounts inherit the badge typography, not the standalone cart price. */
.good__cost .discount-price .good__price {
    color: inherit;
    font-size: inherit;
    font-weight: inherit;
    line-height: inherit;
    min-width: 0;
    padding-right: 0;
}
/* Mobile portion popovers are bottom sheets, not inset desktop controls. */
@media (max-width: 767px) {
    html #good .sf-product-variants--dropdown .good__variations-optwrapper[popover] {
        border: 0;
        outline: 0;
        border-radius: 16px 16px 0 0;
        box-shadow: 0 -8px 28px rgba(0, 0, 0, .2);
        padding: 0;
        background: var(--sf-portion-field-bg, var(--sf-sheet-surface, var(--whiteColor, #fff))) !important;
    }
    html #good .sf-product-variants--dropdown .good__variations-options {
        border: 0;
        border-radius: 0;
        box-shadow: none;
        padding: 18px 16px max(18px, env(safe-area-inset-bottom));
        background: var(--sf-sheet-surface, var(--whiteColor, #fff));
    }
    html #good .sf-product-variants--dropdown .good__variations-item label,
    html #good .sf-product-variants--dropdown .good__variations-item label:has(input:checked) {
        box-shadow: none;
    }
}
/* Use a theme-colored chevron in every product portion dropdown. */
#good .sf-product-variants--dropdown .good__variations-header { position: relative; }
#good .sf-product-variants--dropdown .good__variations-header::after {
    content: '';
    display: block;
    position: absolute;
    right: 18px;
    top: 50%;
    width: 8px;
    height: 8px;
    margin: -6px 0 0;
    border: solid currentColor;
    border-width: 0 2px 2px 0;
    background: none;
    transform: rotate(45deg);
    pointer-events: none;
}
#good .sf-product-variants--dropdown .good__variations-header[aria-expanded="true"]::after {
    margin-top: -2px;
    transform: rotate(225deg);
}
/* Give the desktop product photo more space above the modal's bottom edge. */
@media (min-width: 768px) {
    html .lightbox #good .good-full__gallery { transform: translateY(-12px); }
}
/* Only the content area scrolls; a fitting mobile card has no outer overflow. */
@media (max-width: 767px) {
    html .lightbox .fancybox-slide--html:has(.sf-mobile-sheet) {
        height: 100%;
        padding: 0 !important;
        overflow: hidden;
    }
    html .lightbox #good:has(.sf-mobile-sheet) {
        box-sizing: border-box;
        height: 100%;
        max-height: 100%;
        min-height: 0;
        margin: 0 !important;
        overflow: hidden;
    }
    html #good .good-full.sf-mobile-sheet {
        box-sizing: border-box;
        height: 100%;
        min-height: 0;
        overflow: hidden;
    }
    html #good .sf-mobile-sheet > .row {
        box-sizing: border-box;
        flex: 1 1 0;
        min-height: 0;
        overflow-x: hidden;
        overflow-y: auto;
        overscroll-behavior: none;
    }
    html #good .sf-mobile-sheet .good-full__description {
        max-height: none;
        overflow: visible;
    }
}
/* Premium desktop actions occupy the bottom of the full-height detail column. */
@media (min-width: 768px) {
    :is(.newblack, .newwhite) #good .good-full > .row > .col-5 {
        display: flex;
        flex-direction: column;
        align-self: stretch;
        min-height: 0;
    }
    :is(.newblack, .newwhite) #good .sf-product-details {
        display: block;
        flex: 1 1 0;
        min-height: 0;
        overflow-y: auto;
    }
    :is(.newblack, .newwhite) #good .good-full__footer {
        position: static;
        flex: 0 0 auto;
        margin-top: auto;
    }
}
@media (max-width: 767px) {
    html #good .sf-mobile-sheet > .row:not(.sf-content-overflows) { overflow-y: hidden; }
    html #good .sf-mobile-sheet > .row.sf-content-overflows { overflow-y: auto; }
}
/* A selected variant discount stays visible in mobile product dialogs too. */
#good .good-full__footer .good__cost:has(.discount-price) {display:block;}

/* Portion controls follow the 5px radius of premium checkout fields. */
:is(.newblack,.newwhite) #good .sf-product-variants:not(.sf-product-variants--dropdown) .good__variations-options,
:is(.newblack,.newwhite) #good .sf-product-variants:not(.sf-product-variants--dropdown) label,
:is(.newblack,.newwhite) #good .sf-product-variants:not(.sf-product-variants--dropdown) label:has(input:checked),
:is(.newblack,.newwhite) #good .sf-product-variants--dropdown .good__variations-header {border-radius:5px;}
/* Portion fields share the premium cart input surface and corner radius. */
html.newblack { --sf-portion-field-bg:#111; --sf-portion-field-border:#1f1f1f; }
html.newwhite { --sf-portion-field-bg:#fff; --sf-portion-field-border:#d5dbe7; }
html:is(.newblack,.newwhite) #good .sf-product-variants--dropdown .good__variations-header,
html:is(.newblack,.newwhite) #good .sf-product-variants--dropdown .good__variations-optwrapper {
    background:var(--sf-portion-field-bg);
    border:1px solid var(--sf-portion-field-border);
    border-radius:5px;
    box-shadow:none;
}
html:is(.newblack,.newwhite) #good .sf-product-variants--dropdown .good__variations-options {
    background:var(--sf-portion-field-bg);
    border-radius:5px;
    box-shadow:none;
}
html:is(.newblack,.newwhite) #good .sf-product-variants--dropdown label,
html:is(.newblack,.newwhite) #good .sf-product-variants--dropdown label:has(input:checked) {
    border-radius:5px;
    box-shadow:none;
}
html:is(.newblack,.newwhite) #good .sf-product-variants--dropdown .good__variations-header:focus-visible {
    outline:2px solid var(--linkColor);
    outline-offset:2px;
}
@media(max-width:767px) {
    html:is(.newblack,.newwhite) #good .sf-product-variants--dropdown .good__variations-optwrapper[popover] {
        border:0;
        border-radius:5px 5px 0 0;
    }
    html:is(.newblack,.newwhite) #good .sf-product-variants--dropdown .good__variations-options {
        border-radius:0;
    }
}
/* Segmented portions use the same flat input surface as dropdown portions. */
html:is(.newblack,.newwhite) #good .sf-product-variants:not(.sf-product-variants--dropdown) .good__variations-options {
    background:var(--sf-portion-field-bg);
    border:1px solid var(--sf-portion-field-border);
    border-radius:5px;
    box-shadow:none;
}
html:is(.newblack,.newwhite) #good .sf-product-variants:not(.sf-product-variants--dropdown) label,
html:is(.newblack,.newwhite) #good .sf-product-variants:not(.sf-product-variants--dropdown) label:has(input:checked) {
    border-radius:5px;
    box-shadow:none;
}
/* Alternating mobile photos may extend past the viewport; badges stay on the card grid. */
@media(max-width:767px) {
    html:is(.newwhite,.newblack) :is(.good-card,.good-line).sf-badge-anchor > .good__kinds.sf-photo-badges {
        left:12px!important;
        right:12px!important;
        top:12px!important;
        width:auto!important;
    }
}
/* Neutral selection in theme #2 portion lists. */
html.newwhite #good .sf-product-variants--dropdown label:has(input:checked) {
    background:#e9eaec;
    color:#0f2034;
    box-shadow:none;
}
html.newblack #good .sf-product-variants--dropdown label:has(input:checked) {
    background:#303033;
    color:#f0f3f4;
    box-shadow:none;
}
@media(max-width:767px) {
 html:is(.newwhite,.newblack) .good__content > .good__kinds.sf-photo-badges {
  position:static; width:auto; margin:0 0 10px; padding:0;
 }
}
/* Badges sit above the information panel, outside its translucent background. */
@media(max-width:767px) {
 html:is(.newwhite,.newblack) .good-card:has(.good__content > .sf-photo-badges) {
  padding-top:55px;
  box-sizing:content-box;
 }
 html:is(.newwhite,.newblack) .good__content > .good__kinds.sf-photo-badges {
  position:absolute;
  bottom:calc(100% + 10px);
  top:auto;
  left:0;
  right:0;
  width:auto;
  margin:0;
 }
}